Desain basis data. Praktik terbaik

Untuk mengantisipasi dimulainya aliran berikutnya pada tingkat tersebut "basis data" Kami telah menyiapkan materi penulis kecil dengan tips penting untuk mendesain database. Semoga materi ini bermanfaat bagi Anda.

Desain basis data. Praktik terbaik

Basis data ada di mana-mana: dari blog dan direktori paling sederhana hingga sistem informasi yang andal dan jejaring sosial yang besar. Apakah database itu sederhana atau kompleks tidak begitu penting, yang penting adalah merancangnya dengan benar. Ketika sebuah database dirancang tanpa berpikir panjang dan tanpa pemahaman yang jelas tentang tujuannya, hal itu bukan hanya tidak efektif, tetapi pekerjaan selanjutnya dengan database akan menjadi siksaan yang nyata, hutan yang tidak dapat ditembus oleh pengguna. Berikut beberapa tip desain database yang akan membantu Anda membuat produk yang berguna dan mudah digunakan.

1. Tentukan untuk apa tabel itu dan apa strukturnya

Desain basis data. Praktik terbaik

Saat ini, metode pengembangan seperti Scrum atau RAD (Rapid Application Development) membantu tim IT mengembangkan database dengan cepat. Namun karena mengejar waktu, godaannya sangat besar untuk langsung terjun membangun basis, samar-samar membayangkan apa tujuannya, seperti apa hasil akhirnya.
 
Seolah-olah tim berfokus pada pekerjaan yang efisien dan cepat, namun ini hanya khayalan belaka. Semakin jauh dan cepat Anda mendalami proyek, semakin banyak waktu yang diperlukan untuk mengidentifikasi dan mengubah kesalahan dalam desain database.

Jadi, hal pertama yang perlu Anda putuskan adalah menentukan tujuan database Anda. Untuk jenis aplikasi apa database sedang dikembangkan? Akankah pengguna hanya bekerja dengan catatan dan perlu memperhatikan transaksi, atau dia lebih tertarik pada analisis data? Di mana pangkalan itu harus dikerahkan? Apakah ini akan melacak perilaku pelanggan atau sekadar mengelola hubungan pelanggan? 

Semakin cepat tim desain menjawab pertanyaan-pertanyaan ini, proses desain database akan semakin lancar.

2. Data apa yang harus saya pilih untuk penyimpanan?

Desain basis data. Praktik terbaik

Rencanakan ke depan. Pemikiran tentang apa yang akan dilakukan oleh situs atau sistem yang databasenya dirancang di masa depan. Penting untuk melampaui persyaratan sederhana dari spesifikasi teknis. Hanya saja, jangan mulai memikirkan tentang semua kemungkinan jenis data yang akan disimpan pengguna. Sebaliknya, pikirkan apakah pengguna dapat menulis postingan, mengunggah dokumen atau foto, atau bertukar pesan. Jika ini masalahnya, maka Anda perlu mengalokasikan ruang untuknya di database.

Bekerja dengan tim, departemen, atau organisasi yang basis desainnya akan didukung di masa depan. Berkomunikasi dengan orang-orang di berbagai tingkatan, mulai dari spesialis layanan pelanggan hingga kepala departemen. Dengan cara ini, dengan bantuan umpan balik, Anda akan mendapatkan gambaran yang jelas tentang kebutuhan perusahaan. 

Tidak dapat dihindari, kebutuhan pengguna dalam departemen yang sama sekalipun akan menimbulkan konflik. Jika Anda mengalami hal ini, jangan takut untuk mengandalkan pengalaman Anda sendiri dan temukan kompromi yang cocok untuk semua pihak dan memenuhi tujuan akhir database. Yakinlah: di masa depan Anda akan menerima +100500 karma dan segunung kue.

3. Modelkan data dengan hati-hati

Desain basis data. Praktik terbaik

Ada beberapa poin penting yang perlu diperhatikan saat memodelkan data. Seperti yang kami katakan sebelumnya, tujuan database menentukan metode mana yang akan digunakan dalam pemodelan. Jika kita merancang database untuk pemrosesan catatan online (OLTP), dengan kata lain untuk membuat, mengedit dan menghapus catatan, kita menggunakan pemodelan transaksi. Jika database harus relasional, maka yang terbaik adalah menggunakan pemodelan multidimensi.

Selama pemodelan, model data konseptual (CDM), fisik (PDM), dan logis (LDM) dibangun. 

Model konseptual mendeskripsikan entitas dan tipe data yang disertakannya, serta hubungan di antara mereka. Bagilah data Anda menjadi beberapa bagian yang logis - ini membuat hidup lebih mudah.
Yang utama adalah moderasi, jangan berlebihan.

Jika suatu entitas sangat sulit untuk diklasifikasikan dalam satu kata atau frase, maka sekarang saatnya menggunakan subtipe (entitas anak).

Jika suatu entitas menjalani kehidupannya sendiri, memiliki atribut yang menggambarkan perilaku dan penampilannya, serta hubungan dengan objek lain, maka Anda dapat dengan aman menggunakan tidak hanya subtipe, tetapi juga supertipe (entitas induk). 

Jika Anda mengabaikan aturan ini, pengembang lain akan bingung dengan model Anda dan tidak sepenuhnya memahami data serta aturan cara mengumpulkannya.

Model konseptual diimplementasikan dengan menggunakan model logis. Model-model ini seperti peta jalan untuk desain database fisik. Dalam model logis, entitas data bisnis diidentifikasi, tipe data ditentukan, dan status kunci aturan ditentukan yang mengatur hubungan antar data.

Kemudian Model Data Logis dibandingkan dengan platform DBMS (sistem manajemen basis data) yang telah dipilih sebelumnya dan diperoleh Model Fisik. Ini menggambarkan bagaimana data disimpan secara fisik.

4. Gunakan tipe data yang tepat

Desain basis data. Praktik terbaik

Penggunaan tipe data yang salah dapat mengakibatkan data kurang akurat, kesulitan dalam menggabungkan tabel, kesulitan menyinkronkan atribut, dan ukuran file yang membengkak.
Untuk memastikan integritas informasi, atribut harus berisi hanya tipe data yang dapat diterima. Jika umur dimasukkan ke dalam database, pastikan kolom tersebut menyimpan bilangan bulat maksimal 3 digit.

Buat minimal kolom kosong dengan nilai NULL. Jika Anda membuat semua kolom sebagai NULL, ini adalah kesalahan besar. Jika Anda memerlukan kolom kosong untuk menjalankan fungsi bisnis tertentu, ketika datanya tidak diketahui atau belum masuk akal, silakan membuatnya. Lagi pula, kita tidak bisa mengisi kolom “Tanggal meninggal” atau “Tanggal pemberhentian” terlebih dahulu, kita bukan peramal yang menunjuk ke langit :-).

Sebagian besar perangkat lunak pemodelan (ER/Studio, MySQL Workbench, SQL DBM, gliffy.com) data memungkinkan Anda membuat prototipe wilayah data. Hal ini memastikan tidak hanya tipe data yang benar, logika aplikasi, dan kinerja yang baik, namun juga nilai yang diperlukan.

5. Bersikaplah alami

Desain basis data. Praktik terbaik

Saat memutuskan kolom mana dalam tabel yang akan digunakan sebagai kunci, selalu pertimbangkan kolom mana yang dapat diedit oleh pengguna. Jangan pernah memilihnya sebagai kunci - ide yang buruk. Apa pun bisa terjadi, tapi Anda harus memastikan bahwa itu unik.

Yang terbaik adalah menggunakan kunci alami, atau bisnis. Ini memiliki arti semantik, sehingga Anda akan menghindari duplikasi dalam database. 

Kecuali jika kunci bisnis itu unik (nama depan, nama belakang, posisi) dan diulangi di baris tabel yang berbeda atau harus diubah, maka kunci buatan yang dihasilkan harus ditetapkan sebagai kunci utama.

6. Normalisasikan secukupnya

Desain basis data. Praktik terbaik

Untuk mengatur data dalam database secara efektif, Anda perlu mengikuti serangkaian pedoman dan menormalkan database. Ada lima bentuk normal yang harus diikuti.
Dengan normalisasi, Anda menghindari redundansi dan memastikan integritas data yang digunakan dalam aplikasi atau situs Anda.

Seperti biasa, semuanya harus dalam jumlah sedang, bahkan normalisasi. Jika ada terlalu banyak tabel dalam database dengan kunci unik yang sama, maka Anda terbawa suasana dan melakukan normalisasi database secara berlebihan. Normalisasi yang berlebihan berdampak negatif terhadap kinerja database.

7. Tes lebih awal, sering-seringlah tes

Desain basis data. Praktik terbaik

Rencana pengujian dan pengujian yang tepat harus menjadi bagian dari desain database.

Cara terbaik untuk menguji database Anda adalah melalui Integrasi Berkelanjutan. Simulasikan skenario “sehari dalam kehidupan database” dan periksa apakah semua kasus edge ditangani dan kemungkinan interaksi pengguna. Semakin cepat Anda menemukan bug, semakin Anda menghemat waktu dan uang.

Ini hanyalah tujuh tips yang dapat Anda gunakan untuk merancang database produktivitas dan efisiensi yang hebat. Jika Anda mengikutinya, Anda akan terhindar dari sebagian besar sakit kepala di masa depan. Tips ini hanyalah puncak gunung es dalam pemodelan database. Ada banyak sekali peretasan kehidupan. Yang mana yang Anda gunakan?

Sumber: www.habr.com

Tambah komentar