- Manajemen database
- Fitur dan elemen
- -Elements
- Tuple
- Kolom
- Kunci
- -Peraturan integritas
- Integritas kunci
- Integritas referensial
- Bagaimana cara membuat model relasional?
- -Mengumpulkan data
- -Tentukan kunci utama
- -Membuat hubungan antar tabel
- Satu dari banyak
- Rancang dua tabel
- Banyak ke banyak
- Satu per satu
- Keuntungan
- Kemandirian struktural
- Kesederhanaan konseptual
- Kemudahan desain, implementasi, pemeliharaan dan penggunaan
- Kapasitas kueri ad-hoc
- Kekurangan
- Pengeluaran perangkat keras
- Kemudahan desain dapat menyebabkan desain yang buruk
- Fenomena «pulau informasi»
- Contoh
- Referensi
The model database relasional adalah metode data penataan menggunakan hubungan, menggunakan grid seperti struktur, yang terdiri dari kolom dan baris. Ini adalah prinsip konseptual dari database relasional. Hal tersebut dikemukakan oleh Edgar F. Codd pada tahun 1969.
Ini telah menjadi model database yang dominan untuk aplikasi bisnis, jika dibandingkan dengan model database lain, seperti hierarki, jaringan, dan objek.
Sumber: pixabay.com
Codd tidak tahu betapa sangat penting dan berpengaruh pekerjaannya sebagai platform untuk database relasional nantinya. Kebanyakan orang sangat familiar dengan ekspresi fisik suatu hubungan dalam database: tabel.
Model relasional didefinisikan sebagai database yang memungkinkan pengelompokan elemen datanya dalam satu atau lebih tabel independen, yang dapat dikaitkan satu sama lain melalui penggunaan bidang yang umum untuk setiap tabel terkait.
Manajemen database
Tabel database mirip dengan spreadsheet. Namun, hubungan yang dapat dibuat antar tabel memungkinkan database relasional untuk secara efisien menyimpan data dalam jumlah besar, yang dapat diambil secara efektif.
Tujuan dari model relasional adalah menyediakan metode deklaratif untuk menentukan data dan kueri: pengguna secara langsung mendeklarasikan informasi apa yang dikandung database dan informasi apa yang mereka inginkan darinya.
Di sisi lain, mereka menyerahkannya kepada perangkat lunak sistem manajemen basis data untuk menjelaskan struktur data untuk penyimpanan dan prosedur pengambilan untuk menjawab pertanyaan.
Kebanyakan database relasional menggunakan bahasa SQL untuk membuat kueri dan menentukan data. Saat ini terdapat banyak sistem manajemen basis data relasional atau RDBMS (Relational Data Base Management System), seperti Oracle, IBM DB2 dan Microsoft SQL Server.
Fitur dan elemen
- Semua data secara konseptual direpresentasikan sebagai susunan data yang teratur dalam baris dan kolom, disebut relasi atau tabel.
- Setiap tabel harus memiliki header dan body. Header hanyalah daftar kolom. Isi adalah kumpulan data yang mengisi tabel, diatur dalam baris.
- Semua nilai adalah skalar. Artinya, pada posisi baris / kolom tertentu dalam tabel, hanya ada satu nilai.
-Elements
Gambar berikut menunjukkan tabel dengan nama-nama elemen dasarnya, yang menyusun struktur lengkap.
Tuple
Setiap baris data adalah tupel, juga dikenal sebagai catatan. Setiap baris adalah n-tuple, tetapi "n-" biasanya dibuang.
Kolom
Setiap kolom dalam tupel disebut atribut atau field. Kolom mewakili sekumpulan nilai yang dapat dimiliki atribut tertentu.
Kunci
Setiap baris memiliki satu atau lebih kolom yang disebut kunci tabel. Nilai gabungan ini unik untuk semua baris dalam tabel. Melalui kunci ini setiap tupel akan diidentifikasi secara unik. Artinya, kuncinya tidak bisa diduplikasi. Ini disebut kunci primer.
Di sisi lain, kunci asing atau sekunder adalah bidang dalam tabel yang merujuk ke kunci utama dari beberapa tabel lain. Ini digunakan untuk mereferensikan tabel utama.
-Peraturan integritas
Saat mendesain model relasional, Anda menentukan beberapa kondisi yang harus dipenuhi dalam database, yang disebut aturan integritas.
Integritas kunci
Kunci utama harus unik untuk semua tupel dan tidak boleh null (NULL). Jika tidak, Anda tidak akan dapat mengidentifikasi baris secara unik.
Untuk kunci multi-kolom, tidak ada kolom tersebut yang dapat berisi NULL.
Integritas referensial
Setiap nilai kunci asing harus cocok dengan nilai kunci utama tabel referensi atau utama.
Baris dengan kunci asing hanya dapat disisipkan di tabel sekunder jika nilai tersebut ada di tabel utama.
Jika nilai kunci berubah di tabel utama, karena baris diperbarui atau dihapus, maka semua baris di tabel sekunder dengan kunci asing ini harus diperbarui atau dihapus.
Bagaimana cara membuat model relasional?
-Mengumpulkan data
Data yang diperlukan harus dikumpulkan untuk disimpan di database. Data ini dibagi menjadi beberapa tabel.
Tipe data yang sesuai harus dipilih untuk setiap kolom. Misalnya: bilangan bulat, bilangan floating point, teks, tanggal, dll.
-Tentukan kunci utama
Untuk setiap tabel, sebuah kolom (atau beberapa kolom) harus dipilih sebagai kunci utama, yang akan mengidentifikasi setiap baris dalam tabel secara unik. Kunci utama juga digunakan untuk merujuk ke tabel lain.
-Membuat hubungan antar tabel
Sebuah database yang terdiri dari tabel-tabel independen dan tidak berhubungan hanya memiliki sedikit tujuan.
Aspek terpenting dalam mendesain database relasional adalah mengidentifikasi hubungan antar tabel. Jenis hubungan tersebut adalah:
Satu dari banyak
Dalam database "Daftar Kelas", pengajar dapat mengajar tidak ada kelas atau lebih, sementara satu kelas diajar oleh satu pengajar. Jenis hubungan ini dikenal sebagai satu-ke-banyak.
Hubungan ini tidak dapat direpresentasikan dalam satu tabel. Dalam database «Daftar kelas» Anda dapat memiliki tabel yang disebut Guru, yang menyimpan informasi tentang guru.
Untuk menyimpan kelas yang diajarkan oleh setiap guru, Anda dapat membuat kolom tambahan, tetapi Anda akan menghadapi masalah: berapa banyak kolom yang akan dibuat.
Di sisi lain, jika Anda memiliki tabel bernama Classes, yang menyimpan informasi tentang sebuah kelas, Anda dapat membuat kolom tambahan untuk menyimpan informasi tentang pengajar.
Namun, karena pengajar dapat mengajar banyak kelas, datanya akan diduplikasi di banyak baris dalam tabel Kelas.
Rancang dua tabel
Oleh karena itu, Anda perlu mendesain dua tabel: tabel Kelas untuk menyimpan informasi tentang kelas, dengan Class_Id sebagai kunci utama, dan tabel Guru untuk menyimpan informasi tentang guru, dengan Teacher_Id sebagai kunci utama.
Hubungan satu-ke-banyak kemudian dapat dibuat dengan menyimpan kunci utama dari tabel Master (Master_Id) di tabel Kelas, seperti yang diilustrasikan di bawah ini.
Kolom Master_Id dalam tabel Kelas dikenal sebagai kunci asing atau kunci sekunder.
Untuk setiap nilai Master_Id di tabel Master, bisa ada nol atau lebih baris di tabel Classes. Untuk setiap nilai Class_Id di tabel Classes, hanya ada satu baris di tabel Guru.
Banyak ke banyak
Dalam database "Penjualan Produk", pesanan pelanggan dapat berisi beberapa produk, dan produk dapat muncul dalam beberapa pesanan. Jenis hubungan ini dikenal sebagai many to many.
Anda dapat memulai database "Penjualan produk" dengan dua tabel: Produk dan Pesanan. Tabel Produk berisi informasi tentang produk, dengan productID sebagai kunci utama.
Di sisi lain, tabel Pesanan berisi pesanan pelanggan, dengan orderID sebagai kunci utama.
Anda tidak dapat menyimpan produk yang dipesan dalam tabel Pesanan, karena Anda tidak tahu berapa banyak kolom yang harus dipesan untuk produk tersebut. Pesanan juga tidak dapat disimpan dalam tabel Produk karena alasan yang sama.
Untuk mendukung hubungan banyak ke banyak, Anda perlu membuat tabel ketiga, yang dikenal sebagai tabel gabungan (OrderDetails), di mana setiap baris mewakili item dalam urutan tertentu.
Untuk tabel OrderDetails, kunci utama terdiri dari dua kolom: orderID dan productID, yang mengidentifikasi setiap baris secara unik.
Kolom orderID dan productID di tabel OrderDetails digunakan untuk mereferensikan tabel Pesanan dan Produk. Oleh karena itu, mereka juga merupakan kunci asing di tabel OrderDetails.
Satu per satu
Dalam database "Penjualan produk", produk dapat memiliki informasi opsional, seperti deskripsi tambahan dan gambarnya. Menyimpannya di dalam tabel Produk akan menghasilkan banyak ruang kosong.
Oleh karena itu, tabel lain (ProductExtras) dapat dibuat untuk menyimpan data opsional. Hanya satu catatan yang akan dibuat untuk produk dengan data opsional.
Kedua tabel, Products dan ProductExtras, memiliki hubungan satu-ke-satu. Untuk setiap baris dalam tabel Produk, terdapat maksimal satu baris dalam tabel ProductExtras. ProductID yang sama harus digunakan sebagai kunci utama untuk kedua tabel.
Keuntungan
Kemandirian struktural
Dalam model database relasional, perubahan struktur database tidak mempengaruhi akses ke data.
Ketika dimungkinkan untuk membuat perubahan pada struktur database tanpa mempengaruhi kemampuan DBMS untuk mengakses data, dapat dikatakan bahwa independensi struktural telah tercapai.
Kesederhanaan konseptual
Model database relasional bahkan lebih sederhana secara konseptual daripada model database hierarki atau jaringan.
Karena model database relasional membebaskan perancang dari detail penyimpanan fisik data, perancang dapat fokus pada tampilan logis dari database.
Kemudahan desain, implementasi, pemeliharaan dan penggunaan
Model database relasional mencapai independensi data dan independensi struktur, membuat desain, pemeliharaan, administrasi, dan penggunaan database jauh lebih mudah daripada model lainnya.
Kapasitas kueri ad-hoc
Kehadiran kapabilitas kueri yang sangat kuat, fleksibel, dan mudah digunakan adalah salah satu alasan utama popularitas yang luar biasa dari model database relasional.
Bahasa kueri dari model database relasional, yang disebut bahasa kueri terstruktur, atau SQL, membuat kueri ad-hoc menjadi kenyataan. SQL adalah bahasa generasi keempat (4GL).
4GL memungkinkan pengguna untuk menentukan apa yang harus dilakukan, tanpa menentukan bagaimana itu harus dilakukan. Dengan demikian, dengan SQL, pengguna dapat menentukan informasi apa yang mereka inginkan dan meninggalkan detail tentang cara mendapatkan informasi tersebut ke database.
Kekurangan
Pengeluaran perangkat keras
Model database relasional menyembunyikan kerumitan implementasinya dan detail penyimpanan fisik data pengguna.
Untuk melakukan ini, sistem database relasional membutuhkan komputer dengan perangkat keras dan perangkat penyimpanan data yang lebih kuat.
Oleh karena itu, RDBMS membutuhkan mesin yang kuat agar dapat berjalan dengan lancar. Namun, karena kekuatan pemrosesan komputer modern meningkat pada tingkat eksponensial, kebutuhan akan daya pemrosesan yang lebih besar dalam skenario saat ini tidak lagi menjadi masalah yang sangat besar.
Kemudahan desain dapat menyebabkan desain yang buruk
Database relasional mudah dirancang dan digunakan. Pengguna tidak perlu mengetahui detail rumit dari penyimpanan fisik data. Mereka tidak perlu tahu bagaimana sebenarnya data disimpan untuk mengaksesnya.
Kemudahan desain dan penggunaan ini dapat mengarah pada pengembangan dan implementasi sistem manajemen database yang dirancang dengan buruk. Karena basis data efisien, ketidakefisienan desain ini tidak akan terungkap ketika basis data dirancang dan ketika hanya ada sejumlah kecil data.
Seiring pertumbuhan database, database yang dirancang dengan buruk akan memperlambat sistem dan menyebabkan penurunan kinerja dan kerusakan data.
Fenomena «pulau informasi»
Seperti disebutkan sebelumnya, sistem database relasional mudah diimplementasikan dan digunakan. Ini akan menciptakan situasi di mana terlalu banyak orang atau departemen akan membuat database dan aplikasi mereka sendiri.
Pulau informasi ini akan mencegah integrasi informasi, yang penting untuk kelancaran dan fungsi organisasi yang efisien.
Basis data individu ini juga akan menimbulkan masalah seperti inkonsistensi data, duplikasi data, redundansi data, dll.
Contoh
Misalkan database yang terdiri dari tabel Pemasok, Suku Cadang, dan Pengiriman. Struktur tabel dan beberapa sample record adalah sebagai berikut:
Setiap baris dalam tabel Pemasok diidentifikasi oleh nomor pemasok unik (SNo), yang secara unik mengidentifikasi setiap baris dalam tabel. Demikian juga, setiap bagian memiliki nomor bagian unik (PNo).
Selain itu, tidak boleh ada lebih dari satu pengiriman untuk kombinasi Pemasok / Bagian tertentu dalam tabel Pengiriman, karena kombinasi ini adalah kunci utama Pengiriman, yang berfungsi sebagai tabel gabungan, karena merupakan hubungan banyak-ke-banyak.
Hubungan antara tabel Suku Cadang dan Pengiriman diberikan dengan memiliki bidang PNo (nomor bagian) yang sama dan hubungan antara Pemasok dan Pengiriman muncul dengan memiliki bidang SNo (nomor pemasok) yang sama.
Menganalisis tabel Pengiriman, diperoleh informasi bahwa total 500 mur dikirim dari pemasok Suneet dan Ankit, masing-masing 250.
Demikian pula, total 1.100 baut dikirim dari tiga pemasok berbeda. 500 sekrup biru dikirim dari pemasok Suneet. Tidak ada pengiriman sekrup merah.
Referensi
- Wikipedia, ensiklopedia gratis (2019). Model relasional. Diambil dari: en.wikipedia.org.
- Techopedia (2019). Model Relasional. Diambil dari: ceilingpedia.com.
- Dinesh Thakur (2019). Model Relasional. Catatan Ecomputer. Diambil dari: ecomputernotes.com.
- Geeks for Geeks (2019). Model Relasional. Diambil dari: geeksforgeeks.org.
- Universitas Teknologi Nanyang (2019). Tutorial Memulai Cepat tentang Desain Database Relasional. Diambil dari: ntu.edu.sg.
- Adrienne Watt (2019). Bab 7 Model Data Relasional. BC Open Textbooks. Diambil dari: opentextbc.ca.
- Toppr (2019). Database dan Skema Relasional. Diambil dari: toppr.com.