download

BAB 3
MODEL DATA RELASIONAL
Sistem Basisdata Relasional ( RDBMS) telah menjadi
perangkat lunak pengolahan data yang banyak
digunakan saat ini; diperkirakan penjualan mencapai
US$15 milyar dan US$20 milyar per tahun ( US$50
milyar jika termasuk dengan penjualan perangkat
kerasnya). Perangkat lunak ini menghadirkan
generasi yang kedua DBMSs yang berdasarkan
pada model relational data yang diusulkan oleh F. F.
Codd ( 1970). . Kelebihan model relational adalah
struktur logis sederhana ini.
Pada bab ini akan dipelajari :
o Asal relational model.
o Istilah relational model
o Bagaimana tabel digunakan untuk menyajikan data.
o Koneksi antara hubungan matematis dengan hubungan pada model relational.
o Komponen pada relasi database.
o Bagaimana cara mengidentifikasi kandidat kunci, kunci utama, kunci alternatif dan kunci asing.
o Arti dari integritas entity dan integritas referensi
o Tujuan Dan Keuntungan pandangan model relational.
Sistem Basisdata Relasional ( RDBMS) telah menjadi perangkat lunak pengolahan data yang
banyak digunakan saat ini; diperkirakan penjualan mencapai US$15 milyar dan US$20 milyar per
tahun ( US$50 milyar jika termasuk dengan penjualan perangkat kerasnya). Perangkat lunak ini
menghadirkan generasi yang kedua DBMSs yang berdasarkan pada model relational data yang
diusulkan oleh F. F. Codd ( 1970). Dalam model relational semua data tersusun dalam hubungan
yang disebut tabel. Tiap hubungan mempunyai suatu nama dan terdiri dari atribut dan nama
kolom tentang data. Masing-masing tuple(baris) berisi satu nilai sebagai penunjuk. Kelebihan
model relational adalah struktur logis sederhana ini. Kelebihan model relational adalah struktur
logis sederhana ini. Pada bab ini, kita mendiskusikan istilah dan konsep struktural dasar model
data relational. Sedang pada bab berikutnya, akan mendiskusikan bahasa program untuk
relational yang digunakan untuk melakukan updating dan retrieving data.
Pada bab ini akan dijelaskan terminology dan konsep struktur dasar dari model relasi. Pada bab
berikutnya akan dibahas beberapa contoh untuk latihan penggunaan bahasa yang menggunakan
model ini untuk melakukan pemutakhiran dan pemanggilan kembali data.
Pada bab 5, 6, dan 21 kita menguji SQL(bahasa Query Tersusun). yang formal dan
menjadi bahasa baku untuk RDBMS dan di bab 7 menguji QBE ( Query-By-Example), bahasa
query visuil yang populer untuk RDBMSs. Pada Bab 14-17 menjelaskan metodologi yang lengkap
untuk mendesain database relational. Sedangkan pada apendix D, akan menguji dua belas
aturan Codd's, yang membentuk suatu ukuran RDBMSi. Contoh pada ini adalah studi kasus
DreamHome , yang mana diuraikan secara detil di Bagian 10.4 dan apendix A.
Sistem Basisdata Relasional ( RDBMS) telah menjadi perangkat lunak pengolahan data yang
banyak digunakan saat ini; diperkirakan penjualan mencapai US$15 milyar dan US$20 milyar per
tahun ( US$50 milyar jika termasuk dengan penjualan perangkat kerasnya). Perangkat lunak ini
menghadirkan generasi yang kedua DBMSs yang berdasarkan pada model relational data yang
diusulkan oleh F. F. Codd ( 1970).
Susunan isi bab 3 ini adalah sebagai berikut :
Agar memperoleh gambaran yang jelas tentang perspektif RDBMS, pada Bagian 3.1
membahas sejarah ringkas relational model. Sedangkan Bagian 3.2 mendiskusikan konsep
yang menjadi dasar dan istilah relational model. Di Bagian 3.3 mendiskusikan aturan
integritas relasi, mencakup integritas entity dan integritas referensi. Di Bagian 3.4
memperkenalkan konsep view, yang merupakan hal penting pada model relasional DBMS
walaupun, pada hakekatnya. tak satu konsep relational pun model yang didalam dirinya.
Sejarah Ringkas Model Relational Relational.
Model ini pertama kali diusulkan oleh E. F. Codd di dalam makalahnya berjudul " A relational
model of data for large shared data banks" ( Codd, 1970). Makalah ini kini berlaku umum
sebagai fenomena dalam sistem database, walaupun suatu model berorientasi set telah
diusulkan sebelumnya ( Child, 1968). Sasaran model Relational adalah sebagai berikut:
o
Memungkikan tingkat kebebasan data yang tinggi. Program aplikasi seharusnya tidak
terpengaruh karena perubahan penyajian data yang internal, terutama oleh berubahnya
organisasi file, urutan data atau alur akses.
o Memberi alasan mendasarlberhubungan dengan semantik data, konsistensi, dan
permasalahan pemborosan. Makalah Codd juga memperkenalkan konsep hubungan
yang dinormalisasi, yaitu hubungan yang tidak terdapat pengulangan kelompok. ( Proses
normalisasi dibahas bab 13.)
o Memungkinkan penggunaan yang luas bahasa manipulasi data berorientasi set.
Hal menarik akan model relational itu berasal dari riset penting berhubungan dengan tiga
proyek dalam perspektif yang agak berbeda. Yang pertama , pada San IBM's José
Laboratorium Riset di California, yaitu prototip relational DBMS Sistem R, yang pada akhir
l970s ( Astrahan vial 1976). Proyek ini dirancang untuk membuktikan kepraktisan model
relational dengan melakukan implementasi tentang struktur data dan operasi nya. Juga
membuktikan untuk;menjadi suatu sumber informasi yang sempurna tentang implementasi
seperti manajemen transaksi. concurrency kendali, teknik pemulihan, optimisasi query,
keamanan data dan integritas, faktor manusia, dan alat penghubung pemakai Pada DBMS
sistem R terdapat dua pengembangan utama:
o pengembangan suatu bahasa query tersusun [ yang dilafalkan ' S-Q-L', atau kadangkadang ' See-Quel'), yang sejak itu telah menjadi Standar ISO dan defacto menjadi
bahasa baku untuk relational DBMSs;
o pembuatan berbagai DBMS relational komersil sepanjang akhir l970s dan l980s: sebagai
contoh, DB2 dan SQL/DS dari IBM dan Oracle dari Oracle Corporation.
Proyek kedua yang penting dalam pengembangan relational model adalah INGRES (
Interactive Graphics Retrieval System) dirancang Universitas California di Berkeley, yang
pada waktu yang sama aktif meneliti rancangan sistem R. Proyek Ingres melibatkan
pengembangan suatu prototipe RDBMS, dengan riset yang berkonsentrasi pada hasil yang
keseluruhan sasarannya menyerupai rancangan Sistem R. Riset ini mendorong suatu versi
akademis INGRES, yang memberi kontribusi penghargaan terhadap konsep relational dan
menghasilkan produk yang komersil INGRES dari Relational Inc. Teknologi ( sekarang
INGRES II dari Computer Associate) dan Mesin Database Yang cerdas dari Britton Inc.
Proyek yang ketiga adalah Peterlee Relational Test Vehicle pada Pusat Ilmiah IBM di
Peterlee UK ( Todd, 1976). Proyek ini mempunyai suatu orientasi [yang] lebih teoritis
dibanding Sistem R dan INGRES dan secara signifikan meneliti isu query untuk memproses
dan optimisasi, dan perluasan fungsional database.
Komersialisasi model relational dimulai pada akhir l970 dan awal l980. Saat ini terdapat
ratusan RDBMS untuk mainframe dan PC. Contoh pada PC-based RDBMSs adalah Akses Dan
Foxpro dari Microsoft. Paradox dari Corel Corp, Interbase Dan BDE dari Borland, dan R:Base
dari R:BASE Teknologi.
Seiring dengan populernya model relational, banyak sistem non-relational sekarang
menyediakan fitur relational. Asosiasi komputer IDMS, jaringan yang prinsipal DBMS, telah
menjadi CA-IDMS SQL, mendukung suatu views pada model relational. Pada komputer
mainframe DBMS mendukung beberapa model relational adalah Korporasi Komputer Model
America's 204 dan Perangkat lunak AG's ADABAS.
Beberapa perluasan model relational juga diusulkan; sebagai contoh, perluasan untuk:
o
o
o
menangkap lebih baik arti dari data ( sebagai contoh, Codd, 1979);
mendukung konsep berorientasi objek ( sebagai contoh, Stonebraker dan Rowe, 1986);
mendukung kemampuan deduksi ( sebagai contoh. Gardarin dan Valduriez, 1989).
Kita mendiskusikan sebagian dari perluasan ini di (dalam) Bab 24-27 pada Obyek DBMSs.
Terminologi
Istilah Relational Model didasarkan pada konsep matematika yang secara fisik diwakili oleh
suatu hubungan tabel,
Codd, seorang ahli matematik terlatih, memakai istilah pada matematika, terutama teori
dasar dan logika . Di bagian ini akan menjelaskan istilah itu dan konsep model relasional
terstruktur
3.2.1 Relational Struktur Data
Relasi adalah adalah suatu tabel yang mempunyai kolom dan baris.
Suatu RDBMS diperlukan hanya berdasarkan bagimana pemakai memandang sesuai
persepsinya. Sebagai catatan, bagaimanapun persepsi ini berlaku hanya untuk struktur
database yang logis: hal ini disebut tingkatan konseptual dan eksternal arsitektur ANSISPARC yang dibahas di Bagian 2.1. ( lihat juga apendix C).
Atribut adalah nama kolom dari suatu relasi.
Pada model relational, hubungan digunakan untuk
pegangan tentang object yang
diwakilinya.
Suatu hubungan diwakili sebagai dua dimensi tabel, di mana baris sesuai dengan arsip
individu dan kolom sesuai dengan atribut. Atribut dapat nampak pada tiap order dan
hubungan yang sama akan menyampaikan maksud yang sama. Sebagai contoh, informasi
pada kantor cabang diwakili oleh relasi Branch, dengan kolom untuk atribut brancnNo (
nomor;jumlah cabang). jalan. kota besar, dan postcode. Dengan cara yang sama informasi
tentang staff diwakili oleh relasi , dengan kolom untuk atribut staffNo ( nomor;jumlah staff).
fName. Nama. Position. Jenis kelamin. Dob ( tanggal kelahiran), gaji. dan branchNo (
banyaknya cabang anggota staff bekerja atl.
gambar 3.1 menunjukkan Cabang Dan relasinya. Seperti dapat dilihat dari contoh ini, suatu
kolom berisi nilai-nilai [dari;ttg] atribut tunggal; sebagai contoh. branchNo kolom berisi
hanya kode kantor cabang ada.
Domain
adalah suatu daerah atau satuan nilai-nilai yang dapat diijinkan untuk satu atau
lebih atribut.
Domain adalah suatu fitur utama dari model relational. Tiap atribut didalam suatu hubungan
digambarkan atas suatu daerah(domain). Domain mungkin berbeda untuk masing-masing
atribut, atau dua atau lebih atribut dapat menggambarkan domain yang sama. gambar 3.2
menunujukkan domain itu yang terdiri dari sebagian dari atribut Branch dan relasinya.
Konsep domain adalah penting sebab ini yang mengijinkan pemakai untuk menggambarkan
suatu maksud/arti dan asal nilai didalam atributnya. Sebagai hasilnya. intormasi tersedia pada
sistem itu pada waktu pelaksanaan pengoperasian suatu relasi, jika suatu operasi secara
semantik salah maka otomatis akan dihindari. Sebagai contoh. tidaklah mungkin membandingkan
suatu sebutan jalan dengan nomor telepon. meskipun domain keduanya sama. Pada sisi lain,
sewa bulanan pada suatu properti dan banyaknya bulan adalah suatu properti telah disewa
mempunyai domain yang berbeda ( yang pertama adalah suatu nilai moneter, yang kedua suatu
nilai bilangan bulat). keadaan ini masih suatu operasi yang legal untuk menghasilkan nilai dari
kedua domain tersebut.
Tuple. Sebuah tuple adalah baris dari sebuah table relasi
Elemen dari sebuah relasi adalah baris (row) atau disebut tuple di dalam table. Pada relasi
branch, setiap baris berisi empat nilai, satu nilai untuk setiap atribut. Tuple dapat muncul pada
setiap urutan dari suatu table relasi , yang dapat mempunyai pengertian yang sama.
Struktur suatu relasi, bersama-sama dengan suatu spesifikasi domain dan berbagai pembatasan
nilai lainnya, kadang-kadang disebut sebagai intension, kecuali ditetapkan lain. Tuples arc
disebut ekstensi relasi.
Derajat
Derajat tingkat suatu hubungan adalah banyaknya atribut terisi.
Relasi Branch di gambar 3.1 mempunyai empat atribut atau berderajat tingkat empat. Artinya
tiap baris tabel adalah berisi empat nilai-nilai. Relasi dengan hanya satu atribut mempunyai
derajat tingkat satu dan disebut suatu hubungan unary atau one-tuple.
Suatu hubungan dengan dua atribut disebut biner, dengan tiga atribut disebut ternary, dan
setelah itu istilah n-ary. Derajat tingkat suatu hubungan adalah suatu properti intension dari
relasi itu.
Kardinalitas. Adalah suatu hubungan sejumlah isi dari tuples.
Sebagai pembanding, banyaknya tuples disebut kardinalitas dari relasi dan perubahan ini ketika
tuples ditambahkan atau dihapus. Kardinalitas adalah suatu properti dari hubungan ekstensi dan
ditentukan dari kejadian hubungan yang telah ditentukan di setiap momen.
Relational database
adalah suatu kumpulan dari hubungan yang telah dinormalisasi
dengan nama hubungan yang berbeda.
Suatu relational database terdiri dari hubungan tersusun secara wajar tersusun. Kita mengacu hal
ini sebagai normalisasi.( akan didiskusikan pada bab 13).
Istilah Alternatif
Istilah untuk relational model dapat sungguh mengacaukan. Kita sudah memperkenalkan dua
buah terminologi. Sesungguhnya, terminologi ketiga digunakan: suatu hubungan adalah suatu
file, tuples atau arsip, dan atribut adalah field. Istilah berasal dari fakta ini yang , secara phisik.
RDBMS dapat menyimpan hubungan masing-masing dalam suatu file. tabel 3.1 meringkas
terminologi yang berbeda pada model relational.
Table 3.1 Alternative terminology for relational model terms.
Formal terms
Relation
Tuple
Attribute
Alternative 1
Alternative 2
Table
Row
Column
File
Record
Field
3.2.2 Relasi Matematika
Untuk memahami maksud yang benar istilah-istilah, kita harus meninjau ulang beberapa konsep
dari matematika. Bila kita mempunyai dua himpunan, D1, dan D2, di mana D1= { 2, 4} dan D2=
{1, 3, 5}. Kartesian produk dari kedua himpunan ini ditulis D1 x D2, adalah himpunan yang
berisi semua pasangan yang dihasilkannya, yaitu yang unsur pertamanya adalah anggota D1
dan unsur yang kedua adalah anggota D2. Cara lain menyatakan ini adalah dengan menemukan
semua kombinasi unsur-unsur pertama dari D1, dan yang kedua dari D2. Pada contoh ini, kita
mempunyai:
D1xD2={(2, l),(2,3),(2,5),(4,1),(4,3),(4,5)}
Setiap set dari hasil kartesian produk adalah relasi. Misalnya relasi R dibawah ini :
R = {(2, 1), (4, l)}
Kita dapat menetapkan pasangan pada relasi dengan memberi kondisi beberapa pilihan. Sebagai
contoh, jika kita mengamati bahwa P terdiri semua pasangan di mana unsur yang kedua adalah
1, kemudian kita bisa tulis R adalah :
R = { (x,y)  x ε D1, Y ε D2, and y = 1}
Penggunaan himpunan yang sama, akan membentuk relasi lain di mana unsur yang pertama
selalu dua kali lebih dari yang kedua. jadi ditulis S adalah :
S = { (x,y)  x ε D1, Y ε D2, and x = 2y}
Atau dalam bentuk nialai isinya ,
S= {(2, 1)}
hanya ada satu pasangan hasil produk Kartesian yang memuaskan pada kondisi ini. Kita dapat
dengan mudah memperluas menjadi tiga relasi. Misalkan tiga relasi D1, D2, dan D3. Produk
Kartesian D1 x D2 x D3, tiga himpunan ini adalah satuan dari semua rangkap tiga hasilnya. Yang
terdiri unsur pertama adalah dari D1, unsur yang kedua adalah dari D2, dan unsur yang ketiga
adalah dari D3. Setiap subset dari produk Kartesian ini adalah suatu relasi. Sebagai contoh, kita
mempunyai:
D1={1,3} D2={2,4} D3={5,6)
D1xD2xD3={(I,2,5),(l.2,6).(l,4,5),(l,4,6),(3,2,5),(3,2.6),(3,4,5).(3.4.6)}
Setiap subset dari hasil perkalian tiga himpunan ini adalah relasi. Selanjutnya dapat diperluas ke
dalam relasi umum yang terdiri dari n domain. Misalnya D1, D2, D3 … Dn sebanyak n set. Hasil
kartesian pruduknya adalah :
D1XD2XD3…..XDn= {d1,d2,d3,…,dn|d1εD1, d2εD2,….. dnεDn}
dan secara umum ditulis sebagai berikut :
n
X
Di
i=1
Tiap kumpulan dari n-tuples dai kartesian produk adalah relasi didalam n himpunan. Sebagai
catatan, ini didefinisikan
relasi mempunyai sejumlah set atau domain dari nilai yang
ditunjukkannya.
3.2.3 Relasi Database
Dengan menerapkan konsep di atas, maka dapat disusun definisi dari relasi dari skema
Skema Relasi Nama relasi didefinisikan sebagai kumpulan atribut dan nama domain
pasangannya.
Misalnya A1, A2, A3 …. A adalah atribut dengan domain D1,D2, …Dn, Maka kumpulan dari
{A1:D1, A2:D2, An:Dn } adalah skema relasi. Sebuah relasi R didefinisikan oleh skema relasi
S adalah himpunan dari pemetaan dari nama-nama atribut pada hubungan domain mereka.
Jadi relasi P adalah himpunan n-tuples :
(A1:d1, A2:d2,…
An:dn) dimana d1εD1, d2εD2,….. dnεDn
Setiap elemen dari n-tuple terdiri dari dari atribut dan nilai atribut itu. Secara normal, ketika
menuliskan suatu relasi sebagai tabel, kita membuat daftar nama atribut dari judul kolom
dan menuliskan tuples sebagai baris.
Misalnya pada bentuk ( d1,. d2,..., dn,.), di mana nilai masing-masing diambil dari domain
yang sesuai.
Dengan cara ini, kita dapat berpikir bahwa suatu relasi di dalam model relational adalah
semua subset dari hasil produk Cartesian domain atribut itu. Suatu tabel hanya suatu
penyajian phisik dari relasi seperti itu
Pada contoh, relasi Branch yang digambarkan pada gambar 3.1 mempunyai atribut
branchNo,street,city,dan postcode, yang masing-masing mempunyai domain. Relasi branch
ini terdiri dari setiap subset dari hasil kartesian produk dari domainnya, atau setiap empat
tuple dimana elemen pertama adlah dari domain BranchNumber, elemen kedua berasal dari
domain StreetName dan seterusnya. Salah satu dari keempat tuple itu adalah
{(B005, 22 Deer Rd. London, SWI 4EH)}
Atau lebih tepatnya :
{(branchNo: B005, street: 22 Deer Rd. cty: London. postcode: SWI 4EH)}
Kita menyatakan ini sebagai isi (instance) dari relasi. Tabel branch sangat tepat dinyatakan
dengan empat tuple dari relasi pada setiap waktu yang ditentukan. Ini menjelaskan
bagaimana sebuah baris table pada model relasi disebut tuple. Dengan cara yang sama
sebuah relasi mempunyai skema, sudah barang tentu relasi database.
3.2.3 Relasi database
Berdasarkan konsep di atas, maka dapat didefinisikan skema relasi sebagai berikut
Skema Relasi
adalah kumpulan sejumlah skema relasi dimana masing-masing
mempunyai nama yang berbeda.
Jika R terdiri dari R1, R2, …. Rn adalah suatu kumpulan dari skema relasi, maka dapat
dituliskan skema database relasi atau sering disingkat dengan skema relasi R adalah :
R= {R1,R2,…,Rn}
3.2.4 Properties dari Relasi
Sebuah relasi mempunyai sejumlah property sebagai berikut :
 relasi mempunyai suatu nama yang berbeda dari semua relasi yang lpada skema
relasinya;
 masing-masing sel dari relasi berisi hanya satu nilai tunggal;
 masing-masing atribut mempunyai nama yang berbeda:
 nilai-nilai dari suatu atribut adalah dari domain yang sama:
 masing-masing tuple adalah beda; tidak ada salinan tuples;
 order atribut tidak punya arti;
 order tuples tidak punya arti. secara teoritis. (Namun, dalam praktek, order boleh
mempengaruhi efisiensi akses tuples.)
Untuk menjelaskan arti pembatasan ini, marilah dilihat lagi relasi Branchpada gambar 3.1.
Setiap elemen berisi hanya satu nilai, jadi adalah tidak sah untuk menyimpan dua post-codes
untuk satu kantor cabang tunggal di dalam sel tunggal. Dengan kata lain, hubungan tidak
berisi pengulangan kelompok. Suatu hubungan yang memuaskan
ini disebut normalisasi atau dalam format normal. ( Format normal dibahas bab 13.) Daftar
nama kolom berada di bagian atas kolom sesuai dengan atribut relasi [itu]. Nilai-Nilai di
dalam atribut brancbNo adalah terdiri semua domain dari BranchNumber : mestinya tidak
mengijinkan suatu nilai kode pos nampak di kolom ini. Dengan kata lain tidak ada
pengulangan tuples di dalam suatu relasi. Sebagai contoh (B005, 22 Deer Rd. London, SWI
4EH) hanya muncul satu kali.
Dapat terjadi, suatu nama atribut diganti dengan nilai atributnya dengan mempertukarkan
kolom. Tabel akan menggambarkan relasi yang sama jika kita menempatkan kota di dalam
kode pos, walaupun untuk keadaan ini dapat dibaca adanya unsur-unsur alamat dan lainnya
dalam pesanan. Dengan cara yang sama, tuples dapat dipertukarkan, sehingga arsip cabang
B005 dan B004 dapat dipindah dan relasi masih akan sama. Kebanyakan dari properti
menetapkan untuk relasi yang diakibatkan oleh properti relasi matematis:
O Ketika kartesian produk telah dihasilkan unsur-unsur bernilai tunggal sederhana seperti
bilangan bulat, masing-masing unsur pada setiap tuple adalah bernilai tunggal. Dengan
cara yang sama. masing-masing sel suatu hubungan berisi persisnya satu nilai.
Bagaimanapun, suatu relasi matematis tidak perlu dalam bentuk normal. Codd
menentukan pengulangan kelompok data seharusnya ditolak untuk menyederhanakan
relational model data .
o
Di dalam suatu relasi, nilai-nilai yang mungkin untuk tiap posisi, ditentukan oleh
kelompok, domain, yang menggambarkan posisinya. Di dalam suatu tabel, nilai-nilai
pada tiap kolom harus berasal dari domain atribut yang sama.
o Di dalam kelompok, tidak ada elemen yang berulang. Dengan cara yang sama, di dalam
suatu relasi, tidak ada duplikasi dtuplesalinan tuples.
o Sejak suatu relasi di dalam satu kelompok , aturan elemen/komponen tidak berlaku. Oleh
karena itu, di dalam suatu relasi hubungan tuples adalah tidak penting
Bagaimanapun, pada relasi matematis, aturan unsur-unsur dalam satu tuple adalah penting.
Sebagai contoh, pasangan ( I, 2) adalah sungguh berbeda dari pasangan yang ( 2, I).
Meskipun ini bukan kasus pada model relasi, yang memerlukan atribut tidak penting.
Alasannya adalah bahwa kolom yang mengatur menggambarkan pemilik nilai itu. Ini berarti
judul kolom adalah intension yang tidak penting, tetapi ketika struktur hubungan di/terpilih,
unsur-unsur di dalam tuples harus memenuhi atributnya.
3.2.5 Key dari sebuah relasi
Seperti dijelaskan di atas, tidak ada tuple yang duplikat di dalam suatu relasi. Oleh karena
itu, kita perlu untuk dapat mengidentifikasi satu atau lebih atribut ( disebut : kunci relasi )
yang akan mengidentifikasi secara unik setiap tuple di dalam suatu relasi. Di bagian ini,
menjelaskan istilah itu yang digunakan untuk kunci relasi.
Superkey
Sebuah atribut, atau kumpulan atribut, yang mengidentifikasi secara unik sebuah
tuple di dalam suatu relasi.
Suatu superkey yang mengidentifikasi secara unik setiap
tuple di dalam relasi.
Bagaimanapun, suatu superkey boleh berisi atribut gabungan, tetapi umumnya hanya berisi
minimum jumlah atribut yang penting untuk mengidentifikasi secara unik.
Kandidat Key
Adalah suatu superkey atau subset dari superkey yang cocok untuk kunci
relasi.
Suatu kandidat key K, pada suatu relasi R mempunyai dua ciri :
o keunikan- pada setiap tuple R, nilai-nilai K dengan uniknya mengidentifikasi tuple itu;
o sifat tak dapat dijabarkan , tidak ada bagian dari K yang dapat menentukan keunikan.
Mungkin ada beberapa calon kunci untuk suatu relasi. Jika kunci terdiri lebih dari satu atribut,
ini disebut kunci-gabungan (composite key). Kita lihat contoh tabal Cabang, disana
ditunjukkan(lihat gambar 3.1) suatu nilai kota, kita dapat menentukan beberapa kantor
cabang (misalnya : London mempunyai dua kantor cabang). Atribut ini tidak bisa dijadikan
suatu calon kunci. Pada sisi lain, karena DreamHome mengalokasikan kantor cabang
masing-masing, maka terdapat sejumlah cabang unik, kemudian memberi suatu nilai
cabang, branchNo, kita dapat menentukan paling banyak satu tuple, sedemikian sehingga
brannchNo adalah suatu calon kunci. Dengan cara yang sama, kode pos adalah juga suatu
calon kunci untuk hubungan ini.
Selanjutnya kita lihat relasi VIEW, yang berisi informasi yang berkenaan dengan property
yang dilihat oleh klien. Relasi itu berisi nomor-klien (clientNo), nomor-properti ( propertyNo),
tanggal melihat ( viewDate) dan, komentar ( comment). dengan nomor-klien, clientNo,
mungkin ada beberapa yang bersesuaian melihat property yang berbeda. Selanjutnya engan
cara yang sama, suatu nomor-properti, propertyNo, mungkin ada beberapa klien yang
melihat properti ini. Oleh karena itu, clientNo atau propertyNo dengan sendirinya tidak bisa
terpilih sebagai kunci calon. Bagaimanapun, kombinasi clientNo dan propertyNo
mengidentifikasi paling banyak satu tuple, maka, untuk table View tersebut , clientNo dan
propertyNo bersama-sama membentuk kunci gabungan.
Suatu kejadian dalam seuatu relasi tidak bisa digunakan untuk membuktikan bahwa suatu
atribut atau kombinasi atribut adalah suatu calon kunci. Fakta bahwa tidak ada salinan untuk
nilai-nilai yang nampak pada saat tertentu tidak menjamin salinan itu tidaklah mungkin.
Bagaimanapun, adanya suatu kejadian dapat digunakan untuk menunjukkan beberapa
kombinasi atribut bukanlah suatu calon kunci. Mengidentifikasi suatu calon kunci
memerlukan kesesuaian dengan ' dunia nyata' dari setiap maksud/arti attribute yang
dilibatkan sedemikian sehingga kita dapat memutuskan apakah itu mungkin.
Hanya dengan penggunaan informasi semantik ini kita yakin bahwa suatu kombinasi atribut
adalah suatu calon kunci. Sebagai contoh, dari gambar 3.1, suatu calon kunci pantas untuk
relasi lname, nama panggilan karyawan itu. Walaupun hanya ada nilai tunggal ' Putih' di
dalam kejadian relasi ini, suatu anggota baru mengorganisir dengan nama panggilan ‘Putih'
boleh bergabung dengan kelompok itu, membuat tidak tepat pilihan Nama sebagai kunci.
Kunci Utama Kndidat key yang terpilih untuk mengidentifikasi tuples dengan uniknya di
dalam hubungan kunci.
Pada relasi yang tidak duplikasi,adalah selalu mungkin untuk mengidentifikasi baris masingmasing secara unik. Hal ini berarti suatu relasi selalu mempunyai suatu kunci utama. Pada
kasus yang terburuk, keseluruhan satuan atribut bisa bertindak sebagai kunci yang utama.
tetapi pada umumnya terdapat beberapa subset kecil yang dapat mengidentifikasi sebuah
tuples. Kandidat key yang tidak terpilih sebagai kunci utama disebut kunci pengubah
(alternate key). Sebagai contoh relasi Cabang, jika kita memilih branchNo sebagai kunci
utama, maka postcode akan menjadi kunci pengubah. Pada relasi View, ada hanya satu
calon kunci, berisi[kan clientNo dan propertyNo, maka atribut ini akan secara otomatis
membentuk kunci utama itu.
Kunci Asing
Suatu atribut, atau kelompok atribut, pada satu relasi yang sesuai dengan
kandidat key pada relasi yang sejenis.
Ketika suatu atribut muncul pada beberapa relasi, maka akan menghadirkan suatu hubungan
antara dua relasi. Sebagai contoh, pemasukan branchNo pada dua relasi Cabang Dan Staf,
akan menghubungkan cabang masing-masing kepada detil staff yang bekerja pada kantor
cabang tersebut. Pada relasi Cabang, Branchno adalah kunci utama itu. DEngan demikian
pada relasi itu, atribut branchNo dipakai untuk menemukan staff pada kantor cabang dimana
mereka bekerja. Pada relasi tersebut, Branchno adalah suatu kunci asing. Kita katakan
bahwa atribut branchNo di dalam relasi Staf menunjuk pada brancnNo pada relasi Cabang.
Atribut ini mempunyai peran yang sangat penting di dalam melakukan manipulasi data, pada
pengolahan database.
3.2.6 Penggambaran suatu skema Database
Suatu relational database terdiri sejumlah relasi yang normal.Bagan Relasi dari kasus
DreamHome adalah sebagai berikut :
Figure 3.3
Instance of the
DreamHome rental
database.
Branch
branchNo street
city
postcode
B005
22 Deer Rd London SW1 4EH
B007
16 Argyll St Aberdeen AB2 3SU
B003
B004
163 Main St Glasgow Gil 9QX
32 Manse Rd Bristol
B599 1NZ
B002
56 Clover Dr London NW1O 6EU
Staff
staffNo tName lName position sex DOB
SL21
SG37
SG14
SA9
SG5
SL4I
John
White
Manager
M
Ann
Beech Assistant
F
David Ford
Supervisor M
Mary
Howe Assistant
F
Susan Brand Manager
F
Julie
Lee
Assistant
F
PropertyForRent
propertyNo street
PA14
B007
PL94
PG4
PG36
PG21
PG16
city
16 Hothead
Kay
Stewart
Ritchie
Tregear
Joe
Carol
Tina
Tony
6
4
3
3
400
4
B007
BOOS
650
C046
C087
SL41
350 C040
375 C093
5G37
600 C087 SG37
450 CO93 SG14
SA9
BOOS
B003
B003
B003
B003
prefType maxRent
0207-774-5632
Flat
0141-848-1825
Flat
01475-392178
House
01224-196720
Flat
PrivateOwner
ownerNo tName IName address
C046
C087
C040
C093
House
6 Argyll St
London
NW2
Flat
6 Lawrence St Glasgow Gil 9QX Flat
2 Manor Rd
Glasgow G32 4QX Flat
18 Dale Rd
Glasgow Gl2
House 5
5 Novar Dr
Glasgow G12 9AX Flat
John
Mine
Mike
Mary
BOOS
postcode type rooms rent ownerNo staffNo branchNo
Aberdeen AB7 5SU
Client
cllentNo fName IName telNo
CR76
CR56
CR74
CR62
salary branchNo
1-Oct-45
30000
10-Nov-60 12000 B003
24-Mar-58 18000 B003
19-Feb-70
9000
3-Jun-40
24000 B003
13-Jun-65 9000
425
350
750
600
telNo
Keogh
2 Fergus Dr, Aberdeen AB2 7SX
01224-861212
Farrel
6 Achray St, Glasgow G32 9DX 0141-357-7419
Murphy 63WellSt,GlasgowG42
0141-943-1728
Shaw
12 Park P1, Glasgow G4 OQR
0141-225-7025
Viewing
Registration
clientNo propertyNo viewDate comment
cllontNo branchNo staffNo
datoJolned
CR56
2-Jan-01
CR76
11-Apr-00
CR56
16-Nov-99
CR62
SA9
CR56
PA14
24-May-01
too small CR76
BOOS
PG4
20-Apr-01
too remote CR56
B003
SG37
PG4
26-May-01
CR74
B003
SG37
PAL4
7-Mar-00
PG36
14-May-01
CR62
B007
28-Apr-01
no dining room
5L41
Branch
Staff
PropertyForRent
Client
Private0wner
Viewing
Registration
(branchNo, street, city, postcode)
(staffNo, fName, Name, position, sex, DOB, salary, branchNo)
(crooertvNo, street, city, post000e, type, rooms, rent, ownerNo, staffNo.
branch No)
(clientNo, fName, Name, telNo, prefType, maxRent)
(ownerNo, fName, Name, address, telNo)
(clientNo, orooertyNo, viewDate, comment)
(clientNo, branchNo, staffNo, dateJoined)
Kesepakatan umum untuk menyatakan suatu bagan relasi adalah untuk memberi nama
relasi yang diikuti oleh atribut menyebut di dalam tanda kurung. Secadangkan kunci utama
diberi garis bawah. Model yang konseptual, atau bagan konseptual terdiri sejumlah skema
database seperti itu. Gambar 3.3 menunjukkan suatu bagan relasi tersebut.
3.3 Integritas suatu Relasi
Di sebelumnya telah dibahas yang bagian dari struktur relational data model. Telah
dinyatakan suatu data model mempunyai dua bagian yang berbeda: bagian manipulatip,
untuk melukiskan jenis operasi yang diijinkan pada data, dan satu set aturan integritas, yang
memastikan bahwa data itu akurat. PAda bagian ini akan didiskusikan aturan integritas data
tersebut. Sedangkan di bagian lain akan mendiskusikan operasi manipulasi data tersebut.
Setiap atribut mempunyai domain, constraint( batasan daerah yang dipanggil) pembatasan
format atas satuan nilai-nilai pada relasi atribut. Sebagai tambahan, ada dua aturan integritas
penting. Dua aturan prinsip untuk relational model dikenal sebagai integritas kesatuan dan
integritas yang mempunyai petunjuk.
3.3.1 Nulls
Null
Represents a value for an attribute that is currently unknown or is not applicable for this tuple.
Null dapat diartikan sebagai tidak diketahui nilainya (unknown). Berarti bahwa suatu nilai
tidaklah dapat digunakan untuk tuple tertentu,atau berarti bahwa tidak ada nilai yang
tersedia. Null adalah suatu cara untuk berhubungan dengan data pengecualian atau tidak
sempurna. Suatu Null tidaklah sama dengan nol atau spasi kosong, tetapi diartikan suatu
untuk memunculkan ketidakhadiran suatu nilai. Oleh karena itu, Null harus diperlakukan
dengan cara yang berbeda dari nilai-nilai lainnya . Beberapa pengarang menggunakan
istilah ' nilai batal'.
Sebagai contoh, pada relasi View (gambar 3.3), atribut komentar boleh tak tergambarkan
sampai penyewa yang potensial telah mengunjungi property itu dan memberikan
komentarnya kepada agen itu. Tanda batal itu diperlukan untuk untuk menghadirkan status
ini atau untuk menambahkan atribut tambahan yang tidak mungkin penuh arti kepada
pemakai. Di (dalam) contoh kita boleh mencoba untuk menghadirkan suatu komentar batal
dengan nilai 1'. Sebagai alternatif. kita boleh menambahkan suatu atribut baru
hasCommentBeenSüpplied pada table View, yang berisi suatu nilai Y ( Ya) jika suatu
komentar telah disediakan, dan N ( Tidak (ada)) untuk yang lainnya. Kedua pendekatan ini
dapat mengacaukan kepada pemakai [itu].
Null menyebabkan permasalahan implementasi, model relational didasarkan pada aturan
awal kalkulus, dimana suatu two-valued atau logika Boolean- satu-satunya nilai-nilai yang
diperbolehkan. Untuk menggunkan makna Null harus bekerja dengan suatu logika highervalued, seperti tiga- atau logika four-valued ( Codd. 1986. 1987, 1990).
Diskusi tentang Null adalah suatu isu suka diperdebatkan. Codd memasukkan Null sebagai
suatu bagian integral modelnya ( Codd. 1990). Karena percaya bahwa masalah informasi
yang hilang tidaklah secara penuh dipahami. bahwa tidak ada solusi yang memuaskan telah
ditemukan dan, sebagai konsekwensi, pemakaian Null adalah prematur ( lihat, sebagai
contoh. Date. 1995). Kita kini sanggup untuk menggambarkan keduanya relational aturan
integritas.
3.3.2
Entity Integrity
Aturan Integritas yang pertama berlaku pada kunci utama. Secara konseptual sebuah relasi
menggambarkan hubungan kesatuan dengan kunci utama.
Entity integrity
In a base relation, no attribute of a primary key can be null
Menurut definisi, suatu kunci utama, digunakan untuk mengidentifikasi tuples dengan
uniknya. Ini berarti bagian dari kunci utama tidak mencukupi untuk mendjadi identifikasi unik
dari sebuah tuples. Jika kita mengijinkan Null sebagai bagian dari suatu kunci utama, ini akan
menyiratkan bahwa tidak semua atribut diperlukan untuk membedakan antara tuples.
Sebagai contoh. Pada relasi Cabang maka brancnNo adalah kunci utama, kita tidak
menyisipkan nilai Null relasi Cabang untuk branchNo tersebut. Sebagai contoh kedua,
mempertimbangkan kunci gabungan pada relasi View , berisi nomor-klien( clientNo) dan
nomor-properti( propertyNo). Kita tidak menyisipkan suatu tuple ke dalam realasi View
dengan nilai Null untuk atribut clientNot, atau Null pada propertyNo atribut, atau untuk
kedua-duanya.
Untuk menguji aturan ini secara detil, akan ditemukan keganjilan. Pertama, kenapa aturan ini
hanya berlaku untuk kunci utama dan tidak secara umum pada kandidat kunci, yang juga
mengidentifikasi tuples dengan uniknya? Yang kedua. mengapa aturan terbatas untuk dasar
relasi? Sebagai contoh, pada relasi View jika dilakukan query ' Daftar semua komentar dari
yang mengamati'. Ini akan menghasilkan suatu hubungan unary terdiri dari atribut klien yang
memberikan komentar. Menurut definisi, atribut ini ia harus suatu kunci utama, yaitu klien
mengamati property nomor PG36 dan PG4 yaitu klien CR56). (Codd 1988; Date. 1990).
3.3.3 Referential Integrity
Aturan integritas kedua berkaitan dengan kunci asing, sebagai berikut :
Referential integrity If a foreign key exists in a relation, either the foreign key value must
match a candidate key value of some tuple in its home relation or the
foreign key value must be wholly null.
Sebagai contoh, pada relasi Cabang, atribut branchNo adalah suatu kunci asing yang
mengarahkan branchNo untuk menujukan hubungan dengan property pada Cabang. Adalah
tidak mungkin untuk menciptakan suatu staff merekam dengan nomor-cabang B025, sebagai
contoh, kecuali jika ada suatu record untuk nomor-cabang B025 didalam realsi Cabang. Jika
tidak , maka harus menciptakan suatu staf baru merekam dengan suatu nomor-cabang berisi
Null, untuk memenuhi situasi ini yang artinya satu anggota baru staff telah dimasukkan dalam
gabungan tetapi belum ditugaskan ke kantor cabang tertentu .
3.3.4 Enterprise Constraint
Konstrain enterprise
adalah aturan tambahan yang ditetapkan perusahaan sebagai batasan
suatu database.
Batasan tersebut ditatpkan untuk para pemakai untuk suatu nilai data yang harus mencukupi.
Sebagai contoh, jika banyaknya staf di satu cabang dibatasi sebanyak 20 orang, maka
pemakai DBMS harus memasukkan hal ini sebagai suatu persyratan pada atribut staf yang
bersangkutan. Hal ini berarti, tidak mungkin untuk menambahkan suatu anggota baru pada
cabang yang telah ditentukan di dalam relasi staff.
3.4 Views
Pada arsitektur ANSI-SPARC diuraikan suatu pandangan eksternal suatu struktur database
yang nampak bagi pemakai tertentu. Didalam model relasi, View (' pandangan' ) mempunyai
suatu arti yang sedikit berbeda. Suatu view adalah relasi yang diperoleh secara dinamis yang
diperoleh dari satu atau lebih hubungan dasar. Suatu model eksternal dapat terdiri dari
gabungan relasi dasar (conceptual-level) dan view diperoleh hubungan dasar tersebut.
3.4.1 Terminology
Hubungan yang telah dibahas sampai saat ini umumnya disebut sebagi hubungan dasar.
Hubungan dasar Suatu relasi yang dinamai sesuai dengan suatu entitas di dalam model
konseptual, dimana siapa tuples disimpan pada database.
Kita dapat menggambarkan pandangan dalam kaitan dengan hubungan dasar:
View Hasil yang dinamis dari satu atau lebih relasidasar untuk menghasilkan hubungan lain.
Suatu view adalah suatu relasi sebenarnya yang tidak ada dalam database tetapi
dihasilkan untuk permintaan oleh pemakai tertentu, pada waktu request.
Suatu pandangan adalah suatu hubungan yang nampak kepada pemakai, dapat digerakkan
seolah-olah adalah suatu hubungan dasar, tetapi tidak perlu disimpan di dalam storage
database. Indeks suatu view digambarkan sebagai suatu query pada satu atau lebih
hubungan dasar. Operasi atas pandangan secara otomatis diterjemahkan ke dalam operasi
atas hubungan dasarnya. Pandangan adalah dinamis, artinya berubah sesuai kebutuhan.
Kapan para pemakai meminta perubahan terhadap view, perubahan ini dibuat berdasar
hubungan.
3.4.2
Purpose of Views
Mekanisme view adalah didasarkan untuk beberapa pertimbangan:
O
Untuk menyediakan suatu mekanisme keamanan yang fleksibel dan kuat dengan
menyembunyikan bagian-bagian database terhadap pemakai tertentu. Para pemakai
tidak peduli dimana semua atribut atau tuples itu berada tetapi mereka memerlukan
sesuai view-nya.
o Memungkinkan pemakai untuk mengakses data sesuai kebutuhan mereka, sedemikian
sehingga data yang sama dapat dilihat oleh para pemakai berbeda dengan cara yang
berbeda. pada waktu yang sama.
o Menyederhanakan operasi kompleks atas hubungan dasar. Sebagai contoh, jika suatu
view digambarkan sebagai suatu kombinasi(gabungan) tentang dua hubungan ( lihat
Bagian 4.1), para pemakai boleh melaksanakan operasi yang lebih sederhana pada
view, yang diterjemahkan oleh DBMS ke dalam operasi gabungan relasinya.
Suatu pandangan harus dirancang untuk mendukung model yang eksternal yang dikenal
pemakai temukan secara umum.
Sebagai contoh:
o Seorang pemakai mungkin memerlukan tuple Cabang, berisi nama para manajer seperti
halnya atribut lain di relasi Cabang. View ini dibuat dengan menggabungkan relasi
Branch dengan suatu format yang terbatas dimana posisi staff adalah ' Manajer'
o
o
Beberapa anggota staff perlu view terhadap tuple lihat Staff tanpa melihat atribut gaji.
Atribut mungkin dinamai kembali. Sebagai contoh, pemakai terbiasa memanggil
branchNo untuk atribut cabang, oleh Cabang lain diberi nama penuh yaitu : Nomor.
Beberapa anggota staff melakukan view hanya arsip property yang dibawah tanggung
jawab mereka.
Walaupun semua contoh ini menunjukkan bahwa suatu view menyediakan data logis, view
memungkinkan kebebasan pemakai untuk mengatur data secara logis. Sebagai contoh, jika
suatu atribut baru ditambahkan untuk suatu hubungan, user yang ada mungkin tidak peduli
pada keberadaan, jika hal itu tidak mempengaruhi kebutuhan atas view-nya. Jika suatu
hubungan ada diatur kembali, suatu pandangan mungkin digambarkan sedemikian sehingga
para pemakai dapat melihat lebih lanjut pandangan asli mereka.
3.4.3 Updating Views
Untuk melakukan pemutakhiran suatu hubungan dasar, harus dengan seketika dicerminkan
dalam semua pandangan yang mengacu pada hubungan dasarnya. Dengan cara yang
sama, jika suatu pandangan dibaharui, kemudian hubungan dasar perlu mencerminkan
perubahan itu. Bagaimanapun, ada pembatasan pada jenis modifikasi yang dapat dibuat
melalui view. Kita meringkas kondisi-kondisi untuk pembaharuan yang diijinkan melalui suatu
view:
o
o
o
Updating diijinkan melalui suatu view yang digambarkan penggunaannya adalah suatu
query sederhana yang berisi hubungan dasar tunggal baik kunci utama maupun suatu
kandidat kunci hubungan dasar.
Updating tidaklah diijinkan sampai view menyertakan berbagai hubungan dasar.
Updating tidaklah diijinkan sampai view menyertakan pengumpulan atau menggolongkan
operasi
Pengelompokan view digambarkan secara teoritis updatable. secara teoritis updatable. dan
secara parsial updatable. Suatu survei atas proses updating relasi view ditemukan pada
Furtado dan Casanova ( 1985)