Kamis, 21 April 2016

Lanjutan Post 1

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 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 ALAMATDepokȄ 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 ȁfilenam

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 DT 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“ “S ȁFIN“ 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 ALLsyarat 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

Dari Address ketik : http://localhost/phpmyadmin
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 Dat ǻ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.


Menu Edit Object akan menampilkan jendela Table Editor.

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


Langkah berikutnya membuat relasi 1-M antara langganan dengan faktur dengan cara klik komponen 1-n Relation pada toolbar seperti di gambar berikut.









Klik di tabel langganan kemudian klik di tabel faktur, sehingga muncul komponen relasi yang menghubungkan kedua tabel tsb. dan FK (NLgn) berada pada tabel faktur, seperti gambar berikut.