Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Keterampilan dan Pengetahuan Apa yang Dibutuhkan Perancang Basis Data?

Merasa kewalahan dengan banyaknya waktu yang Anda perlukan untuk belajar menjadi perancang basis data? Baca tentang keterampilan dan bakat penting yang Anda perlukan – ini tidak terlalu buruk!

Ketika Anda berjalan menyusuri lorong supermarket, keranjang belanja di satu tangan dan daftar belanjaan di tangan lain, apa yang Anda pikirkan? Jika Anda seperti saya, Anda membayangkan bagaimana meningkatkan pengaturan rak sehingga belanja mingguan Anda tidak memakan banyak waktu. Atau mungkin Anda merasakan keinginan yang sama untuk mengatur dan menyusun informasi ketika seorang teman menunjukkan koleksi majalah mereka yang banyak. Atau mungkin itu mengejutkan ketika Anda mengelola daftar putar agar lebih sesuai dengan preferensi Anda. Jika Anda menjalani hidup dengan berpikir tentang bagaimana merepresentasikan realitas dalam hal entitas, atribut, dan hubungan, maka panggilan Anda adalah menjadi pemodel database.

Mungkin Anda tidak terlalu ekstrem tetapi Anda masih tertarik pada gagasan mengejar desain basis data sebagai karier. Bagaimanapun, Anda perlu menguasai beberapa keterampilan baru. Beberapa di antaranya murni teknis; Anda dapat mempelajari keterampilan ini dengan mempelajari atau membaca dan memperdalamnya melalui pengalaman kerja. Keterampilan lain melibatkan pengetahuan non-teknis yang dapat Anda pelajari melalui kursus, artikel blog, atau dengan mengamati orang lain.

Berikut adalah ringkasan pengetahuan dan keterampilan penting yang harus dimiliki setiap perancang basis data.

Keterampilan Keras yang Dibutuhkan Perancang Basis Data

Keterampilan keras adalah keterampilan yang diperoleh melalui studi dan diasah melalui latihan. Jika Anda dapat menunjukkan dengan bukti nyata bahwa Anda telah menguasai keterampilan keras, itu berarti Anda mampu melakukan tugas apa pun yang melibatkannya.

Dalam hal pengetahuan database, hard skill mencakup dasar-dasar teori database dan berbagai teknik yang digunakan untuk menerapkan konsep teoritis untuk memecahkan masalah konkret. Mari kita lihat setiap keterampilan keras yang dibutuhkan perancang basis data.

Teori Basis Data

Teori basis data penuh dengan konsep abstrak yang sulit dipahami jika tidak dikaitkan dengan fakta kehidupan nyata. Model relasional, domain, atribut, relasi dan relasi, kunci primer dan asing, integritas entitas, integritas referensial, dan batasan domain hanyalah beberapa contoh. Jika Anda menambahkan hal-hal yang lebih kompleks (seperti aljabar relasional atau kalkulus relasional), Anda mungkin bertanya-tanya apakah tidak lebih baik memilih karier yang berurusan dengan hal-hal konkret seperti berkebun atau memasak makanan lezat.

Jangan panik. Pengetahuan menyeluruh tentang teori basis data penting jika Anda berencana untuk mengajar kelas perguruan tinggi atau menemukan cara baru untuk mengatur informasi. Tetapi untuk mendesain database, Anda hanya perlu menguasai konsep teori yang berlaku untuk memecahkan masalah kehidupan nyata. Yang paling penting – ABC desain database – adalah model relasional.

Model Relasional

Profesor perguruan tinggi akan memberi tahu Anda bahwa model relasional adalah mekanisme organisasi data berdasarkan teori himpunan dan logika predikat. Tapi itu tidak akan banyak membantu Anda dalam pekerjaan sehari-hari Anda sebagai pemodel database. Dalam praktiknya, Anda perlu mengetahui bahwa model relasional adalah cara yang intuitif dan mudah untuk mengatur data dalam bentuk tabel – disebut relasi – yang terdiri dari baris (yang juga disebut tupel). Setiap tabel (atau relasi) didefinisikan oleh atributnya (atau kolom).

Konsep dasar model relasional.

Semua relasi harus memiliki satu atau lebih atribut luar biasa yang mewakili pengidentifikasi unik untuk setiap tupel. Dalam bahasa gaul basis data, itulah kunci dari tabel. Atribut non-kunci bergantung pada kunci dalam arti bahwa setiap nilai kunci menentukan satu nilai yang mungkin untuk setiap atribut.

Bayangkan sebuah tabel informasi kendaraan di mana kuncinya adalah plat nomor. Plat nomor menentukan atribut setiap kendaraan (seperti pabrikan, model, pemilik, dll.), karena aturan domain mencegah dua kendaraan berbeda berbagi pelat nomor yang sama.

Basis Data Relasional

Sistem manajemen basis data relasional (RDBMS) menerapkan model relasional, dengan menghormati prinsip-prinsipnya. Mereka menawarkan cara untuk mengambil informasi melalui kueri dan memperbarui informasi melalui transaksi. Agar informasi dalam database relasional mencerminkan fakta dan situasi kehidupan nyata, Anda dapat menentukan kondisi atau batasan khusus untuk domain tempat database diterapkan. Misalnya, dalam tabel yang menyimpan informasi tentang siswa sekolah, batasan dapat diterapkan sehingga tanggal lahir tidak memungkinkan tanggal mendatang atau tanggal yang terlalu jauh di masa lalu.

Organisasi tabel dalam database biasanya disebut sebagai skema database. Selain tabel, skema merinci batasan yang melibatkan pasangan tabel yang disebut hubungan. Suatu hubungan menghubungkan dua tabel dengan menerapkan batasan bahwa nilai di bidang salah satu tabel sesuai dengan nilai di kunci utama tabel lainnya.

Skema basis data biasanya diwakili oleh diagram hubungan entitas (ERD), alat umum untuk perancang basis data mana pun.

ERD yang mewakili model data pelanggan.

Anomali dan Normalisasi

Semua konsep yang telah kita bahas sejauh ini cukup jelas bukan? Sekarang kita dapat berbicara tentang anomali yang terjadi dalam database karena desain yang cacat atau tidak memadai (yaitu database tidak cukup mencerminkan realitas yang coba direpresentasikan).

Anomali terjadi ketika operasi penyisipan, pembaruan, atau penghapusan menghasilkan inkonsistensi dalam data. Misalnya, Anda memiliki tabel untuk menyimpan data penjualan. Untuk setiap penjualan (yaitu di setiap catatan tabel), nama dan alamat pelanggan dicatat. Anomalinya adalah sebagai berikut:

  1. Jika alamat pelanggan diubah di salah satu penjualan, dan
  2. Pelanggan yang sama memiliki penjualan lain,
  3. Penjualan lainnya akan memiliki alamat yang kedaluwarsa.

Untuk menghindari anomali, Anda dapat menerapkan teknik desain yang disebut normalisasi database. Ini melibatkan penguraian tabel dan kolom (yaitu memecahnya menjadi bagian-bagian yang lebih kecil) untuk menghindari cacat desain seperti:

  • Kolom yang menyimpan lebih dari satu informasi (misalnya nomor ID item serta namanya).
  • Menyimpan informasi yang sama lebih dari sekali dalam tabel yang sama.
  • Bidang yang bergantung pada bidang non-kunci lainnya.

Tabel yang tidak dinormalisasi (kiri) versus skema yang dinormalisasi (kanan).

Data Warehouse dan Denormalisasi

Beberapa database digunakan untuk menanyakan informasi dalam jumlah besar alih-alih pemrosesan transaksi online (OLTP). Basis data ini disebut gudang data.

Informasi dalam gudang data tidak berasal dari antarmuka pengguna (misalnya, dimasukkan langsung dari sistem pemesanan e-niaga). Itu berasal dari proses batch yang mengumpulkan informasi dari sumber yang berbeda, memprosesnya, membersihkannya, dan menyimpannya dalam tabel. Untuk alasan ini, kita dapat mengasumsikan bahwa gudang data tidak terkena anomali yang sama seperti database konvensional.

Karena itu, gudang data tidak perlu mempertahankan kondisi normalisasi yang sama seperti database OLTP. Di sisi lain, lebih penting untuk mengoptimalkan efisiensi kueri di gudang data. Inilah sebabnya mengapa denormalisasi diterapkan di gudang data; teknik ini menggunakan sejumlah redundansi untuk menyederhanakan kueri dan menghindari skema yang berantakan dengan jumlah tabel yang berlebihan.

Skema gudang data biasa.

Data Besar

Seperti pergudangan data, konsep Big Data mengacu pada repositori yang menampung sejumlah besar data. Namun, ada perbedaan penting antara kedua konsep tersebut. Gudang data dirancang untuk tujuan tertentu dan ditujukan untuk menghasilkan laporan yang perilaku dan formatnya telah diketahui sebelumnya.

Big Data, di sisi lain, bertujuan untuk mengumpulkan data dalam jumlah besar yang dihasilkan dengan kecepatan tinggi dari berbagai sumber – mis. informasi dari media sosial, transaksi mikro, atau sensor pintar. Informasi dalam jumlah besar ini dapat digunakan untuk eksplorasi dan analisis atau untuk melatih model pembelajaran mesin.

Dalam desain database Big Data, penghematan ruang penyimpanan dan partisi data (antara lain) diprioritaskan untuk memungkinkan paralelisme dan pengambilan data secara real-time. Selain itu, sistem database non-relasional atau NoSQL digunakan, yang menawarkan alternatif yang lebih baik untuk menangani informasi yang tidak terstruktur.

Teknologi seperti NoSQL dan konsep Big Data sendiri relatif baru dibandingkan dengan database relasional yang sudah berusia lebih dari 40 tahun. Itulah sebabnya, sebagai perancang database, Anda harus memperhatikan perkembangan baru di bidang ini. Perlu diingat bahwa Big Data juga merupakan bisnis besar. Banyak perusahaan ingin mengambil posisi terdepan di dalamnya dan sedang mengembangkan alat dan teknologi baru untuk melakukannya.

Administrasi Basis Data

Setelah database aktif dan berjalan, seseorang harus mengurus manajemen hariannya. Artinya melakukan tugas rutin agar database tidak pernah menjadi hambatan bagi aplikasi yang menggunakannya. Tugas administrasi termasuk memelihara cadangan, memantau konsumsi ruang penyimpanan, mendeteksi kerusakan di antara proses, dan memperbaiki masalah data yang mencegah operasi normal aplikasi.

Orang yang memiliki keterampilan database untuk menangani tugas-tugas ini adalah administrator database, atau DBA – jika memang ada. Dalam organisasi yang sangat kecil – atau dalam lingkungan pengembangan di mana pengoperasian database tidak penting untuk bisnis – tanggung jawab untuk pemeliharaan database mungkin jatuh pada pemodel database. Oleh karena itu, Anda harus memiliki pengetahuan yang memungkinkan Anda mengambil alih dari DBA dalam situasi tertentu. Namun, dalam situasi apa pun Anda tidak boleh menerima tanggung jawab untuk mengelola database di lingkungan produksi yang mendukung aplikasi bisnis atau misi penting .

Tugas administrasi sangat bervariasi tergantung pada sistem database dan infrastruktur yang dipasang. Misalnya, tugas mengelola database Microsoft SQL Server sangat berbeda dengan tugas mengelola database MySQL atau Oracle. Dan mengelola server yang Anda jalankan secara lokal di notebook Anda sangat berbeda dengan mengelola server yang berjalan di Cloud.

Saya tidak menyarankan untuk mendedikasikan banyak upaya untuk mempelajari cara mengelola server basis data tertentu, karena Anda akan berurusan dengan basis data dan lingkungan yang sangat berbeda sepanjang karier Anda. Tidak ada gunanya bagi Anda untuk berspesialisasi hanya dalam satu.

Manajemen Konkurensi dan Transaksi

Akses serentak ke database dapat menyebabkan masalah dalam aplikasi ketika beberapa pengguna mencoba mengakses sumber daya yang sama pada waktu yang sama. Kami mungkin berpikir bahwa, sebagai desainer, ini bukan urusan kami dan merupakan tanggung jawab DBA untuk menangani masalah ini. Kami mungkin juga berpikir bahwa ini adalah kesalahan pemrogram karena membuat aplikasi yang memungkinkan mereka.

Namun, desainer dapat melakukan bagian mereka untuk meminimalkan potensi masalah konkurensi dengan merancang skema yang menghindarinya.

Banyak masalah konkurensi terjadi ketika transaksi yang panjang dan kompleks dijalankan pada database; saat transaksi sedang diproses, tabel yang terlibat diblokir untuk proses lain yang membutuhkannya untuk membaca atau menulis informasi. Untuk menghindari masalah seperti ini, hal terbaik yang dapat Anda lakukan adalah memastikan bahwa desain Anda memenuhi setidaknya hingga bentuk normal ketiga. Maka akan menjadi tanggung jawab programmer untuk memikirkan transaksi dengan benar untuk menghindari kebuntuan.

Tetapi Anda juga dapat menggunakan strategi yang menghindari konkurensi, seperti skema partisi atau pengelompokan tabel sesuai dengan fungsi yang dipenuhi masing-masing.

Mari kita bayangkan database untuk situs e-commerce. Anda dapat menempatkan tabel data master untuk produk, stok, dan harga dalam satu skema dan pesanan dan penjualan di skema lain, bersama dengan tampilan atau replika baca-saja tabel dari skema pertama. Ini membantu menghindari kesalahan saat menjalankan transaksi yang memperbarui data master.

Alat Desain Basis Data

Jika Anda memahami model relasional, diagram hubungan entitas, dan teknik normalisasi, Anda dapat mendesain database tanpa alat lain selain pensil dan kertas. Namun, kinerja Anda akan sangat ditingkatkan jika Anda menggunakan alat cerdas, terutama yang dapat mengotomatiskan tugas desain tertentu seperti memindahkan atau memodifikasi objek dalam diagram, mendeteksi kesalahan desain, menghasilkan skrip SQL untuk membuat atau memperbarui database, dan membalikkan- merekayasa desain database yang ada.

Menguasai alat khusus seperti platform Vertabelo akan memungkinkan Anda bekerja lebih cepat. Dan itu akan membuat Anda menonjol dari desainer lain yang tidak memiliki bantuan ini.

SQL dan Pemrograman

Kami semua ingin dapat memberikan desain basis data, katakan dengan bangga "Pekerjaan saya di sini sudah selesai" dan pergi untuk liburan yang memang layak. Tapi biasanya, situasi ideal itu tidak pernah terjadi. Setelah Anda menyelesaikan desain Anda, pemrogram aplikasi perlu menggunakannya, dan mereka harus memiliki Anda untuk membantu mereka.

Salah satu cara Anda harus terus membantu dalam proyek pengembangan adalah dengan menulis tampilan, pemicu, prosedur tersimpan, dan hal-hal lain dalam SQL (Bahasa Kueri Terstruktur) untuk menyelesaikan kebutuhan aplikasi tertentu. Cara lain adalah dengan mengawasi tugas pemrograman yang dilakukan dengan sesuatu yang disebut Object-Relational Mapping (ORM).

ORM dimaksudkan untuk mengabstraksi akses data dari RDBMS tertentu. Sisi baiknya adalah programmer tidak perlu khawatir tentang spesifikasi database yang akan mereka gunakan – dengan kata lain, mereka tidak perlu peduli jika RDBMS adalah MySQL, Oracle, IBM DB2, MS SQL Server , atau yang lainnya.

Kelemahan dari ORM adalah bahwa objek desain database – tabel, atribut, dan hubungan – didefinisikan dalam kode bahasa pemrograman tingkat tinggi seperti Java, Python, R, atau C#. Dengan kata lain, mereka tidak dapat dilihat oleh desainer database kami.

Solusi untuk masalah ini terletak pada metodologi pengembangan Agile dan filosofi kolaboratif mereka. Ini mempromosikan desainer dan pemrogram yang bekerja bersama selama proyek, jadi Anda ingin menjaga hubungan yang baik dengan pemrogram. Anda harus bersedia duduk di sebelahnya, melihat kode pemrograman, dan bersama-sama menulis definisi objek data.

Soft Skills Database Designer Harus Dimiliki

Selain pengetahuan teoritis dan teknis khusus untuk desain database, seorang desainer idealnya harus memiliki keterampilan lain yang dikenal sebagai 'soft skill'. Keterampilan ini – seperti menjadi komunikator yang baik dan memahami visi bisnis untuk produk akhir – berdampak pada keberhasilan pekerjaan Anda secara tidak langsung. Yang saya sebutkan di bawah hanyalah beberapa contoh, tetapi masih banyak lagi soft skill yang sangat dihargai oleh calon pemberi kerja.

Visi Bisnis

Saat Anda mendesain database, Anda mewakili realitas bisnis dalam hal objek data yang saling terkait. Kami telah melihat bahwa desain harus memenuhi kondisi standarisasi dan harus menghindari inkonsistensi, anomali, dan masalah konkurensi. Namun yang sama pentingnya – atau mungkin lebih penting – adalah desainnya selaras dengan visi bisnis siapa pun yang membayar gaji Anda.

Memahami visi bisnis akan memungkinkan Anda untuk lebih memahami pentingnya setiap persyaratan dan memandu keputusan Anda sehingga desain Anda lebih selaras dengan tujuan organisasi.

Berikut adalah contoh sederhana tentang bagaimana memahami visi bisnis akan membentuk pekerjaan Anda. Anda mungkin berpikir bahwa menggunakan kunci pengganti dalam tabel mengacaukan desain Anda, menambahkan elemen yang tidak perlu dan mengganggu. Tetapi dengan menghilangkan kunci pengganti, Anda dapat memperlambat kueri pada tabel tersebut karena kunci tipe INTEGER dapat memberikan kinerja yang unggul. Jika visi bisnis adalah menyediakan kueri cepat, maka kunci pengganti adalah jalan yang harus ditempuh.

Keterampilan Komunikasi

Itu tidak cukup untuk membuat desain yang bagus. Anda juga harus bisa menjelaskan mengapa desain Anda berhasil. Caranya adalah dengan mengetahui cara menyajikannya, baik secara diskursif (lisan atau tulisan) maupun visual.

Buat daftar kekuatan desain Anda sehingga menonjol. Pikirkan tentang keputusan yang Anda buat untuk membuatnya dan tuliskan alasan keputusan tersebut. Bersiaplah untuk mempertahankan keputusan dan desain Anda kepada mereka yang tidak memahaminya atau yang ingin mengubahnya, menjadikannya tidak sempurna atau cacat.

Namun Anda juga harus bersedia menerima kritik yang membangun dan mempertimbangkan sudut pandang yang berbeda dengan Anda. Terkadang seorang programmer dapat menemukan masalah yang tidak Anda lihat dan memberi Anda nasihat yang baik. Jangan abaikan rekan kerja Anda, karena mengira mereka tidak memiliki pengetahuan basis data.

Keterampilan Antarpribadi

Saya telah berkomentar di atas tentang keuntungan memiliki hubungan baik dengan programmer. Tidak peduli seberapa maju Anda dalam bidang keahlian Anda, penting bagi Anda untuk mempertahankan sikap persahabatan dengan semua anggota tim, apakah itu penguji yang mendeteksi cacat yang memaksa Anda untuk memikirkan kembali bagian dari desain Anda atau manajer proyek yang membutuhkan Anda untuk menyelesaikan tugas pada tanggal tertentu. Singkatnya, Anda harus menjadi pemain tim . Tidak ada yang ingin memiliki primadona di tim mereka yang merasa tak tergantikan dan ingin memaksakan aturan mereka.

Mungkin saja Anda bukan satu-satunya desainer database dalam tim pengembangan. Mungkin Anda harus memimpin subkelompok rekan kerja Anda. Untuk melakukannya, Anda harus menunjukkan keterampilan kepemimpinan dan bertindak sebagai manajer proyek, memastikan bahwa tim perancang basis data memenuhi tujuannya dan tetap termotivasi.

Cara Mempelajari Keterampilan Desain Basis Data

Anda dapat memperoleh keterampilan yang Anda butuhkan untuk menjadi perancang basis data dari gelar universitas, kursus, buku, dan artikel khusus. Keuntungan dari kursus universitas adalah bahwa mereka memberi Anda semua pengetahuan yang Anda butuhkan dan mendukung pengetahuan itu dengan gelar yang diakui. Kerugiannya adalah mereka membutuhkan investasi waktu dan uang yang besar.

Jika Anda lebih suka belajar sendiri dengan membaca buku dan artikel, Anda akan menghemat waktu dan uang – tetapi Anda memerlukan panduan untuk memandu Anda melalui topik-topik penting dan untuk mengevaluasi pengetahuan Anda. Dan Anda harus menunjukkan pengetahuan Anda dengan cara yang praktis, karena Anda tidak akan memiliki gelar untuk mendukungnya.

Bagaimanapun, apakah Anda belajar dengan mengikuti kursus atau membaca, pengetahuan itu hanya akan berfungsi sebagai landasan. Anda akan belajar paling banyak dengan membuat model, menghadapi masalah nyata, dan mengamati tindakan rekan kerja dan rekan kerja Anda.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kueri Basis Data:Bagaimana Cara Menemukan Jarum di Tumpukan Jerami?

  2. Pentingnya Garis Dasar

  3. Bug T-SQL, perangkap, dan praktik terbaik – determinisme

  4. Prosedur Tersimpan untuk Mendapatkan Status Indeks di Semua Basis Data

  5. Menyederhanakan Pengujian Unit Prosedur Tersimpan Utama Yang Juga Memanggil Prosedur Utilitas