Tuesday 3 February 2015

SOAL RDBMS, OODBMS

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';

Comments
0 Comments

No comments:

Post a Comment