Tergantung.
Di toko besar, mungkin bukan karena Anda memiliki ribuan server yang harus dijaga dan alat Anda disediakan. Di sebuah toko kecil, Anda mungkin perlu lebih banyak pengetahuan karena Anda memiliki uang yang lebih luas.
Bahasa scripting (PowerShell, cmd.exe misalnya) selalu berguna meskipun untuk memantau, menggunakan dll. Saya sering memiliki beberapa skrip Perl yang harus saya pertahankan (hanya tentang). Lalu ada berbagai paket ETL yang diharapkan Anda ketahui.
Mengatakan itu, sebagian besar DBA (yang saya tahu) akan dapat menulis hal-hal dasar CLR atau tahu PL / SQL dengan baik. Bagi saya, garis pemisah adalah mengetahui tentang pola atau arsitektur .net atau Java yang lebih luas. Saya tidak membutuhkannya sebagai pengembang DB atau DBA. Dengan cara yang sama dengan .net atau PHP atau Java Monkeys tidak mengerti desain database atau arsitektur atau kode seperti halnya saya.
Secara pribadi, saya memutuskan untuk berhenti mengejar bahasa klien terbaru atau terbaik tahun lalu dan fokus pada pekerjaan basis data. Itu tidak membuat saya menjadi "non-programmer": Saya harus mempelajarinya lagi jika saya harus.
Saya sudah tahu DBA bisa lolos dengan sedikit atau tanpa keterampilan pemrograman, tetapi setiap DBA yang pernah saya anggap bagus setidaknya memiliki keterampilan pemrograman yang masuk akal. Satu atau dua yang bisa saya pikirkan memiliki latar belakang pengembangan yang substansial dan merupakan pengembang yang cukup baik. Ada yang adil jumlah dari open-source perkakas yang ditulis oleh orang-orang yang bekerja sebagai DBA dalam pekerjaan mereka dan IIRC orang yang menulis Toad digunakan untuk bekerja sebagai DBA.
Bergantung pada peran Anda mungkin menemukan diri Anda menulis atau menyetel kueri, menulis skrip untuk mengotomatiskan tugas atau berkonsultasi pada desain aplikasi. Dalam beberapa kasus, Anda mungkin hanya mengurus banyak server melalui OEM atau alat pemantauan lainnya.
Lingkungan pengembangan 'perusahaan' modern seperti .Net atau Java cukup kompleks sehingga pengembang dapat membuat karier hanya karena mengkhususkan diri di dalamnya. Sebagai DBA, khususnya di ruang pengembangan, memiliki pengetahuan C # atau Java yang bekerja mungkin tidak ada salahnya, tetapi Anda mungkin tidak akan menghabiskan banyak waktu untuk benar-benar membuat kode di dalamnya.
Anda mungkin akan mendapatkan lebih banyak jarak tempuh dari alat skrip apa pun yang digunakan pada platform Anda, meskipun banyak sistem mengekspos .Net, Java, COM atau API layanan web. Jika Anda perlu kode sesuatu terhadap API ini, Anda akan memerlukan setidaknya pengetahuan dasar kerja dari sesuatu yang dapat mengkonsumsi API itu. Namun, keterampilan arsitektur aplikasi tingkat lanjut biasanya tidak diperlukan untuk melakukan ini.
Beberapa pengembang akan memiliki keterampilan basis data yang kuat, tetapi ketakutan yang tidak rasional terhadap basis data cukup umum di kalangan pengembangan. Banyak pengembang juga tidak pernah benar-benar memahami paradigma 'mengatur operasi' yang mendasari SQL. Sebagai Dev DBA Anda dapat menemukan diri Anda berurusan dengan konsekuensi dari ini, dan mungkin harus campur tangan dalam kode prosedur yang tersimpan untuk menyelesaikan masalah kinerja.
ETL dan perangkat yang mengelilingi database juga dapat jatuh ke dalam kewenangan DBA. Saya telah melihat beberapa peran DBA yang diiklankan yang tampaknya melibatkan sejumlah besar pekerjaan pengembangan back-end. Ini akan paling umum di perusahaan kecil. Satu poster baru-baru ini ingin mengintegrasikan metrik khusus ke Oracle Enterprise Manager, yang memiliki API plugin untuk melakukan ini. Sangat umum untuk melihat persyaratan seperti ini muncul, dan pada dasarnya satu-satunya cara untuk ini adalah menulis beberapa kode lem.
Ada banyak 'Tools Guys' yang bekerja di IT dan mereka dapat menyelesaikan pekerjaan yang bermanfaat meskipun ada parokalisme. Namun, ketika alat kehabisan tenaga, seringkali satu-satunya cara untuk menyelesaikan sesuatu adalah dengan benar-benar menulis sedikit kode untuk melakukannya. Di sinilah keterampilan pemrograman memisahkan pria dari anak laki-laki.
sumber
Saya akan mengatakan tidak biasanya, tetapi tidak pernah sakit. SQL Server cukup besar sehingga saya tidak berpikir satu orang bisa menguasai seluruh produk. Saya telah menjadi DBA sejak SQL Server 4.2, dan menganggap diri saya seorang ahli di sebagian besar area, tetapi saya akui saya tidak akan bisa menulis permintaan MDX tanpa google di ujung jari saya di setiap langkah.
Yang ingin saya katakan adalah bahwa Anda tidak bisa menjadi ahli dalam segala hal. Menjadi DBA yang benar-benar baik berarti Anda harus hebat dalam T-SQL, tetapi kemungkinan tidak terlalu bagus di .NET, atau setidaknya tidak seefektif orang lain yang dapat memfokuskan waktu mereka pada .NET.
Powershell baik untuk diketahui, seperti halnya masuk dan keluarnya SSIS. Selain itu, serahkan bahasa pengembangan lainnya ke pengembang.
sumber
Sudah pengalaman saya bahwa sementara sebagian besar DBA memiliki semacam latar belakang pengembangan, mereka sama sekali tidak diharuskan untuk menulis kode. DBA yang benar-benar bagus yang pernah saya tangani telah memiliki pengetahuan luas berbagai topik termasuk skrip shell, sistem operasi, dan pengetahuan aplikasi khusus (mis: PeopleSoft).
Saya memiliki instruktur Administrasi Database di sekolah pascasarjana yang memberi kami daftar pertanyaan yang dapat dijawab oleh DBA (Oracle) yang baik: (Saya hanya akan memposting beberapa hal penting dari daftar 40 atau lebih)
(Oracle) Kebutuhan DBA untuk mengetahui hal-hal ini agar efektif. Kebanyakan pengembang yang saya tahu (yang menentang Oracle) akan kesulitan untuk menjawab bahkan satu atau dua dari ini dengan benar.
sumber
Jika Anda DBA, Anda mungkin bekerja di bidang kinerja dan keamanan (antara lain). Ini bisa melibatkan pembuatan profil dan bantuan dengan menyetel aplikasi klien yang sedang dikerjakan pengembang. Dengan demikian tentu tidak ada salahnya untuk mengetahui dasar-dasar bahasa yang digunakan pengembang, dan bagaimana berinteraksi dengan server database. Untuk SQL Server, itu mungkin .NET. Untuk MySQL, mungkin beberapa kombinasi php atau java.
Misalnya, jika server ditekan untuk utas klien, maka akan membantu untuk dapat memberi tahu pengembang bahwa mereka harus menggunakan instance tunggal untuk ObjectDataSources mereka sehingga mereka dapat menggunakan kembali koneksi database tunggal. Dan juga pastikan mereka menggunakan query parameter dengan benar untuk membatasi injeksi SQL. Hal-hal seperti itu.
Anda tidak akan melakukan pemrograman apa pun dalam arti mengembangkan aplikasi klien jika Anda benar-benar seorang DBA, tetapi Anda harus tahu cara kerjanya (secara umum).
sumber
Baiklah, mari kita lihat, Oracle menggunakan PL / SQL yang benar-benar mirip dengan Pascal (bahasa yang digunakan untuk menghasilkan kode aplikasi desktop tetapi telah jatuh dalam beberapa tahun terakhir, dan pengembang telah beralih ke Delphi, yang beberapa telah hilang dari sana ke .NET), dan Oracle sekarang juga mendukung Java untuk beberapa kegiatan. Karena Oracle DBA harus mengetahui semua aspek sistem agar dapat dihargai, saya akan mengatakan bahwa mengetahui Pascal dan Java akan menjadi persyaratan.
TSQL memiliki kapasitas untuk menulis kode yang dikelola .NET (CLR) untuk beberapa fungsi di Sql Server, dan oleh karena itu, DBA yang baik mungkin perlu tahu tentang ini (tetapi itu tidak selalu dapat digunakan dalam versi yang lebih lama, jadi banyak DBA cenderung menghindar dari yang set fitur dalam pengalaman saya).
Jadi itu yang besar, dan yang kebanyakan orang rujuk ketika mereka bertanya ketika Anda bertanya. Saya tidak tahu semua mesin lain untuk mengetahui apa yang mereka lakukan dan tidak mendukung, tetapi saya tahu bahwa banyak yang lain memiliki integrasi bahasa selain SQL juga.
sumber
Saya cukup yakin bahwa hanya toko-toko besar dengan aplikasi besar yang memiliki permintaan untuk DBA non-pemrograman, karena toko-toko kecil dengan basis data sederhana dapat lolos dengan jack-of-all-trades developer / DBA. Agar DBA menjadi master produk (Oracle, SQL Server, apa pun) harus ada permintaan untuk pengetahuan ini! DBA harus mengalami lingkungan dan masalah yang kompleks untuk membantunya menjadi lebih berpengetahuan. Ini pada dasarnya kata-kata kasar saya, karena saya seorang DBA di sebuah toko kecil dan saya tidak melakukan apa pun yang membutuhkan lebih dari 2 neuron, saya pikir saya membuang-buang waktu saya di pekerjaan ini. Saya ingin menjadi pengembang.
sumber