No Slide Title - E-learning UPN JATIM

advertisement
Relational dan Queries
12
Pandangan Logika Data
Tabel 2.1. Rangkuman Sifat-sifat Tabel Relasional
1 Sebuah tabel seolah-olah merupakan struktur dua dimensi yang terdiri
dari baris dan kolom.
2 Setiap baris (tupel) mewakili sebuah entitas.
3 Setiap kolom mewakili atribut dan memiliki nama yang jelas.
4 Setiap perpotongan baris dan kolom mewakili nilai sebuah data.
5 Setiap tabel harus memiliki primary key yang dikenali secara unik
untuk setiap baris.
6 Semua nilai pada kolom harus sesuai format data.
7 Setiap kolom memiliki jangkauan nilai tertentu yang dikenal sebagai
domain atribut.
8 Setiap baris membawa informasi yang menggambarkan satu kejadian
entitas.
9 Urut-urutan baris dan kolom bukan hal yang penting untuk DBMS.
12
Nilai Atribut Tabel SISWA
Gambar 2.1. Nilai atribut tabels siswa
12
Kunci (Key)
 Redudansi yang terkontrol (penggunaan atribut secara
bersama-sama) membuat basis data relasional berjalan
dengan baik.
 Primary key suatu tabel akan muncul lagi pada tabel
lainnya sebagai penghubung (foreign key)
 Jika foreign key mengandung suatu nilai atau nilai kosong
yang cocok, maka tabel yang menggunakan foreign key
tersebut dikatakan menunjukkan integritas referensial.
12
Contoh Sederhana Basis Data Relasional
Nama tabel : SISWA
Primary key : NOMHS
Foreign key : KODE_WALI
Hubungan
Nama tabel : WALI
Primary key : KODE_WALI
Tidak ada foreign key
12
Skema Basis Data Relasional :Perwalian
Gambar 2.3. Skema basis data relsional : Perwalian
12
Kunci (Key)
 Sebuah kunci (key) dapat membantu mendefinisikan relasi
entitas.
 Aturan kunci didasarkan pada konsep yang dikenal dengan
istilah determinasi, yang digunakan untuk mendefinisikan
ketergantungan fungsional.
12
Kunci (Key)
 Ketergantungan Fungsional.
 Atribut B bergantung secara fungsional pada A, Jika A
menentukan B.
 Sebuah atribut bagian dari suatu kunci dikenal sebagai
atribut kunci.
 Kunci yang memiliki lebih dari satu atribut disebut
dengan kunci komposit.
 Jika atribut (B) bergantung secara fungsional pada kunci
komposit (A) tetapi tidak terdapat pada salah satu kunci
komposit tersebut, atribut (B) bergantung penuh secara
fungsional pada (A).
12
Kunci (Key)
Tabel 2.2. Kunci Basis Data Relasional
Superkey
Sebuah atribut (atau kombinasi atribut) secara unik
mengenali setiap entitas dalam sebuah tabel.
Candidate
key
Sebuah superkey minimal, yaitu superkey yang tidak
merupakan bagian atribut dari suatu superkey
Primary
key
Candidate key yang terpilih untuk mengenali secara
unik seluruh nilai atribut pada sebuah baris. Tidak
boleh kosong
Secondary
key
Sebuah atribut (atau kombinasi atribut) secara paksa
digunakan untuk tujuan pengambilan data
Foreign
key
Sebuah atribut (atau kombinasi atribut) dalam sebuah
tabel dimana nilainya cocok dengan primary key pada
tabel lainnya
12
Tabel 2.3. Aturan Integritas
Integritas Entitas
Syarat
Tujuan
Seluruh entias bersifat unik dan tidak ada primary key
yang bernilai kosong.
Menjamin setiap entitas memiliki identitas secara unik
dan meyakinkan bahwa nilai setiap foreign key pasti
mereferensi nilai primary key secara tepat.
Integritas Referensial
Syarat
Tujuan
Foreign key dapat bernilai kosong sejauh bukan
merupakan bagian dari primary key tabel atau memiliki
nilai yang sesuai dengan nilai primary key dari suatu
tabel yang terhubung.
Membuat nilai suatu atribut yang berhubungan tidak
memiliki nilai yang salah.
12
Ilustrasi Aturan Integritas
Gambar 2.4. Ilustrasi aturan integritas
12
Operator Basis Data Relasional
 Derajat kesempurnaan relasi dapat diukur dengan seberapa
luas dukungan aljabar relasionalnya.
 Aljabar relasional mendefinisikan secara teoritis cara
memanipulasi isi tabel dengan menggunakan delapan fungsi
relasional: SELECT, PROJECT, JOIN, INTERSECT,
UNION, DIFFERENCE, PRODUCT dan DIVIDE.
12
Operator Basis Data Relasional
 UNION menggabungkan semua baris dari dua buah tabel
dan kedua tabel tersebut harus sesuai.
NIP
Union
NIP
Hasil
NIP
090710100
090710120
090710100
090710103
090710123
090710103
090710109
090710109
090710112
090710112
090710120
090710123
Gambar 2.5. Union
12
Operator Basis Data Relasional
 INTERSECT menghasilkan sebuah daftar yang berisi hanya
record-record yang ter-dapat pada kedua tabel dan kedua
tabel tersebut harus sesuai.
Nama
INTERSECT
Nama
HASIL
Nama
Nico
Sandy
Sandy
Sandy
Rudi
Heni
Surya
Heni
Heni
Santi
Gambar 2.6. Intersect
12
Operator Basis Data Relasional
 DIFFERENCE menghasilkan semua record yang terdapat
pada satu tabel tetapi tidak terdapat pada tabel lainnya dan
kedua tabel tersebut harus sesuai.
Nama
DIFFERENCE
Nama
HASIL
Nama
Nico
Sandy
Nico
Sandy
Heni
Surya
Surya
Heni
Gambar 2.7. Difference
12
Operator Basis Data Relasional
 PRODUCT menghasilkan sebuah daftar semua pasangan
record dua buah tabel.
Wali
PRODUCT
Mhs SKS IPK HASIL
Wali
Mhs
SKS
IPK
Winata
Susi
18 2.03
Winata
Susi
18
2.03
Adelia
Toni
20 3.42
Winata
Toni
20
3.42
Winata Wandi
21
2.75
Adelia
Susi
18
2.03
Adelia
Toni
20
3.42
21
2.75
Wandi 21 2.75
Adelia Wandi
Gambar 2.8. Product
12
Operator Basis Data Relasional
 SELECT menghasilkan nilai untuk semua atribut yang
ditemukan dalam tabel.
Mhs
SKS
IPK
Mhs
SKS
IPK
Susi
Toni
Wandi
18
20
21
2.03
3.42
2.75
Susi
Toni
Wandi
18
20
21
2.03
3.42
2.75
Mhs
SKS
IPK
Toni
Wandi
20
21
3.42
2.75
SELECT ALL Hasilnya
SELECT SKS  20 Hasilnya
Gambar 2.9. Select
12
Operator Basis Data Relasional
 PROJECT menghasilkan daftar semua nilai untuk atribut
yang dipilih.
Mhs
Susi
Toni
Wandi
SKS
18
20
21
IPK
2.03
3.42
2.75
Mhs
Susi
Toni
Wandi
PROJECT MHS Hasilnya
PROJECT MHS and IPK Hasilnya
Gambar 2.10. Project
Mhs
Susi
Toni
Wandi
IPK
2.03
3.42
2.75
12
Operator Basis Data Relasional
 JOIN memungkinkan kita untuk mengkombinasikan informasi dari dua tabel atau lebih. JOIN memiliki kemampuan
nyata untuk mendukung basis data relasional, memungkinkan
penggunaan tabel independen yang dihubungkan melalui
atribut yang sama.
 Natural JOIN menghubungkan tabel dengan memilih hanya
record dengan nilai yang digunakan bersama-sama pada
atribut yang sama. Operator ini akan menghasilkan tiga
tahapan proses:
 PRODUCT
 SELECT
 PROJECT
12
Operator Basis Data Relasional
 Contoh dua tabel yang akan digunakan untuk ilustrasi JOIN:
Nama Tabel : SISWA
Mhs SKS IPK Kode_Wali
Wandi 21 2.75
1
Nama Tabel : WALI
Kode_Wali
Wali
1
Suminto
Toni
20
3.42
1
2
Farid
Rudi
18
2.45
2
3
Ganjar
Susi
18
2.03
2
Tatik
22
3.68
4
Gambar 2.11. Tabel untuk ilustrasi join
12
Operator Basis Data Relasional
Natural JOIN, Tahap 1: PRODUCT
Mhs
Wandi
Toni
Rudi
Susi
Tatik
Wandi
Toni
Rudi
Susi
Tatik
Wandi
Toni
Rudi
Susi
Tatik
SKS
21
20
18
18
22
21
20
18
18
22
21
20
18
18
22
IPK
2.75
3.42
2.45
2.03
3.68
2.75
3.42
2.45
2.03
3.68
2.75
3.42
2.45
2.03
3.68
Kode_Wali
1
1
2
2
4
1
1
2
2
4
1
1
2
2
4
Kode_Wali
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
Gambar 2.12. Natural join, tahap 1: Product
Wali
Suminto
Suminto
Suminto
Suminto
Suminto
Farid
Farid
Farid
Farid
Farid
Ganjar
Ganjar
Ganjar
Ganjar
Ganjar
12
Operator Basis Data Relasional
Natural JOIN, Tahap 2: SELECT
Mhs
SKS
IPK
Kode_Wali
Kode_Wali
Wali
Wandi
Toni
Rudi
Susi
21
20
18
18
2.75
3.42
2.45
2.03
1
1
2
2
1
1
2
2
Suminto
Suminto
Farid
Farid
Gambar 2.13. Natural join, tahap 2: Select
12
Operator Basis Data Relasional
Natural JOIN, Tahap 3: PROJECT
Mhs
Wandi
SKS
21
IPK
2.75
Kode_Wali
1
Wali
Suminto
Toni
20
3.42
1
Suminto
Rudi
18
2.45
2
Farid
Susi
18
2.03
2
Farid
Gambar 2.13. Natural join, tahap 3: Project
12
Operator Basis Data Relasional
 EquiJOIN menghubungkan tabel didasarkan pada kondisi
yang sama dengan memban-dingkan kolom tertentu setiap
tabel. Hasil equiJOIN tidak menghilangkan kolom dupli-kat
dan kondisi atau kriteria penggabungan tabel harus terdefinisi
secara eksplisit.
 Theta JOIN adalah equiJOIN yang membanding-kan kolom
tertentu setiap tabel menggunakan operator pembanding
selain operator sama dgn.
 Pada Outer JOIN pasangan data yang tidak cocok akan tetap
dipertahankan dan nilai untuk tabel lainnya yang tidak cocok
akan dibiarkan kosong.
12
Operator Basis Data Relasional
Outer JOIN
Mhs
Wandi
Toni
Rudi
Susi
SKS
21
20
18
18
IPK
2.75
3.42
2.45
2.03
Tatik
22
3.68
Kode_Wali
1
1
2
2
3
4
Gambar 2.15. Outer Join
Wali
Suminto
Suminto
Farid
Farid
Ganjar
12
Operator Basis Data Relasional
 DIVIDE memerlukan dua buah tabel yang masing-masing
terdiri dari satu dan dua kolom. Perhatikan ilustrasi berikut
ini:
Tabel 1
Kode
Lok
A
5
B
5
C
6
D
7
D
8
E
8
A
9
A
4
B
3
DEVIDE
Tabel 2
Kode
A
B
Gambar 2.16. Devide
Hasil
Tabel 3
Lok
5
12
Kamus Data Dan Katalog Sistem
 Kamus data berisi metadata untuk menjelas kan secara
detail catatan semua tabel di dalam suatu basis data.
 Katalog sistem adalah kamus data sistem yang sangat detail
yang menggambarkan semua objek di dalam suatu basis
data.
 Basis data yang dibentuk sistem dimana tabel-tabelnya
menyimpan isi dan sifat-sifat basis data.
 Tabel-tabelnya dapat diproses seperti tabel-tabel lainnya.
 Secara otomatis menghasilkan dokumentasi basis data
12
Tabel 2.4. Contoh Kamus Data
Nama
Tabel
Nama
Atribut
Siswa Nomhs
Nama
SKS
IPK
Tipe
Nomor mhs
Nama mhs
Jumlah SKS
IP.Kumulatif
Char(9)
Varchar(18)
Byte
Number(4,2
)
Number(2)
999999999
Xxxxxxxxx
99
2-24
9.99
0.00-4.00
PK
99
1-99
FK
Number(2)
Char(9)
Varchar(18)
Varchar(15)
99
1-99
999999999
Xxxxxxxxx
Xxxxxxxxx
PK
Kd_Wali Kode wali
Wali Kd_Wali
NIP
Nama
Jbt_Fng
Kode wali
No. Pegawai
Nama wali
Fungsional
Format
Range
PK/ Tabel
FK Referensi
Uraian
Wali
12
Relasi Pada Basis Data Relasional
 E-R Diagram (ERD)
 Bentuk persegi panjang mewakili entitas.
 Nama entitas berupa kata benda dan huruf besar.
 Bentuk berlian digunakan untuk mewakili relasi antar
entitas.
 Angka 1 digunakan untuk mewakili “1” (satu) data pada
relasi.
 Huruf M digunakan untuk mewakili “many” (banyak)
data dari relasi.
12
Relasi Antara Wali Dan Siswa
WALI
1
Membimbing
M
SISWA
Gambar 2.17. Relasi antara wali dan siswa
12
Cara Lain Untuk Menyatakan
Relasi Antara Wali Dan Siswa
1
WALI
M
Membimbing
SISWA
Gambar 2.18. Bentuk lain relasi antara wali dan siswa
12
Relasi 1: M : Basis Data Perwalian
Tabel : WALI
PK
: KODE_WALI
FK
: -
Hubungan
Tabel : SISWA
PK : NOMHS
FK : KODE_WALI
Gambar 2.19. Relasi 1: M untuk basis data perwalian
12
Relasi 1:M Antara Kursus dan Kelas
1
KURSUS
M
Memiliki
Gambar 2.20. Relasi 1:M antara kursus dan kelas
KELAS
12
Relasi M : N Antara Siswa dan MKA
M
SISWA
N
Mengambil
Gambar 2.21. Relasi M:N antara siswa dan MKA
MKA
12
Tabel 2.5. Contoh Data Pengambilan MKA
M
N
1
SISWA
MKA
Mengambil
SISWA
M
M
1
PESERTA
Gambar 2.21. Relasi M:N antara siswa dan MKA
MKA
12
Relasi “Many to Many” Antara Siswa dan MKA
Tabel SISWA
Basis Data KRP
Tabel MKA
Gambar 2.22. Relasi “many to many” antara siswa dan MKA
12
Konversi Relasi M : N Menjadi Dua Relasi 1 : M
Tabel SISWA
Primary key NOMHS
Tabel KULIAH
Primary key KODE_MKA+NOMHS
Foreign key KODE_MKA,NOMHS
Tabel MKA
Primary key KODE_MKA
Gambar 2.23. Konversi relasi M:N menjadi relasi 1:M
12
Perintah SQL
Tabel 3.2. Cakupan Perintah SQL
Perintah
Penjelasan
Berfungsi untuk memasukkan data awal pada tabel atau
dapat juga untuk menambah data.
Berfungsi untuk menampilkan isi satu tabel atau beberapa
SELECT
tabel sekaligus.
COMMIT Berfungsi untuk menyimpan hasil pekerjaan kedalam
media penyimpan (disk).
UPDATE Berfungsi untuk melakukan perubahan data.
DELETE Berfungsi untuk menghapus satu atau beberapa baris isi
tabel.
Berfungsi untuk mengembalikan isi tabel basis data ke
ROLLBACK bentuk aslinya, berdasarkan perintah COMMIT yang
terakhir kali dilakukan.
INSERT
12
Perintah SQL
 Pemasukan Data
INSERT INTO <nama tabel> VALUES(harga atribut1,
harga atribut2, . . . . dan seterusnya);
 Contoh:
INSERT INTO WALI VALUES (‘5’, ‘095065123’,’ Ir.
Siswanto, MT.’, ’Lektor Kepala’);
 Contoh:
INSERT INTO MAHASISWA VALUES (‘111900555’,
’ Agus Salim’, ’18’,’ 2’,’48’, ‘5’);
12
Perintah SQL
Form Input Data Wali
Gambar 3.1. Form input data wali
12
Perintah SQL
 Menyimpan Isi Tabel
COMMIT <nama tabel>;
 Contoh:
COMMIT WALI;
 Menampilkan Isi Tabel
SELECT <daftar atribut> FROM <nama tabel>
WHERE <kondisi>;
 Contoh:
SELECT * FROM WALI;
12
Perintah SQL
 Mengedit Isi Tabel
UPDATE <nama tabel>
SET <atribut> = <harga baru>
WHERE <kondisi>;
 Contoh:
UPDATE WALI SET KD_WALI=7
WHERE KD_WALI=5;
 Mengembalikan Isi Tabel
ROLLBACK;
12
Perintah SQL
 Menghapus Record (Baris Tabel)
DELETE FROM <nama tabel>
WHERE <kondisi>;
 Contoh:
DELETE FROM WALI WHERE KD_WALI=2;
DELETE FROM WALI WHERE
FUNGSIONAL=‘Lektor’;
DELETE FROM WALI WHERE NIP=‘095067120’;
DELETE FROM MAHASISWA WHERE IPK<2.00;
12
QUERIES
 Menampilkan Sebagian Isi Tabel
SELECT <daftar atribut> FROM <nama tabel>
WHERE <kondisi>;
 Contoh:
SELECT NIP, NAMA FROM WALI
WHERE JBT_FNG=‘Lektor’;
SELECT KD_WALI, NIP FROM WALI
WHERE JBT_FNG=‘Asisten Ahli’;
12
QUERIES
Operator Matematik
12
QUERIES
 Contoh:
SELECT KD_WALI, NIP, NAMA FROM WALI
WHERE JBT_FNG<>‘Lektor’;
SELECT NIP, NAMA, JBT_FNG FROM WALI
WHERE KD_WALI>5;
SELECT NOMHS, NAMA, SKS FROM MAHASISWA
WHERE IPK>2.5;
SELECT NOMHS, NAMA, IPK FROM MAHASISWA
WHERE SKS<18;
12
QUERIES
• Special Operators
– BETWEEN - digunakan untuk menentukan range nilai.
SELECT * FROM MAHASISWA WHERE IPK BETWEEN 2.00 AND 3.00;
– IS NULL - digunakan untuk mengecek apakah suatu atribut
bernilai kosong (NULL)
SELECT * FROM WALI WHERE JBT_FNG IS NULL;
– LIKE - digunakan untuk mengecek apakah suatu atribut
mengandung string/ karaker yang mirip
SELECT * FROM WALI WHERE NAMA LIKE %SANTO%’;
– IN - digunakan untuk mengecek apakah suatu nilai suatu atribut
terdapat dalam suatu daftar himpunan nilai
SELECT * FROM WALI WHERE JBT_FNG IN (‘ASISTEN AHLI’,
‘LEKTOR’);
– EXISTS - digunakan untuk mengecek apakah suatu atribut
memiliki nilai. EXISTS is the opposite of IS NULL.
SELECT * FROM WALI WHERE JBT_FNG EXIST;
12
QUERIES
 Fungsi-fungsi aggregate yang biasa digunakan:
SUM()
AVG()
COUNT(*)
MAX()
MIN()
Download