Anda di halaman 1dari 22

TEKNIK INFORMATIKA

Agar Mahasiswa dapat Menjelaskan dan menerapkan Aljabar Relational

TEKNIK INFORMATIKA

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.

TEKNIK INFORMATIKA

Operasi Select (Contoh)

TEKNIK INFORMATIKA

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)

TEKNIK INFORMATIKA

Contoh Operasi Projection

TEKNIK INFORMATIKA

Definisi Operasi Project


Notasi :

A1, A2, , Ak (r) di mana A1, A2 adalah nama atribut, dan r adalah nama relasi. 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, karena relasi adalah sebuah himpunan. Contoh : apabila kita ingin memperoleh informasi dari relasi account, tetapi tanpa atribut branch-name : account-number, balance (account)

TEKNIK INFORMATIKA

Contoh Operasi Union

TEKNIK INFORMATIKA

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

TEKNIK INFORMATIKA

Contoh Operasi Set Difference

TEKNIK INFORMATIKA

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

TEKNIK INFORMATIKA

Contoh Operasi Cartesian-Product

TEKNIK INFORMATIKA

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 = ). Jika atribut r(R) dan s(S) tidak disjoint, maka harus dilakukan renaming.

TEKNIK INFORMATIKA

Komposisi Beberapa Operasi


Contoh: A=C(r x s)

TEKNIK INFORMATIKA

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

TEKNIK INFORMATIKA

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)

TEKNIK INFORMATIKA

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

TEKNIK INFORMATIKA

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)

TEKNIK INFORMATIKA

Contoh Query
Cari nama semua customer yang mempunyai loan di branch Perryridge. customer-name (branch-name=Perryridge (borrower.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. customer-name (branch-name = Perryridge (borrower.loan-number = loan.loan-number(borrower x loan))) customer-name(depositor)

TEKNIK INFORMATIKA

Contoh Query
Cari nama semua 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 = number((branch-name = Perryridge (loan)) x

borrower.loan-

borrower))

TEKNIK INFORMATIKA

TEKNIK INFORMATIKA

Contoh Query
Cari nilai balance account yang paling besar
Rename relasi account sebagai d Query :

balance(account) - account.balance (account.balance < d.balance (account x d (account)))

Latihan TEKNIK INFORMATIKA :


Diketahui skema basis data sbb: employee (person-name, street, city) works (person-name, company-name, salary) company (company-name, city) manages (person-name, manager-name)

a. Cari nama employee yang bekerja pada First Bank Corporation. b. Cari nama dan kota tempat tinggal semua employee yang bekerja di First Bank Corporation. c. Cari nama, alamat dan kota tempat tinggal semua employee yang bekerja di First Bank Corporation dan berpenghasilan lebih dari $10,000. d. Cari nama semua employee yang tinggal di kota yang sama dengan perusahaan dimana mereka bekerja. e. Cari nama semua employee yang tinggal di kota dan jalan yang sama dengan manager mereka. f. Cari nama semua employee yang tidak bekerja di First Bank Corporation. g. Cari semua nama employee yang penghasilannya lebih dari employee di Small Bank Corporation. h. Asumsikan perusahaan berlokasi di beberapa kota. Cari semua perusahaan yang berlokasi di setiap kota dimana Small Bank Corporation berada.

Anda mungkin juga menyukai