“DATABASE SYSTEM”
Domain -- Domain adalah kumpulan nilai yang diizinkan untuk satu atau lebih atribut.
Domain adalah fitur yang sangat kuat dari model relasional. Setiap atribut dalam suatu
relasi didefinisikan pada domain. Domain mungkin berbeda untuk setiap atribut, atau dua atau
lebih atribut dapat didefinisikan pada domain yang sama. Gambar 4.2 menunjukkan domain untuk
beberapa atribut dariCabang dan Staf hubungan. Perhatikan bahwa pada waktu tertentu, biasanya
akan ada nilai dalam domain yang saat ini tidak muncul sebagai nilai dalam atribut yang sesuai.
Konsep domain penting, karena memungkinkan pengguna untuk mendefinisikan di tempat
sentral makna dan sumber nilai yang dapat dipegang oleh atribut. Akibatnya, lebih banyak
Gambar 4.2 Domain untuk beberapa atribut hubungan cabang dan staf.
informasi tersedia untuk sistem ketika melakukan eksekusi operasi relasional, dan operasi yang
secara semantik salah dapat dihindari. Misalnya, tidak masuk akal untuk membandingkan nama
jalan dengan nomor telepon, meskipun definisi domain untuk kedua atribut ini adalah string karak-
ter. Di sisi lain, sewa bulanan pada properti dan jumlah bulan properti telah disewa memiliki do-
main yang berbeda (yang pertama nilai moneter, yang kedua nilai integer), tetapi masih merupakan
operasi hukum untuk mengalikan dua nilai dari domain-domain ini. Seperti yang diilustrasikan
oleh dua contoh ini, implementasi domain yang lengkap tidak mudah, dan akibatnya, banyak
RDBMS tidak mendukungnya sepenuhnya.
Basis data relasional -- Kumpulan relasi yang dinormalisasi dengan nama relasi yang berbeda.
Sebuah database relasional terdiri dari relasi-relasi yang terstruktur dengan tepat. Kami
menyebut kesesuaian ini sebagainormalisasi. Kami menunda pembahasan normalisasi sampai Bab
14 dan 15.
Terminologi alternatif
Terminologi untuk model relasional bisa sangat membingungkan. Kami telah memperkenal-
kan dua set istilah. Faktanya, kumpulan istilah ketiga kadang-kadang digunakan: suatu relasi dapat
disebut sebagai amengajukan, tupel sebagai catatan, dan atribut sebagai bidang. Terminologi ini
berasal dari fakta bahwa, secara fisik, RDBMS dapat menyimpan setiap relasi dalam sebuah file.
Tabel 4.1 merangkum istilah yang berbeda untuk model relasional.
Syarat Formal Alternatif 1 Alternatif 2
Hubungan Tabel File
Tupel Baris Rekaman
Atribut Kolom Field
4.2.2 Hubungan Matematika
Untuk memahami arti sebenarnya dari istilah hubungan, kita harus meninjau beberapa konkon-
sep dari matematika. Misalkan kita memiliki dua himpunan, D1 dan D2, di mana D1 = {2, 4} dan
D2 = {1, 3, 5}. Produk kartesius dari dua set ini, ditulis D1 X D2, adalah himpunan semua pasangan
terurut sedemikian rupa sehingga elemen pertama adalah anggota dari D1 dan elemen kedua adalah
anggota dari D2. Cara alternatif untuk mengungkapkan ini adalah dengan menemukan semua kom-
binasi elemen dengan yang pertama dari D1 dan yang kedua dari D2. Dalam kasus kami, kami
memiliki:
D1 X D2 = {(2, 1), (2, 3), (2, 5), (4, 1), (4, 3), (4, 5)}
Setiap bagian dari produk Cartesian ini adalah relasi. Misalnya, kita bisa menghasilkan relasi R
seperti yang:
R = {(2, 1), (4, 1)}
Kita dapat menentukan pasangan terurut mana yang akan berada dalam relasi dengan memberikan
beberapa kondisi untuk pemilihannya. Misalnya, jika kita amati bahwaR mencakup semua pasan-
gan terurut di mana elemen kedua adalah 1, maka kita dapat menulis R sebagai:
R = {(x, y) | x ∈ D1, y ∈ D2, dan y = 1}
Dengan menggunakan himpunan yang sama ini, kita dapat membentuk relasi lain S di mana ele-
men pertama selalu dua kali elemen kedua. Dengan demikian, kita dapat menulis S sebagai:
S = {(x, y) | x ∈ D1, y ∈ D2, dan x = 2y}
atau, dalam hal ini,
S = {(2, 1)}
karena hanya ada satu pasangan terurut dalam produk Cartesian yang memenuhi kondisi ini. Kita
dapat dengan mudah memperluas gagasan tentang relasi ke tiga himpunan. Membiarkan D1, D2,
dan D3 menjadi tiga set. Produk Cartesian D1 X D2 X D3 dari tiga himpunan ini adalah himpunan
semua rangkap tiga sehingga elemen pertama berasal dari D1, elemen kedua berasal dari D2, dan
elemen ketiga adalah dari D3. Setiap bagian dari produk Cartesian ini adalah relasi. Sebagai contoh,
misalkan kita memiliki:
D1 = {1, 3} D2 = {2, 4} D3 = {5, 6}
D1 X D2 X D3 = {(1, 2, 5), (1, 2, 6), (1, 4, 5), (1, 4, 6), (3, 2, 5), (3, 2, 6), (3, 4, 5), (3, 4,6)}
Setiap himpunan bagian dari rangkap tiga terurut ini adalah suatu relasi. Kita dapat mem-
perpanjang tiga set dan mendefinisikan hubungan umum pada n domain. Membiarkan D1, D2, . . .
,Dn menjadi n set. Produk Cartesian mereka didefinisikan sebagai:
D1 X D2 X . . . X Dn = {(D1, D2, . . . ,Dn)|D1 ∈ D1, D2 ∈ D2, . . . ,Dn ∈ Dn} dan biasanya
ditulis sebagai:
∏𝑛𝑖=𝐼 𝐷1
Setiap set n-tupel dari produk Cartesian ini adalah relasi pada n set. Perhatikan bahwa dalam
mendefinisikan hubungan ini kita harus menentukan himpunan, atau domain, dari mana kita mem-
ilih nilai.
4.2.3 Hubungan Basis Data
Menerapkan konsep yang telah dibahas sebelumnya ke database, kita dapat mendefinisikan
sebuah relasi skema
Hubungan skema -- Relasi bernama didefinisikan oleh satu set atribut dan pasangan nama do-
main.
Membiarkan A1, A2, . . . ,An menjadi atribut dengan domain D1, D2, . . . ,Dn. Maka himpunan
{A1:D1, A2:D2, . . . ,An:Dn} adalah skema relasi. Sebuah hubungan R didefinisikan oleh skema
relasi S adalah satu set pemetaan dari nama atribut ke domain yang sesuai. Jadi, relasi R adalah
sekumpulan n-tupel:
(A1:D1, A2:D2, . . . ,An:Dn) seperti yang D1 ∈ D1, D2 ∈ D2, . . . ,Dn ∈ Dn
Setiap elemen dalam n-tuple terdiri dari atribut dan nilai untuk atribut itu. Biasanya, ketika kita
menulis relasi sebagai tabel, kita mencantumkan nama atribut sebagai kolom judul dan tuliskan
tupel sebagai baris yang memiliki bentuk (D1, D2, . . . ,Dn), di mana setiap nilai diambil dari domain
yang sesuai. Dengan cara ini, kita dapat memikirkan suatu relasi dalam model relasional sebagai
bagian dari produk Cartesian dari domain atribut. Sebuah tabel hanyalah representasi fisik dari
relasi semacam itu.
Dalam contoh kita, Cabang relasi yang ditunjukkan pada Gambar 4.1 memiliki atribut
cabangNo, jalan, kota, dan Kode Pos, masing-masing dengan domain yang sesuai. Cabang relasi
adalah setiap subset dari produk Cartesian dari domain, atau setiap set empat-tupel di mana elemen
pertama berasal dari domain Nomor Cabang, yang kedua dari domain Nama Jalan, dan seterusnya.
Salah satu dari empat tupel adalah:
{(B005, 22 Deer Rd, London, SW1 4EH)}
atau lebih tepatnya:
{(cabangNo: B005, jalan: 22 Rusa Rd, kota: London, Kode Pos: SW1 4EH)}
Kami menyebutnya sebagai contoh relasi. Cabang tabel adalah cara mudah untuk menuliskan
semua empat tupel yang membentuk relasi pada waktu tertentu, yang menjelaskan mengapa baris
tabel dalam model relasional disebut "tupel". Dengan cara yang sama bahwa suatu relasi memiliki
skema, demikian pula database relasional.
Basis data relasional skema -- Satu set skema relasi, masing-masing dengan nama yang berbeda.
Jika R1, R2, . . . ,Rn adalah satu set skema relasi, maka kita dapat menulis skema basis data rela-
sional, atau hanya skema relasional, R, sebagai:
R = {R1, R2, . . . ,Rn}
Foreign Key Atribut, atau serangkaian atribut, dalam satu hubungan yang sesuai dengan kunci
kandidat dari beberapa (mungkin sama) hubungan.
Ketika atribut muncul di lebih dari satu hubungan, penampilannya biasanya merupakan hub-
ungan antara tahap dari dua hubungan. Misalnya, masuknya cabangTidak baik dalam hubungan
Cabang dan Staf cukup disengaja dan menghubungkan setiap cabang dengan rincian staf yang
bekerja di cabang itu. Dalam hubungan Cabang, branchNo adalah kunci utama. Namun, dalam
hubungan Staf, atribut branchNo ada untuk mencocokkan staf dengan kantor cabang tempat
mereka bekerja. Dalam hubungan Staf, branchNo adalah kunci asing. Kami mengatakan bahwa
cabang atribut Tidak ada dalam hubungan Staf menargetkan cabang atribut kunci utama Tidak ada
dalam hubungan rumah, Cabang. Atribut umum ini memainkan peran penting dalam melakukan
manipulasi data, seperti yang kita lihat di bab berikutnya.
4.2.6 Mewakili Skema Basis Data Relasional
Sebuah database relasional terdiri dari sejumlah relasi yang dinormalisasi. Skema relasional
untuk bagian dariRumah impian studi kasus adalah:
Cabang (cabangNo, jalan, kota, kode pos)
Staf (Nostaf, fName, IName, posisi, jenis kelamin, DOB, gaji, branchNo)
Properti Disewakan (Noproperti, jalan, kota, kode pos, tipe, kamar, sewa, pemilikNo, staffNo,
branchNo)
Pemilik Pribadi (clientNo, fName, IName, telNo, prefType, maxRent, eMail)
Melihat (ownerNo, fName, IName, alamat, telNo, eMail, kata sandi)
Registrasi (clientNo, propertyNo, viewDate, komentar) (clientNo, branchNo, staffNo,
dateJoined)
Konvensi umum untuk merepresentasikan skema relasi adalah memberi nama relasi diikuti
dengan nama atribut dalam tanda kurung. Biasanya, kunci utama digarisbawahi.
NS model konseptual, atau skema konseptual, adalah himpunan semua skema tersebut untuk da-
tabase. Gambar 4.3 menunjukkan contoh skema relasional ini.
4.4 Tampilan
Dalam arsitektur ANSI-SPARC tiga tingkat yang disajikan dalam Bab 2, kami menggam-
barkan tampilan eksternal sebagai struktur database seperti yang terlihat oleh pengguna tertentu.
Dalam model relasional, kata "pandangan" memiliki arti yang sedikit berbeda. Alih-alih menjadi
keseluruhan model eksternal dari tampilan pengguna, tampilan adalahMaya atau relasi turunan:
suatu relasi yang tidak selalu ada dengan sendirinya, tetapi dapat diturunkan secara dinamis dari
satu atau lebih relasi dasar. Dengan demikian, model eksternal dapat terdiri dari hubungan dasar
(tingkat konseptual) dan pandangan yang diturunkan dari hubungan dasar. Pada bagian ini, kita
membahas secara singkat pandangan dalam sistem relasional. Di bagian 7.4 kami memeriksa
tampilan secara lebih rinci dan menunjukkan bagaimana mereka dapat dibuat dan digunakan dalam
SQL
4.4.1 Terminologi
Hubungan yang telah kita bahas sejauh ini dalam bab ini dikenal sebagai hubungan dasar. Basis
hubungan Relasi bernama yang sesuai dengan entitas dalam skema konseptual, yang tupelnya
disimpan secara fisik dalam database. Kita dapat mendefinisikan pandangan dalam hal hubungan
dasar. Hasil dinamis dari satu atau lebih operasi relasional yang beroperasi pada relasi dasar untuk
menghasilkan relasi lain. Pemandangan adalahhubungan maya yang tidak selalu ada dalam data-
base tetapi dapat diproduksi atas permintaan oleh pengguna tertentu, pada saat permintaan.
Tampilan adalah relasi yang tampak bagi pengguna, dapat dimanipulasi seolah-olah itu adalah
relasi dasar, tetapi tidak harus ada dalam penyimpanan dalam arti bahwa relasi dasar memang ada
(walaupun definisinya disimpan dalam katalog sistem) . Konten tampilan didefinisikan sebagai
kueri pada satu atau beberapa relasi dasar. Setiap operasi pada tampilan secara otomatis diter-
jemahkan ke dalam operasi pada hubungan dari mana ia berasal. Tampilan adalahdinamis, artinya
perubahan yang dilakukan pada hubungan dasar yang memengaruhi tampilan langsung tercermin
dalam tampilan. Saat pengguna membuat perubahan yang diizinkan pada tampilan, perubahan ini
dilakukan pada relasi yang mendasarinya. Di bagian ini, kami menjelaskan tujuan penayangan dan
memeriksa secara singkat batasan yang berlaku untuk pembaruan yang dilakukan melalui pe-
nayangan. Namun, kami menunda perlakuan tentang bagaimana tampilan didefinisikan dan di-
proses hingga Bagian 7.4.
4.4.2 Tujuan Tampilan
• Ini menyediakan mekanisme keamanan yang kuat dan fleksibel dengan menyembunyikan ba-
gian dari database dari pengguna tertentu. Pengguna tidak menyadari adanya atribut atau tupel
yang hilang dari tampilan.
• Ini memungkinkan pengguna untuk mengakses data dengan cara yang disesuaikan dengan
kebutuhan mereka, sehingga data yang sama dapat dilihat oleh pengguna yang berbeda dengan
cara yang berbeda, pada waktu yang sama
• Hal ini dapat menyederhanakan operasi kompleks pada hubungan dasar. Misalnya, jika view
didefinisikan sebagai kombinasi (join) dari dua relasi (lihat Bagian 5.1), pengguna sekarang
dapat melakukan operasi yang lebih sederhana pada view, yang akan diterjemahkan oleh
DBMS ke dalam operasi yang setara pada join.
Tampilan harus dirancang untuk mendukung model eksternal yang dianggap familier oleh
pengguna. Sebagai contoh:
• Seorang pengguna mungkin memerlukan tupel Cabang yang berisi nama manajer serta atribut
lain yang sudah ada di Cabang. Tampilan ini dibuat dengan menggabungkan relasi Cabang
dengan bentuk terbatas dariStaf hubungan di mana posisi staf adalah "Manajer."
• Beberapa anggota staf harus melihat Staf tupel tanpa gaji atribut
• Atribut dapat diganti namanya atau urutan atribut diubah. Misalnya, pengguna terbiasa me-
manggilcabangNo atribut cabang dengan nama lengkap Nomor cabang mungkin melihat judul
kolom itu
• Beberapa anggota staf harus melihat catatan properti hanya untuk properti yang mereka Kelola
Meskipun semua contoh ini menunjukkan bahwa pandangan memberikan independensi data
logis (lihat Bagian 2.1.5), tampilan memungkinkan jenis independensi data logis yang lebih sig-
nifikan yang mendukung reorganisasi skema konseptual. Misalnya, jika atribut baru ditambahkan
ke relasi, pengguna yang ada bisa tidak menyadari keberadaannya jika pandangan mereka didefin-
isikan untuk mengecualikannya. Jika relasi yang ada disusun ulang atau dipisahkan, tampilan dapat
ditentukan sehingga pengguna dapat terus melihat tampilan aslinya. Kita akan melihat contohnya
di Bagian 7.4.7 ketika kita membahas kelebihan dan kekurangan pandangan secara lebih rinci.
4.4.3 Memperbarui Tampilan
Semua pembaruan pada relasi dasar harus segera direfleksikan dalam semua tampilan yang
mereferensikan relasi basis tersebut.
• Pembaruan tidak diperbolehkan melalui tampilan yang melibatkan banyak relasi dasar.
• Pembaruan tidak diperbolehkan melalui tampilan yang melibatkan operasi agregasi atau penge-
lompokan.
Kelas tampilan telah ditentukan yang secara teoritis tidak dapat diperbarui, dapat diperbarui
secara teoritis, dan dapat diperbarui sebagian.
Ringkasan Bab
• Relational Database Management System (RDBMS) telah menjadi perangkat lunak pem-
rosesan data yang dominan digunakan saat ini, dengan perkiraan penjualan lisensi baru antara
US$6 miliar dan US$10 miliar per tahun (US$25 miliar termasuk penjualan alat). Perangkat lunak
ini mewakili DBMS generasi kedua dan didasarkan pada model data relasional yang diusulkan
oleh E. F. Codd.
• Relasi matematis adalah subset dari produk Cartesian dari dua atau lebih set. Dalam istilah
database, relasi adalah setiap subset dari produk Cartesian dari domain atribut. Suatu relasi bi-
asanya ditulis sebagai himpunan n-tupel, di mana setiap elemen dipilih dari domain yang sesuai.
• Relasi secara fisik direpresentasikan sebagai tabel, dengan baris yang sesuai dengan tupel
individu dan kolom untuk atribut.
• Struktur relasi, dengan spesifikasi domain dan batasan lainnya, merupakan bagian dari tujuan
database; relasi dengan semua tupelnya yang ditulis mewakili sebuah instance atau ekstensi dari
database.
• Properti relasi database adalah: setiap sel berisi tepat satu nilai atom, nama atribut berbeda,
nilai atribut berasal dari domain yang sama, urutan atribut tidak penting, urutan tupel tidak penting,
dan tidak ada tupel duplikat.
• Derajat suatu relasi adalah jumlah atribut, dan kardinalitas adalah jumlah tupel. Relasi unary
memiliki satu atribut, relasi biner memiliki dua, relasi terner memiliki tiga, dan relasi n-ary mem-
iliki n atribut.
• Superkey adalah atribut, atau kumpulan atribut, yang mengidentifikasi tupel dari relasi
secara unik, dan kunci kandidat adalah superkey minimal. Kunci utama adalah kunci kandidat
yang dipilih untuk digunakan dalam identifikasi tupel. Suatu relasi harus selalu memiliki primary
key. Kunci asing adalah atribut, atau kumpulan atribut, dalam satu relasi yang merupakan kunci
kandidat dari relasi lain.
• Sebuah null mewakili nilai untuk atribut yang tidak diketahui pada saat ini atau tidak berlaku
untuk tupel ini.
• integritas entitas adalah batasan yang menyatakan bahwa dalam relasi dasar tidak ada atribut
dari kunci utama yang dapat bernilai nol. Integritas referensial menyatakan bahwa nilai kunci asing
harus cocok dengan nilai kunci kandidat dari beberapa tupel dalam relasi asal atau sepenuhnya
nol. Terlepas dari integritas relasional, batasan integritas termasuk data yang diperlukan, domain,
dan batasan multiplisitas; batasan integritas lainnya disebut batasan umum.
• Tampilan dalam model relasional adalah relasi virtual atau turunan yang dibuat secara dina-
mis dari relasi dasar yang mendasarinya bila diperlukan. Tampilan memberikan keamanan dan
memungkinkan perancang untuk menyesuaikan model pengguna. Tidak semua tampilan dapat di-
perbarui.