Gua disini akan memberikan rangkuman tentang " BASIS DATA ". Pastinya temen - temen semua tidak sabar ya wkwkkw. Berikut materi yang gua kasih ke temen - temen semua guna dapat membantu temen - temen semua agar lebih paham :).
ENJOYYYY !!!!!!
POKOK BAHASAN 1
BASIS DATA, MODEL DATA, DIAGRAM E-R
1.
Konsep Sistem Basis Data
Basis data adalah kumpulan
data yang disimpan secara sistematis di dalam komputer dan dapat atau
dimanipulasi serta dapat diakses dengan mudah dan tepat menggunakan perangkat
lunak (program aplikasi) untuk menghasilkan sebuah informasi.
System basis data merupakan
ruang lingkup yang lebih luas dari basis data. System basis data memuat
sekumpulan basis data dalam suatu system yang mungkin tidak ada hubungan antara
satu engan yang alain secara keseluruhan mempunyai hubungan sebagai sebuah
system yang didukung oleh komponen lainnya.
Komponen Sistem Basis Data:
Perangkat Keras (Hardware), Sistem Operasi (Operating System), Basis Data
(Database), DBMS (Database Management System), Pemakai (User).
DBMS (Database Management
System) merupakan basis data dan set perangkat lunak (software) untuk pengelolaan basis data.
2.
Konsep Model Data
Model data merupakan suatu
cara untuk menjelaskan tentang data-data yang tersimpan dalam basis data dan
bagaimana hubungan antar datav 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).
Meruapakan hipunan data dan
relasi yang menjelaskan hubungan logic antar data dalam suatu basis data
berdasarkan pada obyek datanya. Salah satunya adalah Entity elationship Model.
Model Entity Relationship Diagram (ERD) atau Conceptual data model (CDM) Merupakan suatu model untuk menjelaskan
hubungan antar data dalam basis data erdasarkan suatau presepsi bahwa dunia
nyata terdiri dari obyek-obyek dasar (entitas) yag mempunyai hubungan atau
relasi antar obyek-obyek dasar (entitas) tersebut yang dilukiskan dengan
menggunakan symbol-simbol grafik tertentu.
2. Model Data Berbasis Record (Record Based Data Model)
Model ini berdasarkan pada
record/rekaman untuk menjelaskan kepada para pemakai tentang logika antar data
dalam basis data. Salah satunya adalah Relation model.
Model Rasional merupakan
model data yang menjelaskan pada pengguna tentang hubungan logic antar data
dalam basis data dengan mempresentasikannya ke dalam bentuk tabel-tabel yag
terdiri atas sejumlah basis yang menunjukkkan record dan kolom yang menunjukkan atribut tertentu.
3. Physical Based Dta Model
Model ini berdasarkan pada
teknis penyimpanan record dalam bais data. Mode ini jarang digunakan untuk
memodelkan data kepada pemakai karena kerumitan dan kompleksitasnya yang
tinggi.
3.
Bahasa Basis Data
Bahasa yag digunakan untuk
mendefinisikan, mengelolah dan memanipulasi basis data dikelompokkan 3 macam
yaitu :
1. DDL (Data
Definition Language) digunakan untuk
mendefiisikan struktur dan kerangka dari basis data yang meliputi :
a. Membentuk basis data, tabel, indeks.
b. Mengubah struktur table.
c. Mengahapus basis data, tabel atau indeks.
2. DML (Dta
Manipulation Language) digunakan
untuk menjabarkan pemrosesan data data yang meliputi :
a. Menambahkan atau meyisipkan data baru ke basis data
b. Mengelolah data yang tersimpan dalam bais data
(query)
c. Mengubah dan meghapus data dalam basis data.
3. DCL (Data
Control Language) digunakan untuk
prngaturan hak akses prngguna pada basis data yang meliputi :
a. Menugaskan model data yang dikembangkan berdasarkan
obyek atau entitas. ER_D berguna membantu perancangan atau analis system pada
saat melakukan analisis dan perancangan basis data karena model ini dapat
menunjukkan macam data yang dibutuhkan dan direalisasikan antar data di
dalamnya.
1. Komponen ER_Diagram
Sebuah diagram ER tersusun
ats tiga komponen, yaiti entitas yang merupakan obyek dasar yang terlibat dalam
system, atribut yang berperan sebagai penjelas entitas, kerelasian antar
entitas menunjukkan yang terjadi diantara dua entitas.
a. Entitas (Entity)
Entitas menunjukkan
obyek-obyek dasar yang terkait di dalam system. Obyek dasar dapat berupa orang,
benda atau halyang keterangannya perlu disimpan di dalam basis data.
Macam-macam Entitas :
·
Entitas
Reguler
Entitas ini disebut dengan
juga entitas dominan (strong entity). Keberadaan entitas ini tidak tergantung
pada entitas yang lain.
Contoh :
Matakuliah_konsentrasi, bergantung pada entitas Matakuliah.
·
Entitas
dependen
Entitas ini disebut juga
entitas tidak bebas/independen atau entitas lemah (weal entitas) atau entitas
subordinat. Entitas ini dapat muncul jika ada entitas lain sebagai acuannya
(entitas regular).
·
Entitas
suoer type atau sub type
Entitas super type merupakan entitas yanga lebih rendah yiatu entitas yag
menjadi entitas bagian darai entita lain.
Contoh : Entitas
karyawan_tetap dan karyawan_tidak_tetap
b. Atribut (Attribute)
Merupakan
keterangan-keterangan yang terkait pada sebuah entitas yang perlu disimpan ke
dalam dataase. Attribute berfungsi sebagai penelas pada sebuah entitas. Contoh
: mahaiswa mempunyai atribut nim, nama, jurusan, kelamin, tempat_lahir,
tanggal_lagir, dsb.
Atribut pada sebuah entitas
dibagi menjadi 2 yaitu :
·
Atribut
sederhana (simple attribute), yaitu
jika atribut berisi sebuah komponen/nilai/elementer.
Contoh : pada entitas mahsiswa
adalah tahun mausk = 2013
·
Atribut
komposit (composite attribute), yaitu
jika atribut berisi lebih dari sebuah komponen nilai.
Contoh : pada entitas
mahasiswa adalah tanggal lahir yang terdiri atas komponen nilai tanggal, bulan,
tahun.
c. Kerelasian antar entiatas (Entity Relationship)
Mendefinisikan hubungan antara
2buah entitas. Jenis
kerelasian antar entitas dibagi menjadi 3 sebagai berikut :
1. Kerelasian
jenis suatu ke satu (one to one), kerelasian terjais jika kejadian atau
transaksi di antara dua entitas yangberhubunhan hanya memungkinkan terjaid
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 dalm entitas pertama dan dapat terjadi lebih
dari satu kali kejadian atau transaksi pada entitas kedua.
·
Satu
ke banyak (one to many)
Dimana satu tupel pada entitas
A dapat berhubungan dengan banyak tupel pada entitas B, tetapi tidak
sebaliknya, dimana setiap tupel pada enttal B berhubungan dengan paling banyak
satu tupel pada entitas A.
·
Banyak
ke satu (many to one)
Dimana setiap tupel pada
entitas A dapat berhubungan dengan paling banyak satu tupel pada entitas B,
tetapi tidak sebaliknya, dimana setiap tupel entitas A berhubungan dengan
paling banyak satu tupel pada entitas B.
3. Kerelasian
jenis banyak ke banyak (many to many)
Kerelasian jenis ini terjadi jika kejadian atau transaksi di
antara dua entitas ynag berhubungan memungkinkan terjadi lebih dari satu kali
dalam entitas pertama dan kedua.
2. Langkah-langkah Membuat diagram ER_Diagram
Untuk membuat ER_Diagram
secara lengkap apat dilakukan dengan mengikuti langkah-langkah sebagai berikut
:
·
Identifikasikan
setiap entitas yag terlibat.
·
Lengkapi
masing-masig entitas dengan atribut yag sesuai.
·
Tentukan
primary key dari masing-masing entitas.
·
Identifikasikan
setiap kerelasian berikut jenisnya ynag terjadi di antara entitas dengan
membuat tabel daftar kerelasian antar entitas.
·
Gambarkan simbil-simbol entitas, atribut, dan kerelasian
antar entitas secara jelas dan tidak bertabrakan/ Cek ER_Diagram yang
terbentuk, dalam hal : kelengkapan entitas, kelengkapan atribut, kelngkapan
kerelasian antar entitas dan jenis kerelasian antar entitas.
POKOK BAHASAN 2
STRUCTURED
QUERY LANGUAGE (SQL)
- SQL (Structured Query Language)
SQL merupakan suau Bahasa
(language) standar menurut ANSI (American National Standard Institute) yang
digunkan untuk mengakses basis data. SQL pertama kali diterapkan pada system R
(sebuah proyek riset pada laboratorium riset San Jose, IBM). Kini SQL juga
dijumpai pada berbagai platform, dari mikrokomputer hingga mainframe SQL dapat
digunakan baik secara berdiri maupun dilekatkan pada bahsa-bahasa lain seperti
C dan Delphi. SQL juga telah menjadi bagian dari sejumlah DBMS, seperti Oracle, Sybase,
MuSQL dan Informix.
- Elemen SQL
Elemen dasar SQL mencakup
pernyataan, nama, tipe data, ekspresi, operator relasi, operator logika dan
fungsi bawaan.
a. Pernyataan
Merupakan perintah SQL yang
meminta sesuatu tindakan kepada DBMS (Database
Management System). SQL memiliki kirakira 30 pernyataan. Beberapa pernyatan
dasar SQL dapat dilihat pada tabel berikut :
Tabel 2.1
Pernyataan SQL
|
Pernyataan
|
Keterangan
|
|
CREATE
|
Menciptakan basis data, tabel atau indeks
|
|
ALTER
|
Mengubah struktur tabel
|
|
DROP
|
Menghapus basis data, taebel atau indeks
|
|
COMMIT
|
Mengakhiri sebuah eksekusi transaksi data
|
|
ROLLBACK
|
Mengembalikan ke keadaan semula sekiranya suatu
intraksi gagal dilaksanakan.
|
|
INSERT
|
Menambahkan sebuah baris 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 mengguakan perintah : INSERT, SELECT, UPDATE, DELETE.
c. Data Control Language (DCL) : Digunakan untuk
mengontrol hak para pemakai data dengan perintah : GRANT, REVOKE.
b. Nama
Nama digunakan sebagai identitas bagi objek-objek pada DBMS (Database Management 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 :
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
|
|
BEGINT
|
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 decimal dengan double-precission
|
Minimum ± 2.2205738585072014e-308
Maksimum ± 1.7976931348623457e+308
|
|
DECIMAL(M,D)
|
Bilangan float (decimal) yang dinyatakan sebagai
string. M adalah jumlah digit yang disimpan dalam suatu kolom N adalah jumlah
digit dibelakan 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 negative dan positif.
-
Unsigned
: Digunakan agar data yang dimasukkan bukan data negative (>=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
|
2^8-1 byte
|
|
BLOB
|
BLOB berukuran kecil
|
2^16-1 byte
|
|
MEDIUMBLOB
|
BLOB berukuran sedang
|
2^24-1 byte
|
|
LONGBLOB
|
BLOB berukuran besar
|
2³²-1 bayte
|
|
TINYTEXT
|
String text yang sangat kecil
|
2^8-1 byte
|
|
TEXT
|
String text berukuran kecil
|
2^16-1 byte
|
|
MEDIUMTEXT
|
String text berukuran medium (sedang)
|
2^24-1 byte
|
|
LONGTEXT
|
String text berukuran besar
|
2³²-1 byte
|
|
ENUM
|
Enumerasi, kolom dapat diisi
dengan atu ember enumerasi
|
65535 anggota
|
|
SET
|
Himpunan, kolom dapat diisi
dengan beberapa nilai anggota himpunan.
|
64 anggota 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”
|
d. 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 decimal adalah berupa tanda titik.
e. 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
|
Symbol
|
Keterangan
|
|
*
|
Perkalian
|
|
/
|
Pembagian
|
|
+
|
Penjumlahan
|
|
-
|
Pengurangan
|
|
%
|
Sisa pembagian
|
f.
Operator
Relasi
Merupakan operator yang
digunakan untuk membandingkan suatu nilai dengan nilai yang lain. Biasanya operator relasi
digunakan bersamaan dengan operator logika dalam membantu untuk menampilkan
informasi dengan kriteria tertentu.
Simbol-simbol yang dapat
digunakan papa operator rrelasi :
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
|
g. Operator Logika
Oprator 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
|
h. 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 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
|
i.
Aggregate
Functions (Fungsi Agregat)
Fungsi adalah sebuah
program yang menghasilkan suatu nilai jika dipanggil. Fungsi agregat adalah
fungsi standar di dalam SQL, suatu fungsi yang digunakan untuk melakukan
summary, fungsi statistic standar yang dikenakan pada suatu tabel atau query.
1. SUM(ekspresi)
2. Fungsi ini digunkan untuk
mendapatkan nilai total dari suatu kolom pada suatu tabel.
3. AVG(ekspresi).
Fungsi ini digunakan untuk
mencari rata-rata nilaialam suatu kolom dari suatu tabel atau ekspresi.
Ekspresi dalam fungsi AVG umunya 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
menerima nilai terbesar dari suatu kolom dari suatu tabel. Kolom yang dicari nilai terbesarnya memiliki tie
data numeruk.
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.
POKOK BAHASAN 3
DATA
DEFINITION LANGUAGE (DDL)
A.
Data Definition Language (DDL)
DDl merupakan bagian dari
sql yang digunakan untuk mendefinisikan struktur dari kerangka data dan obyek
basis data. Basis juga dikatakan merupakan kelompuk perintah yang berfungsi
untuk mendefinisikan atribut-atribut basis data, tabel, batasan-batasan
terhadap suatu atribut, serta hubungan antar tabel.
Tabel 3.1 Perintah-perintah dalam DDL
|
Perintah
|
Keterangan
|
|
Create Database
|
Membuat basis data
|
|
Drop Database
|
Menghapus basis data
|
|
Create Table
|
Membuat table
|
|
Alter Table
|
Mengubah atau menyisipkan kolom ke dalam tabel
|
|
Drop Table
|
Menghapus tabel dari basis data
|
|
Create Index
|
Mebuat Index
|
|
Drop Index
|
Menghapus Index
|
B.
Perintah–perintah DDL
Berikut ini
perintah-perintah sql untuk Data Definition Language :
a. Membuat Database
Syntax :
CREATE DATABASE namadatabase;
Dimana :
Nama database yang dibuat
tidak boleh mengandung apasi dan tidak boleh memiliki nama yang sama dengan
database lain di MySQL. Berikut
ini perintah untuk membuat basis data dengan nama perpustakaan :
prakDB/alfan_indra_kusuma(273)create
database perpustakaan;
b. Menampilkan daftar Database
Untuk menampilkan daftar basis data yang ada di
MySQL dapat menggunakan perintah :
SHOW DATABASE;
Berikut ini perintah untuk menampilkan daftar basis
data :
prakDB/alfan_indra_kusuma(273)show databases;
c.
Menghapus Database
Untuk melakukan pengahpusan terhadap basis data
yang sudah dibuat.
Syntax :
DROP DATABASE
namadatabase;
Dimana :
Database yang akan dihapus
harus sesuai dengan nama database. Berikut ini perintah untuk menghapus
database dengan nama perpustakaan :
prakDB/alfan_indra_kusuma(273)drop database perpustakaan;
d.
Mengaktifkan Database
Sebelum membuat suatu tabel,
terlebih dahulu harus megaktifkan database yang akan digunakan untuk menyimpan
tabel-tabel tersebut dengan perintah :
USE namadatabase;
Karena database yang sudah
dibuat telah dihapus maka buat jembali database perpustakaan. Kemudian
aktifkan database tersebut dengan perintah :
prakDB/alfan_indra_kusuma(273)use perpustakaan;
e.
Membuat Tabel
Dalam basis data tabel atau field berfungsi untuk
menyimpan record atau data. Untuk membuat tabel Syntaxnya adalah :
CREATE TABLE namatabel
(
Field TipeData1 ([lebar]),
Field TipeData2 ([lebar]),
…
Field TipeData3 ([lebar])
);
Keterangan :
Nama tabel tidak boleh mengandung spasi (space)
tetapi jika menginginkan ada spasi harus menggunakan tanda penghubung
(nama_tabel). Field merupakan atribut pertama data TipeData1 merupakan tipe
data untuk atribut pertama. Jika igin membuat tabel dengan atribut lebih
darisatu, maka setelah pendefisinian tipe data sebelumnya diberikan tanda koma
(,).
Berikut ini perintah untuk membuat tabel dengan
nama pengarang :
mysql> create table pengarang (
kode_pengarang
varchar(5),
nama_pengarang
varchar(5));
prakDB/alfan_indra_kusuma(273)create table pengarang (
kode_pengarang
varchar(5),
nama_pengarang
varchar(35));
Syntax tambahan :
Maka tabel
pengarang telah terbentuk, untuk melihat hasilnya dapat digunakan perintah :
prakDB/alfan_indra_kusuma(273)SHOW TABLES;
Untuk melihat struktur yang
telah dibuat (dalam tabel hal ini buku) syntaxnya adalah :
DESC namatabel;
Contoh :
prakDB/alfan_indra_kusuma(273)desc pengarang;
f.
Mendefinisikan null / not null
Ketika membuat tabel, beberapa field harus diatur agar field terentu
harus diisi. Biasanya field ini adalah sebagai field utama atau kunci, juga
sebagai identifikasi sehingga tidak boleh kosong.
Syntax :
CREATE TABLE namatabel;
(
Field1 TipeData1 ([lebar]) NOT NULL,
Field2 TipeData2 ([lebar]) NOT NULL,
…
Field3 TipeData3 ([lebar])
);
Contoh :
prakDB/alfan_indra_kusuma(273)create table pengarang
(
kode_pengarang varchar(5) not
null,
nama_pengarang varchar(35) not
null);
a.
Mendefinisikan Nilai Bawaan (Default)
Nilai default adalah nilai yang otomatis diberikan oleh
system untuk suatu atribut ketika ada penambahan baris baru, sementara nilai
pada atribut tidak diisi oleh pengguna. Syntax :
CREATE TABLE namatabel;
(
Field1 TipeData1 ([lebar]),
Field2 TipeData2 DEFAULT nilai
);
Dimana nilai adalah nilai default dariatribut tersebut.
Contoh :
prakDB/alfan_indra_kusuma(273)create table
buku (
Kode_buku
varchar(5) not null,
Judul_buku
varchar(15) not null,
harga
integer default 0,
tahun_terbit
varchar(5),
kode_pengarang
varchar(5),
kode_penerbit
varchar(5));
b.
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. Kry di dalam
database berfungsi sebagai suatu cara unuk 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
(
Field TipeData1
([lebar]) NOT FULL PRIMARY KEY,
Field TipeData2
([lebar])
);
Cara 2 :
CREATE TABLE
namatabel
(
Field TipeData1
([lebar]),
Field TipeData2
([lebar]),
PRIMARY
KEY(Field1)
);
Cara 3:
ALTER TABLE
namatabel ADD CONSTRANT namaconstraint PRIMARY KEY (namakolom) ;
Berikut ini perintah untuk
membuat tabel pengarang dengan atribut kode_pengarang tipe datanya varchar(5),
nama_pengarang tipe datanya varchar(15) engan mendfinisikan nilai not null dan
primary key untuk antribut kode_pengarang :
Contoh 1 :
Mysql> create
table pengarang (
Kode_pengarang varchar (5) not null
primary key,
Nama_pengarang varchar(15) not
null);
Contoh 2 :
Mysql> create
table pengarang (
Kode_pengarang varchar (5) not null
primary key,
Nama_pengarang varchar(15) not null
Primary
key (kode_pengarang));
Contoh 3:
Mysql> create
table pengarang (
Kode_pengarang varchar (5) not
null,
Nama_pengarang varchar(15) not null);
penambahan primary key :
prakDB/alfan_indra_kusuma(273)alter table
pengarang add constraint pk primary key (kode_pengarang);
c.
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 namatabel1 DROP PRIMARY KEY ;
Berikut ini perintah yang digunakan untuk menghapus primary key pada
tabel buku :
prakDB/alfan_indra_kusuma(273)alter table pengarang drop
primary key;
d. Menentukan Foreign Key Pada Tabel
Untuk membuat foreign key, maka harus dipastikan
bahwa tabel dan atribut yang dirujuk (tabel induk dari foreign key) sudah
definisikan terlebih dahul. Perintah yang digunakan sebagai berikut :
CREATE TABLE namatabel
(
Field1 TipeData1 ([lebar]),
Field2 TipeData2 ([lebar]),
FOREIGN KEY (Field2) REFERENCES
namatabelinduk
(namafieldinduk)
ON UPDATE CASCADE
ON
DELETE NO ACTION
)
atau
ALTER TABEL namatabel ADD CONSTRAINT
namaconstraint FOREIGN KEY (namafield) REFERENCES namatabelinduk
(namafieldinduk) ON UPDATE CASCADE ON DELETE NO ACTION;
Berikut ini perintah untuk membuat tabel buku
beserta kolom-kolomnya :
Mysql> create tabel buku (
Kode_buku
varcahar(5) not null primary key,
Judul_buku
varchar(15) not null,
harga
integer default 0,
tahun_terbit
varchar(5),
kode_pengarang
varchar(5),
kode_penerbit varchar(5),
Foreign
key(kode_pengarang) references pengarang (kode_pengarang) on update cascade on
delete no action);
Atau
Mysql> create table buku (
Kode_buku
varchar(5) not null primary key,
Judul_buku
varchar(15) not null,
harga
integer default 0,
tahun_terbit
varchar(5),
kode_pengarang
varchar(5),
kode_penerbit varchar(5));
prakDB/alfan_indra_kusuma(273)alter
table buku add constraint fk foreign key (kode_pengarang) references
pengarang(kode_pengarang) on update cascade on delete no action;
e. Menghapus
Foreign Key
Foreign key yang sudah dibuat di hapus dengan perintah :
ALTER TABLE namatabel DROP FOREIGN KEY namaconstraint;
Berikut ini perintah untuk menghapus foreign key pada tabel buku :
prakDB/alfan_indra_kusuma(273)alter
table buku drop foreign key fk;
f.
Mengubah Struktur Tabel
Tabel yang sudah dibuat dilakukan
perubahan strukturnya seperti penambahan atribut (field), penghapusan atribut
(field) bahkan mengganti lebar field dari tabel tersebut. Perintah yang
digunakan adalah ALTER TABLE.
ü Menambah Atribut Baru Pada Tabel
Syntax :
ALTER TABLE namatabel ADD fieldbaru tipe;
Dimana :
Namatabel adalah nama tabel yang akan ditambah fieldnya.
Field baru adalah nama atribut yang akan ditambahkan,
tipe adalah tipe data dari atribut yang akan ditambahka. Berikut ini perintah untuk menambah atribut
keterangan dengan tipe data varchar(25) ke dalam tabel buku :
prakDB/alfan_indra_kusuma(273)alter table
buku add keterangan varchar(25);
ü Mengubah Tipe Data atau Lebar Atribut Pada
Tabel
Syntax
:
ALTER TABLE namatabel MODIFY COLUMN field tipe ;
Dimana :
namatabel adalaha nama table yang akan diubah tipe data
atau lebar atributnya. Field
adalah atribut yang akan diubah tie data atau lebarnya. Tipe adalah tipe data baru
atau tipe data lama dengan lebaratribut yang berbeda. Berikut ini perintah untuk mengubah tipe data untuk
atribut keterangan dengan char(20) :
prakDB/alfan_indra_kusuma(273)alter table
buku modify column keterangan char(20);
ü Mengubah Nama Atribut (Field) pada Tabel
Syntax
:
ALTER TABLE namatabel CHANGE COLUMN namalamafield
namabarufield tipedatanya;
Dimana :
namatabel adalah nama table yang akan diubah nama
atributnya, namalamafield adalah atribut yang akan diganti namanya,
namabarufield adalah nama baru atribut, tipedatanya adalah tipe data dari
atribut tersebut. Berikut ini perintah untuk mengubah nama atribut keterangan
menjadi ket :
prakDB/alfan_indra_kusuma(273)alter table
buku change column keterangan ket char(20);
ü Menghapus Atribut (Field) Pada Tabel
Syntax
:
ALTER TABLE namatabel DROP COLUMN namakolom;
Berikut
ini perintah untuk menghapus atribut ket pada table buku :
prakDB/alfan_indra_kusuma(273)alter
table buku drop ket;
g.
Menghapus Tabel
Table sudah dibuat dapat di hapus dengan menggunakan perintah DROP
TABLE. Syntax sebagai berikut :
DROP TABLE namatabel;
Table yang akan dihapus sesuai dengan namatabel, beriku ini untuk
menghapus table dengan nama pengarang :
prakDB/alfan_indra_kusuma(273)drop table buku;
POKOK BAHASAN 4
DATA MANIPULATION LANGUAGE (DML)
A.
Data
Manipulation Language (DML)
Data Manipulation Language (DDL) 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 :
- Melakukan pencarian kembali data lama,
- Penyisipan data baru ke dalam tabel
- Penghapusan data
- Pengubahan data
- Menampilkan data dengan kreiteria tertentu
- Menampilkan data secara terurut.
DML menurut jenisnya dapat dibagi menjadi 2 jenis yaitu :
- Prosedural, DML membutuhkan pemakai untuk
menspesifikasikan data apa yang dibutuhkan dan bagaimana cara
mendapatkannya, Contoh paket bahasa prosedural adalah dBase III, FoxBase.
- Non Prosedural, DML membutuhkan pemakai untuk
menspesifikasikan data apa yang dibutuhkan tanpa tahu bagaimana cara
mendapatkannya. Contoh paket bahasa non prosedural adalah SQL (Structured
Query Language) atau Query By Example (QBE).
B. Perintah
DML
sebagai berikut :
a.
INSERT
Perintah INSERT digunakan untuk menambahkan baris pada
suatu tabel.
Terdapat dua cara untuk menambah baris, yaitu :
Cara 1 :
Menambah baris dengan mengisi data langsung pada setiap
kolom tanpa menyertakan struktur tabel :
INSERT INTO namatabel VALUES (nilai1,nilai2,nilai-n);
Cara 2 :
Menambah baris dengan menyertakan struktur tabel dalam
mengisi data pada setiap kolom :
INSERT INTO namatabel (kolom1,kolom2,kolom-n) VALUES
(nilai1,nilai2,nilai-n);
Berikut ini perintah untuk menambahkan baris pada tabel
buku :
Cara 1 :
MariaDB
[perpustakaan2]> insert into buku values ('B001','Sistem Basis
Data','25000','2004','P001','T001');
Cara 2 :
MariaDB
[perpustakaan2]> insert into buku
(kode_buku,judul_buku,harga,tahun_terbit,kode_pengarang,kode_penerbit) values
('B002','Sistem Informasi','50000','2003','P001','T001');
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 numerik
(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];
Perintah dalam tanda [] bersifat opsional untuk mengubah
suatu baris dengan suatu kondisi tertentu. Berikut ini perintah untuk mengubah
baris pada tabel pengarang dengan data sebagai berikut :
MariaDB
[perpustakaan2]> select * from buku;
Contoh 1 : mengubah semua nilai pada kolom judul_buku
menjadi ‘Basis Data’ :
MariaDB
[perpustakaan2]> update buku set
judul_buku=’Basis Data’;
Contoh 2 : mengubah nilai pada kolom judul_buku menjadi
Basis Data Terpadu dimana nilai pada kolom kode_buku adalah B001 :
Mysql>
update buku set judul_buku=’Basis Data Terpadu’ where kode_buku=’B001’;
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;
Berikut ini perintah untuk menampilkan semua data pada
tabel buku:
MariaDB
[perpustakaan2]> select * from buku;
2)
Menampilkan
data untuk kolom tertentu
Syntax : SELECT kolom1,kolom2,kolom-n FROM namatabel;
Berikut ini perintah untuk menampilkan data pada tabel
buku dengan kolom yang ditampilkan adalah kolom kode_buku :
MariaDB
[perpustakaan2]> select kode_buku from buku;
3)
Menampilkan
data dengan kondisi data tertentu dengan klausa WHERE
Syntax : SELECT * FROM namatabel WHERE kondisi;
Berikut ini perintah untuk menampilkan data pada tabel
buku dimana nilai pada kolom kode_buku adalah B001 :
MariaDB [perpustakaan2]>
select * from buku
where kode_buku=’B001’;
Beberapa operator perbandingan yang dapat digunakan pada
klausa WHERE selain “=” adalah : >
(lebih dari), < (kurang dari), < > (tidak sama dengan), >= (lebih
dari atau sama dengan), <= (kurang dari atau sama dengan). Adapun operator
lain, yaitu : AND, OR, NOT, BETWEEN-AND, IN dan LIKE. Berikut ini data yang ada
pada tabel pengarang:
MariaDB
[perpustakaan2]> select * from buku;
Contoh 1 : perintah untuk menampilkan data pada tabel
buku dimana nilai harga berkisar dari 25000 hingga 50000 :
MariaDB
[perpustakaan2]> select *
from buku where harga>=25000 and harga<=50000;
Atau
MariaDB
[perpustakaan2]> select * from buku where harga between 25000 and 50000;
Contoh 2 : perintah untuk menampilkan data pada tabel
buku dimana nilai harga sama dengan 25000 atau 50000 :
MariaDB
[perpustakaan2]> select * from buku where harga=25000 or harga=50000;
atau
MariaDB
[perpustakaan2]> 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 :
MariaDB
[perpustakaan2]> select * from buku where not judul_buku=’Basis Data Terpadu’;
atau
MariaDB
[perpustakaan2]> select * from buku where judul_buku<>’Basis Bata Terp’;
Contoh 4 : Isi tabel buku
MariaDB
[perpustakaan2]> select * from buku;
perintah untuk menampilkan data pada tabel buku dimana
data pada kolom tertentu diawali dengan nilai tertentu, misalnya pada kolom
judul_buku dimana diawali dengan karakter ‘B’ :
MariaDB
[perpustakaan2]> 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 :
MariaDB [perpustakaan2]> 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:
MariaDB
[perpustakaan2]> select * from pengarang;
Isi tabel buku :
MariaDB
[perpustakaan2]> select * from buku;
Berikut ini perintah untuk menampilkan semua data pada
tabel pengarang dan buku :
MariaDB [perpustakaan2]> select * from pengarang, buku;
7)
Operator
comparison ANY dan ALL
a.
Operator
ANY digunakan berkaitan dengan subquery. Operator ini menghasilkan TRUE
(benar) jika paling tidak salah satu perbandingan dengan hasil subquery
menghasilkan nilai TRUE. Ilustrasinya :
Gaji >
ANY (S)
Jika subquery S menghasilkan G1, G2, ..., Gn, maka
kondisi di atas identik dengan :
(gaji
> G1) OR (gaji > G2) OR ... OR (gaji > Gn)
Contoh : perintah untuk menampilkan semua data pengarang
yang harga bukunya bukan yang terkecil:
MariaDB
[perpustakaan2]> select * from buku where harga > ANY
(select kode_pengarang from pengarang);
b.
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:
MariaDB [perpustakaan2]>
select * from buku
where harga >= ALL (select
kode_pengarang from pengarang);
a.
COUNT
Perintah yang digunakan untuk menghitung jumlah baris
suatu kolom pada tabel. Contoh : perintah untuk menghitung jumlah baris kolom
kode_buku pada tabel buku:
MariaDB
[perpustakaan2]> 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:
MariaDB
[perpustakaan2]> 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:
MariaDB
[perpustakaan2]> 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:
MariaDB [perpustakaan2]>
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:
MariaDB
[perpustakaan2]> 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 :
MariaDB
[perpustakaan2]> select * from buku;
akan ditampilkan hanya kolom tahun_masuk dan digabungkan
dengan SUM(jml_buku) yang dikelompokkan berdasarkan kolom tahun_masuk pada
tabel buku :
MariaDB [perpustakaan2]> select sum(jml_buku) from
buku group by tahun_terbit:
Klausa HAVING digunakan untuk menentukan kondisi bagi
klausa GROUP BY. Kelompok yang memenuhi 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 :
MariaDB [perpustakaan2]> 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 :
atau tambahkan ASC untuk pengurutan secara ascending
(menaik)
MariaDB
[perpustakaan2]> select *from buku order by judul_buku asc;
atau tambahkan DESC untuk pengurutan secara descending
(menurun)
MariaDB
[perpustakaan2]> 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 :
DELETE FROM namatabel [WHERE kondisi];
Perintah dalam tanda [] bersifat opsional untuk menghapus
suatu baris dengan suatu kondisi tertentu. Berikut ini perintah untuk menghapus
baris pada tabel buku dengan data sebagai berikut :
MariaDB [perpustakaan2]> select * from buku;
Contoh 1 : jika ingin menghapus seluruh baris pada tabel
pengarang :
MariaDB [perpustakaan2]>
delete from buku;
Contoh 2 : jika ingin menghapus baris yang memiliki nilai
‘B001’ pada kolom kode_buku pada tabel buku maka perintahnya sebagai berikut :
Contoh 3 : jika ingin menghapus baris yang memiliki nilai
‘Basis Data Terpadu’ pada kolom judul_buku
pada tabel buku maka perintahnya sebagai berikut :
MariaDB [perpustakaan2]>
delete from buku
where judul_buku=’Basis Data Terp’;
POKOK BAHASAN 5
QUERY DAN VIEW
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.
- 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.
- Jenis-jenis join pada query :
a.
Operator Cross Join
Operator ini berguna
untuk melakukan operasi penggabungan dengan perkalian kartesain. Namun
penggabungan jenis ini jarang digunakan karena tidak menghasilkan nilai
informasi yang efektif.
Contoh :
MariaDB
[perpustakaan2]> 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 sebelah kanan. Berikut ini perintah untuk
menampilkan data dari tabel pengarang dan buku dengan syarat berdasarkan kolom
kode_pengarang :
MariaDB
[perpustakaan2]> select * from pengarang join buku on
(pengarang.Kode_pengarang=buku.Kode_pengarang);
c.
Operator Equijoin
Equijoin adalah
penggabungan antar tabel dengan menggunakan operator ‘=’ pada kondisi klausa
WHERE
Contoh :
MariaDB [perpustakaan2]> 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 :
MariaDB [perpustakaan2]> SELECT a.Kode_buku,
b.Judul_buku FROM buku a, buku b WHERE a.harga=’25000’ AND a.harga=’25000’;
e.
Operator Natural Join
Operator ini digunakan
untuk melakukan operasi equijoin dengan memperlakukan nama-nama kolom yang sama
sebagai kolom penghubung.
Contoh :
MariaDB [perpustakaan2]> 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. Meskipun terdapat data dari
sebelah kiri tidak memiliki pasangan, tetap akan ditampilkan dengan pasangannya
berupa nilai NULL.
MariaDB [perpustakaan2]> 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.
MariaDB [perpustakaan2]> select *from pengarang
natural right join buku;
- 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
penerbitan 2003 dan 2004 :
Mysql> select
tahun_terbit,judul from buku where tahun_terbit=’2003’ union > select
tahun_terbit,judul from buku where tahun_terbit=’2004’;
Perintah di atas identik
dengan :
MariaDB [perpustakaan2]> 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 1 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
Pada MySQL tidak
terdapat operator EXCEPT namun sebagai gantinya dapat menggunakan operator NOT
IN seperti contoh 2 pada bagian Nested Queries.
- Nested Queries / Subquery (IN, NOT IN, EXISTS, NOT EXISTS)
Subquery berarti query di
dalam query. Dengan menggunakan subquery, hasil dari query
akan menjadi bagian dari query di atasnya.
Subquery terletak di dalam
klausa WHERE atau HAVING. Pada klausa WHERE, subquery digunakan untuk
memilih baris-baris tertentu yang kemudian digunakan oleh query.
Sedangkan pada klausa HAVING, subquery digunakan untuk memilih kelompok
baris yang kemudian digunakan oleh query.
Contoh 1 : perintah
untuk menampilkan data pada tabel pengarang yang mana data pada kolom
kode_pengarang-nya tercantum pada tabel buku menggunakan IN :
MariaDB [perpustakaan2]> select * from pengarang
where Kode_pengarang in (select Kode_pengarang from buku);
atau menggunakan EXISTS
MariaDB [perpustakaan2]> select * from pengarang
where exists (select * from buku where pengarang.Kode_pengarang=buku.Kode_pengarang);
Pada contoh di atas :
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 di tabel buku.
Contoh 2 : perintah
untuk menampilkan data pada tabel pengarang yang mana data pada kolom jenis-nya
tidak tercantum pada tabel buku menggunakan NOT IN :
MariaDB
[perpustakaan2]> select * from pengarang where kode_pengarang not in (select
kode_pengarang from buku);
atau menggunakan NOT
EXISTS
MariaDB [perpustakaan2]> 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
[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.
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 sebagai
berikut :
MariaDB [perpustakaan2]>
CREATE VIEW view_buku AS SELECT a.Kode_buku, a.Judul_buku, a.tahun_terbit,
b.Nama_pengarang FROM buku a JOIN pengarang b ON a.kode_pengarang=
b.kode_pengarang;
Eksekusi perintah berikut untuk
memastikan view telah dibuat :
SELECT * FROM information_schema.views WHERE table_name = 'view_buku';
Lihat hasil query view view_buku :
MariaDB [perpustakaan2]> 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 :
MariaDB [perpustakaan2] > 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
anggota c WHERE a.kode_buku= b.kode_buku AND
a.kode_anggota=c.kode_anggota;
Eksekusi perintah
berikut untuk memastikan view telah dibuat :
SELECT * FROM information_schema.views WHERE table_name = 'view_peminjaman';
Lihat hasil query view view_peminjaman :
MariaDB
[perpustakaan2]> select *from view_peminjaman;
POKOK BAHASAN 6
DATA CONTROL LANGUAGE (DCL) / HAK AKSES USER
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
Untul 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 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 dengann
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 :
Misalkan kita sebagai Administrator basis data yang
mempunyai wewenang untuk mengatur hak akses para pemakai. Kita akan mengatur
hak akses pengguna siska dan edi (sebagai user).
MariaDB [perpustakaan2]>GRANT
SELECT ON buku TO siska;
Perintah diatas digunakan untuk memberikan hak akses
SELECT terhadap tabel buku kepada user siska sehingga user siska dapat menggunakan
perintah SELECT untuk melakukan proses query pada tabel buku.
Hak akses lebih dari satu :
MariaDB [perpustakaan2]>GRANT
SELECT, INSERT, UPDATE, DELETE ON buku TO siska, edi;
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 :
MariaDB
[perpustakaan2]>GRANT
SELECT,UPDATE(kode_buku,judul_buku,tahun_terbit) ON buku
TO edi;
Dari perintah diatas user
arif hanya dapat melakukan SELECT dan UPDATE terhadap tiga field yaitu kode_buku, judul_buku, tahun_terbit).
D.
Hak Akses Penuh
Untuk memberikan hak akses penuh kepada pemakai, dapat
memakai perintah klausa ALL PRIVILEGES. Tentunya dengan pemberian hak akses
penuh kepada pemakai (user).
Contoh :
MariaDB [perpustakaan2]>GRANT
ALL PRIVILEGES ON buku to siska;
Atau menggunakan
MariaDB [perpustakaan2]> GRANT ALL ON buku to
siska;
E.
Hak Akses kepada Public
Untuk memberikan hak akses kepada banyak user dapat
menggunakan klausa PUBLIC. Bebrapa DBMS ada yang menggunakan klausa WORLD.
Contoh :
MariaDB [perpustakaan]>
grant select, insert, update on buku.* to 'user@%' identified by 'pwd';
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_databaseFROM nama_user;
atau
REVOKE hak_akses ON
namatabel FROM nama_user;
Contoh :
Admistrator ingin mencabut hak akses user siska, maka perintahnya
:
MariaDB
[perpustakaan2]> REVOKE SELECT ON buku FROM siska;
Atau
MariaDB
[perpustakaan2]> REVOKE SELECT, INSERT ON buku FROM edi;
2. Perintah
DELETE
Untuk
menghapus user secara permanen dari basis data.
Thanks banget ya temen - temen, gua mohon maaf bila ada kesalahan. Semoga bermanfaat bagi temen - temen semua.
BYEEEEE..........
Don't forget to see this link
Don't forget to see this link