TEKNIK NORMALISASI

January 15, 2009

Normalisasi database biasanya jarang dilakukan dalam database skala kecil, dan dianggap tidak

diperlukan pada penggunaan personal. Namun seiring dengan berkembangnya informasi yang

dikandung dalam sebuah database, proses normalisasi akan sangat membantu dalam

menghemat ruang yang digunakan oleh setiap tabel di dalamnya, sekaligus mempercepat proses

permintaan data. Berikut ini dipaparkan metodologi logis sederhana untuk menormalkan model

data dalam sebuah database, diiringi contoh pembuatan database untuk tugas-tugas matakuliah

dalam sebuah fakultas (fiktif) dengan atribut yang disederhanakan.

Proses normalisasi model data dapat diringkas sebagai berikut:

1. Temukan entitas-entitas utama dalam model data.

2. Temukan hubungan antara setiap entitas.

3. Tentukan atribut yang dimiliki masing-masing entitas.

Normalisasi model data dilakukan dengan mengikuti langkah-langkah sederhana, mengubahnya

agar memenuhi apa yang disebut sebagai bentuk normal pertama, kedua, lalu ketiga secara

berturutan.

Sebuah model data dikatakan memenuhi bentuk normal pertama apabila setiap atribut yang

dimilikinya memiliki satu dan hanya satu nilai. Apabila ada atribut yang memiliki nilai lebih

dari satu, atribut tersebut adalah kandidat untuk menjadi entitas tersendiri.

Entitas utama untuk database tugas matakuliah tentu saja Tugas Matakuliah. Sebagian atribut

Atribut Nama Kelas mencantumkan kelas-kelas di mana tugas tersebut berlaku. Apabila

pendaftar untuk sebuah matakuliah melebihi kapasitas ruangan yang dimiliki fakultas, kebijakan

yang umum diambil Kepala Program Studi adalah membagi kegiatan perkuliahan untuk

matakuliah tersebut menjadi beberapa kelas. Karenanya atribut ini rentan memiliki nilai jamak,

dan lebih sesuai menjadi entitas baru atau atribut dari entitas lain. Untuk sementara kita

membuat entitas baru, Kelas, dimana sebagian atributnya berasal dari Tugas Matakuliah yang

secara logis lebih sesuai menjadi atribut entitas ini. Sementara itu, hampir semua atribut entitas

Tugas Matakuliah selain Nama Kelas memiliki nilai tunggal (dengan asumsi setiap matakuliah

diampu oleh satu dosen saja).

2.1.a Relasi Antar-Entitas dan Identifier

Masalah yang kita hadapi sekarang adalah menghubungkan Tugas Matakuliah dengan Kelas.

Satu tugas dapat diberikan pada beberapa kelas yang berbeda; dalam terminologi pemodelan

data, ini berarti antara entitas Tugas Matakuliah dan entitas Kelas terdapat relasi 1:N (atau 1-N)

untuk nilai N lebih dari satu. Cara paling intuitif untuk menghubungkan kedua entitas tersebut

adalah menyertakan identitas satu entitas sebagai atribut entitas lain. Identitas sebuah entitas

haruslah unik untuk menghindarkan ambiguitas saat akan merujuk pada satu objek khusus dari

entitas tersebut. Entitas Tugas Matakuliah akan menggunakan pengidentifikasi arbitrer berupa

angka yang berbeda antara satu objek Tugas Matakuliah dengan objek Tugas Matakuliah lain.

Entitas Kelas dapat diidentifikasi dengan matakuliah dan kode kelas yang bersangkutan,

sehingga kita cukup menambahkan atribut pengidentifikasi (identifier) dalam kedua entitas.

Entitas ini beserta semua atribut baru dan hubungannya dengan Tugas Matakuliah diperlihatkan

dalam Gambar 2, dengan menggunakan notasi relasi crows foot (dengan simbol “kaki gagak”

2.2. Bentuk Normal Kedua (2NF)

Sebuah model data dikatakan memenuhi bentuk normal kedua apabila ia memenuhi bentuk

normal pertama dan setiap atribut non-identifier sebuah entitas bergantung sepenuhnya hanya

pada semua identifier entitas tersebut.

Apabila kita perhatikan kembali model data yang telah kita hasilkan di atas, segera terlihat

bahwa atribut dari entitas Kelas tidak sepenuhnya bergantung pada identitas unik Kelas tersebut.

Seorang dosen akan tetap ada meskipun kelas matakuliah yang ia ampu sudah tidak ada lagi.

Dalam hal ini, dosen adalah entitas tersendiri (yang nantinya dapat dilekatkan pada entitas

Fakultas atau Universitas bilamana kedua entitas tersebut dirasa perlu ada, tergantung pada

kebutuhan pemodelan data kita).

2.2.a Sekali Lagi, Tentang Identifier

Dalam dunia nyata, anggapan yang umum adalah seseorang (“individu”) dapat diidentifikasi

secara unik dengan namanya. Tentu saja anggapan ini tidak sepenuhnya benar, karena bisa saja

sebuah nama (bahkan satu rangkaian nama lengkap) dimiliki oleh lebih dari satu orang;

pemodelan data yang melibatkan informasi tentang individu jarang menggunakan nama

individu tersebut sebagai satu-satunya pengidentifikasi. Implementasi RDBMS tertentu juga

akan lebih cepat memproses query atas suatu tabel apabila tabel tersebut diindeks oleh nilai

integer unik daripada bila menggunakan indeks karakter (rangkaian karakter masih harus

diumpankan ke fungsi hash agar dapat digunakan sebagai indeks tabel, sementara untuk integer

unik tidak harus).

Karena beberapa alasan tersebut, entitas Dosen pada model data kita akan menggunakan

pengidentifikasi arbitrer berupa Nomor Induk Pegawai sebagaimana diperlihatkan dalam

Gambar 3. Dalam notasi crows foot, relasi non-identifying digambarkan dengan garis putusputus

atau tersamar.


2.3. Bentuk Normal Ketiga (3NF)

Sebuah model data dikatakan memenuhi bentuk normal ketiga apabila ia memenuhi bentuk

normal kedua dan tidak ada satupun atribut non-identifying (bukan pengidentifikasi unik) yang

bergantung pada atribut non-identifying lain. Apabila ada, pisahkan salah satu atribut tersebut

menjadi entitas baru, dan atribut yang bergantung padanya menjadi atribut entitas baru tersebut.

Dalam model data sederhana yang kita gunakan di sini, tidak ada satupun atribut non-identifying

(seperti Deskripsi Tugas Matakuliah, atau Nama Dosen) yang bergantung pada atribut nonidentifying

lain. Namun demi adanya contoh, kita misalkan entitas Dosen memiliki atribut

informasi Alamat Rumah dan Nomor Telepon Rumah. Keduanya tidak dapat secara unik

mengidentifikasi objek tertentu dari entitas Dosen, namun keduanya saling bergantung.

Sebagaimana dalam dua langkah normalisasi sebelumnya, jenis kebergantungan seperti ini

dapat dihilangkan dengan membuat entitas baru lagi (yang tidak akan diciptakan karena tiga

entitas sudah cukup banyak untuk satu artikel).

Model terakhir yang kita dapat ini telah memenuhi bentuk normal ketiga (third normal form)

dan siap dikonversi menjadi tabel. Namun sebelumnya, kita perlu membahas berbagai jenis

relasi yang kerap ditemui dalam pemodelan data, termasuk yang kita temui dalam contoh model

data kali ini.

3. Jenis-jenis Relasi Antar-Entitas

1. Relasi 1-1. Relasi ini jarang ditemui dalam model data yang benar, sehingga saat Anda

menemukannya, kemungkinan besar hal itu berarti masih ada yang belum sempurna

dari model data Anda; relasi 1-1 sering berarti kedua entitas tersebut sebenarnya adalah

kesatuan, satu entitas tunggal. Kemungkinan lain adalah relasi 1-1 ini adalah relasi

turunan atau relasi non-identifying (identitas unik satu entitas tidak bergantung pada

identitas unik entitas lain) namun jenis relasi kedua ini jarang ditemui.

2. Relasi 1-N. Relasi ini yang paling umum ditemui dalam model data.

3. Relasi M-N. Relasi ini juga sering ditemui dalam model data, dan sering pula dapat

dinormalkan lebih jauh lagi. Langkah yang dapat ditempuh untuk menormalkan relasi

M-N:

a. Buat sebuah entitas baru sebagai penghubung antara kedua entitas dengan relasi MN

tersebut. Entitas penghubung ini akan memiliki hubungan 1-M dengan masingmasing

entitas awal. Identifier entitas penghubung dapat dibuat tersendiri, atau

dengan cara mewarisi identifier kedua entitas awal dan membuat keduanya

identifier unik entitas penghubung ini. Sering kali akan ada atribut lain yang

dimiliki oleh entitas penghubung tersebut. Entitas Kelas dalam contoh model data

kita dapat menjadi contoh entitas penghubung. Apabila tidak ada entitas

penghubung yang dapat diciptakan, relasi M-N tetap harus diubah untuk

menghindari kesulitan dalam konversi model data menjadi skema database fisik.

4. Menterjemahkan Model Data

Setelah sebuah model data dinormalisasikan dan siap diubah menjadi database fisik, ada

beberapa langkah penterjemahan yang harus dilakukan:

1. Setiap entitas menjadi tabel tersendiri.

2. Setiap atribut menjadi kolom-kolom tabel tersebut, dengan tipe data yang sesuai.

3. Identifier entitas tersebut menjadi kolom ID yang tidak boleh kosong (NOT NULL) dan

berisi indeks yang unik. ID unik ini dalam database dinamakan primary key.

4. Relasi diterjemahkan menjadi foreign key.

Skema fisik model data yang dihasilkan tampak dalam Gambar 4. Perhatikan penghilangan

spasi, penentuan tipe data dan penyeragaman kapitalisasi untuk portabilitas skema untuk

digunakan dalam berbagai implementasi RDBMS yang mungkin berbeda dalam casesensitivity.

Diberikan tabel Mahasiswa di bawah ini, akan dilakukan  normalisasi sampai bentuk normal ke tiga

NF1

NF1

NF2

NF2

imas3

nf3

nf3

diagram

diagram


Lingkungan Sistem Basis Data

October 14, 2008

LINGKUNGAN DATABASE

Tujuan utama dari sistem database adalah menyediakan pemakai melalui suatu pandangan abstrak mengenai data, dengan menyembunyikan detail dari bagaimana data disimpan dan dimanipulasikan. Oleh karena itu, titik awal untuk perancangan sebuah database haruslah abstrak dan deskripsi umum dari kebutuhan-kebutuhan informasi suatu organisasi harus digambarkan di dalam database.

Lebih jauh lagi, jika sebuah database merupakan suatu sumber yang bisa digunakan bersama maka setiap pemakai membutuhkan pandangan yang berbeda-beda terhadap data di dalam database.

Tiga Tingkatan Arsitektur Database ANSI-SPARC

Ada 3 tingkat dalam arsitektur database yang bertujuan membedakan cara pandang pemakai terhadap database dan cara pembuatan database secara fisik :

1. Tingkat Eksternal (External Level)

Tingkat eksternal merupakan cara pandang pemakai terhadap database. Pada tingkat ini menggambarkan bagian database yang relevan bagi seorang pemakai tertentu. Tingkat eksternal terdiri dari sejumlah cara pandang yang berbeda dari sebuah database. Masing-masing pemakai merepresentasikan dalam bentuk yang sudah dikenalnya. Cara pandang secara eksternal hanya terbatas pada entitas, atribut dan hubungan antar entitas (relationship) yang diperlukan saja.

Contoh : viw dari mahasiswa, view dari mata kuliah

2. Tingkat Konseptual (Conseptual Level)

Tingkat konseptual merupakan kumpulan cara pandang terhadap database. Pada tingkat ini menggambarkan data yang disimpan dalam database dan hubungan antara datanya.

Hal-hal yang digambarkan dalam tingkat konseptual adalah :

- semua entitas beserta atribut dan hubungannya

- batasan data

- informasi semantik tentang data

- keamanan dan integritas informasi

Semua cara pandang pada tingkat eksternal berupa data yang dibutuhkan oleh pemakai harus sudah tercakup di dalam tingkat konseptual atau dapat diturunkan dari data yang ada. Deskripsi data dari entitas pada tingkat ini hanya terdiri dari jenis data dan besarnya atribut tanpa memperhatikan besarnya penyimpanan dalam ukuran byte.

Contoh : entity, relationship, tipe data dan constraint.

3 Tingkat Internal (Internal Level)

Tingkat internal merupakan perwujudan database dalam komputer. Pada tingkat ini menggambarkan bagaimana database disimpan secara fisik di dalam peralatan storage yang berkaitan erat dengan tempat penyimpanan/physical storage.

Tingkat internal memperhatikan hal-hal berikut ini :

- alokasi ruang penyimpanan data dan indeks

- deskripsi record untuk penyimpanan (dengan ukuran penyimpanan untuk data elemen

Contoh : organisasi file secaa sequential, raltive atau index sequential

- penempatan record

- pemampatan data dan teknik encryption

<!–[if supportFields]> SHAPE \* MERGEFORMAT <![endif]–><!–[if supportFields]><![endif]–>

Teori Sistem Basis Data

October 14, 2008

TEORI SISTEM BASIS DATA

Pengertian Basis Data

Posted on April 16, 2008 by krida

* Basis data (database) adalah kumpulan dari berbagai data yang saling berhubungan satu dengan yang lainnya. Basis data tersimpan di perangkat keras, serta dimanipulasi dengan menggunakan perangkat lunak. Pendefinisian basis data meliputi spesifikasi dari tipe data, struktur dan batasan dari data atau informasi yang akan disimpan. Database merupakan salah satu komponen yang penting dalam sistem informasi, karena merupakan basis dalam menyediakan informasi pada para pengguna atau user.

* Penyusunan basis data meliputi proses memasukkan data kedalam media penyimpanan data dan diatur dengan menggunakan perangkat Sistem Manajemen Basis Data (Database Management System DBMS). Manipulasi basis data meliputi pembuatan pernyataan (query) untuk mendapatkan informasi tertentu, melakukan pembaharuan atau penggantian (update) data, serta pembuatan report data.

* Tujuan utama DBMS adalah untuk menyediakan tinjauan abstrak dari data bagi user. Jadi sistem menyembunyikan informasi mengenai bagaimana data disimpan dan dirawat, tetapi data tetap dapat diambil dengan efisien. Pertimbangan efisien yang digunakan adalah bagaimana merancang struktur data yang kompleks, tetapi tetap dapat digunakan oleh pengguna yang masih awam, tanpa mengetahui kompleksitas struktur data. Basis data menjadi penting karena munculnya beberapa masalah bila tidak menggunakan data yang terpusat, seperti adanya duplikasi data, hubungan antar data tidak jelas, organisasi data dan update menjadi rumit. Jadi tujuan dari pengaturan data dengan menggunakan basis data adalah :

* Menyediakan penyimpanan data untuk dapat digunakan oleh organisasi saat sekarang dan masa yang akan datang.

* Kemudahan pemasukan data, sehingga meringankan tugas operator dan menyangkut pula waktu yang diperlukan oleh pemakai untuk mendapatkan data serta hak-hak yang dimiliki terhadap data yang ditangani.

* Pengendalian data untuk setiap siklus agar data selalu up-to-date dan dapat mencerminkan perubahan spesifik yang terjadi di setiap sistem.

* Pengamanan data terhadap kemungkinan penambahan, pengubahan, pengerusakan dan gangguan-gangguan lain.

Elemen Basis Data

* Entitas adalah sekumpulan objek yang terdefinisikan yang mempunyai karakteristik sama dan bisa dibedakan satu dengan lainnya. Objek dapat berupa barang, orang, tempat atau suatu kejadian.

* Contoh entitas : Seseorang yang menjadi siswa di sebuah sekolah.

* contoh lainya : barang yang menjadi inventaris suatu perusahaan

* siswa merupakan entitas

* barang juga di sebut entitas

* Atribut adalah deskripsi data yang bisa mengidentifikasi entitas yang membedakan entitas tersebut dengan entitas yang lain. Seluruh atribut harus cukup untuk menyatakan identitas obyek, atau dengan kata lain, kumpulan atribut dari setiap entitas dapat mengidentifikasi keunikan suatu individu.

* sedangkan atribut adalah bagian dari entitas

* siswa memiliki atribut :

* no siswa

* alamat siswa

* barang memiliki atribut :

* no barang

* harga barang

Filed under: data base

http://krida85.wordpress.com/2008/04/16/pengertian-basis-data/

Hello world!

September 16, 2008

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!


Follow

Get every new post delivered to your Inbox.