• Tidak ada hasil yang ditemukan

MAGISTER TEKNIK INFORMATIKA

N/A
N/A
Protected

Academic year: 2021

Membagikan "MAGISTER TEKNIK INFORMATIKA"

Copied!
45
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

(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

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

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

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

(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

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)

34

Sampai Disini Dulu

(35)

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

(36)
(37)
(38)
(39)

http://coronet.iicm.edu/wbtmaster/allcoursescontent/netlib/library.htm

(40)

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)

(41)

Example : Class Diagram and Object Diagram

(a) Class diagram

(b) Object diagram

Closed diamond indicates

composition. The room

cannot exist without the

building

(42)

42

Example : UML class diagram for a university database

The following slides illustrate the

ODL implementation of this

(43)
(44)

44

(45)

Figure 1-10 An

enterprise

data

Gambar

Figure 1-10 An  enterprise

Referensi

Dokumen terkait

terdapat di sistem operasi dan perangkat keras komputer, mampu dijalankan di semua sistem operasi (multi plattform), aman karena scriptnya di proses di server yang

efek perintah jika berhasil dijalankan maka tabel dengan nama 'tamu' akan dihapus secara permanen berikut dengan data yang ada dalam tabel juga akan terhapus. Mengubah

13 Sistem Informasi Mahasiswa mempunyai pemahaman yang kuat tentang sistem informasi, peranan basis data dalam Sistem Informasi serta membuat aplikasi sistem

Pada lampiran tabel 7 dapat dilihat bahwa di indeks JII maupun di indeks LQ45 manajemen laba riil pada tahun 2009 cenderung dilakukan pada proksi arus kas operasi perusahaan, hal

efek perintah jika berhasil dijalankan maka tabel dengan nama 'tamu' akan dihapus secara permanen berikut dengan data yang ada dalam tabel juga akan terhapus.. Mengubah struktur tabel

Tabel 4.20 Tabel Menentukan Integrity Constraints 104 Tabel 4.21 Tabel Menentukan Model Basisdata Logikal Global 110 Tabel 4.22 Tabel Perbandingan MS SQL Server 2000 dengan Oracle 9i

Pengetahuan tentang File, table, field, record indeks, abstraksi data dan serangkaian konsep yang digunakan untuk membuat diskripsi struktur basis data.. Melalui diskripsi Struktur

RPS – Pengantar Matematika Numerik Halaman 3/4 Halaman Diskusi 4.Menentukan angka signifikan suatu perhitungan numerik 5.Menjelaskan sumber eror 6.Mengubah struktur perhitungan yg