Arsitektur system basis data memberikan kerangka kerja bagi pembangunan basis data.
a. Entity-relationship Model
E-R model didasarkan atas persepsi terhadap dunia nyata yanga terdiri dari
sekumpulan objek, disebut entity dan hubungan antar objek tersebut, disebut
relationship. Entity adalah objek di dunia yang bersifat unik. Setiap entity
mempunyai atribut yang membedakannya dengan entity lainnya. Contoh :
entity Mahasiswa, mempunyai atribut nama, umur, alamat no. ktm.
Pemodelan data dengan model E-R menggunakan diagram E-R. Diagram E-R
terdiri dari :
! Kotak persegi panjang, menggambarkan himpunan entity
! Elip, menggambarkan atribut-atribut entity
! Diamon, menggambarkan hubungan antara himpunan entity
! Garis, yang menghubungkan antar objek dalam diagram E-R
b. Object-Oriented Model
Model berorientasi objek berbasiskan kumpulan objek. Setiap objek berisi :
1. Nilai yang disimpan dalam variable instant, dimana variable tersebut
“melekat” dengan objek itu sendiri.
2. Metoda : operasi yang berlaku pada objek yang bersangkutan
3. Objek-objek yang memiliki tipe nilai & metode yang sama
dikelompokkan dalam satu kelas. Kelas disini mirip dengan tipe data
abstrak pada bahasa pemrograman.
4. Sending a message : sebuah objek dapat mengakses data sebuah objek
yang lain hanya dengan memanggil metode dari objek tersebut.
DBMS adalah software yang menangani semua akses ke basis data. Secara konsep apa
yang terjadi adalah sebagai berikut :
1. user melakukan pengaksesan basis data untuk informasi yang diperlukannya
menggunakan suatu bahasa manipulasi data, biasanya disebut SQL.
2. DBMS menerima request dari user & menganalisa request tersebut
3. DBMS memeriksa skema eksternal user, pemetaan eksternal/konseptual, skema
konseptual, pemetaan konseptual/internal, & struktur penyimpanan.
4. DBMS mengeksekusi operasi-operasi yang diperlukan untuk memnuhi
permintaan user.
BAB II
MODEL ENTITY-RELATIONSHIP
Model E-R didasarkan pada persepsi dari sebuah dunia nyata yang terdiri dari
sekumpulan objek, disebut entiti & relasi diantar objek-objek tersebut.
PERSON
Person_Id Date_Of_birth Name
P1 7 July 49 Joe
P2 3 June 61 Mary
P3 11 Feb 65 Andrew
P4 22 April 64 Joe
P5 17 May 66 Jill
Person_Id adalah kunci relasi dari relasi PERSON. Dalam relasi tersebut, maksmimal
hanya satu baris untuk setiap nilai Person_Id yang diberikan. Sebagai contoh, hanya satu
baris dengan Person_Id = ‘P3’. Name tidak dapat dijadikan kunci relasi karena dapat
lebih dari satu orang yang mempunyai nama yang sama.
Relasi Person di atas memiliki kunci yang hanya terdiri dari satu atribut. Sangat
dimungkinkan kunci relasi terdiri dari banyak atribut. Contoh relasi Work pada gambar di
bawah mempunyai kunci relasi yang terdiri dari dua atribut yaitu :
Person_Id & Proj_No
Nilai kedua atribut, Person_Id & Proj_No diperlukan untuk menentukan satu baris yang
unik. Karena untuk menentukan satu baris yang unik tidak cukup dengan Person_Id saja
atau hanya dengan Proj_No.
d. Foreign Key(FK)
Term FK juga banyak digunakan dalam perancangan. Sebuah FK adalah sekumpulan
atribut dalam suatu relasi (misal A) sedemikian sehingga kumpulan atribut ini bukan
kunci relasi A tetapi merupakan kunci dari relasi lain.
Kardinalitas Pemetaan
Kardinalitas pemetaan atau rasio kardinalitas menunjukkan jumlah entity yang dapat
dihubungkan ke satu entity lain dengan suatu relationship sets.
Kardinalitas pemetaan meliputi :
1. Hubungan satu ke satu (one to one).
Yaitu satu entity dalam A dihubungkan dengan maksimum satu entity dalam
2. Hubungan satu ke banyak (one to many)
Yaitu satu entity dalam A dihubungkan dengan sejumlah entity dalam B. Satu
entity dalam B dihubungkan dengan maksimum satu entity dalam A.
3. Hubungan banyak ke satu (many to one)
Yaitu satu entity dalam A dihubungkan dengan maksimum satu entity dalam
B. Satu entity dalam B dapat dihubungkan dengan sejumlah entity dalam A.
4. Hubungan banyak k banyak (many to many).
Satu entity dalam A dihubungkan dengan sejumlah entity dalam B, & satu
entity dalam B dihubungkan dengan sejumlah entity dalam A.
a4 b4 a3 b5
a1
a1 b1
a2 b1
a2 b2
a3 b2
a3 b3
a4
b3
a5 a4 b4
Diagram Entity-Relationship
Komponen E-R diagram adalah :
- Persegi panjang (rectangles) : merepresentasikan entity sets
- Elip (ellipses) : merepresentasikan atribut entity
- Wajik(diamonds) : merepresentasikan relationship sets
- Lines (garis) : merepresentasikan hubungan atribut ke entity sets & entity sets
ke relatioship sets
Contoh :
Diagram E-R dibawah terdiri dari 2 entity sets, customer & loan, & satu relationship set
borrower. Atribut dari customer adalah nama, ktp, jalan, kota. Atribut untuk loan adalah
no_pinjaman, jml_pinjaman. Hubungan entity customer ke loan adalah banyak ke
banyak.
jalan KTP nama no_pinj jum_pinj
kota
Spesialisasi
Proses mendesain subgrup di dalam suatu entity disebut dengan specialisasi. Suatu
himpunan entity bisa memiliki suatu subgrup yang berbeda diantara entiti-entiti lain
dalam himpunan tersebut. Misalnya suatu sub himpunan entity dalam suatu himpunan
entity bisa memiliki atribut yang berbeda dari entity-entiti lain. Model E-R memiliki
fasilitas untuk perbedaan ini.
Contoh : himpunan entity account memiliki atribut account-number dan balance. Suatu
account dapat diklasifikasikan lagi menjadi salah satu dari :
- savings-account
- checking-account
(lihat gambar dibawah)
setiap tipe account ini diterangkan dengan himpunan atribut yang termasuk dalam
atribut-atribut dari entity set account ditambah dengan atribut tambahan. Contoh entity
saving-account diterangkan dengan atribut interest-rate, dan checking-account
diterangkan dengan overdraft-amount.
Proses spesialisasi mengijinkan pembedaan account berdasarkan tipe account. Account
juga dapat dibedakan dengan cara lain, misalkan berdasarkan tipe kepemilikkan menjadi
commercial-account dan personal-account. Ketika dalam suatu entity dibentuk lebih dari
satu proses spesialisasi, maka suatu entity menjadi milik dua spesialisasi tersebut. Misal
suatu account bisa merupakan suatu personal account dan suatu checking account.
Dalam diagram E-R, spesialisasi dilambangkan dengan komponen segitiga bertuliskan
ISA. ISA juga melambangkan hubungan antara superclass-subclass. Entity yang dengan
kedudukkan lebih rendah/tinggi memiliki lambing sama.
Generalisasi
Disamping proses desain top-down (dari inisial entity ke level lebih rendah (subgrup)),
desain juga dapat dilakukan dengan proses bottom-up, yaitu banyak entiti disintesiskan
menjadi entity yang lebih tinggi berdasarkan kesamaan feature-nya.
Desainer basis data mungkin mengidentifikasi terlebih dulu entity
checking-account dengan atribut account-number, balance dan overdraft-
amount. Ditemukan juga entity set saving-account dengan atribut
account-number, balance dan interest-rate.
Terdapat kesamaan antara entity set checking-account dengan entity set
saving-account, yaitu keduanya memiliki beberapa atribut yang sama.
Persamaan ini dapat diekspresikan dengan generalisasi.
account-number balance
account
savings-account checking-account
ISA
MODEL RELATIONAL
3.1 PENDAHULUAN
Model relasi pertama kali dikenalkan oleh Codd, pada tahun 1971. Sejak itu model
relasi memainkan peranan yang sangat penting dalam berbagai perancangan basis data.
Ada tiga alas an mengapa model relasi mempunyai peranan penting dalam perancangan
basis data yaitu :
• mempunyai piranti komunikasi yang baik antara user & designer
artinya relasi merepresentasikan struktur data yang dapat dimengerti oleh user
maupun designer.
• model relasional mendefinisikan salah satu kriteria perancangan basis data yang
penting yaitu relasi bentuk normal.
• Struktur data yang direpresentasikan oleh relasi dapat segera dikonversikan &
diimplementasikan ke RDBMS.
WORK
Person_Id Proj_No Total_Time
P1 PROJ1 20
P3 PROJ1 16
P2 PROJ2 35
P2 PROJ3 42
P3 PROJ2 17
P3 PROJ1 83
P4 PROJ3 41
PERSON
Person_Id Date_Of_birth Name
P1 JAN 62 JOE
P4 FEB 65 MARY
P3 AUG 33 ANDREW
P2 JUL 48 JOE
3.3 TERMINOLOGI
- Relasi = Tabel
- Atribut relasi = Kolom tabel
- Tuple = Baris
Domain
Part_Id Deskripsi Warna Berat
Dimensi (tipe : alpha) (tipe : string) (tipe : numeric) (tipe : numeric)
PARTS
Part_No Part_Name Warna Berat Max_Dim
P1 Gergaji Hitam 12 25
P2 Palu Coklat 20 19
P3 Bor Abu-abu 88 45
3.5.2 Duplikasi
Duplikasi berbeda dengan redundansi. Kadang-kadang duplikasi diperlukan
dalam basis data sementara redundansi harus dihindari.
Contoh duplikasi adalah relasi USE dibawah ini. Relasi USE memiliki lebih dari satu
baris yang mempunyai nilai yang sama untuk atribut Project_Id, yaitu Proj1. Demikian
juga untuk Proj2. Nilai-nilai ini harus disimpan lebih dari sekali karena menggambarkan
fakta yang berbeda.
USE
Proj_Id Part_No Qty_Used
Proj1 P1 17
Proj2 P2 85
Proj1 P3 73
Proj2 P2 80
ASSIGNMENTS
Person_Id Dept Date_Of_Birth Date_Started Date_Finished
P1 Sales 1 June 53 2 June 80 5 Aug 83
P2 Sales 3 July 51 5 Aug 81 9 Dec 82
P3 Accounting 8 Aug 60 3 Feb 79 17 Jul 82
P1 Production 1 June 53 11 Mar 82 3 Feb 85
Sedangkan dalam relasi Assigment, satu nilai atribut Date_Of_Birth, yaitu 1 June 1953,
dapat juga muncul lebih dari sekali. Berbeda dengan Proj1 & Proj2 di atas, 1 June 53
menunjukkan fakta yang sama yaitu menunjukkan orang yang sama. Hal ini
menyebabkan terjadinya redundansi dalam relasi Assignment.
PROJECT
Proj_No Project_Budget
Proj1 20
Proj2 17
Proj3 84
Proj4 90
WORK
Person_Id Proj_No Total_Time_Spent_By_
Person_On_Project
P1 Proj1 20
P3 Proj1 16
P2 Proj2 35
P2 Proj3 42
P3 Proj2 17
P3 Proj1 83
P4 Proj3 41
menemukan tuple dengan nilai amount lebih dari 1200, σbrach-name = “Perryridge” and
b. Operasi Project
Seandainya diinginkan semua daftar loan-number dan amount, tanpa branch-
name. Dengan operasi project dapat dihasilkan relasi ini. Operasi project disimbolkan
π). Nama-nama atribut yang diinginkan tampil ditulias sebagai
dengan symbol phi (π
subcrip π.
d. Operasi Union
Operasi union dalam aljabar relasional sama halnya dengan operasi union pada
aritmatika. Misal user menginginkan nama-nama semua nasabah bank yang memiliki
sebuah account atau sebuah loan atau keduanya. Perhatikan bahwa relasi customer
tidak mengandung informasi tersebut. Untuk menjawab query ini diperlukan
informasi dari relasi Depositor dan relasi Borrower. Dengan operasi union informasi
yang diinginkan dapat diperoleh dengan menulis query sebagai berikut :
πcustomer-name(borrower)∪ πcustomer-name(depositor)
DEPOSITOR
Customer-name Account-number
Johnson A-101
Smith A-215
Hayes A-102
Turner A-305
Johnson A-201
Jones A-217
Lindsay A-222
BORROWER
Customer-name Loan-number
Jones L-17
Smith L-23
Hayes L-15
Jackson L-14
Curry L-93
Smith L-11
Williams L-17
Adams L-16
Operasi union r∪s bernilai benar jika kedua relasi memenuhi dua kondisi berikut :
1. Relasi r & s harus mempunyai jumlah atribut yang sama
2. Domain dati atribut ke-I di relasi r dan domain dari atribut ke-I dari s harus sama
untuk semua i.
g. Operasi Rename
ρ). Sintaks penulisan rename : ρx(E).
Dilambangkan dengan symbol rho (ρ
Operasi rename mengeluarkan hasil ekspresi E dengan nama x.
Contoh :
πaccount.balance(σaccount.balance<d.balance (account x ρd(account)))
Contoh Query :
Misal diinginkan informasi branch-name, loan-number dan amount untuk pinjaman di
atas $1200. Maka query-nya adalah : {t||t∈
∈loan ∧t[amount]>1200}}. Andai hanya
diinginkan atribut loan-number dari relasi loan. Untuk mengekspresikan permintaan ini,
diperlukan notasi “terdapatlah (there exists)” dengan notasi :
∃ t ∈ r (Q(t))
dibaca “ terdapatlah sebuah tuple t dalam relasi sedemikian sehingga bahwa
predikat Q(t) adalah benar”.
Dengan menggunakan notasi ini maka dapat ditulis query “Tampilkan loan number untuk
setiap pinjaman yang lebih dari $1200” sebagai
{t||∃ s ∈loan (t[loan-number]=s[loan-number]∧
∧s[amount]>1200}}
2. Penyisipan (Insertion)
Untuk menyisipkan data ke dalam suatu relasi, dapat dilakukan dengan dua cara
yaitu menentukan tuple-tuple yang akan disisipkan. Dalam relasional aljabar,
penyisipan diekspresikan dengan : r ! r ∪ E, dimana r adalah relasi dan E adalah
sebuah ekspresi relasional aljabar.
Contoh : seandainya akan disisipkan fakta bahwa Smith mempunyai $1200 dalam
rekening A-973 pada cabang Perryridge. Query-nya ditulis :
account ! account ∪ {(“Perryridge”, A-973,1200)}
depositor ! depositor ∪ {(“Smith”, A-973)}
Contoh lain :
r1 ! (σbranch-name = “Perryridge” (borrower x loan))
4. View
View didefinisikan dengan statement create view. Untuk mendefinisikan sebuah view
maka view tersebut harus diberi nama dan query untuk menghasilkan view tersebut.
Format statement create view sebagai berikut :
Create view v as <ekspresi query>
Dimana ekspresi query adalah sebuah ekspresi query relation-algebra yang sah dan
nama view direpresentasikan dengan v.
Contoh : untuk membuat view yang terdiri dari semua cabang bank dan
pelanggannya
Create view all-customer as
π branch-name, customer-name (depositor x account)
∪ π branch-name, customer-name (borrower x loan)
BAB IV
PERANCANGAN BASIS DATA RELASIONAL
Person-ID
Time_spent_By_
person_on_project
Project
contoh :
- Person_ID, Project, Project_budget ➔Time_spent_By_Person_on_Project
➔ Bukan suatu FD penuh
- Person_ID, Project ➔ Time_spent_by_Person_on_Project
➔ suatu FD penuh
karena :
Person_ID ➔ Time_spent_By_Person_on_Project maupun
Project ➔ Time_spent_By_Person_on_Project,
Tidak memenuhi syarat sebagai FD penuh.
Contoh diagram FD yang lebih kompleks :
Manager_Name
Warehouse_address warehouse_name
QTY_in_store_on_date inventory_date
QTY_delivered
Sifat-sifat FD :
1. Redundan FD
Sebuah FD dalam himpunan FD dikatakan redundan jika FD tersebut dapat
diturunkan dari FD lainnya dalam himpunan FD.
Cara untuk mendeteksi sebuah FD redundan dengan langkah-langkah sebagai
berikut :
1. tentukan S sebagai himpunan dari FD.
2. hapus satu FD misal f dan susun himpunan FD S’ = S – f
3. test apakah f dapat diturunkan dari DS-FD dalam S’ dengan
menggunakan himpunan rule
4. jika f dapat diturunkan, berarti f redundan, ➔ S = S’. Jika tidak,
masukkan f ke dalam himpunan S’ sedemikian sehingga S = S’ + f.
5. ulangi langkah ke-2 sampai 4 semua FD dalam S.
himpunan rule-relu digunakan untuk menghindari looping pada langkah ke-3.
Himpunan rule-rule (set of rule) (Amstrong,1974 & Beeri at.al 1978) terdiri dari :
- jika Y ⊆ X, maka X → Y (refleksi)
- jika Z ⊆ W, dan X → Y, maka XW → YZ ( augmentasi)
- jika X → Y dan Y → Z, maka X → Z (transitive)
contoh :
Himpunan FD : { Z → A, B → X, AX →Y, ZB → Y}
Akan ditunjukkan bahwa ZB → Y adalah redundan.
1. Z →A dengan augmentasi menghasilkan ZB →AB
2. B → X dan AX →Y dengan pseudotransitive menghasilkan AB → Y
3. ZB → AB dengan transitive menghasilkan ZB → Y
Contoh :
Himpunan FD : { Z → A, B → X, AX →Y, ZB → Y}
1. T = ZB
2. T = ZB + A = ZBA, karena Z → A berada dalam sisa himpunan FD dan Z⊆T.
T = ZBA + X = ZBAX, karena B → X berada dalam sisa himpunan FD dan
B⊆T.
T = ZBAX + Y = ZBAXY karena AX → Y berada dalam sisa himpuanan FD
dan AX ⊆ T.
4.1.4 Closure
Sebuah closure mendefinisikan semua fungsional dependency yang dapat diturunkan
dari satu himpunan FD yang diberikan.
Notasi F+ digunakan untuk menunjukkan closure dari himpuanan dependensi.
Contoh :
F = { X → Y, Y → Z, YZ → W, WX → Y}
Dari himpunan FD di atas diturunkan FD yang lain, seperti :
X → Z dengan transitive dari X → Y dan Y → Z
Atau
XZ → W dengan pseudotransitive dari X → W dan YZ → W
T=A
While (changes to T) do
For each functional dependency
X → Y in F do
Begin
If X is in T then
Add Y to T
End
Contoh :
1. T = x
2. kemudian tambahkan Y ke T karena X → Y berada dalam himpunan FD.
3. tambahkan Z ke T, karena Y →Z berada dalam himpunan FD dan sekarang T =
XYZ.
4. tambahkan W ke T, karena YZ → W
jadi F+ untuk X :
X → X, X → Y, X → Z, X → W,
X →YZ, X → YW, X → ZW,
X → YWZ
Untuk melihat F+ dan Y, algoritma dapat diulang dengan memulai T =Y demikian
seterusnya.
Person Residence
City Date_Move_In
Jack New York 030371
Boston 070780
Washington 080889
Contoh :
Relasi : PROJECT
Project Project-Budget Department Department Address
P1 32 Construct 20 Main
P2 40 Construct 20 Main
P3 27 Construct 20 Main
P4 17 Build 8 Fifth
FD pada relasi PROJECT :
Project_Budget
Project Department
Department_Address
Relasi project masih belum berada dalam bentuk normal ketiga karena ada
atribut bukan kunci (Department _Address) bergantung pada atribut
Department.
Relasi PROJECT dapat menjadi bentuk normal ke-3 dengan memecah relasi
Project dalam dua relasi yaitu :
PROJECT
Projects Project_Budget Department
P1 32 Construct
P2 40 Construct
P3 27 Construct
P4 17 Build
DEPARTMENT
Department Dep. Address
Construct 20 Main
Build 8 Fifth
Sistem basis data komersial menghendaki adanya sebuah bahasa query yang lebih
user-friendly. Oleh karena itu dikenal SQL sebagai bahasa query yang marketable. SQL
menggunakan kombinasi aljabar relasional & kalkulus relasional. Meskipun SQL adalah
bahasa query, namun SQL mempunyai banyak kemampuan lain disamping melakukan
query terhadap basis data. SQL mempunyai kemampuan untuk mendefinisikan struktur
data, modifikasi data dalam basis data dan menentukan konstrain sekuriti.
Select A1,A2,…..An
From r1,r2,….rn
Where P
Hasil dari query tersebut adalah sebuah relasi yang berisi sebuah atribut tunggal dengan
nama branch-name.
Bahasa query formal bersifat matematis dimana relasi adalah sebuah himpunan sehingga
tuple-tuple yang telah muncul tidak akan muncul lagi (tidak akan terjadi duplikasi tuple).
Tapi dalam prakteknya untuk menghilangkan duplikasi tuple sangat memakan waktu.
Oleh karenanya SQL memungkinkan terjadinya duplikasi tersebut. Dari contoh di atas,
maka query-nya akan mencatat setiap branch-name setiap kali branch-name tersebut
ditemukan dalam relasi loan.
Untuk kasus di atas jika diinginkan untuk menghilangkan duplikasi maka dapat
disisipkan distinct setelah select. Query di atas ditulis ulang sebagai berikut :
Akan menghasilkan sebuah relasi yang sama dengan relasi loan, kecuali bahwa atribut
amount dikalikan dengan 100. SQL-92 juga menyediakan tipe data spesial seperti tipe
date, dan memungkinkan beberapa fungsi aritmatika untuk beroperasi pada tipe-tipe ini.
Select loan-number
From loan
Where branch-name = “Perryridge” and amount >1200
SQL menggunakan konektivitas lojik and, or dan not dalam klausa where. SQL juga
memasukkan perintah between untuk menentukan apakah suatu nilai lebih kecil daripada
atau sama dengan suatu nilai lain dan lebih besar daripada atau sama dengan suatu nilai
lain.
Contoh : jika diinginkan menemukan loan-number yang jumlah pinjamannya antara
$90000 dan $100000, ditulis sebagai berikut :
Select loan-number
From loan
Where amount between 90000 and 100000
Operasi union secara otomatis akan menghilangkan duplikasi, tidak seperti klausa select.
Sehingga pada query di atas, jika Jones (seorang customer) mempunyai beberapa
rekening atau pinjaman (atau keduannya) pada bank, maka Jones hanya akan muncul
sekali. Jika duplikasi diinginkan ada maka harus ditulis union all.
Operasi except secara otomatis menghilangkan duplikasi. Jika diinginkan ada maka
ditulis : except all.
Fungsi-fungsi di atas telah tersedia. Input untuk avg dan sum haruslah bertipe numerik.
Untuk operator lainnya dapat non-numerik.
Contoh : untuk mendapatkan rata-rata saldo rekening pada cabang Perryridge
Select avg(balance)
From account
where branch-name = “Perryridge”
Jika fungsi agregasi iningn diterapkan pada kelompok himpunan tuple, maka digunakan
klausa group by. Nama atribut/kel. Atribut dalam klausa group by digunakan untuk
membentuk grup/kelompok. Artinya tuple-tuple yang mempunyai nilai yang sama pada
semua atribut dalam klausa group-by dimasukkan dalam satu grup/kelompok.
Contoh :
Jika suatu fungsi diterapkan pada grup/kelompok yang dibentuk oleh group by maka
digunakan klausa having setelah group by.
Contoh : ingin ditampilkan nama cabang yang mempunyai rata-rata saldo lebih dari
1200.
Query-nya :
Select branch-name, avg(balance)
From account
Group by branch-name having avg (balance)>1200
Fungsi agregrasi count sering digunakan untuk menghitung jumlah tuple dalam suatu
relasi. Notasi fungsi ini dalam SQL adalah count (*). Jadi untuk menentukan jumlah
tuple dalam relasi customer, ditulis :
Kedua : mencari semua customer yang merupakan peminjam dan yang muncul
dalam daftar pemegang rekening. Maka dilakukan dengan
“menyarangkan” subquery di atas dalam sebuah select luar (outer select),
menjadi :
4.6.3 Update
Dalam situasi tertentu, diinginkan untuk mengganti nilai dalam sebuah tuple tanpa
harus mengganti semua nilai dalam tuple tersebut. Untuk tujuan ini dapat digunakan
statement update.
Contoh :
- untuk menaikkan saldo para nasabah sebesar 5% ditulis query sebagai berikut :
Update account set balance = balance * 1.05
- untuk menaikkan saldo nasabah sebesar 6% bagi nasabah yang saldonya lebih
dari $10000, ditulis query sebagai berikut :
Update account set balance = balance *1.06
Where balance >10000
Dimana r adalah nama relasi, setiap AI adalah nama atribut dalam skema relasi, dan DI
adalah tipe domain dari nilai dalam domain atribut Ai. Integrity constraint yang
diperbolehkan antara lain : primary key (Aj1, Aj2,….Ajn) dan check (P)
Contoh :
Create table customer
(customer-name char(20) not null,
customer-street char(30),
customer-city char(30),
primary key (customer-name))
A-201 900
pada contoh basis data di atas terlihat bahwa Hayes memiliki account A-102, Johnson
memiliki account A-101 dan A-201 sedangkan Turner memiliki account A-305.
customer_street
account_number
customer_name customer_city balance
Gambar 5.2 Diagram E-R dan Diagram Struktur Data yang bersesuaian
Pada diagram E-R-nya terlihat customer bisa memiliki beberapa account, dan satu
account dapat dimiliki oleh beberapa customer. Sedangkan kesesuaiannya dengan
diagram struktur data terlihat bahwa tipe record customer sesuai dengan entity set
customer yang berisi : customer_name, customer_street dan customer_city. Demikian
pula untuk tipe record account bersesuaian dengan entity set account yang terdiri dari
account_number & balance. Sedangkan relasi depositor diganti dengan link depositor.
Jika relasi depositor merupakan relasi one-to-one maka link depositor akan memiliki dua
tanda panah, satu menunjuk ke tipe record account dan satu lagi menunjuk ke tipe record
customer.
branch_city
branch_name assets
branch
customer_street
account_number
customer_name customer_city balance
Rlink
Gambar 5.3 Diagram E-R dan Diagram Struktur Data yang bersesuaian
Sedangkan untuk contoh pada gambar 5.3, E-R terdiri dari 3 entity sets : account,
customer & branch, yang terhubung melalui relasi CAB dengan tanpa atribut. Diagram
ini menerangkan bahwa suatu customer boleh memiliki sejumlah account, dimana setiap
account ditempatkan pada suatu cabang bank tertentu dan suatu account bisa dimiliki
oleh sejumlah customer yang berbeda.
Karena satu link menghubungkan tepat dua tipe record yang berbeda, maka kita
harus menghubungkan tiga tipe record tersebut melalui satu record baru yang
menghubungkan ketiganya secara langsung.
Untuk mentransformasikan diagram E-R ke diagram Struktur Data Jaringan, kita
harus membentuk satu record baru dengan type Rlink yang bisa tidak memiliki field atau
hanya memiliki satu field dengan identifier yang unik. Identifier disediakan oleh sistem
dan tidak digunakan secara langsung oleh program aplikasi. Kita juga harus membentuk
tiga link many-to-one : CustRlnk, AcctRlnk dan BrncRlnk seperti terlihat pada gambar
5.3 (b). Jika relasi CAB memiliki atribut, maka akan menjadi field di record Rlink.
5.2 MODEL HIRARKI
Memegang prinsip yang sama dengan model jaringan, yaitu merepresentasikan
data dalam kumpulan record dengan link sebagai relasinya. Perbedaan terletak pada
penggambaran record-nya, yaitu kumpulan record akan digambarkan sebagai kumpulan
tree.
Hayes Main Harrison Johnson Alma Palo Alto Turner Putnam Stamford
Pada contoh di atas terlihat customer Hayes memiliki account A-305, customer Johnson
memiliki account A-101 dan A-201 sedangkan customer Turner memiliki account A-
305.
Semua kumpulan record customer dan account diorganisasikan dalam bentuk
root dari suatu tree, dimana root dari suatu tree merupakan node dummy. Basis data
hierarki adalah kumpulan root tree yang kemudian membantuk forest.
customer_street
account_number
customer_name customer_city balance
Gambar 5.5 Diagram E-R dan Diagram Struktur Tree yang bersesuaian
customer_street
account_number
customer_name customer_city balance
Gambar 5.6 Diagram E-R dan Diagram Struktur Tree yang bersesuaian
Suatu instance dari suatu basis data bersesuaian dengan skema berisi sejumlah record
customer yang terhubung ke sejumlah record account.