Upload
buikien
View
495
Download
93
Embed Size (px)
Citation preview
BASIS DATA RELASIONAL
I. Pengertian Basis Data Relasional
Tabel dan Keterhubungannya ;
Terminologi dari mode data relasional diambil berdasarkan konsep matematika yaitu relasi, dimana secara fisik di gambarkan sebagai suatu tabel.
MAHASISWANPM Nama Alamat Kota Tgl_lahir JK TELP
50499101 Andini Putri Jl. PD 2 No 2 Depok 10-09-1981 P 021770545250499123 Putro
KusumoJl. Kemun 3 Bogor 15-05-1981 L 0251251532
50499001 Renjani Jl.Sawo 4 Jakarta 02-02-1980 P 021875874550499025 Komang Jl.Mentawai 1 Jakarta 30-10-1981 L 021788545850499451 M.Sufi Jl. PK 1 No.6 Depok 25-11-1980 L 0217775875
MKULKd_mk Mt_kuliah SKS
KD045201 Matematika 1 2KU000202 P.Kewiraan 2KK045326 Sistem Penunjang
Keputusan3
KK045337 Sistem Terdistribusi 3KK045305 Teori Bahasa dan
Automata3
KK045417 Konsep Sistem Informasi 4KK045210 Pengantar Basis Data 2KK045318 Sistem Basis Data 3
KRSNPM Kd_mk Mt_kuliah SKS Kelas Semeste
r50499025 KD04520
1Matematika 1 2 1IA01 1
50499025 KU000202
P.Kewiraan 2 2IA10 3
50499101 KK045326 Sistem Penunjang Keputusan
3 4IA05 7
50499101 KK045337 Sistem Terdistribusi 3 4IA05 750499101 KK045305 Teori Bahasa dan Automata 3 4IA05 750499123 KK045417 Konsep Sistem Informasi 4 1IA04 150499451 KK045210 Pengantar Basis Data 2 3IA11 550499451 KK045337 Sistem Terdistribusi 3 4IA01 750499451 KK045305 Teori Bahasa dan Automata 3 4IA01 750499451 KK045417 Konsep Sistem Informasi 4 1IA01 1
DOSEN
Model Relasional / Irma RR Halaman 29
Kd_dosen
Nama Alamat JK TELP
09738 Kurniawan Jl. Kenanga 2 Depok L 021775747409536 Fristy Jl. Andalan 3 Jakarta P 021875652500058 Gunawarman Jl. Pasir Putih 1 Jakarta L 021855578509825 Lundi Jl. Gagak 6 Bogor L 025122545209689 Qiqan Jl. PD 3 Depok P 021770545009143 Windi Jl. Salak 45 Depok P 021777587500198 Vien Jl. Merapi 12 Jakarta P 0218565203
NilaiNPM Kd_mk Mt_kuliah Mi
dUas
Nilai Kd_dosen
50499025 KD045201
Matematika 1 30 90 C 09738
50499025 KU000202
P.Kewiraan 50 80 C 09536
50499101 KK045326 Sistem Penunjang Keputusan
56 70 C 00058
50499101 KK045337 Sistem Terdistribusi 96 75 A 0982550499101 KK045305 Teori Bahasa dan
Automata56 10
0B 09689
50499123 KK045417 Konsep Sistem Informasi 87 89 A 0914350499451 KK045210 Pengantar Basis Data 84 89 A 0019850499451 KK045337 Sistem Terdistribusi 85 90 A 0982550499451 KK045305 Teori Bahasa dan
Automata60 90 B 09689
50499451 KK045417 Konsep Sistem Informasi 72 90 A 09143
Struktur data relasionalnya :1. Relasi : Sebuah tabel yang terdiri dari beberapa kolom dan
beberapa baris.RDBMS membutuhkan database yang disusun oleh pengguna sebagai suatu tabel. Dimana hanya struktur logikal dari database .
2. Atribut : Kolom pada sebuah relasi ( Field )Pada model relasional . relasi digunakan untuk menyimpan informasi mengenai obyek untuk mewakili dari database yang digambarkan tabel dua dimensi, dimana baris dari tabel di isi dengan record data secara keseluruhan dan kolom nya berisi obyek dari database yang disebut juga atribut.
3. Tupel : Baris pada sebuah relasi ( Record )
4. Domain : Kumpulan nilai yang valid untuk satu atau lebih atributSetiap atribut di dalam suatu relasi di definisikan oleh suatu domain. Domain mungkin berbeda di setiap atribut ; satu, dua ataupun tiga atribut dapat di definisikan di dalam satu domain.
Model Relasional / Irma RR Halaman 30
Domain di dalam suatu relasi adalah penting sehingga pada saat pengguna mendefinisikan di pusat arti dan nilai atribut di suatu sumber dapat di raih. Informasi yang lebih banyak dapat di ambil dan pengeksekusian dari operasional relasi dan kesalahan dalam pengoperasian dapat di atasi.
5. Derajat : Jumlah atribut key dalam sebuah relasiPada gambar di bawah, setiap baris di dalam suatu tabel terdapat enam atribut dengan 2 atribut key . Suatu relasi hanya dengan satu atribut key hanya mempunyai satu derajat yang disebut dengan unary, Suatu relasi yang berhubungan dengan dua atribut key hanya mempunyai dua derajat yang disebut dengan binary, Suatu relasi yang berhubungan dengan tiga atribut mempunyai tiga derajat yang disebut dengan ternary.
6. Cardinality : Jumlah tupel dalam sebuah relasi
AttributKRS
NPM Kd_mk Mt_kuliah SKS Kelas Semester
50499025 KD045201
Matematika 1 2 1IA01 1
50499025 KU000202
P.Kewiraan 2 2IA10 3
50499101 KK045326 Sistem Penunjang Keputusan
3 4IA05 7
50499101 KK045337 Sistem Terdistribusi 3 4IA05 750499101 KK045305 Teori Bahasa dan Automata 3 4IA05 750499123 KK045417 Konsep Sistem Informasi 4 1IA04 150499451 KK045210 Pengantar Basis Data 2 3IA11 550499451 KK045337 Sistem Terdistribusi 3 4IA01 750499451 KK045305 Teori Bahasa dan Automata 3 4IA01 750499451 KK045417 Konsep Sistem Informasi 4 1IA01 1
DegreePrimary Key
Keterangan : Tabel dan Keterhubungannya Tabel KRS terdiri dari NPM dan Kd_mk sebagai kunci elemen data,
bersama-sama dengan 4 field lainnya yaitu: mt_kuliah, SKS, Kelas dan semester membentuk entitas KRS.
Tabel KRS merupakan tabel yang dihasilkan dari relasi antara tabel Mahasiswa dan tabel MKUL membentuk tabel KRS atau entitas KRS
Kedua tabel tsb berelasi membentuk satu basis data model relasional.
II. Keuntungan Basis Data Relasional :1. Bentuknya Sederhana
Model Relasional / Irma RR Halaman 31
2. Mudah melakukan berbagai operasi data
III. Relasional Basis Data
Relation schema : Sebuah relasi yang diikuti oleh himpunan atribut dan pasangan nama domain dan merupakan kumpulan relasi–relasi yang ternormalisasil Relational Keys
Superkey : satu atribut / kumpulan atribut yang secara unik mengidentifikasi sebuah tupel di dalam relasi
Candidate key : atribut di dalam relasi yang biasanya mempunyai nilai
unik.(seperti : NPM, NIP, NAMA,PART_NO, dsb.).Primary key : candidate key yang dipilih untuk
mengidentifikasikan tupel secara unik dalam relasi
Alternate Key : candidat key yang tidak dipilih sebagai primary key.
Foreign Key : atribut dengan domain yang sama yang menjadi kunci
utama pada sebuah relasi tetapi pada relasi lain atribut
tsb hanya sebagai atribut biasa.contoh :
KRSNPM Kd_mk Mt_kuliah SKS Kelas Semeste
r50499025 KD04520
1Matematika 1 2 1IA01 1
50499025 KU000202
P.Kewiraan 2 2IA10 3
50499101 KK045326 Sistem Penunjang Keputusan
3 4IA05 7
Sifat-Sifat Relasi
1. Tidak ada tuple yang ganda.2. Tuple-tuple tidak terurut.3. Atribut-atribut tidak terurut.4. Semua nilai atribut adalah atomik (artinya antara atribut yang
satu dengan yang lainnya tidak sama).
Tingkatan Dalam Relasi Relasi dari tingkat pertama disebut UNARY.
Sebuah relasi yang menghubungkan dengan entitas itu sendiri yang berpartisipasi dengan tugas yang berbeda.
Model Relasional / Irma RR Halaman 32
Super Key
Primary Key Alternate
Key
Candidate Key
Dosen Koordinir
Relasi dari tingkat kedua disebut BINARY.
Sebuah relasi yang terdiri dari dua buah entitas yang saling berhubunganContoh :
Relasi dari tingkat ketiga disebut TERNARY.Sebuah relasi yang menghubungkan tiga buah entitas
Relasi dari tingkat n disebut n-ary.Sebuah relasi yang menghubungkan lebih dari tiga buah entitas
IV. INTEGRITY / Kesatuan Data
Integrity di dalam istilah basis data berarti memeriksa keakuratan dan validasi data.
Batasan Kesatuan DataMemberikan suatu sarana yang memungkinkan pengubahan database oleh pemakai berwenang sehingga tidak akan menyebabkan data inkonsisten.
Batasan kesatuan data ini berisi aturan-aturan atau batasan-batasan untuk tujuan terlaksananya Kesatuan data.Dengan demikian batasan ini melindungi database dari kerusakan.
Aturan Kesatuan Data (pada basis data Relasional)
1. Aturan Null Nilai suatu atribut yang tidak diketahui atau tidak cocok untuk baris ( tuple ) tersebut atau dapat di katakan belum ada nilai yang masuk . Null tidak sama dengan nilai kosong (0) atau nilai spasi, tetapi null mewakili sebuah nilai yang belum terisi . Oleh karenanya null di berlakukan berbeda dengan nilai lainnya.
Model Relasional / Irma RR Halaman 33
Mahasiswa
Ambil MKUL
Dosen Ajar MKUL
Ruang
2. Aturan Entity (Rule 1)Tidak ada satu komponen dari primary key yang bernilai kosong (null). Latar belakang :- Semua entiti harus dapat dibedakan- Harus memiliki identifikasi unik- Primary Key merupakan identitas unik tsb- Suatu relasi dapat mengandung field referensi terhadap relasi lain.
3. Aturan Referensi (Rule 2) Suatu domain dapat dipakai sebagai kunci primer bila merupakan
atribut tunggal pada domain yang bersangkutan ( Jika sebuah kunci tamu muncul di suatu relasi, maka kunci tamu tersebut harus sesuai dengan entitas dimana kunci tersebut berada atau di biarkan bernilai null pada relasi tersebut).
Batasan-batasan lainnya.Digunakan untuk tujuan proteksi dan integritas data, misalnya untuk validasi data masuk yang salah.
V. Bahasa Pada Basis Data Relasional
Menggunakan Bahasa query pernyataan yang diajukan untuk mengambil informasi.Terbagi dua :1. Bahasa Formal
Bahasa query yang diterjemahkan dengan menggunakan simbol matematis
Contoh :Aljabar relasionalKalkulus relasional
l Aljabar RelasionalBahasa query prosedural ; pemakai menspesifikasikan data apa yang dibutuhkan dan bagaimana untuk mendapatkannya.
l Kalkulus Relasional Bahasa query non prosedural ; pemakai menspesifikasikan data apa yang dibutuhkan tanpa menspesifikasikan bagaimana untuk mendapatkannya.
Terbagi dua :1. Kalkulus relasional tupel2. Kalkulus relasional domain
2. Bahasa Komersial
Model Relasional / Irma RR Halaman 34
Bahasa query yang dirancang sendiri oleh programmer menjadi suatu program aplikasi agar pemakai lebih mudah menggunakannya ( user friendly ).Contoh :
QUEL ; berbasis pada bahasa kalkulus relasional QBE ; berbasis pada bahasa kalkulus relasional SQL ; berbasis pada bahasa kalkulus relasional dan aljabar relasional
BAHASA QUERY FORMAL
V.1 ALJABAR RELASIONAL
OPERASI – OPERASI DASAR SELECT PROJECT
Model Relasional / Irma RR Halaman 35
Bahasa Query Formal
Prosedur
Aljabar Relasional
Non Prosedur
Kalkulus Relasional
Bahasa Query Komersial
SQL
TUPEL (QUEL) DOMAIN
( QBE )
CARTESIAN PRODUCT UNION SET DIFFERENCE
OPERASI – OPERASI TAMBAHAN NATURAL JOIN THETA JOIN INTERSECTION DIVISION
OPERASI – OPERASI DASAR
1. SELECT/ RESTRICT (s)Pada operasi ini hanya dapat digunakan untuk relasi tunggal R dan ekstraksi (pengambilan) tuple dari suatu relasi hanya yang sesuai dengan kondisi yang diinginkan. Dalam operasi select akan melibatkan :
a. Operand : konstanta atau komponen bilanganb. Operator pembanding aritmetik : < , = , > , £ , ¹ , ³c. Operator logikal : and (Ù) , or (Ú) , not (~)
s R adalah semua tuple yang diekstrak dari relasi R yang memenuhi formula F.
IlustrasiR
MAHASISWANPM Nama Alamat Kota Tgl_lahir JK TELP
50499101 Andini Putri Jl. PD 2 No 2 Depok 10-09-1981 P 021770545250499123 Putro
KusumoJl. Kemun 3 Bogor 15-05-1981 L 0251251532
50499001 Renjani Jl.Sawo 4 Jakarta 02-02-1980 P 021875874550499025 Komang Jl.Mentawai 1 Jakarta 30-10-1981 L 0217885458750499451 M.Sufi Jl. PK 1 No.6 Depok 25-11-1980 L 0217775875
MKULKd_mk Mt_kuliah SKS
KD045201 Matematika 1 2KU000202 P.Kewiraan 2
Model Relasional / Irma RR Halaman 36
Tupel – tupel hasil operasi SELECT
KK045326 Sistem Penunjang Keputusan
3
KK045337 Sistem Terdistribusi 3KK045305 Teori Bahasa dan
Automata3
KK045417 Konsep Sistem Informasi 4KK045210 Pengantar Basis Data 2KK045318 Sistem Basis Data 3
KRSNPM Kd_mk Mt_kuliah SKS Kelas Semeste
r50499025 KD04520
1Matematika 1 2 1IA01 1
50499025 KU000202
P.Kewiraan 2 2IA10 3
50499101 KK045326 Sistem Penunjang Keputusan
3 4IA05 7
50499101 KK045337 Sistem Terdistribusi 3 4IA05 750499101 KK045305 Teori Bahasa dan Automata 3 4IA05 750499123 KK045417 Konsep Sistem Informasi 4 1IA04 150499451 KK045210 Pengantar Basis Data 2 3IA11 550499451 KK045337 Sistem Terdistribusi 3 4IA01 750499451 KK045305 Teori Bahasa dan Automata 3 4IA01 750499451 KK045417 Konsep Sistem Informasi 4 1IA01 1
Contoh :Skema relasi Mahasiswa (NPM,Nama,Alamat,JK,Telp)1. Di cari informasi mengenai mahasiswa yang mempunyai
NPM=’50499123’s NPM=’50499123’ (Mahasiswa)
2. Di cari informasi mengenai Mahasiswa yang tinggal di daerah=’Bogor’
s Kota=’Bogor’ (Mahasiswa)
2. PROJECT ()
Pada operasi ini hanya dapat digunakan untuk relasi tunggal R dan ekstraksi (pengambilan) atribut – atribut dari suatu relasi hanya yang sesuai dengan kondisi yang diinginkan dan menghapus data yang ganda.
Ilustrasi
Model Relasional / Irma RR Halaman 37
Tupel – tupel hasil operasi PROJECT
Contoh :1. Di cari informasi mengenai NPM,Nama,Alamat,Kota dan Telp
NPM,Alamat,Kota,Telp (Mahasiswa)
2.Di cari informasi mengenai NPM dan Kelas yang mengambil mata kuliah
Sistem Penunjang Keputusan NPM,Kelas (s mt_kuliah = ‘Sistem Penunjang Keputusan (KRS) )
3. CARTESIAN PRODUCT (X)Membentuk suatu relasi dari dua relasi yang terdiri dari kombinasi tupel-tupel yang mungkin.Simbol : X
Ilustrasi R S RXS
a 1 a 1b 2 a 2
3 a 3b 1b 2b 3
Contoh :Skema relasi Mahasiswa (NPM,Nama,Alamat,Kota,Tgl_lahir,JK)
Skema relasi MKUL(Kd_mk,Mt_kuliah,SKS,Semester)Kombinasikan data dari relasi Mahasiswa dan KRSNPM,Nama(Mahasiswa) X Kd_mk,Mt_kuliah(MKUL)
NPM Nama Kd_mk Mt_kuliah50499101 Andini Putri KD045201 Matematika 150499101 Andini Putri KU000202 P.Kewiraan50499001 Andini Putri KK045326 Sistem Penunjang
Keputusan50499101 Andini Putri KK045337 Sistem Terdistribusi50499101 Andini Putri KK045305 Teori Bahasa dan Automata50499001 Andini Putri KK045417 Konsep Sistem Informasi50499001 Andini Putri KK045210 Pengantar Basis Data50499123 Putro Kusumo KD045201 Matematika 150499123 Putro Kusumo KU000202 P.Kewiraan50499123 Putro Kusumo KK045326 Sistem Penunjang
Keputusan50499123 Putro Kusumo KK045337 Sistem Terdistribusi50499123 Putro Kusumo KK045305 Teori Bahasa dan Automata50499123 Putro Kusumo KK045417 Konsep Sistem Informasi50499123 Putro Kusumo KK045210 Pengantar Basis Data… … … …
Sampai data berjumlah 42 data (6 x 7)
Model Relasional / Irma RR Halaman 38
4. UNION ( U ) Membentuk suatu relasi yang terdiri dari tupel-tupel yang berada pada
salah satu relasi atau pada kedua relasi, dengan syarat : Ada relasi R dan S, maka jumlah atribut pada kedua relasi tersebut
harus sama Domain dari atribut ke i dari R harus sama dengan domain dari
atribut ke i dari S. Simbol :
Contoh query :Skema relasi KRS (NPM,Kd_mk,mt_kuliah,SKS,Kelas,Semester)
Skema relasi MKUL(kd_mk,mt_kuliah,SKS,Semester)
Tampilkan semua mata kuliah yang berada pada relasi KRS dan MKUL
Mt_kuliah(KRS) mt_kuliah(MKUL)
Mt_kuliahMatematika 1P.KewiraanSistem Penunjang KeputusanSistem TerdistribusiTeori Bahasa dan AutomataKonsep Sistem InformasiPengantar Basis DataSistem TerdistribusiTeori Bahasa dan AutomataKonsep Sistem InformasiMatematika 1P.KewiraanSistem Penunjang KeputusanSistem TerdistribusiTeori Bahasa dan AutomataKonsep Sistem InformasiPengantar Basis DataSistem Basis Data
5. Set Difference ( - )Membangun suatu relasi yang terdiri atas semua tuple yang ada pada relasi pertama dan tidak berada pada relasi keduanya atau tidak pada keduannya.Ditulis R - S.
Model Relasional / Irma RR Halaman 39
Contoh query :Skema relasi KRS (NPM,Kd_mk,mt_kuliah,SKS,Kelas,Semester)
Skema relasi MKUL(kd_mk,mt_kuliah,SKS,Semester) Dicari semua mt_kuliah dimana mt_kuliah tersebut ada pada MKUL
tetapi tidak ada pada KRS mt_kuliah(MKUL) - mt_kuliah(KRS)
Mt_kuliahSistem Basis Data
OPERASI – OPERASI TAMBAHAN
JOIN Membangun suatu relasi dari dua relasi yang terdiri dari semua kemungkinan kombinasi tuple dari masing-masing dan setiap pasangan kombinasi tuple memenuhi kondisi yang ditentukan.
Jenis-jenis join adalah - Theta join- Equi-join- Natural join- Outer join- Semi join
DOSENKd_dose
nNama Alamat JK TELP
09738 Kurniawan Jl. Kenanga 2 Depok L 021775747409536 Fristy Jl. Andalan 3 Jakarta P 021875652500058 Gunawarman Jl. Pasir Putih 1 Jakarta L 021855578509825 Lundi Jl. Gagak 6 Bogor L 025122545209689 Qiqan Jl. PD 3 Depok P 021770545209143 Windi Jl. Salak 45 Depok P 021777587500198 Vien Jl. Merapi 12 Jakarta P 0218565203
NilaiNPM Kd_mk Mt_kuliah Mi Ua Nilai Kd_dose
Model Relasional / Irma RR Halaman 40
d s n50499025 KD04520
1Matematika 1 30 90 C 09738
50499025 KU000202
P.Kewiraan 50 80 C 09536
50499101 KK045326 Sistem Penunjang Keputusan
56 70 C 00058
50499101 KK045337 Sistem Terdistribusi 96 75 A 0982550499101 KK045305 Teori Bahasa dan
Automata56 10
0B 09689
50499123 KK045417 Konsep Sistem Informasi 87 89 A 0914350499451 KK045210 Pengantar Basis Data 84 89 A 0019850499451 KK045337 Sistem Terdistribusi 85 90 A 0982550499451 KK045305 Teori Bahasa dan
Automata60 90 B 09689
50499451 KK045417 Konsep Sistem Informasi 72 90 A 09143
1. Natural Join ( ) Membentuk suatu relasi dari dua relasi yang terdiri dari kombinasi yang mungkin dari relasi – relasi ( kombinasi yang memungkinkan ini di dapat dari atribut ‘x’ yang sama, dimana hasilnya nanti hanya satu yang muncul).Simbol : Ilustrasi
R S R Sa1 b1 b1 c1 a1 b1 c1a2 b1 b2 c2 a2 b1 c1a3 b2 b3 c3 a3 b2 c2
Contoh query :Skema relasi Dosen (Kd_Dosen,Nama,Alamat,JK,Telp)Skema relasi Nilai (NPM,Kd_mk,mt_kuliah,Mid,Uas,Nilai,Kd_dosen)Tampilkan kd_dosen,nama dosen dan mt_kuliah .nilai dari semua dosen yang telah mengisi nilai untuk tabel nilai. kd_dosen,Nama (Dosen) Kd_dosen,Mt_kuliah,Nilai (Nilai)
Kd_dosen.Dosen
Nama Mt_kuliah Nilai
09738 Kurniawan Matematika 1 C09536 Fristy P.Kewiraan C00058 Gunawarm
anSistem Penunjang Keputusan
C
09825 Lundi Sistem Terdistribusi A09689 Qiqan Teori Bahasa dan
AutomataB
09689 Qiqan Teori Bahasa dan Automata
B
00198 Vien Pengantar Basis Data A09825 Lundi Sistem Terdistribusi A09143 Windi Konsep Sistem Informasi A09143 Windi Konsep Sistem Informasi A
Model Relasional / Irma RR Halaman 41
2. Theta Join Membentuk suatu relasi yang terdiri dari tupel-tupel yang sesuai dengan kondisi yang telah ditentukan dari perintah cartesian product ( kondisi nya menggunakan perintah Selection )Simbol : F atau q
q dimana q adalah operator pembanding (<, <=, >, >=, =, ~=)
R F S = s F (R x S)
Ilustrasi : R X S
R S B < DA B C D E A B C D E1 2 3 4 6 1 2 3 4 64 5 6 7 8 1 2 3 7 87 8 9 4 5 6 7 8
Contoh query : Skema relasi Dosen (Kd_Dosen,Nama,Alamat,JK,Telp)Skema relasi Nilai (NPM,Kd_mk,mt_kuliah,Mid,Uas,Nilai,Kd_dosen)Jika perintah ini di batasi dengan Kd_dosen pada file Dosen = Kd_dosen yang ada pada file Nilais Dosen.Kd_dosen=Nilai.Kd_dosen Ù Dosen.nama=’Windi’ (NPM,Mt_kuliah,Nilai,Kd_dosen(Nilai) X Kd_dosen,nama(Dosen) )
NPM Mt_kuliah Nilai Kd_dosen.Nilai
Kd_dosen.Dosen
Nama
50499123 Konsep Sistem Informasi A 09143 09143 Windi50499451 Konsep Sistem Informasi A 09143 09143 Windi
3. IntersectionMembentuk suatu relasi yangterdiri atas tupel-tupel yang sama dari dua relasi.Simbol : Ilustrasi : R S R S
Contoh query :Skema relasi KRS (NPM,Kd_mk,mt_kuliah,SKS,Kelas,Semester)Skema relasi Mahasiswa (NPM,Nama,Alamat,Kota,Tgl_lahir,JK)
Model Relasional / Irma RR Halaman 42
Cari NPM yang telah mengisi KRS NPM (Mahasiswa) NPM(KRS)
4. DivisionUntuk mendapatkan nilai yang ada pada salah satu atribut dari relasi pembilang yang nilai atribut lainnya sama dengan nilai atribut relasi penyebut.
Simbol : Ilustrasi : R S R : Sa b c d c d a ba b e f e f e db c e fe d c de d e fa b d e
Contoh query :Skema relasi KRS (NPM,Kd_mk,mt_kuliah,SKS,Kelas,Semester)Skema relasi Mahasiswa (NPM,Nama,Alamat,Kota,Tgl_lahir,JK)
Cari mata kuliah yang diambil oleh semua mahasiswa yang tinggal di Jakarta
( Kd_mk,NPM(KRS) ) : NPM(sKota=Jakarta(Mahasiswa) )
( Kd_mk,NPM(KRS) ) : NPM(Kota=Jakarta(Mahasiswa) ) NPM Kd_mk
50499025 KD045201
50499001
50499025 KU000202
50499025
50499101 KK04532650499101 KK04533750499101 KK04530550499123 KK04541750499451 KK04521050499451 KK04533750499451 KK04530550499451 KK045417
Hasilnya :
NPM Kd_mk50499025 KD04520
150499025 KU00020
2
Model Relasional / Irma RR Halaman 43
V.2 KALKULUS RELASIONAL
Pengambilan suatu data pada aljabar relasional selalu di spesifikasikan secara eksplisit dan juga strategi untuk mengevaluasikan queri. Sedangkan pada kalkulus relasional tidak ada penjabaran bagaimana mengevaluasi queri, hanya menspesifikasikan apa yang harus ditampilkan bukan bagaimana menampilkan.
Kalkulus relasional menggunakan simbol logik yang di sebut dengan Kalkulus predikat . Pada saat berelasi dengan database muncul dua bentuk dari kalkulus relasional yaitu tupel dan domain.
A. Kalkulus Relasional Berdasarkan Tupel
Dalam kalkulus relasional tupel digunakan variabel dari tupelnya.Variabel dari suatu tupel adalah daerah yang terdefinisi sebagai nama dari suatu relasi.
Menspesifikasikan daerah dari suatu varibel tupel M sebagai entitas Mahasiswa , ditulis ; Mahasiswa(M)Untuk menuliskan queri, “Cari semua tupel M dimana F(M) adalah benar”, { M | F(M)}
dimana F adalah sebuah formula atau predikat Bentuk – bentuk dari predikat :
1. S R S : Variabel , R : Relasi 2. S[x] q U[y] S & U : variabel tupelq : Operator aritmatik (<,>,=,³,£,¹ )x : atribut pada Sy : atribut pada U
3. S[x] q C C : Konstantaq : operator penghubung ( (and) , Ú (or))
Di dalam kalkulus relasional tupel ini terdapat beberapa variabel yaitu 1. ( there exist )
t (Q(t))ada sebuah tupel t di dalam relasi r dengan formula Q(t) adalah benar
Model Relasional / Irma RR Halaman 44
2. ( for all )t (Q(t))formula Q(t) adalah benar untuk semua tupel di dalam relasi rcontoh :1. Skema relasi Mahasiswa (NPM,Nama,Alamat,Kota,JK,Telp)Skema relasi MKUL (kd_mk,mt_kuliah,SKS,semester)Cari informasi mengenai Mahasiswa yang NPM=’50499101’Range of M is Mahasiswa{M|Mahasiswa(M) Ù M.NPM=’50499101’}atau{M|M Mahasiswa M[NPM]=’50499101’}atau{M| M.NPM=’50499101’}M.NPM berarti nilai dari atribut NPM untuk variabel tupel M. Menampilkan atribut yang telah ditentukan .
2.Dari skema relasi Dosen (nip,nama,alamat,Kota,JKL)Cari informasi nama - nama dosen yang tinggal di kota Depok{D.nama| D Dosen D[Kota]=”Depok”}Untuk contoh soal no 3- 5 lihat skema di bawah ini;Skema relasi Mahasiswa (npm,nama,alamat,kota,JKL)Skema relasi Dosen (nip,nama,alamat,kota,JKL)Skema relasi KRS(npm,kdmk,kelas)Skema relasi MKUL (kd_mk,mt_kuliah,sks,semester)Skema relasi Nilai (npm,kdmk,mid,final)
3.Cari semua mahasiswa yang mengambil mata kuliah”SIM”Range of M is MahasiswaRange of K is KRS{M|Mahasiswa(M) Ù (K) (KRS(K) Ù (M.npm = K.npm) Ù K.namamk = “SIM”)}atau {M|K(K.NPM=M.NPM Ù K.Mt_kuliah=’SIM’}4.Cari mahasiswa yang mempunyai nilai final diatas 70 untuk kode mata kuliah KK045210Range of M is MahasiswaRange of N is Nilai{M.npm,M.nama|Mahasiswa(M) Ù (N) (Nilai(N) Ù (M.npm = N.npm) Ù (N.nilai > 70) Ù N.kdmk=”KK045210”)}atau
Model Relasional / Irma RR Halaman 45
{M.NPM,M.Nama|N(N.NPM=M.NPM Ù N.Kd_mk=’KK045210’ Ù N.Nilai > 70 } 5.Cari dosen yang tidak tinggal di kota DepokRange of D is Dosen{D|Dosen(D) Ù (D) (D.kota ¹ “Depok”)}atau {D|~D(D.Kota=’Depok’)}atauD (D.kota ~ ‘Depok’)
B. Kalkulus Relasional Berdasarkan Domain
Ekspresi {<x1,x2,…, xn > | P <x1,x2,…, xm > } m>= n
Xi : variabel domainP : predikat terhadap x
Bentuk – bentuk dari predikat:1. R (x1,x2,…,xn) dimana R adalah relasi dan setiap x adalah
domain variabel2. x q y dimana x & y adalah variabel domain dan q adalah
operatornya3. x q C dimana x adalah domain, C adalh konstanta dan q
adalah operatornyaContoh:Cari data mengenai dosen yang mempunyai Kd_dosen=’09738’{<k,n,a,t,j> | <k,n,a,t,j> Dosen Ù n = ‘09738’cari namamk yang kodemk nya”KK045310”
{<n> | <n,d> MKUL Ù d=”KK045310”
V.3 QUEL
Merupakan bahasa queri untuk sistem basis data Ingres ( Interactive Graphics and Retrieval System) yang dikembangkan oleh Universitas California Berkeley. Struktur Dasar:1. Setiap variabel tuple di tulis dalam range yaitu :
range of t is r2. Kalimat retrieve memiliki fungsi sama dengan Select pada SQL3. Kalimat Where berisi predikat yang ditentukan4. Bentuk query QUEL :
Range of t1 is r1
Model Relasional / Irma RR Halaman 46
Range of t2 is r2:range of tm is rmretrieve(ti1.Aj1, ti2.Aj2, …, tim.Ajm)Where Pti adalah variabel tupelri adalah relasiAjm adalah atributP adalah predikat
5. Tidak dapat untuk melaksanakan operasi aljabar seperti intersection, union dan minus Perintah QUEL di kelompokan :1. DDL
CreateIndexDefine viewDestroyModify
2. DMLRetrieveReplaceDeleteAppend
6. Logik : AND, OR dan NOT7. Fungsi Statistik : COUNT, MAX, MIN, AVG, SUM8. Ekspresi Aritmatik : >, <, <>, >=, <=Contoh :Di ketahui skema tabel :CUSTOMER (Cust_Name,Street,Cust_city)BORROW(Branchname, Location, Cust_name, Amount)DEPOSIT ( Branch_name, Account_name, Cust_name, Balance)
1. Dapatkan semua nama customer yang memiliki tabungan pada cabang PerryrideRange of t is DepositRetrieve(t.cust_name)Where (t.branch_name=’Perryride’);
2. Queri di atas tidak dapat mengeliminasi data duplikat. Untuk mengatasi duplikat maka perintah querinya :Range of t is DepositRetrieve(t.cust_name)Where (t.branch_name=’Perryride’)
3. Dapatkan nama customer dan kota untuk semua kustomer yang memiliki pinjaman dari Bank Hermina
Model Relasional / Irma RR Halaman 47
Range of s is BorrowRange of t is DepositRetrieve(t.cust_name,t.cut_city)Where(t.branch_name=’Perryride’ and t.cust_name=s.cust_name);
4. Dapatkan semua customer yang memiliki pinjaman dan tabungan pada cabang perryrideRange of s is BorrowRange of t is DepositRetrieve unique(s.cust_name)Where(t.branch_name=’Perryride’ and t.cust_name=s.cust_name);
5. Dapatkan rata-rata balance untuk cabang perryride. Range of t is Deposit
Retrieve avg(t.balance) where t.Branch-=name’Perryride Where (t.branch_name=’Perryride’ and t.cust_name=s.cust_name);
6. Dapatkan account number yang memiliki balance diatas rata-rata balance.Range of t is depositRange of t1 is DepositRetrieve(t.account number)Retrieve(t.accountnumber) Where t.balance > avg u (.Balance);
7. Dapatkan account number yang memiliki balance diatas rata-rata balance untuk cabang Perryride:Range of t is depositRange of u is DepositRetrieve(t.accountnumber) Where t.balance > avg (u.Balance
where u.branchname = ‘Perryride”);
8. Hapus semua tupel pada relasi borrowRange of t is depositDelete t ;
9. Hapus customer yang bernama smith pada relasi borrowRange of t is borrowDelete t where t.Custname=’Amir”;
10. Tambahkan data Smith dengan belanja $1200 pada accountnumber9732 di cabang perryrideAppend to deposit ( Branchname=’Perryride’, Accountnumber=’9732’, Cust_name=’Smith”,balance=1200) ;
Model Relasional / Irma RR Halaman 48
11. Naikan semua balance sebesar 5 % pada relasi depositRange of t is depositReplace t(balance=1.05*t.balance);
V.4 QBE ( Query By Example )
QBE mempunyai beberapa kelebihan yang tidak dipunyai oleh bahasa-bahasa lain, antara lain pengguna dapat langsung mempergunakan editor layar khusus dan langsung membuat query di terminal tersebut. QBE dapat dipergunakan untuk mengerjakan banyak fungsi-fungsi seperti yang ada pada SQL, hanya ada perbedaan dalam tata bahasanya. QBE tidak mempergunakan pernyataan-pernyataan dalam bahasa Inggris, tetapi mempergunakan editor layar khusus dan langsung membuat query di terminal tersebut. Pengguna dapat menggunakan / memanggil beberapa tabel kosong di layar untuk diberi : nama relasi, atribut-atributnya serta instruksi-instruksi yang diinginkan. Untuk mendapatkan tuple-tuple yang akan ditayangkan di layar, semua instruksi diakhiri dengan titik. Pengoperasian-pengoperasian tersebut seperti PRINT, UPDATE, INSERT dan DELETE. Pada beberapa kasus pengguna membutuhkan 2 atau lebih tabel yang ditampilkan di layar. Untuk menghubungkan, caranya dengan memasukkan elemen ke dalam struktur tabel dan diawali dengan garis bawah (_) dan terdiri sampai dengan 18 karakter alphabet atau numeric. Dengan menggunakan operator-operator yang baik, pengguna dapat memformulasikan permintaan yang komplek.
Bagan umum tabel dari QBEnama relasi nama atribut
Intruksi tuple seperti yangdlm tuple disebutkan dalam query
Penggunaan QBE ini dapat diaplikasikan pada MS ACCESS query. Query dalam QBE dituliskan dengan menggunakan tabel skeleton
Model Relasional / Irma RR Halaman 49
yang menggambarkan skema relasi. User memiliki skeleton yang dibutuhkan untuk memberikan query dan mengisi skeleton dengan ‘example rows’.
Pendahuluan pada MS ACCESS queries.
Pada saat pengguna membuat atau membuka dengan menggunakan MS ACCESS . jendela database akan terlihat seperti gambar ( Table, Froms, Queries dan Reports).Untuk bertanya mengenai data , pengguna merancang suatu queri yang di tuliskan pada MS ACCESS data mana yang akan diambil. MS ACCESS mengumpulkan data yang akan diambil dalam dynaset. Dynaset adalah tabel view yang dinamik diambil dari satu tabel ataupun lebih dari satu tabel, di seleksi ataupun di atur seperti yang diinginkan pengguna dengan menggunakan perintah queri.
Tabel – tabel yang digunakan pada database perkuliahan:
Model Relasional / Irma RR Halaman 50
Gambar 1 : Jendela database
* Membuat Select Queries Menggunakan QBE
Select queries adalah mengambil data dari satu atau lebih tabel dan menampilkan hasil queri tersebut di dalam suatu lembar data dimana pengguna dapat mengupdate record ( dengan batasan tertentu ).Lembar data akan menampilkan data dari tabel dalam baris dan kolom , sama seperti lembar kerja pada lotus . Select queri dapat juga melakukan pengelompokan record atau mengkalkulasi menjumlah, menghitung, rata-rata dan lainnya.
Jendela select queries adalah alat graphikal QBE. Karena bentuk graphikalnya, pengguna dapat menggunakan mouse untuk menyeleksi , memanipulasi obyek pada jendela untuk
Model Relasional / Irma RR Halaman 51
mendefinisikan example yang pengguna akan lihat. Pengguna menspesifikasikan field dan record yang pengguna inginkan pada queri di QBE.Ketika pengguna membuat queri dengan QBE , di belakang rancangan ini terdapat perintah SQL yang sama, pengguna dapat melihat atau mengedit perintah tersebut.
Contoh :1. Dapatkan nama mahasiswa yang tinggal di kota Bogor
MHS npm nama kota Tgl_lahirP. bogor
Dengan Microsoft Access
3. Ingin menampilkan semua data pada tabel mhs
MHS npm nama kota Tgl_lahirP. P. P. P.
AtauMHS npm nama kota Tgl_lahir
P.
Dengan Access
Model Relasional / Irma RR Halaman 52
3. Ingin menampilkan record tertentu pada tabel mtkuliah
MKUL Kd_mk Nama_mk SksP. KK045310 P. P.
AtauMKUL kd_mk nama_mk sks
P. KK045310
4. Dapatkan nama mahasiswa yang mendapatkan nilai uas > 75
Model Relasional / Irma RR Halaman 53
Mahasiswa npm nama kota tgl_lahir_NILAI P.
NILAI npm kd_mk nil_mid nil_uas_MHS >75
Dengan Access
5. Dapatkan npm dan nama mahasiswa yang mengambil mata kuliah basis data dan nilai midnya >75MHS npm nama kota tgl_lahir
_SX P.
MKUL kd_mk nama_mk sks_PY Sistem Terdistribusi
NILAI npm kd_mk nil_mid nil_uas_SX _PY >75
Model Relasional / Irma RR Halaman 54
Dengan Access
6. Dapatkan npm dan nama mahasiswa yang mengambil mata kuliah basis data atau Konsep Sistem Informasi dan nilai midnya
<60
Model Relasional / Irma RR Halaman 55