330 likes | 540 Views
Aljabar Relasional. Materi pertemuan. Bahasa Query. Bahasa yang digunakan user untuk melakukan request informasi dari basis data Kategori Bahasa : Prosedural Non- prosedural. Bahasa Query. Bahasa query memungkinkan manipulasi dan pemanggilan data dari suatu basisdata .
E N D
AljabarRelasional Materipertemuan
BahasaQuery • Bahasa yang digunakanuseruntukmelakukanrequestinformasidari basis data • KategoriBahasa : • Prosedural • Non-prosedural
Bahasa Query • Bahasa query memungkinkanmanipulasidanpemanggilan data darisuatubasisdata. • Terdapat 2 macambentukbahasa query” • AljabarRelasional • Aljabarrelasionaladalahsebuahbahasaquery prosedural yang terdiridarisekumpulanoperasidimanamasukkannyaadalahsatuatauduarelasidankeluarannyaadalahsebuahrelasibarusebagaihasildarioperasitersebut • Lebihbersifatoperasional, sangatbergunauntukmerepresentasikaneksekusiperencanaan • KalkulusRelasional • Memungkinkan user menggambarkanapa yang merekainginkan, tidakpadapadabagaimanacaramelakukankomputasiterhadapapa yang merekainginkantersebut. (tidakbersifatoperasional, tapibersifatdeklaratif). • Memahamialjabardankalkulusrelasionaladalahkuncimemahami SQL.
AljabarRelasional • Merupakanbahasaprosedural • Operator dasar : • select • project • union • set difference • Cartesian product • Operator yang melibatkanduaataulebihrelasisebagaiinputakanmenghasilkansaturelasibarusebagaioutput.
Operasi Dalam Aljabar Relasional • Operasi-operasidasardalamaljabarrelasionaladalah : • Select : mengambilsejumlahbaris data berdasarkankondisi yang diinginkan. • Project : Menghapuskolom yang tidakdikehendakidarirelasi • Union : Mendapatkan record yang terdapatdalamduatabeldengankolom yang sejenis. • set difference : mendapatkanrecord / field yang terdapatdalamsebuahtabel, tetapitidakterdapatdalamtabel lain. • Cartesian/Cross Product : menggabungkan data dariduabuahtabelatauhasilquery.
Definisi Operasi Select • Notasi : σp(r) • pdisebutsebgaipredikat selection Di manapadalahsebuah formula dalamkalkulusproposisi yang terdiriataskondisi yang dihubungkandengan : danjugadihubungkandengan operator: =, ≠, >, ≥. <. ≤
ContohOperasiSELECT • Jikaadasebuahtabelbernama S2, sbb: • Jadiuntukmenyeleksituple-tupledarirelasi S2dimana rating-nyalebihbesardari 8, ditulis : • σ rating>8 (S2) • Makatabel yang dihasilkan:
Contoh-contohquery lain denganoperasi select adalah : σage = “35.0”(S2) Yang artinya : menyeleksi record-record darirelasiS2 dimanaage-nyaadalah “35.0” • MakaTabelHasilQuerynyaadalah?
Operasi-operasi select, project dan rename disebutoperasiunary, karenaoperasi-operasitersebuthanyamemerlukansatutabel. • Tigaoperasilainnyamemerlukansepasangrelasi, disebutoperasibinary.
DefinisiOperasiProject • Notasi : ΠA1, A2, …, Ak(r) dimana A1, A2adalahnamaatribut, danradalahnamatabel. • Hasiloperasi project didefinisikansebagairelasidengankolomsebanyakk yang diperolehdenganmenghapuskolom yang tidaktermasukdalamkriteria.
ContohOperasiProject • Seandainyadiinginkansemuadaftarsnamedanrating, denganrating >8. • Denganoperasi project dapatdihasilkanrelasiini. Operasi project disimbolkandengan symbol phi (π). • Nama-namaatribut yang diinginkantampilditulissebagaisubcriptπ • Contoh : πsname,rating(σ rating>8 (S2)), adalahoperasiuntukmenampilkanseluruhsname& rating dengan rating > 8 • Hasiloperasitersebutadalah :
DefinisiOperasiUnion • Notasi: r U s • Kriteria valid r U s: • 1. r, s harusmempunyaijumlahatributsama • 2. Domain atributharuskompatibel (misal : kolomkeduarelasi r mempunyaitipe data yang samadengankolomkeduarelasi s)
DefinisiOperasiSet Difference • Notasi : r – s • Operasi set difference harusdilakukanpadarelasi yang kompatibel : • Domain atributr dans haruskompatibel
Cartesian / Cross-Product • Cross Product biasadikenaldenganOperasi Cartesian-product. • Operasi Cartesian-product disimbolkandengan “x”. • Denganoperasiinidapatdihasilkaninformasi yang merupakankombinasidariduatabel. • Secaragarisbesar, jikadipunyairelasir1(R1) danr2(R2), makar1 x r2 adalahtabelyang skemanyamerupakangabungandariR1 ( atribut-atributrelasi r1) danR2 (atribut-atribut r2).
Union, Intersection, Set-Difference • SemuaOperasiinimembutuhkanduarelasi, syarat yang harusdipenuhiadalah: • Mempunyaijumlah field yang sama • Field yang berkorespondensimemilikitipe yang sama. • Misalkanuntukduatabelrelasi S1 dan S2 berikut:
Berikut ini adalah contoh dari ketiga operasi diatas: • Union : S1 U S2 • Intersection: S1 n S2 • Set-Difference:
ContohKomposisiBeberapaOperasi • Contoh: σA=C(r x s)
. Tampilkansemua data pegawai yang dimilikioleh “Alicia” dan “Ramesh.” • Tampilkansemua data pegawaiuntuk department 4 dangajilebihdari 25000. • Tampilkansemua data pegawaiuntuk department 5 dangajilebihdari 5000. • σDNO = 4 and SALARY >4000 OR FNAME =’ James’ (EMPLOYEE) • ∏LNAMAE, FNAME. SALARY(EMPLOYEE) • ∏ LNAMAE, FNAME. SALARY(σDNO = 5 (EMPLOYEE))
STUDENT INSTRUKTUR TAMPILKAN1. STUDENT Ù INSTRUKTUR 2.STUDENT – INSTRUKTUR 3. STUDENT n INSTRUKTUR 4. STUDENT X INSTRUKTUR 5. ∏LN( (σFNAME= ‘Richard’ OR FNEME = ‘Johny’ (STUDENT x INSTRUKTUR))
Contoh Skema Perbankan • branch (branch-name, branch-city, assets) • customer (customer-name, customer-street, customer-only) • account (account-number, branch-name, balance) • loan (loan-number, branch-name, amount) • depositor (customer-name, account-number) • borrower (customer-name, 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))
Contoh Query • Cari nama semua customer yang mempunyai loan, account, atau keduanya. Πcustomer-name(borrower) U Πcustomer-name(depositor) • Cari nama semua customer yang mempunyai loan dan account. Πcustomer-name(borrower) ∩ Πcustomer-name(depositor)
Contoh Query • Carinamasemua customer yang mempunyai loan di branch Perryridge. Πcustomer-name(σbranch-name=“Perryridge” (σborrower.loan-number = loan.loan-number(borrower x loan))) • Carinamasemua customer yang mempunyai loan di branch Perryridge, tetapitidakmempunyai account di branch manapun. Πcustomer-name(σbranch-name = “Perryridge” (σborrower.loan-number = loan.loan-number(borrower x loan))) – Πcustomer-name(depositor)
Contoh Query • Carinamasemua customer yang mempunyai loan di branch Perryridge. • Query 1 Πcustomer-name(σbranch-name=“Perryridge” ( σborrower.loan-number=loan.loan-number(borrower x loan))) • Query 2 Πcustomer-name(σloan.loan-number=borrower.loan- number((σbranch-name=“Perryridge”(loan)) x borrower))
Tampilkankodebarangdannamabarang yang disupplyoleh supplier dengan status 2. • Tampilkankodebarangdannamabarang yang harganyalebihdari $500. • Tampilkan data barang yang dipasokoleh supplier bernama PT. HP • tampilkankodetransaksi yang dipasokoleh supplier 001 • Tampilkanjumlahtransaksi yang dipasokoleh supplier bernama PT Fujitsu
Latihan : • Diketahuiskema basis data sbb: employee (person-name, street, city) works (person-name, company-name, salary) company (company-name, city) manages (person-name, manager-name) • Tampilkansemuanamadankotaemployee • Tampilkannamadankotatempattinggalsemua employee • Tampilkannamasemua employee denganpasangan manager mereka. • Tampilkansemuanamaemployee yang bekerjapadacompany First Bank Corporation. • Tampilkannamadankotatempattinggalsemua employee yang bekerjadi First Bank Corporation. • c. Tampilkannama, alamatdankotatempattinggalsemua employee yang bekerjadi First Bank Corporation danberpenghasilanlebihdari $10,000. • d. Tampilkannamasemua employee yang tinggaldikota yang samadenganperusahaandimanamerekabekerja. • e. Tampilkannamasemua employee yang tidakbekerjadi First Bank Corporation.