OPERATOR YANG DIGUNAKAN
A. OPERATOR HIMPUNAN
1. Union atau gabungan ( È )
Union dari relasi A dan B dinyatakan sebagai A È B

2.
Intersection atau irisan ( Ç )

Intersection dari relasi A dan B dinyatakan sebagai A Ç B
3.
Difference

Difference dari relasi A dan B dinyatakan dengan A - B
4. Cartesian product
Product cartesian dari relasi A dan B dinyatakan dengan A X B contoh :
A = { 1,2,3}
B = { 5,7 }
A X B = { ( 1,5), (1,7), ( 2,5), (2,7), (3,5),(3,7) }
OPERATOR RELATIONAL
1. Restrict ( ) adalah Pemilihan tupel atau record
2. Project ( π ) adalah pemilihan attribute atau field
3. Divide ( ) adalah membagi
4. Join ( ) adalah menggabungkan
ALJABAR RELASIONAL
Operator pada aljabar relationaldibagi menjadi 2 kelompok :
1. Operator dasar untuk fundamental operational
2. Operator tambahan untuk additional operasional
Tabel dibawah ini adalah contoh untuk mengerjakan perintah – perintah Relation Algebra: RELASI : MATA KULIAH
KD_MK
|
NAMA_MK
|
SKS
|
NIP
|
207
|
LOGIKA & ALGO
|
4
|
199910486
|
310
|
STRUKTUR DATA
|
3
|
200109655
|
360
|
SISTEM BASIS DATA
|
3
|
200209817
|
545
|
IMK
|
2
|
200209818
|
547
|
APSI
|
4
|
200109601
|
305
|
PEMR. PASCAL
|
4
|
200703073
|
544
|
DISAIN GRAFIS
|
2
|
200010490
|
RELASI : MAHASISWA
NIM
|
NAMA_MHS
|
ALAMAT
|
J_KEL
|
1105090222
|
HAFIDZ
|
DEPOK
|
LAKI-LAKI
|
1105091002
|
RAFFA
|
DEPOK
|
LAKI-LAKI
|
1105095000
|
NAIA
|
DEPOK
|
PEREMPUAN
|
1104030885
|
ARIF
|
P.LABU
|
LAKI-LAKI
|
1206090501
|
LENI
|
KMP. MELAYU
|
PEREMPUAN
|
1206090582
|
WAHYUNI
|
TANGERANG
|
PEREMPUAN
|
1205097589
|
ARIS
|
DEPOK
|
LAKI-LAKI
|
1106094586
|
YANI
|
CILEDUG
|
PEREMPUAN
|
110709
|
BAMBANG
|
SALEMBA
|
LAKI-LAKI
|
RELASI : REGISTRASI
KD_MK
|
NIM
|
360
|
1105090222
|
545
|
1206090501
|
547
|
1105095000
|
RELASI : DOSEN
NIP
|
NAMA_DOS
|
GAJI
|
199910486
|
BILLY
|
3500000
|
200109655
|
MARDIANA
|
4000000
|
200209817
|
INDRIYANI
|
4500000
|
200209818
|
SURYANI
|
4250000
|
200109601
|
DWINITA
|
3500000
|
200703073
|
MALAU
|
2750000
|
200010490
|
IRFIANI
|
3500000
|
OPERATOR DASAR
a. Selection ( s ) Lower Case Omega
Operasi selection menyeleksi tupel-tupel pada sebuah relation yang memenuhi predicate/syarat yang sudah ditentukan
Contoh :
1. Mencari tuple-tuple dari MAHASISWA yang memiliki jenis kelamin laki-laki, Ekspresi aljabar relational : σ J_KEL = ȃL“KI-L“KIȄ (MAHASISWA
2. Tampilkan data mata kuliah yang memiliki kode 360 atau yang memilki sks 4
o KD_MK=ȃřŖ6Ȅ V SKS = 4 (MATAKULIAH)
b. Projection ( )
Operator projection beroperasi pada sebuah relation, yaitu membentuk relation baru dengan mengcopy atributeatribute dan domain-domain dari relation tersebutberdasarkan argumen-argumen pada operator tersebut.
Contoh :
Tampilkan nama beserta gaji dari dosen
πnama_dos,gaji (DOSEN)
c. Cartesian product ( X )
Operator dengan dua relasi untuk menghasilkan tabel hasil perkalian kartesian.
Contoh :
Tampilkan nid,nama_d (dari relasi Dosen), nama_mk (dari relasi Matakuliah), thn_akademik,smt,hari,jam_ke,waktu,kelas (dari relasi MengajarǼ dimana semester mengajar adalah pada semester ȁŗȂ.
π nid, nama_d, nama_mk, thn_akademik,smt, hari,jam_ke, waktu, kelas ( smt=1 ^Dosen.nid = Mengajar.nid ^mengajar.kdmk = Matakuliah.kdmk (DosenxMatakuliahxMengajar))
d. Union ( È )
Operasi untuk menghasilkan gabungan tabel dengan syarat kedua tabel memiliki atribut yang sama yaitu domain atribut ke-i masing-masing tabel harus sama RUS={ X I X E R atau X E S}
Contoh :
Penggabungan berdasarkan kolom kota dari table mahasiswa dengan tabel dosen

e. Set diference ( - )
Operasi untuk mendapatkan tabel dis uatu relasi tapi tidak ada di relasi lainnya. R – S = { X I X E R dan X E S }
Contoh : Tampilkan nama dari mahasiswa yang tinggal di depok tetapi bukan berjenis kelamin perempuan
Query I : tampilkan nama yang tinggal di depok
πnama_mhs( alamat=ȃDEPOKȄ (MAHASISWA))
Query II : tampilkan nama yang berjenis kelamin perempuan
πnama_mhs( j_kel =ȃPEREMPU“NȄ (MAHASISWA))
Tampilkan query I minus query II : πnama_mhs(salamat=ȃDEPOKȄǻM“H“SISW“Ǽ)- πnama_mhs(sj_kel=ȃPEREMPU“NȄ (MAHASISWA))
OPERATOR TAMBAHAN
1. SET INTERSECTION ( Ç )
Operasi untuk menghasilkan irisan dua tabel dengan syarat kedua tabel memiliki atribut yang sama, domain atribut ke-i kedua tabel tersebut sama.
2. THETA JOIN
Operasi yang menggabungkan operasi cartesian product dengan operasi selection dengan suatu kriteria.
3. NATURAL JOIN
Operasi menggabungkan operasi selection dan cartesian product dengan suatu kriteria pada kolom yang sama.
4. DIVISION
Merupakan operasi pembagian atas tuple-tuple dari 2 relation Contoh: B

Analisa Perpustakaan Smart
1. Diharapkan dosen untuk membuat tambahan kasus terbaru dari Perpustakaan Smart yang diimplementasikan dengan solusi Query bahasa Formal.


BAHASA QUERY KOMERSIAL STRUKTUR 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
1. Menciptakan basis data dan struktur relasi
2. Melakukan menajemen data tingkat dasar
3. Membentuk query sederhana dan kompleks
4. Melakukan tugas-tugas dengan seminimal mungkin memakai struktur dan sintaks perintah relatif mudah dipelajari
5. Harus portable
Jenis SQL :
1. Interactive SQL
2. Static SQL
3. Dynamic SQL
Subdivisi SQL
1. DDL (Data Definition Language)
Query-query ini digunakan untuk mendefinisikan struktur atau skema basis data
2. DML (Data Manipulation Language)
Query-query ini digunakan untuk manajemen data dalam basisdata
3. DCL ( Data Control Language)
Query-query ini berhubungan dengan pengaturan hak akses danwewenang.
PENGELOMPOKAN STATEMEN SQL
1. Data Definition Language (DDL)
CREATE DATABASE DROP DATABASE
CREATE TABEL DROP TABEL
CREATE INDEX DROP INDEX
CREATE VIEW DROP VIEW ALTER TABLE
2. Data Manipulation Language
INSERT, SELECT, UPDATE, DELETE
3. Data Access
GRANT , REVOKE
4. Data Integrity
RECOVER TABLE
5. Auxiliary
SELECT INTO OUTFILE, LOAD, RENAME TABLE
KASUS DATA DEFINITION LANGUAGE (DDL)
A. CREATE
1. Pembuatan Database
Nama Database adalah yang dapat mewakili suatu kejadian dapat berupa nama organisasi atau perusahaan.
Sintaks : CREATE DATABASE nama_database Contoh : Buat database dengan nama KAMPUS
CREATE DATABASE KAMPUS
2. Pembuatan Tabel
Sintaks : CREATE TABLE nama_table
( nama_kolom1 tipe_data_kolom1, nama_kolomŘ,tipe_data_kolomŘ,….Ǽ
Contoh :
Buat struktur tabel dengan nama tabel MHS dengan data NIM char(8), NAMA char(25), ALAMAT char(30)
CREATE TABLE MHS (NIM char(8) not null, NAMA char(25) notnull, ALAMAT char(30) notnull)
3. Pembuatan Index
Sintaks : CREATE [UNIQUE] INDEX nama_index ON nama_table (nama_kolom) ;
Contoh :
Buat index data mahasiswa berdasarkan NIM dengan nama MHSIDX Dimana NIM tidak boleh sama
CREATE UNIQUE INDEX MHSIDX ON MHS(NIM)
4. Pembuatan View
Sintaks :
CRE“TE VIEW nama_view [ ǻnama_kolomŗ,….Ǽ ]
AS SELECT statement [WITH CHECK OPTION] ;
Contoh :
Buat view dengan nama MHSVIEW yang berisi semua data mahasiswa CREATE VIEW MHSVIEW
AS SELECT * FROM MHS
B. 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 KAMPUS; DROP TABLE MHS;
DROP INDEX MHSIDX; DROP VIEW MHSVIEW;
C. ALTER TABLE (MERUBAH STRUKTUR TABEL)
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 newnama_tabel
Contoh :
1. Tambahkan kolom JKEL dengan panjang 1 char pada tabel MHS ALTER TABLE MHS ADD JKEL char(1);
2. Ubah panjang kolom JKEL menjadi 15 char
ALTER TABLE MHS MODIFY COLUMN JKEL char(15);
3. Hapus kolom JKEL dari data table MHS ALTER TABLE MHS DROP JKEL;
DATA MANIPULATION LANGUAGE (DML)
1. INSERT
Sintaks DZ INSERT INTO Nama_tabel [ǻnama_kolomŗ,…Ǽ]
Contoh :
Masukan data mhs dengan NIM 10296832 Nurhayati beralamat di Jakarta INSERT INTO MHS V“LUESǻȃŗŖŘş6ŞřŘȄ,ȄNurhayatiȄ,ȃJakartaȄǼDz tambahkan record baru seperti dibawah ini.
NIM
|
NAMA
|
ALAMAT
|
10296832
|
Nurhayati
|
Jakarta
|
10296126
|
Astuti
|
Jakarta
|
31296500
|
Budi
|
Depok
|
41296525
|
Prananigrum
|
Bogor
|
50096487
|
Pipit
|
Bekasi
|
21196353
|
Quraish
|
Bogor
|
10296001
|
Fintri
|
Depok
|
21198002
|
Julizar
|
Jakarta
|
2. UPDATE
Sintaks : UPDATE nama_tabel
SET nama_kolom = value_1 WHERE kondisi ;
Contoh :
Ubah alamat menjadi ȃDepokȄ untuk mahasiswa yang memiliki NIM ȃŗŖŘş6ŞřŘȄ
UPDATE MHS
SET ALAMAT=ȄDepokȄ WHERE NIM=Ȅ ŗŖŘş6ŞřŘȄDz
3. DELETE
Sintaks : DELETE FROM nama_table WHERE kondisi
Contoh :
Hapus data mahasiswa yang mempunyai NIM ȃŘŗŗşŞŖŖŘȄ
DELETE FROM MHS
WHERE NIM=Ȅ ŘŗŗşŞŖŖŘȄ
NIM
NAMA
ALAMAT
10296832
Nurhayati
Jakarta
10296126
Astuti
Jakarta
31296500
Budi
Depok
41296525
Prananigrum
Bogor
50096487
Pipit
Bekasi
21196353
Quraish
Bogor
10296001
Fintri
Depok
21198002
Julizar
Jakarta
NIM
KD_MK
MID
FINAL
10296832
KK021
60
75
10296126
KD132
70
90
31296500
KK021
55
40
41296525
KU122
90
80
21196353
KU122
75
75
50095487
KD132
80
0
Tabel dibawah ini untuk mengerjakan Select (tampilan) dari SQL Tabel MHS Tabel Nilai
|
|
Tabel Mata Kuliah
KD_MK
|
NAMA_MK
|
SKS
|
KK021
|
Sistem Basis Data
|
2
|
KD132
|
Sistem Informasi Manajemen
|
3
|
KU122
|
Pancasila
|
2
|
4. 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 NIM,NAMA,ALAMAT FROM MHS;
Atau
SELECT * FROM MHS;
Maka hasilnya adalah :
NIM
|
NAMA
|
ALAMAT
|
10296832
|
Nurhayati
|
Jakarta
|
10296126
|
Astuti
|
Jakarta
|
31296500
|
Budi
|
Depok
|
41296525
|
Prananingrum
|
Bogor
|
b. Tampilkan Mata Kuliah yang SKSnya 2
Select NAMA_MK from matakuliah Where sks = 2 Maka Hasilnya :

c. Tampilkan semua data nilai dimana nilai MID lebih besar sama dengan 60 atau nilai finalnya lebih besar 75. maka penulisannya :
SELECT * FROM NILAI WHERE MID >= 60 OR FINAL > 75
Hasilnya :
NIM
|
KD_MK
|
MID
|
FINAL
|
10296832
|
KK021
|
60
|
75
|
10296126
|
KD132
|
70
|
90
|
41296525
|
KU122
|
90
|
80
|
21196353
|
KU122
|
75
|
75
|
1. JOIN atau INNER JOIN
JOIN
Menggabungkan dua tabel dimana diantara dua table datanya bersesuaian.
2. LEFT JOIN atau LEFT OUTER JOIN
Menggabungkan dua tabel dimana diantara dua table datanya bersesuaian dan juga semua record pada table sebelah kiri.
3. RIGHT JOIN atau RIGHT OUTER JOIN
Menggabungkan dua tabel dimana diantara dua table datanya bersesuaian dan juga semua record pada table sebelah kanan.
SELECT Nilai.NIM, MHS.NAMA, Nilai.KD_MK, Nilai.MID FROM Nilai INNER JOIN MHS
ON Nilai.NIM = MHS.NIM
Hasil :
NIM
|
NAMA
|
KD_MK
|
MID
|
10296832
|
Nurhayati
|
KK021
|
60
|
10296126
|
Astuti
|
KD132
|
70
|
31296500
|
Budi
|
KK021
|
55
|
41296525
|
Prananigrum
|
KU122
|
90
|
21196353
|
Quraish
|
KU122
|
75
|
50095487
|
Pipit
|
KD132
|
80
|
SELECT MHS.NIM, MHS.NAMA, Nilai.KD_MK, Nilai.MID FROM MHS LEFT OUTER JOIN Nilai
ON Nilai.NIM = MHS.NIM
Hasil :
NIM
|
NAMA
|
KD_MK
|
MID
|
10296832
|
Nurhayati
|
KK021
|
60
|
10296126
|
Astuti
|
KD132
|
70
|
31296500
|
Budi
|
KK021
|
55
|
41296525
|
Prananigrum
|
KU122
|
90
|
21196353
|
Quraish
|
KU122
|
75
|
50095487
|
Pipit
|
KD132
|
80
|
10296001
|
Fintri
|
-
|
-
|
21198002
|
Julizar
|
-
|
-
|
SELECT MHS.NIM, MHS.NAMA, Nilai.KD_MK, Nilai.MID FROM Nilai RIGHT OUTER JOIN MHS
ON Nilai.NIM = MHS.NIM
Hasil :
NIM
|
NAMA
|
KD_MK
|
MID
|
10296832
|
Nurhayati
|
KK021
|
60
|
10296126
|
Astuti
|
KD132
|
70
|
31296500
|
Budi
|
KK021
|
55
|
41296525
|
Prananigrum
|
KU122
|
90
|
21196353
|
Quraish
|
KU122
|
75
|
50095487
|
Pipit
|
KD132
|
80
|
10296001
|
Fintri
|
-
|
-
|
21198002
|
Julizar
|
-
|
-
|
1. GRANT
DATA ACCESS
Sintaks : GRANT hak_akses ON nama_db TO nama_pemakai
[IDENTIFIED ”Y] [P“SSWORD] ȁPasswordȂ
[WITH GRANT OPTION] ;
GRANT hak_akses ON [nama_db]nama_tabel TO nama_pemakai
[IDENTIFIED ”Y] [P“SSWORD] ȁPasswordȂ
[WITH GRANT OPTION];
Contoh :
Berikan hak akses kepada Adi untuk menampikan nilai final test pada tabel Nilai.
GRANT SELECT (FINAL) ON NILAI TO ADI
2. REVOKE
Sintaks : REVOKE hak_akses ON nama_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 FROM ADI
RECOVER TABLE
DATA INTEGRITY
Sintaks : RECOVER TABLE nama_tabel Contoh :
Kembalikan keadaan data mahasiswa seperti pada saat sebelum terjadi kerusakan RECOVER TABLE MHS ;
ŗ. SELECT … INTO OUTFILE ȁfilenameȂ
AUXILIARY
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 * FROM MHS
INTO OUTFILE ȃ/home/adi/teksȄ
FIELDS TERMIN“TED ”Y ȃ ½ȄDz
2. LOAD
Sintaks query ini digunakan untuk mengimpor data dari file lainke tabel. Sintaks : LO“D D“T“ INFILE ȃ nama_pathȄ
INTO TABLE nama_tabel [ nama_kolom] ; [FIELDS | COLUMNS]
[TERMINATED BY 'string'] [[OPTIONALLY] ENCLOSED BY 'char'] [ESCAPED BY 'char'] ]
Contoh :
Memasukkan data-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) :
LO“D FROM ȃ/home/adi/teksȄ
INTO MHS_2
FILELDS TERMIN“TED ”Y ȁ\tȂDz
3. RENAME TABLE Sintaks :
RENAME TABLE OldnamaTabel TO NewNamaTabel
Contoh :
RENAME TABLE MHS TO MAHASISWA
MENGGUNAKAN FUNGSI AGGREGATE :
1. COUNT digunakan untuk menghitung jumlah.
Menghitung jumlah record mahasiswa dari tabel MAHASISWA SELECT COUNT(*) FROM MAHASISWA
2. SUM digunakan untuk menghitung total dari kolom yang mempunyai tipe data numerik.
SELECT SUMǻSKSǼ “S ȁTOT“L SKSȂ FROM M“T“KULI“H
3. AVG digunakan untuk menghitung rata-rata dari data-data dalam sebuah kolom. SELECT AVG(FIN“LǼ “S ȁFIN“LȂ FROM Nilai
4. MIN digunakan untuk menghitung nilai minimal dalam sebuah kolom. SELECT MIN(FINAL) FROM Nilai
5. MAX diguankan untuk menghitung nilai maksimum dalam sebuah kolom SELECT MAX(MID) FROM Nilai.
SUBQUERY
Adalah subselect yang dapat digunakan di klausa WHERE dan HAVING dipernyataan select luar untuk menghasilkan tabel akhir. Aturan-aturan untuk membuat subquery, yaitu :
1. Klausa Order By tidak boleh digunakan di subquery, Order By hanya dapat digunakan di pernyataan Select luar.
2. Klausa subquery Select harus berisi satu nama kolom tunggal atau ekspresi kecuali untuk subquery-subquery menggunakan kata kunci EXIST
3. Secara default nama kolom di subquery mengacu ke nama tabel di klausa FROM dari subquery tersebut.
4. Saat subquery adalah salah satu dua operan dilibatkan di pembandingan, subquery harus muncul disisi kanan pembandingan
Penggunanaan ANY dan ALL
Jika subquery diawali kata kunci ALL, syarat hanya akan bernilai TRUE jika dipenuhi semua nilai yang dihasilkan subquery itu.
Jika subquery diawali kata kunci ANY, syaratnya akan bernilai TRUE jika dipenuhi sedikitnya satu nilai yang dihasilkan subquery tersebut.
Penggunanaan EXIST DAN NOT EXIST
EXIST akan mengirim nilai TRUE jika dan hanya jika terdapat sedikitnya satu baris di tabel hasil yang dikirim oleh subquery dan EXIST mengirim nilai FALSE jika subquery mengirim tabel kosong. Untuk NOT EXIST kebalikan dari EXIST.
(Masing-masing dosen membuat contoh untuk subquery)
CONTOH SUBQUERY :
1. Coba ambil nilai mid dan final dari mahasiswa yang bernama Astuti. SELECT MID, FINAL FROM NILAI WHERE NIM=( SELECT NIM FROM M“H“SISW“WHERE N“M“=ȁ“stutiȂǼ
2. Ambil nilai kode matakuliah, mid dan final dari mahasiswa yang tinggal di jakarta. SELECT KD_MK, MID, FINAL FROM NILAI WHERE NIM
IN(SELECT NIM FROM MAHASISWA WHERE ALAMAT = ȁJakartaȂǼ
3. Ambil nama-nama mahasiswa yang mengikuti ujian.
SELECT NAMA FROM MAHASISWA WHERE EXISTS (SELECT NIM FROM NILAI WHERE NILAI.NIM= MAHASISWA.NIM)
4. Ambil nama-nama mahasiswa yang tidak mengikuti ujian.
SELECT NAMA FROM MAHASISWA WHERE NOT EXISTS (SELECT NIM FROM NILAI WHERE NILAI.NIM= MAHASISWA.NIM).
Aplikasi yang digunakan sebagai contoh adalah phptriad-mysql front
Tampilan password ketik root dan untuk password ketik password.

FRAGMENTASI DATA
Merupakan sebuah proses pembagian atau pemetaan database dimana database dipecah- pecah berdasarkan kolom dan baris yang kemudian disimpan didalam site atau unit komputer yang berbeda dalam suatu jaringan data, sehingga memungkinkan untuk pengambilan keputusan terhadap data yang telah terbagi.
Alasan-alasan diperlukannya fragmentasi, yaitu :
1. Penggunaan
2. Efisiensi
3. Paralleslisme
4. Keamanan
BEBERAPA PERATURAN YANG HARUS DIDEFINISIKAN KETIKA MENDEFINISIKAN FRAGMENT :
1. Kondisi lengkap (Completeness)
sebuah unit data yang masih dalam bagian dari relasi utama, maka data harus
berada dalam satu fragmen. Ketika ada relasi, pembagian datanya harus menjadi satu kesatuan dengan relasinya.
2. Rekontruksi (Reconstruction)
sebuah relasi asli dapat dibuat kembali atau digabungkan kembali dari sebuah fragmen. Ketika telah dipecah-pecah, data masih memungkinkan untuk digabungkan kembali dengan tidak mengubah struktur data.
3. Disjointness
data didalam fragmen tidak boleh diikutkan dalam fragmen lain agar tidak terjadi redundancy data, kecuali untuk atribut primary key dalam fragmentasi vertical
Kerugian
TIGA JENIS FRAGMENTASI :
1. Fragmentasi horisontal
terdiri dari tuple dari fragment global yang kemudian dipecah-pecah atau disekat menjadi beberapa sub-sets
2. Fragmentasi vertikal
Membagi atribut-atribut dari fragment global yang tersedia menjadi beberapa grup.
3. Fragmentasi campuran
Cara yang sederhana untuk membangun fragmentasi campuran sbb :
a. Menggunakan fragmentasi horisontal pada fragmentasi vertikal
b. Menggunakan fragmentasi vertical pada fragmentasi horizontal
CONTOH KASUS JENIS-JENIS FRAGMENTASI
Ujian (NIM,Nama_Mhs,Kode_MK,Mt_Kuliah,Nil_Akhir,Grade)

Fragmentasi Horisontal terbagi menjadi 3 fragment yang berbeda berdasarkan Mt_Kuliah
1. Relasi Mt_Kuliah=ȃSistem ”asis DataȄ
Mt_Kuliah=ȃSistem ”asis DataȄ ǻUjianǼ


Fragment di atas memenuhi kondisi jika Nama_Mhs dan Mt_Kuliah adalah hal-hal yang memenuhi syarat. Fragmentasi vertical:berdasarkan dekomposisi-nya dengan menambahkan tupel id.

Relasi 1 = NIM, Nama_Mhs, Mt,Kuliah, Nil_Akhir, Grade, Tuple_ID
πNIM,Nama_Mhs,Mt,Kuliah,Nil_Akhir,Grade,Tuple_ID (UJian)

Relasi 2 = NIM,Kode_MK,Nil_Akhir,Grade,Tuple_ID
πNIM,Kode_MK,Nil_Akhir,Grade,Tuple_ID (Ujian)

Terdapat relasi berdasarkan Mata Kuliah yang sama Relasi 1a.
Fragmentasi Campuran
π NIM,Nama_Mhs,Mt_Kuliah,Nil_Akhir,Grade,Tuple_ID(s Mt_Kuliah=ȃSistem ”asis DataȄ ǻUjianǼǼ
NIM
|
Nama_Mhs
|
Mt_Kuliah
|
Nil_Akhir
|
Grade
|
Tuple_ID
|
123
125
126
|
Fathi Sarah Salsabila
|
Sistem BasisData Sistem Basis Data Sistem BasisData
|
78
40
90
|
BDA
|
1
3
4
|
Relasi 1b. πNIM,Nama_Mhs,Mt_Kuliah,Nil_Akhir,Grade,Tuple_ID(s Mt_Kuliah=ȃPeranc. SistemȄ ǻUjianǼǼ
NIM
|
Nama_Mhs
|
Mt_Kuliah
|
Nil_Akhir
|
Grade
|
Tuple_ID
|
124
129
|
FarahFaiz
|
Peranc. Sistem Peranc. Sistem
|
60
80
|
CA
|
2
7
|
Relasi 1c
p NIM,Nama_Mhs,Mt_Kuliah,Nil_Akhir,Grade,Tuple_ID(s Mt_Kuliah=ȃVisual ”asicȄ ǻUjianǼǼ
NIM
|
Nama_Mhs
|
Mt_Kuliah
|
Nil_Akhir
|
Grade
|
Tuple_ID
|
127
128
|
AzizahFarhan
|
Visual Basic Visual Basic
|
70
40
|
BD
|
5
6
|
Bagaimana bentuk database untuk data yang telah mengalami proses fragmentasi? Fragmentasi data merupakan langkah yang diambil untuk menyebarkan data dalam database terdistribusi . Selanjutnya akan dibahas apa yang dimaksud Database terdistribusi.
DATABASE TERDISTRIBUSI
Yaitu kumpulan data yang digunakan bersama yang saling terhubung secara logik tetapi tersebar secara fisik pada suatu jaringan komputer.
Karakteristik Database terdistribusi, yaitu :
1. Kumpulan data yang digunakan bersama secara logik tersebar pada sejumlah komputer yang berbeda
2. Komputer yang dihubungkan menggunakan jaringan komunikasi
3. Data pada masing-masing situs dapat menangani aplikasiaplikasi lokal secara otonom
4. Data pada masing situs dibawah kendali satu DBMS
5. Masing-masing DBMS berpartisipasi dalam sedikitnya satu aplikasi global
BENTUK-BENTUK TOPOLOGI DISTRIBUSI DATA :
a. Fully Connected network

b. Partialy conneted network

c. Tree Strutured Network

d.
Ring network

e. Star network

KEUNTUNGAN DAN KERUGIAN DATABASE TERDISTRIBUSI KEUNTUNGAN :
1. Secara alami mengikuti struktur organisasi
2. Adanya otonomi lokal
3. Sifatnya dapat dipakai secara bersama
4. Peningkatan ketersediaan
5. Peningkatan kehandalan
6. Peningkatan kinerja
7. Ekonomis
8. Pertumbuhan yang modular
KERUGIAN :
1. Harga software mahal (Biaya)
2. Kompleksitas
3. Kelemahan dalam keamanan
4. Sulitnya menjaga keutuhan data
5. Kurangnya standar
6. Kurangnya pengalaman
7. Perancangan basisdata lebih kompleks
Analisa kasus Perpustakaan Smart
· Pembuatan Salah satu Topologi Jaringan Database Terdistribusi dari Perpustakaan Smart.
· Implementasikan Perpustakaan Smart Fragmentasikan dengan 3 kondisi
:F.Horizontal,F.Vertikal & F.Campuran
Diharapkan Dosen untuk memberikan Analisa kasus Perpustakaan Smart dan Solusi dari permasalahannya.

PERANCANGAN DAN IMPLEMENTASI BASIS DATA MENGGUNAKAN MYSQL
Perangkat Lunak Bantu untuk Perancangan Basis Data
Pada perangkat lunak bantu telah tersedia komponenkomponen (notasi-notasi) perancangan basis data. Salah satu perangkat lunak bantu untuk keperluan semacam itu adalah DBDesigner yang dioptimalkan untuk MySQL Database.

Tampilan jendela DBDesigner.

Contoh penggunaan DBDesigner
Menggunakan Komponen TABEL dan RELASI
Klik komponen Tabel pada toolbar seperti di gambar berikut.
Letakan komponen tsb. pada page
area sehingga muncul komponen
Tabel (Table_01) pada page area,
kemudian klik kanan komponen
tsb sehingga muncul menu dan
pilihlah Edit Object
seperti berikut.

Pada Table Editor kita bisa menentukan properties dari tabel seperti nama
tabel, tipe data, primary key dsb.
Ubah dan simpanlah properties tabel (Table
_01) menjadi tabel faktur (struktur tabel seperti pada pembahasan LRS tanpa ada FK) seperti berikut

Ulangi langkah-langkah menggunakan komponen Table di atas (tabel faktur) untuk tabel
barang dan langganan (struktur tabel seperti pada pembahasan LRS tanpa ada FK). Sehingga ada 3 komponen Table seperti gambar berikut


