Anda di halaman 1dari 51

Basis Data Terdistribusi

Avid Wijaya, S.ST., MKM


Basis Data Terdistribusi

Kumpulan data logic yang saling berhubungan secara


fisik terdistribusi dalam jaringan komputer, yang tidak
tergantung dari program aplikasi sekarang maupun masa
yang akan datang.
Basis Data Terdistribusi

Basis data yang berada di bawah kendali sistem


manajemen basis data (DBMS) terpusat dengan peranti
penyimpanan (storage devices) yang terpisah-pisah satu
dari yang lainnya.
Jenis Transaksi

1. Transaksi lokal adalah transaksi yang tidak memerlukan


data dari tempat lain
2. Transaksi global adalah transaksi dengan kebutuhan akan
data dari tempat lain
KARAKTERISTIK BASIS DATA TERDISTRIBUSI

✓Data disimpan di sejumlah tempat


✓Prosessor pada tempat yang berbeda tersebut dihubungkan
dengan jaringan komputer
✓Sistem basis data terdistribusi bukan terdiri dari sekumpulan file
yang berada pada berbagai tempat tetapi pada sebuah basis data
di berbagai tempat.
✓Setiap tempat secara mandiri memproses permintaan user yang
membutuhkan akses ke data di tempat tersebut dan juga mampu
untuk memproses data yang tersimpan di tempat lain.
Basis Data Terdistribusi
KELEBIHAN BASIS DATA TERDISTRIBUSI

✓Kinerja
✓Alasan Ekonomis
✓Alasan modularitas
✓Alasan organisasi dan otonomi pada sistem-sistem yang
berpartisipasi
KELEBIHAN BASIS DATA TERDISTRIBUSI

✓Kinerja
✓Alasan Ekonomis
✓Alasan modularitas
✓Alasan organisasi dan otonomi pada sistem-sistem yang
berpartisipasi
KEKURANGAN BASIS DATA TERDISTRIBUSI

✓ Masalah kompleksitas
✓ Masalah desain
✓ Keamanan data
✓ Kendala mempertahankan integritas
TIPE BASIS DATA TERDISTRIBUSI

HOMOGEN
TIPE BASIS DATA TERDISTRIBUSI

HETEROGEN
STRUCTURED QUERY LANGUAGE (SQL)

SQL dipublikasikan oleh E.F. CODD (1970) mengenai


model relational. Kemudian pada tahun 1974, D.
Chamberlin dan R.F. Boyce mengembangkan bahasa
query untuk memanipulasi dan mengekstraksi data
dari basisdata relational.
SASARAN SQL

• Menciptakan basis data dan struktur relasi

• Melakukan menajemen data tingkat dasar

• Membentuk query sederhana dan kompleks

• Melakukan tugas-tugas dengan seminimal mungkin memakai struktur


dan sintaks perintah relatif mudah dipelajari
SASARAN SQL

• Interactive SQL
data dalam SQL jenis ini selalu berubah dengan cepat seiring
dengan penggunaannya yang sering/interaktif.
• Static SQL
data dalam SQL ini selalu tetap dalam periode waktu yang cukup
lama. Biasanya berisi data-data yang mengalami waktu perubahan
yang cukup lama.
• Dynamic SQL
data dalam jenis SQL ini berubah dalam periode waktu tertentu.
PEMBAGIAN SQL

• DDL (Data Definition Language)


digunakan untuk mendefinisikan struktur atau skema basis
data

• DML (Data Manipulation Language)


digunakan untuk manajemen data dalam basis data
PENGELOMPOKAN STATEMEN SQL

1.Data Definition Language (DDL)


CREATE DATABASE DROP DATABASE
CREATE TABEL DROP TABEL DROP
CREATE INDEX INDEX DROP VIEW
CREATE VIEW ALTER
TABLE

2. Data Manipulation Language (DML)


INSERT, SELECT, UPDATE,DELETE
3. Data Access
GRANT , REVOKE
4. Data Integrity
RECOVER TABLE
5. Auxiliary
Select Into Outfile (UNLOAD), LOAD, RENAME
TABLE
D D L

❖ CREATE

1. PembuatanDatabase
Nama Database adalah yang dapat mewakili suatu kejadian
dapat berupa nama organisasi atau perusahaan.

Sintaks : CREATE DATABASE nama_database

Contoh : Buat database dengan nama latihan


CREATE DATABASE latihan
2. PembuatanTabel

Sintaks :
CREATE TABLE nama_table
( nama_kolom1 tipe_data_kolom1,
nama_kolom2,tipe_data_kolom2,….)
Contoh :
Buat struktur tabel dengan nama tabel MHS dengan data
NPM char(8), NAMA char(25), ALAMAT char(30)

CREATE TABLE MHS (NPM char(8) not null,


NAMA char(25) notnull, ALAMAT char(30)notnull)
3. PembuatanIndex

Sintaks : CREATE [UNIQUE]INDEX nama_index


ON nama_table (nama_kolom);

Contoh :
Buat index data mahasiswa berdasarkan NPM dengan
nama MHSIDX Dimana NPM tidak bolehsama

CREATE UNIQUE INDEX MHSIDX ONMHS(NPM)


4. Pembuatan View
Sintaks :
CREATE VIEW nama_view[
(nama_kolom1,….) ]
AS SELECT statement [WITH CHECK
OPTION];
Contoh :
Buat view dengan nama MHSVIEW yang berisi
semua data mahasiswa
CREATE VIEW MHSVIEW AS SELECT *
FROM MHS
❖ DROP (MENGHAPUS)

1. Menghapus Database
Sintaks : DROP DATABASE nama_db;
2. Menghapus Tabel
Sintaks :DROP TABLE nama_table ;
3. Menghapus Index
Sintaks :DROP INDEX nama_index ;
4. Menhapus View
Sintaks :DROP VIEW nama_view ;

Contoh :
DROP DATABASE Mahasiswa; DROP
TABLE MHS;
DROP INDEX MHSIDX;
DROP VIEW MHSVIEW;
❖ ALTER TABLE (MERUBAH STRUKTURTABEL)

Sintaks :
ALTER TABLE nama_tabel
ADD nama_kolom jenis_kolom
[FIRST | AFTER nama_kolom]
CHANGE [COLUMN] oldnama newnama
MODIFY nama_kolom jenis kolom,
DROP nama_kolom
RENAME namabaru_tabel
Contoh :
1. Tambahkan kolom JKEL dengan panjang 1 char
pada tabel MHS
ALTER TABLE MHS ADD JKEL char(1);
2. Ubah panjang kolom MTKULIAH menjadi 30 char ALTER
TABLE MKUL MODIFY COLUMN
MTKULIAH char(30);
3. Hapus kolom JKEL dari data tableMHS
ALTER TABLE MHS DROP JKEL;
D M L

❖ INSERT
INSERT INTO Nama_tabel
[(nama_kolom1,…)] VALUES
(data1,data2,,,)

Contoh :
Masukan data matakuliah Berkas Akses dengan
kode KK222 dan besarnya 2

INSERT MKUL VALUES(“KK222”,”Berkas Akses”, 2);


❖ UPDATE

Sintaks :
UPDATE nama_tabel
SET nama_kolom =value_1
WHERE kondisi ;
Contoh :
Ubah alamat menjadi “Depok” untuk mahasiswa yang memiliki
NPM “50409486”
UPDATE MHS SET ALAMAT=”Depok” WHERE
NPM=”50409486”;
❖ DELETE

Sintaks : DELETE FROMnama_table


WHERE kondisi
Contoh :
Hapus data nilai matakuliah “KK021” bagi
mahasiswa yang mempunyai NPM “10109832”

DELETE FROMNILAI
WHERE NPM=”10109832” AND KDMK=”KK021”
Tabel dibawah ini untuk mengerjakan Select (tampilan) dari SQL

Tabel Mahasiswa Tabel Nilai


NPM NAMA_MHS ALAMAT_MHS NPM NO_MK MID FINAL
10109832 Nurhayati Jakarta 10109832 KK021 60 75
10109126 Astuti Jakarta 10109126 KD132 70 90
32105500 Budi Depok
41200525 Prananigrum Bogor 32105500 KK021 55 40
50409486 Pipit Bekasi 41200525 KU122 90 80
21109353 Quraish Bogor 21109353 KU122 75 75
10109001 Fintri Depok
50409486 KD132 80 0
21108002 Julizar Jakarta

Tabel MataKuliah
KD_MK NAMA_MK SKS

KK021 Sistem Basis Data 2


KD132 Sistem Informasi Manajemen 3
KU122 Pancasila 2
❖ SELECT

Sintaks :
SELECT [DISTINCT | ALL] nama_kolom
FROM nama_tabel
[ WHERE condition ]
[ GROUP BY column_list]
[HAVING condition]
[ ORDER BY column_list [ASC | DESC]]
Contoh :
a. Tampilkan semua data mahasiswa

SELECT NPM,NAMA,ALAMAT FROM MAHASISWA;


Atau
SELECT * FROM MAHASISWA;

Hasil: NPM NAMA_MHS ALAMAT_MHS

10109832 Nurhayati Jakarta


10109126 Astuti Jakarta
31209500 Budi Depok
41209525 Prananingrum Bogor
b. Tampilkan Mata Kuliah yang SKSnya 2
Select NAMA_MK from matakuliah Where sks =2

Hasil :
NAMA_MK
Sistem Basis Data
Pancasila
c. Tampilkan semua data nilai dimana nilai MID lebih besar sama dengan
60atau nilai finalnya lebih besar 75.
SELECT * FROM NILAI WHERE MID >=60OR
FINAL >75
Hasilnya :

NPM NO. MK MID FINAL


10109832 KK021 60 75
10109126 KD132 70 90
41209525 KU122 90 80
21109353 KU122 75 75
Manipulasi string : LIKE, NOT LIKE,%,

Contoh :

1.SELECT npm,nama FROM mahasiswa NPM NAMA_MHS ALAMAT_MHS

WHERE nama LIKE „%a% 10109832 Nurhayati Jakarta


41200525 Prananigrum Bogor
Hasil : 21109353 Quraish Bogor
21108002 Julizar Jakarta

2. SELECT npm,nama FROM mahasiswa


WHERE nama NOT LIKE „%a%
NPM NAMA_MHS ALAMAT_MHS
Hasil
10109126 Astuti Jakarta
32105500 Budi Depok
50409486 Pipit Bekasi
10109001 Fintri Depok
3. SELECT * FROM nilai WHERE npm LIKE„???09%‟

4. SELECT * FROM nilai WHERE npm[4,5]=„09‟

NPM NO_MK MID FINAL

10109832 KK021 60 75
10109126 KD132 70 90
21109353 KU122 75 75
50409486 KD132 80 0
5. SELECT DISTINCT alamat_mhsFROM
MAHASISWA
ALAMAT_MHS

Jakarta
Depok
Bogor
Bekasi

6. SELECT * FROM matakuliah ORDER BYsks

KD_MK NAMA_MK SKS


KK021 Sistem Basis Data 2
KU122 Pancasila 2
KD132 Sistem Informasi Manajemen 3
DATA ACCESS
❖ GRANT
Sintaks : GRANT hak_akses ON nama_db
TO nama_pemakai [IDENTIFIED BY]
[PASSWORD]
„Password‟
[WITH GRANT OPTION];

GRANT hak_akses ON
[nama_db.]nama_tabel TO
nama_pemakai
[IDENTIFIED BY] [PASSWORD]„Password‟
[WITH GRANT OPTION];
Contoh :
Berikan hak akses kepada Adi untuk menampikan
nilai final test pada tabelNilai.
GRANT SELECT (FINAL) ON NILAI TO ADI
DATA ACCESS

❖ REVOKE
Sintaks : REVOKE hak_akses ONnama_db
FROM nama_pemakai;

REVOKE hak_akses ON nama_tabel


FROM nama_pemakai;

Contoh :
Tarik kembali dari Adi hak akses untuk menampilkan nilai
final test

REVOKE SELECT (FINAL) ON NILAI FROMADI


DATA INTEGRITY

❖ RECOVER TABLE
Sintaks : RECOVER TABLE nama_tabel

Contoh :
Kembalikan keadaan data mahasiswa seperti pada saat
sebelum terjadi kerusakan

RECOVER TABLE MAHASISWA;


AUXILIARY

SELECT … INTO OUTFILE ‘filename’


Sintaks ini digunakan untuk mengekspor data dari
tabel ke file lain.
Sintaks : SELECT … INTO
OUTFILE ‘Nama File’
[FIELDS | COLUMNS]
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char'] ]
Contoh :

Ubah semua data mahasiswa ke bentuk ASCII dan disimpan ke


file teks di directory/home/adi dengan pemisah antar kolom „|‟
SELECT * FROMMAHASISWA
INTO OUTFILE “/home/adi/teks”
FIELDS TERMINATED BY “”;

Atau

UNLOAD TO “/home/adi/teks.txt” delimiter “|”


SELECT * FROMMAHASISWA;
LOAD

Sintaks Kueri ini digunakan untuk mengimpor datadari


file lain ketabel.

Sintaks : LOAD DATA INFILE “nama_path”


INTO TABLE nama_tabel [ nama_kolom]; [FIELDS |
COLUMNS]
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY'char']
[ESCAPED BY 'char']]
Contoh :
Memasukkan data dari file teks yang berada pada
direktori “/home/adi” ke dalam tabel MHS_2. Dimana
pemisah antara kolom dalam file teks adalah tab (\t) :

LOAD FROM„/home/adi/teks‟
INTO MHS_2
FILELDS TERMINATED BY„|t‟;

Atau

LOAD FROM “/home/adi/teks.txt” delimiter“|” INSERT INTO


mhs_2
RENAME TABLE

Sintaks : RENAME TABLE Oldnama_Tabel


TO NewNama_Tabel

Contoh :
RENAME TABLE MAHASISWA TO MHS
FUNGSI AGGREGATE

COUNT digunakan untuk menghitung jumlah record. Menghitung


jumlah record mahasiswa dari tabel MAHASISWA
SELECT COUNT(*) FROMMAHASISWA
hasil : 8

SUM digunakan untuk menghitung total dari kolom


yang mempunyai tipe data numerik.
SELECT SUM(SKS) AS „TOTAL SKS‟FROM
MATAKULIAH
hasil : TOTAL SKS 7
AVGdigunakan untuk menghitung rata-rata dari data-data
dalam sebuah kolom.
SELECT AVG(FINAL) AS ‘FINAL’ FROM Nilai
hasil : 60

MIN digunakan untuk menghitung nilai minimal dalam sebuah


kolom.
SELECT MIN(FINAL) FROM Nilai
hasil : 40

MAX digunakan untuk menghitung nilai maksismum dalam


sebuah kolom
SELECT MAX(MID) FROM Nilai
hasil : 90
1. Tampilkan nilai final tertinggi
SELECT MAX( final) FROM'Nilai'
2. Tampilkan nilai final terendah
SELECT MIN( final) FROM'Nilai„;
SELECTMIN(final), MAX(final) FROMnilai
3. Tampilkan rerata dari nilai MID danFINAL
SELECTAVG(mid),AVG(final) FROMmhs
4. Menampilkan nama yang mengandung hurus a kecil
SELECTnpm, nm_mhs FROM 'mhs' where nm_mhs LIKE
'%a%'
5. Tampilkan npm,kd_mk,mid untuk nilai mid antara 70 sd90
SELECTnpm, kd_mk, mid FROM `nilai` WHERE mid <91AND mid>69
atau
SELECTnpm, kd_mk, mid FROM `nilai` WHERE mid BETWEEN 70 AND 90
6.Tampilkan npm,nm_mhs,kd_mk,final untuk semua mahasiswa SELECTnilai.NPM, nm_mhs, kd_mk, final
FROM mhs, nilai WHERE mhs.NPM =nilai.NPM
7. Tampilkan npm,nm_mhs,nama_mk,mid,final untuk semua
mahasiswa
SELECTnilai.NPM, nm_mhs, nama_mk, mid, final
FROM mhs, nilai, matkul
WHERE mhs.NPM =nilai.NPM AND matkul.kd_mk =nilai.kd_mk
8. Tampilkan nm_mhs,nama_mk,mid, mid, final untuk semua
mahasiswa yang nilai mid>60 dan final>60
SELECTnm_mhs, nama_mk, mid, final FROM
mhs, matkul, nilai
WHERE mhs.NPM =nilai.NPM AND matkul.kd_mk =nilai.kd_mk
AND mid>60 and final>60

9. Tambahkan kolom FAKULTAS pada tabel Mahasiswa


ALTER TABLE `mhs` ADD `Fak` VARCHAR(50) NOT NULL;

10. Tambahkan data mahasiswa dari mhs1.txt


LOAD DATA LOCAL INFILE “D:/MHS1.TXT” INTO TABLE MHS
FIELDS TERMINATED BY “,”;
11.Ubah nilai dari fak dari ketentuan, ambil 1digit ke 3 dari NPM
Jika : nilainya 1 maka fak=FIKTI
nilainya 2 maka fak=FE
niainya 3 maka fak=FTSP
ni1ainya 4 maka fak=FTI
ni1ainya 5 maka fak=FPSI
ni1ainya 6 maka fak=FSAS
UPDATE mhs SETfak='FIKTI' WHERE npm LIKE ‘ %1%'; dst
Atau
UPDATE mhs SET fak=‟FIKTI‟ WHERE NPM[3,1]=‟1‟ ; dst
12.Hitung dan tampilkan jumlah mahasiswa per fakultas.
SELECT FAKULTAS,fak,count(fak) FROMmhsGROUP BY fak;
13.Tampilkan npm, nama, kdmk, mid,final untuksemua ,
diurutkan berdasarkan nama mahasiswa dari besar ke kecil

14.Tampilkan jumlah kdmk,nama matakuliah untuksemua


matakuliah yang diambil olehmahasiswa

15.Tampilkan nilai rerata mid untuk setiapkdmk


Select kdmk,avg(mid) from nilai group by kdmk
THANK YOU

Anda mungkin juga menyukai