Rangkuman Praktikum Mata Kuliah Basis Data 2
POKOK BAHASAN 1
BASIS DATA, MODEL DATA, DIAGRAM E-R
PENYAJIAN
(TUTORIAL)
1.
Konsep Sistem Basis Data
Basis data adalah kumpulan data yang disimpan secara
sistematis di dalam komputer dan dapat diolah atau dimanipulasi serta dapat
diakses dengan mudah dan tepat menggunakan perangkat lunak (program aplikasi)
untuk menghasilkan sebuah informasi.
2.
Konsep
Model Data
Model data merupakan suatu cara
untuk menjelaskan tentang data-data yang tersimpan dalam basis data dan
bagaimana hubungan antar data tersebut
untuk para pengguna (user) secara
logika. Secara garis besar model data dapat dikelompokkan menjadi 3 macam yaitu
:
1.
Model Data Berbasis Objek (Object based data model)
2.
Model Data berbasis Record (Record Based Data Model)
3.
Physical
Based Data Model
3.
Bahasa Basis data
Bahasa yang digunakan
untuk mendefinisikan, mengelolah dan memanipulasi basis data dikelompokkan 3
macam yaitu :
1.
DDL (Data
Definition Language) digunakan untuk mendefinisikan struktur dan kerangka
2.
DML (Data Manipulation Language) digunakan
untuk menjabarkan pemrosesan data
3.
DCL (Data
Control Language) digunakan untuk pengaturan
hak akses pengguna pada basis data
4.
Entity
Relationship Diagram (ER-D)
Merupakan
model data yang dikembangkan berdasarkan obyek atau entitas. ER_D berguna
membantu perancang atau analis sistem pada saat melakukan analisis dan
perancangan basis data karena model ini dapat menunjukkan macam data yang
dibutuhkan dan direlasikan antar data di dalamnya.
1.
Komponen
ER_Diagram
Sebuah diagram ER tersusun atas tiga komponen, yaitu
entitas yang merupakan obyek dasar yang terlibat dalam sistem, atribut yang
berperan sebagai penjelas entitas, kerelasian antar entitas menunjukkan
hubungan yang terjadi diantara dua entitas.
a.
Entitas
(Entity)
Entitas
menunjukkan obyek-obyek dasar yang terkait di dalam sistem. Obyek dasar dapat
berupa orang, benda atau hal yang keterangannya perlu disimpan di dalam basis
data. Macam-macam Entitas :
·
Entitas
Reguler
Contoh
: Mahasiswa, Matakuliah.
·
Entitas
dependen
Contoh
: Matakuliah_konsentrasi, bergantung pada entitas Matakuliah.
·
Entitas
super type dan sub type
Contoh
: Entitas Karyawan.
Contoh
: Entitas karyawan_tetap dan karyawan_tidak_tetap
b.
Atribut
(Attribute)
Merupakan
keterangan-keterangan yang terkait pada sebuah entitas yang perlu disimpan ke
dalam database. Atribut berfungsi sebagai penjelas pada sebuah entitas. Contoh
: mahasiswa mempunyai atribut nim, nama, jurusan, kelamin, tempat_lahir,
tanggal_lahir, dsb.
Atribut pada sebuah entitas dibagi menjadi 2 yaitu :
·
Atribut
sederhana (simple attribute), yaitu jika
atribut berisi sebuah
·
Atribut
komposit (composite attribute), yaitu jika atribut berisi lebih dari sebuah
komponen nilai.
c.
Kerelasian
antar entitas (Entity Relationship)
Mendefiniskan
hubungan antara 2 buah entitas. Jenis kerelasian antar entitas dibagi mejadi 3
sebagai berikut :
1.
Kerelasian
jenis satu ke satu (one to one), kerelasian terjadi jika kejadian atau
transaksi di antara dua entitas yang berhubungan hanya memungkinkan terjadi
sebuah kejadian atau transaksi pada kedua entitas.
2.
Kerelasian
banyak ke satu (many to one) atau satu ke banyak (one to many), kerelasian ini
terjadi jika kejadian atau transaksi di antara dua entitas yang berhubungan
hanya memungkinkan terjadi satu kali dalam entitas pertama dan dapat terjadi
lebih dari satu kali kejadian atau transaksi pada entitas kedua.
3.
Kerelasian
jenis banyak ke banyak (many to many)
Kerelasian
jenis ini terjadi jika kejadian atau transaksi di antara dua entitas yang
berhubungan memungkinkan terjadi lebih dari satu kali dalam entitas pertama dan
kedua.
2.
Langkah-langkah
Membuat ER_Diagram
Untuk membuat ER_Diagram secara lengkap dapat dilakukan
dengan mengikuti langkah-langkah sebagai berikut :
·
Identifikasikan
setiap entitas yang terlibat.
·
Lengkapi
masing-masing entitas dengan atribut yang sesuai.
·
Tentukan
primary key dari masing-masing entitas.
·
Identifikasikan
setiap kerelasian berikut jenisnya yag terjadi di antara entitas dengan membuat
tabel daftar kerelasian antar entitas.
·
Gambarkan
simbol-simbol entitas, atribut, dan kerelasian antar entitas secara jelas dan
tidak bertabrakan.
·
Cek
ER_Diagram yang terbenuk, dalam hal : kelengkapan entitas, kelengkapan atribut,
kelengkapan kerelasian antar entitas dan jenis kerelasian antar entitas.
POKOK BAHASAN 2
STRUCTURED QUERY LANGUAGE (SQL)
A. SQL
(Structured Query Language)
SQL merupakan suatu bahasa (language) standar menurut
ANSI (American National Standards Institute) yang digunakan untuk mengakses
basis data. SQL pertama kali diterapkan pada sistem R (sebuah proyek riset pada
laboratorium riset San Jose, IBM). Kini SQL juga dijumpai pada berbagai platform,
dari mikrokomputer hingga mainframe
Elemen SQL
Elemen dasar SQL mencakup pernyataan, nama, tipe data,
konstanta, ekspresi, operator relasi, operator logika dan fungsi bawaan.
Pernyataan |
Keterangan |
CREATE |
Menciptakan
basis data, tabel atau indeks |
ALTER |
Mengubah
struktur tabel |
DROP |
Menghapus
basis data, tabel atau indeks |
COMMIT |
Mengakhiri
sebuah eksekusi transaksi data |
ROLLBACK |
Mengembalikan
ke keadaan semula sekiranya suatu transaksi gagal dilaksanakan |
INSERT |
Menambahkan
sebuah baris pada tabel |
UPDATE |
Mengubah nilai
pada sebuah baris |
SELECT |
Memilih baris
dan kolom pada tabel |
DELETE |
Menghapus
baris pada tabel |
GRANT |
Menugaskan hak
terhadap basis data kepada pengguna atau grup pengguna |
REVOKE |
Membatalkan
hak terhadap basis data |
Yang semuanya
dikelompokkan berdasarkan fungsinya masing-masing yaitu :
a.
Data Definition Language (DDL) : Digunakan untuk
mendefinisikan data dengan menggunakan perintah : CREATE, DROP, ALTER.
b.
Data Manipulation Language (DML) : Digunakan untuk
memanipulasi data dengan menggunakan perintah : INSERT, SELECT, UPDATE, DELETE.
c.
Data Control Language (DCL) : Digunakan untuk
mengontrol hak para pemakai data dengan perintah : GRANT, REVOKE.
Gambar 2.1 komponen
SQL
a.
Nama
Nama digunakan sebagai identitas bagi objek-objek pada
DBMS (Database Management System).
Contoh objek pada DBMS adalah tabel, kolom dan pengguna.
b.
Tipe
Data
Setiap data memiliki tipe data. Berikut ini adalah tipe
data dalam MySQL :
Tabel
2.2 Tipe data untuk numerik
Tipe |
Keterangan |
Range
Nilai |
TINYINT |
Nilai integer yang sangat kecil |
Signed : -128 s.d. 127 Unsigned : 0 s.d. 255 |
SMALLINT |
Nilai integer yang kecil |
Signed : -32768 s.d. 32767 Unsigned : 0 s.d. 65535 |
MEDIUMINT |
Integer dengan nilai medium |
Signed : -8388608 s.d. 8388607 Unsigned : 0 s.d. 16777215 |
INT |
Integer dengan nilai standar |
Signed : -2147483648 s.d.
2147483647 Unsigned : 0 s.d. 4294967295 |
BIGINT |
Integer dengan nilai besar |
Signed : -9223372036854775808
s.d. 9223372036854775807 Unsigned : 0 s.d.
18446744073709551615 |
FLOAT |
Bilangan desimal dengan single-precission |
minimum ± 1.175494351e-38 maksimum ± 3.402823466e+38 |
DOUBLE |
Bilangan desimal dengan
double-precission |
minimum ±
2.2205738585072014e-308 maksimum ±
1.7976931348623457e+308 |
DECIMAL(M,D) |
Bilangan float (desimal) yang dinyatakan sebagai string.
M adalah jumlah digit yang disimpan dalam suatu kolom, N adalah jumlah digit
dibelakang koma |
Tergantung pada nilai M dan D |
Keterangan :
Signed dan Unsigned adalah atribut untuk tipe data numerik
-
Signed
: Data yang disimpan dalam suatu kolom dapat berupa data negatif dan positif.
-
Unsigned
: Digunakan agar data yang dimasukkan bukan data negatif (>=0). Tipe data
float tidak Dapat dinyatakan dengan unsigned.
Tabel
2.3 Tipe data string atau karakter
Tipe |
Keterangan |
Ukuran
Maksimum |
CHAR(n) |
String karakter dengan panjang
yang tetap, yaitu n |
1 M byte |
VARCHAR(n) |
String karakter dengan panjang
yang tidak tetap, maksimum n. |
1 M byte |
TINYBLOB |
BLOB (Binary Large Object) yang
sangat kecil |
28-1 byte |
BLOB |
BLOB berukuran kecil |
216-1 byte |
MEDIUMBLOB |
BLOB berukuran sedang |
224-1 byte |
LONGBLOB |
BLOB berukuran besar |
232-1 byte |
TINYTEXT |
String teks yang sangat kecil |
28-1 byte |
TEXT |
String teks berukuran kecil |
216-1 byte |
MEDIUMTEXT |
String teks berukuran
medium(sedang) |
224-1 byte |
LONGTEXT |
String teks berukuran besar |
232-1 byte |
ENUM |
Enumerasi, kolom dapat diisi
dengan satu member enumerasi |
65535 anggota |
SET |
Himpunan, kolom dapat diisi
dengan beberapa nilai anggota himpunan |
64
nggota
himpunan |
Tabel
2.4 Tipe data tanggal dan jam
Tipe |
Range |
Format |
DATE |
“1000-01-01” s.d. “9999-12-31” |
“0000-00-00” |
TIME |
“-832:59:59” s.d. “838:59:59” |
“00:00:00” |
DATETIME |
“1000-01-01 00:00:00” s.d.
“9999-12-31 23:59:59” |
“0000-00-00 00:00:00” |
c.
Konstanta
Konstanta menyatakan nilai yang tetap atau tidak berubah.
Konstanta sering di pakai pada perintah SELECT. Konstanta di bagi menjadi 2 :
1.
Konstanta
bertipe numerik : 200, -3, 1500, 3.25
2.
Konstanta
bertipe karakter : ‘Teknik Informatika’
Keterangan
:
Konstanta bertipe karakter atau String diapit oleh tanda
petik tunggal. Dan konstanta dengan nilai pecahan desimal adalah berupa tanda
titik.
d.
Operator
Aritmatika
Operator Aritmatika adalah ekspresi untuk memperoleh
suatu nilai dari hasil perhitungan.
Contoh : harga*jumlah+2
Simbol-simbol yang dapat digunakan pada ekspresi aritmatika :
Tabel 2.5 Simbol Ekspresi
Aritmatika
Simbol |
Keterangan |
* |
Perkalian |
/ |
Pembagian |
+ |
Penjumlahan |
- |
Pengurangan |
% |
Sisa pembagian |
e.
Operator
Relasi
Merupakan operator yang digunakan untuk membandingkan
suatu nilai dengan nilai yang lain.
Tabel 2.6 Simbol Operator Relasi
Simbol |
Keterangan |
= |
Sama dengan |
> |
Lebih besar |
< |
Lebih kecil |
>= |
Lebih besar atau sama dengan |
<= |
Lebih kecil atau sama dengan |
<> |
Tidak sama dengan |
f.
Operator
Logika
Operator logika ada 3 yaitu OR, AND dan NOT
Tabel 2.7 Operator
Logika
Simbol |
Keterangan |
NOT atau ! |
Sebagai negasi atau pembalik
nilai |
OR atau || |
Atau |
AND atau && |
Dan |
g.
Operator
Pembanding
Tabel 2.8 Operator
Pembanding
Simbol |
Keterangan |
IS NOT NULL |
Apakah sebuah nilai adalah
tidak kosong (not null) |
IS NULL |
Apakah sebuah nilai adalah
kosong (null) |
BETWEEN |
Apakah suatu nilai di antara
dua batasan nilai |
IN |
Apakah suatu nilai berada di
dalam pilihan yang ada |
NOT IN |
Apakah suatu nilai tidak berada
dalam pilihan yang ada |
LIKE |
Apakah suatu nilai sesuai
dengan kriteria tertentu |
NOT LIKE |
Apakah suatu nilai tidak sesuai
dengan kriteria tertentu |
h.
Aggregate
Functions (Fungsi Agregat)
Fungsi adalah sebuah subprogram yang menghasilkan suatu
nilai jika dipanggil. Fungsi agregat adalah fungsi standar di dalam SQL, suatu
fungsi yang digunakan untuk melakukan summary, fungsi statistik standar yang
dikenakan pada suatu tabel atau query.
1.
SUM(ekspresi)
2.
Fungsi
ini digunakan untuk mendapatkan nilai total dari suatu kolom pada suatu tabel
3.
AVG(ekspresi)
Fungsi ini digunakan untuk mencari rata-rata nilai dalam
suatu kolom dari suatu tabel atau ekspresi. Ekspresi dalam fungsi AVG umumnya
adalah nama kolom. Kolom yang dicari nilai rata-ratanya adalah kolom dengan
tipe data numerik.
4.
COUNT(x)
Fungsi ini digunakan untuk menghitung jumlah record
(baris) dari suatu kolom dari suatu tabel. X adalah nama kolom yang ingin
dicari jumlah barisnya.
5.
MAX(ekspresi)
Fungsi ini digunakan untuk mencari nilai terbesar dari
suatu kolom dari suatu tabel. Kolom yang dicari nilai terbesarnya memiliki tipe
data numerik.
6.
MIN(ekspresi)
Fungsi ini digunakan untuk mencari nilai terkecil dari
suatu kolom dari suatu tabel. Kolom yang dicari nilai terkecilnya memiliki tipe
data numerik.
65 MySQL ( My Structured Query Language )
MySQL
adalah Relational Database Management System (RDBMS) yang didistribusikan
secara gratis di bawah license GPL (General Public License).
Kelebihan MySQL dalam mengelolah data adalah :
- Kecepatan,
- Open source,
- Kapabilitas,
- Biaya murah,
- Keamanan,
- Lintas platform,
POKOK BAHASAN 3
DATA DEFINITION LANGAUAGE (DLL)
A.
Data Definiton Language (DDL)
DDL merupakan bagian dari sql yang digunakan
untuk mendefinisikan struktur dan
kerangka data dan obyek basis data.
Tabel 3.1 Perintah-perintah
dalam DDL
Perintah |
Keterangan |
Create Database |
Membuat basis data |
Drop Database |
Menghapus basis
data |
Create Table |
Membuat tabel |
Alter Table |
Mengubah atau
menyisipkan kolom ke dalam tabel |
Drop Table |
Menghapus tabel
dari basis data |
Create Index |
Membuat Index |
Drop Index |
Menghapus Index |
B. Perintah-perintah DDL
Berikut ini perintah-perintah sql untuk Data
Definiton Language :
a. Membuat Database
Syntax :
CREATE DATABASE namadatabase;
Dimana :
Nama database yang dibuat tidak boleh
mengandung spasi dan tidak boleh memiliki nama yang sama dengan database lain
di MySQL. Berikut ini perintah untuk membuat basis data dengan nama perpustakaan :
mysql> create database perpustakaan;
b. Menampilkan daftar Database
Untuk menampilkan daftar basis data yang ada
di Mysql dapat menggunakan perintah :
SHOW DATABASES;
Berikut ini perintah untuk menampilkan daftar
basis data:
mysql> show databases;
c.
Menghapus Database
Untuk melakukan
penghapusan terhadap basis data yang sudah dibuat.
Syntax :
DROP DATABASE namadatabase;
d.
Mengaktifkan Database
USE namadatabase;
e.
Membuat Tabel
Dalam basis data tabel atau field berfungsi untuk
menyimpan record atau data. Untuk membuat table
Syntaxnya adalah :
CREATE TABLE namatabel
(
Field1 TipeData1 ([lebar]),
Field2 TipeData2 ([lebar]),
...
Field3 TipeData3 ([lebar])
);
f.
Mendefinisikan null/not null
Ketika membuat tabel, beberapa field harus
diatur agar field tertentu harus diisi. Biasanya field ini adalah sebagai field
utama atau kunci, juga sebagai identikasi sehingga tidak boleh kosong.
g.
Mendefinisikan Nilai Bawaan (Default)
Nilai default adalah nilai yang otomatis
diberikan oleh sistem untuk suatu atribut ketika ada penambahan baris baru,
sementara nilai pada atribut tersebut tidak diisi oleh pengguna. Syntax :
CREATE TABLE namatabel
(
Field1 TipeData1 ([lebar]),
Field2 TipeData2 DEFAULT nilai
);
Dimana nilai adalah nilai default dari
atribut tersebut.
Contoh:
h.
Menentukan kunci primer (Primary Key)
Pada Tabel
Key adalah satu gabungan dari beberapa
atribut yang dapat membedakan semua basis data (row) dalam tabel secara unik.
Key di dalam database berfungsi sebagai
suatu cara untuk mengidentifikasi dan menghubungkan satu tabel data
dengan tabel yang lain.
Primary Key adalah suatu atribut atau satu
set minimal atribut yang tidak hanya mendefinisikan secara unik suatu kejadian
spesifik tetapi juga dapat mewakili setiap kejadian dari suatu kejadian.
Terdapat tiga cara untuk membuat primary key.
Berikut ini adalah Syntax membuat primary key untuk Field1
Cara 1 :
CREATE TABLE namatabel
(
Field1 TipeData1 ([lebar]) NOT NULL PRIMARY
KEY,
Field2 TipeData2 ([lebar])
);
i.
Menghapus Primary Key Pada Tabel
Perintah :
Cara 1 : Jika primary key dibuat dengan menggunakan
alter table :
ALTER TABLE namatabel DROP CONSTRAINT
namaconstraint;
Cara 2 : Jika primary key dibuat melalui create table
:
ALTER TABLE namatabel DROP PRIMARY KEY;
Berikut ini perintah yang digunakan untuk
menghapus primary key pada tabel buku :
Mysql> alter table pengarang drop primary
key;
j.
Menentukan Foreign Key Pada Tabel
Foreign Key adalah satu set atribut atau set
atribut sebagai key penghubung kedua tabel dan melengkapi satu relationship
(hubungan) terhadap primary key yang menunjukan keinduknya. Jika sebuah primary
key terhubungan ke table/entity lain, maka keberadaan primary key pada entity
tersebut di sebut sebagai foreign key.
CREATE TABLE
namatabel
(
Field1 TipeData1 ([lebar]),
Field2 TipeData2 ([lebar]),
FOREIGN KEY (Field2) REFERENCES namatabelinduk
(namafieldinduk)ON UPDATE CASCADE
ON DELETE NO ACTION
)
atau
ALTER TABLE namatabel ADD CONSTRAINT
namaconstraint FOREIGN KEY (namafield) REFERENCES namatabelinduk
(namafieldinduk) ON UPDATE CASCADE ON DELETE NO ACTION;
k.
Menghapus Tabel
Tabel sudah di buat dapat di hapus dengan
menggunakan perintah DROP TABLE. Syntax
sebagai berikut:
DROP TABLE namatabel;
POKOK BAHASAN 4
DATA
MANIPULATION LANGUAGE (DML)
PENYAJIAN
(TUTORIAL)
A.
Data
Manipulation Language (DML)
Data manipulation language (DML) merupakan perintah-perintah yang
berfungsi untuk melakukan manipulasi data ataupun objek-objek yang ada didalam
tabel. Antara lain : perintah untuk memilih data (query),menyisipkan, mengubah
dan menghapus data dalam basis data.
Bentuk Manipulasi yang dapat dilakukan oleh DML diantaranya adalah
:
1.
Melakukan
pencarian kembali data lama.
2.
Penyisipan data
baru kedalam tabel.
3.
Penghapusan
data.
4.
Pengubahan
data.
5.
Menampilkan
data dengan kriteria tertentu.
6.
Menampilkan
data secara terurut.
DML menurut jenisnya dapat dibagi menjadi 2 jenis yaitu :
1.
Prosedural,
2.
Non prosedural,
B.
Perintah DML
sebagai berikut :
a.
INSERT
Perintah insert digunakan untuk menambahkan baris pada suatu tabel.
Terdapat dua cara untuk menambahkan baris, yaitu :
Cara 1 :
INSERT
INTO namatabel VALUES (nilai1,nilai2,nilai-n);
Cara 2 :
INSERT
INTO namatabel (kolom1,kolom2,kolom-n) VALUES (nilai1,nilai2,nilai-n);
Keterangan :
Jika data bertipe string, date atau time (contoh : B001,Sistem
basis data,2007-11-10) maka pemberian nilainya diapit dengan tanda petik
tunggal (‘B001’) atau petik ganda (“B001”). Jika
data bertipe nemerik (2500,400) maka pemberian nilainya tidak diapit tanda
petik tunggal maupun ganda.
b.
UPDATE
Perintah UPDATE digunakan untuk mengubah isi data pada satu atau
beberapa kolom pada suatu tabel.
Syntax :
UPDATE namatabel SET kolom1 = nilai1, kolom2 = nilai2
[WHERE kondisi];
c.
SELECT
Perintah SELECT digunakan untuk menampilkan isi dari suatu tabel
yang dapat dihubungkan dengan tabel yang lainnya.
1)
Menampilkan
data untuk semua kolom menggunakan asterisk (*)
Syntax : SELECT * FROM namatabel;
2)
Menampilkan data
untuk kolom tertentu
Syntax : SELECT kolom1,kolom2,kolom-n From namatabel;
3)
Menampilkan
data dengan kondisi data tertentu dengan klausa WHERE
Syntax : SELECT * FROM namatabel WHERE kondisi;
Contoh 2 : perintah untuk menampilkan data pada tabel buku dimana
nilai harga sama dengan 25000 atau 50000 :
Mysql > select * from
buku where harga = 25000 or harga = 50000;
Mysql > select * from
buku where harga in (25000,50000);
Contoh 3 : perintah untuk menampilkan data pada tabel buku dimana
nilai pada kolom judul_buku tidak sama dengan basis data.
Mysql > select * from
buku where not judul_buku=’basis data terpadu’;
Atau
Mysql > select * from
buku where judul_buku <>’basis data terpadu’;
Contoh 4 : isi tabel buku
Mysql > select * from
buku;
Mysql > select * from
buku where judul_buku like ‘B%’;
4)
Memberikan nama
lain pada kolom
Syntax :
SELECT namakolomlama AS
namakolombaru FROM namatabel;
Berikut ini perintah untuk memberikan nama lain pada kolom
judul_buku menjadi judul pada tabel pengarang :
Mysql > select Judul_buku as judul from
buku;
5)
Menggunakan
alias untuk nama tabel
Syntax :
SELECT
nmalias.jenis,nmalias.harga FROM namatabel nmalias;
Berikut ini perintah untuk memberikan alias pada tabel buku :
Mysql
> select j.judul_buku,
j.harga from buku j;
6)
Menampilkan data lebih dari dua tabel
Syntax :
SELECT * from
namatabel1,namatabel2,namatabel-n;
Isi tabel pengarang :
Mysql > select * from pengarang ;
Isi tabel buku :
Mysql > select * from
buku;
Berikut ini perintah untuk menampilkan semua data pada tabel
pengarang dan buku :
Mysql > select * from
pengarang, buku;
7)
Operator
comparison ANY dan ALL
Contoh : perintah untuk menampilkan semua data pengarang yang harga
bukunya bukan yang terkecil :
Mysql > select * from
buku where harga > ANY (select kode_pengarang from pengarang);
a.
Operator ALL
digunakan untuk melakukan perbandingan dengan subquery. kondisi
dengan ALL menghasilkan nilai TRUE (benar) jika subquery tidak
menghasilkan apapun atau jika perbandingan menghasilkan TRUE untuk setiap nilai
query terhadap hasil subquery.
Contoh : perintah untuk menampilkan data pengarang yang harganya
paling tinggi.
Mysql > select * from
buku where harga >= ALL (select kode_pengarang from pengarang);
8)
Aggregate
Functions (Count,Sum,AVG,Min,Max)
a.
Count
Perintah yang digunakan untuk menghitung jumlah baris suatu kolom
pada tabel.contoh :
Mysql > select count(kode_buku)
from buku;
b.
Sum
Perintah yang digunakan untuk menghitung jumlah nilai suatu kolom
pada tabel. Contoh : perintah untuk menghitung jumlah nilai kolom harga pada
tabel pengarang :
Mysql > select sum(harga)
from buku;
c.
AVG
Perintah yang digunakan untuk menghitung rata-rata dari nilai suatu
kolom pada tabel. Contoh : perintah untuk menghitung rata-rata dari kolom harga
pada tabel pengarang :
Mysql > select avg(harga)
from buku;
d.
Min
Perintah yang digunakan untuk menampilkan nilai terkecil dari suatu
kolom pada tabel. Contoh : perintah untuk menampilkan nilai terkecil dari kolom
harga pada tabel buku :
Mysql > select min(harga)
from buku ;
e.
Max
Perintah yang digunakan untuk menampilkan nilai terbesar dari suatu
kolom pada tabel. Contoh : perintah untuk menampilkan nilai terbesar dari kolom
harga pada tabel buku :
Mysql > select max(harga)
from buku;
9)
SQL dengan
Group By dan Having
Klausa Group By digunakan untuk melakukan pengelompokan data.
Sebagai contoh terdapat tabel buku dengan data sebagai berikut :
Mysql > select * from
buku;
Akan ditampilkan hanya kolom tahun_masuk dan digabungkan dengan
Sum(jml_buku) yang dikelompokan berdasarkan kolom tahun_masuk pada tabel buku :
Mysql > select sum(harga) from buku group by
tahun_terbit;
Klausa Having digunakan untuk menentukan kondisi bagi klausa group
by.kelompok yang memnuhi having saja yang akan dihasilkan. Contoh : perintah
untuk menampilkan data hanya kolom tahun_masuk yang dikelompokkan berdasarkan
kolom tahun_masuk,dimana jumlah buku berdasarkan kelompoknya harus lebih besar
dari satu pada tabel buku :
Mysql > select
kode_pengarang from buku group by kode_pengarang having count(kode_buku) >=1;
10)
Order By
Klausa ORDER BY digunakan untuk mengurutkan data berdasarkan kolom
tertentu sesuai dengan tipe data yang dimiliki. Contoh : perintah untuk
mengurutkan data buku berdasarkan kolom judul :
Mysql > select * from
buku order by judul_buku ;
Atau tambahkan ASC untuk pengurutan secara ascending (menaik)
Mysql > select * from
buku order by judul_buku asc;
atau tambahkan Desc untuk pengurutan secara descending (menurun)
Mysql > select * from
buku order by judul_buku desc;
d.
DELETE
Perintah delete digunakan untuk menghapus satu baris,baris dengan
kondisi tertentu atau seluruh baris. Syntax :
POKOK BAHASAN 5
QUERY DAN VIEW
PENYAJIAN
(TUTORIAL)
A.
Query
Query merupakan suatu proses pengolahan
data yang digunakan untuk memberikan hasil dari basis data berdasarkan kriteria
tertentu. Query tidak hanya membaca atau mengambil data,Query biasanya
melibatkan beberapa tabel yang direlasikan dengan menggunakan field kunci.Namun
query juga dapat digunakan pada satu tabel saja,tetapi hasilnya kurang
informatif dan terbatas.
1.
Aturan dalam melakukan query antar tabel
:
a.
Setiap field disebutkan bersama dengan
nama tabelnya,dipisahkan tanda titik (.)
Syntax : Namatabel.namafield.
Contoh : buku.kode_buku artinya field kode_buku
dari tabel buku.
b.
Setiap tabel yang terlibat dalam proses
query harus disebutkan dalam klausa FROM,dengan pemisah koma (,) dimana urutan
tabel tidak mempengaruhi proses query.
Contoh : From buku, anggota.
c.
Kondisi dalam klausa Where mempengaruhi
jenis join yang tercipta.
2.
Jenis – jenis join pada query.
a.
Operator Cross Join
Operator ini berguna untuk melakukan
operasi penggabungan dengan perkalia kartesain.Namun penggabungan jenis ini
jarang digunakan karena tidak menghasilkan nilai informasi yang efektif.
Contoh :
select * from buku cross join pengarang limit 5;
b.
Operator Inner Join
Inner join digunakan untuk menampilkan
data dari dua tabel yang berisi data sesuai dengan syarat dibelakang on (tidak
boleh null) dengan kata lain semua data dari tabel kiri mendapat pasangan data
dari tabel sebalah kanan. Berikut ini perintah untuk menampilkan data dari tabel pengarang dan buku dengan syarat
berdasarkan kolom kode_pengarang :
Mysql> select * from pengarang join buku on
(pengarang.kode_pengarang=buku.kode_pengarang);
c.
Operator Equijoin
Equijoin adalah penggabungan antar tabel
denga menggunakan operator ‘=’ pada kondisi klausa Where.
Contoh :
SELECT buku.kode_buku, buku.judul_buku,
pengarang.kode_pengarang, pengarang.nama_pengarang From buku, pengarang WHERE buku.kode_pengarang=pengarang.kode_pengarang;
d.
Operator Self-join
Self-join adalah jenis penggabungan antar
field dari tabel yang sama. Untuk melakukan penggabungan self join menggunakan
alias.
Contoh :
SELECT a.kode_buku, b.judul_buku from buku a, buku b
WHERE a.harga=’25000’ AND a.harga=’25000’;
e.
Operetor Natural Join
Operator ini digunakan untuk melakukan
equijoin dengan memperlakukan nama-nama kolom yang sama sebagai kolom
penghubung.
Contoh :
SELECT buku.kode_buku, buku.judul_buku,
pengarang.kode_pengarang, pengarang.nama_pengarang FROM buku NATURAL JOIN
pengarang;
Natural join dibedakan menjadi 2 yaitu :
· Natural Left Join
Natural left join digunakan untuk
menampilkan semua data dari tabel sebelah kiri perintah natural left join
beserta pasangannya dari tabel sebelah kanan.
Mysql > select *from pengarang natural left join
buku;
· Natural Right Join
Natural right join digunakan untuk menampilkan semua data dari
tabel sebelah kanan perintah natural right join beserta pasangannya dari tabel
sebelah kiri.meskipun terdapat data dari sebelah kanan tidak memiliki pasangan,
tetap akan ditampilkan dengan pasangannya berupa nilai NULL.
Mysql > select * from pengarang natural right
join buku;
3.
UNION, INTERSECT dan EXCEPT
1.
UNION
Union merupakan operator yang digunakan
untuk menggabungkan hasil query,dengan ketentuan jumlah,nama dan tipe kolom
dari masing-masing tabel yang akan ditampilkan datanya harus sama. Berikut ini
perintah untuk memperoleh data pada tabel buku dimana tahun penerbitnya 2003
dan 2004
Mysql > select tahun_terbit,judul_buku from buku
where
tahun_terbit=’2003’ union select tahun_terbit,judul_buku
from
buku where tahun_terbit=’2004’;
Perintah diatas identik dengan :
Mysql > select tahun_terbit,judul_buku from buku
where tahun_terbit=’2003’ or tahun_terbit =’2004’;
Namun tidak semua penggabungan dapat
dilakukan dengan OR,yaitu jika bekerja pada dua tabel atau lebih.
2.
INTERSECT
Intersect merupakan operator yang digunakan untuk memperoleh data dari dua
buah query dimana data yang ditampilkan adalah yang memenuhi kedua query
tersebut dengan ketentuan jumlah,nama dan tipe kolom dari masing-masing tabel
yang akan ditampilkan datanya harus sama.
Syntax :
SELECT * FROM namatabel1 INTERSECT SELECT * FROM
namatabel2
Pada MySQL tidak terdapat operator
INTERSECT namun sebagai gantinya dapat menggunakan operator IN seperti
contoh pada bagian nested queries.
3.
EXCEPT / Set Difference
Except merupakan operator yang digunakan
untuk memperoleh data dari dua buah query dimana data yang ditampilkan adalah
data yang ada pada hasil query 1 dan tidak terdapat pada data dari hasil query
2 dengan ketentuan jumlah,nama dan tipe kolom dari masing-masing tabel yang
akan ditampilkan datanya harus sama.
Syntax :
SELECT * FROM namatabel1 EXCEPT SELECT * FROM
namatabel2
4.
Nested Queries / Subquery (IN,NOT
IN,EXISTS,NOT EXIST)
Subquery berarti query didalam query.dengan menggunakan subquery,
hasil dari query akan menjadi bagian dari query diatasnya.
Contoh 1 : perintah untuk menampilkan
data pada tabel pengarang yang mana data pada kolom kode_pengarang nya
tercantum pada tabel buku menggunakan IN :
Mysql > select * from pengarang where
kode_pengarang in (select kode_pengarang from buku);
Atau menggunakan EXISTS
Mysql > select * from pengarang where exists (select
* from buku where pengarang.kode_pengarang=buku.kode_pengarang);
Pada contoh diatas :
SELECT kode_pengarang FROM buku
Disebut subquery, sedangkan :
SELECT * FROM pengarang;
Berkedudukan sebagai query.
Perhatikan,terdapat data jenis dan harga pada tabel pengarang yang tidak
ditampilkan. Hal ini disebabkan data pada kolom jenis tidak terdapat pada kolom
jenis ditabel buku.
Contoh 2 : perintah untuk menampilkan
data pada tabel pengarang yang mana data pada kolom jenisnya tidak tercantum
pada tabel buku menggunakan NOT IN.
Mysql > select * from pengarang where kode_pengarang
not in (select kode_pengarang from buku);
Atau menggunakan NOT EXISTS
Mysql > select*from pengarang where not exists
(select*from buku where pengarang.kode_pengarang=buku.kode_pengarang);
B.
View
View adalah perintah query yang disimpan
pada database dengan suatu nama tertentu,sehingga bisa digunakan setiap saat
untuk melihat data tanpa menuliskan ulang query tersebut.
Syntax dasar perintah untuk membuat view
adalah sebagai berikut :
CREATE
[OR REPLACE]
VIEW
view_name [(column_list)]
AS select_statement
Kita menggunakan opsi OR REPLACE jika
kita ingin mengganti view dengan nama yang sama dengan perintah tersebut. Jika
tidak maka perintah CREATE VIEW akan menghasilkan error jika nama view yang
ingin dibuat sudah ada sebelumnya.
C.
Penggunaan View
1.
View antar 2 tabel
Kita akan membuat view dari relasi antara
tabel “buku” dan “penerbit” untuk menampilkan data buku dan penerbitnya dari database PERPUSTAKAAN dengan nama ‘view_buku” perintahnya adalah sebagi berikut :
Mysql > CREATE VIEW view_buku
>As
>SELECT
a.kode_buku, a.judul_buku,
>a.tahun_terbit,b.nama_penerbit
>FROM
>buku a JOIN penerbit b ON a.kode_buku=
b.kode_penerbit;
2.
View dengan 3 tabel
Membuat view dari relasi antara tabel
“buku”, ”anggota” dan “peminjaman” untuk menampilkan data peminjaman buku dari
database perpustakaan dengan nama “view_peminjaman”. perintahnya adalah sebagai
berikut :
Mysql >CREATE VIEW view_peminjaman
>AS
>SELECT a.id_peminjaman, b.kode_buku,
b.judul_buku,
>c.kode_anggota, c.nama_anggota,
a.tanggal_pinjam,
>a.tanggal_kembali FROM peminjaman a, buku b,
>anggota c
WHERE a.kode_buku= b.kode_buku
AND
>a.kode_anggota=c.kode_anggota;
Lihat hasil query view view_peminjaman :
SELECT * FROM view_peminjaman;
POKOK BAHASAN 6
DATA CONTROL LANGUAGE (DCL) / HAK AKSES USER
PENYAJIAN
(TUTORIAL)
A. Pemahaman
Hak Akses
Basis
data yang telah dibuat perlu diatur agar data selalu dalam keadaan aman dari
pemakai yang tidak berhak. Pengaturan hak akses berguna dalam hal pembatasan
pengaksesan suatu data, misalkan hanya pemakai tertentu yang bisa membaca atau
pemakai lain yang justru dapat melakukan perubahan dan penghapusan data.
Macam-macam
perintah yang terkait dengan hak akses adalah SELECT, INSERT, UPDATE, DELETE,
REFERENCES, INDEX, CREATE, ALTER dan DROP.
B. Mengatur
Hak Akses
1.
Perintah GRANT
GRANT
jenis_akses (“nama_kolom) ON nama_database TO nama_user IDENTIFIED
BY “nama_password” [WITH GRANT pilihan akses]
Atau
GRANT
hak_akses ON namatabel TO pemakai;
Dimana :
·
Hak_akses merupakan hak yang diberikan kepada
pemakai berupa SELECT, INSERT saja atau keduanya. Bila hak akses lebih dari
satu antar hak akses dipisahkan dengan koma (,).
·
Nama tabel, menyatakan nama tabel yang akan
diakses dan diatur.
·
Pemakai,nama pemakai yang telah didaftarkan
pada sistem database. Sejumlah pemakai bisa disebutkan dengan dipisahkan tanda
koma (,).
Contoh :
GRANT SELECT ON buku To ‘siska’@’localhost’;
Hak
akses lebih dari satu.
GRANT SELECT, INSERT, UPDATE, DELETE ON buku TO
‘siska’@’localhost’,’edi’@’localhost’ ;
2.
Perintah REVOKE
C. Membatasi
Hak Akses
Hak
akses perlu dibatasi untuk memudahkan dalam mengatur dan mengawasi pemakaian
data serta menjaga keamanan data.
Contoh :
Administrator
akan memberikan hak akses kepada edi dalam melakukan query tabel buku untuk
field tertentu saja. Perintahnya :
GRANT SELECT, UPDATE
(kode_buku,judul_buku,tahun_terbit) On buku TO ‘edi’@’localhost’ ;
D. Hak
akses penuh
Untuk
memberikan hak akses penuh kepada pemakai, dapat memakai perintah klausa
ALLPRIVILEGES. Tentunya dengan pemberian hak akses penuh kepada pemakai (user).
Contoh :
GRANT ALL PRIVILEGES ON buku to siska;
Atau
menggunakan
GRANT ALL ON buku to ‘siska’@’localhost’;
E. Hak
akses kepada public
Untuk
memberikan hak aksess kepada banyak user dapat menggunakan klausa PUBLIC
beberapa DBMS ada yang menggunakan klausa WORLD.
Contoh :
GRANT SELECT, INSERT ON buku to ‘siska’;
F.
Pencabutan hak akses
1.
Pencabutan hak akses sementara
Untuk
melakukan pencabutan atau penghapusan hak akses user menggunakan perintah
REVOKE perintah ini juga mampu melakukan pencabutan hak akses sebagian pemakai
atau secara keseluruhan.
Bentuk
umum :
REVOKE hak_akses ON nama_database FROM nama_user;
Atau
REVOKE hak_akses ON namatabel FROM nama_user;
Contoh :
Administrator
ingin mencabut hak akses user siska,maka perintahnya :
REVOKE SELECT ON buku FROM ‘siska’@’localhost’;
Atau
REVOKE SELECT, INSERT ON buku FROM
‘edi’@’localhost’;
2.
Perintah DELETE
Untuk
menghapus user secara permanen dari basis data.
Komentar
Posting Komentar