1.
Jelaskan Relational Database
Management System? Serta Sebutkan
beberapa kelemahan dan kelebihannya jika menggunakan Relational Database Management System?
2.
Jelaskan Object Oriented Database Management System?
Serta Sebutkan beberapa kelemahan dan
kelebihannya jika menggunakan Object
Oriented Database Management System?
3.
Jelaskan
konsep Distribusi Database ? serta jelaskan keuntungan dan kekurangan dari Distribusi Database ! Saat kapan suatu perusahaan/enterprise
menggunakan OODBMS (Oriented
Database Management System) atau mengguakan Distribusi Database???
CATATAN : untuk menjawab peranyaan No 1 No 2 dan No 3 Buatlah Matrik sbb:
JENIS
|
Definisi/Pengertian
|
Kelemahan
|
Kelebihan
|
Contoh
|
RDBMS
|
|
|
|
|
OODBMS
|
|
|
|
|
Distribusi
Database
|
|
|
|
|
4.
Dalam
distribusi database dikenal dengan fragmentasi horizontal dan vertical, berikan
penjelasan dan contohnya.
5.
Jelaskan
tiga metode utama Partisi Tabel dalam database Oracle!
6.
Apa yang di maksud dengan Partisi RANGE dalam
oRacle Buatlah salah satu contoh
tabel dengan partisi RANGE !!! sekaligus tuliskan juga perintah untuk menampilkan data dari salah
satu partisinya
7.
Buatlah Contoh Perintah SQL untuk DDL dan DML
JAWABAN
JENIS
|
Definisi /
Pengertian
|
Kelemahan
|
Kelebihan
|
Contoh
|
RDBMS
|
DBMS yang
menggunakan metode relasi didasarkan pada teori himpunan untuk
mengorganisasikan data. Data dikumpulkan dalam sejumlah object yang disebut
dengan table.
|
-
Dimungkinkan
adanya lebih dari satu relasi dalam satu tabel
|
-
Meminimalisasi
redudansy data dan menjaga konsistensi data
-
Fleksibel
-
Memudahkan
dalam managemen data
|
ORACLE
Firebird
MySQL
SQL Server
|
OODBMS
|
DBMS yang
mendukung pemodelan dan pembuatan data sebagai objek. OODBMS mendukung 2
kriteria : DBMS dan object-oriented.
|
-
Tight
coupling
-
Kurangnyadukungan
platform
-
Sulit
bermigrasi
-
Kebutuhan
keterampilan
-
Query
yang kompleks
|
-
Desain
yang indah
-
Penyederhanaan
Pembuatan Aplikasi
-
Kinerja
yang tangguh
|
Cache
Datawasp
EyeDB
ObjectDB
Db4o
|
Distribusi
Database
|
Suatu 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.
|
-
Kurangnya Pengalaman: Minimnya
percobaan di lingkup kerja nyata.
-
Kompleksitas: Menambah masalah baru dari
masalah yang ada pada DBS.
-
Biaya: biaya pengembangan teknologi/software dalam masalah
teknis (distributed debuggers dll) sangat diperlukan.
-
Kontrol yang Terdistribusi: Ini kelebihan yang sudah
disebut, tapi sayangnya ini dapat menimbulkan masalah sinkronisasi dan
koordinasi
-
Keamanan: Sekuriti jaringan lebih
kompleks dari sekuriti akses database yang tersentralisasi.
-
Migrasi yang susah: Belum
ada tool atau metodologi yang dapat membantu untuk konversi dari DBS ke DDBS.
|
-
Otonomi Lokal:, kelompok user yang bisa
menggunakan data tersebut dapat menyimpannya di site dimana dia bekerja,
sehingga masing-masing site mempunyai kontrol lokal.
-
Performansi Tinggi: Karena
data yang digunakan umumnya lebih dekat dengan user,
-
Kepercayaan:kemungkinan crashnya satu
node/site, atau hilangnya aksessibilitas karena kegagalan link komunikasi,
tidak membuat data untuk tidak dapat diakses.
-
Ekonomis:
-
Ekspansinya Mudah: Dapat
disesuaikan dengan mudah seiring dengan berkembangnya ukuran database.
-
Shareability:
Untuk merespon trend organisasi ke arah distributed fashion
|
Oracle
SQL Server
IBM DB2
|
Ø Penggunaan RDBMS, OODBMS dan
Distribusi Database
o
Penggunaan
RDBMS biasanya pada Interface
Drivers, SQL Engine, Transaction Engine, Relational Engine, dan Storage Engine.
o
Penggunaan
OODBMS biasanya pada
Language Drivers,Query Engine, Transaction Engine, dan Storage Engine.
o
Penggunaan
Distribusi Database dapat
dilakukan di server internet, intranet atau ekstranet kantor, atau di jaringan
perusahaan.
Untuk menjaga agar basis data yang terdistribusi
tetap up-to-date, ada dua proses untuk menjaganya, yakni replikasi dan
duplikasi.
-
replikasi, digunakan suatu perangkat lunak
untuk mencari perubahan yang terjadi di satu basis data.
-
duplikasi tidak sama dan tidak sekompleks
replikasi. Dalam proses ini, satu basis data dijadikan master, kemudian
diperbanyak menjadi sejumlah duplikat.
Ø Dalam distribusi database dikenal
dengan 2 fragmentasi yaitu :
o
Fragmentasi
horizontal
§
Fragmentasi horizontal berisi tuple-tuple yang dipartisi
atau dibagi dari sebuah relasi global R kedalam sejumlah subset r1,
r2., … ,rn. Tiap-tiap subset berisikan sejumlah tuple
dari R. Setiap tuple dalam R harus memiliki lebih dari satu fragmen, sehingga
relasi yang asli dapat disusun kembali. Sebuah fragmen dalam fragmentasi
horizontal dapat didefinisikan sebagai sebuah seleksi pada relasi global R.
Oleh karena itu sebuah predikat Pi digunakan untuk menyusun fragmen
ri didefinisikan dengan operasi selection sebagai berikut : ri
= σpi(r).
Penyusunan kembali dari relasi R dapat diperoleh dengan mengambil gabungan dari
seluruh fragmen : R= r1U r2U r3….U rn.
Ilustrasi dari fragmentasi secara horizontal adalah :
Relasi R Relasi hasil fragmentasi r1, r2
§
Contoh
: Relasi Deposit
Deposit-Scheme(branch_name,
account_number, cutomer_name, balance)
branch_name
|
account_number
|
cutomer_name
|
balance
|
Hillside
|
305
|
Lowman
|
500
|
Hillside
|
226
|
Camp
|
336
|
Valleyview
|
177
|
Camp
|
205
|
Valleyview
|
402
|
Khan
|
10000
|
Hillside
|
115
|
Khan
|
62
|
Valleyview
|
408
|
Khan
|
1123
|
Valleyview
|
639
|
Green
|
750
|
Kemudian
fragmentasi horizontal dapat diuraikan sbb :
Deposit
1 = σ branch_name = “Hillside”(Deposit)
Deposit
2 = σ branch-name = “Valleyview”(Deposit)
branch_name
|
account_number
|
cutomer_name
|
balance
|
Hillside
|
305
|
Lowman
|
500
|
Hillside
|
226
|
Camp
|
336
|
Hillside
|
115
|
Khan
|
62
|
(a) Deposit 1
branch_name
|
account_number
|
cutomer_name
|
balance
|
Valleyview
|
177
|
Camp
|
205
|
Valleyview
|
402
|
Khan
|
10000
|
Valleyview
|
408
|
Khan
|
1123
|
Valleyview
|
639
|
Green
|
750
|
(b) Deposit 2
o
Fragmentasi
vertical
§
Dalam fragmentasi vertical, setiap fragmen ri
didefinisikan dengan operasi Project sebagai : ri = Πci
(R). Penyusunan kembali dari relasi R dapat diperoleh dengan mengambil gabungan
dari seluruh fragmen operasi ф (natural joint) : R= r1ф
r2 ф r3…. ф rn.
Relasi hasil fragmentasi berisi sebagian atribut/kolom dari
relasi global dan harus memiliki atribut primary key yang akan digunakan
sebagai tuple-id pada saat rekontruksi. Dalam fragmentasi vertikal tidak harus
memiliki fragmen yang dijoint seperti pada fragmen horizontal. Ilustrasi dari
fragmentasi secara horizontal adalah :
Relasi R Relasi hasil fragmentasi r1, r2 r3
§
Contoh
: Relasi Deposit
Deposit-Scheme(branch_name,
account_number, cutomer_name, balance)
branch_name
|
account_number
|
cutomer_name
|
balance
|
Hillside
|
305
|
Lowman
|
500
|
Hillside
|
226
|
Camp
|
336
|
Valleyview
|
177
|
Camp
|
205
|
Valleyview
|
402
|
Khan
|
10000
|
Hillside
|
115
|
Khan
|
62
|
Valleyview
|
408
|
Khan
|
1123
|
Valleyview
|
639
|
Green
|
750
|
Pada fragmentasi vertikal, relasi
deposit memerlukan penambahan tuple-id
Berikut ini adalah relasi deposit dengan penambahan tuple-id :
branch_name
|
account_number
|
cutomer_name
|
balance
|
tuple_id
|
Hillside
|
305
|
Lowman
|
500
|
1
|
Hillside
|
226
|
Camp
|
336
|
2
|
Valleyview
|
177
|
Camp
|
205
|
3
|
Valleyview
|
402
|
Khan
|
10000
|
4
|
Hillside
|
115
|
Khan
|
62
|
5
|
Valleyview
|
408
|
Khan
|
1123
|
6
|
Valleyview
|
639
|
Green
|
750
|
7
|
Sebuah fragmentasi vertikal dari
relasi ini dapat diuraikan sebagai berikut :
Deposit 3 = π branch_name,
cutomer_name,tuple_id(Deposit)
Deposit 4 = µ account_number,
balance, tuple_id(Deposit)
branch_name
|
cutomer_name
|
tuple_id
|
Hillside
|
Lowman
|
1
|
Hillside
|
Camp
|
2
|
Valleyview
|
Camp
|
3
|
Valleyview
|
Khan
|
4
|
Hillside
|
Khan
|
5
|
Valleyview
|
Khan
|
6
|
Valleyview
|
Green
|
7
|
(a)
Deposit
3
account_number
|
balance
|
tuple_id
|
305
|
500
|
1
|
226
|
336
|
2
|
177
|
205
|
3
|
402
|
10000
|
4
|
115
|
62
|
5
|
408
|
1123
|
6
|
639
|
750
|
7
|
(b) Deposit 4
Ø Ada 3 metode utama Partisi Table
dalam database Oracle yaitu :
o
Range
Partition
§ Data dikelompokkan berdasarkan range (rentang) nilai yang kita
tentukan. Range partition ini cocok digunakan pada kolom yang nilainya
terdistribusi secara merata.
o
List
Partition
§
Data dikelompokkan
berdasarkan nilainya. Cocok untuk kolom yang variasi nilainya tidak banyak.
Saya masih menggunakan contoh table penjualan. Yang cocok dengan list partition
adalah kolom area.
o
Hash Partition
§
Jika kita ingin melakukan
partisisi namun tidak cocok dengan RANGE ataupun LIST, maka bisa menggunakan
Hash Partition. Penentuan “nilai mana di taruh di partisi mana” itu diatur
secara internal oleh Oracle (berdasarkan hash value).
Ø Pengertian Partisi Range yaitu :
o
Range partision adalah pembagian suatu table
ke dalam beberapa bagian yang didistribusikan kepada kelompok tertentu
(berdasarkan kriteria tertentu)
o
Contoh
table dengan partisi Range :
§
Query
Ø CREATE TABLE penjualan_range
Ø ( no_invoice NUMBER,
Ø tgl_jual DATE NOT NULL,
Ø area varchar2(10))
Ø PARTITION BY RANGE (tgl_jual)
Ø (
Ø PARTITION jual_kw1 VALUES LESS THAN
(TO_DATE('01-APR-2008','DD-MON-YYYY')) TABLESPACE users,
Ø PARTITION jual_kw2 VALUES LESS THAN
(TO_DATE('01-JUL-2008','DD-MON-YYYY')) TABLESPACE users,
Ø PARTITION jual_kw3 VALUES LESS THAN
(TO_DATE('01-OCT-2008','DD-MON-YYYY')) TABLESPACE users,
Ø PARTITION jual_kw4 VALUES LESS THAN
(TO_DATE('01-JAN-2009','DD-MON-YYYY')) TABLESPACE users);
o
Perintah
untuk menampilkan data dari partisi
SQL> select*from tgl_jual partition(jual_kw1)
Ø
Contoh
Perintah SQL untuk :
o
DDL
DDL yang digunakan adalah :
CREATE
untuk membuat objek baru,
>CREATE TABLE cuaca (
kota varchar(80), min_suhu int, max_suhu int, curah_hujan real, tanggal date);
USE
untuk menggunakan objek,
>USE astronom; //astronom adalah nama database
SHOW
untuk menampilkan objek,
>SHOW astronom; //astronom adalah nama database
ALTER
untuk mengubah objek yang sudah ada,
>ALTER TABLE cuaca ADD COLUMN provinsi varchar(100);
DROP
untuk menghapus objek,
>DROP TABLE cuaca;
o
DML
DDL yang digunakan adalah :
SELECT untuk menampilkan
data
>SELECT * FROM cuaca;
>SELECT * FROM cuaca WHERE kota = 'Solo';
>SELECT * FROM cuaca WHERE min_suhu < 20;
>SELECT kota FROM cuaca WHERE max_suhu > 30;
INSERT untuk menambahkan
data baru
>INSERT INTO cuaca VALUES ('Yogyakarta', 20, 35, 0.25,
'2003-10-1');
UPDAE untuk mengubah
data yang sudah ada
>UPDATE cuaca SET max_suhu = 36 WHERE kota = 'Yogyakarta';
DELETE untuk menghapus
data
>DELETE FROM cuaca WHERE kota='Yogyakarta';