Asslamualaikum ^_^ haii teman-teman :) bagaimana kabarnya?
pada sehat kan?? :D
oh iya disini saya mau berbagi ilmu nih sama teman-teman tentang basis data :)
yuuu langsung aja ... ;)
1.
PENGENALAN BASIS DATA
1.1 Data dan Informasi
Definisi
data dan informasi dari beragam sumber maka dapat disimpulkan definisi dari
data dan informasi sebagai berikut:
•
Data, adalah respresantasi untuk mewakili nilai fakta dunia nyata.
Representasi 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 nya.
•
Informasi, adalah data yang telah dikelola dalam bentuk
tertentu untuk memberikan makna atau arti bagi penerimanya.
Gambar 1-1
Siklus Informasi
Siklus
informasi adalah merupakan
gambaran secara umum mengenai proses terhadap data sehingga menjadi informasi
yang bermanfaat bagi pengguna.
Data
merupakan bentuk mentah yang belum dapat bercerita banyak, sehingga perlu
diolah lebih lanjut. Data ditangkap sebagai input, diproses melalui
suatu model membentuk informasi. Pemakai kemudian menerima informasi tersebut
sebagai landasan untuk membuat suatu keputusan dan melakukan tindakan operasional
yang akan membuat sejumlah data baru. Data baru tersebut selanjutnya menjadi input
pada proses berikutnya, begitu seterusnya sehingga membentuk suatu siklus
informasi/Information Cycle (Tata Sutabri, 2004: 17).
1.2 Terminologi dan Konsep Basis Data
Basis
data terdiri dari 2 kata, yaitu basis & data. Basis dapat diartikan sebagai markas / gudang, tempat berkumpul.
Sedangkan data adalah fakta yang
mewakili suatu objek seperti manusia, barang, hewan peristiwa, keadaan dan
sebagainya, yang direkam dalam bentuk angka, huruf simbol, teks gambar, bunyi
atau kombinasinya.
Gambar
1-2 Lemari Arsip dan Basis Data
Basisdata
adalah pengaturan, pemilahan, pengelompokkan, pengorganisasian data yang akan
kita simpan sesuai fungsi/jenisnya. Pemilahan/ pengelompokan ini dapat
berbentuk sejumlah file/tabel terpisah atau dalam bentuk pendefinisian
kolom-kolom/field-field data dalam setiap file/tabel.
Tujuan dibangunnya basis data
adalah sebagai berikut :
·
Kecepatan & kemudahan (speed)
Dengan
memanfaatkan basis data, memungkinkan kita untuk dapat menyimpan data atau
melakukan perubahan/ manipulasi terhadap data atau menampilkan kembali data
tersebut secara lebih cepat dan mudah.
·
Efisiensi ruang
penyimpanan (space)
Karena keterkaitan yang erat antara kelompok data dalam sebuah
basisdata,maka redundansi (pengulangan) pasti akan selalu ada, sehingga akan
memperbesar ruang penyimpanan. Dengan basisdata, efisiensi ruang penyimpanan
dapat dilakukan dengan menerapkan sejumlah pengkodean, atau dengan membuat
relasi-relasi antar kelompok data yang saling berhubungan.
·
Keakuratan (accuracy)
Pengkodean atau
pembentukan relasi antar data bersama dengan penerapan aturan/batasan (constraint),
dmain data, keunikan data, dsb, yang secara ketat dapat diterapkan dalam sebuah
basis data, sangat berguna untuk menekan ketidak akuratan penyimpanan data.
·
Ketersediaan (availability)
Dengan pemanfaatan
jaringan komputer, maka data yang berada di suatu lokasi/cabang dapat juga
diakses (tersedia/available) bagi lokasi/cabang lain.
·
Kelengkapan (completeness)
Kelengkapan data yang
disimpan dalam sebuah database bersifat relatif, bisa jadi saat ini dianggap
sudah lengkap, tetapi belum tentu pada suatu saat dianggap lengkap. Untuk
mengakomodasi kelengkapan data, seperti
·
Keamanan (security)
Aspek keamanan dapat
diterapkan dengan ketat, dengan begitu kita dapat menentukan pemakai basis data
serta obyek-obyek didalamnya ,serta jenis-jenis operasi apa saja yang boleh
dilakukannya.
·
Kebersamaan pemakaian
(sharability)
Basis data yang dikelola dengan
aplikasi multi user dapat memenuhi kebutuhan ini.
1.3
Perkembangan Basis Data
Gambar
1-3 Perkembangan Database
1.4
Sistem Basis Data (DBMS)
Perangkat
lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis
data disebut sistem manajemen basis data (Database Management System,
DBMS). DBMS memiliki karakteristik sebagai berikut:
• Software
program
• Supplements
operating sistem
• Manages
data
• Queries
data and generates reports
• Data
security
Sistem
basis data adalah sistem yang terdiri atas kumpulan file-file yang
saling berhubungan dan dikelola oleh program (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)
Gambar 1-4 Komponen DBMS
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
Basis
Data memiliki banyak model, penggambaran model basis data digambarkan pada
gambar 1-5 dengan penjelasan dibawah ini:
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.
d. Object oriented
Object
Oriented Database adalah sebuah
sistem database yang menggabungkan semua konsep object oriented seperti
pewarisan, abstraksi, enkapsulasi, dll. Model ini dapat berinteraksi dengan
baik dengan bahasa pemrograman berorientasi objek seperti java dan C++.
1.6
Basis Data Relasional
Model
Relasional merupakan model yang paling sederhana sehingga mudah digunakan dan
dipahami oleh pengguna. Model ini menggunakan sekumpulan tabel berdimensi dua (
yang disebut relasi atau tabel ), dengan masing-masing relasi tersusun atas
tupel atau baris dan atribut. DBMS yang bermodelkan relasional biasa disebut
RDBMS (Relational Data Base Management System). Model database ini
dikemukakan pertamakali oleh EF codd, seorang pakar basisdata. Model ini sering
disebut juga dengan database relasi.
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.
Tingkatan Data Dalam
Database Relasi
Dalam
suatu sistem database relasi, data yang tersimpan dalam DBMS mempunyai
tingkatan-tingkatan , sebagai berikut :
Gambar 1-6 Tingkatan data dalam Database Relasional
·
Karakter (Characters)
Merupakan bagian terkecil dalam
database, dapat berupa karakter numerik (angka 0 s.d 9), huruf ( A - Z, a - z)
ataupun karakter-karakter khusus, seperti *, &. %, # dan lain-lain.
·
Field atau Attribute
Merupakan bagian dari record yang
menunjukkan suatu item data yang 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. Misal : Record entity
mahasiswa adalah kumpulan data value dari field nobp, nama, jurusan dan alamat
per-barisnya. Dalam tabel database, Record disebut juga baris.
·
Table/Entity
Entity merupakan sesuatu yang
dapat 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.
·
Database
Kumpulan dari tabel-tabel yang
saling berelasi, disusun secara logis, sehingga menghasilkan informasi yang bernilai
guna dalam proses pengambilan keputusan.
Ada beberapa sifat yang melekat
pada suatu tabel :
ü Tidak boleh ada record yang sama (kembar)
ü Urutan record tidak terlalu penting, karena data dalam
record dapat diurut sesuai dengan kebutuhan.
ü Setiap field harus mepunyai nama yang unik (tidak
boleh ada yang sama).
ü Setiap field mesti mempunyai tipe data dan
karakteristik tertentu
Contoh produk DBMS terkenal
yang menggunakan model relasional antara lain adalah :
1.
DB2 (IBM)
2.
Rdb/VMS (Digital Equipment Corporation)
3.
Oracle (Oracle Corporation)
4.
Informix (Informix Corporation)
5.
Ingres (ASK Group Inc)
6.
Sybase (Sybase Inc)
7.
Dan masih banyak lagi
1.7.
Bahasa Basis Data
MySQL adalah perangkat lunak
sistem manajemen basis data relasional atau Relational DatabaseManagement System (RDBMS).
Singkatnya MySQL adalah alat/software untuk memanage/mengatur database.
Sedangkan SQL (Structured Query Language) adalah bahasa/sintaks-sintaks
perintah tertentu untuk mengatur database. Jadi MySQL adalah software-nya, dan
SQL adalah sintaks perintahnya.Semua perintah SQL.
Macam-macam
perintah pada bahasa basis data dapat dikelmpokkan menjadi:
1.
Data Definition Language (DDL)
DDL
adalah perintah-perintah yang biasa digunakan oleh pengguna basis data untuk
mendefinisikan skema ke DBMS. DDL Digunakan untuk mespesifikasikan
struktur/skema basis data yang menggambarkan/mewakili desain basis data secara
keseluruhan. Hasil kompilasi perintah DDL adalah kamus data. Kamus data
merupakan sebuah file yang berupa metadata, yaitu data yang
mendeskripsikan data sesungguhnya. Kamus data ini akan selalu diakses pada
suatu operasi basis data sebelum suatu file data yang sesungguhnya
diakses.
2.
Interactive Data Manipulation Language (DML)
DML
adalah perintah-perintah yang digunakan untuk mengubah, manipulasi dan
mengambil data pada basis data. DML merupakan bahasa yang memungkinkan user untuk
mengakses atau memanipulasi data sebagaimana telah direpresentasikan oleh model
data. Terdapat dua macam DML, yaitu:
•
Prosedural, mengharuskan user untuk menentukan data apa yang dibutuhkan dan
bagaimana untuk mendapatkan data
tersebut.
•
Nonprosedural, mengharuskan pemakai untuk menentukan data apa yang dibutuhkan
tanpa menyebuntukan bagaimana mendapatkan data tersebut.
3. Transaction
control
Transaction
control adalah bahasa basis data yang
mengatur transaksi yang dilakukan oleh Data Manipulation Language (DML). Transaction
control ini memiliki peran yang sangat besar untuk menentukan dilakukan
atau tidaknya perubahan-perubahan data yang ada pada basis data. Contoh dari transaction
control ini adalah perintah commit dan rollback.
4. Embedded and Dinamic SQL, contoh C,C++,Java, Cobol, Pascal,
etc.
Tidak
semua DBMS memiliki fasilitas ini, salah satu contoh DBMS yang memiliki
fasilitas ini adalah oracle dimana oracle dapat me-load class yang
ditulis menggunakan bahasa pemrograman java kedalam database.
4.
Authorization,
Untuk
mendefinisikan hak akses spesifik terhadap objek-objek basis data.
2.
ENTITY RELATIONSHIP MODEL
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. Model ER adalah data konseptual tak tergantung DBMS dan platform
perangkat keras tertentu. Model ER dikemukakan oleh Chen [1976].
Model ER adalah
persepsi terhadap dunia nyata sebagai terdiri objek-objek dasar yang disebut
entitas dan keterhubungan (relationship) antar entitas-entitas itu.
Konsep paling dasar di model ER adalah entitas, relationship dan atribut.
Komponen-komponen utama model ER adalah:
1. Entitas (entity), Entitas memodelkan objek-objek
yang berada diperusahaan/lingkungan.
2. Relationship. Relationship memodelkan koneksi/hubungan
di antara entitas-entitas.
3. Atribut-atribut (properi-properti), memodelkan
properti-properti dari entitas dan relationship.
4. Konstrain-konstrain (batasan-batasan) integritas,
konstrain-konstrain ketentuan validitas.
2.1 Entitas (entity)
dan Himpunan Entitas (Entitas Sets)
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.
Contoh
entitas mahasiswa
Sebenarnya menunjuk
pada himpunan entitas. 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
Jenis-jenis
Entitas
·
Entitas kuat (strong entity)
merupakan entitas yang berdiri sendiri tanpa bergantung dengan entitas
lain. Contoh , entitas MAHASISWA, BUKU.
·
Entitas lemah (weak entity)
merupakan entitas yang keberadaannya bergantung pada keberadaan relationship
terhadap entitas lain.
Contoh, entitas ANAK bergantung pada entitas DOSEN.
2.2 Atribut
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 yakni :
1. atribut kunci, atribut bernilai tunggal
dan unik.
2. atribut bernilai tunggal, atribut yang
memiliki hanya satu nilai
3. atribut bernilai banyak, atribut yang
memiliki sekelompok nilai
4. atribut komposit, atribut yang terdiri
atas beberapa atribut yang lebih kecil
5. atribut derivatif, atribut yang
diperoleh dari atribut lain.
Gambar 2-4 Contoh
Atribut Komposit
Notasi
atribut digambarkan dengan gambar elips. Atribut kunci biasa
di beri tanda # atau garis bawah. Contoh himpunan entitas
mahasiswa mempunyai atribut nim sebagai key, prodi, nama, dsb
Gambar 2-5 Entitas dengan Atribut
2.3 Relasi
ER menggambarkan entitas-entitas dengan atributnya
yang saling berelasi. Relasi menggambarkan hubungan antara entitas satu
dengan entitas yang lain sesuai dengan proses bisnisnya. Notasi relasi didalam
diagram ER digambarkan dengan notasi belah ketupat.
Gambar 2-6 Relasi di gambarkan dengan belah ketupat
2.4 Derajat Himpunan
Relasi
Jika
dilihat dari jumlah entitas yang dihubungkan oleh sebuah relasi, maka
kita bisa membagi menjadi 3 macam:
·
Unary (Hanya
me-relasi-kan 1 entitas)
Relasi di atas menggambarkan entitas karyawan yang
ber-relasi dengan entitas karyawan. Entitas karyawan bisa merupakan karyawan
biasa tetapi bisa juga merupakan manajer. Relasi yang terjadi yaitu relasi
karyawan bekerja untuk manajer (* entitas manajer adalah salah satu karyawan
juga). Perhatikan kardinalitas relasinya, 1 karyawan hanya bekerja untuk 1
manajer, tetapi 1 manajer bisa mempunyai banyak bawahan.
·
Binary (Me-relasi-kan
2 entitas)
Relasi di atas menggambarkan entitas pelangan yang ber-relasi
dengan entitas pinjaman. 1 pelanggan bisa mempunyai banyak nomor pinjaman, dan
1 nomor pinjaman hanya untuk 1 pelanggan.
·
Ternary (Me-relasi-kan
3 entitas)
Relasi
di atas menggambarkan entitas karyawan yang ber-relasi dengan entitas cabang
dan entitas pekerjaan melalui relasi bekerja_di. 1 karyawan bekerja di sebuah
id pekerjaan tertentu dan juga bekerja di sebuah cabang tertentu. Ada 3
entitas yang terlibat dari relasi di atas.
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 :
·
Satu ke Satu
Setiap data pada
entitas A berhubungan dengan maksimal satu data pada entitas B, begitu pula
sebaliknya.
·
Satu ke Banyak
Setiap data pada
entitas A bisa berhubungan dengan banyak data pada entitas B, tetapi data pada
entitas B berhubungan maksimal hanya dengan sebuah data di A.
·
Banyak ke banyak
Setiap data pada
entitas A bisa berhubungan dengan banyak data pada entitas B, demikian pula
sebaliknya.
2.6 Key
Penggunaan key merupakan
cara 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.
Macam key ada 3 yaitu :
·
Superkey
Superkey yaitu satu atau lebih
atribut (kumpulan atribut) 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
2.7 Tahapan Pembuatan
ER Diagram
Dapat disimpulkan
untuk membuat ER Diagram, dapat mengikuti urutan tahapan 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.
3.
KONVERSI ER KE BASIS DATA REALTIONAL
3.1 Himpunan Entitas
Lemah
Secara
umum, Himpunan Entitas Lemah tidak memiliki primary key dan selalu
bergantung pada entitas lain. Notasi entitas lemah digambarkan dengan double
persegi panjang, sedangkan relasi untuk himpunan entitas lemah
digambarkan 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.
Gambar 0-1 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 merupakan 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. Atribut
ini khas dan merupakan pembeda dari
entitas di subgroup yang lain. IS A dinotasikan dengan gambar
segitiga berlabel IS A.
Sifat dari spesialisasi adalah inheritan
atribut yaitu atribut pada level tinggi secara otomatis akan di turunkan
pada level di bawahnya.
Generalisasi
merupakan proses desain bottom-up dengan
mengkombinasikan jumlah himpunan entitas yang digunakan secara bersama sama.
Spesialisasi dan generalisasi sama sama digambarkan dengan notasi IS A,
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 adalah enkapsulasi
dari entitas entitas yang berelasi (*n-n). Pada umumnya terbentuk dari
kardinalitas relasi banyak ke banyak. Didalam konsep agregasi terdapat istilah
enkapsulasi relasi dari kedua entitas. Enkapsulasi di perlukan karena kedua
himpunan entitas yang ber-relasi tersebut merupakan 1 kesatuan yang tidak bisa
di pisah. Notasi agregasi di gambarkan dengan gambar persegi panjang yang
membungkus himpunan entitas yang saling ber-relasi.
Gambar di atas menunjukkan relasi
dosen mengajar sebuah mata kuliah dan mahasiswa mengambil mata kuliah yang
diajarkan oleh dosen tertentu. Agregasi di perlukan dikarenakan tidak di
mungkinkan mahasiwa untuk mengambil mata kuliah tanpa adanya dosen yang
bersedia untuk mengajar mata kuliah tersebut. Dalam kasus di atas menekankan
bahwa himpunan entitas dosen harus ber-relasi terlebih dahulu dengan himpunan
entitas mata kuliah, kemudian relasinya di pandang sebagai 1 entitas yang
ber-relasi dengan himpunan entitas mahasiwa lewat relasi mengambil. Primary
key dari kedua himpunan entitas dosen dan mata kuliah akan secara implisit
masuk ke relasi mengajar dengan di tambah 2 atribut deskriptif (* semester dan
thn_ajaran). Relasi tersebut di anggap sebagai 1 entitas seperti gambar di
bawah ini.
3.4 Ringkasan notasi simbol di ER
4.NORMALISASI
4.1 Definisi Normalisasi
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 (E.F. Codd,
1970).
4.2 Tujuan Normalisasi
Pada dasarnya
normalisasi dilakukan untuk memperbaiki desain tabel yang kurang baik sehingga
penyimpanan data menjadi lebih efisien dan bebas anomali data. Untuk
memperjelas pemahaman tentang proses normalisasi, perhatikan diagram berikut:
Gambar
4-1 Diagram Normalisasi
Intinya, normalisasi dilakukan
terhadap desain tabel yang sudah ada dengan tujuan untuk meminimalkan
redundansi (pengulangan) data dan menjamin integritas data dengan cara
menghidari 3 Anomali Data: Update, Insertion dan Deletion Anomaly.
4.3 Bentuk Normal dan
Langkah-Langkah Normalisasi
Bentuk Normal adalah
sekumpulan kriteria yang harus dipenuhi oleh sebuah desain tabel untuk mencapai
tingkat/level bentuk normal tertentu. Parameter yang biasanya digunakan dalam
menentukan kriteria bentuk normal adalah Functional dependency & The
Three Keys.
4.3.1
Bentuk Normal Pertama (1st Normal Form)
Bentuk normal pertama
atau First Normal Form (1st NF) adalah bentuk normal yang memiliki level
terendah.
Kriteria 1st NF:
• Tidak ada atribut (kolom) pada tabel yang bersifat multi-value
Sebuah atribut
disebut bersifat multivalue jika dalam sebuah baris data pada kolom
tersbut terdapat lebih dari satu nilai. Misalnya kolom telepon yang berisi
‘0813xx, 022xxx’ dan seterusnya.
• Tidak memiliki lebih dari satu atribut dengn domain yang sama
Sebuah
tabel dikatakan memiliki lebih dari satu atribut dengan domain yang sama jika
pada tabel tersebut terdapat lebih dari satu kolom yang digunakan untuk
menyimpan data yang jenisnya sama. Misalnya kolom telepon1, telepon2,
telepon3 dan seterusnya.
4.3.2 Bentuk Normal
Ke Dua (2nd Normal Form)
Kriteria 2nd NF:
• Memenuhi 1st NF
Desain tabel yang tidak memenuhi syarat
1st NF sudah pasti tidak akan memenuhi syarat 2nd NF
• Tidak ada Partial Functional
dependency
Partial Functional dependency terjadi bila (B,C)
adalah candidate key dan B à A
Bentuk 2NF-nya
didapat dengan teknik berikut ini:
Pada bentuk 1NF-nya, terlihat bahwa kolom NIM merupakan PrimaryKey.
NIM -> Nama, Dosen Wali. Artinya adalah bahwa atribut Nama dan Dosen Wali
bergantung pada NIM.
Tetapi NIM <> Kode MataKuliah. Artinya adalah bahwa atribut Kode_MataKuliah tidak tergantung pada NIM.
Sehingga, bentuk 2NF-nya terbagi atas 2 table:
Pada bentuk 1NF-nya, terlihat bahwa kolom NIM merupakan PrimaryKey.
NIM -> Nama, Dosen Wali. Artinya adalah bahwa atribut Nama dan Dosen Wali
bergantung pada NIM.
Tetapi NIM <> Kode MataKuliah. Artinya adalah bahwa atribut Kode_MataKuliah tidak tergantung pada NIM.
Sehingga, bentuk 2NF-nya terbagi atas 2 table:
Table1
Table 2
4.4.3 Bentuk Normal
Ke Tiga (3rd Normal Form)
Umumnya jika sebuah
tabel telah memenuhi syarat bentuk normal ke tiga (3rd NF) maka tabel tersebut
sudah dianggap ‘cukup normal’. Bentuk normal ke 3 adalah bentuk normal yang
biasanya menjadi syarat minimum bagi sebuah desan tabel walaupun akan
lebih baik jika juga memenuhi BCNF.
Kriteria 3rd NF:
• Memenuhi 2nd NF
Desain tabel yang tidak memenuhi syarat
2nd NF sudah pasti tidak akan memenuhi syarat 3rd NF
• Tidak ada Transitive Functional
dependency
Transitive functional dependency terjadi bila AàB dan BàC
1NF:
Bentuk 2NF:
Table 1:
Table
2:
Table
3:
di Table1, atribut nonkey(Nilai dan Bobot)
masih memiliki ketergantungan fungsional. Maka, untuk memenuhi bentuk 3NF,
Table1 harus dipecah lagi menjadi:
4.5.4 Bentuk Normal
Boyce Codd (BC Normal Form)
Boyce Codd Normal
Form atau
bentuk normal Boyce-Codd adalah bentuk normal yang levelnya di atas 3rd NF.
Kriteria BCNF:
• Memenuhi 3rd NF
Desain tabel yang tidak memenuhi syarat
3rd NF sudah pasti tidak akan memenuhi syarat BCNF
• Untuk semua FD yang
terdapat di tabel, ruas kiri dari FD tersebut adalah super key
Jika ada satu saja FD
pada tabel dimana ruas kirinya bukan super key maka desain tabel
tersebut belum memenuhi syarat BCNF. Solusinya adalah dengan melakukan
dekomposisi tabel dan tetap mempertahankan konsistensi data seperti beberapa
contoh pada sub bab sebelumnya
Jarang ada kasus dimana sebuah tabel
memenuhi 3rd NF tapi tidak memenuhi BCNF. Umumnya sebuah tabel dikategorikan
sudah ‘cukup normal’ jika sudah memenuhi kriteria BCNF. Jika tidak memungkinkan
untuk memenuhi kriteria BCNF, maka 3rd NF juga sudah dianggap cukup memadai.
4.5.5 Bentuk-Bentuk
Normal Lainnya
Selain bentuk-bentuk normal yang sudah
diperkenalkan pada beberapa sub bab sebelumnya, masih ada beberapa
bentuk-bentuk normal lain. Beberapa diantaranya adalah 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.6 Denormalisasi
Denormalisasi adalah
proses menggandakan data secara sengaja (sehingga menyebabkan redundansi data)
untuk meningkatkan performa database, untuk meningkatkan kecepatan akses
data atau memperkecil query cost.
Yang perlu diingat tentang denormalisasi adalah bahwa
denormalisasi tidak sama dengan tidak melakukan normalisasi.
Denormalisasi dilakukan setelah tabel dalam kondisi ‘cukup normal’ (mencapai
level bentuk normal yang dikehendaki).
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
proses-proses 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.
Akhirnyaaa selesai juga :D semoga bermanfaat ;)
Refrensi :
-Diktat Basis Data Bapak Budi Laksono Putro, S.Si, MT (budi.staf.upi.edu)
-Computer Science at Indonesia University of Education (cs.upi.edu)
-Computer Science at Indonesia University of Education (cs.upi.edu)
-komparkompor.blogspot.com/p/normalisasi-1nf-2nf-3nf.html
Tidak ada komentar:
Posting Komentar