MAGISTER
TEKNIK INFORMATIKA
D
ataB
aseM
anagementS
ystem
Struktur Model Relasional
Aljabar Relasional
Perluasan Operasi Aljabar Relasional
Tupel Kalkulus Relasional
Domain Kalkulus Relasional
Modifikasi Database
M O D E L
2
What is
Relational Model
Biasa disebut dengan “
Relational Data Model
”
Adalah suatu model data dimana data disimpan dalam
bentuk relasi
Merupakan “
Record-based Logical Models
”
UserID FirstName LastName
100
Mary
Abermany
101
Jerry
Caldera
104
Alea
Copley
107
Murugan
Jacksoni
CustID
Phone
LastName
100
335-6421,
454-9744
Abermany
101
215-7789
Caldera
107
299-9090
Jacksoni
Relational Model
Non-Relational Model
O V E R V I E W
Why Study
Relational Model
Most widely used model, DB implementations
are based on it
Vendors : IBM, Microsoft, Oracle, Sybase, Informix, etc.
Legacy systems
(Warisan sistem sebelumnya)
Extremely simple: only one concept
(the relation/table)
A good match for how we think about our data
Has an elegant mathematical design theory
Goals :
Mendapatkan struktur data, manipulasi data dan keutuhan data
yang baik
4
Definisi : Relasi adalah tabel data 2 dimensi dengan karakteristik
tertentu. Tabel 2 dimensi –layaknya suatu matriks- mempunyai
Baris (rows/records), dan Kolom (columns/attribute/field)
Karakteristik Relasi :
Mempunyai nama yang unik.
Setiap nilai harus atomik
(not multivalued, not composite)
Setiap baris harus unik
(can’t have two rows with exactly the same values for all their fields)
Atribut pada tabel (columns) harus mempunyai nama yang
unik
Setiap nilai isian pada kolom harus berdomain sama
Order (derajat) kolom atau baris tidak penting
NOTE :
1. Istilah Relasi pada model relasional tidak sama dengan relasi E-R model
2. Digunakan hanya untuk struktur lojik DB dan bukan untuk struktur fisik
Relasi (Relation)
UserID FirstName LastName
100
Mary
Abermany
101
Jerry
Caldera
104
Alea
Copley
107
Murugan
Jacksoni
CustID
Phone
LastName
100
335-6421,
454-9744
Abermany
101
215-7789
Caldera
104
610-9850
Copley
107
299-9090
Jacksoni
CustID
Phone
LastName
100
335-6421
Abermany
101
215-7789
Caldera
104
610-9850
Copley
100
335-6421
Abermany
107
299-9090
Jacksoni
Apakah ini Relasi ?
Ya, memenuhi syarat Relasi
Bukan Relasi, ada sel bernilai ganda
Bukan Relasi, ada 2 baris identik
6
Terminologi
Model Relasional
Relasi
: Tabel yang memiliki baris dan kolom
Atribut
: Nama kolom pada relasi
Domain
: Kumpulan nilai yang mungkin (legal)
untuk satu atribut atau lebih
Tupel
: Baris suatu relasi dan
memuat hanya satu nilai per atribut
Degree
: Jumlah atribut pada relasi
(unary, binary, ternary, n-ary)
Kardinalitas : Jumlah tupel pada relasi
NOTE :
Domain Atribut
= Atribut + Nama Domain + Deskripsi + Definisi Domain
idfilm title year length filmType idstudio F001 Star Wars 1977 124 color STD001 F002 Mighty Ducks 1991 104 color STD003 F003 Wayne’s World 1992 95 color STD001
JudulFilm
Atribut
Relasi
Degree=6
K
ardinaiitas
=3
Tupel
Sinonim
Terminologi
Model Relasional
idstudio studioName STD001 Fox STD002 Disney STD003 ParamountStudioFilm
Primary Key Primary Key Foreign Key8
Terminologi
Model Relasional
Atribut Nama Domain Deskripsi Domain Definisi Domainidfilm IdFilms Identitas film Character, size 4, range : F001 – F999
title Titles Judul film Character, size 40
year Years Tahun pembuatan film Date, format : yyyy
length Lengths Panjang film dalam satuan menit Integer, 3 digit
filmType FilmTypes Jenis Fim Character, size 20
idstudio IdStudios Kode Studio pembuat film Character, size 6, range : STD001 – STD999
Contoh : Domain Atribut Relasi JudulFilm
Keys : Field khusus yang digunakan untuk 2 tujuan :
Primary keys : are unique identifiers of the relation.
This is how we can guarantee that all rows are unique.
Foreign keys : identifiers that enable a dependent
relation (on the many side of a relationship) to refer to
its parent relation (on the one side of the relationship)
Keys can be simple (a single field) or composite
(more than one field)
Keys usually are used as indexes to speed up the
response to user queries
Key Field
(Field Kunci)
10
Primary Key
Foreign Key
(implements 1:N relationship
between customer and order)
Combined, these are a composite primary key
(uniquely identifies the order line)…individually
they are foreign keys (implement M:N relationship
between order and product)
Contoh
Key Field
(Field Kunci)
Definisi Matematis
Relasi
Produk Kartesius (Cartesian Product)
Misal diketahui himpunan D1 dan D2, cartesian product D1 x D2
adalah himpunan semua pasangan (d1, d2) dimana d1 adalah anggota D1
dan d2 adalah anggota D2.
D1 x D2 = {(d1, d2)| d1
D1, d2
D2}
Contoh : D1 = {1,2} dan D2 = {3,4,5,6}
maka D1 x D2 = {(1,3), (1,4), (1,5), (1,6), (2,3), (2,4), (2,5), (2,6)}
Relasi
Relasi adalah sembarang subset (himpunan bagian) dari D1 x D2.
Contoh : R = {(1,2), (2,4)} adalah relasi. Suatu relasi dapat ditulis
menggunakan sifat-sifat hubungan tertentu. Misalnya untuk R tersebut,
R = {(x, y)| x
D1, y
D2 dan y = 2x} dan R
D1 x D2
12
Definisi Matematis
Relasi
Produk Kartesius (Cartesian Product)
Misal diketahui himpunan D1, D2, D3, …, Dn maka
cartesian product D1 x D2 x D3 x … Dn adalah himpunan semua pasangan
(d1, d2, d3, …, dn) dimana d1 anggota D1, d2 adalah anggota D2,
d3 anggota D3, …, dn anggota Dn.
D1 x D2 x D3 x … Dn = {(d1, d2, d3, …, dn) | d1
D1, d2
D2,
d3
D3, …, dn
Dn}
=
Relasi
Relasi adalah sembarang himpunan n-tupel yang merupakan subset dari
cartesian product dari n himpunan.
i n i
X
1D
idfilm title year length filmType idstudio F001 Star Wars 1977 124 color STD001 F002 Mighty Ducks 1991 104 color STD003 F003 Wayne’s World 1992 95 color STD001
JudulFilm
Misal D1 = {domain idfilm}, D2 = {domain title}, D3 = {domain year}, D4 = {domain length} D5 = {domain filmType}, D6 = {domain idstudio} Maka :Setiap baris pada JudulFilm memuat 5-tupel yaitu (d1, d2, d3, d4, d5) Dimana d1 D1, d2 D2, d3 D3, d4 D4, d5 D5 dan d6 D6. Secara umum :
JudulFilm memuat subset dari himpunan yang beranggotakan semua baris yang mungkin.
Di
X
D
x
D
x
D
x
D
x
D
x
D
JudulFilm
i 6 16
5
4
3
2
1
Definisi Matematis
Relasi
Untuk menunjukkan keanggotaan tupel :
Jika tupel t berada pada relasi R, ditulis t R, Maka t1[idfilm] diartikan sebagai atribut idfilm pada tupel 1 dan bernilai t1[idfilm]=“F001”. Dengan cara sama, maka :
t1[year]=1977, t2[length]=104,
t3[idstudio]=“STD001”, t3[filmType]=“color”, Dan seterusnya.
14
Skema Database
Relasional
Database Relasional
Database yang terdiri dari kumpulan relasi.
Dalam praktek, database relasional berisi relasi
dengan duplikasi baris.
Relasi dapat dinyatakan menjadi 2 bentuk :
Instance
Dalam bentuk tabel, dengan baris dan kolom beserta
item datanya.
Schema
Dalam bentuk skema lojik berisikan daftar atribut
beserta domain yang sesuai.
We will discuss relation schema for study relational model
Skema Database
Contoh : Relation Instance
Contoh : Relation Schema
Students
Students(sid, name, login, age, gpa) atau
Student(sid:string, name:string, login:string, age:integer, gpa:real)
Students=(sid, name, login, age, gpa) atau dengan domainnya
16
Overview
Before ……
Model relasional memberikan kemudahan dalam
mendefinisikan struktur model data (DDL), khususnya
menggunakan skema relasional dengan menyebutkan
atribut dan domainnya.
1
st
goals for relational database
Now ……
How the relational model defines the means for Data
Manipulation Language (DML).
Need : Query Languages
Most strategy : relational algebra and relational calculus.
Bagian 2 : Aljabar Relasional
MS Access
Examples
Query Languages
Query languages adalah bahasa yang digunakan oleh user
untuk memperoleh informasi dari database (manipulasi data).
Prosedural, user memberikan instruksi ke sistem untuk
melakukan operasi pada database. Selain harus tahu data
apa yang dibutuhkan, user juga harus tahu bagaimana data
tersebut diperolehnya.
Contoh : komersial
dbase, foxbase, C
++, dll
model relational
algebra relational
Non Prosedural, user secara khusus memberikan data apa
yang dibutuhkan tanpa harus tahu bagaimana cara
mendapatkannya.
Contoh : komersial
SQL, QBE, QUEL dll
model relational
tupel calculus relational
18
Query Languages
Bagian 2 : Aljabar Relasional
Bagian Bahasa Query :
Data Definition Language (DDL)
Bahasa yg digunakan untuk menggambarkan basis data secara
keseluruhan, Operasi yang dapat dijalankan adalah membuat tabel
baru, membuat indeks, mengubah tabel, menentukan struktur. Hasil
kompilasi dari DDL ini adalah Kamus Data (Data Dictionary)
Data Manipulation Language (DML)
Bahasa untuk melakukan manipulasi dan pengambilan data pada
suatu basis data, seperti : penyisipan, penghapusan dan update.
Aljabar Relasional
Merupakan Procedural Query language.
Terdiri dari himpunan operasi menggunakan operator yang diterapkan
pada relasi.
Satu atau lebih relasi (sebagai input) dapat dimanipulasi
menggunakan operator-operator untuk mendapatkan hasil/informasi
yang diinginkan.
Agak sulit diterapkan, salah satu alasannya adalah karena prosedural.
Dimana kita harus tahu tidak hanya “Data Apa” yang diinginkan,
tetapi juga harus tahu “Bagaimana Mendapatkan”.
Tidak digunakan pada pemrosesan database komersial dan bahkan
tidak ada produk DBMS komersial yang menyediakan fasilitas aljabar
relational.
Walaupun begitu, aljabar relasional sangat membantu memahami
bagaimana manipulasi database relasional. Selain itu, aljabar
relasional juga merupakan fundamental dalam mempelajari SQL.
20
Aljabar Relasional
Operator Dasar :
Select (
), Project(
), Cartesian (Cross) Product (
),
Set-Difference (
), Union (
)
Operator Tambahan :
Intersection (
), Join, Division (
), Rename, Assignment
Sifat Operasi :
Unary, hanya melibatkan satu relasi
(Select, Project, Rename)
Binary, melibatkan 2 relasi
(Cross Product, Union, Set Difference)
Operasi dapat bersifat Komposit
Select (
) Operation
Select operation : melakukan seleksi terhadap tuple yang
memenuhi predikat (persyaratan / kriteria) yang diinginkan.
Notasi :
p(R) ; p = selection predicate ; R = relasi
Definisi :
p(R) = {t | t
R dan p(t)}
Predikat dapat bersifat logika, operator : V (atau), Λ (dan) atau
(not).
Juga dapat bersifat pembanding, operator : >, <,
,
, =,
22
Select (
) Operation
Contoh :
Students
•
name=“Smith”(Students)
sid name login age gpa 53666 Jones jones@cs 18 3.4 53668 Smith smith@eecs 18 3.2 53650 Smith smith@math 19 2.8
Students
sid name login age gpa 53668 Smith smith@eecs 18 3.2 53650 Smith smith@math 19 2.8
•
age
18
gpa>3.0(Students)
Students
sid name login age gpa 53666 Jones jones@cs 18 3.4 53668 Smith smith@eecs 18 3.2
Bagian 2 : Aljabar Relasional
Tentukan tupel pada Students,
Project (
) Operation
Project operation : memilih kolom/field/atribut tertentu dari relasi
Notasi :
K(R) ; K = 1 atau lebih kolom yang dipilih ; R = relasi
Definisi :
K(R) = {t[K] | t
R}
Jika ada tupel yang nilainya sama, diambil hanya satu tupel
Students
sid name login age gpa 53666 Jones jones@cs 18 3.4 53668 Smith smith@eecs 18 3.2 53650 Smith smith@math 19 2.8
•
name(Students)
name Jones Smith•
name,age(Students)
name age Jones 18 Smith 18 Smith 19Bagian 2 : Aljabar Relasional
Tampilkan kolom name
pada relasi Students
Tampilkan kolom name
24
Operasi Majemuk
Hasil dari suatu operasi dapat menjadi input dari operasi lain
Students
sid name login age gpa 53666 Jones jones@cs 18 3.4 53668 Smith smith@eecs 18 3.2 53650 Smith smith@math 19 2.8
•
age
18
gpa>3.0(Students)
Students
sid name login age gpa 53666 Jones jones@cs 18 3.4 53668 Smith smith@eecs 18 3.2
•
sid, name(
age
18
gpa>3.0(Students))
Students
sid name 53666 Jones 53668 Smith
Cartesian Product (
)
Operation
Cartesian Product relasi R1 dan R2, ditulis R1
R2, adalah relasi
yang beranggotakan semua tupel (r1, r2) yang mungkin,
dimana r1
R1 dan r2
R2 disebut kombinasi dari R1 dan R2
Notasi : R1
R2 = {(r1,r2)| r1
R1, r2
R2}
Jika R1 mempunyai n1 tupel dan R2 mempunyai n2 tupel maka
R1
R2 mempunyai (n1.n2) tupel
Students
sid name age gpa 53666 Jones 18 3.4 53668 Smith 18 3.2 53650 Smith 19 2.8
Consultant
cid cname C001 James C002 ScholeStudents
Consultant
sid name age gpa cid cname 53666 Jones 18 3.4 C001 James 53666 Jones 18 3.4 C002 Schole 53668 Smith 18 3.2 C001 James 53668 Smith 18 3.2 C002 Schole 53650 Smith 19 2.8 C001 James 53650 Smith 19 2.8 C002 Schole
26
Students
sid name age gpa 53666 Jones 18 3.4 53668 Smith 18 3.2
Consultant
cid cname stat Stcon C001 James C1 53666 C002 Schole C1 53668 C003 Brown C2 53666 C005 Murphy C2 53668
Siapakah nama konsultan dari siswa yang bernama “Jones” ?
Ket :
C1 = Konsultan Utama
C2 = Asisten Konsultan
Cartesian Product (
)
Operation
Students
sid name gpa 53666 Jones 3.4 53668 Smith 3.2
Consultant
cid cname stat Stcon C001 James C1 53666 C002 Schole C1 53668 C003 Brown C2 53666 C005 Murphy C2 53668
Students
Consultant
sid name gpa cid cname stat stcon 53666 Jones 3.4 C001 James C1 53666 53666 Jones 3.4 C002 Schole C1 53668 53666 Jones 3.4 C003 Brown C2 53666 53666 Jones 3.4 C005 Murphy C2 53668 53668 Smith 3.2 C001 James C1 53666 53668 Smith 3.2 C002 Schole C1 53668 53668 Smith 3.2 C003 Brown C2 53666 53668 Smith 3.2 C005 Murphy C2 53668 Untuk memperoleh informasi nama konsultan seorang siswa maka perlu dioperasikan Cartesian Product. Tapi relasi yang diperoleh masih belum menjawab pertanyaan karena belum jelas siapa yang membimbing Jones
• Step-1
Cartesian Product (
)
Operation
28
• Step-2
Dari hasil tsb., untuk mendapatkan konsultan dari siswa bernama “Jones”, digunakan operasi Select.
name=“Jones”
(Student
Consultant), hasilnya adalah :
sid name gpa cid cname stat stcon 53666 Jones 3.4 C001 James C1 53666 53666 Jones 3.4 C002 Schole C1 53668 53666 Jones 3.4 C003 Brown C2 53666 53666 Jones 3.4 C005 Murphy C2 53668
Sampai disini juga masih belum dapat dipastikan siapa konsultan Jones, sebab seorang siswa hanya dibimbing oleh sebanya-banyaknya 2 konsultan, yaitu konsultan utama dan asisten konsultan. Untuk memastikannya, digunakan operator
Select dengan kondisi sid = stcon
sid=stcon
(
name=“Jones”
(Student
Consultant)), hasilnya adalah :
sid name gpa cid cname stat stcon 53666 Jones 3.4 C001 James C1 53666 53666 Jones 3.4 C003 Brown C2 53666
Cartesian Product (
)
Operation
• Step-3
Dari hasil tsb., untuk menampilkan hanya nama konsultan dari siswa bernama “Jones” adalah :
cname(
sid=stcon(
name=“Jones”(Student
Consultant)))
cname James Brown
Cartesian Product (
)
Operation
30
Union (
) Operation
Union operation : menyatukan beberapa relasi sebagai satu relasi
/ menggabungkan hasil dari dua buah query
Baris yang bernilai sama hanya diambil satu (tidak ada duplikasi)
Notasi : R
S
Definisi : R
S = {t | t
R atau t
S }
Syarat :
Jumlah atribut R = Jumlah atribut S
Domain atribut ke-i dari R = Domain atribut ke-i dari S
Consultant1 cid cname C001 James C002 Schole C004 Muller Consultant2 cid cname C001 James C003 Brown C004 Muller C005 Murphy Consultant1 Consultant2 cid cname C001 James C002 Schole C003 Brown C004 Muller C005 Murphy
Union (
) Operation
Bagian 2 : Aljabar Relasional
Contoh :
Pinjam
Bname
Loan#
Cname
Amount
BCA Pemuda
170
Jony
1000000
BCA Majapahit
102
Hari
2000000
Tabungan
Bname
Loan#
Cname
Balance
BCA Pemuda
102
Hari
400000
BCA Pemuda
204
Agus
700000
Akan menampilkan semua nama nasabah yang mempunyai tabungan,
pinjaman atau keduanya
32
Set-Difference (
)
Operation
Set difference operation : menemukan tupel yang berada pada
satu relasi tapi tidak berada pada relasi yang lain
Notasi : R
S
Definisi : R
S = {t | t
R dan t
S }
Syarat :
Jumlah atribut R = Jumlah atribut S
Domain atribut ke-i dari R = Domain atribut ke-i dari S
Consultant1 cid cname C001 James C002 Schole C004 Muller Consultant2 cid cname C001 James C003 Brown C004 Muller C005 Murphy Consultant2 – Consultant1 cid cname C003 Brown C005 Murphy
Siapa asisten konsultan yang tidak merangkap sebagai konsultan utama ?
cname(Consultan2 – Consultan1)cname Brown Murphy
Bagian 2 : Aljabar Relasional
Set-Difference (
)
Operation
Bagian 2 : Aljabar Relasional
Contoh :
Pinjam
Bname
Loan#
Cname
Amount
BCA Pemuda
170
Jony
1000000
BCA Majapahit
102
Hari
2000000
Tabungan
Bname
Loan#
Cname
Balance
BCA Pemuda
102
Hari
400000
BCA Pemuda
204
Agus
700000
Akan menampilkan semua nama nasabah yang mempunyai
simpanan tetapi tidak mempunyai pinjaman.
34
Sampai Disini Dulu
Flat files - 1960s - 1980s
Hierarchical – 1970s - 1990s
Network
– 1970s - 1990s
Relational
– 1980s - present
Object-oriented
– 1990s - present
Object-relational – 1990s - present
Data warehousing – 1980s - present
Web-enabled – 1990s - present
Record-based
Logical Models
Most widely used model, specially for commercial
data processing applications
http://coronet.iicm.edu/wbtmaster/allcoursescontent/netlib/library.htm
40
OO vs. EER Data Modeling
Object Oriented
EER
Class
Entity type
Object
Entity instance
Association
Relationship
Inheritance of attributes
Inheritance of attributes
Inheritance of behavior
No representation of
behavior
Object-oriented modeling is frequently accomplished using the
Unified Modeling Language (UML)
Example : Class Diagram and Object Diagram
(a) Class diagram
(b) Object diagram
Closed diamond indicates
composition. The room
cannot exist without the
building
42
Example : UML class diagram for a university database
The following slides illustrate the
ODL implementation of this
44