P. 1
ALJABAR RELASIONAL

ALJABAR RELASIONAL

|Views: 516|Likes:
Published by ichalarchuleta

More info:

Published by: ichalarchuleta on Nov 04, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

07/02/2013

pdf

text

original

BAB V ALJABAR RELASIONAL

Yaitu sekumpulan operasi yang digunakan untuk melakukan proses manipulasi data dalam rangka untuk mendapatkan informasi yang diperlukan dari database. Ajabar relasional Secara umum dibagi menjadi 2:  operasi himpunan (UNION, INTERSECTION, DIFFERENCE, dan CARTESIAN PRODUCT)  operasi yang dikembangkan secara khusus untuk database relational. (SELECT, PROJECT dan JOIN) Istilah Relasi, dalam bahasan ini dipergunakan untuk penamaan tabel beserta datanya baik yang murni maupun yang sudah dilakukan modifikasi dengan operasi-operasi aljabar relasional. Contoh data base.

nmBlk dan (PEGAWAI) nmdepan. ditulis nama atribut baru dalam huruf besar TEMP ß σ dep_nomor=5 nmDepan. Contoh.Operasi Project (Projection) Untuk memilih attribut (kolom) tertentu dari himpunan / subhimpunan dan membuang yang lain Notasi π <daftar attribut> (<nama relasi>) Jika <daftar attribut> tidak menyertakan primary key. gaji (PEG_DEP5) (kemudian setelah itu. Duplikasi ini akan dihilangkan sehingga hanya sekali yang muncul. NAMABELAKANG. nmblk. gaji (σ dep_nomor=5(PEGAWAI)) Mengambil informasi nama depan. nmBlk. nmBlk. nama belakang dan gaji dari pegawai-pegawai yang bekerja di departemen nomor 5 bisa ditulis dalam bentuk: PEG_DEP5 ß σ dep_nomor=5 (PEGAWAI) (tabel pegawai dipilah dulu hanya dengan mengambil yg memenuhi dep_nomor=5 dan disimpan dalam relasi dengan nama PEG_DEP5) HASIL ß π gaji) Perubahan Nama Atribut Untuk mengubah nama attribut dari sebuah relasi yang merupakan hasil dari operasi aljabar relasional. gaji RBARU (NAMADEPAN. maka dimungkinkan akan terjadi duplikasi. Gaji (Pegawai) Urutan Operasi Sebuah operasi bisa dituliskan dalam bentuk beberapa ekspresi aljabar relasional dengan mengelompokkan untuk tiap-tiap operasi dan memberi nama π nmDepan. GAJI) ß π (TEMP) . Untuk memilih atribut JenisKel dan Gaji dari tabel Pegawai: π JenisKel. relasi PEG_DEP5 dipilah hanya diambil kolom-kolom nmDepan.

search_condition. misalnya ORDER BY terletak di setelah GROUP BY. table_source. FROM. jika keduanya disertakan. ORDER BY tidak boleh ditulis mendahului GROUP BY Data base select_list . HAVING DAN ORDER BY à kata kunci (keyword) yang harus disertakan jika kita membutuhkannya di dalam pengolahan data  select_list. GROUP BY. INTO. tergantung dari kebutuhan  Urutan syntax untuk kata kunci (keyword). order_expression à isian yang bisa kita ubah berdasarkan kebutuhan kita  Kurung kotak [ ] à bagian tersebut boleh disertakan atau tidak.BAB VI Strctured Query Language  Berikut adalah syntax dari SQL-SELECT SELECT [DISTINCT] select_list FROM table_source [WHERE search_condition] [GROUP BY group_by_expression] [HAVING search_condition] [ORDER BY order_expression [ASC | DESC] ]  SELECT. group_by_expression. new_table_. menunjukkan bahwa keyword harus disusun berdasarkan urutan tersebut. WHERE.

yakni menampilkan nama dalam bentuk huruf kapital: SELECT UPPER(nama). yang mana ekspresi tersebut bisa berupa: • field tabel (biasanya) • konstanta • operasi dan fungsi • Antara kolom satu dengan lainnya dipisahkan dengan tanda koma (. judul kolom akan kosong.  menampilkan nama dan alamat Anggota SELECT nama. nama. untuk menampilkan seluruh field dari tabel Anggota. digunakan *.adalah kolom-kolom yang didefinisikan sebagai hasil dari proses query a. alamat FROM Anggota c. alamat FROM Anggota  Yang terdapat nilai konstanta. Menampilkan kolom-kolom tertentu Kolom-kolom yang dipilih berupa ekspresi. Misalnya. Mengubah judul kolom Kolom-kolom yang dipilih bisa diberi judul tertentu sesuai dengan keinginan kita. Contoh.). Selain itu. Menampilkan keseluruhan field Untuk menampilkan keseluruhan field dari tabel-tabel yang didefinisikan. menampilkan nilai 1 untuk setiap baris pada kolom pertama dari query sebelumnya SELECT 1. Jika merupakan field tabel. alamat FROM Anggota  Yang terdapat ekspresi fungsi dari query sebelumnya. perintahnya: SELECT * FROM Anggota b. maka judul kolom adalah nama field tersebut.  Ada 2 cara untuk mengubah judul kolom:  Menggunakan syntax: ekspresi AS judul_kolom Ini merupakan cara standar yang dipakai pada banyak sistem database. jika tidak diberi nama.  Menggunakan syntax: judul_kolom = ekspresi .

Anggota.nama).alamat FROM Anggota DISTINCT Digunakan apabila kita ingin menghilangkan duplikasi dari hasil query (hasil query yang sama ditampilkan sekali) SELECT [DISTINCT] select_list FROM table_source Contoh . alamat FROM Anggota Menyertakan nama tabel atau aliasJika kita memasukkan sebuah field tabel di dalam sebuah ekspresi kolom.Contoh Beberapa query pada point b sebelumnya. Sebab bisa saja terjadi dua buah tabel memiliki nama field yang sama Contoh untuk sebuah contoh query sebelumnya.nama_field Untuk apa?  Untuk mempermudah analisa pembuatan query  Untuk membedakan kepemilikan sebuah field di dalam query yang menyertakan lebih dari satu tabel. alamat AS AlamatAnggota FROM  menampilkan nama dalam bentuk huruf kapital dg judul kolom NamaKapital: SELECT NamaKapital=UPPER(nama). diberi judul kolom sbb:  menampilkan nama dan alamat Anggota SELECT Anggota nama AS NamaAnggota. jika disertakan nama tabel adalah sbb: SELECT NamaKapital=UPPER(Anggota. kita bisa menyertakan nama tabel Sebelum nama fieldnya yang dipisah dengan tanda titik:nama_tabel.

dalam penulisan dipisah dengan koma.untuk menampilkan nomor-nomor anggota yang sedang meminjam atau belum mengembalikan: SELECT NoAnggota FROM Peminjaman NoAnggota ID001 ID002 ID001 ID003 padahasilquerytersebutterdapatNoAnggotayangditampilkanlebihdarisekali. .querynyaadalah sbb: SELECT DISTINCT NoAnggota FROM Peminjaman NoAnggota ID001 ID002 ID003 TABLE_SOURCE  Adalah sumber data dari query  Bisa merupakan tabel ataupun view  Tabel yang disertakan bisa lebih dari satu. Jika lebih dari satu.Untuk meniadakanduplikasi.

Merelasikan/menghubungkan query yang disusun lebih dari satu tabel. WHERE  Klausa ini biasanya digunakan untuk: • • Filter (penyaringan) data. Oleh karena itu. ang.alamat FROM Anggota ang Kasus diatas diperlukan dua buah alias untuk sebuah tabel yang sama. maka bisa ditambahkan dengan AND atau OR (sesuai dengan kebutuhan). karena untuk proses tersebut. Query untuk mencari Anggota yang tanggal lahirnya sama: SELECT NamaKapital=UPPER(ang.nama). yakni:  operasi pembandingan  operasi pendekatan pola  operasi pembandingan dengan sekumpulan nilai . tabel anggota perlu dianggap sebagai 2 sumber data yang berbeda dengan memberi nama alias ang1 dan ang2 yang kemudian dibandingkan mana saja yang memiliki field tanggal lahir yang sama.  Penerapannya adalah dengan memasukkan suatu ekspresi kondisi setelah klausa WHERE: WHERE <kondisi>  Jika <kondisi> lebih dari satu. diperlukan pembandingan terhadap tabel yang sama. WHERE <kondisi> UNTUK FILTER Where untuk filter atau pencarian data di dalam SQL Server bisa dalam beberapa bentuk ekspresi.Pemberian nama lain (alias)  Sebuah tabel bisa diberi nama lain (alias). yang mana hal ini digunakan untuk memperpendek nama atau untuk membedakan field jika sebuah query mengambil tabel yang sama lebih dari satu  Nama alias ditulis setelah nama tabel yang bersangkutan Alias yang dipergunakan untuk Query dengan tabel sumber data yang sama.

hanya untuk pembandingan nilai bertipe string  Digunakan untuk mengenali string-string yang memiliki pola tertentu. yakni sebuah nilai yang belum berisi nilai.Operasi Pembandingan Operasi: = < <= >= > <> is  Khusus untuk pembanding IS. nilai yang diisikan adalah null.  menampilkan anggota yang berjenis kelamin laki-laki:  SELECT * FROM Anggota WHERE JK="L"  menampilkan Anggota yang tahun kelahirannya lebih dari 1985 SELECT * FROM Anggota WHERE year(TglLahir) > 1985  menampilkan idKoleksi yang belum dikembalikan (TglKembali belum terisi) SELECT * FROM Peminjaman WHERE TglKembali IS NULL Operasi LIKE (pendekatan pola)  Operasi ini. digunakan simbol-simbol berikut: • • simbol % artinya mewakili 0 s/d tak terhingga dari sembarang karakter simbol _ artinya mewakili 1 sembarang karate Control.  menampilkan anggota yang nama depannya "Budi": SELECT * FROM anggota WHERE Nama LIKE "Budi%" .  Di dalam operasi ini.  nilai null tidak sama dengan nilai 0 pada tipe numerik ataupun string kosong pada tipe string Contoh.

 menampilkan Anggota yang huruf ketiga namanya adalah “d”: SELECT * FROM anggota WHERE Nama LIKE "__d%"  menampilkan koleksi yang judulnya terdapat kata “pemrograman”: SELECT * FROM koleksi WHERE Judul LIKE "%pemrograman%" operasi IN atau NOT IN  Ekspresi ini digunakan untuk membandingkan dengan sebuah kumpulan nilai • • • Kumpulan nilai bisa berupa: nilai-nilai yang diisikan query tunggal query yg hasilnya hanya terdapat sebuah kolom saja  Nilai-nilai yang diisikan.  menampilkan anggota yang belum pernah meminjam buku sama sekali: SELECT * FROM anggota WHERE id NOT IN (SELECT DISTINCT idAnggota FROM Peminjaman)  menampilkan koleksi yang sedang dipinjam: SELECT * FROM koleksi WHERE idKoleksi IN (SELECT idKoleksi . 2)  menampilkan anggota yang selain mahasiswa atau dosen (idJenisAnggota selain 2 dan 3) SELECT * FROM anggota WHERE IDJenisAnggota NOT IN (1. Contoh. 3)  Query tunggal. yakni nilai-nilai yang digunakan sebagai pembanding diambil dari sebuah query tunggal yang hasilnya hanya satu kolom saja.  menampilkan koleksi yang jenisnya buku dan majalah (idTipeKoleksi=1 atau 2): SELECT * FROM koleksi WHERE idTipeKoleksi IN (1. maksudnya kita sendiri yang mengisikan nilai-nilai tersebut di dalam query kita. Contoh.

Contoh. di tabel koleksi tidak terdapat field nama pengarang. peminjaman pj. berikan nama tabel diikuti sebuah titik (. kl.idkoleksi . Oleh sebab itu. judul dan nama pengarang idKoleksi dan judul bisa diambil dari tabel koleksi. Tanpa relasi ini. supaya bisa menampilkan informasi yang akurat.harga FROM koleksi kl.)  Misal untuk query sebelumnya bisa juga ditulis sbb: SELECT Koleksi. Tetapi. Koleksi.judul. hasil query akan menampilkan seluruh pasangan baris data Koleksi di tiap baris Pengarang. Judul. SELECT idKoleksi. diurutkan berdasarkan judul koleksi: SELECT kl.Nama FROM Koleksi. Pengarang WHERE idPengarang=id idPengarang=id adalah untuk relasi antara tabel Koleksi dan tabel Pengarang. perlu direlasikan antara tabel Koleksi dg tabel Pengarang. Nama FROM Koleksi.idKoleksi. Yang ada hanya idPengarang. yg tentu saja bukan informasi yang benar. kl. anggota ag WHERE pj.  menampilkan daftar idKoleksi.  menampilkan idKoleksi.idPengarang=Pengarang.idkoleksi=kl. judul koleksi dan harganya yang dipinjam dg nomor anggota: 551.id Contoh. Pengarang WHERE Koleksi.  Pada dasarnya mirip dengan filter.  Jika ada nama field yang sama dari tabel yang disertakan. tapi fungsinya digunakan untuk merelasikan antara tabel-tabel yang diambil informasinya.idKoleksi. maka sebelum nama field.Judul.FROM Peminjaman WHERE TglKembali is NULL) WHERE <KONDISI> UNTUK RELASI  Jika kita mengambil informasi dari lebih dari sebuah tabel. maka kita perlu menambahkan kondisi untuk relasi antara kedua tabel tersebut. Pengarang.

AVG(kolom) à mendapatkan nilai rata-rata Contoh.  untuk menampilkan jumlah seluruh anggota:  SELECT COUNT(*) FROM Anggota  untuk menampilkan tahun kelahiran anggota tertua: SELECT MIN(year(TglLahir)) FROM anggota GROUP BY <kolom1> [.  Proses tersebut akan mengolah nilai sebuah field atau lebih mulai baris pertama sampai seluruh baris  Fungsi-fungsi tersebut yakni: .  untuk menampilkan jumlah anggota perjenis kelamin:  SELECT JK. COUNT(*) FROM anggota GROUP BY JK .judul FUNGSI-FUNGSI AGREGATE  Yaitu fungsi-fungsi yang hasilnya diambil dari proses tiap baris pada tabel.idAnggota = 551 ORDER BY kl. kolom-kolom yang disertakan setelah GROUP BY harus sama dengan kolom-kolom yang dipilih pada setelah klausa SELECT yg selain fungsi AGGREGATE Contoh.idAnggota=ag.SUM(kolom) à mendapatkan hasil penjumlahan kolom .<kolom2>]  Digunakan untuk pengelompokan dari fungsi-fungsi aggregate  Yang penting untuk diperhatikan.MAX(kolom) à mendapatkan nilai tertinggi .MIN(kolom) à mendapatkan nilai terendah .AND pj.id AND ag.COUNT(*) à mendapatkan jumlah baris .

tetapi hanya yang jumlahnya >10 saja yang ditampilkan. SELECT idPenerbit.  untuk menampilkan jumlah buku per kode penerbit. AVG(harga) FROM koleksi GROUP BY idPenerbit HAVING <kondisiAgregate>  Jika untuk filter query biasa kita menggunakan klause where. untuk menampilkan rata-rata harga koleksi per kode penerbit SELECT idPenerbit. maka klausa having digunakan untuk filter fungsi-fungsi aggregate. COUNT(*) FROM koleksi GROUP BY idPenerbit HAVING COUNT(*)>10 SQL JOIN Contoh Data: Tabel Mahasiswa Tabel Dosen: . Conto.

 SELECT * FROM Mhs CROSS JOIN Dosen INNER JOIN  Hasil query dengan inner join hanya menampilkan baris-baris yang terdapat relasi antara dua buah tabel.CROSS JOIN  Hasil query dengan cross join merupakan hasil gabungan tiap baris pada masing-masing tabel.  SELECT * FROM Mhs .

tetapi menampilkan nilai null untuk setiap kolom yang tidak terdapat relasinya pada tabel sisi kiri SELECT * FROM Mhs RIGHT OUTER JOIN Dosen on NIPWali=NIP  hasilnya sama halnya jika tanpa menyertakan klausa OUTER: SELECT * FROM Mhs RIGHT JOIN Dosen on NIPWali=NIP . LEFT OUTER JOIN Dosen on NIPWali=NIP hasilnya sama halnya jika tanpa menyertakan klausa OUTER: SELECT * FROM Mhs LEFT JOIN Dosen on NIPWali=NIP  Menampilkan seluruh baris pada tabel yang disebut pada bagian kanan.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->