MODEL DATA RELASIONAL Daniel Damaris Novarianto S UNIV

  • Slides: 42
Download presentation
MODEL DATA RELASIONAL Daniel Damaris Novarianto S. UNIV. GUNADARMA

MODEL DATA RELASIONAL Daniel Damaris Novarianto S. UNIV. GUNADARMA

Sejarah Model Relasional n n n Pertama kali diperkenalkan oleh E. F. Codd pada

Sejarah Model Relasional n n n Pertama kali diperkenalkan oleh E. F. Codd pada tahun 1970. Objektifitas dari model relasional ini adalah konsep kemandirian data, relasi yang normal tanpa adanya kelompok pengulangan serta perluasan dari bahasa manipulasi data yang berorientasi pada himpunan data. Prototype sistem manajemen basis data relasional, dengan nama System R, dibuat oleh IBM’s San Jose Research Laboratory di California pada tahun 1970 -an. Kemudian mulai dikembangkan bahasa queri terstruktur yang diberi nama Structured Query Language (SQL) dan dinyatakan sebagai standar bahasa relasional. 2

Sejarah Model Relasional (lanj. ) n n n Tahun 1980 -an bermunculan produk-produk sistem

Sejarah Model Relasional (lanj. ) n n n Tahun 1980 -an bermunculan produk-produk sistem manajemen basis data relasional yang komersial; contohnya DB 2 dan SQL/DS dari IBM serta ORACLE dari ORACLE Corporation. Pada waktu bersamaan, dikembangkan prototype INGRES (Interactive Graphics Retrieval System) dimana fokusnya hampir sama dengan System R di California University, Berkeley. Produk komersial dari INGRES dikeluarkan oleh Relational Technology Inc. serta Intelligence Database Machine dari Britton Lee Inc. Sekarang telah terdapat bermacam-macam produk komersial dari model relasional untuk mikrokomputer maupun mainframe. Seperti misalnya, Paradox dan d. Base IV dari Borland, Access dari Microsoft, Fox. Pro dan R: Base dari Microrim. 3

Konsep Model Relasional n n n Model yang merepresentasikan data dalam basis data sebagai

Konsep Model Relasional n n n Model yang merepresentasikan data dalam basis data sebagai kumpulan tabel-tabel yg terintegrasi dimana setiap tabel dinyatakan dengan nama yang unik. Setiap baris pada tabel merepresentasikan keterhubungan diantara sekumpulan nilai. Itu berarti sebuah tabel merupakan kumpulan dari keterhubungan-keterhubungan ini. 4

Istilah-Istilah 5

Istilah-Istilah 5

6

6

Terminologi n n Relation (Relasi) merupakan sebuah tabel dengan kolom -kolom dan baris-baris. Relasi

Terminologi n n Relation (Relasi) merupakan sebuah tabel dengan kolom -kolom dan baris-baris. Relasi digunakan untuk menyimpan informasi mengenai objek-objek yang direpresentasikan dalam sebuah basis data. Relasi ini digambarkan dalam bentuk tabel dua dimensi. Contohnya mengenai informasi pegawai-pegawai yang bekerja di perusahaan X direpresentasikan pada relasi PEGAWAI yang mengandung informasi nomor induk pegawai, nama, alamat, gaji dan kode divisi tempat pegawai bekerja. Relation schema (Skema relasi) adalah nama relasi yang diikuti dengan kumpulan atribut-atributnya. Misalkan skema relasi R dinyatakan sebagai R(A 1, A 2, . . . , An), dimana R = relasi dan Ai = atribut ke i. Contoh : PEGAWAI (NIP, Nama, Alamat, Gaji, Kode. Div). 7

Terminologi (lanj. ) n Attribute (Atribut) merupakan kolom dari suatu relasi yang mempunyai nama.

Terminologi (lanj. ) n Attribute (Atribut) merupakan kolom dari suatu relasi yang mempunyai nama. Atribut-atribut pada suatu relasi tidak harus tersusun secara khusus. Contohnya, pada relasi PEGAWAI mempunyai lima kolom untuk atribut NIP, Nama, Alamat, Gaji dan Kode. Div. n Tuple (Tupel) merupakan suatu baris dari suatu relasi. Pada relasi PEGAWAI, setiap tupel mempunyai 5 nilai, masing-masing untuk setiap atribut NIP, Nama, Alamat, Gaji dan Kode. Div. n Domain (Domain) merupakan kumpulan nilai-nilai data yang mungkin untuk suatu atribut dan bersifat atomik. Contoh : domain dari atribut Kode. Div adalah {Div 01, Div 02, Div 03, Div 04} 8

Contoh Domain 9

Contoh Domain 9

Terminologi (lanj. ) n n n Degree of relation (Derajat dari suatu relasi) adalah

Terminologi (lanj. ) n n n Degree of relation (Derajat dari suatu relasi) adalah banyaknya atribut pada suatu relasi. Relasi PEGAWAI yang mempunyai 5 atribut berarti mempunyai derajat lima, dimana setiap tupelnya mempunyai 5 nilai. Relasi dengan satu atribut disebut derajat unary, dua atribut disebut binary, tiga atribut disebut ternary, selanjutnya disebut n-ary. Cardinality of relation (Kardinalitas dari suatu relasi) adalah banyaknya tuple pada suatu relasi. Kardinalitas dari relasi ini dapat berubah-ubah sesuai dengan perubahan yang terjadi pada relasi. Relational database (Database relasional) merupakan sekumpulan relasi yang sudah dalam bentuk normal. 10

Karakteristik Relasi 1. 2. 3. 4. 5. 6. 7. Setiap relasi mempunyai nama yang

Karakteristik Relasi 1. 2. 3. 4. 5. 6. 7. Setiap relasi mempunyai nama yang harus berbeda dengan relasi lainnya. Setiap sel dari relasi mempunyai hanya satu nilai atau atomik. Setiap atribut mempunyai nama yang berbeda. Nilai atribut bersifat atomik dan berasal dari domain yang sama. Atribut-atribut tidak harus tersusun secara khusus. Setiap tupel berbeda dan tidak ada tupel yang rangkap. Tupel tidak harus tersusun secara khusus. (secara teroritis) 11

Kunci Relasi n n Setiap tupel pada suatu relasi harus dapat diidentifikasi secara unik

Kunci Relasi n n Setiap tupel pada suatu relasi harus dapat diidentifikasi secara unik dengan menggunakan nilai-nilai dari atribut -atribut relasi tersebut. Berikut ini akan dijelas kan terminologi yang digunakan pada kunci relasi : 1. Super key (Kunci super) Kunci super merupakan suatu atribut atau sekumpulan atribut yang secara unik dapat mengidentifikasikan suatu tupel pada suatu Contoh : {NIP}, {NIP, Nama}. relasi. 12

Kunci Relasi (lanj. ) 2. Candidate key (Kunci kandidat) Kunci kandidat merupakan suatu kunci

Kunci Relasi (lanj. ) 2. Candidate key (Kunci kandidat) Kunci kandidat merupakan suatu kunci super yang mempunyai sifat unik, dapat mengidentifikasikan secara unik suatu tupel pada suatu relasi tidak terdapat subset nilai (jika gabungan) yang merupakan suatu kunci super. Contoh : NIP, Nama 13

Kunci Relasi (lanj. ) 3. Primary key (Kunci utama) Kunci utama merupakan sebuah kunci

Kunci Relasi (lanj. ) 3. Primary key (Kunci utama) Kunci utama merupakan sebuah kunci kandidat yang dipilih sebagai atribut yang paling utama yang dapat mengidentifikasikan suatu tupel pada suatu relasi. Contoh : NIP. 4. Alternate key (Kunci alternatif) Kunci alternatif merupakan kunci kandidat yang tidak terpilih sebagai kunci utama. Contoh : Nama. 14

Kunci Relasi (lanj. ) 5. Composite key (Kunci komposit) Kunci komposit merupakan kunci yang

Kunci Relasi (lanj. ) 5. Composite key (Kunci komposit) Kunci komposit merupakan kunci yang terdiri atas lebih dari satu atribut. Contoh : NIP+Nama 6. Foreign key (Kunci asing) Kunci asing merupakan atribut pada suatu relasi yang merupakan kunci utama pada relasi yang lain. Contoh : Kode. Div pada relasi PEGAWAI yang merupakan kunci utama pada relasi DIVISI. 15

Aturan Keintegritasan 1. Entity integrity Kunci utama tidak boleh bernilai null. Null artinya kosong,

Aturan Keintegritasan 1. Entity integrity Kunci utama tidak boleh bernilai null. Null artinya kosong, tidak ada nilai atau nilai tidak sesuai dengan domain atributnya. Contohnya, atribut NIP# sebagai kunci utama pada relasi tidak boleh kosong, karena akan menyebabkan masalah keintegritasan data. 2. Referential integrity Kunci asing harus mempunyai nilai data yang sesuai atau cocok dengan nilai pada referensinya. Contohnya, nilai atribut Kode. Div sebagai kunci asing pada relasi PEGAWAI harus mempunyai nilai dan tidak boleh null sesuai dengan referansinya yakni atribut Kode. Div pada relasi DIVISI. 16

Bahasa Queri n n Bahasa queri merupakan bahasa yang digunakan user untuk mengekspresikan permintaan

Bahasa Queri n n Bahasa queri merupakan bahasa yang digunakan user untuk mengekspresikan permintaan data pada basis data. Bahasa queri ini dapat dibedakan atas q 1. Bahasa queri formal q 2. Bahasa queri komersial 17

Bahasa Queri Formal n Bahasa queri formal merupakan dasar bahasa relasional dg menggunakan simbol

Bahasa Queri Formal n Bahasa queri formal merupakan dasar bahasa relasional dg menggunakan simbol 2 matematika. Bahasa queri formal ini dapat dibedakan atas : a. terprosedur, Bahasa queri formal yang terprosedur artinya pemakai menjabarkan bagaimana caranya untuk memanipulasi data. Contoh : Aljabar relasional b. tanpa prosedur Bahasa queri formal yang tanpa prosedur artinya pemakai hanya menentukan data apa yg dibutuhkan tanpa perlu menjabarkan bagaimana memperoleh data tersebut Contoh : Kalkulus relasional tuple dan domain 18

Bahasa Queri Komersial n Bahasa queri yg dirancang menjadi program aplikasi agar pemakai mudah

Bahasa Queri Komersial n Bahasa queri yg dirancang menjadi program aplikasi agar pemakai mudah menggunakannya. Contoh : a. Structures Query Language (SQL) Kombinasi aljabar dan kalkulus relasional Contoh : Select * from PEGAWAI where Kode. Div=’Div 02’; b. Query Language (QUEL) Berdasarkan pada kalkulus relasional tupel Contoh : Retrieve (PEGAWAI. *) Where PEGAWAI. Kode. Div=’Div 02’; 19

Bahasa Queri Komersial c. Query By Example (QBE) Berdasarkan pada kalkulus relasional domain. 20

Bahasa Queri Komersial c. Query By Example (QBE) Berdasarkan pada kalkulus relasional domain. 20

Aljabar Relasional n n n Aljabar relasional merupakan bahasa teoritis yang operasi 2 nya

Aljabar Relasional n n n Aljabar relasional merupakan bahasa teoritis yang operasi 2 nya bekerja pada satu atau lebih dari satu relasi untuk mendefinisikan relasi 2 lain tanpa mengubah relasi original. Hasil dari operasi aljabar relasional berupa relasi juga yg dapat digunakan untuk operasi lain. Operasi 2 dasar antara lain: SELECT, PROJECTION, CARTESIAN PRODUCT, UNION dan SET DIFFERENCE. Selain ini ada pula operasi tambahan JOIN, INTERSECTION dan DIVISION. 21

Operasi Select n Operasi SELECT ditujukan untuk memperoleh tupel 2 dari suatu relasi yg

Operasi Select n Operasi SELECT ditujukan untuk memperoleh tupel 2 dari suatu relasi yg memenuhi predikat tertentu. Simbol yang digunakan : (sigma). n Bentuk : predikat (R), R : relasi n Predikat pada operasi SELECT melibatkan : operand : konstanta/bilangan operator aritmatika : , , , operator logika : (and), (or), (not) 22

Contoh Operasi Select n n Contoh queri : dicari informasi mengenai pegawai yang bekerja

Contoh Operasi Select n n Contoh queri : dicari informasi mengenai pegawai yang bekerja di divisi Div 02. (Berdasarkan relasi pegawai) Kode. Div=’Div 02’ (PEGAWAI) Hasil : 23

Operasi Project n n n Operasi PROJECT ditujukan untuk memperoleh atribut 2 atau kolom

Operasi Project n n n Operasi PROJECT ditujukan untuk memperoleh atribut 2 atau kolom 2 tertentu dari suatu relasi serta membuang nilai yang sama. Simbol yang digunakan : (pi). Bentuk : kolom 1, kolom 2, . . . , kolomn (R) 24

Contoh Operasi Projection n n Contoh queri : tampilkan nama dan alamat pegawai Nama,

Contoh Operasi Projection n n Contoh queri : tampilkan nama dan alamat pegawai Nama, Alamat (PEGAWAI) Hasil : 25

Operasi Cartesian Product n n n Membentuk suatu relasi dari dua relasi, misalkan R

Operasi Cartesian Product n n n Membentuk suatu relasi dari dua relasi, misalkan R dan S, yang terdiri dari kombinasi untuk setiap tupel pada R dengan semua tupel pada S. Simbol operasi adalah : (cros) Bentuk : R x S Contoh queri : tampilkan kombinasi pegawai dan divisi tempat pegawai bekerja. PEGAWAI DIVISI 26

Operasi Union n Membentuk suatu relasi yang terdiri dari tupel yang berada pada salah

Operasi Union n Membentuk suatu relasi yang terdiri dari tupel yang berada pada salah satu relasi atau pada kedua relasi, dengan syarat : q q n n misalkan ada relasi R dan S, maka jumlah atribut relasi R dan S harus sama domain dari atribut ke i dari R harus sama dengan domain dari atribut ke i pada S. Simbol : (union) Contoh queri : misalkan terdapat dua relasi pegawai di cabang A yakni PEGAWAI-A dan di cabang B yakni PEGAWAI-B, apabila ingin diketahui gabungannya, maka PEGAWAI-A PEGAWAI-B 27

Operasi Set Difference n n n Operasi ini untuk membentuk suatu relasi yang terdiri

Operasi Set Difference n n n Operasi ini untuk membentuk suatu relasi yang terdiri dari tupel-tupel yang berada pada relasi pertama dan tidak berada pada relasi kedua atau kedua-duanya. Simbol : - (minus) Contoh : PEGAWAI-A PEGAWAI-B 28

Operasi Natural Join n Membentuk suatu relasi dari dua relasi yang terdiri dari kombinasi

Operasi Natural Join n Membentuk suatu relasi dari dua relasi yang terdiri dari kombinasi yang mungkin dari relasi tersebut. Simbol : 29

Contoh Natural Join n n Contoh queri : dicari nama divisi dimana pegawai dengan

Contoh Natural Join n n Contoh queri : dicari nama divisi dimana pegawai dengan NIP 80100 bekerja. Nama. Div ( NIP=’ 80100’ (PEGAWAI DIVISI)) Hasil : Pemasaran 30

Latihan n Dicari NIP dan Nama Pegawai yg bekerja di divisi dengan nama Pemasaran?

Latihan n Dicari NIP dan Nama Pegawai yg bekerja di divisi dengan nama Pemasaran? n Dicari nama divisi dan lokasi divisi serta nama pegawai dengan nip 80100 dan bekerja di divisi dengan kode DIV 02? 31

Operasi Intersection n n Operasi ini ditujukan untuk memperoleh tupel yang berada pada kedua

Operasi Intersection n n Operasi ini ditujukan untuk memperoleh tupel yang berada pada kedua relasi R dan S. Simbol = . Contoh : R S 32

Kalkulus Relasional Pendeskripsian pemrosesan suatu queri berbeda dg aljabar relasional, cukup dengan mendefinisikan apa

Kalkulus Relasional Pendeskripsian pemrosesan suatu queri berbeda dg aljabar relasional, cukup dengan mendefinisikan apa yang diinginkan. n Ada dua bentuk kalkulus relasional yakni n 1. 2. kalkulus relasional tupel yang pertama kalinya diusulkan oleh E. F. Codd, kalkulus relasional domain yang diusulkan Lacroix dan Pirotte. 33

Kalkulus Relasional Tupel n n Kalkulus relasional tupel lebih berorientasi pada tupel dimana operasi

Kalkulus Relasional Tupel n n Kalkulus relasional tupel lebih berorientasi pada tupel dimana operasi ini ditujukan untuk memperoleh tupel-tupel yang predikatnya ‘benar’. Ekspresi : { t P(t) } t : tupel, P : predikat terhadap t Bentuk-bentuk dari predikat : 1. S R ; dimana S : variabel, R : relasi 2. S[x] U[y] ; dimana S dan U : variabel tupel , x dan y : atribut-atribut : operator aritmatika 3. S[x] C ; C : konstanta Operator tambahan : operator penghubung yakni (and), (or) 34

Contoh Kal. Relasional Tupel n Contoh queri : diketahui skema relasi DOSEN (Nip, Nama,

Contoh Kal. Relasional Tupel n Contoh queri : diketahui skema relasi DOSEN (Nip, Nama, Alamat, Kota, Jkel). Dicari informasi mengenai dosen yang berada di kota Bogor. { t t DOSEN t[Kota] = ‘Bogor’ } 35

Kalkulus Relasional Domain n Berbeda dengan kalkulus relasional tupel, kalkulus relasional domain berorientasi pada

Kalkulus Relasional Domain n Berbeda dengan kalkulus relasional tupel, kalkulus relasional domain berorientasi pada domain dengan menggunakan variabel-variabel domain. Ekspresi : { <x 1, x 2, xn> P <x 1, x 2, xn> } Dimana xi : variabel domain, sedangkan P : predikat terhadap x. Bentuk-bentuk dari predikat: 1. 2. 3. <x 1, x 2, xn> R x y x C ; R : relasi 36

Contoh Kal. Relasional Domain n n Contoh queri : diketahui skema relasi DOSEN (Nip,

Contoh Kal. Relasional Domain n n Contoh queri : diketahui skema relasi DOSEN (Nip, Nama, Alamat, Kota, Jkel). Dicari informasi mengenai dosen yang mempunyai NIP 87000650. { <n, a, l, k, j> DOSEN n=’ 87000650’} Ket: n= Nip a= Nama l= alamat k= kota j= jenis kelamin 37

Query By Example (QBE) n n QBE Pertama kali dikembangkan oleh Zloof pada tahun

Query By Example (QBE) n n QBE Pertama kali dikembangkan oleh Zloof pada tahun 1975. Untuk mengekspresikan permintaan dari pemakai dilakukan dengan memasukkan nilai contoh ke dalam template queri yang menyerupai sebuah tabel. Operator perintah antara lain : P. (Print), D. (Delete), I. (Insert), U. (Update). Operator aritmatika : , , , 38

Contoh QBE n Contoh : diketahui skema relasi PEGAWAI (NIP, Nama, Alamat, Gaji, Kddiv)

Contoh QBE n Contoh : diketahui skema relasi PEGAWAI (NIP, Nama, Alamat, Gaji, Kddiv) a. Ingin ditampilkan informasi pegawai dg Nip 102871. b. Ingin ditampilkan nama dan alamat pegawai yang mempunyai gaji lebih besar dari 500. 000, - 39

Query Language (QUEL) n n QUEL merupakan bahasa pendefinisian dan manipulasi data untuk INGRES

Query Language (QUEL) n n QUEL merupakan bahasa pendefinisian dan manipulasi data untuk INGRES (Interactive Graphics and Retrieval System), dikembang kan sejak tahun 1970 -an. Perintah-perintah pada Quel : 1. Pendefinisian data antara lain : CREATE, INDEX, MODIFY, DESTROY 2. Manipulasi data antara lain : RETRIEVE, APPEND, DELETE, REPLACE 40

Query Language (QUEL) (lanj. ) n Sintaks RETRIEVE : - RETRIEVE [ UNIQUE] tabel.

Query Language (QUEL) (lanj. ) n Sintaks RETRIEVE : - RETRIEVE [ UNIQUE] tabel. kolom WHERE [fungsi/ANY] kondisi SORT BY kolom; - RANGE OF inisial/huruf IS (nama tabel); n Contoh queri : 1. Ingin dibuat inisial dari tabel PEGAWAI dan DIVISI RANGE OF P IS PEGAWAI, D IS DIVISI; 2. Ingin ditampilkan nama dan alamat pegawai yang gajinya lebih besar dari 500. 000, - RETRIEVE (P. Nama, P. Alamat) WHERE P. Gaji > 500000; 41

sekian 42

sekian 42