Mengapa database dan model relasional
| English | Bahasa Indonesia |
|---|---|
| table/ˈteɪbl/ | tabel |
| relational database/rɪˈleɪʃənl ˈdeɪtəbeɪs/ | basis data relasional |
| flat files/flæt faɪlz/ | file datar |
| data redundancy/ˈdeɪtə rɪˈdʌndənsi/ | redundansi data |
| data inconsistency/ˈdeɪtə ˌɪnkənˈsɪstənsi/ | ketidaksesuaian data |
| integrity/ɪnˈteɡrɪti/ | integritas |
| field/fiːld/ | medan |
| entity/ˈentɪti/ | entitas |
| record/ˈrekɔːd/ | rekaman |
| tuple/ˈtuːpl/ | tuple |
| attribute/ˈætrɪbjuːt/ | atribut |
| primary key/ˈpraɪməri kiː/ | kunci utama |
| composite key/ˈkɒmpəzɪt kiː/ | kunci komposit |
| candidate key/ˈkændɪdeɪt kiː/ | kandidat kunci |
| secondary key/ˈsekəndəri kiː/ | kunci sekunder |
| indexing/ˈɪndeksɪŋ/ | indeksasi |
| foreign key/ˈfɒrən kiː/ | kunci asing |
| referential integrity/ˌrefəˈrenʃl ɪnˈteɡrɪti/ | integritas referensial |
| one-to-many/wʌn tə ˈmeni/ | satu-ke-banyak |
| many-to-many/ˈmeni tə ˈmeni/ | banyak-ke-banyak |
Makalah yang tidak diinginkan IBM
- Pada tahun 1970, seorang peneliti IBM bernama Edgar Codd menerbitkan makalah seluas dua belas halaman yang mengusulkan agar data disimpan dalam tabel sederhana, dihubungkan oleh nilai bersama, dan diminta melalui bahasa yang menyatakan apa yang Anda inginkan alih-alih di mana itu berada di disk.
- IBM sudah menjual basis data yang menyimpan data sebagai pohon yang terkait dengan tata letak file, jadi mereka mengabaikannya selama bertahun-tahun. Setiap program yang ditulis terhadap file-file tersebut harus ditulis ulang setiap kali tata letaknya berubah.
- Pada tahun 1980-an, setiap bank, maskapai penerbangan, dan departemen pemerintah beralih ke tabel Codd. Setengah abad kemudian, mereka masih berjalan di atasnya.
- Pelajaran ini adalah masalah pendekatan berbasis file, bagaimana basis data relasional menyelesaikannya, dan kata-kata yang harus Anda gunakan secara tepat.
Pendekatan berbasis file
- Sebelum basis data, setiap program menyimpan file datar sendiri: program penjualan memiliki file pelanggan, program akuntansi memiliki yang lain, program pengiriman memiliki yang ketiga.
- Setiap file memiliki tata letak tetap yang bergantung pada kode program, dan tidak ada yang di luar program mengetahui isinya.
- Ini berfungsi untuk satu program kecil. Masalah dimulai ketika program kedua membutuhkan data yang sama.

Tiga program, tiga salinan pelanggan
Keterbatasan
- Redundansi data: data yang sama, misalnya alamat pelanggan, disimpan di beberapa file, membuang penyimpanan dan usaha.
- Ketidakkonsistenan data: salinannya diperbarui secara terpisah, sehingga berbeda-beda dan tidak ada yang tahu mana yang benar.
- Ketergantungan data: program terikat pada format file, sehingga perubahan tata letak berarti menulis ulang setiap program yang menggunakan file tersebut.
- Integritas sulit ditegakkan, data sulit dibagikan dengan aman, pencarian melintasi file lambat, dan keamanan tidak dapat diatur per bidang.
Menyimpan alamat pelanggan dalam beberapa file terpisah menyebabkan:
Data yang sama disimpan di banyak tempat (redundansi) dapat diperbarui secara terpisah dan menjadi inkonsisten.
Dalam sistem file datar, data yang sama sering diduplikasi di berbagai file, yang dapat menjadi inkonsisten jika hanya satu salinan yang diperbarui.
Redundansi dan inkonsistensi yang terjadi inilah masalah inti yang diselesaikan oleh model relasional.
Manakah yang merupakan keterbatasan pendekatan berbasis file? Pilih semua yang berlaku.
Redundansi, inkonsistensi, dan ketergantungan data adalah tiga batasan yang dinamakan. Tabel dan penggabungan merupakan bagian dari pendekatan relasional yang menggantinya.
Bagaimana basis data relasional menjawabnya
- Basis data relasional menyimpan data dalam tabel yang dikelola oleh satu perangkat lunak, DBMS, yang digunakan oleh setiap program.
- Setiap fakta disimpan sekali, sehingga redundansi dan ketidakkonsistenan hilang: alamat diubah di satu tempat dan setiap program melihat perubahan tersebut.
- Program meminta data ke DBMS berdasarkan nama, sehingga penyimpanan dapat berubah tanpa program berubah: 独立性 data.
- Aturan integritas, hak akses, dan backup diterapkan secara terpusat, dan setiap tabel dapat dicari atau digabungkan dengan tabel lainnya.

Satu salinan data, satu penjaga gerbang
Bagaimana basis data relasional menghilangkan inkonsistensi data?
Satu salinan, satu pembaruan, tanpa penyimpangan. DBMS memberikan setiap program nilai terkini yang sama.
Kosakata: tabel, baris, dan kolom
- Sebuah tabel (relasi) adalah kisi-kisi baris dan kolom, satu tabel untuk setiap jenis entitas, yaitu sesuatu tentang mana data disimpan:
CUSTOMER,ORDER,PRODUCT. - Sebuah rekaman adalah satu baris, satu实例 dari entitas; istilah formalnya adalah tuple.
- Sebuah bidang adalah satu kolom, satu bagian informasi tentang setiap rekaman; istilah formalnya adalah atribut.

Baris adalah rekaman, kolom adalah bidang, dan satu kolom masuk ke dalam tabel lainnya
Baca tabel relasional dengan SELECT
Tabel relasional hanyalah baris (rekaman) dan kolom (bidang). WHERE menyaring baris yang memenuhi kondisi; SELECT kemudian hanya menampilkan kolom yang diminta.
Kosakata: kunci
- Sebuah kunci utama adalah sebuah bidang, atau kombinasi bidang, yang mengidentifikasi setiap rekaman secara unik; ia tidak pernah kosong dan tidak pernah diduplikasi. Kunci komposit adalah kunci utama yang terdiri dari dua atau lebih bidang.
- Sebuah kandidat kunci adalah bidang apa pun atau kombinasi yang dapat berfungsi sebagai kunci utama. Kunci sekunder adalah bidang non-utama yang diindeks untuk pencarian cepat; pengindeksan membangun indeks pada sebuah bidang agar pencarian dan penggabungan berjalan lebih cepat.
- Sebuah kunci asing adalah bidang yang nilainya cocok dengan kunci utama tabel lain, menghubungkan keduanya. Dalam notasi singkat, kunci utama dicetak tebal dan kunci asing dicatat:
CUSTOMER(CustomerID, Name, Phone)
ORDER(OrderID, CustomerID, OrderDate) -- CustomerID is a foreign key → CUSTOMER
Kunci utama:
Kunci utama secara unik mengidentifikasi setiap baris. Kunci asing adalah kunci yang menghubungkan ke tabel lain.
Cocokkan setiap jenis kunci dengan apa itu.
Kunci utama mengidentifikasi baris; kunci asing menghubungkan ke tabel lain; komposit = beberapa bidang bersama; kandidat = kemungkinan kunci utama.
Bidang yang nilainya cocok dengan kunci utama tabel lain adalah kunci ______.
Kunci asing adalah apa yang menciptakan hubungan antara dua tabel.
Contoh dikerjakan: sebutkan bagian-bagian basis data perpustakaan
- Sebuah perpustakaan mencatat buku-bukunya, anggotanya, dan setiap peminjaman. Identifikasi entitas, kunci utama untuk masing-masing, dan kunci asingnya.
- Entitas:
BOOK,MEMBER,LOAN. Kunci utama:BookID,MemberID,LoanID, masing-masing dipilih karena unik untuk setiap rekaman dan tidak pernah kosong; judul atau nama tidak bisa digunakan, karena dua buku dapat berbagi judul yang sama. LOAN(LoanID, BookID, MemberID, DateOut, DateDue):BookIDdanMemberIDadalah kunci asing, masing-masing cocok dengan kunci utama tabelnya sendiri. Nomor telepon anggota harus ada diMEMBER, bukan di setiap peminjaman.
Dalam LOAN(LoanID, BookID, MemberID, DateOut), BookID dan MemberID adalah kunci ____.
Setiapnya cocok dengan kunci utama tabel lain, BOOK dan MEMBER, serta menghubungkan pinjaman ke keduanya.
Hubungan dan integritas referensial
- Sebuah hubungan menghubungkan dua entitas. Satu-satu: setiap anggota memiliki satu kartu perpustakaan. Satu-banyak: satu anggota memiliki banyak peminjaman; setiap peminjaman milik satu anggota. Banyak-banyak: sebuah buku memiliki banyak penulis dan seorang penulis menulis banyak buku.
- Integritas referensial berarti setiap nilai kunci asing harus cocok dengan kunci utama yang sudah ada di tabel yang dirujuknya: tidak boleh ada peminjaman untuk anggota yang tidak ada, tidak boleh ada rekaman yatim.
- DBMS menerapkannya: DBMS menolak penyisipan dengan kunci asing yang tidak dikenal, dan menolak penghapusan rekaman yang masih dirujuk oleh rekaman lain.
Integritas referensial memastikan bahwa:
Ini mencegah rekaman anak yatim — Anda tidak dapat merujuk pada kunci utama yang tidak ada.
Cocokkan setiap hubungan dengan tipenya.
Hitung berapa banyak dari setiap entitas yang dapat dihubungkan ke satu dari yang lain. Banyak-ke-banyak memerlukan tabel penghubung untuk disimpan.
Contoh dikerjakan: apa yang dihentikan integritas referensial
- Seorang pelanggan dengan tiga pesanan yang belum lunas dihapus dari tabel
CUSTOMER. Jelaskan bagaimana integritas referensial berlaku. - Setiap
CustomerIDpesanan adalah kunci asing yang harus cocok dengan pelanggan yang ada. Menghapus pelanggan akan meninggalkan tiga pesanan yang mengarah ke rekaman yang tidak lagi ada: rekakan yang terasing. - Oleh karena itu, DBMS menolak penghapusan tersebut hingga pesannya dihapus atau dialokasikan ulang, atau jika disetel untuk cascade, DBMS juga menghapus pesannya. Dengan cara apapun, tidak ada pesanan yang pernah merujuk pada pelanggan yang tidak ada.
- Sebutkan aturan tersebut, apa yang akan melanggarnya, dan apa yang dilakukan DBMS.
Integritas referensial memungkinkan pelanggan dihapus sementara pesanan di tabel lain masih merujuk pada pelanggan tersebut.
Itu akan menciptakan rekaman anak yatim. DBMS menolak penghapusan, atau meneruskannya ke pesanan, sehingga setiap kunci asing tetap menunjuk pada rekaman yang ada.
Definisi yang diterima oleh penilai
| Istilah | Definisi |
|---|---|
| entitas | sesuatu tentang mana data disimpan, direpresentasikan oleh satu tabel |
| atribut | satu item data tentang entitas, sebuah kolom |
| tuple | satu baris tabel, satu rekaman |
| kunci utama | atribut atau kombinasi atribut yang mengidentifikasi setiap tuple secara unik |
| kandidat kunci | atribut atau kombinasi yang dapat dipilih sebagai kunci utama |
| kunci sekunder | atribut yang diindeks digunakan untuk mencari tabel dengan cepat |
| kunci asing | atribut dalam satu tabel yang merupakan kunci utama dari tabel lain, membentuk koneksi |
| integritas referensial | setiap nilai kunci asing merujuk pada kunci utama yang sudah ada |
⟦⟧ Nilai yang sering terlewat
- Tuple adalah baris, atribut adalah kolom. Menukar keduanya akan mengurangi nilai ujian.
- "Unik" saja tidak mendefinisikan kunci utama; ia mengidentifikasi setiap rekaman dan tidak pernah kosong.
- Kunci asing dapat berulang: satu pelanggan, banyak pesanan. Yang tidak boleh berulang adalah kunci utama.
- Kunci sekunder digunakan untuk pencarian cepat, bukan untuk identifikasi. Jangan menyebutnya "kunci utama kedua".
Anda telah memahaminya
- Pendekatan berbasis file menderita redundansi, inkonsistensi, dan ketergantungan data, dengan integritas, berbagi, pencarian, dan keamanan yang lemah
- basis data relasional menyimpan setiap fakta sekali dalam tabel yang dikelola oleh satu DBMS, sehingga program independen dari penyimpanan dan aturan diterapkan secara terpusat
- entitas → tabel · tuple → rekaman, baris · atribut → bidang, kolom · kunci utama mengidentifikasi, kunci asing menghubungkan, kandidat bisa mengidentifikasi, sekunder diindeks untuk pencarian
- integritas referensial: setiap kunci asing cocok dengan kunci utama yang sudah ada, sehingga tidak ada rekaman yatim