Anda di halaman 1dari 11

LAPORAN TUGAS RINGKASAN 2

DATABASE MANAGEMENT SYSTEM

MATA KULIAH DATABASE MANAGEMENT SYSTEM

DOSEN : Dr. Kusrini, M.Kom

Penyusun :
Khafidz Nur Huda
17.52.0932

PROGRAM MEGISTER TEKNIK INFORMATIKA


PROGRAM PASCASARJANA UNIVERSITAS AMIKOM
2017
Pendahuluan
Database Manajement System (DBMS) merupakan software yang digunakan untuk
membangun sebuah sistem basis data yang berbasis komputerisasi. DBMS membantu dalam
pemeliharaan dan pengolahan kumpulan data dalam jumlah besar. Sehingga dengan
menggunakan DBMS tidak menimbulkan kekacauan dan dapat digunakan oleh pengguna
sesuai dengan kebutuhan.
DBMS merupakan perantara bagi pemakai dengan basis data. Untuk merinteraksi dengan
DBMS (basis data) menggunakan bahasa basis data yang telah ditentukan oleh perusahaan
DBMS. Bahasa basis data biasanya terdiri atas perintah-perintah yang di formulasikan
sehingga perintah tersebut akan diproses olah DBMS. Perintah-perintah biasanya ditentukan
oleh user. Ada 2 bahasa basis data:
1. Data Definition Language (DDL)
DDL digunakan untuk menggambarkan desain basis data secara keseluruhan. DDL
digunakan untuk membuat tabel baru, menuat indeks, ataupun mengubah tabel. Hasil
kompilasi DDL disimpan di kamus data.
Basis data dapat diimplementasikan berdasarkan E-R diagram yang telah dibuat.
Implementasi database dapat:
a. Secara manual (dengan perintah SQL CREATE TABLE)
b. Secara semi-manual dengan bantuan client berbasis GUI (MySQL Front, PgAccess,
phpPgAdmin, dst.)
c. Secara otomatis dengan CASE Tools (DBDesigner)

Tahap Pembuatan Tabel


1. Membuat semua tabel yang paling utama (yang tidak memiliki FK).
2. Membuat semua tabel yang berhubungan langsung (atau memiliki relationship) dengan
tabel yang dibuat di tahap sebelumnya. Mulailah secara urut dari tabel dengan jumlah FK
yang paling sedikit ke yang paling banyak.
3. Ulangi tahap 2 sampai semua tabel selesai dibuat.

Implementasi Manual
Contoh untuk menentukan Primary Key (PK):
CREATE TABLE dosen (nip INTEGER PRIMARY KEY, nama_dosen VARCHAR(45),
alamat_dosen VARCHAR(255));
CREATE TABLE ruang (kode_ruang VARCHAR(20) PRIMARY KEY, lokasi_ruang
VARCHAR(255), kapasitas_ruang INTEGER);

Contoh untuk menentukan Foreign Key (FK):


CREATE TABLE mahasiswa(nim INTEGER PRIMARY KEY, nip INTEGER
REFERENCES dosen (nip), nama_mhs VARCHAR(45), alamat_mhs VARCHAR(255))

Contoh untuk banyak FK:


CREATE TABLE mata_kuliah(kode_mk INTEGER PRIMARY KEY, nip INTEGER
REFERENCES dosen (nip), kode_ruang VARCHAR(20) REFERENCES ruang
(kode_ruang), nama_mk VARCHAR(45), deskripsi_mk VARCHAR(255));

Contoh untuk menentukan composite PK:


CREATE TABLE mhs_ambil_mk(nim INTEGER REFERENCES mahasiswa (nim),
kode_mk INTEGER REFERENCES mata_kuliah(kode_mk), PRIMARY KEY(nim,
kode_mk));

Referential Integrity
1. Integritas database mengacu pada hubungan antar tabel melalui Foreign Key yang
bersangkutan.
2. Pada insert, record harus dimasukkan di tabel utama dahulu, kemudian baru di tabel
kedua.
3. Pada delete, record harus dihapus di tabel kedua dahulu, kemudian baru di tabel utama.
4. Secara default, kebanyakan DBMS yang ada akan menolak insert atau delete yang
melanggar integritas database.

Advance Create Table Option


1. Default
Untuk menentukan nilai default kolom jika tidak ada data yang di-insert untuk kolom
itu:
CREATE TABLE mahasiswa(nim integer PRIMARY KEY, nama_mhs varchar(45),
fakultas varchar(5) DEFAULT FKI);
2. Not Null
Untuk membatasi agar nilai kolom tidak boleh NULL:
CREATE TABLE ruang(kode_ruang varchar(20) PRIMARY KEY, lokasi_ruang
varchar(255) NOT NULL, kapasitas_ruang integer NOT NULL);
Jika kolom ditentukan NOT NULL, maka insert harus memasukkan nilai untuk kolom
tersebut.
Bisa menggunakan DEFAULT sehingga nilai kolom ditambahkan secara otomatis.

3. Unique
Untuk memastikan bahwa nilai kolom unik:
CREATE TABLE mata_kuliah(kode_mk integer PRIMARY KEY, nama_mk varchar(45)
UNIQUE);
Untuk multikolom yang unik:
CREATE TABLE dosen(nip integer PRIMARY KEY, nama_dosen varchar(45),
alamat_dosen varchar(255), UNIQUE (nama_dosen, alamat_dosen));

4. Check
Untuk membatasi nilai kolom, misalnya:
CREATE TABLE produk(kode_produk integer PRIMARY KEY, nama_produk
varchar(45), harga integer, CHECK (harga <= 100000 AND kode_produk > 100 ));
Check di atas membatasi bahwa harga harus maksimal Rp 100000, dan kode_produk
harus di atas 100.

5. Penentuan Referential Integrity


Contoh:
CREATE TABLE pemasok(kode_pemasok integer PRIMARY KEY, nama_pemasok
varchar(45), kode_produk integer REFERENCES produk ON DELETE CASCADE ON
UPDATE CASCADE);
Untuk contoh di atas, jika ada update atau delete di tabel utama, maka tabel kedua secara
otomatis disesuaikan.

6. Action
NO ACTION atau RESTRICT: update atau delete tidak dilakukan. Ini merupakan
pilihan default.
CASCADE: nilai kolom di tabel kedua disesuaikan dengan nilai kolom di tabel utama
SET NULL: nilai kolom di tabel kedua dijadikan NULL
SET DEFAULT: nilai kolom di tabel kedua dijadikan nilai DEFAULT (nilai
DEFAULT harus ditentukan pada waktu pembuatan tabel).
2. Data Manipulation Language (DML)
DML digunakan untuk melakukan menipulasi dan pengambilan data pada suatu basis data
seperti penambahan data baru ke dalam basis data, menghapus data dari suatu basis data
dan pengubahan data di suatu basis data.
Dalam pembuatan DBMS diperlukan beberapa komponen fungsional penyusunnya sebagai
berikut:
a. DML Precompiler : mengkonversi pernyataan-pernyataan DML yang dimasukkan di
dalam program aplikasi ke dalam pemanggilan prosedur normal di dalam bahasa
induknya. Procompiler harus berinteraksi dengan query processor untuk membuat
kode-kode yang diperlukan.
b. Query Processor : menterjemahkan pernyataan-pernyataan bahasa query ke dalam
instruksi-instruksi low-level yang dimengerti oleh database manager.
c. DDL Compiler : mengkonversi pernyataan DDL ke dalam sekumpulan table yang
mengandung metadata atau data mengenai data
d. Database Manager : menyediakan interface antara data low-level yang disimpan
didalam basis data dengan program-program aplikasi dan queries yang dikirimkan ke
system.
Data Manipulation Language (DML) adalah suatu statement yang dijalankan pada saat kita
memerlukan :
penambahan baris baru pada table.
memodifikasi baris yang ada pada table.
menghapus baris yang ada pada table.
DML Statement identik dengan operasi INSERT, MODIFY dan DELETE. Istilah
Transaksi mengandung pengertian kumpulan Statement DML yang membentuk suatu fungsi
tertentu.
1. Menambahkan baris baru ke dalam tabel (INSERT)
Menambahkan baris baru ke dalam table menggunakan perintah INSERT. INSERT INTO
table [(column [, column ] ) ]
VALUES (value [, value] );
Contoh :
INSERT INTO nasabah(id_nasabah, nama_nasabah, alamat_nasabah)
VALUES(1, Sutopo, Jl. Jendral Sudirman 12);

2. Perubahan data dalam tabel (UPDATE).


Untuk memodifikasi baris data yang ada pada table digunakan perintah UPDATE. Sintak
dari perintah UPDATE :
UPDATE table
SET column = value [, column = value, ] [WHERE condition];
Contoh :
UPDATE nasabah
SET alamat_nasabah = Jalan Jenderal Sudirman No.12 WHERE nama_nasabah =
Sutopo;
3. Menghapus data dalam tabel (DELETE).
Baris data yang ada pada table dapat dihapus dengan menggunakan perintah DELETE.
DELETE FROM table
[WHERE condition]
Contoh :
DELETE FROM nasabah
WHERE nama_nasabah = Sutopo;
4. Transaksi dalam database
Jika DML berkaitan dengan manipulasi data pada table, maka DDL (Data Definition
Language) berkaitan dengan pendefinisian table, sedangkan DCL (Data Control Language)
berkaitan kontrol transaksi. DDL dan DCL secara otomatis akan di-commit (dilakukan
perubahan secara permanen) pada akhir dari transaksi. Ada 2 statement DCL yang penting
yaitu COMMIT dan ROLLBACK, selain dari itu ada SAVEPOINT. Perintah COMMIT
menandai perubahan secara permanen. pada data. Sedangkan ROLLBACK
mengembalikan keadaan sesuai dengan titik (keadaan) yang ditandai dengan SAVEPOINT,
atau jika ROLLBACK tidak diberi parameter maka keadaan akan dikembalikan pada titik
perubahan yang terakhir. Transaksi akan diproses secara implicit atau dilakukan operasi
COMMIT secara otomatis, untuk keadaan berikut :
Setelah Statement DDL diberikan.
Setelah Statement DCL diberikan.
Proses exit secara normal dari SQL*PLUS.
Sedangkan perintah ROLLBACK secara otomatis akan dijalankan jika terjadi kondisi yang
abnormal atau terjadi system failure.
Data Control Language (DCL)
Data Control Language (DCL) merupakan perintah-perintah yang dapat digunakan untuk
menjaga keamanan basis data. Perintah tersebut dapat dipakai untuk menentukan akses basis
data hanya dapat dilakukan oleh orang-orang tertentu dan dengan macam akses yang dibatasi
pula. Adapun Objek-Objek DCL dalam Mysql diantaranya :
1. Tabel User dari Database MySQL
Tabel user adalah tabel yang ada dalam database MySQL. Tabel user hanya diperuntukkan
bagi seorang Administrator (root). Tabel user bersifat global, apapun perubahan yang
terjadi pada tabel ini akan mempengaruhi jalannya keseluruhan system MySQL.
Sintaks Umum :
SELECT, UPDATE, DELETE, INSERT, FLUSH

Contoh Penggunaan :
SELECT host, user, password FROM user; DELETE FROM user WHERE user=;
UPDATE user SET password=password(xxxxxxxxxx) WHERE user=root; insert into user
(User,Password) values(Winda,w1nd);

DTL (Data Transaction Cotrol)


Transaction Control
-Commit
Untuk Menyimpan Hasil Perintah
-SavePoint
Identifikasi point transaksi yang akan di gunakan nantinya.
-Rollback
restore database ke kondisi commit terakhir
Set Transaction
Mengubah Level Transaksi
Limit dan Offset
Digunakan untuk membatasi jumlah baris yang ditampilkan dalam SELECT.
Contoh:
Hanya menampilkan 3 baris pertama:
SELECT*FROM nasabah ORDER BY id_nasabah LIMIT 3;
Menampilkan 2 baris setelah melewati 2 baris pertama:
SELECT*FROM nasabah ORDER BY id_nasabah LIMIT 2 OFFSET 2;
Perhatian: penggunaan LIMIT sebaiknya selalu digunakan bersama dengan ORDER BY,
sehingga urutan yang ditampilkan akan selalu konsisten.
LIMIT dan OFFSET sangat berguna dalam tampilan yang berbasis web (melalui web
browser dengan menggunakan PHP atau JSP) agar tampilan data tidak terlalu besar dan
bisa lebih rapi. Tampilan data yang banyak bisa diatur dan dibagi menjadi beberapa
halaman (pages).
Tabel Join
Cross Join
Menggabungkan semua record dari tabel pertama dengan semua record di tabel kedua.
Banyaknya record dari cross join = jumlah record tabel pertama X jumlah record tabel
kedua
Contoh:
SELECT*FROM rekening CROSS JOIN cabang_bank;
Inner Join

Menghubungkan 2 (atau lebih) tabel berdasarkan attribute penghubung. Metode 1:


SELECT*FROM rekening INNER JOIN cabang_bank
USING(kode_cabang);
Distinct
Dalam table join, kadang-kadang ada informasi yang berulang. Untuk menghilangkan
pengulangan tersebut, gunakan DISTINCT.
Contoh:
SELECT DISTINCT nama_nasabah, alamat_nasabah FROM nasabah NATURAL JOIN
nasabah_has_rekening;
Union
Perintah UNION digunakan untuk menggabungkan isi dari 2 (dua) tabel atau lebih. Perintah
ini terdiri dari dua jenis, yaitu UNION dan UNION ALL. Seperti biasanya untuk menghasilkan
suatu dataset perintah UNION ini harus disisipkan diantara perintah SELECT.
Agar lebih jelas kita ambil contoh sederhana dari sekumpulan data.
tabel_A = {1001, 1002, 1003, 1004, 1005}
tabel_B = {1002,1005,1006,1007}
UNION
Kalau kita ingin menggabungkan dari dua tabel tersebut dengan menggunakan UNION maka
akan menghasilkan himpunan data berikut {{1001, 1002, 1003, 1004, 1005,
1006,1007}
Case
Perintah case sering digunakan untuk menampilkan nilai tertentu dari beberapa barisan data
dengan syarat-syarat atau kondisi yang kita berikan.
Kalau kita belajar bahasa pemrograman tentu kita kenal dengan perintah if condition,
fungsinya case hampir sama. bedanya perintah casedigunakan untuk beberapa kondisi
sekaligus, dan didalam sql perintah case tidak bisa berdiri sendiri melainkan harus disisipkan
dalam perintah select. jadi berbeda dengan perintah if yang lebih bebas, akan tetapi
perintah if hanya berguna apabila dimasukan dalam store procedure,function dan trigger.
perbedaannya dalam sql sangat jelas sekali, karena perintah CASE disisipkan dalam
perintah select jadi yang dihasilkan langsung berupa dataxet dan langsung bisa dilihat
hasilnya. Perintah case ini mempunyai dua format :
1. Simple Case function :
Perintah CASE sederhana.
2. Searched CASE function:
Perintah CASE ini diikuti dengan syarat kondisi boolean, seperti >, <, >=, <= , dan lain-lain.
GROUP BY
GROUP BY sangat cocok untuk aggregate functions. Dengan menggunakan GROUP BY,
kita bisa mengelompokkan record-record dan menghitung min, max, count, sum, dan avg untuk
masing-masing kelompok.
Contoh:
SELECT kode_cabang, MIN(saldo), MAX(saldo), COUNT(*), SUM(saldo), AVG(saldo)
FROM rekening GROUP BY kode_cabang;
HAVING
Merupakan pasangan dari GROUP BY, digunakan untuk membatasi kelompok yang
ditampilkan:
SELECT jenis_transaksi, tanggal FROM transaksi GROUP BY jenis_transaksi, tanggal
HAVING jenis_transaksi=kredit;
Hasil yang sama bisa didapatkan dengan:
SELECT jenis_transaksi, tanggal FROM transaksi WHERE
jenis_transaksi=kredit GROUP BY jenis_transaksi, tanggal;
Jika menggunakan HAVING, maka pembatasan dilakukan setelah hasil dikelompokkan
dalam GROUP BY.
Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan
dalam GROUP BY.
Field (-field) yang disebut di HAVING harus ada di GROUP BY, atau berupa aggregate
functions.
Big Data adalah istilah umum untuk segala kumpulan himpunan data dalam jumlah yang
sangat besar dan kompleks sehingga menjadikannya sulit untuk ditangani atau di proses jika
hanya menggunakan manajemen basis data biasa atau aplikasi pemroses data tradisional.
Contoh Big Data dapat berupa data yang berukuran hingga petabytes (1,024 terabytes) atau
exabytes (1,024 petabytes), seperti milyaran hingga triliunan catatan personal seseorang yang
semuanya berasal dari sumber berbeda seperti web, sales, customer service, social media, data
mobile dan sebagainya.
NoSQL adalah tipe penyimpanan data selain yang berwujud tabular(tabel), NoSQL tidak
mengikuti prinsip (ACID) RDBMS sepenuhnya. Lalu kalau bukan ACID, apakah prinsip
utama NoSQL ?
NoSQL, menurut Eric Brewer menganut prinsip BASE:
1. Basic Availability: Setiap request sekedar mendapat garansi response: Sukses/Gagal.
2. Soft State: State NoSQL bisa berubah secara dinamis tanpa input manual untuk
meyakinkan eventual consistency.
3. Eventual Consistency: Untuk sementara waktu NoSQL mungkin tidak konsisten (Akan
diabahas kemudian maksud & contohnya).
NoSQL bukan berarti No SQL atau bukan SQL/tidak mendukung bahasa Query, tapi
Not-Only SQL. Masudnya database NoSQL tetap memiliki (support) semacam bahasa
Query, namun dalam bentuk (terminology yang berbeda). Beberapa literature bahkan tidak
menggolongkan NoSQL sebagai suatu bentuk database. NoSQL bisa berupa Document
(e.g. MongoDB), Key-Value (e.g. CouchDB), Graph (e.g. Neo4J), dsb.
Backup dan Recovery bagi administrator database yaitu:
mengantisipasi terjadinya suatu failure pada database
meningkatkan mean time between failure
mengurangi mean time to recover dan
mengurangi terjadinya loss data
Backup berarti suatu kegiatan untuk menyimpan database dalam bentuk datafile, control file
dan archieve log ke dalam media penyimpanan lain seperti disk atau tape. Sedangkan
Recovery merupakan suatu proses untuk mengupdate database dengan file Backup yang telah
disimpan terakhir kalinya. Ada dua cara untuk melakukan Backup dan Recovery, yaitu :
1. Physical Backup
Contohnya : RMAN Backup dan Restore
2. Logical Backup
Contohnya : Export dan Import, Flashback
Strategi Integrasi Data
Setiap kelompok pemakai dapat merancang database meraka sendiri-sendiri. Setelah skema
konseptual database terbentuk, proses integrasi dilanjutkan oleh DBA. Pembentukan entity-
entity, atribut-atribut dan domain harus jelas dan seragam pada setiap user group. Strategi-
strategi pada perancangan skema:
1. Top Down StrategiPerancangan dimulai dari pendefinisian tipe-tipe entitynya terlebih
dahulu, setelah itu dilanjutkan dengan ketehubungannya beserta atribut-atributnya.
Pendefinisian tipe entity dari lebih tinggi ke tipe yang lebih rendah. Contoh : menggunakan
spesialisasi.
2. Bottom Up Strategi
Perancangan dimulai dari pendefinisian atribut-atribut terlebih dahulu, setelah itu
dilanjutkan dengan keterhubungannya beserta atribut-atributnya. Pendefinisian tipe entity
dari lebih rendah ke tipe yang lebih tinggi.
Contoh : menggunakan Generalisasi
3. Inside-Out Strategi
Special kasus dari Bottom Up Strategi dimana difokuskan ke konsep-konsep utama baru
ke konsep lainnya.
4. Mixed Strategi
Gabungan dari Top Down dan Bottom Up Strategi.

Referensi
1. Ramex Elmasri, Shamkant B. Navathe; 2016; Fundamentals Of Databases System Seventh
Edition; Pearson Educatio
2. Jeffre A. Hoffer, V. Ramesh , HeikkiTopi; 2016 Modern Database Management, Pearson
Education