Rabu, 04 Juni 2014

Basis Data : Pengenalan, ERD , koversi Basis Data Reletionship, Normalisasi

I. Pengenalan Basis Data

1.1 Pengertian Basis Data

            Basis data terdiri dari dua kata yaitu Basis dan Data. Data adalah sesuatau yang dapat mewakili nilai fakta dari dunia nyata, data dapat berupa nilai numerik, alphanumerik, gambar, suara, video, dan lain-lain. Fakta dunia nyata dapat berupa barang, kejadian, aktivitas, perasaan dan semua tentang dunia nyata. Basis sendiri merupakan kumpulan, dimana suatu kumpulan tersebut terdiri dari input-proses-output untuk menjadi satu.
           Dapat disimpulkan bahwa Basis data adalah sekumpulan data yang mewakili fakta dunia nyata yang dibentuk kedalam suatu sistem di dalam komputer yang dapat dimanipulasi dan diolah menggunakan perangkat lunak untuk menghasilkan informasi.

1.2 Data dan Informasi

            Setelah kita mengetahui pengertian data diatas, saya akan menjelaskan pengertian informasi. Informasi adalah data yang telah dikelola dalam bentuk tertentu untuk memberikan makna atau arti bagi penerimanya.
Kualitas dari suatu data dan informasi dapat dipengaruhi hal-hal berikut ini :
  • Kebenarannya dalam merepresentasikan dunia nyata
  • Tepat waktu, dan
  • Tepat penggunaannya
Data dan informasi merupakan dua hal yang sangat penting, karena data dan informasi sebagai sebuah sumber daya penting, sama seperti sumber daya manusia, keuangan dll. Data dan informasi juga bisa diperlakukan sebagai asset yang penting bagi perusahaan/organisasi.  Data dan Informasi nilainya akan bertambah bila dikelola dengan baik dan semestinya. kegagalan dalam pengelolaan data akan berakibat ketimpangan dalam pengelolaan sumber daya lainya dalam organisasi dan berakibat negatif bagi jalannya organisasi atau bisnis.

berikut adalah contoh siklus informasi
Siklus Informasi adalah gambaran secara umum mengenai proses terhadap data sehingga menjadi informasi yang bermanfaat bagi pengguna.

1.2 Tujuan dan alasan menggunakan basis data

       Segala sesuatu yang diciptakan didunia ini pasti memiliki tujuan, bahkan sebutir pasir pun diciptakan memiliki tujuan. dan tujuan dari dibangunnya basis data adalah :
1. Kecepatan & kemudahan (speed)
2. Efisiensi ruang penyimpanan
3. Keakuratan (accuracy) 
4. Ketersediaan (availability)
5. Kelengkapan (completeness)
6. Keamanan (security)
7. Kebersamaan pemakaian (sharability)

Alasan mengapa mempelajari basis data :

• Perpindahan dari komputasi ke informasi
• Himpunan elemen data semakin banyak dan beragam, sebagai contoh
  perpustakaan digital.Video interaktif kebutuhan untuk memperluas DBMS
• DBMS mencakup bidang ilmu lain, sebagai contoh:
  System operasi, bahasa pemrograman, teori komputasi, AI, logika, multimedia.

 1.3 Perkembangan Basis Data
       Perkembangan basis data dapat direpresentasikan dengan pemetaan tabel berikut :
.
'

1.3 DMBS dan sistem basis data     


DBMS (Database Management System) merupakan suatu perangkat lunak yang digunakan untuk mengelola dan memanggil query dari basisdata. DBMS memiliki beberapa karakteristik sebagai berikut :
• Software program
• Supplements operating sistem
• Manages data
• Queries data and generates reports
• Data security
     
Sistem basis data adalah suatu sistem yang terdiri dari kumpulan file yang saling berhubungan dan dikelola oleh program perangkat lunak (dalam hal ini dikelola oleh DBMS) yang memungkinkan beberapa pemakai dan atau program lain yang memiliki otoritas untuk mengakses dan memanipulasi data tersebut. Kelebihan pemakaian DBMS adalah:

• Data berdiri sendiri (Data Independence)
• Pengaksesan data efisien (Efficient data access)
• Integritas data dan keamanan terjamin (Data integrity and security)
• Administrasi data (Data administration)
• Dapat diakses bersamaan (Concurrent access )
• Recovery saat terjadi kegagalan (Crash recovery)
• Mengurangi waktu pembangunan aplikasi (Reduced application development time)


Komponen-komponen pada sebuah sistem basis data gambar1-4 terdiri antara lain:
• Perangkat keras
• Sistem operasi
• Basis data
• DBMS (Database Management System)
• Pemakai
• Aplikasi lain





      Tujuan utama dari sistem basis data adalah untuk menyediakan fasilitas untuk view data secara abstrak bagi penggunanya. Namun bagaimana sistem menyimpan dan mengelola data tersebut, hanya diketahui oleh sistem itu sendiri. Abstraksi data merupakan level dalam bagaimana melihat data dalam sebuah sistem basis data. Berikut ini tiga level abstraksi data:
1. Level fisik
       Merupakan level terendah pada abstraksi data yang menunjukkan bagaimana sesungguhnya data disimpan. Pada level ini pemakai melihat data sebagai gabungan dari struktur dan datanya sendiri.
2. Level lojik
       Merupakan level berikutnya pada abstraksi data, menggambarkan data apa yang disimpan pada basis data dan hubungan apa saja yang ada di antara data tersebut.
3. Level view 
       Merupakan level tertinggi dari abstraksi data yang hanya menunjukkan sebagian dari basis data. Banyak user dalam sistem basis data tidak akan terlibat dengan semua data atau informasi yang ada atau yang disimpan. Para user umumnya hanya membutuhkan sebagian data atau informasi dalam basis data yang kemunculannya di mata user diatur oleh aplikasi end user.

1.5 Model Basis Data
      Berikut ini adalah beberapa model basis data:

a. Relational
       Model ini direpresentasikan dalam tabel dua dimensi, tabel-tabel tersebut memiliki hubungan yang disebut dengan relasi. Model ini memiliki fleksibilitas dan kecepatan yang tinggi.
b. Hierarchical 
       Memiliki struktur pohon dimana field hanya memiliki satu buah induk (parent), masing-masing parent memiliki banyak child (anak). Model ini memiliki kecepatan yang baik.
c. Network
       Relationship dibuat menggunakan linked list (pointer). Berbeda dengan model hierarchical satu anak dapat memiliki beberapa induk. Model ini memiliki fleksibilitas yang tinggi.

1.4 Basis Data Relasional
       Model basis data Relational  ( database relasi ) menggunakan sekumpulan tabel dua dimensi ( yang disebut relasi atau tabel ), dengan masing-masing relasi tersusun atas tupel atau baris dan atribut. DBMS yang memiliki model relasional biasa disebut Relational Data Base Management System ( RDBMS ). Model database ini dikemukakan pertamakali oleh EF codd, seorang pakar basisdata. Model database relasi merupaka model yang banyak digunakan karena lebih sederhana dari model lainnya.
      Model database relasi merupakan model database yang paling banyak digunakan saat ini, karena paling sederhana dan mudah digunakan serta yang paling penting adalah kemampuannya dalam mengakomodasi berbagai kebutuhan pengelolaan database. Sebuah database dalam model ini disusun dalam bentuk tabel dua dimensi yang terdiri dari baris (record) dan kolom (field), pertemuan antara baris dengan kolom disebut item data (data value), table-tabel yang ada di hubungkan (relationship) sedemikian rupa menggunakan field-field kunci (Key field) sehingga dapat meminimalkan duplikasi data.
     
  Tingkata data dalam database relasi


• Karakter (Characters)
       Karakter adalah  bagian terkecil dalam database, dapat berupa karakter angka, huruf, ataupun karakter-karakter khusus, seperti simbol-simbol.
• Field atau Attribute
       Attribute adalah bagian dari record yang menunjukkan suatu item data yang sama / sejenis. Misalnya : field nama, file NIM dan lain sebagainya. Setiap field harus mempunyai nama dan tipe data tertentu. Isi dari field di sebut Data Value. Dalam table database, field ini disebut juga kolom.
• Record atau Tupple
      Tuple/Record adalah kumpulan data value dari attributee yang berkaitan sehingga dapat menjelaskan sebuah entity secara lengkap.
Table/Entity 
     Entitas adalah sesuatu yang diidentifikasi dari suatu sistem database, bisa berupa objek, orang, tempat, kejadian atau konsep yang informasinya akan disimpan di database. Misal. Pada sistem database akademik, yang menjadi entity adalah, mahasiswa, dosen, matakuliah dan lain-lain. Dalam aplikasi nantinya, penggunaan istilah Entity sering di samakan dengan istilah Tabel. (Entity = table). Disebut tabel, karena dalam merepresentasikan datanya di atur dalam bentuk baris dan kolom. Baris mewakili 1 record dan kolom mewakili 1 field. Dalam sistem database tradisional, entity/table ini disebut juga dengan file.


II. Entity Relationship Diagram ( ERD ) 



1.1 Pengenalan Entity Relationship Diagram
   Dalam segala aspek kehidupan, segala sesuatu itu memiliki hubungan. Baik hubungan dengan sesamanya ataupun hubungan dengan jenis yang berbeda. begitupun basisdata, hubungan - hubungan antar entitas dalam basis data dapan direpresentasikan atau digambarkan dengan ERD ( Entity Relationship Diagram). Model Entity-Relationship adalah model data konseptual tingkat tinggi untuk perancangan basis data. Model data konseptual adalah himpunan konsep yang mendeskripsikan struktur basis data, transaksi pengambilan dan pembaruan basis data.
      Agar dapat memahamimengerti pembahasan Entity Relationship Diagram dengan mudah, perlu memahami definisi salah pemodelan konseptual basis data menggunakan ER dan memahami Konsep Entitas, Atribut, Relasi dan Kardinalitas relasi.

1.2 Komponen - komponen utama Entity Relationship Diagram1. Entitas (entity)
     Entitas melambangkan objek yang terdapat dalam basis data. Entitas merupakan individu yang mewakili sesuatu yang nyata (eksistensinya) dan dapat dibedakan dari sesuatu yang lain. Sebuah kursi yang kita duduki, seseorang yang menjadi pegawai di sebuah perusahaan dan sebuah mobil yang melintas di depan kita adalah entitas.
    Sekelompok entitas yang sejenis dan berada dalam lingkup yang sama membentuk sebuah himpunan entitas (entity sets). Sederhananya, entitas menunjuk pada individu suatu objek, sedang himpunan entitas menunjuk pada rumpun (family) dari individu tersebut.
Entitas adalah objek yang dirasa penting di sistem tersebut, yg bisa berupa :
• Objek Konkrit
  Contoh : Orang, Mobil, Buku
• Objek Abstrak
  Contoh : Penjualan, Jadwal, Pinjaman, Tabungan

2. Relationship (relasi)
     Relationship memodelkan koneksi/hubungan di antara entitas-entitas. Entity Relationship Diagram memperlihatkan bahwa setiap entitas - entitasnya di hubungkang dengan relasi.Relasi menggambarkan hubungan antara entitas satu dengan entitas yang lain sesuai dengan proses bisnisnya. Notasi relasi didalam diagram ER digambarkan dengan notasi belah ketupat.

Derajat Himpunan Relasi1. Unary = Merelasikan satu entitas

2. Binary = merelasikan dua entitas

3. Ternary = Merelasikan tiga entitas


2.5 Kardinalitas Relasi
    Kardinalias relasi menggambarkan banyaknya jumlah maksimum entitas dapat ber-relasi dengan entitas pada himpunann entitas yang lain. Pada himpunan relasi biner, pemetaan kardinalitas relasi dapat berupa salah satu dari pilihan berikut :




1. satu ke satu
 \
dari gambar tersebut dapat disimpulkan bahwa setiap satu entitas hanya dapat mempunyai maksimal 1 entitas.
2. satu ke banyak

gambar tersebut menujukan  bahwa untuk setiap entitas di himpunan entitas pertama b erpasangan dengan banyak entitas di himpunan entitas kedua. Dari pertama ke kedua kardinalitasnya maksimal adalah banyak, dan dari dari kedua ke pertama maksimalnya adalah 1. Oleh karena itu relasi ini berkardinalitas 1 ke banyak.
3. banyak ke satu
gambar tersebut bahwa untuk setiap entitas di himpunan entitas pertama berpasangan dengan maksimal 1 entitas di himpunan entitas kedua. Dari pertama ke kedua kardinalitasnya maksimal adalah 1, dan dari kedua ke pertama kardinalitasnya maksimal adalah banyak. Oleh karena itu relasi ini berkardinalitas banyak ke 1.
4. banyak ke banyak
Relasi di atas menggambarkan bahwa untuk setiap entitas di himpunan entitas pertama berpasangan dengan maksimal banyak entitas di himpunan entitas kedua. Dari pertama ke kedua kardinalitasnya maksimal adalah banyak, dan dari kedua ke pertama kardinalitasnya maksimal adalah banyak. Oleh karena itu relasi ini berkardinalitas banyak ke banyak.

3.Atribut-atribut (properi-properti)
    memodelkan properti-properti dari entitas dan relationship. Setiap entitas pasti memiliki atribut yang mendeskripsikan karakteristik (property) dari entitas tersebut. Penentuan / pemilihan atribut-atribut yang relevan bagi sebuah entitas merupakan hal penting lainnya dalam pembentukan model ER. Contoh: nim, nama, alamat, kode. Setiap atribut mempunyai domain value set yaitu batasan batasan yg dibolehkan bagi suatu atribut.

Tipe–tipe atribut dapat dibedakan sebagai berikut :

• Simple dan CompositeAtribut Simple yaitu suatu atribut yang tidak bisa dibagi menjadi bagian yg lebih kecil lagi. Contoh atribut simple adalah Jenis Kelamin. Atribut Composite yaitu suatu atribut yang dapat di bagi menjadi beberapa bagian. Contoh atribut composite Nama dapat di bagi menjadi nama depan dan nama belakang.

 Single value dan multivalued
     Atribut Single value yaitu suatu atribut yang bisa di isi paling banyak 1 nilai untuk setiap baris data. Contoh atribut single value adalah Jenis Kelamin.
Atribut Multivalued yaitu suatu atribut yang bisa lebih dari 1 nilai yang sejenis untuk setiap baris data. Contoh atribut mutlivalued value adalah Alamat, No telp dan hobi. Ketiga atribut tersebut bisa berisi lebih dari 1. Contoh untuk 1 entitas orang bisa mempunyai lebih dari 1 nilai untuk atribut hobi yang isinya musik, olahraga begitu juga untuk telp dan alamat (* karena bisa mempunyai > 1 no telp dan > 1 alamat)

• Derived attribute
    Derived Attribute yaitu suatu atribut yang nilainya didapatkan dari hasil pengolahan atribut lain. Contoh atribut derived adalah umur yaitu didapatkan dari perhitungan tanggal lahir dan tanggal sekarang. IPK yang didapatkan dari penjumlahan nilai di bagi dengan jumlah sks yang diambil.

4. Konstrain-konstrain (batasan-batasan) integritas, konstrain-konstrain ketentuan validitas.

2.6 Key
     key digunakan  untuk membedakan suatu entitas didalam himpunan entitas dengan entitas lain. Key dipilih karena unik, untuk setiap entitas sehingga bisa di bedakan dari entitas yang lain. Kita bisa mendefinisikan key sebagai satu atau gabungan dari beberapa atribut yang dapat membedakan semua row dalam relasi secara unik.
Berikut adalah macam - macam key :
- Superkey
    kumpulan attribut yang dapat membedakan satiap baris data dalam sebuah relasi secara unik. Contoh super key yaitu :• Nim, nama, alamat, kota
• Nim, nama, alamat
• Nim, nama
• Nim
Candidate key
Kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah relasi secara unik. Contoh Nim
Primary key
Primary key merupakan salah satu dari candidate key yang terpilih. Alasan pemilihan primary key :
• Lebih sering di jadikan acuan
• Lebih ringkas
• Jaminan keunikan key lebih baik
Contoh dari primary key adalah Nim

 TAHAPAN PEMBUATAN ENTITY RELATIONSHIP DIAGRAM
dari uraian diatas dapat disimpulkan bahwa tahapan-tahapan untuk pembuatan ER diagram adalah sebagai berikut :
1. Mengidentifikasikan dan menetapkan seluruh himpunan entity yang akan terlibat.
2. Menentukan atribut-atribut dari setiap entity.
3. Menentukan atribut primary key dari setiap entity.
4. Menentukan relationship antar entity.
5. Menentukan atribut-atribut dari setiap relationship (jika ada).
6. Menentukan Cardinality Rasio.
7. Menentukan Participation Constraint.

III. KONVERSI ER KE BASIS DATA RELATIONAL   
ER adalah sebuah model yang konseptual dari basis data relational. Desain ER bisa di konversikan atau di ubah mejadi bentuk tabel yang akan di simpan di dalam basis data. bab ini juga akan membahas weak entity, spesialisasi, agregasi dan penurunan Diagram ER ke bentuk tabel. yang utama dari pembahasan kali ini  adalah kapan dan bagaimana kita menggunakan weak entity, spesilisasi dan agregasi dan bagaimana menurunkan konseptual ER kedalam tabel.
     Untuk dapat lebih mengerti konversi ER ke basis data relational, diharapkan untuk memahami konsep Weak Entity, Spesialisasi dan Agregasi dan memahami konsep penurunan dari Diagram ER ke Tabel.
3.1 Himpunan Entitas Lemah
Himpunan Entitas Lemah pada umumnya selalu bergantung pada entitas lain dan tidak memiliki primary key. Notasi entitas lemah dilambangkan dengan double persegi panjang, sedangkan relasi untuk himpunan entitas lemah dilambangkan dengan double diamond. Diskriminator / key parsial adalah atribut – atribut yg dpt membedakan entitas – entitas yang terdapat di himpunan entitas lemah. Diskriminator tidak sama dengan primary key. Konsep diskriminator hanya di pakai pada himpunan entitas lemah. Primary key pada Himpunan Entitas lemah ada 2 yaitu primary key dari entitas kuat yg berelasi dan diskriminator / key parsialnya.
contoh himpunan entitas lemah :
  
Relasi di atas menggambarkan bahwa seorang pegawai mendapatkan fasilitas tunjangan dari perusahaan tempat dia bekerja. Tunjangan dalam hal ini adalah entitas lemah. Tunjangan sebagai entitas tidak bisa berdiri sendiri, tunjangan harus bergantung pada entitas pegawai (* tidak akan ada tunjangan 
jika tidak ada pegawai). 
Kardinalitas relasi yang terjadi pada himpunan entitas lemah biasanya merupakan banyak ke 1 atau 1 ke banyak dengan kardinalitas 1 di himpunan entitas yang lebih kuat.

3.2 Spesialisasi dan Generalisasi
Spesialisasi adalah suatu proses desain top-down dengan mendesain subgrouping didalam didalam himpunan entitas yang berbeda dari himpunan entitas. Tujuan dari spesialisasi adalah memberikan gambaran konseptual tentang perbedaan karakteristik dari himpunan entitas yang hampir serupa dengan konsep sub grouping / pengelompokan.
    Subgrouping di atas menjadi himpunan entias yang levelnya lebih rendah dan memiliki atribut tersendiri yang tidak dimiliki pada level di atasnya.Generalisasi merupakan proses desain bottom-up dengan mengkombinasikan jumlah himpunan entitas yang digunakan secara bersama sama. Spesialisasi dan generalisasi sama sama digambarkan dengan notasi ISA, yang membedakan adalah sudut pandangnya saja. Jika Spesialisasi kita mendefinisikan entitas secara umum kemudian mencari subgroup dari entitas tersebut, tetapi generalisasi memandang sebaliknya, dari adanya subgroup subgroup yang berbeda kemudian di cari entitas umum yang mewakili 2 himpunan entitas tersebut.

3.3 Agregasi
Agregasi merupakan hubungan antara satu object dengan object lainnya dimana object satu dengan object lainnya sebenarnya terpisah namun disatukan. sehingga tidak terjadi kebergantungan (Object lain bisa ada walau object penampungnya tidak ada ). contoh dalam dunia nyatanya adalah object pemain bola dan klub bola dimana pemain bola bisa tetap ada walau tidak ada klub bola.
3.4 Ringkasan Notasi simbol ER 




3.5 Skema ER ke Tabel
Penurunan skema itu dibutuhkan karena penurunan skema dimaksudkan untuk mengubah sebuah konsep hubungan entitas dan relasi kedalam bentuk fisik tabel tabel yang berelasi. Inti dari Entity Relationship adalah menggambarkan hubungan di dunia nyata kedalam bentuk entitas entitas yang saling ber-relasi, dari diagram ini bisa di buat kedalam bentuk tabel yang langsung di implementasikan kedalam basis data.
Secara umum penurunan diagram ER ke tabel memiliki aturan sebagai berikut :
• Setiap himpunan entitas menjadi Tabel (* baik himpunan entitas kuat atau lemah)
• Setiap atribut menjadi kolom di tabel
• Kardinalitas relasi akan menentukan jumlah tabel yang terbentuk (* akan di bahas di bawah lebih detail)

3.6 Representasi Atribut menjadi Kolom
Atribut bertipe simple , single dan derived direpresentasikan sama persis seperti diagram ER. Tetapi untuk atribut komposit dan multivalued mempunyai aturan representasi tersendiri.
   Atribut komposit akan dipecah dengan membuat atribut terpisah untuk masing masing komponennya. Contoh atribut nama pada tabel mahasiwa, di pecah menjadi 2 kolom yaitu nama depan dan nama belakang.
Atribut multivalued mengharuskan untuk di pecah menjadi 2 Tabel. Atribut multivalued M dari entitas E direpesentasikan oleh tabel terpisah EM. Perhatikan gambar di bawah yang menunjukkan bagaimana penurunan sebuah atribut multivalued :

3.7 Representasi Himpunan Entitas sebagai Tabel
Himpunan entitas kuat di representasikan kedalam tabel dengan kolom sama persis dengan atribut yang sudah di definisikan di diagram ER. Perhatikan gambar di bawah ini :


IV. NORMALISASI              

4.1 Pengertian Normalisasi       
Apa itu normalisasi? Menurut (E.F. Codd, 1970) normalisasi adalah langkah-langkah sistematis untuk menjamin bahwa struktur database memungkinkan untuk general purpose query dan bebas dari insertion, update dan deletion anomalies yang dapat menyebabkan hilangnya integritas data.

4.2 Tujuan Normalisasi
     tujuan dari dinormalisasikannya suatu model database yaitu untuk memperbaiki desain tabel yang kurang baik sehingga penyimpanan data menjadi lebih efisien dan bebas anomali data. Untuk memperjelas pemahaman tentang proses normalisasiselain itu, normalisasi juga berperan untuk mengurangi redudansi data. perhatikan gambar dibawah ini :

gambar diatas menunjukan Desain table awal sebagai Input, Normalisasi Berlaku sebagai proses untuk mendapatkan output berupa desain tabel yang lebih efisien dan non-anomali. tujuan normalisasi secara rinci adalah sebagai berikut :-Untuk menghilang kerangkapan data-Untuk mengurangi kompleksitas -Untuk mempermudah pemodifikasian data


Bentuk - bentuk normal : 
1.Bentuk Normal Tahap Pertama (1st Normal Form / 1NF)
2.Bentuk Normal Tahap Kedua (2nd Normal Form / 2NF)
3.Bentuk Normal Tahap (3rd Normal Form / 3NF)
4.Boyce-Code Normal Form (BCNF)
5.Bentuk Normal Tahap (4th Normal Form / 4NF)
6.Bentuk Normal Tahap (5th Normal Form / 5NF)

4.3  Bentuk Normal Pertama (1NF)        
 Bentuk normal pertama merupakan bentuk normal dengan lever terendah, dan diperlukan tahapan normalisasi berikutnya untuk mencapai kelebih normalan dan keakuratan data.berikut adalah persyaratan untuk mencapai First Normal Form : 1. Tidak adanya atribut multi-valueatribut komposit atau kombinasinya.     ( atribut multi-value adalah atribut yang bernilai ganda dan dapat dibagi lagi )2. Mendefinisikan atribut kunci.3. Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi)Contoh :   tabel diatas tidak memenuhi First Normal Form,  Oleh karena itu perlu dihilangkan atribut multivaluednya dengan di 
dekomposisi.tabel dalam bentuk 1st normal form :

4.4 Normalisasi Kedua      
 Untuk mencapai bentuk normal kedua, dibutuhkan beberapa persyaratan sebagai berikut :
1. Sudah memenuhi dalam bentuk normal kesatu (1NF)2. Semua atribut bukan kunci hanya boleh tergantung (functional dependency) pada atribut kunci3. Jika ada ketergantungan  parsial maka atribut tersebut harus dipisah pada tabel yang lain4. Perlu ada tabel penghubung ataupun kehadiran foreign key bagi atribut-atribut yang telah dipisah tadi
Contoh :didalam tabel ditunjukan , mhs_nama dan mhs _alamat bergantung pada mhs_nrp. mk_nama dan mk_sks bergantung pada mk_kode. dapat ditarik kesimpulan bahwa didalam tabel tersebut terdapat dua attribut yang menjadi primary key . dalam aturan nomor 2 dan 3 dijelaskan bahwa Semua atribut bukankunci hanya boleh tergantung (functional dependency) pada atribut kuncidan Jika adaketergantungan  parsial maka atribut tersebut harus dipisah pada tabel yang lain. maka tabel tersebut perlu dinormalisasi menjadi :


4.5 Normalisasi Ketiga
          Jika tabel telah berada dalam bentuk normal ke tiga ( Third Normal Form ) , maka tabel tersebut bisa dianggap cukup normal. Third Normal Form merupakan syarat minimum bagi sebuah desan tabel walaupun akan lebih baik jika juga memenuhi BCNF.
Berikut adalah persyaratan untuk mencapai bentuk normal ketiga ( 3NF ) :
1. Sudah berada dalam bentuk normal kedua (2NF)2. Tidak ada ketergantungan transitif (dimana atribut bukan kunci tergantung    pada atribut bukan kunci lainnya). contoh: tabel berikut memenuhi 2NF, tapi belum memenuhi 3NF:         dapat dilihat bahwa di dalam tabel mahasiswa masih  terdapat atribut non primary key (yaknialm_kota dan alm_Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni alm_kodepos). Maka dari itu, tabel tersebut perlu didekomposisi menjadi :


4.6 Bentuk-Bentuk Normal Lainnya
 Selain daripada apa yang di bahas sebelumnya, ada bentuk-bentuk normal Form lainnya sebagai berikut :
1. Bentuk Normal ke-4 (4th NF)diperkenalkan oleh Ronald Fagin pada tahun 1977
2. Bentuk Normal ke-5 (5th NF)diperkenalkan oleh Ronald Fagin pada tahun 1979
3. Domain/Key Normal Form (DKNF)diperkenalkan oleh Ronald Fagin pada tahun 1981
4. Bentuk Normal ke-6 (6th NF)diperkenalkan oleh Date, Darwen dan Lorentzos pada tahun 2002

4.7 Denormalisasi

Denormalisasi adalah proses menggandakan data secara sengaja( sehingga menyebabkan redudansi data) untuk menungkatkan performa database, untuk meningkatkan kecepatan akses data atau memperkecil Query cost. Denormalisasi sendiri tidak sama dengan Normalisasi, karena Denormalisasi dilakukan setelah tabel dalam kondisi 'cukup normal'. 

Dalam melakukan Denormalisasi ada beberapa teknik, salah satunya adalah Materialized View pada DBMS Oracle. ini adalah teknik menggandakan data dengan cara membuat tabel semu berupa view fisik (yang benar-benar dituliskan di disk, bukan sebatas di memory). teknik ini biasanya di buat dari hasil join beberapa tabel yang sering diakses tapi jarang di update.

Ada beberapa alasan melakukan Denormalisasi : 
1.  Mempercepat proses query  dengan cara meminimalkan cost  yang 
disebabkan oleh operasi join antar tabel 
2.  Untuk keperluan Online Analytical Process (OLAP)
3.  Dan lain-lain
Adapun konsekuensi denormalisasi adalah sebagai berikut:
1.  Perlu ruang ekstra untuk penyimpanan data
2.  Memperlambat pada saat proses insert, update dan delete sebab prosesproses tersebut harus dilakukan terhadap data yang redundant (ganda) 
Dengan demikian dapat disimpulkan bahwa denormalisasi harus dilakukan 
dengan bijak sebab walaupun memiliki beberapa keuntungan namun juga 
memiliki konsekuensi yang patut diperhitungkan.

Referensi 


Diktat Kuliah IK330 Basis Data Budi Laksono Putro, S.Si, MT

Tidak ada komentar:

Posting Komentar