• Tidak ada hasil yang ditemukan

MAGISTER TEKNIK INFORMATIKA

N/A
N/A
Protected

Academic year: 2021

Membagikan "MAGISTER TEKNIK INFORMATIKA"

Copied!
37
0
0

Teks penuh

(1)

MAGISTER

TEKNIK INFORMATIKA

D

ata

B

ase

M

anagement

S

ystem

Struktur Model Relasional

Aljabar Relasional

Perluasan Operasi Aljabar Relasional

Tupel Kalkulus Relasional

Domain Kalkulus Relasional

Modifikasi Database

M O D E L

(2)

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

(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

(4)

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)

(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

(6)

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

(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

K

ardinaiitas

=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)

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)

(10)

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)

(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

(12)

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

1

D

(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.

Di

X

D

x

D

x

D

x

D

x

D

x

D

JudulFilm

i 6 1

6

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)

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

(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

(16)

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.

(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

(18)

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)

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

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

,

, =,

(22)

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,

(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

(24)

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

(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

(26)

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

(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

(28)

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

(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

(30)

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

(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

(32)

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

(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)

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

(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

(36)

36

Sampai Disini Dulu

(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

Soal 1

Referensi

Dokumen terkait

Penelitian ini bertujuan untuk mengetahui : (1) kinerja keuangan PT Bank Negara Indonesia Tbk pada tahun 2005 ditinjau dari aspek likuiditas, (2) kinerja keuangan PT Bank

PENGARUH IKLIM SEKOLAH TERHADAP HASIL BELAJAR SISWA KELAS XI MATA PELAJARAN MENGELOLA PERTEMUAN RAPATPROGRAM KEAHLIAN ADMINISTRASI PERKANTORAN DI SMK PASUNDAN 1 CIMAHI..

(i) Apakah ada kegiatan kemitraan yang dilakukan sekolah dengan pihak luar (institusi terkait,pihak swasta atau LSM) dalam pengembangan Pendidikan Lingkungan

Dilihat dari kerangka konsep bahwa pengetahuan ibu sangat penting untuk mengambil sikap dan perilaku Ibu dalam pengolahan bahan makanan dan bagaimana cara memberikan

Pada kegiatan mengkaji materi modul kelompok kompetensi I (pedagogik), fasilitator memberi kesempatan kepada guru sebagai peserta untuk mempelajari materi yang diuraikan

Analisis petrografi bertujuan untuk penamaan batu sedimen serta memperoleh data penunjang bagi Provenance agar dapat diketahui bagaimana kandungan persentase batuan baik

Sedangkan menurut Mufidah keluarga merupakan bagian terkecil dari masyarakat, namun memiliki peranan yang sangat penting (Mufidah, 2008). Dalam keluarga, seseorang

menyusu dini dan dukungan tenaga kesehatan dengan pemberian asi eksklusif oleh ibu yang memiliki bayi 6-12 bulan di Puskesmas Ngampilan pada tahun 2018..