Oracle SQL & PL/SQL - 8. Data Modelling dan Database Design

 

Ketika kita menciptakan database, kita perlu secara hati-hati mempertimbangkan komponen-komponennya. Sebagai petunjuk berkaitan dengan desain, kita dapat mengikuti konsep-konsep yang dibahas pada pembahasan kali ini.

8.1. System Development Cycle

Mulai dari konsep sampai produksi, kita membangun database dengan menggunakan system development cycle. Siklus ini terdiri dari beberapa tahapan development.

Pendekatan top-down dan sistematis untuk database development ini mentransformasikan kebutuhan-kebutuhan informasi bisnis ke dalam operational database.

8.1.1. Tahapan Development

Strategi dan Analisis

Desain

Pembangunan dan Dokumentasi

Transisi

Produksi

8.2. Database Design

Mendesain sistem database relasional melibatkan proses konversi model ke dalam representasi perangkat lunak yang dapat bekerja. Entities (atau objects) yang dirasakan oleh user ditransformasikan ke dalam table-table di dalam database. Selama proses desain, tujuan kita adalah mendesain reliable, high-performance systems menggunakan segala hal yang dihasilkan oleh segala usaha yang dilakukan pada fase analisis. Faktor-faktor kunci utama berikut ini menjelaskan secara detil mengapa kita harus mendesain kedua hal tersebut.

Performa

Desain awal dari sistem memiliki pengaruh yang sangat besar terhadap performa akhir. Secara umum pengaruhnya jauh lebih besar dibandingkan tuning perbaikan ketika sistem telah berjalan.

Aplikasi Terintegrasi
Sistem aplikasi biasanya dibangun oleh tim developer. Tanpa beberapa spesifikasi desain bagaimana sistem tersebut bekerja, setiap developer akan membangun dengan gaya mereka sendiri. Desain yang baik tidak hanya berguna untuk menaikkan tampilan dan rasanya, tetapi juga menyakinkan bahwa setiap komponen yang menghasilkan sistem aplikasi saling terintegrasi satu dengan yang lain.

Integrasi dengan Sistem Lain

Seringkali terdapat kebutuhan bahwa sistem baru diintegrasikan dengan sistem-sistem yang telah ada, atau bahkan dengan sistem-sistem lain yang baru saja dibangun. Desain yang baik meningkatkan keuntungan-keuntungan integrasi yang telah dijelaskan diatas kedalam sistem secara umum.

Dokumentasi dan Komunikasi

Bagian utama dari pekerjaan seorang desainer adalah mengkomunikasikan keputusan-keputusan desain dengan yang lain. Pada akhirnya, keputusan-keputusan ini perlu didokumentasikan.

Skalabilitas

Tangkal isu-isu performa pada saat desain dibandingkan pada saat produksi. Sebagai contoh, membangun sistem didalam lingkungan yang kecil dan terkontrol tanpa mengujinya pada situasi sesungguhnya atau pada kumpulan data yang besar, merupakan faktor-faktor yang dapat mengungkap cacat-cacat pada desain.

Hindari Menemukan Kembali Roda

Banyak masalah-masalah yang mungkin akan anda hadapi telah ditemukan oleh seseorang sebelum kita. Gunakan desain yang telah sukses sebelumnya jika memungkinkan.

8.2.1. Data Model

Model merupakan landasan dari desain. Para insinyur membangun model mobil sebelum memproduksinya dan membuatnya bekerja pada setiap detilnya. Dengan cara yang sama, desainer sistem mengembangkan model untuk mengeksplorasi ide dan meningkatkan pengertian terhadap desain database.

8.2.1.1. Tujuan Penggunaan Model

Model membantu mengkomunikasikan konsep-konsep yang ada pada pikiran manusia. Model dapat digunakan untuk tujuan-tujuan berikut:

Sasarannya adalah menghasilkan model yang tepat bagi banyak user, dapat dimengerti oleh user, tetapi mengandung detil-detil yang cukup bagi developer untuk membangun suatu sistem database.

8.3. Entity Relationship Modelling

Entity relationship model berasal dari spesifikasi atau cerita bisnis. Model ini merupakan representasi grafis dari kebutuhan informasi bisnis dan aturan-aturannya.

Entity relationship model memisahkan informasi yang dibutuhkan oleh bisnis dari aktifitas yang dilakukan oleh bisnis. Meskipun bisnis dapat mengubah aktifitasnya, tipe informasinya cenderung terus tetap. Oleh karena itu, struktur dari data juga cenderung terus tetap.

8.3.1. Keuntungan Entity Relationship Model

8.3.2. Komponen-komponen Kunci

Entity Relationship Model tersusun dari entity, attribute, dan relationship

8.4. Normalisasi

Sebelum menciptakan desain database, kita harus meminimalkan masalah-masalah redundansi data dengan melakukan normalisasi terhadap data model. Kita perlu memodifikasi data model untuk mendukung kebutuhan fungsional yang berbeda dan memodifikasi desain database dengan melakukan normalisasi penyimpanan data sebelum kita menciptakan database.

8.4.1. Keuntungan-keuntungan Normalisasi

8.4.2. Aturan Normalisasi

8.5. Integrity Constraint dan Key

Pastikan bahwa user hanya melakukan operasi-operasi yang mengijinkan database berada pada keadaan yang konsisten dengan menerapkan integrity constraint. Seluruh data integrity constraint sebaiknya diterapkan oleh database server atau software aplikasi. Key (kunci) dapat disamakan dengan integrity constraint. Tiga tipe key adalah primary key, unique key, dan foreign key.

8.5.1. Tipe-tipe Integrity Constraint

8.5.2. Tipe-tipe Key

8.6. Mendesain Database

Tahapan desain database menghasilkan spesifikasi-spesifikasi desain bagi relational database, termasuk definisi untuk table, index, view, dan ruang penyimpanannya.

8.6.1. Memetakan Entity Relationship Model ke Table Instance Chart

  1. Memetakan Entity ke Table
    Buat table instance chart untuk table baru. Table instance chart sebaiknya mengandung kolom untuk nama table, nama column, key types, null dan unique, informasi foreign key, column datatype dan maximum length, dan contoh data. Simpan nama tablenya.
  2. Memetakan Attribute ke Column
    Petakan setiap attribute dalam entity relationship model ke nama column pada table, Tambahkan contoh data ke chart untuk menunjukkan isi dari table didalam format visual. Petakan mandatory attribute, yang ditandai dengan asterisk (*), ke column yang didefinisikan sebagai NOT NULL (NN).
    Jangan menamai column dengan SQL reserved words, seperti NUMBER. Berilah nama column dengan singkatan-singkatan yang konsisten, seperti NO atau NUM (tetapi tidak keduanya) untuk menghindari kebingungan programmer dan user.
  3. Memetakan Unique Identifier ke Primary Key
    Petakan UID yang telah diidentifikasi pada entity relationship model dengan simbol angka (#) ke primary key column dan tandai key tersebut sebagai PK. Petakan UID yang mengandung single attribute ke single-column PK. Tandai not null dan unique dengan NN dan U. Petakan UID yang mengandung banyak attribute ke composite PK. Tandai column-column tersebut dengan NN dan U1. Jika terdapat primary key alternatif, tandai dengan NN dan U, tetapi pilihlah hanya satu PK.
    Jika UID terkandung dalam relationship (diindikasikan dengan UID bar), tambahkan column FK untuk setiap relationship dan tandai dengan PK dan FK. Tambahkan column-column FK pada akhir table instance chart atau pada sisi kanan dari seluruh column, bahkan meskipun FK merupakan bagian dari PK. Pilihlah nama yang unik untuk setiap FK column dan tambahkan contoh data.
  4. Memetakan Relationship ke Foreign Key
    Langkah terakhir adalah memetakan relationship ke foreign key. Terdapat dua tipe relationship yang perlu diperhatikan: Many-to-one dan one-to-one. Jika suatu relationship merupakan bagian dari UID, maka kita telah memetakannya. Pastikan bahwa kita menandai mandatory relationship dengan NN. Pilihlah nama yang unik untuk foreign key columnt tersebut.

    • Many-to-one Relationship
      Petakan many-to-one relationship dengan cara meletakkan primary key pada sisi “one” dan meletakkan foreign key pada sisi “many”. Teknik ini juga dapat diaplikasikan pada recursive relationship.
    • One-to-one Optional Relationship
      Kita dapat meletakkan foreign key pada salah satu sisi relationship untuk relationship jenis ini. Pastikan untuk menambahkan U.
    • One-to-one Mandatory Relationship
      Letakkan unique foreign key pada table sisi mandatory dan tandai dengan NN untuk memaksakan kebutuhan mandatory dan U untuk memaksakan one-to-one relationship.

 

8.6.2. Kebutuhan-kebutuhan Tambahan

 

8.6.3. Simbol-simbol untuk Mendokumentasikan Table Instance Chart

8.6.4. Pedoman

 Silahkan melanjutkan membaca pembahasan Menciptakan Table

Catatan:
Untuk mempraktekkan artikel-artikel mengenai Oracle SQL & PL/SQL Anda dapat mendownload script table disini, lalu jalankan sesuai live demo (browser Anda harus mendukung Flash Player).



 

 

Related Posts

 

 

Beranda

 

Berbagi Cerita

 

Obsesi

 

Serasi

 

 

Comments

No comments yet.

Leave a comment

(required)

(required)