Source from :
Cs.upi.edu
Budi.staf.upi.edu
Diktat IK-330 Budi Laksono
Putro MT
1.
PENGENALAN BASIS
DATA
Mengapa
bab pertama kita disini mengenal basis data? Karena untuk mempelajarinya kita
harus mengenal artinya terlebih dahulu. Apa itu Basis dan Data?
·
Basis adalah suatu sistem yang mengolah suatu data
·
Data adalah respresantasi untuk mewakili nilai fakta
dunia nyata.
Setelah
data diolah akan menjadi suatu informasi. Suatu kualitas Informasi dilihat dari
tiga kriteria, yaitu :
·
Benar merepresentasikan dunia nyata, dan
·
Tepat waktu, dan
·
Tepat penggunaan.
Siklus informasi adalah
gambaran umum bagaimana data yang diinput diproses menjadi suatu informasi yang
bermanfaat bagi pengguna
Basis Data seperti lemari
arsip yang memberi kemudahan kepada pengguna untuk mencari sebuah data dengan
mudah. Diilustrasikan seperti gambar 1-2 dibawah ini :
Disini
memberi kemudahan untuk menemukan suatu informasi adalah salah satu tujuan
basis data. Tujuan basis data yang lainnya adalah sebagai berikut :
Memungkinkan untuk menampilkan, memanipulasi data
secara mudah dan lebih cepat .
Dengan mengelompokan sebuah data memungkinkan
memperkecil ruang memori serta mengulangi pengulangan (redudansi) .
Membuat pengkodean data yang unik dan aturan tertentu
(constraint). Sehingga meningkatkan tingkat keakuratan.
Data dapat diakses melalui internet, kapanpun dan
dimanapun.
Kelengkapan data bersifat relatif, tergantung
permintaan pengguna.
1.
Kecepatan
& kemudahan (speed)
2.
Efisiensi
ruang penyimpanan (space)
3.
Keakuratan
(accuracy)
4.
Ketersediaan
(availability)
5.
Kelengkapan
(completeness)
6.
Keamanan
(security)
7.
Kebersamaan
pemakaian (sharability)
Disini kita dapat menentukan tingkat keamanan data
sesuai keinginan maupun sistem
Basis data dikelola dengan aplikasi multi user yang dapat
memenuhi kebutuhan ini.
Setelah itu kita akan
mengetahui perkembangan basis data mulai dari ditemukannya ilmu ini. Pada gambar 1-3 dibawah ini :
Basis Data menggunakan Sistem Basis Data DBMS untuk
mengolah data. Apa itu 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 :
1.
Software program
2.
Supplements operating sistem
3.
Manages data
4.
Queries data and generates reports
5.
Data security
Dan Sistem basis data sendiriadalah 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 sebagai berikut :
1.
Data berdiri sendiri (Data Independence)
2.
Pengaksesan data efisien (Efficient data access)
3.
Integritas data dan keamanan terjamin (Data integrity
and security)
4.
Administrasi data (Data administration)
5.
Dapat diakses bersamaan (Concurrent access )
6.
Recovery saat terjadi kegagalan (Crash recovery)
7.
Mengurangi waktu pembangunan aplikasi (Reduced
application development time)
·
Perangkat keras
·
Sistem operasi
·
Basis data
·
DBMS (Database Management System)
·
Pemakai
·
Aplikasi lain
Tujuan utama dari sistem basis data sendiri adalah untuk
menyediakan fasilitas untuk view data secara abstrak bagi penggunanya. Untuk
mengetahui level suatu sistem basis data dapat menggunakan Abstraksi. Contoh gambar 1-5 berikut :
Berikut ini tiga level abstraksi data:
1.
Level fisik (rendah)
Menunjukkan
bagaimana sesungguhnya data disimpan.
2.
Level lojik (tengah)
Menggambarkan
data apa yang disimpan pada basis data dan hubungan antara data tersebut.
3.
Level view (tinggi)
Yang
hanya menunjukkan sebagian dari basis data.
Basis Data memiliki model, sebagai berikut :
a.
Relational
Model
Direpresentasikan
dalam tabel dua dimensi, tabel tersebut memiliki hubungan yang disebut dengan
relasi. 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). Memiliki kecepatan yang
baik.
c.
Network
Relationship
Dibuat
menggunakan linked list (pointer). Satu
anak dapat memiliki beberapa induk. 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++.
Untuk mudah memahami DBMS, disini kita menggunakan Model
Relasional yang mudah digunakan dan dipahami oleh pengguna. DBMS yang
bermodelkan relasional biasa disebut RDBMS (Relational Data Base Management
System). Model ini sering disebut juga dengan database relasi.
Database dalam model ini
disusun dalam bentuk tabel dua dimensi yang terdiri dari:
·
Baris (record)
·
kolom (field)
·
Pertemuan antara baris dengan kolom disebut item data
(data value)
·
Tabel-tabel yang ada di hubungkan (relationship)
menggunakan field-field kunci (Key field) sehingga dapat meminimalkan duplikasi
data.
·
Karakter
(Characters)
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
Bagian
dari record yang menunjukkan suatu item data yang sejenis, Misalnya : field
nama, file NIM dan lain sebagainya. 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
Kumpulan
data value dari attributee yang berkaitan sehingga dapat menjelaskan sebuah
entity secara lengkap. Misal : Record Entity mahasiswa . Dalam tabel database,
Record disebut juga baris.
·
Table/Entity
Entity
Sesuatu
yang dapat diidentifikasi dari suatu sistem database, bisa berupa objek, orang,
tempat, kejadian atau konsep yang informasinya akan disimpan di database. Disebut
tabel, karena dalam merepresentasikan datanya di atur dalam bentuk baris dan
kolom. Baris mewakili 1 record dan kolom mewakili 1 field.
·
Database
Kumpulan
dari tabel-tabel yang saling berelasi, disusun secara logis, sehingga
menghasilkan informasi yang bernilai guna dalam proses pengambilan
keputusan.
Basis Data mempunyai macam-macam perintah, yaitu sebagai
berikut :
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.
2. Interactive
Data Manipulation Language (DML)
DML
adalah perintah-perintah yang digunakan untuk mengubah, manipulasi dan
mengambil data pada basis 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.
4. Embedded and
Dinamic SQL
DBMS yang memiliki fasilitas ini adalah oracle
dimana oracle dapat me-load class yang ditulis menggunakan bahasa pemrograman
java kedalam database.
5. 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].
Diagram ER Merupakan diagram model konseptual
untuk menggambarkan struktur logis dari basisdata berbasis grafis. Komponen-komponen
utama model ER adalah sebagai berikut :
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.
Entitas diartikan sebagai ‘objek’ didunia nyata yang bisa
dibedakan dengan ‘objek’ yang lain. Notasi entitas digambarkan dengan Persegi
panjang. Setiap entitas mempunyai atribut yang berisi karakteristik yang
mendeskripsikan dari entitas tersebut. Notasi atribut di gambarkan dengan
elips.
Atribut dapat dibedakan sebagai
berikut :
·
Simple dan Composite Atribut Simple
Suatu atribut yang tidak bisa dibagi menjadi bagian yg
lebih kecil lagi. Atribut Composite yaitu suatu atribut yang dapat di bagi
menjadi beberapa bagian
·
Single value dan multivalued Atribut
Single value yaitu suatu atribut yang bisa di isi
paling banyak 1 nilai untuk setiap baris data. Atribut Multivalued yaitu suatu
atribut yang bisa lebih dari 1 nilai yang sejenis untuk setiap baris data
·
Derived attribute
Derived Attribute yaitu suatu atribut yang nilainya
didapatkan dari hasil pengolahan atribut lain.
Relasi diartikan sebagai hubungan yang terjadi diantara
satu entitas dengan entitas yang lainnya. Notasi relasi di gambarkan dengan
belah ketupat.
Derajat himpunan relasi ada 3 macam, yaitu sebagai
berikut :
a.
Unary (Hanya merelasikan 1 entitas)
c.
Ternary (Merelasikan 3 entitas)
Kardinalitas relasi menggambarkan banyaknya jumlah
maksimum entitas dapat berelasi dengan entitas pada himpunan entitas yang lain.
Pada himpunan relasi biner, pemetaan kardinaltias relasi dapat berupa salah
satu dari berikut ini :
Relasi di
atas menggambarkan bahwa untuk setiap entitas di himpunan entitas berpasangandengan
maksimal 1 entitas di himpunan entitas B.
Dari A ke B kardinalitasnya maksimal 1, dan dari B ke A kardinalitasnya
maksimal 1. Oleh karena itu relasi ini berkardinalitas 1 ke 1.
Relasi di
atas menggambarkan bahwa untuk setiap entitas di himpunan entitas A berpasangan
dengan banyak entitas di himpunan entitas B. Dari A ke B kardinalitasnya
maksimal adalah banyak, dan dari B ke A kardinalitasnya maksimal 1. Oleh karena
itu relasi ini berkardinalitas 1 ke banyak.
c.
Banyak ke Banyak
Relasi di
atas menggambarkan bahwa untuk setiap entitas di himpunan entitas A berpasangan
dengan maksimal banyak entitas di himpunan entitas B. Dari A ke B kardinalitasnya maksimal adalah
banyak, dan dari B ke A kardinalitasnya maksimal adalah banyak. Oleh karena itu
relasi ini berkardinalitas banyak ke banyak.
Key adalah satu atau gabungan dari beberapa atribut yang
dapat membedakan semua row dalam relasi secara unik. Macam key dibedakan jadi 3
yaitu super key, candidate key, primary key
3. KONVERSI ER
KE BASIS DATA REALTIONAL
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.
a. 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. 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
b. 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.
Generalisasi merupakan proses desain bottom-up dengan mengkombinasikan jumlah
himpunan entitas yang digunakan secara bersama sama. 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.
c. 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.
d. Ringkasan Notasi simbol ER
e. Skema ER ke Tabel
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)
f. 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 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.
g.
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.
Himpunan entitas kuat di representasikan kedalam tabel dengan kolom sama persis dengan atribut yang sudah di definisikan di diagram ER.
4.
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.
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.
a.
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.
Tujuan dari dinormalisasikannya suatu model database yaitu untuk memperbaiki desain tabel yang kurang baik sehingga penyimpanan data menjadi lebih efisien dan bebas anomali data.
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 dat
·
Untuk
mengurangi kompleksitas
·
Untuk
mempermudah pemodifikasian data
b.
Tahapan
Normalisasi
Tahapan dari normalisasi adalah
sebagai berikut :
·
Menghilangkan
perulangan group
·
Menghilangkan
ketergantungan parsial
·
Menghilangkan
kertergantungan transitif
·
Menghilangkan
anomali fungsional
·
Menghilangkan
kertegantungan multivalue
·
Menghilangkan
anomali yang tersisa
·
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)
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 :
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-value, atribut komposit atau kombinasinya.
( atribut multi-value adalah atribut yang bernilai ganda dan dapat dibagi lagi
.
2.
Mendefinisikan
atribut kunci.
Normalisasi
Kedua
Untuk mencapai bentuk normal kedua, dibutuhkan beberapa persyaratan sebagai berikut :
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 kunci
3. Jika ada ketergantungan parsial maka atribut tersebut harus dipisah pada tabel yang
lain
4.
Perlu ada tabel penghubung ataupun kehadiran foreign
key bagi atribut-atribut yang telah dipisah tadi
Normalisasi
Ketiga
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).
Normalisasi
BCNF
Bentuk Normal Boyce-codd Normal Form
lebih akurat dari 3NF karena memiliki level ke akuratan yang lebih tinggi.
Persyaratan
untuk memenuhi BCNF adalah sebagai berikut :
1.
Telah
memenuhi bentuk normal ketiga ( 3NF )
jika tidak memnuhi 3NF maka tidak akan memenuhi BCNF
jika tidak memnuhi 3NF maka tidak akan memenuhi BCNF
2.
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.
Bentuk-Bentuk
Normal Lainnya
Selain
daripada apa yang di bahas sebelumnya, ada bentuk-bentuk normal Form lainnya
sebagai berikut :
·
Bentuk
Normal ke-4 (4th NF)
·
Bentuk Normal ke-5 (5th NF)
·
Domain/Key
Normal Form (DKNF)
·
Bentuk
Normal ke-6 (6th NF)
Denormalisasi
Denormalisasi merupakan suatu proses untuk menggandakan data secara sengaja (sehingga menyebabkan redundansi atau perulangan data) untuk meningkatkan performa basis data, untuk meningkatkan kecepatan akses data atau memperkecil query cost.
Denormalisasi berbeda dengan normalisasi. Denormalisasi dilakukan setelah tabel dalam kondisi ‘cukup normal’ (mencapai level bentuk normal yang dikehendaki). sedangkan normalisasi dimulai sejak tabel dalam keadaan tidak normal atau belum cukup normal.
Tujuan Denormalisasi :
Denormalisasi merupakan suatu proses untuk menggandakan data secara sengaja (sehingga menyebabkan redundansi atau perulangan data) untuk meningkatkan performa basis data, untuk meningkatkan kecepatan akses data atau memperkecil query cost.
Denormalisasi berbeda dengan normalisasi. Denormalisasi dilakukan setelah tabel dalam kondisi ‘cukup normal’ (mencapai level bentuk normal yang dikehendaki). sedangkan normalisasi dimulai sejak tabel dalam keadaan tidak normal atau belum cukup normal.
Tujuan 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.













Tidak ada komentar:
Posting Komentar