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

yaitu tidak dapat dibagi lagi (indivisible) .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 .

Skema Relasi • A1. An adalah atribut • R = (A1. A2. A2. An ) adalah skema relasi – Contoh Customer-schema = (customer-name. Contoh : customer (Customerschema) . …. customer-city) • r(R) adalah sebuah relasi pada skema relasi R . 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. customername.. balance.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.) menyebabkan : – Pengulangan informasi – Penggunaan null values .

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

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 selection: σ branch-name=“Perryridge”(account) . <. ≠. ≥.

Contoh Operasi Projection .

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

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. r. s harus mempunyai arity sama (jumlah atributnya sama) – 2.

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 .

(Yaitu R ∩ S = ∅). . 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.

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

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

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

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

Π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. account. Πcustomer-name (borrower) ∩ Πcustomer-name (depositor) . atau keduanya.

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

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

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

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

Sign up to vote on this title
UsefulNot useful