Basis Data Lanjut - Pertemuan 2
Basis Data Lanjut - Pertemuan 2
Fakta
Adi, Budi dan Cici bekerja pada
bagian Personalia. Sedangkan Rudi
dan Santo bekerja pada bagian
Gudang
Nama
JenisKel bekerja
(1,1) untuk (1,N )
Pegawai Departemen
NoKTP (0,1)
mengepalai (1,1)
(0,N)
JmlPegawai
(0,1)
(1,N
TglMulai
)
(0,N )
)
(0,N
mengatur
bekerja
memimpin
pada
(1,N
(1,1)
)
menanggung
LamaJam Proyek
(1,1)
Nama Hubungan
JenisKel TglLahir
Derajat kardinalitas relasi (Cardinality Ratio)
Entitas A Entitas B
Contoh:
data 1 data 1
relasi “mengepalai” antara
entitas Pegawai dengan entitas data 2 data 2
data 4 data 4
Satu ke Banyak (one to many)
data 4
Banyak ke Satu (many to one)
Entitas A Entitas B
Contoh:
data 1 data 1
relasi “bekerja untuk” pada entitas
pegawai terhadap entitas data 2 data 2
departemen
data 3 data 3
data 4
Banyak ke banyak
(many to many)
Contoh:
data 1 data 1
data 4 data 4
Batasan Partisipasi (Participation
Constraint)
Contoh:
relasi “bekerja pada” pada entitas pegawai terhadap entitas
proyek
Pegawai
(0,1)
( 0 ,N )
memimpin
Relasi Multi Entitas
(N-ary Relation)
Nama
IDSemester
Kursus Tahun
NoKursus
Relasi Ganda
(Redundant Relation)
Contoh:
bekerja
(1,1) untuk (1,N)
Pegawai Departemen
(0,1)
mengepalai (1,1)
STRUCTURED 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] ]
Keterangan SYNTAX:
Yang berhuruf besar (SELECT, INTO, FROM, WHERE, GROUP BY, HAVING DAN
ORDER BY) artinya adalah kata kunci (keyword) yang harus disertakan jika kita
membutuhkannya di dalam pengolahan data. Kita tidak boleh menulis lebih dari sekali,
atau membuat nama variabel dengan nama tersebut.
Yang berhuruf kecil (select_list, new_table_, table_source, search_condition,
group_by_expression, order_expression) adalah isian yang bisa kita ubah berdasarkan
kebutuhan kita.
Kurung kotak [ ] menunjukkan bahwa bagian tersebut boleh disertakan atau tidak,
tergantung dari kebutuhan. Dari sini bisa diketahui, sebuah SQL-SELECT yang paling
sederhana minimal harus menyertakan:
SELECT select_list
FROM table_source
Urutan syntax untuk kata kunci (keyword), misalnya ORDER BY terletak di setelah
GROUP BY, menunjukkan bahwa keyword harus disusun berdasarkan urutan tersebut,
jika keduanya disertakan, ORDER BY tidak boleh ditulis mendahului GROUP BY.
select_list
adalah kolom-kolom yang didefinisikan sebagai hasil dari
proses query.
a. Menampilkan keseluruhan field
Untuk menampilkan keseluruhan field dari tabel-tabel yang
didefinisikan, digunakan *. Misalnya, untuk menampilkan
seluruh field dari tabel Anggota, perintahnya:
SELECT * FROM Anggota
b. Menampilkan kolom-kolom tertentu
Kolom-kolom yang dipilih berupa ekspresi, yang mana
ekspresi tersebut bisa berupa:
field tabel (biasanya)
konstanta
operasi dan fungsi
Antara kolom satu dengan lainnya dipisahkan dengan
tanda koma (,). Jika merupakan field tabel, maka judul
kolom adalah nama field tersebut. Selain itu, jika tidak
diberi nama, judul kolom akan kosong.
Contoh :
menampilkan nama dan alamat Anggota:
SELECT nama, alamat FROM Anggota
menampilkan nama dalam bentuk huruf kapital:
SELECT UPPER(nama), alamat FROM Anggota
Mengubah judul kolom
Kolom-kolom yang dipilih bisa diberi judul tertentu sesuai dengan
keinginan kita. Ada 2 cara untuk mengubah judul kolom:
Menggunakan syntax: ekspresi AS judul_kolom
Ini merupakan cara standar yang dipakai pada banyak sistem
database.
Menggunakan syntax: judul_kolom = ekspresi
Contoh:
menampilkan nama dan alamat Anggta:
SELECT nama AS NamaAnggota, alamat AS AlamatAnggota
FROM Anggota
menampilkan nama dalam bentuk huruf kapital dg judul kolom NamaKapital:
SELECT NamaKapital=UPPER(nama), alamat FROM Anggota
[DISTINCT]
Digunakan apabila kita ingin menghilangkan duplikasi
dari hasil query (hasil query yang sama ditampilkan
sekali).
Misal, untuk menampilkan nomor-nomor anggota yang
sedang meminjam atau belum mengembalikan:
SELECT NoAnggota FROM Peminjaman
Perhatikan, pada hasil query di atas terdapat NoAnggota
yang ditampilkan lebih dari sekali bagi anggota yang
meminjam buku lebih dari 1. Untuk meniadakan
duplikasi, querynya adalah sbb:
SELECT DISTINCT NoAnggota FROM Peminjaman
Penggunaan klausa WHERE biasanya digunakan untuk:
Filter (penyaringan) data. Yakni hanya menampilkan data
tertentu yang sesuai dengan kriteria yang kita masukkan. Atau
bisa juga dikatakan sebagai pencarian data.
Merelasikan/menghubungkan query yang disusun lebih dari
satu tabel.
Penerapannya adalah dengan memasukkan suatu ekspresi
kondisi setelah klausa WHERE:
WHERE <kondisi>
Jika <kondisi> lebih dari satu, maka bisa ditambahkan
dengan AND atau OR (sesuai dengan kebutuhan).
Employees
employee_id name salary manager_id departement_id
100 Steven 8000 101 10
101 Lexa 10000 101 10
102 Bruce 9000 103 20
103 Diana 11000 103 20
104 Bruce 8500 103 20
TUGAS - 1
1. Buat dalam bentuk ERD
2. Tampilkan nama employee yang memiliki salary lebih dari 9000
3. Tampilkan id dan nama dari employee yang memiliki nama
dengan huruf n.
4. Tampilkan nama employee yang menjadi manager di departemen
IT
5. Hitung jumlah employee yang memiliki nama Bruce
6. Tampilkan id departemen dan nama departemen dari employee
yang bernama Lexa
7. Tampilkan nama-nama employee yang bekerja di departemen
pada masing-masing departemen
8. Tampilkan id departemen yang total salary semua employee yang
bekerja pada departement tersebut lebih dari 20000
9. Tampilkan id departemen, nama departemen, dan jumlah
employee yang bekerja pada masing-masing departemen tersebut
TUGAS - 1
Tampilkan departemen id, departemen name, jumlah employee yang
bekerja di masing-masing departemen yang:
10. Jumlah pekerjanya kurang dari 3
11. Memiliki jumlah pekerja paling tinggi
12. Memiliki jumlah pekerja paling kecil
13.Tampilkan id departemen dan salary minimum dari departemen yang
memiliki rata-rata salary paling besar