normalisasi relasi database

11 November 2012 20:05:22 Dibaca : 3854
Membangun Relasi Database
Relational database merupakan model database yang tepat untuk kebutuhan aplikasi modern. Model database ini memberikan kemudahan bagi aplikasi untuk memanipulasi data dan mudah untuk membuat aplikasi yg scallable.
 
Relational database mendasarkan strukturnya pada tabel yang terdiri dari baris dan kolom. Sebuah kolom memiliki satu type data. Semua data dalam tabel berkorelasi satu sama lain atau terdiri dari satu topik. Sementara baris merupakan satu set data yang merelasikan data pada kolom. Selain itu pada tabel juga harus ada satu atau lebih primary key yang memiliki nilai yang unik untuk tiap data pada kolom. Untuk membangun struktur database yang baik, kita perlu untuk mengetahui konsep relasi data, normalisasi data.
 
Normalisasi data
Tujuan utama dari normalisasi data adalah untuk mencegah kehilangan data dan struktur database yang tidak baik. Normalisasi dilakukan menurut aturan tertentu, yaitu aturan normal form. Ada tiga aturan normal form
1. Bentuk pertama
Bentuk pertama mengisyaratkan bahwa sebuah tabel harus:
  • tidak memiliki data yang sama pada kolom
  • pada satu cell hanya dapat diisi satu data
  • semua data pada satu baris harus berbeda.
2. Bentuk kedua

 

  • harus dalam bentuk pertama.
  • Primary key pada tabel harus tergantung pada primary key lain dalam satu tabel.

 

 
 
Pada gambar diatas terdapat dua primary key. Data pada kolom AuthLN, ada yang sama yaitu Proulx. Struktur ini diperbolehkan karena data pada satu kolom tidak sama.
 
3. Bentuk ketiga
  • harus pada bentuk kedua.
  • Data harus tergantung pada primary key dan tiap data pada kolom independent satu sama lain.

 

 
Pada data diatas, BookID merupakan data yang unik dan semua data pada kolom lain tergantung pada BookID. Jika tidak terdapat BookID, maka jelas tidak ada BookTitle dan Copiright. Sementara pada kolom ChineseSign, tergantung pada data pada kolom Copyright. Sehingga ini melanggar syarat bentuk ketiga. Untuk mengatasi ini kita perlu memecah tabel tersebut menjadi dua tabel, dengan ChineseSign terpisah pada tabel kedua, bentuk relasinya adalah sebagai berikut:

 

Relasi Data
melerelasikan data bertujuan untuk menjaga data agar tetap pada bentuk normal seperti yang disyarakatkan diatas. Terdapat tiga bentuk relasi data:
 
1. one to one
satu data pada tabel hanya dapat berelasi dengan satu data pada pada tabel lain, dan sebaliknya. Relasi data yang mungkin adalah:
 

model relasi ini biasanya digunakan jika kita ingin memisahkan data pada satu tabel yang memiliki terlalu banyak kolom.
 
2. one to many
satu data pada tabel dapat memiliki relasi lebih dari satu data pada tabel lain dan sebaliknya untuk relasi many to one.
 
 
 
Pada relasi diatas terdapat diga tabel, yaitu Authors, AuthorBook, dan Books. Karea tiap author dapat menulis lebih dari satu buku, maka relasi yang ada antara tabel author dan authorbook adalah one to many. Sementara data pada authorbook hanya dapat mereferensi satu data pada tabel author. Karena sebuah buku dapat ditulis lebih dari satu author, maka relasi yang ada untuk tabel Books dan AuthorBook adalah one to many.
 
3. many to many
relasi many to many memungkinkan data pada suatu tabel berlasi lebih dari satu data pada tabel yang lain, dan sebaliknya. Relasi ini hanya logical dan secara fisik tidak dapat diimplementasikan.
 
 
Pada relasi diatas, relasi many to many dibuat dengan membuat satu tabel ketiga yang menghubungkan kedua tabel yang akan direlasikan, dalam hal ini adalah AuthorBook. Tabel ketiga ini memiliki primary key dari kedua tabel yang ingin direlasikan. Untuk data diatas, bentuk relasinya secara fisik mirip dengan one to many.
 
Membuat Model Data
sebelum mengimplementasikan database secara fisik, kita harus membuat hubungan database secara logical. Kemudian berdasarkan susunan tersebut kita implementasikan dengan menggunakan berbagai SQL statement. Untuk dapat membuat relasi data secara logical, kita harus mengerti tentang tabel, kolom, type data, primary key, dan relasi antar data. Berikut dicontohkan model database:
 
 
 
Pada model data diatas, terdapat tiga tabel utama dengan dua tabel sebagai penghubung. Primary key merupakan nama kolom diatas garis, sementara yg lain adalah kolom biasa. FK mengindikasikan foreign key, yaitu primary key dari suatu tabel yang ada pada tabel yang lain.
 
Untuk membuat relasi seperti diatas, kita harus bisa menganalisa data yang diperlukan sesuai kebutuhan sistem. Paling tidak ada empat hal yang harus diperhatikan saat membua relasi data:
  1. Identifikasi berbagai properti entitas data meliputi tabel dan kolom yang diperlukan.
  2. Lakukan normalisasi data ke dalam bentuk normal.
  3. Identifikasi hubungan yg harus ada pada data.
  4. Memperbaiki relasi data secara keseluruhan, sehingga normalisasi dapat berjalan sempurna.
     

 

Mengidentifikasi Entitas Data
entitas data merupakan sebuah set dari data yang berelasi, secara eksplisit diwakilkan dengan tabel. Entitas dalam sebuah database memiliki attribute yang diwakilkan dengan kolom. Pendefidefinisian enttitas dan attribute mengikuti kebutuhan sistem yang tentu sesuai permintaan user. Berikut disajikan entitas yang disusun berdasarkan kebutuhan yang ada:
 
 
 
 
 
 
 
 
 
 
 
dari objek diatas, dapat kita bagi mejadi beberapa bagian yang mana satu bagian tersebut berisi attribute yang saling berelasi:
 
 

Normalisasi Data
Object yang telah dikategorikan menjadi tabel dan kolom, perlu diidentifikasi type data yg tepat untuk tiap kolom dan relasi yang ada meliputi primary key dan foreign key. Kita bahkan perlu mempertimbangkan apakah kita akan menambahkan kolom atau tabel lagi untuk melakukan normalisasi. Berikut adalah hasil normalisasi dari object yang telah dikategorikan:
 
 
sementara pertimbanga untuk menentukan primary key dan foreight key adalah value yang unik untuk tiap kolom. Untuk tabel author, nilai yang unik adalah AuthID, yang mana data ini merupakan tambahan. Pemberian nama kolom untuk keseluruhan attribute juga harus konsisten, dengan mengikuti aturan berikut:
 
  • boleh berisi huruf dan angka atau huruf saja, tidak boleh hanya angka.
  • Dapat mengandung underscore.
  • Tidak boleh mengandung titik, backslash dan forwardslash.
 
Identifikasi Relasi Data
dibawah ini disajikan relasi data pada tabel. Seperti yang telah diketahui sejak awal, relasi ini dibuat sebuai kebutuhan sistem. Jika menurut kenbutuhan sistem, seorang author dapat menulis lebih dari satu buku, maka relasi antara tabel authors dan books adalah many to many. Relasi yang ada pada tabel books dan publisher juga many to many.
 
 

Memperbaiki Model Data
pada tahap ini perbaikan pada model data dilakukan dengan menyempurnakan normalisasi. Hal ini dicapai dengan menambahkan satu tabel sebagai tabel konjungsi. Tabel ini berisi foreign key yang merupakan Primary Key dari tabel yang akan dihubungkan. Misal kita ingin menghubungkan tabel Authors dan Books, perlu dibuat satu tabel konjungsi dengan nama “AuthorsBooks”. Relasi yang ada antara author dan authorsbooks adalah one to many, begitu juga relasi antara books dengan authorsbooks adalah one to many. Hal ini juga dilakukan untuk menghubungkan antara tabel Books dengan tabel Publishers.

pengertian normalisasi database

11 November 2012 19:53:16 Dibaca : 288

• Normalisasi merupakan teknik analisis data yang mengorganisasikan atribut-atribut data dengan cara mengelompokkan sehingga terbentuk entitas yang non-redundant, stabil, dan fleksible

• Normalisasi dilakukan sebagai uji coba pada suatu relasi secara berkelanjutan untuk menentukan apakah relasi itu sudah baik, yaitu dapat dilakukan proses insert,update,delete, dan modifikasi pada satu atau beberapa atribut tanpa mempengaruhi integritas data dalam relasi tersebut.

Pada proses normalisasi terhadap tabel pada database dapat dilakukan dengan tiga tahap normalisasi antara lain :

1. Bentuk Normal ke Satu(1NF)

a. Syarat :
b. Tidak ada set atribut yang berulang atau bernilai ganda.
c. Telah ditentukannya primary key untuk tabel atau relasi.
d. Tiap atribut hanya memiliki satu pengertian.
e. Tiap atribut yang dapat memiiki banyak nilai sebenarnya menggambarkan entitas atau relasi yang terpisah.

2. Bentuk Normal ke Dua(2NF)

a. Syarat :
b. Bentuk data telah memenuhi kriteria bentuk normal ke satu.
c. Atribut bukan kunci(non-key attribute) haruslah memiliki ketergantungan fungsional sepenuhnya pada primary key

3. Bentuk Normal ke Tiga(3NF)

a. Syarat :
b. Bentuk data telah memenuhi kriteria bentuk normal ke dua.
c. Atribut bukan kunci(non-key attribute) tidak boleh memiliki ketergantungan fungsional terhadap atribut bukan kunci lainnya. Seluruh atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan fungsional terhadap primary key di relasi itu saja.

tugas ke 5 manajemen database

14 October 2012 19:49:04 Dibaca : 2716

1. entity relasionship

Apa yang dimaksud dengan model data? Sebutkan dua jenis data model yang  Anda ketahui!

Model data adalah sekumpulan cara / peralatan / tool untuk mendeskripsikan data-data, hubungannya satu sama lain, semantiknya, serta batasan konsistensi.

Ada dua model data, yaitu : Entity Relationship Diagram (ERD) dan model relasional. Keduanya menyediakan cara untuk mendeskripsikan perancangan basis data pada peringkat logika.

  • Model ERD atau Conceptual Data Model (CDM) : model yang dibuat berdasarkan anggapan bahwa dunia nyata terdiri dari koleksi obyek-obyek dasar yang dinamakan entitas (entity) serta hubungan (relationship) antara entitas-entitas itu.
  • Model Relasional atau Physical Data Model (PDM) : model yang menggunakan sejumlah tabel untuk menggambarkan data serta hubungan antara data-data tersebut. Setiap tabel mempunyai sejumlah kolom di mana setiap kolom memiliki nama yang unik.

 

Bangun sebuah ER-Diagram untuk perusahaan asuransi mobil yang costumer–costumernya masing-masing memiliki satu atau lebih mobil. Setiap mobil memiliki 0 sampai banyak catatan kecelakaan. Serta bangun tabel-tabel untuk ER-diagram!

ERD :

Contoh ERD

Tabel untuk ERD :

Contoh PDM

 

Jelaskan perbedaan antara weak entity dan strong entity!

  • Strong entity (entitas kuat) : entitas yang mandiri, yang keberadaannya tidak bergantung pada keberadaan entitas yang lainnya. Instansiasi entitas kuat selalu memiliki karakteristik yang unik disebut identifier (sebuah atribut tunggal atau gabungan atribut-atribut yang secara unik dapat digunakan untuk membedakannya dari entitas kuat yang lain).
  • Weak entity (entitas lemah) : entitas yang keberadaannya sangat bergantung pada keberadaan entitas yang lainnya. Entitas lemah tidak memiliki arti apa-apa dan tidak dikehendaki kehadirannya dalam diagram ER tanpa kehadiran entitas di mana mereka bergantung.

Entitas di mana entitas lemah bergantung dinamakan identifying owner. Entitas lemah tidak memiliki identifier sendiri. Secara umum, dalam diagram ER entitas lemah memiliki atribut yang berperan sebagai partial identifier (identifier yang berfungsi secara sebagian).

 

Jelaskan konsep dari agregasi dan berikan contoh yang memakai konsep ini!

Agregasi adalah suatu keadaan di mana suatu relasi hanya dapat direalisasikan setelah relasi yang lain ada terlebih dahulu. Relasi yang bertipe agregasi tidak dimungkinkan ada jika relasi yang menjadi prasyaratnya tidak terealisasi.

Contoh agregasi :

Sesungguhnya agregasi dapat dipandang sebagaimana relasi pada umumnya (yang menghubungkan 2 entitas). Karena relasi ini dibentuk dari relasi lain (relasi prasyarat) yang secara kronologis lebih dulu terbentuk, maka pengimplementasiannya juga harus dilakukan setelah relasi prasyarat tersebut terimplementasikan. Selanjutnya kita tinggal meninjau derajat relasi dari relasi agregasinya.

 

Bagaimana jika terdapat set entitas yang sama muncul beberapa kali dalam satu set ER-Diagram? Mengapa hal ini harus dihindari? Jelaskan!

  • Untuk menghindari redundancy
  • Menghemat penyimpanan (storage) data
  • Mengurangi efektifitas dan kecepatan akses
  • Untuk menghindari terjadinya asinkronisasi data pada saat diupdate

 

Desain sebuah generalisasi – spesialisasi hirarki untuk sebuah perusahaan kendaraan bermotor. Perusahaan menjual sepeda motor, passenger car, van, dan bis. Tentukan penempatan atribut Anda pada setiap level hirarki.

 PBD Modul 1 - Generalisasi Spesialisasi

 

Jelaskan perbedaan antara total constraint dan partial constraint!

  • Total constraint adalah constraint yang mana data dalam entitas yang memiliki constraint tersebut terhubung secara penuh ke dalam entitas dari relasinya.
  • Constraint partial adalah constraint yang mana data dalam entitas yang memiliki constraint  tersebut terhubung ke dalam entitas dari relasinya.

 

Apa yang Anda ketahui dari relasi-relasi berikut? Serta buatlah contoh kasus dari relasi-relasi di atas!

PBD Modul 1 - Relasi 1

Relasi satu :

  • Entity 1 to entity 2 : kardinalitas : one to many dengan detail minimal 0 dan maksimalnya banyak. Dependensi : entitas 1 dan entitas 2 tidak saling ketergantungan.
  • Entity 2 to entity 1 : kardinalitas : many to one dengan detail minimal 1 dan maksimalnya 1. Dependensi : entitas 1 dan entitas 2 tidak saling ketergantungan.

Contoh kasus :

PBD Modul 1 - Contoh relasi 1

Keterangan : tabel Pembeli dan Mobil dengan relasi membeli. Pembeli boleh tidak membeli mobil, tetapi juga boleh membeli banyak mobil. Satu mobil boleh tidak ada yang membeli, tapi seandainya ada yang membeli, maksimal hanya ada satu orang pembeli.

 PBD Modul 1 - Relasi 2

Relasi dua :

  • Entity 3 to entity 4 : kardinalitas : one to many dengan detail  minimal 0 maksimalnya banyak. Dependensi : entitas 3 dan entitas 4  tidak saling ketergantungan.
  • Entity 4 ke entity 3 : kardinalitas : many to one dengan detail minimal 1 maksimal 1. Dependensi : entitas 4 dan entitas 3 tidak saling ketergantungan.

Contoh kasus :

 PBD Modul 1 - Contoh relasi 2

Keterangan : tabel Dosen dan Mahasiswa dengan relasi perwalian. Satu dosen bisa mempunyai banyak mahasiswa wali, bisa pula tidak punya. Satu mahasiswa harus mempunyai satu dosen wali.

PBD Modul 1 - Relasi 3

Relasi tiga

  • Entity 5 to entity 6 dan Entity 6 to entity 5 : kardinalitas : one to one dengan detail  minimal 0 maksimalnya 1. Dependensi : entitas 5 dan entitas 6  tidak saling ketergantungan.

Contoh kasus :

PBD Modul 1 - Contoh relasi 3

Keterangan : tabel Cowok dan Cewek dengan relasi menikah. Cowok tidak harus menikah, tapi boleh menikah hanya dengan satu cewek. Cewek boleh tidak menikah, tapi boleh menikah hanya dengan satu cowok. Diasumsikan tidak diperbolehkan adanya poligami.

PBD Modul 1 - Relasi 4

Relasi empat

  • Entity 7 to entity 8 : kardinalitas : one to one dengan detail  minimal 0 maksimalnya 1. Dependensi : entitas 7 dan entitas 8  tidak saling ketergantungan.
  • Entity 8 ke entity 7 : kardinalitas : one to one dengan detail minimal 1 maksimal 1. Dependensi : entitas 8 dan entitas 7 tidak saling ketergantungan.

Contoh kasus :

PBD Modul 1 - Contoh relasi 4

Keterangan : tabel Pegawai dan Departemen dengan relasi mengepalai. Pegawai tidak harus mengepalai departemen, tetapi hanya boleh mengepalai satu departemen saja. Masing-masing departemen harus mempunyai satu orang atasan.

PBD Modul 1 - Relasi 5

Relasi lima

  • Entity 9 to entity 10 : kardinalitas : many to many dengan detail  minimal 0 maksimalnya banyak. Dependensi : entitas 9 dan entitas 10 tidak saling ketergantungan.
  • Entity 10 ke entity 9 : kardinalitas : many to many dengan detail minimal 1 maksimal banyak. Dependensi : entitas 10 dan entitas 9 tidak saling ketergantungan.

Contoh kasus :

PBD Modul 1 - Contoh relasi 5

Keterangan : tabel Mata Kuliah dan Mahasiswa dengan relasi diambil. Mata kuliah tidak harus diambil oleh mahasiswa, tapi boleh diambil oleh banyak mahasiswa. Satu mahasiswa minimal mengambil satu mata kuliah dan boleh mengambil banyak mata kuliah. Namun pada kenyataannya, relasi many to many akan dijadikan sebuah tabel baru.

PBD Modul 1 - Relasi 7

Relasi tujuh

  • Entity 13 to entity 14 : kardinalitas : one to many dengan detail  minimal 0 maksimalnya banyak. Dependensi : entitas 13  menjadi parent dari  entitas 14.
  • Entity14 ke entity 13 : kardinalitas : many to one dengan detail minimal 1 maksimal 1. Dependensi : entitas 14 tergantung kepada  entitas 13.

Contoh kasus :

PBD Modul 1 - Contoh relasi 7

Keterangan : tabel Customer dan Asuransi dengan relasi mempunyai. Customer boleh tidak mempunyai asuransi, dan boleh mempunyai banyak asuransi. Satu asuransi harus dimiliki oleh satu orang customer.

 

Sebutkan tahapan–tahapan normalisasi serta penjelasannya! Dan apa perbedaan  antara 1 NF dan BCNF?

Normalisasi adalah proses penyusunan data untuk mengurangi terjadinya duplikasi dan inkonsistensi.

  • First Normal Form (1NF) : tidak boleh ada kelompok yang berulang pada tabel, penguraian atribut multivalued dan composit.
  • Second Normal Form (2NF) : atribut bukan kunci tidak boleh bergantung pada sebagian primary key, artinya atribut bukan kunci harus bergantung pada semua atribut yang termasuk primary key –> functional dependency pada primary key.
  • Third Normal Form (3NF) : tidak boleh ada atribut bukan kunci yang bergantung pada atribut selain primary key.
  • Boyce-Codd Normal Form (BCNF) : atribut yang ditentukan bukan bagian dari key attribute.

Perbedaan antara tahap 1NF dengan tahap BCNF :

  • 1NF :  tahap normalisasi dasar, yang mana masih belum sampai pada tingkat efektifitas maksimal, masih banyak kemungkinan terjadinya redundancy data atau duplikasi data.
  • BCNF : tahap normalisasi setelah 3NF , yang mana efektifitas telah mencapai maksimal, kemungkinan terjadinya redundancy data dan duplikasi data lebih kecil daripada 1NF.

contoh diagram dari satu ke satu

contoh diagram dari satu kebanyak

contoh diagram dari banyak ke banyak

 

tugas 4 manajemen data base

01 October 2012 21:15:15 Dibaca : 442

MODEL DATA DALAM DATABASE

 
Model  data adalah sekumpulan konsep yang terintegrasi untuk mendiskripsikan  data,
hubungan antar data dan batasan – batasannya dalam  suatu organisasi. Model data
merepresentasikan suatu organisasi. Model   data harus menyediakan konsep dasar dan notasi yang
memungkinkan perancang basis data dan pemakai utuk dapat mengkomunikasikan pemahamannya
mengenai organisasi data.
 

Komponen Model Data
Komponen model data dapat dikategorikan menjadi 3 (tiga) bagian yang meliputi:
1.      Bagian struktural, memuat sekumpulan aturan untuk melakukan konstruksi basis
data ( database).
2.      Bagian manipulasi, melakukan definisi tipe operasi  yang diijinkan pada data,
termasuk operasi yang digunakan untuk melakukan perubahan (update), atau
membaca data (retrieve) dari basis data dan untuk melakukan perubahan struktur
basis data.
3.      Sekumpulan aturan mengenai integritas, yang akan menjaga keakuratan dari data
dalam basis data (database).
 

Kelompok Model Data
Terdapat 3 (tiga) kelompok model data, yaitu model data berbasis objek, model data
berbasis record dan model data fisikal.
a. Model data berbasis objek.
Pada model ini menjelaskan data pada tingkat konsepsi dan view. Pada model ini
terdapat beberapa macam model, yaitu :
·         ER model (Entity relationship Model).
·         OO model (Objek Oriented Model).
·         Binary Model.
·         Model data semantik.
·         Model data infologikal, dan
·         Model data fungsional.
b. Model data berbasis record.
Pada model ini menjelaskan  data pada tingkat konsepsi dan view, memakai
seluruh struktur lojik basis data dan menyediakan uraian tingkat tinggi dari
implementasi. Terdiri dari sejumlah fixed format  record  dengan berbagai tipe.
Pada model ini teradapat 3 (tiga) macam tipe,yaitu :
·         Model data relational.
·         Model data nerwork, dan
·         Model data hirarki.
b.1. Model  relational.
Pada model ini menggambarkan data dan relationship  diantara data oleh suatu
koleksi tabel, contoh nya: 



                              Gambar 1. Model Relational

b.2. Model  network (jaringan)
Pada model ini menggambarkan koleksi record – record dan relationship diantara
data ditunjukkan oleh  link (penghubung) yang dapat dipandang sebagai  pointer
(penunjuk), contoh nya: 


                            Gambar 2. Model Network
 
b.3. Model  hirarki
Pada model ini sama seperti pada model network dalam hal data dan relationship
diantara data digambarkan oleh record dan link. Perbedaannya adalah record
disusun sebagai “collection of tree” dengan sembarang grafik. contoh nya: 

 

Tugas ke 3 manajemen data base

29 September 2012 21:40:38 Dibaca : 357

Pengertian DDL dan DML

Pada pembahasan DDL dan DML beserta contoh perintah akan penulis fokuskan pada SQL Server 2000

Data Definition Language (DDL) yaitu perintah yang digunakan untuk mendefinisikan database maupun bagian dari database seperti tabel dan view. Perintah yang digunakan: CREATE, DROP, dan ALTER.

Data Manipulation Language (DML) yaitu perintah yang digunakan untuk memanipulasi data dalam tabel dari suatu database. Perintah yang digunakan: SELECT, INSERT, UPDATE, dan DELETE

Contoh perintah DDL, dalam contoh ini penulis akan membuat tabel barang yang terdiri dari beberapa field (KodeBarang, NamaBarang, JumlahBarang, HargaBeli, HargaJual, Satuan)

Bentuk umum penulisannya adalah sebagai berikut

Create Table Nama_Tabel (Nama_Field	DataType(Lenght), Nama_Filed2  DataType(Lenght),…)
Create Table Barang(
KodeBarang	Char(6),
NamaBarang	Varchar(30),
JumlahBarang	Int,
HargaBeli	Int,
HargaJual	Int,
Satuan 		Varchar(10))

Contoh perintah DML, dalam contoh ini penulis akan memasukkan data kedalam table barang

Bentuk umum penulisannay adalah sebagai berikut

Insert into Nama_Tabel (Field1, Filed2,…) values(Nilai1, Nilai2, …)
Insert Into Barang(KodeBarang, NamaBarang, JumlahBarang, HargaBeli, Har