Fitur lain dari model relasional disajikan dalam bagian berikutnya dari buku ini.
Bab 9 berkaitan relasional struktur model data untuk konstruksi dari ER dan EER
model (disajikan dalam Bab 3 dan 4), dan menyajikan algoritma untuk merancang
skema database relasional dengan pemetaan skema konseptual dalam ER atau
EER model menjadi representasi relasional . pemetaan ini dimasukkan ke dalam
banyak desain database dan case1 alat. Bab 10 dan 11 di Bagian 4 membahas
teknik pemrograman yang digunakan untuk mengakses sistem database dan
gagasan menghubungkan ke database relasional melalui ODBC dan JDBC
protokol standar. Kami juga memperkenalkan topik pemrograman database Web
dalam Bab 11. Bab 14 dan 15 di Bagian 6 ini aspek lain dari model relasional,
yaitu kendala formal dependensi fungsional dan multivalued;
Dalam bab ini, kami berkonsentrasi pada menjelaskan prinsip-prinsip dasar dari
model relasional data. Kita mulai dengan mendefinisikan konsep pemodelan dan
notasi dari model relasional dalam Bagian 5.1. Bagian 5.2 dikhususkan untuk
diskusi tentang kendala relasional yang dianggap bagian penting dari model
relasional dan secara otomatis diberlakukan di sebagian besar DBMS relasional.
Bagian 5.3 mendefinisikan operasi update dari model relasional, membahas
bagaimana pelanggaran kendala integritas ditangani, dan memperkenalkan konsep
transaksi. Bagian 5.4 merangkum bab ini.
Bab ini dan Bab 8 fokus pada dasar-dasar formal dari model relasional, sedangkan
Bab 6 dan 7 fokus pada SQL model relasional praktis, yang merupakan dasar dari
yang paling komersial dan open source DBMS relasional. Banyak konsep yang
umum antara model formal dan praktis, tetapi beberapa ada perbedaan bahwa
kami akan tunjukkan.
Kelas, dan Mayor menentukan bagaimana menafsirkan nilai-nilai data di setiap baris,
berdasarkan pada kolom setiap nilai dalam. Semua nilai-nilai dalam kolom adalah dari jenis
data yang sama.
Dalam terminologi model relasional formal, berturut-turut disebut tuple, header
kolom disebut atribut, dan meja disebut relasi. Tipe data yang menggambarkan
jenis nilai-nilai yang dapat muncul di setiap kolom diwakili oleh domain dari nilai
yang mungkin. Kita sekarang mendefinisikan istilah-istilah-domain, tuple, atribut,
dan hubungan-formal.
Sebuah skema relasi2R, Dinotasikan dengan R (A1, A2, ..., An), terdiri dari nama
relasi R dan daftar atribut, A1, A2, ..., An. Setiap atribut Ai adalah nama dari
sebuah peran yang dimainkan oleh beberapa domain D dalam skema relasi R. D
disebut domain dari Ai dan dilambangkan dengan dom (Ai). Sebuah skema relasi
digunakan untuk menggambarkan relasi; R disebut nama dari relasi ini. Tingkat
(atau arity) dari relasi adalah jumlah atribut n dari skema relasi-nya.
Sebuah hubungan tingkat tujuh, yang menyimpan informasi tentang mahasiswa,
akan berisi tujuh atribut yang menjelaskan setiap siswa sebagai berikut:
STUDENT (Nama, SSN, Home_phone, Alamat, Office_phone, Umur, Gpa)
Menggunakan tipe data setiap atribut, definisi ini kadang-kadang ditulis sebagai:
Nama siswa: tali, SSN: tali, Telepon rumah: tali, Alamat: tali, Office_phone:
tali, Umur: bilangan bulat, Gpa: nyata)
Untuk skema relasi ini, SISWA adalah nama dari relasi, yang memiliki tujuh
atribut. Dalam definisi sebelumnya, kami menunjukkan tugas dari jenis
generik seperti string atau integer untuk atribut. Lebih tepatnya, kita dapat
menentukan berikut domain ditetapkan sebelumnya untuk beberapa atribut
dariSISWA hubungan: dom (Nama) = nama; dom (ssn) = Social_security_numbers;
dom (Telepon rumah ) = USA_phone_numbers3, Dom (Office_phone) =
USA_phone_numbers , Dan dom (Gpa) = Grade_point_averages . Hal ini juga
memungkinkan untuk merujuk kepada atribut dari skema relasi dengan posisi
mereka dalam relasi; dengan demikian, atribut kedua SISWA tion eratnya
adalahssn, Sedangkan atribut keempat adalah Alamat.
Suatu relasi (atau negara bagian hubungan)4rdari skema relasi R (A1, A2, ..., An),
juga dinotasikan dengan r (R), adalah satu set n-tupel r = {t1, t2, ..., tm}. Setiap t
n-tuple adalah daftar ordered n nilai t = v1, v2, ..., vn , dimana setiap nilai vi, 1
i ≤ n, merupakan elemen dari dom (Ai) atau khususBATAL nilai. (BATAL nilai-nilai
dibahas lebih lanjut di bawah ini dan dalam Bagian 5.1.2.) Nilai engan di tuple t,
yang sesuai dengan atribut Ai, disebut sebagai t [Ai] atau t.Ai (atau t [i] jika kita
menggunakan notasi posisional ). Istilah hubungan kehebatan untuk skema R dan
perluasan hubungan untuk r relasi negara (R) juga sering digunakan.
Angka 5.1 menunjukkan contoh hubungan STUDENT, yang sesuai dengan
skema STUDENT hanya ditentukan. Setiap tuple dalam relasi merupakan
entitas mahasiswa tertentu (atau objek). Kami menampilkan relasi sebagai
tabel, dimana setiap tupel ditampilkan sebagai baris dan setiap atribut sesuai
dengan header kolom menunjukkan peran atau interpretasi dari nilai-nilai
dalam kolom tersebut. nilai NULL mewakili atribut yang nilainya tidak
diketahui atau tidak ada untuk beberapa tuple STUDENT individu.
2Sebuah skema relasi kadang-kadang disebut skema relasi.
3Dengan peningkatan besar dalam nomor telepon yang disebabkan oleh proliferasi ponsel, paling
metropol- daerah Itan di Amerika Serikat sekarang memiliki beberapa kode area, sehingga tujuh-digit
panggilan lokal telah dihentikan di sebagian besar wilayah. Kami mengubah domain ini untuk
Usa_phone_numbers bukan nomor Local_phone_, yang akan menjadi pilihan yang lebih umum. Ini
menggambarkan bagaimana persyaratan database dapat berubah dari waktu ke waktu.
4Inijuga telah disebut hubungan misalnya. Kami tidak akan menggunakan istilah ini karenacontoh
juga digunakan untuk merujuk kepada tupel atau baris.
5.1 Konsep Relational Model 153
hubungan atribut
Nama
SISWA
Nama ssn Telepon rumah Alamat Office_phone Usia Gpa
Benjamin Bayer 305-61-2435 (817)373-1616 2918 Bluebonnet Lane BATAL 19 3.21
Chung-cha Kim 381-62-1245 (817)375-4409 125 Kirby Jalan BATAL 18 2,89
tupel Dick Davidson 422-11-2320 BATAL 3452 Elgin Jalan (817)749-1253 25 3.53
Rohan Panchal 489-22-1100 (817)376-9821 265 Lark Lane (817)749-6492 28 3,93
Barbara Benson 533-69-1238 (817)839-8461 7384 Fontana Lane BATAL 19 3,25
Gambar 5.1
Atribut dan tuple dari relasi STUDENT.
Gambar 5.2
Relasi STUDENT dari Gambar 5.1 dengan urutan yang berbeda dari tupel.
SISWA
Nama ssn Telepon rumah Alamat Office_phone Usia Gpa
Dick Davidson 422-11-2320 BATAL 3452 Elgin Jalan (817)749-1253 25 3.53
Barbara Benson 533-69-1238 (817)839-8461 7384 Fontana Lane BATAL 19 3,25
Rohan Panchal 489-22-1100 (817)376-9821 265 Lark Lane (817)749-6492 28 3,93
Chung-cha Kim 381-62-1245 (817)375-4409 125 Kirby Jalan BATAL 18 2,89
Benjamin Bayer 305-61-2435 (817)373-1616 2918 Bluebonnet Lane BATAL 19 3.21
5.1 Konsep Relational Model 155
t = <(Nama, Dick Davidson), (SSN, 422-11-2320), (Home_phone, NULL), (Alamat, 3452 Elgin
Jalan), (Office_phone, (817) 749-1253), (Umur, 25), (GPA, 3,53)>
t = <(Alamat, 3452 Elgin Jalan), (Nama, Dick Davidson), (SSN, 422-11-2320), (Umur,
25), (Office_phone, (817) 749-1253), (GPA, 3,53), (Home_phone,
NULL)>
Gambar 5.3
Dua tupel identik ketika urutan atribut dan nilai-nilai bukan merupakan bagian dari definisi hubungan.
dua tupel yang ditunjukkan pada Gambar 5.3 adalah identik. Ini masuk akal pada
tingkat abstrak, karena benar-benar ada alasan untuk lebih memilih memiliki satu
nilai atribut muncul sebelum lain dalam sebuah tuple. Ketika nama atribut dan
nilai termasuk bersama-sama dalam sebuah tuple, diketahui sebagai data self-
describing, karena deskripsi setiap nilai (atribut nama) termasuk dalam tupel.
Kami sebagian besar akan menggunakan definisi pertama dari hubungan, di mana
atribut diperintahkan dalam skema relasi dan nilai-nilai dalam tuple yang sama
memerintahkan, karena menyederhanakan banyak notasi. Namun, definisi
alternatif yang diberikan di sini lebih general.5
Nilai-nilai dan NULLs di tupel. Setiap nilai dalam tuple adalahatom nilai; yaitu,
tidak dibagi menjadi komponen-komponen dalam kerangka model relasional
dasar. Oleh karena itu, atribut komposit dan multivalued (lihat Bab 3) tidak
diperbolehkan. Model ini kadang-kadang disebut model relasional datar. Banyak
teori di balik model relasional dikembangkan dengan asumsi ini dalam pikiran,
yang disebut normal pertama bentuk assumption.6 Oleh karena itu, multivalued
atribut harus diwakili oleh hubungan yang terpisah, dan atribut komposit diwakili
hanya oleh komponen sederhana mereka atribut di .7 relasional dasar
Sebuah konsep penting adalah bahwa dari nilai-nilai NULL, yang digunakan untuk mewakili
nilai-nilai atribut yang mungkin tidak diketahui atau mungkin tidak berlaku untuk tupel. Sebuah
nilai khusus, yang disebut NULL, digunakan dalam kasus ini. Sebagai contoh, pada Gambar 5.1,
beberapa tupel SISWA harus NULL untuk ponsel kantor mereka karena mereka tidak memiliki
kantor (yaitu, telepon kantortidak berlaku kepada siswa tersebut). Siswa lain
memilikiNULL untuk telepon rumah, presum- cakap karena baik dia tidak
memiliki telepon rumah atau dia memiliki satu tapi kita tidak tahu itu (nilai tidak
diketahui). Secara umum, kita dapat memiliki beberapa arti nilai-nilai NULL,
seperti nilai yang tidak diketahui, nilai ada tapi tidak tersedia, atau atribut tidak
berlaku untuk tuple ini (juga dikenal sebagai nilai terdefinisi). Contoh dari jenis
terakhir NULL akan terjadi jika kita menambahkan atribut Visa_status untuk
hubungan STUDENT yang hanya berlaku untuk tupel repre- mahasiswa asing
senting. Hal ini dimungkinkan untuk merancang kode yang berbeda untuk arti
yang berbeda dari
5Kami akan menggunakan definisi alternatif hubungan ketika kita membahas pemrosesan query dan
optimasi pada Bab 18.
6Kami membahas asumsi ini secara lebih rinci dalam Bab 14.
7Ekstensi dari model relasional menghapus pembatasan ini.Sebagai contoh, sistem objek-relasional (Bab
12) memungkinkan atribut kompleks terstruktur, seperti melakukan bentuk normal non-pertama atau
model relasional bersarang.
5.1 Konsep Relational Model 156
nilai-nilai NULL. Menggabungkan berbagai jenis nilai NULL ke dalam model relasional tions
opera- telah terbukti sulit dan berada di luar lingkup presentasi kami.
Makna yang tepat dari nilai NULL mengatur bagaimana tarif selama aritmatika
tions aggrega- atau perbandingan dengan nilai-nilai lain. Sebagai contoh,
perbandingan dua nilai NULL menyebabkan ambiguitas-jika kedua Nasabah A
dan B memiliki alamat NULL, itu tidak berarti mereka memiliki alamat yang
sama. Selama desain database, yang terbaik adalah untuk menghindari nilai-nilai
NULL sebanyak mungkin. Kami akan membahas ini lebih lanjut dalam Bab 7 dan
8 dalam konteks operasi dan query, dan dalam Bab 14 dalam konteks desain
database dan normalisasi.
Interpretasi (Arti) Hubungan a. The skema relasi dapat diartikan sebagai deklarasi
atau jenistuntutan. Sebagai contoh, skema relasi STUDENT dari Gambar 5.1
menegaskan bahwa, secara umum, entitas mahasiswa memiliki Nama, SSN,
Home_phone, Alamat, Office_phone, Umur, dan Gpa. Setiap tuple dalam relasi
kemudian dapat diartikan sebagai fakta atau contoh khusus dari pernyataan.
Sebagai contoh, tuple pertama pada Gambar 5.1 menegaskan fakta bahwa ada
STUDENT yang Nama adalah Benjamin Bayer, SSN adalah 305-61-2435, Umur
19, dan seterusnya.
Perhatikan bahwa beberapa hubungan dapat mewakili fakta tentang entitas,
sedangkan hubungan lain mungkin mewakili fakta tentang hubungan. Sebagai
contoh, sebuah skema relasi JURUSAN (Student_ssn, Department_code)
menegaskan bahwa siswa utama dalam disiplin akademis. Sebuah tuple dalam
relasi ini berkaitan siswa untuk disiplin utama nya. Oleh karena itu, model
relasional merupakan fakta tentang kedua entitas dan hubungan seragam sebagai
hubungan. Hal ini terkadang kompromi dimengerti karena salah satu harus
menebak apakah relasi merupakan tipe entitas atau tipe hubungan. Kami
memperkenalkan relasi entitas (ER) Model secara rinci dalam Bab 3, di mana
entitas dan hubungan konsep yang dijelaskan secara rinci. Prosedur pemetaan
dalam Bab 9 menunjukkan bagaimana konstruksi yang berbeda dari ER / EER
model data konseptual (lihat Bagian 2) bisa dikonversi ke hubungan.
Interpretasi alternatif dari skema relasi adalah sebagai predikat; dalam hal ini,
nilai-nilai dalam setiap tuple diinterpretasikan sebagai nilai-nilai yang
memenuhi predikat. Misalnya, predikat STUDENT (Nama, SSN, ...) adalah
benar untuk lima tupel dalam kaitannya STUDENT dari Gambar 5.1. tupel ini
mewakili lima proposisi yang berbeda atau fakta di dunia nyata. Penafsiran ini
cukup berguna dalam konteks pemrograman logis
bahasa, seperti Prolog, karena memungkinkan model relasional untuk
digunakan dalambahasa ini (lihat Bagian 26,5).Asumsi yang disebut asumsi dunia
tertutup menyatakan bahwa satu-satunya fakta yang benar di alam semesta adalah
mereka yang hadir dalam ekstensi (negara) dari hubungan (s). Kombinasi lainnya
dari nilai-nilai yang membuat palsu predikat. Penafsiran ini berguna ketika kita
mempertimbangkan pertanyaan tentang hubungan berdasarkan kalkulus relasional
dalam Bagian 8.6.
BERANGKATMTHT
dname Dnumber Mgr_ssn Mgr_start_dat
e
DEPT_LOCATIONS
Dnumber Dlocation
PROYEK
pname Pnumber Plocation Dnum
WORKS_ON
Essn PNO Jam
Gambar 5.5
TERGANTUN diagram skema untuk
GEssn PERUSAHAAN relasional
Dependent_name Seks Bdate Hubungan skema database.
disebut tidak sah, dan negara yang memenuhi semua kendala di set didefinisikan
kendala integritas IC disebut keadaan valid.
Pada Gambar 5.5, Dnumber atribut di kedua DEPARTMENT dan
DEPT_LOCATIONS singkatan yang sama dunia nyata konsep-nomor yang
diberikan kepada departemen. Itu konsep yang sama disebut DNO di EMPLOYEE
dan Dnum di PROJECT. Atribut yang mewakili konsep dunia nyata yang sama
mungkin atau mungkin tidak memiliki nama identik dalam hubungan ferent dif-.
Atau, atribut yang mewakili konsep yang berbeda mungkin memiliki nama yang
sama dalam hubungan yang berbeda. Sebagai contoh, kita bisa menggunakan
nama atribut Nama untuk kedua pname dari PROYEK dan DNAME dari
DEPARTMENT; dalam hal ini, kita akan memiliki dua atribut yang memiliki
nama yang sama tetapi mewakili berbagai nama dunia nyata konsep-proyek dan
nama departemen.
Dalam beberapa versi awal dari model relasional, asumsi dibuat bahwa konsep
dunia nyata yang sama, ketika diwakili oleh atribut, akan memiliki nama atribut
identik dalam semua hubungan. Hal ini menciptakan masalah ketika konsep dunia
nyata yang sama digunakan dalam peran yang berbeda (makna) dalam hubungan
yang sama. Misalnya, konsep nomor Jaminan Sosial muncul dua kali dalam relasi
EMPLOYEE dari Gambar 5.5: sekali dalam peran SSN karyawan, dan sekali
dalam peran SSN supervisor. Kita dituntut untuk memberi mereka nama-SSN
atribut yang berbeda dan Super_ssn, masing-masing-karena mereka muncul dalam
relasi yang sama dan untuk membedakan makna mereka.
Setiap DBMS relasional harus memiliki bahasa definisi data (DDL) untuk
mendefinisikan skema database relasional. DBMSs relasional saat ini sebagian
besar menggunakan SQL untuk tujuan ini. Kami menyajikan SQL DDL dalam
Bagian 6.1 dan 6.2.
5.2 Kendala Model Relasional dan Relational Skema database 163
Gambar 5.6
Salah satu negara database mungkin untuk PERUSAHAAN relasional skema database.
EMPLOYEE
fname Minit lname ssn Bdate Alamat Seks Gaji Super_ssn DN
O
John B pandai 123456789 1965/01/09 731Fondren, Houston, TX M 30000 333445555 5
besi
Franklin T wong 333445555 1955/12/08 638 Voss, Houston, TX M 40000 888665555 5
Alicia J Zelaya 999887777 1968/01/19 3321 Castle, Spring, TX F 25000 987654321 4
Jennifer S wallace 987654321 1941/06/20 291 Berry, Bellaire, TX F 43000 888665555 4
Ramesh K Narayan 666884444 1962/09/15 975 Fire Oak, Humble, TX M 38000 333445555 5
Joyce SEBU Inggris 453453453 1972/07/31 5631 Beras, Houston, TX F 25000 333445555 5
AH
Ahmad V Jabbar 987987987 1969/03/29 980 Dallas, Houston, TX M 25000 987654321 4
James E Borg 888665555 1937/11/10 450 Batu, Houston, TX M 55000 BATAL 1
BERANGKATMTHT DEPT_LOCATIONS
dname Dnumber Mgr_ssn Mgr_start_dat Dnumber Dlocation
e 1 Houston
Penelitian 5 333445555 1988/05/22
4 Stafford
Administrasi 4 987654321 1995/01/01
5 Bellaire
Markas besar 1 888665555 1981/06/19
5 Sugarland
5 Houston
kendala integritas yang ditetapkan pada skema database dan diharapkan untuk
berpegang pada setiap negara bagian database yang valid dari skema itu. Selain
domain, kunci, dan TIDAK kendala NULL, dua jenis kendala dianggap sebagai
bagian dari model relasional: integritas entitas dan integritas referensial.
Gambar 5.7
batasan integritas referensial ditampilkan pada PERUSAHAAN relasional skema database.
EMPLOYEE
fname Minit lname ssn Bdate Alamat Seks Gaji Super_ssn DNO
BERANGKAT
MTHT Dnumber Mgr_ssn Mgr_start_date
dname
DEPT_LOCATIONS
Dnumber Dlocation
PROYEK
pname Pnumber Plocation Dnum
WORKS_ON
Essn PNO Jam
TERGANTUN
G Essn Dependent_name Seks Bdate Hubungan
5.3 Pembaruan Operasi, Transaksi, dan Berurusan dengan Pelanggaran Kendala 165
negara basis data. Oleh karena itu, DDL termasuk ketentuan untuk menentukan
berbagai jenis kendala sehingga DBMS secara otomatis dapat menegakkan
mereka. Dalam SQL, CREATE TABLE pernyataan SQL DDL memungkinkan
definisi kunci utama, kunci unik, NOT NULL, integritas entitas, dan batasan
integritas referensial, antara kendala lainnya (lihat Bagian 6.1 dan 6.2).
11kendala negara kadang-kadang disebut kendala statis, Dan kendala transisi kadang-kadang disebut
kendala dinamis.
5.3 Pembaruan Operasi, Transaksi, dan Berurusan dengan Pelanggaran Kendala 166
■ Operasi:
Menyisipkan < 'Cecilia', 'F', 'Kolonsky', '677678989', '1960/04/05', '6357
Windy Lane, Katy, TX', F, 28.000, NULL, 4> ke EMPLOYEE.
Hasil: Penyisipan ini memenuhi semua kendala, sehingga dapat diterima.
Jika penyisipan melanggar satu atau lebih kendala, pilihan default adalah
untuk menolak penyisipan. Dalam hal ini, akan sangat berguna jika DBMS
bisa memberikan alasan kepada pengguna seperti mengapa penyisipan itu
ditolak. Pilihan lain adalah untuk mencoba untuk memperbaikialasan
penolakan penyisipan,tapi ini biasanya tidak digunakan untuk pelanggaran yang
disebabkan oleh Insert; bukan, itu lebih sering digunakan dalam mengoreksi
pelanggaran untuk Delete dan Update. Pada operasi pertama, DBMS dapat
meminta pengguna untuk memberikan nilai untuk SSN, dan kemudian bisa
menerima penyisipan jika nilai SSN yang valid. Dalam operasi 3, DBMS bisa baik
meminta pengguna untuk mengubah nilai DNO untuk beberapa nilai yang valid
(atau set ke NULL), atau bisa meminta pengguna untuk memasukkan tuple
DEPARTMENT dengan Dnumber = 7 dan bisa menerima penyisipan asli hanya
setelah operasi semacam itu diterima. Perhatikan bahwa dalam kasus yang terakhir
pelanggaran penyisipan dapat kaskade kembali ke relasi EMPLOYEE jika
pengguna mencoba untuk memasukkan tupel untuk departemen 7 dengan nilai
Mgr_ssn yang tidak ada dalam relasi EMPLOYEE.
referensi standar tuple lain yang sah. Perhatikan bahwa jika atribut referensi yang
menyebabkan pelanggaran adalah bagian dari kunci utama, itu tidak dapat diatur
untuk NULL; jika tidak, itu akan melanggar integritas entitas.
Kombinasi dari tiga pilihan ini juga mungkin. Misalnya, untuk menghindari
operasi 3 penyebab pelanggaran, DBMS dapat secara otomatis menghapus semua
tupel dariWORKS_ON dan TERGANTUNG dengan Essn = '333445555'. tupel
diKARYAWAN dengan Super_ssn = '333445555' dan tuple di DEPARTEMEN dengan
Mgr_ssn = '333445555' dapat memiliki mereka Super_ssn dan Mgr_ssn nilai-nilai
berubah menjadi nilai-nilai yang berlaku lainnya atau untuk BATAL. Meskipun
mungkin masuk akal untuk menghapus secara otomatisWORKS_ON dan TERGANTUNG
tupel yang merujuk pada suatu KARYAWAN tuple, mungkin tidak masuk akal untuk
menghapus lainnya KARYAWAN tupel atau DEPARTEMENtupel.
Secara umum, ketika sebuah batasan integritas referensial ditentukan dalam DDL,
DBMS akan memungkinkan perancang database untuk menentukan pilihan
berlaku dalam kasus pelanggaran kendala. Kita membahas bagaimana untuk
menentukan pilihan ini di SQL DDL dalam Bab 6.
DBMS harus memastikan bahwa nilai baru mengacu pada tupel yang ada dalam
hubungan enced rujukan terbaik (atau diatur ke NULL). Pilihan serupa ada untuk
menangani referensial pelanggaran ritas integ- disebabkan oleh Update sebagai
orang-orang pilihan dibahas untuk operasi Delete. Bahkan, ketika batasan
integritas referensial ditentukan dalam DDL, DBMS akan memungkinkan
pengguna untuk memilih opsi yang terpisah untuk menangani pelanggaran yang
disebabkan oleh Delete dan pelanggaran yang disebabkan oleh Update (lihat
Bagian 6.2).
5.4 Ringkasan
Dalam bab ini kita disajikan konsep pemodelan, struktur data, dan kendala yang
disediakan oleh model relasional data. Kami mulai dengan memperkenalkan
konsep domain, atribut, dan tuples. Kemudian, kita mendefinisikan sebuah skema
relasi sebagai daftar butes attri- yang menggambarkan struktur relasi. Sebuah
relasi, atau relasi negara, adalah satu set tupel yang sesuai dengan skema.
Beberapa karakteristik membedakan hubungan dari tabel biasa atau file. Yang
pertama adalah bahwa relasi tidak sensitif terhadap urutan tupel. Yang kedua
melibatkan pemesanan atribut dalam skema relasi dan pemesanan sesuai val- ues
dalam tupel. Kami memberikan definisi alternatif hubungan yang tidak
memerlukan pemesanan atribut, tapi kami terus menggunakan definisi pertama,
yang membutuhkan atribut dan nilai-nilai tuple harus dipesan, untuk kenyamanan.
Kemudian, kita bahas nilai dalam tupel dan memperkenalkan nilai-nilai NULL
untuk mewakili hilang atau tidak diketahui mation informal. Kami menekankan
bahwa nilai-nilai NULL harus dihindari sebisa mungkin.
Kami diklasifikasikan kendala database ke melekat model berbasis kendala,
eksplisit kendala berbasis skema, dan kendala semantik atau aturan bisnis. Lalu
kita 5.3 Pembaruan Operasi, Transaksi, dan Berurusan dengan Pelanggaran Kendala 171
170 Bab 5 Relational Model Data dan Relational Database Kendala
Ulasan Pertanyaan
5.1. Mendefinisikan istilah berikut yang berlaku untuk model relasional data:
domain, atribut, n-tuple, skema relasi, relasi negara, tingkat relasi, skema
database relasional, dan negara database relasional.
5.2. Mengapa tupel dalam relasi tidak memerintahkan?
5.3. Mengapa duplikat tupel tidak diperbolehkan dalam relasi?
latihan
5.11. Misalkan bahwa setiapoperasi Perbarui berikut diterapkan langsung ke
negara database yang ditunjukkan pada Gambar 5.6. Membahas semua
kendala integritas
170 Bab 5 Relational Model Data dan Relational Database Kendala
dilanggar oleh setiap operasi, jika ada, dan cara yang berbeda menegakkan
kendala ini.
Sebuah. Menyisipkan < 'Robert', 'F', 'Scott', '943775543', '1972/06/21', '2365 Newcastle
Rd, Bellaire, TX', M, 58000, '888.665.555', 1> dalam KARYAWAN.
b. Menyisipkan < 'productâ', 4, 'Bellaire', 2> kePROYEK.
c. Menyisipkan < 'Produksi', 4, '943.775.543', '2007/10/01'> keDEPARTEMEN.
d. Menyisipkan < '677678989',BATAL, '40 0,0' > ke WORKS_ON.
e. Menyisipkan < '453453453', 'John', 'M', '1990/12/12', 'pasangan'> ke TERGANTUNG.
f. Hapus WORKS_ON tupel dengan Essn = '333445555'.
g. HapusKARYAWANtuple denganssn= '987654321'.
h. HapusPROYEKtuple denganpname= 'ProductX'.
i. memodifikasiMgr_ssndanMgr_start_datedariDEPARTEMENtuple dengan
Dnumber = 5 untuk '123456789' dan '2007/10/01', masing-masing.
j. memodifikasi Super_ssn atribut dari KARYAWAN tuple dengan ssn =
'999887777' ke '943775543'.
k. memodifikasi Jam atribut dari WORKS_ON tuple dengan Essn =
'999887777' dan PNO = 10 untuk '5.0'.
5.12. Pertimbangkan PERUSAHAAN PENERBANGAN database relasional skema
ditampilkan pada Gambar 5.8, yang menggambarkan database informasi
penerbangan maskapai. SetiapPENERBANGAN diidentifikasi oleh Nomor
penerbangan. dan terdiri dari satu atau lebih FLIGHT_LEGsdengan
Leg_numbers 1, 2, 3, dan seterusnya. SetiapFLIGHT_LEG memiliki jadual
kedatangan dan keberangkatan, bandara, dan satu atau lebih LEG_INSTANCEs-
satu untuk masing-masing Tanggal di mana penerbangan itu perjalanan. tarif
disimpan untuk setiap PENERBANGAN. Untuk setiapFLIGHT_LEG contoh,
SEAT_RESERVATIONs disimpan, seperti PESAWAT TERBANG digunakan pada kaki
dan kedatangan aktual dan waktu keberangkatan dan bandara.
SebuahPESAWAT TERBANG diidentifikasi oleh Airplane_id dan dari lar
khususnya untuk para AIRPLANE_TYPE. CAN_LAND berkaitan AIRPLANE_TYPEs ke
Bandara di mana mereka dapat mendarat. SebuahBANDARA diidentifikasi oleh
AIRPORT_CODE. Con Sider update untukPERUSAHAAN PENERBANGAN database
untuk memasukkan reservasi pada penerbangan lar khususnya untuk para
atau kaki penerbangan pada tanggal tertentu.
a. Berikan operasi untuk update ini.
b. Apa jenis kendala yang Anda harapkan untuk memeriksa?
c. Manakah dari kendala ini adalah kunci, integritas entitas, dan referensial
kendala integritas, dan mana yang tidak?
d. Tentukan semua kendala integritas referensial yang berpegang pada
skema yang ditunjukkan pada Gambar 5.8.
5.13. Pertimbangkan relasi KELAS(tentu saja # . Univ_Section # . Instructor_name .
Semester. Kode gedung. Kamar#. Jangka waktu. Hari kerja. Credit_hours). mewakili
keadaan ini membenci kelas diajarkandi sebuah universitas, dengan
unikUniv_section # s. Mengidentifikasi apa yang Anda pikir harus berbagai
170 Bab 5 Relational Model Data dan Relational Database Kendala
kunci kandidat, dan menulis dalam kata-kata Anda sendiri kondisi atau
asumsi-asumsi di mana setiap tombol kandidat akan berlaku.
latihan 172
BANDARA
AIRPORT_COD Nama Kota Negar
E a
PENERBANGAN
Nomor Perusah Hari kerja
penerbangan aan
penerba
ngan
FLIGHT_LEG
Nomor Leg_number DEPARTURE_AIRPORT_CODE Scheduled_departure_time
penerbangan
ARRIVAL_AIRPORT_CODE Scheduled_arrival_time
LEG_INSTANCE
Flight_number Leg_number Tangg Number_of_available_seats Airplane_id
al
DEPARTURE_AIRPORT_CO Waktu ARRIVAL_AIRPORT_CO Jam
DE keberangkatan DE kedatangan
TARIF
Nomor Fare_code Jumlah pembatasan
penerbangan
AIRPLANE_TYPE
Airplane_type_name Max_seats Perusahaa
n
CAN_LAND
Airplane_type_name AIRPORT_COD
E
PESAWAT TERBANG
Airplane_id Total_number_of_seats Airplane_type
PEMESANAN KURSI
Nomor Leg_number Tangg Nomor kursi Nama Pelanggan Customer_phone
penerbangan al
Gambar 5.8
The AIRLINE relasional skema database.
5.14. Pertimbangkan enam hubungan berikut untuk database kation appli agar-
latihan 173
pengolahan di sebuah perusahaan:
PELANGGAN (Cust #, Cname, Kota) PESANAN
(Order #, Odate, Cust #, Ord_amt)
ORDER_ITEM (Order #, Item #, Qty)
latihan 174