Jumat, 15 Oktober 2010

Data Defenition Language (DDL)

I.  Pendefinisian relationship dan efek mapping cardinalitas terhadap jenis
key (primary key, foreign key, secondary key)


1.1    Relationship
Relationship Adalah hubungan antara suatu himpunan entitas dengan himpunan entitas lainnya. Simbol yang digunakan adalah bentuk belah ketupat, diamod atau rectangle.

Jenis Reliationship :
1. One to one (1:1)
2. One to many/many to one (1: M / M:1)
3. Many to many (M : M)

1.2.    Efek mapping kardinalitas terhadap key

• Relasi One to one : A one to one B
Maka Primary key A dimuat ke B atau sebaliknya atau foreign key diletakkan pada salah satu dari 2 entitas yang ada.

• Relasi Many to one : A many to one B
Maka Primary key B dimuat ke A atau foreign key diletakkan di entitas yang Many

• Relasi Many to many : A many to many B
Maka Pemuatan primary key dari masing-masing entitas akan melibatkan suatu entitas baru




II. Syntaks DDL untuk pendefinisian skema relasi .

DDLadalah Perintah yang digunakan untuk membuat dan mengelola objek dalam suatu database. Pernyataan DDL dapat digunakan untuk membuat , memodifikasi, dan mendrop/menghapus database, table , indeks , view ,stored procedures, dan objek yang lain.

Contoh sintaks DDL dalam pembuatan database/table,index dan view :

1. Pembuatan Database
Bentuk umumnya : CREATE DATABASE nama_db
Contoh : Buat database dengan nama organisasi PT. ABC
Sintaks : CREATE DATABASE PT.ABC

2. Pembuatan Tabel
Bentuk umumnya : CREATE TABLE nama_table(nama_kolom1 jenis_kolom1, nama_kolom2 jenis_kolom2, ...)
Contoh : Buat tabel mahasiswa yang terdiri dari NIM dengan panjang 8 char, Nama dengan panjang 30 char, Alamat dengan panjang 40 char, Jenkel dengan panjang 1 char
Sintaks : CREATE TABLE Mahasiswa(NIM char(8) NOT NULL, Nama char(30) NOT NULL, Alamat char(40) NOT NULL, JenKel char(1) NOT NULL)

3. Pembuatan Index
Bentuk umumnya : CREATE [UNIQUE] INDEX nama_index ON nama_table (nama_kolom)
Contoh : Buat index data mahasiswa berdasarkan NIM dengan nama MHSIN dimana NIM tidak boleh sama
Sintaks : CREATE UNIQUE INDEX MHSIN ON MHS(NIM)

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

Contoh sintaks DDL untuk menghapus database/table,index dan view :

1. Menghapus Database
Bentuk umumnya : DROP DATABASE nama_db

2. Menghapus Tabel
Bentuk umumnya : DROP TABLE nama_table

3. Menghapus Index
Bentuk umumnya : DROP INDEX nama_index

4. Menghapus View
Bentuk umumnya : DROP VIEW nama_view

Contoh sintaks DDL untuk mengubah struktur tabel :

1. Menambahkan kolom
Bentuk umumnya : ALTER TABLE nama_table> ADD (nama_kolom jenis_kolom)
Contoh : Tambahkan kolom NoTelp dengan panjang 8 char pada tabel mahasiswa
Sintaks : ALTER TABLE Mahasiswa ADD (NoTelp char(8))

2. Mengubah panjang kolom
Bentuk umumnya : ALTER TABLE nama_table MODIFY (nama_kolom jenis_kolom)
Contoh : Ubah panjang kolom alamat menjadi 50 char
Sintaks : ALTER TABLE Mahasiswa MODIFY (Alamat char(50))

3. Menghapus kolom
Bentuk umumnya : ALTER TABLE nama_table> DROP (nama_kolom jenis_kolom)
Contoh : Hapus kolom JenKel dari tabel mahasiswa
Sintaks : ALTER TABLE Mahasiswa DROP (JenKel char(1))


III. Syntaks DDL untuk pendefinisian integrity constraint

Constraint (batasan) merupakan aturan yang diberikan pada suatu tabel agar data yang dimasukkan terjamin validitasnya. Batasan integritas akan menjaga basis data dari kerusakan yang terjadi secara tidak sengaja dengan memastikan bahwa perubahan yang diperbolehkan tidak mengakibatkan terjadinya inkonsistensi data.

Constraint tersebut intra-relasional apabila batasan (constraint) terpenuhi dalam satu tabel. Constraint ini sendiri dapat dibedakan menjadi 2 yaitu: tuple constraint dan domain constraint. Tuple constraint merupakan constraint yang bisa dievaluasi secara independen pada setiap tuple-nya. Domain constraint atau sering disebut sebagai value constraint merupakan suatu constraint dengan referensi kepada nilai (value) tertentu. Implementasi dari penggunaan domain constraint pada SQL adalah penggunaan klausa check .

Suatu constraint dikatakan inter-relasional apabila melibatkan lebih dari satu relasi. Bentuk dari constraint ini adalah referential integrity.

 
a. referential integrity constrainta.

Integritas referensial adalah seperangkat aturan yang mengatur hubungan antara kunci primer dengan kunci tamu milik tabel-tabel yang berada dalam suatu basis data relasional untuk menjaga konsistensi data. Tujuan integritas referensial sendiri adalah untuk menjamin dan memastikan agar entitas dalam suatu tabel yang menunjuk ke suatu pengenal unik pada suatu baris di tabel lain benar-benar menunjuk pada nilai yang memang ada.
Berdasarkan operasi yang dilakukan, integritas referensial dapat dibedakan sebagai berikut:

penambahan (insert)

penghapusan (delete)

peremajaan (update)

Integritas referensial membuat ketiga operasi di atas dapat dilaksanakan pada tabel yang memiliki relasi. Sehingga proses penghapusan ataupun peremajaan suatu kolom juga akan terjadi pada kolom tabel lain yang mempunyai referensi dengannya.

Dalam bahasa Data Definition Language SQL, kunci primer, kunci kandidat, dan kunci tamu, dapat dispesifikasikan sebagai bagian dari pernyataan SQL create table. Kunci kandidat merupakan kunci yang secara unik dapat digunakan untuk mengidentifikasi suatu baris dalam tabel. Berikut adalah salah satu contoh DDL dari pembuatan tabel perusahaan_utama.

create table perusahaan_utama

(kode_perusahaan char(6) not null,

nama varcar(25),

alamat char(9),

primary key (kode_perusahaan),

foreign key (kod) references nama on delete cascade)

Assertion

Penggunaan constraint berupa kunci primer dan kunci tamu pada deklarasi awal tabel merupakan salah satu cara untuk memelihara integritas data. Domain constraint dan Referential integrity constraint merupakan salah satu bentuk dari assertion. Pada beberapa basis data penggunaan kunci primer dan kunci tamu sudah cukup untuk menjaga integritas data. Tetapi pada beberapa kasus basis data diperlukan suatu constraint ataupun aturan yang lebih baik.

Metode lain yang sering digunakan dalam pemeliharaan integritas adalah assertion dan trigger. Assertion digunakan untuk mengekspresikan suatu kondisi basis data sesuai dengan yang kita inginkan. Seperti halnya prosedur, assertion diberikan nama tertentu sehingga bisa dibatalkan apabila ada kondisi tertentu yang menuntut perubahan struktur basis data. Syntax dari definisi assertion adalah sebagai berikut.

create assertion AssertionName check (predicate)

Ketika assertion dibuat, maka sistem akan melakukan pengecekan validitas dari assertion yang dibuat. Jika assertion yang dibuat valid maka perubahan terhadap basis data hanya akan berlaku ketika tidak menyalahi assertion yang telah dibuat. Pengecekan validitas tersebut akan memakan biaya yang besar terutama apabila assertion yang dibuat cukup rumit, sehingga penggunaan dan pembuatan assertion harus dilakukan dengan hati-hati. Karena itu tidak banyak developer sistem dan DBMS yang menyediakan fasilitas ini.


b. domain constraint
Domain constraint merupakan bentuk integrity constraint yang paling sederhana. Setiap ada pemasukan data baru, maka akan langsung diperiksa oleh sistem. Domain constraint diterapkan pada atribut basis data sehingga sangat dimungkinkan beberapa atribut memiliki domain yang sama.

Tipe-tipe Domain dalam SQL
SQL-92 standar mendukung bermacam-macam tipe domain yang built-in sebagai berikut :
- char(n) : tipe karakter dengan panjang yang tetap (n) (fixed-length character)
- varchar(n) : tipe karakter dengan panjang bervariasi. Maksimum panjang n.
- int : integer
- smallint : small integer
- numeric (p,d) : p menunjukkan jumlah digit bilangan dan d menunjukkan jumlah digit dibelakang titik desimal.
- real, double precision : floating-point dan double-precision floating point
- float (n) : floating-point number
- date : tipe kalender
- time : tipe hari dalam jam,menit dan detik

SQL-92 menggunakan klausa create domain untuk mendefinisikan domain.
Contoh :
create domain nama_perusahaan char(20)

Untuk menciptakan domain baru dapat digunakan perintah create domain. Sebagai contoh adalah pada perintah:

create domain Dollar numeric (12,2)

create domain Pound numeric (12,2)

Perintah ini akan mendefinisikan domain Dollar dan Pound dengan yang merupakan angka desimal sebanyak 12 digit dengan 2 digit berada di belakang koma. Pada bahasa SQL juga terdapat klausa check yang bisa digunakan untuk memeriksa suatu kondisi nilai tertentu yang diinginkan. Berikut adalah contoh penggunaan klausa check pada perintah create domain.

Create domain HourlyWage numeric(5,2) constraint wage-value-test check (value>=4.00)

Perintah tersebut akan mengecek nilai dari domain HourlyWage harus = 4.00



4. Syntaks DDL untuk konstruksi index dengan tujuan utama untuk mempercepat
pelaksanaan seleksi data.


Create Index
Perintah CREATE INDEX berfungsi untuk  membuat tabel index.

Sintaks : CREATE [UNIQUE] INDEX indexname
    ON nama_table (nama_kolom)
Contoh : CREATE UNIQUE INDEX MHSIDX ON MAHASISWA(NPM)

Dengan indeks memungkinkan suatu tabel diakses dengan urutan tertentu tanpa harus merubah urutan fisik dari datanya dan dapat pula diakses secara cepat melalui indeks yang dibuat berdasar nilai field tertentu. Spesifikasi  UNIQUE akan menolak key yang sama dalam file.

2 comments:

Muhamad Insan Nasher mengatakan...

wah.. lagi nyari" bahan buat prareport database di google.
malah masuk ke blog ini.. ckckck..
mantap ger.. haha

Tifano isya gery mengatakan...

ckckckk....
bingung mau d isi apa ni blog,udah aja masukin preport database k sini :D

Posting Komentar