Sabtu, 27 Desember 2008

Bentuk-bentuk Normal (Normal Form) Yang Lain

Bentuk-bentuk Normal (Normal Form) Yang Lain


Selain BCNF dan 3NF, masih ada sejumlah Bentuk Normal (Normal Form) yang lainnya. Bentuk Normal yang lain ini memang bukan bagian utama dalam penerapan normalisasi, tetapi tetap dapat dimanfaatkan untuk memperoleh tabel dan basis data yang lebih baik lagi.


  1. Bentuk Normal Tahap Pertama

Bentuk Normal Tahap Pertama (1NF) terpenuhi jika sebuah tabel tidak memiliki Atribut Bernilai Banyak (Multivalued Attribute) atau lebih dari satu atribut dengan domain nilai yang sama.


2. Bentuk Normal Tahap Kedua

Bentuk Normal Tahap Kedua (2NF) terpenuhi jika pada sebuah tabel, semua atribut yang tidak termasuk dalam key primer memiliki ketergantungan fungsional (KF) pada key primer secara utuh. Sebuah tabel dikatakan tidak memenuhi 2NF, jika ketergantungannya hanya bersifat parsial (hanya tergantung pada sebagian dari key primer).


3. Bentuk Normal Tahap Keempat dan Bentuk Normal Tahap Kelima

Bentuk Normal Tahap Keempat (4NF) berkaitan dengan sifat Ketergantungan Banyak Nilai (Multivalued Devendency) pada suatu tabel yang merupakan pengembangan dan Ketergantungan Fungsional. Sedangkan Bentuk Normal Tahap Kelima (merupakan nama lain dari Project-Join Normal Form/PJNF) berkenaan dengan Ketergantungan Relasi antar Tabel (Join Dependency).



Devendency Preservation


Devendency Preservation (dapat di-Indonesiakan sebagai Pemeliharaan Ketergantungan) merupakan criteria kedua yang harus dicapai untuk mendapatkan tabel dan basis data yang baik. Ketika kita melakukan perubahan data, maka harus bisa dijamin agar perubahan tersebut tidak menghasilkan inkonsistensi data yang mengakibatkan KF yang sudah benar menjadi tidak terpenuhi. Akan tetapi, dalam upaya untuk memelihara KF yang ada untuk tetap terpenuhi tersebut, prosesnya harus dapat dilakukan dengan efisien.



Boyce Cod Normal Form (BCNF)


Criteria berikutnya untuk mendapatkan tabel yang baik adalah dengan menerapkan Boyce-Cod Normal Form (BCNF). Sebuah tabel dikatakan berada dalam Boyce-Cod Normal Form (BCNF) jika untuk semua KF dengan notasi X→ Y, maka X harus merupakan superkey pada tabel tersebut. Jika tidak demikian, maka tabel tersebut harus didekomposisi berdasarkan tabel yang ada, sedemkian hingga X menjadi superkey dari tabel-tabel hasil dekomposisi.



Bentuk Normal Tahap Ketiga


Bentuk Normal Tahap Ketiga (3NF) merupakan criteria alternatif, jika criteria BCNF yang ketat tidak dapat terpenuhi. Sebuah tabel dikatakan berada dalam Bentuk Normal tahap Ketiga (3NF), jika untuk setiap KF dengan notasi X → A, dimana A mewakili semua atribut tunggal didalam tabel yang tidak ada di dalam X, maka:

  • X haruslah superkey pada tabel tersebut,

  • atau A merupakan bagian dari key primer pada tabel tersebut.



Jumat, 26 Desember 2008

Normalisasi dengan Ketergantungan Fungsional

Normalisasi dengan Ketergantungan Fungsional


Dalam perspektif Normalisasi, sebuah basis data dapat dikatakan baik, jika setiap tabel yang menjadi unsur pembentuk basis data tersebut juga telah berada dalam keadaan baik, atau normal. Selanjutnya, sebuah tabel dapat dikategorian baik (efisien) atau normal, jika telah memenuhi 3 (tiga) kriteria berikut:

  1. jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin aman (Lossless-Join Decomposition).

  2. terpeliharanya ketergantungan fungisional pada saat perubahan data (Dependency Presevation).

  3. tidak melanggar Boyce-Code Normal Form (BCNF).


Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak, tabel tersebut tidak melanggar Bentuk Normal tahap Ketiga (3NF).


Criteria di atas merupakan criteria minimal untuk mendapatkan predikat efisien/normal bagi sebuah tabel. Akan tetapi, kita juga dapat menerapkan criteria-kriteria lain yang juga tercakup dalam kerangka Normalisasi, yaitu:

  • Bentuk Normal tahap Pertama (1NF)

  • Bentuk Normal tahap Kedua (2NF)

  • Bentuk Normal tahap Keempat (4NF)

  • Bentuk Normal tahap Kelima (5NF)


Dekomposisi merupakan langkah yang paling sering ditempuh dalam proses normalisasi, jika sebuah tabel tidak memenuhi Bentuk Normal tertentu.

Sebuah tabel yang merangkum semua kelompok data yang saling berhubungan biasa disebut sebagai tabel Universal (Universal/Star Table).



Lossless-Join Decomposition


Dekomposisi memang merupakan upaya untuk mendapatkan tabel yang baik. Tetapi jika tidak hati-hati, upaya ini justru dapat menghasilkan kesalahan. Dekomposisi yang benar terjadi jika tabel-tabel hasil dekomposisi kita gabungkan kembali dapat menghasilkan tabel awal sebelum didekomposisi. Dekomposisi yang benar semacam ini disebut Lossles-Join Decomposition atau Lossless Decomposition (dapat diIndonesiakan dengan istilah Dekomposisi Aman).

Berikut kita ambil sebuah contoh abstrak yang menghasilkan dekomposisi yang tidak aman (Lossy-Join Decomposition). Kita asumsikan ada tabel ABC yang disefinisikan dengan dua buah KF yaitu: A → B dan B → C. kedua KF tersebut kita peroleh dari pengamatan terhadap data yang kurang memadai atau karena asumsi yang kurang tepat.

Katakanlah isi tabel ABC tersebut adalah sebagai berikut:


A

B

C

a1

100

c1

a2

200

c2

a3

300

c3

a4

200

c4


Memang dengan seperti itu, pernyataan KF yang kedua : B → C tidak sepenuhnya tepat, karena pada row 2 dan row 4 dengan nilai untuk atribut B yang sama, nilai untuk atribut C-nya berbeda. Tetapi yang ingin ditekankan disini adalah, adanya dua buah KF itu mendorong kita untuk mendekomposisi tabel ABC tersebut menjadi dua buah tabel, yaitu: tabel AB dan tabel BC sebagai berikut:


A

B

a1

100

a2

200

a3

300

a4

200


B

C

100

c1

200

c2

300

c3

200

c4


Jika kedua tabel ini digabungkan kembali, maka hasilnya adalah:

A

B

C

a1

100

c1

a2

200

c2

a2

200

c4

a3

200

c3

a4

200

c2

a4

300

c4


Hasil ini tentu saja berbeda dengan tabel awal (sebelum dekomposisi). Maka dekomposisi semacam ini disebut Lossy-Join Decomposition atau Lossy-Decomposition, sebuah dekomposisi yang sedapat mungkin kita hindari.

Akan tetapi, jika data pada row 4 yang ada di tabel ABC awal, kita ganti dengan data berikut:


a4

200

c2


Sehingga, isi tabel ABC menjadi:


A

B

C

a1

100

c1

a2

200

c2

a3

300

c3

a4

200

c2


Dengan data di tabel ABC demikian, maka kedua KF dapat dibenarkan. Tabel ABC tersebut didekomposisi menjadi tabel AB dan BC sebagai berikut:



A

B

a1

100

a2

200

a3

300

a4

200


B

C

100

c1

200

c2

300

c3




Kalau kedua isi tabel diatas digabung kembali, maka tabel awal ABC-nya akan diperoleh kembali. Kita bisa katakana, bahwa pemilahan tersebut merupakan Dekomposisi Aman (Lossless Dekomposition). Karena itulah, KF pada suatu tabel harus kita tetapkan berdasarkan pengamatan yang teliti dan asumsi yang dapat dipertanggungjawabkan, agar kelak hasil dekomposisinya dapat dibenarkan.

NORMALISASI DATA

NORMALISASI DATA



Perancangan basis data diperlukan, agar kita bisa memiliki basis data yang kompak dan efisien dalam penggunaan ruang pentimpanan, cepat dalam pengaksesan dan mudah dalam pemanipulasian (tambah, ubah, hapus) data. Dalam merancang basis data, kita dapat melakukannya dengan:

  1. Menerapkan normalisasi terhadap struktur tabel yang telah diketahui. Atau

  2. Langsung membuat model Entity-Relationship.


Perancangan basis data seringkali diasosiasikan dengan pembuatan model Entity-Relationship (model E-R), dimana kelompok-kelompok data dan relasi antar kelompok data tersebut diwujudkan dalam bentuk diagram. Hal itu tidak salah, karena model memang menerapkan representasi nyata dar sebuah perancangan. Normalisasi sendiri merupakan cara pendekatan lain dalam membangun desain logic basis data relasional yang tidak secara langsung berkaitan dengan model data, tetapi dengan menerapkan sejumlah aturan dan kriterian standar untuk menghasilkan struktur tabel yang normal.



Domain dan Tipe Data


Secara umum, istilah Domain memiliki banyak kesamaan pengertian dengan fungsi Tipe data tersebut. Akan tetapi, tipe data lebih merujuk pada kemampuan pentimpanan data yang mungkin bagi suatu atibut secara fisik, tanpa melihat layak/tidaknya data tersebut bila dilihat dari kenyataan pemakainya. Sementara Domain nilai lebih ditekankan pada batas-batas nilai yang diperbolehkan bagi suatu atribut, dilihat dari kenyataan yang ada.

Pada saat pekerjaan perancangan basis data tengah dilakukan, yang perlu kita lihat dan pertimbangkan hanyalah Domain nilai dari setiap atribut. Penetapan tipe data bagi suatu atribut baru akan relevan dan penting untuk diperhitungkan pada saat implementasi basis data.


Ketergantungan Fungsional (Functional Dependency)


Diberikan sebuah tabel T berisi paling sedikit 2 buah atribut, yaitu A dan B. kita dapat menyatakan notasi berikut ini:

A → B

Atribut A menentukan B

Yang berarti A secara fungsional menentukan B atau B secara fungsional tergantung pada A, jika dan hanya jika untuk setiap kumpulan baris data (row) yang ada di tabel T, pasti ada 2 baris data (row) di tabel T dengan nilai A yang sama, maka nilai untuk B pasti juga sama. Definisi yang lebih formal untuk itu adalah:

diberikan 2 row r1 dan r2 dalam tabel T dimana A → B.

jika r1(A) = r2(A), maka r1(B) = r2 (B).

BASIS DATA RELASIONAL

BASIS DATA RELASIONAL


Model Basis Data Relasional sering pula disebut sebagai Model Relasional atau Basis Data Relasional. Model basis data ini ditemukan/diperkenalkan pertama kali oleh E.F. Codd. Model Basis Data menunjukkan suatu cara/mekanisme yang digunakan untuk mengelola/mengorganisasi data secara fisik dalam memori sekunder yang akan berdampak pula pada bagaimana kita mengelompokkan dan membentuk keseluruhan data yang terkait dalam system yang sedang kita tinjau.

Kemudahan dalam penerapan dan kemampuannya dalam mengakomodasi berbagai kebutuhan pengolahan basis data yang ada di dunia nyata (real word) merupakan alasan mengapa model ini lebih popular untuk diterapkan. Kemudahan merupakan sesuatu yang sangat penting, karena disamping aspek pemodelan yang harus digunakan, masih banyak aspek lain dalam lingkup pengelolaan basis data yang juga menuntut perhatian serius dari siapa saja yang berkecimpung dalam kegiatan itu.


DEFINISI BASIS DATA RELASIONAL


Pada model relasional, basis data akan ‘disebar’ (dipilah-pilah) ke dalam berbagai table dua dimensi. Setiap tabel selalu terdiri atas lajur mendatar yang disebut dengan Baris Data (Row/Record) dan lajur vertical yang biasa disebut dengan kolom (Coloumn/Field). Disetiap pertemuan baris data dan kolom itulah item-item data (satuan data terkecil) ditempatkan. Dalam kehidupan kita sehari-hari, tabel merupakan bentuk natural (alamiah) dalam menyatakan fakta/data yang sering kita gunakan. Itulah sebabnya, model ini lebih mudah kita terapkan ketimbang model basis data yang lain.




Operasi dan Bahasa Basis Data


Disamping melakukan operasi pengisian/penambahan data ke masing-masing tabel yang strukturnya telah disiapkan, operasi-operasi lain yang dapat kta lakukan adalah:

  • Menampilkan data (query).

  • Pengubahan data (update/edit).

  • Penghapusan data (delete).


Cara/teknis penerapan operasi-operasi basis data tersebut sangat tergantung dari DBMS yang digunakan. Tetapi secara umum, ada dua macam cara untuk menjalankan operasi-operasi basis data, yaitu:

  1. Menjalankan program khusus untuk melakukan operasi basis data secara interaktif.

Program semacam ini umumnya disediakan oleh setiap DBMS untuk mempermudah pemakai (user) dalam melakukan operasi-operasi basis data. Kemudahan tersebut berbentuk penyediaan menu (untuk DBMS yang berbasis teks) dan bahkan ditambah dengan pemanfaatan perangkat mouse (untuk DBMS yang berbasis grafis).

  1. Menggunakan bahasa basis data (data manipulation language)

Dengan bahasa basis data, pemakai harus menuliskan perintah-perintah khusus untuk melakukan operasi-operasi basis data. Bahasa basis data tersebut ada yang memang berlaku khusus untuk suatu DBMS (seperti bahasa dBase untuk dBase III+ dan Foxbase, Quel untuk CA-Open Ingres). Tetapi ada pula bahasa basis data yang sudah menjadi standar (seperti SQL untuk berbagai MS-SQL Server, Oracle, CA-Open Ingres, dll).



Basis Data yang Baik


Pembentukan basis data yang baik (efisien) sendiri sebagai sebuah hasil perancangan yang matang akan memberi sejumlah karakteristik dan keuntungan seperti:

  • Struktur basis data (tabel-tabel dan relasi antar tabel) yang lebih kompak.

  • Struktur masing-masing tabel yang lebih efisien dan sistematis.

  • Kebutuhan rung penyimpanan data (memori sekunder) yang lebih efisien.

  • Semakin kecil (efisien) ukuran tabel, maka akan semakin cepat operasi basis data yang kta lakukan.

  • Efisiensi tersebut ditandai dengan redudansi data yang optimal (catatan: dalam basis data relasional, redudansi data tidak mungkin dihindari). Optimalnya redudansi ini akan dapat meningkatkan integritas data. Karena upaya penjalaran perubahan data dari sebuah tabel ke tabel-tabel yang lain yang berhubungan akan bisa dibuat minimal.

  • Tidak ada ambiguitas data di semua tabel dalam basis data.

  • Dan lain-lain.









BASIS DATA

Pemakai (User)

Tipe user berdasarkan cara berinteraksi dengan system:

  1. Programmer aplikasi : Pemakai yang berinteraksi dengan basis data melalu DML yang disertakan dalam program yang ditulis.

  2. User Mahir (Casual User) : Pemakai yang berinteraksi dengan system tanpa menulis program.

  3. User Umum (End User/Na’ive User) : Pemakai yang berinteraksi dengan system basis data melalui pemanggilan satu program aplikasi permanent yang ditulis dan disediakan sebelumnya.

  4. User Khusus (Specialized user) : Penulis yang menulis aplikasi basis data non konvensional, tetapi untuk keperluan-keperluan khusus, seperti untuk aplikasi AI, Sistem Pakar, pengolahan citra, dan lain-lain yang bisa saja mengakses basis data dengan/tanpa DBMS bersangkutan.



Key

Macam-macam key:

  • Super Key

  • Candidat Key

  • Primary Key


Atribut

  • Atribut sederhana : Atribut yang tidak dapat dipilih lagi

  • Atribut komposit : Atribut yang bisa dipecah-pecah

  • Atribut tunggal : Atribut yang hanya punya satu nilai

  • Atribut bernilai banyak (alamat, hoby)

  • Atribut harus bernilai

  • Atribut tidak bernilai

  • Atribut turunan (diciptakan oleh atribut/table lain)

System (aplikasi/perangkat lunak) pengelola basisdata (DBMS)

System (aplikasi/perangkat lunak) pengelola basisdata (DBMS)


Pengelolaan basis data secara fisik tidak dilakukan secara langsung, tetapi ditangani oleh sebuah perangkat lunak (system) yang khusus/spesifik. Perangkat lunak inilah (disebut Database Management Sistem (DBMS)) yang akan menentukan bagaimana data diorganisasikan, disimpan, diubah, dan diambil kembali serta menerapkan mekanisme pengamanan data, pemakaian data secara bersama, pemaksaan keakuratan/konsistensi data, dan sebagainya.

Perangkat DBMS sederhana:

  • dBase III+

  • dBase IV

  • FoxBase

  • Rbase

  • MS-Access

  • Borland-Paradox


Perangkat DBMS kompleks

  • Borland-Interbase

  • Sybase

  • Informix

  • CA-Open Ingres

  • Oracle

  • MySQL

  • PostgreSQL

  • MS-SQL Server

System Basis Data Web

System Basis Data Web


System adalah sebuah tatanan (keterpaduan) yang terdiri atas sejumlah komponen fungsional yang saling berhubungan dan secara bersama bertujuan untuk memenuhi suatu proses/pekerjaan tertentu.

System basis data merupakan system yang terdiri atas kumpulan file (table) yang saling berhubungan dan sekumpulan program (DBMS) yang memungkinkan beberapa pemakai dan program lain untuk mengakses dan memanipulasi file/table tersebut.

System basis data web merupakan system terdistribusi yang berbasis hypertext. Dokumen-dokumen yang menjadi unsur utama didalam web dinyatakan dalam beberapa type. Tipe yang paling popular adalah dokumen hypertext yang disusun menurut bahasa khusus seperti HTML (Hipertext Markup Language). Dokumen HTML terdiri atas text, spesifikasi jenis huruf dan instruksi format lainnya. Di dalamnya juga bisa dibuat hyperlink dengan audio maupun image.


Komponen Sistem Basis Data


  1. Perangkat Keras (hardware)

    • Komputer (satu untuk system yang stad alone atau lebih untuk system jaringan).

    • Memory sekunder yang on-line (harddisk)

    • Memory sekunder yang of-line (flash disk atau removable disk) untuk keperluan backup data)

    • Media/perangkat komunikasi (untuk system jaringan)


  1. Sistem Operasi (operating system)

System operasi merupakan program yang mengaktifkan/memfungsikan system computer, mengendalikan seluruh sumber daya (resource) dalam computer dan melakukan operasi-operasi dasar dalam computer (operasi I/O, pengelolaan file, menjalankan aplikasi, dan lain-lain).

Berikut ini contoh system operasi stand alone atau untuk client jaringan:

  • MS-DOS (Microsoft Disk operating system)

  • MS-Windows 3.1

  • MS-Windows 95

  • MS-Windows 98

  • MS-Windows 2000

  • MS-Windows XP

  • MS-Windows Vista


Berikut ini contoh system operasi untuk server dalam suatu jaringan maupun sebagai stand alone:

  • MS-Windows NT

  • MS-Windows 2000 Server

  • MS-Windows 2003 Server

  • Linux dengan berbagai distro-nya seperti (Madrake, RedHat, Fedora, Ubuntu, SuSe, dll)

  • Unix

  • Sun-Solaris

  • Novel-Netware

PENERAPAN BASIS DATA

Penerapan Basis Data


Secara lebih nyata bidang-bidang fungsional yang telah umum memanfaatkan basis data demi efisiensi, akurasi dan kecepatan operasi antara lain adalah:

  • Kepegawaian

Untuk berbagai perusahaan yang memiliki banyak pegawai

  • Pergudangan

Untuk perusahaan manufaktur (pabrikan), grosir (reseller), apotek, dan lain-lain.

  • Akuntansi

Untuk berbagai perusahaan.

  • Resevasi

Untuk hotel, pesawat, kereta api, dan lain-lain.

  • Layanan Perlanggan

Untuk perusahaan yang berhubungan dengan banyak pelanggan (bank, konsultan, dan lain-lain).

  • Dan lain-lain.


Dalam perkembangannya, basis data tidak hanya digunakan oleh satu computer dan satu aplikasi, tetapi satu data base dengan banyak aplikasi dan banyak computer.


KONSEP DATABASE

KONSEP DATABASE


BASIS DATA


Basis diartikan sebagai kumpulan atau tempat berkumpulan.

Data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia, barang, hewan, tumbuhan yang direkam dalam bentuk huruf, angka, symbol, teks, bunyi atau kombinasinya.

Basis data didefinisikan dalam sejumlah sudut pandang seperti:

  • Himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah.

  • Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redudansi yang tidak perlu, untuk memenuhi berbagai kebutuhan.

  • Kumpulan file/table/arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronis.


Basis data diciptakan untuk kebutuhan aplikasi, sedangkan aplikasi adalah perangkat lunak yang dibuat untuk melayani kebutuhan user. Kebutuhan user akan basis data sangatlah beragam, dari aplikasi yang sederhana sampai aplikasi yang sangat besar. Dalam sebuah aplikasi system informasi, kebutuhan akan basis data menjadi suatu keharusan demi meningkatkan efsiensi kerja, daya saing, keakuratan data, kecepatan operasional system.

Suatu basis data adalah koleksi data yang bisa mencari secara menyeluruh dan secara sistematis meme lihara dan me retrive (mengambil) informasi.


Basis data dibagi menjadi 2, yaitu:

  1. Basis data tidak terkomputerisasi, contohnya:

    • buku telepon

    • lemari penyimpanan surat/arsip

    • system catalog perusahaan

  2. Basis data terkomputerisasi

Basis data ini menggunakan computer sebagai media penyimpanan data. Tujuan menggunakan basis data terkomputerisasi adalah:

    • kecepatan dan kemudahan (speed)

    • efisiensi ruang penyimpanan (space)

    • keakuratan data (accuracy)

    • ketersediaan (availability)

    • kelengkapan (completeness)

    • keamanan (security)

    • kebersamaan pemakaian (sharability)