it-swarm.asia

Apakah DBA perlu tahu cara memprogram dalam bahasa sistem selain SQL?

Sejauh mana seorang Administrator Database perlu mengetahui bahasa pemrograman tingkat aplikasi atau sistem (misalnya. NET atau PHP) selain "hanya SQL"?

Untuk keperluan pertanyaan ini, tidak ada versi spesifik dari standar SQL yang dipertimbangkan untuk jawaban ini (SQL ANSI 86, SQL ISO 87, SQL: 2008) karena pertanyaannya berkaitan dengan bahasa desktop atau server di luar ranah SQL.

20
p mac

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 Monyet 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.

25
gbn

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 adiljumlah dari sumber terbukaperkakas ditulis oleh orang-orang yang bekerja sebagai DBA dalam pekerjaan mereka dan IIRC orang yang menulis TOAD dulu bekerja sebagai DBA.

Bergantung pada peran Anda mungkin menemukan diri Anda menulis atau menyetel kueri, menulis skrip untuk mengotomatisasi 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 dari mengkhususkan diri di dalamnya. Sebagai DBA, khususnya di ruang pengembangan, memiliki pengetahuan tentang C # atau Java 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 lanjutan 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 terkini 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 'Alat Pria' yang bekerja di I.T. dan mereka dapat melakukan pekerjaan yang bermanfaat terlepas dari parokalisme. Namun, ketika alat kehabisan Steam, 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.

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 ahli di sebagian besar wilayah, 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 bagus 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.

6
datagod

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 mempunyai 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) )

  • Mengapa Oracle tidak secara otomatis membuat indeks pada kolom kunci asing?
  • Saat menjatuhkan batasan, kapan Anda akan menggunakan klausa KEEP INDEX?
  • Kapan Anda akan menggunakan IOT vs tabel biasa?
  • Apakah ide yang baik untuk menempatkan tabel dan indeks di tablespace terpisah?
  • Apa perbedaan antara tipe data VARCHAR dan VARCHAR2?
  • Apakah lebih baik menggunakan pemicu atau kendala untuk menegakkan aturan bisnis?
  • Kapan Anda ingin menggunakan alokasi otomatis vs ukuran segmen tetap?
  • Kapan Anda akan menggunakan tabel eksternal vs tabel tumpukan vs tabel B-tree?
  • Seberapa sering Anda harus membersihkan tempat sampah?
  • Strategi apa yang akan Anda rekomendasikan untuk membuat cadangan tabel yang dipartisi? Bagaimana dengan indeks yang dipartisi?

(Oracle) Kebutuhan DBA untuk mengetahui hal-hal ini agar efektif. Sebagian besar pengembang yang saya tahu (yang kode terhadap Oracle) akan kesulitan untuk menjawab bahkan satu atau dua dari ini dengan benar.

5
Aaron

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 dalam arti mengembangkan aplikasi klien jika Anda benar-benar seorang DBA, tetapi Anda harus tahu bagaimana mereka bekerja (secara umum).

5
db2

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 dengan baik, saya akan mengatakan bahwa mengetahui Pascal dan Java akan menjadi persyaratan.

TSQL memiliki kapasitas untuk menulis kode yang dikelola .NET (CLR) untuk beberapa fungsionalitas 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 fitur yang ada 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.

4
jcolebrand