Model & Aljabar Relasional

CS2343 Perancangan Basis Data Relasional

Contoh Relasi

Struktur Dasar
• Definisi Formal Dari himpunan D1, D2, …. Dn sebuah relasi r adalah subset dari D1 x D2 x … x Dn. Sehingga, sebuah relasi adalah himpunan n-tuple (a1, a2, …, an) di mana untuk setiap ai ε Di • Contoh : jika customer-name = {Jones, Smith, Curry, Lindsay} customer-street = {Main, North, Park} customer-city = {Harrison, Rye, Pittsfield} Maka r = { (Jones, Main, Harrison), (Smith, North, Rye), (Curry, North, Rye), (Lindsay, Park, Pittsfield)} merupakan sebuah relasi pada customer-name x customer-street x customer-city

Tipe Atribut • Setiap atribut relasi mempunyai nama – Himpunan nilai yang diijinkan untuk setiap atribut disebut domain – Nilai atribut umumnya harus memenuhi syarat atomic. Contoh : • Atribut multivalued tidak atomic • Atribut komposit tidak atomic • Nilai null merupakan anggota dari setiap domain • Nilai null menyebabkan definisi pada beberapa operasi menjadi lebih rumit . yaitu tidak dapat dibagi lagi (indivisible) .

A2. A2.Skema Relasi • A1. …. …. Contoh : customer (Customerschema) . customer-city) • r(R) adalah sebuah relasi pada skema relasi R . An adalah atribut • R = (A1. An ) adalah skema relasi – Contoh Customer-schema = (customer-name. customer-street.

yang direpresentasikan dengan sebuah baris pada tabel .Instan Relasi • Current values (relation instance) sebuah relasi dispesifikkan dengan sebuah tabel • Sebuah elemen t dari r adalah sebuah tuple.

Tuple pada Relasi Tidak Terurut • Urutan tuple pada tabel tidak diperhatikan • Contoh relasi account dengan tuple yang tidak terurut : .

dengan setiap relasi menyimpan satu bagian informasi. balance.) menyebabkan : – Pengulangan informasi – Penggunaan null values . customername.Basis Data • Sebuah basis data terdiri atas beberapa relasi • Informasi tentang sebuah enterprise dipecah menjadi beberapa bagian.. . Contoh : – relasi account : menyimpan informasi tentang account – relasi depositor : menyimpan informasi tentang customer yang memiliki account – relasi customer : menyimpan informasi tentang customer • Menyimpan semua informasi dalam relasi tunggal seperti bank(account-number.

Relasi Customer .

Relasi Depositor .

Contoh Diagram Skema untuk Kasus Perbankan (Banking Enterprise) .

Bahasa Query • Bahasa yang digunakan user untuk melakukan request informasi dari basis data • Kategori Bahasa : – Prosedural – Non-prosedural • Bahasa “Murni” (“Pure” languages) : – Aljabar Relasional – Tuple Relational Calculus – Domain Relational Calculus • Pure languages membentuk dasar bahasa query yang digunakan user. .

.Aljabar Relasional • Merupakan bahasa prosedural • Operator dasar : – – – – – – select project union set difference Cartesian product rename • Operator yang melibatkan dua atau lebih relasi sebagai input akan menghasilkan satu relasi baru sebagai output.

Operasi Select (Contoh) .

>. <. ≤ • Contoh selection: σ branch-name=“Perryridge”(account) . ≠. ≥.Definisi Operasi Select • Notasi : σp(r) • p disebut sebgai predikat selection • Definisi selection : σp(r) = {t | t ε r and p(t)} Di mana p adalah sebuah formula dalam kalkulus proposisi yang terdiri atas term yang dihubungkan dengan Setiap term adalah satu dari : <attribute> op <attribute> or <constant> di mana op adalah salah satu dari : =.

Contoh Operasi Projection .

…. A2 adalah nama atribut. • Contoh : apabila kita ingin memperoleh informasi dari relasi account. A2. Ak (r) di mana A1. • Duplicate rows dihilangkan dari relasi hasil. • Hasil operasi project didefinisikan sebagai relasi dengan kolom sebanyak k yang diperoleh dengan menghapus kolom yang tidak termasuk dalam kriteria. karena relasi adalah sebuah himpunan. dan r adalah nama relasi. balance (account) . tetapi tanpa atribut branchname : Πaccount-number.Definisi Operasi Project • Notasi : ΠA1.

Contoh Operasi Union .

Domain atribut harus kompatibel (misal : kolom kedua relasi r mempunyai tipe data yang sama dengan kolom kedua relasi s) • Contoh : untuk mencari semua customer yang mempunyai account atau pinjaman : Πcustomer-name (depositor) U Πcustomer-name (borrower) .Definisi Operasi Union • Notasi: r U s • Definisi operasi union : r U s = {t | t ε r or t ε s} • Kriteria valid r U s : – 1. s harus mempunyai arity sama (jumlah atributnya sama) – 2. r.

Contoh Operasi Set Difference .

Definisi Operasi Set Difference • Notasi : r – s • Definisi : r – s = {t | t ε r and t ∉ s} • Operasi set difference harus dilakukan pada relasi yang kompatibel : – r dan s harus mempunyai arity sama – Domain atribut r dan s harus kompatibel .

Contoh Operasi Cartesian-Product .

maka harus dilakukan renaming. • Jika atribut r(R) dan s(S) tidak disjoint. .Definisi Operasi Cartesian-Product • Notasi : r x s • Definisi : r x s = {t q | t ε r and q ε s} • Asumsi atribut r(R) dan s(S) disjoint. (Yaitu R ∩ S = ∅).

Komposisi Beberapa Operasi • Contoh: σA=C(r x s) .

• Memungkinkan untuk mengacu sebuah relasi dengan lebih dari satu nama. ….. An. dan atributnya direname menjadi A1. Contoh : ρ x (E) mengembalikan ekspresi E dengan nama Jika ekspresi aljabar relasional E mempunyai arity n. .Operasi Rename • Memungkinkan untuk memberi nama dan mengacu hasil dari operasi ekspresi aljabar relasional. …. A2. An) (E) mengembalikan hasil ekspresi E dengan nama X. A2. maka ρx (A1.

accountnumber) • borrower (customer-name. customerstreet. assets) • customer (customer-name. amount) • depositor (customer-name. branch-city. customer-only) • account (account-number.Contoh Skema Perbankan • branch (branch-name. branch-name. loan-number) . branch-name. balance) • loan (loan-number.

Contoh Query • Cari semua loan yang nilainya lebih dari $1200 σamount > 1200 (loan) • Cari nomor loan untuk semua loan yang nilainya lebih dari $1200 Πloan-number (σamount > 1200 (loan)) .

atau keduanya. account. Πcustomer-name (borrower) ∩ Πcustomer-name (depositor) . Πcustomer-name (borrower) U Πcustomer-name (depositor) • Cari nama semua customer yang mempunyai loan dan account.Contoh Query • Cari nama semua customer yang mempunyai loan.

loan-number = loan.loan-number(borrower x loan))) • Cari nama semua customer yang mempunyai loan di branch Perryridge. tetapi tidak mempunyai account di branch manapun.loan-number(borrower x loan))) – Πcustomer-name(depositor) . Πcustomer-name (σbranch-name = “Perryridge” (σborrower. Πcustomer-name (σbranch-name=“Perryridge” (σborrower.loan-number = loan.Contoh Query • Cari nama semua customer yang mempunyai loan di branch Perryridge.

Contoh Query • Cari nama semua customer yang mempunyai loan di branch Perryridge.loan-number = borrower.loan-number(borrower x loan))) – Query 2 Πcustomer-name(σloan.loan-number = loan.loannumber((σbranch-name = “Perryridge”(loan)) x borrower)) . – Query 1 Πcustomer-name(σbranch-name = “Perryridge” ( σborrower.

balance < d.balance (σaccount.balance (account x ρd (account))) .Πaccount.Contoh Query • Cari nilai balance account yang paling besar – Rename relasi account sebagai d – Query : Πbalance(account) .

manager-name) a. Cari nama semua employee yang tinggal di kota dan jalan yang sama dengan manager mereka. alamat dan kota tempat tinggal semua employee yang bekerja di First Bank Corporation dan berpenghasilan lebih dari $10. city) works (person-name. . salary) company (company-name. Cari nama.000. g. Cari nama dan kota tempat tinggal semua employee yang bekerja di First Bank Corporation. Cari semua nama employee yang penghasilannya lebih dari employee di Small Bank Corporation. street. d. company-name. Cari nama semua employee yang tinggal di kota yang sama dengan perusahaan dimana mereka bekerja. c.Latihan : • Diketahui skema basis data sbb: employee (person-name. city) manages (person-name. b. e. Cari semua perusahaan yang berlokasi di setiap kota dimana Small Bank Corporation berada. Cari nama employee yang bekerja pada First Bank Corporation. f. Cari nama semua employee yang tidak bekerja di First Bank Corporation. h. Asumsikan perusahaan berlokasi di beberapa kota.

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.