MAGISTER TEKNIK INFORMATIKA M O D E L R E L A S I O N A...

37
1 MAGISTER TEKNIK INFORMATIKA DataBaseManagementSystem Struktur Model Relasional Aljabar Relasional Perluasan Operasi Aljabar Relasional Tupel Kalkulus Relasional Domain Kalkulus Relasional Modifikasi Database Views M O D E L R E L A S I O N A L

Transcript of MAGISTER TEKNIK INFORMATIKA M O D E L R E L A S I O N A...

1

MAGISTER TEKNIK INFORMATIKA

DataBaseManagementSystem

Struktur Model Relasional Aljabar Relasional Perluasan Operasi Aljabar Relasional Tupel Kalkulus Relasional Domain Kalkulus Relasional Modifikasi Database Views

M O D E L R E L A S I O N A 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

User Customer

3

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

O V E R V I E W

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)

Bagian 1 : Struktur Model Relasional

5

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

Bagian 1 : Struktur Model Relasional

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

Bagian 1 : Struktur Model Relasional

7

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 Kard

inaii

tas=

3

Tupel

Sinonim

Terminologi Model Relasional

idstudio studioName

STD001 Fox

STD002 Disney

STD003 Paramount

StudioFilm Primary

Key

Primary Key

Foreign Key

Bagian 1 : Struktur Model Relasional

8

Terminologi Model Relasional

Atribut Nama

Domain

Deskripsi

Domain

Definisi

Domain

idfilm 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

Bagian 1 : Struktur Model Relasional

9

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)

Bagian 1 : Struktur Model Relasional

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)

Bagian 1 : Struktur Model Relasional

11

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

Bagian 1 : Struktur Model Relasional

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

iDX

1

Bagian 1 : Struktur Model Relasional

13

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.

DiX

DxDxDxDxDxDJudulFilm

i

6

1

654321

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.

Bagian 1 : Struktur Model Relasional

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

Bagian 1 : Struktur Model Relasional

15

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

Bagian 1 : Struktur Model Relasional

16

Overview

Before ……

Model relasional memberikan kemudahan dalam mendefinisikan struktur model data (DDL), khususnya menggunakan skema relasional dengan menyebutkan atribut dan domainnya.

1st 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

17

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

Bagian 2 : Aljabar Relasional

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.

19

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.

Bagian 2 : Aljabar Relasional

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

Bagian 2 : Aljabar Relasional

21

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 : >, <, , , =,

Bagian 2 : Aljabar Relasional

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

• age18 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, yang namenya = Smith

Tentukan tupel pada Students, yang agenya 18 dan gpa .3.0

23

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 19

Bagian 2 : Aljabar Relasional

Tampilkan kolom name pada relasi Students

Tampilkan kolom name dan age pada relasi Students

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

• age18 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(age18 gpa>3.0(Students))

Students sid name

53666 Jones

53668 Smith

Bagian 2 : Aljabar Relasional

25

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 Schole

Students 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

Bagian 2 : Aljabar Relasional

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

Bagian 2 : Aljabar Relasional

27

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

Bagian 2 : Aljabar Relasional

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

Bagian 2 : Aljabar Relasional

29

• 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

Bagian 2 : Aljabar Relasional

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

Bagian 2 : Aljabar Relasional

31

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

Apakah bisa Pinjam Tabungan ?

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

33

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

Set-Intersection () Operation

Set intersection operation : menemukan tupel yang berada pada kedua relasi tersebut

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

Consultant1 Consultant2

cid cname

C001 James

C004 Muller

Siapa asisten konsultan yang merangkap sebagai konsultan utama dan asisten konsultan ?

cname(Consultan1 Consultan2)

cname

James

Muller

Bagian 2 : Aljabar Relasional

35

Set-Intersection () 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 dan mempunyai pinjaman.

36

Sampai Disini Dulu

end of this session

37

Latihan

Tabel-tabel dibawah ini menggambarkan model relasional pada booking penerbangan

(a) σ class='Business' (Seat)

(b) nationality (Booking)

(c) σ nationality = 'French' (Booking) X σ class = 'Business' (Seat)

(d) name(σ class = 'Business' (Booking X Seat))

(e) Airport ∪ Seat

Soal 2 Tuliskan aljabar relational untuk query-query berikut :

a. Tampilkan seluruh informasi (airportid, name, city) mengenai airport yang ada di London

b. Tampilkan ticketNo, name, nationality, flightNo, seatNo mengenai booking oleh penumpang yang kewarganegaraannya

British dan French

c. Tampilkan flightNo,depAirport,arrAirport dari semua penerbangan British Airways

d. Menampilkan seluruh infomrasi dari name, flightNo, flightCompany

e. Menampilkan flightNo,flightCompany, depAirport,arrAirport untuk seluruh penerbangan pada airport di london

f. Menampilkan ticketNo, name untuk penumpang yang keberangkatannya dari kota London

g. Menampilkan flightNo, flightCompany untuk seluruh penerbangan dari kota London ke Paris

Soal 1 Tuliskan output untuk aljabar relational berikut :