7 aljabar dan kalkulus relational 1

Upload: chadien

Post on 09-Jul-2015

101 views

Category:

Documents


0 download

TRANSCRIPT

Aljabar Relational

Review Pertemuan Ke-6 Normalisasi adalah Suatu Teknik/Cara yang digunakan untuk menganalisa relasi berdasarkan pada primary key (atau Candidate key dalam kasus BCNF) dan ketergantungan secara fungsional. Normalisasi dibagi menjadi bentuk normal I, bentuk normal II, bentuk normal III, dan BCNF Functional dependencies menggambarkan relasi antar attribut dalam satu skema relasi

2

Pendahuluan Aljabar relasional adalah sebuah bahasa query prosedural yang terdiri dari sekumpulan operasi dimana masukkannya adalah satu atau dua relasi dan keluarannya adalah sebuah relasi baru sebagai hasil dari operasi tersebut.

3

Operasi Aljabar RelasionalOperasi-operasi dasar dalam aljabar relasional adalah : Select Project Union set difference Cartesian product dan rename.4

Operasi Aljabar Relasiona Disamping operasi-operasi dasar terdapat beberapa operasi lainnya seperti set intersection, natural join, division dan assignment. Operasi-operasi ini akan didefinisikan dalam terminology operasi dasar.

5

Operasi-operasi Dasar Operasi-operasi select, project dan rename disebut operasi unary, karena operasi-operasi tersebut hanya memerlukan satu relasi. Tiga operasi lainnya memerlukan sepasang relasi, disebut operasi binary.

6

Operasi Select Operasi select menyeleksi tuple-tuple yang memenuhi predikat yang diberikan. Digunakan symbol sigma () untuk menunjukkan operasi select. Predikat muncul sebagai subcript dari . Argumen relasi diberikan dalam kurung yang mengikuti . Jadi untuk menyeleksi tuple-tuple dari relasi loan dimana branch-name-nya adalah Perryridge, ditulis : branch-name = Perrydge(loan)7

Operasi Select Jika relasi Loan adalah :

8

Operasi Select Maka hasil dari query di atas adalah :

9

Operasi Select Contoh-contoh query lain dengan operasi select adalah : amount>1200(loan), untuk menemukan tuple dengan nilai amount lebih dari 1200, branch-name = Perryridge and amount >1200 (loan), untuk menemukan tuple dengan branch-name = Perryridge dimana nilai amountnya lebih dari 1200.10

Operasi Project Seandainya diinginkan semua daftar loannumber dan amount, tanpa branchname. Dengan operasi project dapat dihasilkan relasi ini. Operasi project disimbolkan dengan symbol phi (). Nama-nama atribut yang diinginkan tampil ditulis sebagai subcript .

11

Operasi Project Contoh : loan-number,amount(loan), adalah operasi untuk menampilkan seluruh loan-number & amount tanpa branch-name.

12

Operasi Project Hasil operasi tersebut adalah :

13

Komposisi Operasi-operasi relasional Berikut contoh query yang lebih kompleks : Temukan customer-customer yang tinggal di Horison . Maka query-nya ditulis : customer-name(customer city=Horison(customer))

14

Komposisi Operasi-operasi relasional perhatikan bahwa sebagai argumen dari operasi project adalah sebuah ekspresi untuk suatu relasi. Oleh karenanya, operasi-operasi aljabar relasional dapat digabung dengan suatu ekspresi aljabar relasional.

15

Operasi Union Operasi union dalam aljabar relasional sama halnya dengan operasi union pada aritmatika. Misal user menginginkan nama-nama semua nasabah bank yang memiliki sebuah account atau sebuah loan atau keduanya. Perhatikan bahwa relasi customer tidak mengandung informasi tersebut.16

Operasi Union Untuk menjawab query ini diperlukan informasi dari relasi Depositor dan relasi Borrower. Dengan operasi union informasi yang diinginkan dapat diperoleh dengan menulis query sebagai berikut : customer-name(borrower) U customername(depositor)17

Operasi Union

18

Operasi Union Hasil query yang union di atas adalah :

19

Operasi Union Operasi union r U s bernilai benar jika kedua relasi memenuhi dua kondisi berikut : 1. Relasi r & s harus mempunyai jumlah atribut yang sama 2. Domain dari atribut ke-I di relasi r dan domain dari atribut ke-I dari s harus sama untuk semua i.

20

Operasi Pengurangan Himpunan ( Set Difference) Disimbolkan dengan tanda -. Operasi ini untuk menemukan tuple-tuple yang berada pada satu relasi tetapi tidak berada pada relasi yang lainnya. Contoh untuk menemukan semua nasabah bank yang mempunyai account tetapi tidak mempunyai loan, ditulis : customer-name(depositor) customer-name(borrower)

21

Operasi Pengurangan Himpunan ( Set Difference) hasil query di atas :

22

Operasi Cartesian product Operasi Cartesian-product disimbolkan dengan x. Dengan operasi ini dapat dihasilkan informasi yang merupakan kombinasi dari dua relasi. Secara garis besar, jika dipunyai relasi r1(R1) dan r2(R2), maka r1 x r2 adalah relasi yang skemanya merupakan gabungan dari R1 ( atribut-atribut relasi r1) dan R2 (atribut-atribut r2). Relasi R mengandung semua tuple t dimana terdapat sebuah tuple t1 dalam r1 dan t2 dalam r2 sedemikian sehingga t[R1] = t1[R1] dan t[R2]=t2[R2].

23

Operasi Cartesian product Contoh : Jika diinginkan nama-nama dari semua nasabah yang mempunyai pinjaman (loan) di bank cabang Perryridge. Maka query-nya ditulis : branchname=Perryridge(borrower x loan)

24

Operasi Cartesian product Relasi yang dihasilkan :

25

Operasi Cartesian product

26

Operasi Rename Dilambangkan dengan symbol rho (). Sintaks penulisan rename : x(E). Operasi rename mengeluarkan hasil ekspresi E dengan nama x. Contoh : account.balance(account.balance