Rangkuman Basis Data
Saya akan membahas sedikit materi
praktikum Basis Data, meliputi :
~ Bahasan I “Basis Data, Model Data,
Diagram-R”
~ Bahasan II “Structured Query Language
(SQL)”
~ Bahasan III “Data Defination Language
(DDL)”
~ Bahasan IV “Data Manipulation
Language (DML)”
~ Bahasan V “Query & View”
~ Bahasan VI “Data Control Language
(DCL)”
BAHASAN I
BASIS DATA, MODUL DATA, DIAGRAM-R
Konsep Sistem Basis Data
“adalah
kumpulan data-data yang saling berkaitan sehingga dapat dengan mudah
diolah dengan mudah oleh pengguna. contoh proses
pengolahan data adalah menginput, menyimpan, memanggil dan
menghapus data.”
Konsep 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.”
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 dari basis data yang meliputi :
a. Membentuk basis data,
tabel, indeks.
b. Mengubah struktur
table.
c. Menghapus basis data,
tabel atau indeks.
2. DML (Data Manipulation Language)
digunakan untuk
menjabarkan pemrosesan data pada basis data yang meliputi :
a. Menambahkan atau menyisipkan data baru ke basis data
b. Mengelolah data yang
tersimpan dalam basis data (query)
c. Mengubah dan
menghapus data dalam basis data.
3. DCL (Data Control Language)
digunakan untuk pengaturan hak akses
pengguna pada basis data yang meliputi :
a. Menugaskan hak akses
terhadap basis data kepada pengguna atau grup pengguna.
b. Membatalkan hak akses
pengguna terhadap 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.
Soal
Studi
Kasus
Universitas Muhammadiyah Sidoarjo yang
beralamatkan di Jl. Mojopahit 666B Sidoarjo akan membuat sebuah basis data untuk
menyimpan dan mengelolah data pegawai. Basis data yang akan dibuat diberi nama
basis data Kepegawaian. Basis data ini harus dapat mengelolah data pegawai dan
data absensi pegawai.
Pada Universitas ini pegawai dibedakan
menjadi pegawai tetap dan pegawai kontrak.Selain itu pegawai juga mempunyai
jabatan dan golongan yang berbeda. Dimana Jabatan terbagi atas : Rektor, Wakil
Rektor, Kepala Biro, Kepala UPT, Dekan, Kepala Program Studi, Kepala
Laboratorium, Staff, Keamanan, Kebersihan. Sedangkan Golongan ditentukan oleh
tingkat pendidikan yang di tempuh, dimulai dari golongan IA sampai golongan
IVD. Jam Kerja di Universitas dibedakan menjadi dua yaitu hari Senin s/d Jum'at
pukul 08.00-14.00 WIB sedangkan hari Sabtu pukul 08.00-12.00 WIB. Dari studi
kasus di atas :
1. Bacalah dengan
seksama studi kasus di atas kemudian analisa-lah basis data pengolahan data
kepegawaian seperti langkah-langkah diatas.
2. Kumpulkan laporan
(hasil analisa basis data ) sebelum Anda masuk ke pokok bahasan 2
Jawab :
1) Tabel
1.1 Daftar Entitas
No |
Entitas
Nama |
1 |
Pegawai |
2 |
Absensi |
3 |
Jabatan |
4 |
Golongan |
Tabel 1.2 Atribut msing-masing entitas
No |
Entitas Nama |
Atribut yang Diperlukan |
1 |
Pegawai |
Kode_pegawai, nama, kelamin, tempat_lahir,tanggal_lahir,alamat,
telepon,pend_akhir, jabatan, golongan |
2 |
Abesensi |
id_absen, kode_pegawai, tanggal_absen,
jam_masuk, Jam_keluar, keterangan |
3 |
Jabatan |
id_jabatan, jenis_jabatan |
4 |
Golongan |
id_golongan, jenis_golongan |
Tabel 1.3 Primary key
No |
Entitas Nama |
Primary Key |
1 |
Pegawai |
Kode_pegawai |
2 |
Absensi |
id_absensi |
3 |
Jabatan |
id_jabatan |
4 |
Golongan |
id_golongan |
Tabel
1.4 Krelasian antar entitas
Entitas yang berhubungan |
Nama Kerelasian |
Jenis Kerelasian |
Representasi |
|
Entitas I |
Entitas II |
|||
Pegawai |
Absensi |
Melakukan |
1-ke-n |
Penghubung
NIP dalam entitas absensi |
Pegawai |
Jabatan |
Mempunyai |
1-ke-1 |
Penghubung
jabatan dalam entitas pegawai |
Pegawai |
Golongan |
Memiliki |
1-ke-1 |
Penghubung golongan dalam entitas pegawai |
2) ER_Diagram
3) Model
Konsepsual ER_Digram
4) Kamus
Data (Structure Entitas)
Tabel
Pegawai
No |
Field |
Type |
Size |
Keterangan |
1 |
Kode_pegawai |
Vachar |
5 |
Primay
Key |
2 |
Nama |
Vachar |
20 |
|
3 |
Kelamin |
Enum |
|
(L/P) |
4 |
Tempat_lahir |
Vachar |
20 |
|
5 |
Tanggal_lahir |
Date |
|
|
6 |
Alamat |
Vachar |
50 |
|
7 |
Telepon |
Vachar |
12 |
|
8 |
Pendidikan_akhir |
Vachar |
10 |
|
9 |
id_jabatan |
Vachar |
5 |
Foreign
Key |
10 |
id_golongan |
Vachar |
5 |
Foreign
Key |
Tabel Absensi
No |
Field |
Type |
Size |
Keterangan |
1 |
id_absensi |
Vachar |
5 |
Primary
Key |
2 |
tanggal_absen |
Date |
|
|
3 |
kode_pegawai |
Vachar |
5 |
Foreign
Key |
4 |
Jam_kerja |
Enum |
|
|
5 |
Keterangan |
Vachar |
12 |
|
Tabel Jabatan
No |
Field |
Type |
Size |
Keterangan |
1 |
id_jabatan |
Vachar |
5 |
Pimary
Key |
2 |
Jenis_jabatan |
Vachar |
20 |
|
Tabel Golongan
No |
Field |
Type |
Size |
Keterangan |
1 |
id_olongan |
Vachar |
5 |
Pimary
Key |
2 |
jenis_golongan |
Vachar |
5 |
|
BAHASAN II
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. Kini SQL juga dijumpai pada berbagai platform, dari mikrokomputer hingga mainframe.
B. Elemen SQL
Elemen dasar SQL
mencakup pernyataan, nama, tipe data, konstanta, ekspresi, operator relasi,
operator logika dan fiungsi bawaan.
a. Pernyataan
Merupakan
perintah SQL yang meminta sesuatu tindakan kepada DBMS (Database Management
System).
b. Nama
Nama
digunakan sebagai identitas bagi objek-objek pada DBMS (Database Managenent
System). Contoh objek pada DBMS adalah tabel, kolom dan pengguna
c. Tipe
Data
Setiap
data memiliki tipe data. Berikut ini adalah tipe data dalam MySQL :
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 |
FLOAT |
Bilangan
decimal dengan single-precission |
Minimum
± 1.175494351e-38 Maksimum
± 3.402823466e+308 |
DOUBLE |
Bilangan
decimal dengan double-precission |
Minimum
± 2.2205738585072014-308 Maksimum
± 1.7976931348623457+308 |
DECIMAL (M,D) |
Bilangan
float (decimal) yang dinyatakan sebagai string, M adalah jumlah digit
dibelakang koma |
Tergantung
pada nilai M dan D |
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 |
TINYBLOR |
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
benukuran 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 mediun (sedang) |
224 -1
byte |
LONGTEXT |
Sting
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
anggota himpunan |
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” |
DATE
TIME |
“1000-01-01
00:00:00” s.d. “9999-12-31 23;59;59” |
“00:00:00
00:00:00” |
d. Konstanta
Konstanta menyatakan nilai yang tetap
atau tidak berubah. Konstanta sering di pakai pada perintah SELECT. Konstanta
dibagi menjadi 2:
1. Konstanta bertipe numerik : 20,-3,15
2. Konstanta bertipe karakter: Saniya
nb:
Konstanta bertipe karakter atau String diapit oleh tanda petik tunggal. Dan konstanta dengan nilai pecahan desimal adalah berupa tanda titik.
e. Operator
Aritmatika
Operator Aritmatika adalah ekspresi untuk memperoleh suatu nilai dari hasil perhitungan.
Simbol |
Keterangan |
* |
Perkalian |
/ |
Pembagian |
+ |
Penjumlahan |
- |
Pengurangan |
% |
Sisa pembagian |
f. Operator
Relasi
Merupakan
operator yang digunakan untuk membandingkan suatu nilai dengan nilai yang lain
Simbol |
Keterangan |
= |
Sama dengan |
> |
Lebih besar |
< |
Lebih kecil |
>= |
Lebih besar atau sama dengan |
<= |
Lebih kecil atau sama dengan |
<> |
Tidak sama dengan |
g. Operator Logika
Simbol |
Keterangan |
NOT atau ! |
Sebagai
negasi atau pembalik nilai |
OR atau || |
Atau |
AND atau && |
Dan |
h. Fungsi
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 kiteria tertentu |
NOT LIKE |
Apakah
suatu nilai tidak sesuai dengan kriteia tertentu |
i. Aggregate
Functions (Fungsi Agregat)
Suatu fungsi yang
digunakan untuk melakukan sumnmary, fungsi statistik standar yang dikenakan
pada suatu tabel atau query.
Simbol |
Keterangan |
SUM |
digunakan untuk
mendapatkan nilai total |
AVG |
digunakan untuk
mencari rata-rata |
COUNT(x) |
digunakan untuk
menghitung jumlah record (baris) |
MAX |
digunakan untuk
mencari nilai terbesar |
MIN |
digunakan untuk
mencari nilai terkecil |
C. Perintah-perintah MySQL :
a. Perintah fasilitas bantuan pada MySQL.
Mysql>help; atau Mysql>\h;
b. Perintah menampilkan versi MySQL yang digunakan
Mysql>select version();
c. Perintah memubuat database di MySQL
Mysql>create database perpustakaan;
d. Perintah untuk mengaktifkan database yang akan digunakan
Mysql>use perpustakaan;
e. Perintah menghasilkan tanggal sekarang dari system
Mysql>select curdate;
BAHASAN III
DATA DEFINITION LANGUAGE (DLL)
A. Data Definiton Language (DLL)
DLL merupakan bagian dari sql yang digunakan untuk mendefinisikan struktur dan kerangka data dan obyek basis data. Bisa juga dikatakan merupakan kelompok perintah yang berfumgsi unfuk meudefinisikan atribut-atribut basis data, tabel, batasan-batasan terhadap suatu atribut, serta hubungan antar tabel
B. Perintah-perintah DDL
Berikut ini perintah-perintah sql
untuk 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 |
Contoh :
1. Buat sebuah database ke dalam MySQL.
# Membuat database kepegawaian
Mysql>create database kepegawaian
2. Buat tabel-tabel beserta Primery key dan Foreign Key
# Mengaktifkan database
Mysql>use kepegawaian
# Membuat Tabel Kepegawaian
>Create table
pegawai(
Kode_pegawai varchar(5) not null primary key,
Nama varchar(25),
Kelamin enum(‘L’,’P’),
Tmpt_lahir varchar(50),
Tgl_lahir varchar(15),
Alamat varchar(50),
Telepon varchar(15),
Pend_akhir varchar(10),
Id_jabatan varchar(5),
Id_golongan
varchar(5));
Alter table kepegawaian add constraint fk foreign key(id_jabatan) references jabatan(id_jabatan) on update cascade on delete no action;
Alter table kepegawaian add constraint fk1 foreign key(id_golongan) references jabatan(id_golongan) on update cascade on delete no action;
# Membuat Tabel Jabatan
> Create table
jabatan(
Id_jabatan varchar(5)
not null primary key,
Jenis_jabatan
varchar(35) not null);
> desc golongan;
# Membuat Tabel Golongan
> Create table
jabatan(
Id_jabatan varchar(5)
not null primary key,
Jenis_jabatan
varchar(35) not null);
> desc golongan;
# Membuat Tabel Absensi
> create table absensi(
Id_absensi int not null auto_increment key,
Tgl_absen date,
Kode_pegawai varchar(5),
Jam_masuk time,
Jam_keluar time,
Keterangan varchar(15));
> desc absensi;
3. Pegawai di Universitas Muhammadiyah Sidoarjo juga dibedakan
berdasarkan bagian yang meliputi : Rektorat, Biro Administrasi Akademik (BAA),
Biro Administrasi Keuangan (BAK), Biro Administrasi Umum (BAU), Perpustakaan,
PMB, LPPM, BPM Pusdakom. Buatlah tabel dengan ketentuan diatas.
# Membuat Tabel Bagian
>create table bagian(
kd_bagian varchar(5) not null primary key,
nama_bagian varchar(35) not null);
Relasikan tabel pegawai dengan tabel bagian dan lihat perubahan
tabelnya
# Merelasikan tabel pegawai dengan tabel bagian menggunakan perintah
ALTER
alter table pegawai addbkd_bagian varchar(5);
BAHASAN IV
DATA
MANIPULATION LANGUAGE (DML)
Data Manipulation Language (DML)
merupakan perintah-perintah yang berfungsi untuk melakukan manipulasi data ataupun objek-objek yang ada didalam tabel.
Perintah DML sebagai berikut :
- INSERT
digunakan untuk menambahkan
baris pada suatu tabel. Syntax:
INSERT INTO namatabel VALUES (nilai1,nilai2,nilai-n);
- UPDATE
digunakan untuk mengubah isi
data pada satu atau beberapa kolom pada suatu tabel. Syntax:
UPDATE namatabel SET kolom1=nilai1,kolom2=nilai2 [WHERE kondisi];
- SELECT
digunakan untuk menampilkan
isi dari suatu tabel yang dapat dihubungkan dengan tabel yang lainnya. Syntax:
SELECT * FROM namatabel;
- DELETE
digunakan untuk menghapus satu baris-baris dengan kondisi tertentu atau seluruh baris. Syntax:
DELETE FROM namatabel [where kondisi];
Contoh :
1. Masukkan data kedalam masing-masing tabel minimal 5 data
Ø Insert Tabel Jabatan
>insert into jabatan values (‘J001’,’Rektor’); insert into
jabatan values (‘J002’,’Wakil Rektor’); insert into jabatan values
(‘J003’,’Dekan’); insert into jabatan values (‘J004’,’Kaprodi’); insert into
jabatan values (‘J005’,’Keamanan’); insert into jabatan values (‘J006’,’Kebersihan’);
>select * from jabatan;
Ø Insert Tabel Golongan
>insert into golongan values (‘V001’,’1A’); insert into
golongan values (‘V002’,’2A’); insert into golongan values (‘V003’,’3A’); insert
into golongan values (‘V004’,’4B’); insert into golongan values (‘V005’,’5B’); insert into golongan
values (‘V006’,’6C’);
>Select * from golongan;
Ø Insert Tabel Bagian
>insert into bagian values (‘K001’,’Rektorat’); insert into
bagian values (‘K002’,’Biro AdministrasiAkademik’); insert into bagian values
(‘K003’,’Biro AdministrasiKeuangan’); insert into bagian values
(‘K004’,’Pusdakom’); insert into bagian values (‘K005’,’PMB’); insert into
bagian values (‘K006’,’Perpustakaan’);
>Select * from bagian;
Ø Insert Tabel Pegawai
>insert into pegawai values (‘D001’,’ Saniya’,’P’,’Pasuruan’,’2001-12-28’,’Bangil’,’081332997037’,’S1’,’J001’,’V001’,’T’,’B001’); insert into pegawai values (‘D002’,’Lala’,’P’,’Lawang’,’2001-10-15,’Wonosari’,’082230450609’,’S1’,’J002’,’V002’,’B002’); insert into pegawai values (‘D003’,’Epik’,’P’,’Kalimantan’,’2002-01-02’,’Pontianak’,’085750191344’,’S1’,’J003’,’V003’,’B003’); insert into pegawai values (‘D004’,’Ipink’,’P’,’Sidoarjo’,’2001-06-06’,’Waru’,’082136652300’,’S1’,’ J004’,’V004’,’B004’); insert into pegawai values (‘D005’,’Anggi’,’P’,’Kalimantan’,’2001-01-01’,’Sangatta’,’089802135666’,’S1’,’J005’,’V005’,’B005’); insert into pegawai values (‘D006’,’Audrey’,’P’,’Kalimantan’,’2001-03-15’,’Sangatta’,’082255034760’,’S1’,’J005’,’V005’,’B005’);
>Select * from kepegawaian;
Ø Insert tabel Absensi
>insert into absensi values(1, ’2001-12-28’,’D001’,’07:00:00’,’16:00:00’,’Hadir’); insert into absensi values(2, ’2001-10-15’,’D002’, ’07:00:00’,’16:00:00’,’Tidak Hadir’); insert into absensi values(3,’2002-01-02’,’D003’, ’07:00:00’,’16:00:00’,’Hadir’); insert into absensi values(4,’2001-06-06’,’D004’, ’07:00:00’,’16:00:00’,’Tidak Hadir’); insert into absensi values(5,’2001-01-01’,’D005’, ’07:00:00’,’16:00:00’,’Hadir’); insert into absensi values(6,’2001-03-15’,’D006’, ’07:00:00’,’16:00:00’,’Tidak Hadir’);
>select * from absensi ;
Contoh
penerapan manipulasi data pada database yang sudah di buat yang meliputi :
Ø Perintah Update
Update
bagian set nama_bagian=’Penerimaan Mahasiswa Baru’ where kd_bagian=’B005’;
Ø Perintah Select tanpa klausa
Select *
from bagian;
Ø Perintah Select disertai klausa order by
(urutkan berdasarkan Ascending dan Descending)
Select * from bagian order by kd_bagian asc;
Ø Perintah Select disertai klausa group by
Select kode_pegawai, nama from kepegawaian group by nama;
Ø Perintah Select disertai klausa having
Select kode_pegawai, nama, alamat from kepegawaian group by nama having alamat!=’Sangatta’;
Ø Perintah Select disertai klausa Limit
Select kode_pegawai, nama, alamat from kepegawaian limit 2;
Ø Perintah Select disertai klausa Where
Select kode_pegawai,nama,alamat from
kepegawaian where kelamin=’P’;
BAHASAN V
QUERY & VIEW
Query
Merupakan suatu proses pengolahan data
yang digunakan untuk memberikan hasil dari basis data berdasarkan kriteria
tertentu
1.
Aturan dalam melakukan query
antar tabel :
a.
Setiap
field disebutkan bersama dengan nama tabelnya,dipisahkan tanda titik (.) Syntax
:
Namatabel.namafield.
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.
select * from buku cross join pengarang limit 5;
b. Operator Inner Join. Operator 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.
Mysql> select * from pengarang join buku on (pengarang.kode_pengarang=buku.kode_pengarang);
c. Operator 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. 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;
3.
UNION, INTERSECT dan EXCEPT
a. 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.
Mysql > select tahun_terbit,judul_buku from buku where tahun_terbit=’2003’ union select tahun_terbit,judul_buku from buku where tahun_terbit=’2004’;
b. INTERSECT
Intersect merupakan operator yang digunakan untuk memperoleh data dari dua buah query. Syntax :
SELECT * FROM namatabel1
INTERSECT SELECT * FROM namatabel2
c.
EXCEPT / Set Difference
Except
merupakan operator yang digunakan untuk memperoleh data dari dua buah query. Syntax
:
SELECT * FROM namatabel1 EXCEPT
SELECT * FROM namatabel2
d. 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. Syntax :
IN
Mysql > select * from pengarang where kode_pengarang in(select kode_pengarang from buku);
NOT IN
Mysql > select * from pengarang where kode_pengarang not in (select kode_pengarang from buku);
EXISTS
Mysql > select * from pengarang where exists (select * from buku where
pengarang.kode_pengarang=buku.kode_pengarang);
NOT EXIST
Mysql > select*from pengarang where not exists (select*from buku where
pengarang.kode_pengarang=buku.kode_pengarang);
View
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
Pengunaan 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;
Eksekusi perintah berikut untuk memastikan view
telah dibuat :
SELECT * FROM information_schema.views WHERE table_name = ‘view_peminjaman’;
Lihat hasil query view view_buku;
SELECT * FROM view_buku;
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;
BAHASAN VI
DATA CONTROL LANGUAGE (DCL)/HAK AKSES USER
Pemahaman
Hak Akses
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.
Mengatur Hak Akses
Untuk MySQL versi 3.22 keatas dalam manajemen user dapat menggunakan perintah GRANT dan REVOKE untuk mengatur hak akses pemakai (user).
1. Perintah GRANT
Dipergunakan untuk membuat user baru dengan izin aksesnya.
Bentuk umum :
GRANT jenis_akses (“nama_kolom) ON nama_database TO
nama_user IDENTIFIEDBY “nama_password” [WITHGRANT pilihan akses]
Atau
GRANT hak_akses ON
namatabel TO pemakai;
2. Perintah REVOKE
Untuk melakukan pencabutan atau penghapusan sementara hak akses
Bentuk umum :
REVOKE hak_akses ON nama_database FROM nama_user;
Atau
REVOKE hak_akses ON namatabel FROM nama_user;
Membatasi
Hak Akses
Hak akses perlu dibatasi untuk memudahkan dalam mengatur dan mengawasi pemakaian data serta menjaga keamanan data. Syntax :
GRANT SELECT, UPDATE
(kode_buku,judul_buku,tahun_terbit) On buku TO ‘edi’@’localhost’ ;
Hak akses
penuh
Untuk memberikan hak akses penuh kepada pemakai, dapat memakai perintah klausa ALLPRIVILEGES. Syntax :
GRANT ALL PRIVILEGES
ON buku to siska;
Hak akses
kepada public
Untuk memberikan hak aksess kepada banyak user dapat menggunakan klausa PUBLIC beberapa DBMS ada yang menggunakan klausa WORLD. Syntax :
GRANT SELECT, INSERT
ON buku to ‘ ‘;
Pencabutan
hak akses
- Untuk melakukan pencabutan atau penghapusan sementara hak akses user menggunakan perintah REVOKE
- Untuk menghapus user secara permanen dari basis data menggunakan perintah DELETE
Penggunaan DCL
1. Membuat hak akses user dengan privilege
a. Hak akses Select SELECT pada salah satu tabel didatabase and.
grant select on pegawai to 'Sania'@'localhost';
b.
Hak akses Select, Insert, dan Update pada salah satu
tabel didatabase anda.
grant select, insert, update, delete on pegawai to 'dita'@'localhost';
c.
Hak akses penuh terhadap basis data anda.
grant all on pegawai to 'Sania'@'localhost';
d. Hak akses untuk public terhadap basis data anda.
grant all privileges on pegawai to 'Saniya'@'localhost';
2. Mencabut hak akses
a. Cabut hak akses salah satu user
revoke select, insert on pegawai from 'Sania'@'localhost';
b. Cabut hak akses secara permanen user yang mempunyai akses penuh
revoke all on pegawai from 'Sania'@'localhost';

Semoga rangkuman
"Basis Data" ini bermanfaat dan apabila ada salah kata di dalam
blog yang saya tulis, saya minta maaf.
Jika ingin mengenal
lebih dalam tentang Universitas saya, silahkan akses link berikut: umsida.ac.id, fst.umsida.ac.id
Sekian dan Terima
Kasih.
instagram @saniaizza_
Tidak ada komentar:
Posting Komentar