materi kuliah sistem basis data

advertisement
A. 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.
Basis data sendiri dapat di definisikan dalam sejumlah sudut pandang seperti :
1. himpunan kelompok data / arsip yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat
dimanfaatkan kembali dengan cepat & mudah.
2. Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan/
penumpukan (redundansi), untuk memenuhi berbagai kebutuhan.
3. Kumpulan file/ tabel /arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronis.
MAP
lemari Arsip
FILE
Disk
Basis data
Basis data dan lemari arsip sesungguhnya memiliki prinsip kerja dan tujuan yang sama. Prinsip utamanya adalah
pengaturan data/arsip. Dan tujuan utamanya adalah kemudahan dan kecepatan dalam pengambilan kembali data/
arsip. Perbedaannya hanya terletak pada media penyimpanan yang digunakan . jika lemari arsip menggunakan lemari
sebagai media penyimpanannya, maka basisdata mnenggunakan media penyimpanan elektronis seperti disk (disket,
harddisk).
Yang perlu diingat adalah bahwa tidak semua bentuk penyimpanan data secara elektronis bisa disebut basis data. Yang
sangat ditonjolkan dalam basisdata adalah pengaturan/pemilaha/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)
Dgn memanfaatkan basis data, memungkinkan kita untuk dapat menyimpan data atau melakukan perubahan/
manipulasi terhadap data atau menampilkan kembali data tersebut secara lebih cepat & 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.
Alasan mengapa mempelajari basisdata :
- perpindahan dari komputasi ke informasi
- himpunan elemen data semakin banyak dan beragam
o perpustakaan digital. Video interaktif
o kebutuhan untuk memperluas DBMS
- DBMS mencakup bidang ilmu lain
o System operasi, bahasa pemrograman, teori komputasi, AI, logika, multimedia.
Operasi dasar pembuatan Basis data :
 Pembuatan Basis Data (Create Database)
Yang identik dengan pembuatan lemari arsip yang baru.
 Penghapusan Basis Data (Drop Database)
Yang identik dengan perusakan lemari arsip (sekaligus beserta isinya, jika ada)
 Pembuatan File/Table baru ke suatu basis data (Create Table)
Yang identik dengan penambahan map arsip baru ke sebuah lemari arsip yang telah ada.





Penghapusan File/Table dari suatu basis data (Drop Table)
Yang identik dengan perusakan map arsip lama yang ada di sebuah lemari arsip.
Penambahan data baru ke suatu file/table di sebuah basis data (insert)
Identik dengan penambahan lembaran arsip baru kesebuah map arsip.
Pengambilan data dari sebuah file/table (Retrieve/Search)
Identik dengan pencarian lembaran arsip dari sebuah map arsip.
Pengubahan data dari sebuah file/table (Update)
Identik dengan perbaikan isi lembaran arsip yang ada di sebuah map arsip.
Penghapusan data dari sebuah file/table (Delete)
Identik dengan penghapusan sebuah lembaran arsip yang ada di sebuah map arsip.
B. Hirarki Data
Berdasarkan tingkat kompleksitas nilai data, tingkatan data dapat disusun kedalam sebuah hirarki, mulai dari yang paling
sederhana hingga yang paling komplek.
1. basis data, merupakan sekumpulan dari bermacam-macam tipe record yang memiliki
Sistem Basis Data
hubungan antar record.
2. berkas/file, merupakan sekumpulan rekaman data yang berkaitan denngan suatu
Basis Data
objek.
3. record , merupakan sekumpulan field/atribut/data item yang saling berhubungan
File
terhadap obyek tertentu
- fixed length record, semua field dalam record memiliki ukuran yang tetap.
Record
- Variabel length record, field-field dalam record dapat memiliki ukuran berbeda
(metode penandaan yang digunakan adalah : end of record marker, indikator
panjang, dan tabel posisi record)
Field
4. field/atribut/data item, merupakan unit terkecil yang disebut data,yang tidak dapat
dipecah lagi menjadi unit lain yang bermakna.
byte
- fixed length field, memiliki ukuran yang tetap.
- variabel length field, field-field dalam record dapat memiliki ukuran berbeda.
5. byte, adalah bagian terkecil yang dialamatkan dalam memori.
Bit
byte mrupakan sekumpulan bit yang secara konvensional terdiri atas kombinasi
delapan bit yang menyatakan sebuah karakter dalam memori (I byte= I karakter)
6. bit, adalah sistem binner yang terdiri atas dua macam nilai, yaitu 0 dan 1. sistem binner merupakan dasar yang
dapat digunakan untuk komunikasi antara manusia dan mesin, yang merupakan serangkaian komponen elektronik
dan hanya dapat membedakan 2 macam keadaan, yaitu ada tegangan dan tidak ada tegangan yang masuk ke
rangkaian tersebut.
C. Konsep DBMS (database management system)
Database Management System (DBMS) merupakan paket program (Software) yang dibuat agar memudahkan dan
mengefisienkan pemasukan, pengeditan, penghapusan dan pengambilan informasi terhadap database.
Software yang tergolong kedalam DBMS antara lain, Microsoft SQL, MySQL, Oracle, MS. Access, dan lain-lain
Komponen utama DBMS :
1. perangkat keras
berupa komputer dan bagian-bagian didalamnya, seperti prosesor, memori & harddisk. Komponen inilah yang
melakukan pemrosesan dan juga untuk menyimpan basis data.
2. basisdata
sebuah DBMS dapat memiliki beberapa basisdata, setiap basisdata dapat berisi sejumlah obyek basisdata
(file,tabel,indeks dsb). Disamping berisi data,setiap basisdata juga menyimpan definisi struktur (baik untuk basisdata
maupun obyek-obyeknya secara detail).
3. perangkat lunak
perangkat lunak ini terdiri dari sistem operasi dan perangkat lunak/program pengelola basisdata. Perangkat lunak
inilah yang akan menentukan bagaimana data diorganisasi,disimpan, diubah dan diambil kembali. Ia juga
menerapkan mekanisme pengamanan data, pemakaian data secara bersama, pemaksaan keakuratan/konsistensi
data, dsb.
Contoh perangkat lunak DBMS : MS access, SQL Server, Oracle dsb.
4. pengguna/user
pengguna dapat digolongkan menjadi 3 :
 pengguna akhir / end user.
Dapat dibagi menjadi 2 :
- pengguna aplikasi : adalah orang yang mengoperasikan program aplikasi yang dibuat oleh
pemrogram aplikasi.
- pengguna interaktif : adalah orang yg dpt memberikan perintah-perintah pada antar muka
basisdata, misalnya SELECT, INSERT dsb.
 pemrogram aplikasi
adalah orang yang membuat program aplikasi yang menggunakan basisdata.
 administrator database / DBS (database administrator)
adalah orang yang bertanggungjawab terhadap pengelolaan basisdata.
Tugas DBA :
- mendefinisikan basisdata
- menetukan isi basisdata
- menentukan sekuritas basisdata
D. Pemanfaaatan Ilmu Basis Data
Bidang Fungsional :
 Kepegawaian
 Pergudangan (inventory)
 Akuntansi
 Reservasi
 Layanan Pelanggan
Bentuk Perusahan :
 Perbankan
 Rumah Sakit
 Produsen Barang
 Sekolah
 Telekomunikasi
E. Abstraksi Data
Salah satu tujuan dari DBMS adalah untuk menyediakan fasilitas/antarmuka (interface) kepada user.untuk itu system
tersebut akan menyembunyikan detail tentang bagaimana data disimpan dan dipelihara, sehingga data yang terlihatoleh
user sebenarnya berbeda dengan yang tersimpan secara fisik.
Abstraksi data merupakan tingkatan-tingkatan pengguna dalam memandang bagaimana sebenarnya data diolah dalam
sebuah sistem database sehingga menyerupai kondisi yang sebenarnya dihadapi oleh pengguna sehari-hari.. Sebuah
DBMS seringkali menyembunyikan detail tentang bagaimana sebuah data disimpan dan dipelihara (diolah) dalam
sebuah sistem database, dengan tujuan untuk memudahkan pengguna dalam menggunakan DBMS tersebut. Karena itu
seringkali data yang terlihat oleh pemakai sebelumnya berbeda dengan yang tersimpan secara fisik.
Terdapat 3 level abstraksi :
1. Level Fisik (Physical Level)
Lapis fisik merupakan lapis terendah, lapis ini menjelaskan bagaimana (how) data sesungguhnya disimpan. Pada
lapis inilah struktur data dijabarkan secara rinci.
2. Level Logik / Konseptual (Conceptual Level)
Lapis konseptual lebih tinggi dari lapis fisik. Lapis ini menjabarkan data apa (what) saja yang sesungguhnya
disimpan pada basisdata, dan juga menjabarkan hubungan-hubungan antardata secara keseluruhan. Seorang
pengguna dalam level ini dapat mengetahui bahwa data mahasiswa disimpan pada tabel mahasiswa, tabel krs, tabel
transkrip dan lain sebagainya. Level ini biasa dipakai oleh DBA.
3. Level Penampakan/pandangan (View Level)
Lapis pandangan merupakan lapis tertinggi pada abstraksi data. Pada lapis ini pengguna hanya mengenal struktur
data yang sederhana, yang berorientasi pada kebutuhan pengguna. Data yang dikenal oleh masing-masing
pengguna bisa berbeda-beda dan barangkali hanya mencakup sebagian dari basis data. Misalnya: Bagian keuangan
hanya membutuhkan data keuangan, jadi yang digambarkan hanya pandangan terhadap data keuangan saja, begitu
juga dengan bagian akuntansi, hanya membutuhkan data akuntansi saja. Jadi tidak semua pengguna database
membutuhkan seluruh informasi yang terdapat dalam database tersebut.
Sebagai gambaran , misalnya terdapat struktur data bertipe record seperti berikut :
Pegawai = RECORD
Nama
Alamat
Bagian
Gaji
End:
:
:
:
:
STRING;
STRING;
STRING;
LongInt;
Pada contoh ini record pegawai berisi 4 buah field (nama, alamat, bagian, gaji ). Setiap field memiliki nama, dan setiap
nama memiliki tipe data.
Pada level fisik, pegawai dapat dijabarkan sebagai blok data yang terletak pada lokasi berurutan (satuan byte). Pada
lapis konseptual masing-masing record dijabarkan dengan definisi tipe data . pada lapis view, user tertentu hana boleh
mengakses data tertentu, contohnya, seorang yang menangani penggajian berhak mengetahui gaji seseorang bahkan
mengubahnya, tetapi orang yang bekerja di bagian lain tentu tidak boleh melihatnya.
F. Model Basis Data
Model database adalah suatu konsep yang terintegrasi dalam menggambarkan hubungan (relationships) antar data dan
batasan-batasan (constraint) data dalam suatu sistem database. Model data yang paling umum, berdasarkan pada
bagaimana hubungan antar record dalam database (Record Based Data Models), terdapat tiga jenis,
yaitu :
a. Model Database Hirarki (Hierarchical Database Model)
Model hirarkis biasa disebut model pohon, karena menyerupai pohon yang dibalik. Model ini menggunakan pola
hubungan orangtua-anak
Dosen
Siti Nurbaya
Pengantar
Basis Data
Rudi
Asti
Dosen
Ashadi
Pemrograman
C
Dina
Dina
Edi
Matematika I
Ita
Edi
b. Model Database Jaringan (Network Database Model)
Dosen
Siti Nurbaya
Pengantar
Basis Data
Rudi
Asti
Dosen
Ashadi
Pemrograman
C
Dina
Ed
i
Matematika I
Ita
c. Model Database Relasi (Relational Database Model)
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 hirarki dan jaringan merupakan model database yang tidak banyak lagi dipakai saat ini, karena adanya
berbagai kelemahan dan hanya cocok untuk struktur hirarki dan jaringan saja. Artinya tidak mengakomodir untuk
berbagai macam jenis persoalan dalam suatu sistem database.
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 :
• 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)
Di lingkungan PC, produk-produk berbasis relasional yang cukup terkenal antara lain adalah :
1. Keluarga R:Base (Microrim Corp) antara lain berupa R:Base 5000
2. Keluarga dBase (Ashton-Tate, sekarang bagian dari Borland International), antara lain dbase III Plus, dBase IV, serta
Visual dBase
3. Microsoft SQL ( Microsoft Corporation)
4. Visual FoxPro (Microsoft Corporation)
MACAM-MACAM PERINTAH DATA BASE
1. Bahasa Definisi Data (Data Definition Language/ DDL)
DDL adalah perintah-perintah yang biasa digunakan oleh administrator basis data (DBA) utnuk mendefinisikan skema
ke DBMS. Skema adalah deskripsi lengkap tentang struktur medan, rekaman, dan hubungan data pada basis data
Index merupakan suatu mekanisme yang lazim digunakan pada basis data, yang memungkinkan pengambilan data
dapat dilakukan dengan cepat.
DDL Digunakan untuk mespesifikasikan struktur/skema basis data yang menggambarkan/mewakili desain basis data
secara keseluruhan.
Hasil kompilasi perintah DDL adalah kamus data (File yang berisi metadata (data yang mendeskripsikan data
sesungguhnya).
Struktur penyimpan dan metode akses yang digunakan oleh sistem basis data disebut dengan data storage and
definition language.
2. Bahasa Manipulasi Data (Data Manipulation laguage/ DML)
DML adalah perintah-perintah yang digunakan untuk mengubah, manipulasi dan mengambil data pada basis data.
Tindakan seperti menghapus, mengubah, dan mengambil data menjadi bagian dari DML.
DML pada dasarnya dibagi menjadi dua :
- Prosedural, yang menuntut pengguna menentukan data apa saja yang diperlukan dan bagaimana cara
mendapatkannya.
- Nonprosedural, yang menuntut pengguna menentukan data apa saja yang diperlukan, tetapi tidak perlu
menyebutkan cara mendapatkannya.
3. DQL ( Data Query Language)
Query sesungguhnya berarti pertanyaan atau permintaan. Istilah ini tetap dipertahankan dalam bentuk asli, karena
telah populer di kalangan pengguna DBMS di Indonesia
G. Model Entity-Relationship (ER)
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]. Sejak itu, telah memperoleh banyak perhatian dan perluasan.
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:
a. Entitas (entity), Entitas memodelkan objek-objek yang berada diperusahaan/lingkungan.
b. Relationship. Relationship memodelkan koneksi/hubungan di antara entitas-entitas.
c. Atribut-atribut (properi-properti), memodelkan properti-properti dari entitas dan relationship.
d. Konstrain-konstrain (batasan-batasan) integritas, konstrain-konstrain ketentuan validitas.
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.
Seorang pasien, misalnya akan dimasukkan dalam himpunan entitas pasien. Sedang seorang dokter akan ditempatkan
dalam himpunan entitas dokter.
Dalam berbagai pembahasan/literature, penyebutan himpunan entitas (yang kurang praktis) ini seringkali digantikan
dengan sebutan entitas saja.
Karena itu sering ditemui, penggunaan istilah entitas (entity) di sebuah literature sebenarnya menunjuk pada himpunan
entitas.
Kunci Entitas
Sebagaimana model relasional, adalah penting dan berguna untuk memasukkan kunci yang diasosiasikan dengan
himpunan entitas. Kunci pada himpunan entitas S, adalah himpunan atribut A. Sehingga tidak ada dua entitas di S yang
mempunyai nilai sama untuk tiap atribut di A dan tidak ada subset di A yang dapat menjadi kunci di S, dengan demikian
kunci mempunyai property minimal.
Atribut (Atributes/Properties)
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.
Relasi (Relationship) dan Himpunan Relasi (Relationship Sets)
Relasi menunjukkan adanya hubungan di antara sejumlah entitas yang berasal dari himpunan entitas yang berbeda.
Misalnya, entitas seorang mahasiwa dengan
nim = ‘980001’ dan
nama_mhs = ‘Ali Akbar’ (yang ada di himpunan entitas Mahasiswa)
mempunyai relasi dengan entitas sebuah mata kuliah dengan
kode_kul=’IF-110’ dan
nama_kul=’Struktur Data’.
Relasi diantara kedua entitas tadi mengandung arti bahwa mahasiswa tersebut sedang mengambil/mempelajari mata
kuliah tersebut di sebuah perguruan tinggi yang ditinjau.
Kumpulan semua relasi diantara entitas-entitas yang terdapat pada himpunan entitas-himpuan entitas tersebut
membentuk himpunan relasi (relationship sets).
Sebagaimana istilah himpunan entitas yang banyak sekali disingkat menjadi entitas, istilah himpunan relasi jarang sekali
digunakan dan lebih sering disingkat dengan istilah relasi saja.
Kardinalitas/derajat Relasi
Kardinalitas Relasi menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas
yang lain. Kardinalitas relasi merujuk kepada hubungan maksimum yang terjadi dari himpunan entitas yang satu ke
himpunan entitas yang lain dan begitu juga sebaliknya.
Kardinalitas di antara dua himpunan entitas (misalnya A dan B) dapat berupa :
a. Satu ke satu (One to One),
setiap entitas pada himpunan entitas A berhubungan dengan paling banyak dengan satu entitas pada himpunan
entitas begitu juga sebaliknya setiap entitas pada himpunan entitas B berhubungan dengan paling banyak dengan satu
entitas pada himpunan entitas A.
b. Satu ke Banyak (one to many),
setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B,
tetapi tidak sebaliknya, dimana setiap entitas pada himpunan entitas B berhubungan dengan paling banyak dengan
satu entitas pada himpunan entitas A.
c. Banyak ke Satu (Many to One),
setiap entitas pada himpunan entitas A berhubungan dengan paling banyak dengan satu entitas pada himpunan
entitas B, tetapi tidak sebaliknya, dimana setiap entitas pada himpunan entitas A berhubungan dengan paling banyak
satu entitas pada himpunan entitas B.
d. Banyak ke Banyak (Many to Many)
setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B,
demikian juga sebaliknya, di mana setiap entitas pada himpunan entitas B dapat berhubungan dengan banyak entitas
pada himpunan entitas A.
Diagram Entity-Relationship (ER)
Penggambaran Model ER secara sistematis dilakukan melalui diagram ER. Notasi-notasi simbolik di dalam Diagram ER
yang dapat digunakan adalah:
1. Persegi panjang, menyatakan Himpunan Entitas.
2. Lingkaran/Elips, menyatakan atribut (Atribut yang berfungsi sebagai key digaris bawahi).
3. Belah ketupat, menyatakan Himpunan Relasi.
4. Garis, sebagai penghubung antara Himpunan Relasi dengan Himpunan Entitas dan Himpunan Entitas dengan
atributnya.
5. Kardinalitas Relasi dapat dinyatakan dengan banyaknya garis cabang atau dengan pemakaian angka (1 dan 1
untuk relasi one to one, 1 dan N untuk relasi one to many atau N dan N untuk relasi many to many).
Contoh diagram ER :
Tahap Pembuatan Diagram ER
Diagram ER selalu dibuat secara bertahap. Paling tidak ada dua kelompok penahapan yang biasa ditempuh di dalam
pembuatan diagram ER, yaitu :
a. Tahap pembuatan Diagram ER awal (preliminary design). Yaitu :
-
Mengidentifikasi dan menetapkan seluruh entity yang terlibat dalam sistem database tersebut.
Menentukan attribute-attribute atau field dari masing-masing entity beserta kunci (key)-nya.
Menentukan attribute dari suatu entitas sangat menentukan baik atau tidaknya sistem database yang
dirancang, karena attribute ini sangat menentukan nantinya dalam proses relasi. Attribute merupakan ciri khas
yang melekat pada suatu entity, misalnya attribute pada mahasiswa dapat berupa nobp, nama, tempat lahir,
tanggal lahir, alamat, nama orang tua, pekerjaan orang tua dan lain-lain. Dari sekian banyak kemungkinan
attribute yang ada pada entity mahasiswa, kita dapat menggunakan hanya yang perlu saja. Setelah
menentukan attributenya selanjutnya adalah menentukan field kunci. Field kunci adalah penanda attribute
tersebut sehingga bisa digunakan untuk relasi nantinya dan field kunci ini harus bersifat unik. Misalnya pada
entity mahasiswa, attribute nobp bisa dijadikan field kunci, karena bersifat unik dan tidak ada mahasiswa yang
mempunyai nobp sama.
-
Mengidentifkasi dan menetapkan seluruh himpunan relasi diantara himpunan-himpunan entity yang ada beserta
kunci tamu (foreign key)- nya.
Setelah menentukan entity dan attribute beserta field kuncinya, maka selanjutnya adalah menentukan entity
yang terbentuk akibat adanya relasi antar entity. Misalnya antara entity mahasiswa dengan entity dosen, terjadi
suatu hubungan proses mengajar, maka proses mengajar ini merupakan entity baru. Entity mengajar ini harus
kita tentukan juga attribute yang melekat padanya beserta kunci tamu (foreign key). Kunci tamu adalah field
kunci utama pada tabel lain, dan field tersebut digunakan juga pada tabel yang satu lagi. Misalnya nobp adalah
field kunci dari entity mahasiswa, pada entity mengajar terdapat juga attribute NoBP, maka keberadaan
attribute nobp pada entity mengajar disebut sebagai kunci tamu. Proses menentukan hubungan antar entity
juga sangat menentukan kualitas system database yang dirancang.
-
-
Menentukan derajat relasi untuk setiap himpunan relasi.
Setelah semua entity dan attribute yang dibutuhkan terbentuk, maka selanjutnya adalah menentukan derajat
relasi antar entity tersebut, apakah satu kesatu, satu ke banyak atau sebaliknya, atau banyak ke banyak.
Berhati-hatilah dalam menentukan derajat relasi ini, karena nantinya akan berhubungan dengan proses query
terhadap data
Melengkapi himpunan entitas dan himpunan relasi dengan atribut-atribut deskriptif (non key).
Jenis-Jenis Kunci (Key)
• Candidat Key
Sebuah attribute atau lebih yang secara unit mengidentifikasi sebuat record, disebut candidate key. Attribute ini
mempunyai nilai yang unik pada hampir setiap recordnya. Fungsi dari candidate key ini adalah sebagai calon
primary key.
Contoh candidate-key :
Candidate Key
ID_Cus
112233
112231
112241
Name
Tim
Kate
Tyson
NoOfPay
890
891
895
Amount
9000
8000
10000
• Primary Key
Salah satu atrribut dari candidat key dapat dipilih menjadi primary key dengan 3 kriteria sbb :



Key tersebut lebih natural untuk dijadikan acuan
Key tersebut lebih sederhana
Key tersebut cukup uniqe
• Foreign Key
Jika sebuah primary key terhubungan ke table/entity lain, maka keberadaan primary key pada entity tersebut di
sebut sebagai foreign key. Misal : Primary Key KodeDosen dari entity Dosen digunakan juga pada field entity
KRS, maka keberadaan field KodeDosen pada entity KRS disebut sebagai foreign key.
• Alternate Key
Setiap atribut dari candidate key yang tidak terpilih sebagai primary key akan dinamakan alternate key. Pada
contoh sebelumnya bila untuk primary key dipilih ID_Cus maka alternate key nya adalah No.of Pay
.
Primary Key
Foreign Key
KODE
MK
SKS KDDosen
TEL 100
TEL 200
TEL 210
Fisika
Isyarat
T.Kendali
3
2
2
D-101
D-109
D-101
KD-Dosen Nama_Dosen
D-100
Badu,S.T
D-101
D-109
Ir.Thomas
Harry,S.T,M.T
Primary Key
b. Tahap optimasi Diagram ER (final design).
H. Normalisasi
Proses normalisasi adalah proses untuk memperoleh properti-properti skema relasi yang bagus menjadi bentuk normal
lebih tinggi sehingga syarat-syarat dibawah ini terpenuhi:
a. Mengoptimalisasi redudansi (pengulangan data yang tidak perlu). Redudansi tidak bisa dihilangkan sama sekali
karena berguna untuk integritas referensial, tetapi redudansi bisa dioptimalisasi. Untuk jumlah data yang tidak terlalu
banyak mungkin tidak terlalu berpengaruh dalam hal penggunaan harddisk. Tapi bayangkan jika ada ribuan, bahkan
jutaan redudansi, mungkin akan sangat berpengaruh pada penggunaan ruang.
b. Menghilangkan anomali. Anomali pada dasarnya adalah ketidak-konsistenan (inkonsistensi). Misalkan ada
pergantian nama dari Bank Perkasa menjadi Bank Perkasa Utama sebanyak 4 record. Jika pergantian nama hanya
dilakukan pada salah satu record saja, maka terjadi ketidak-konsistenan yaitu satu nomor bank berrelasi dengan 2
nama bank yang berbeda.
Dekomposisi tabel dapat mengurangi redudansi yang ada dan menghilangkan anomali.
Perancangan melalui proses normalisasi mempunyai keuntungan-keuntungan sebagai berikut :
a. Meminimalkan ukuran penyimpanan yang diperlukan untuk penyimpanan data.
b. Meminimalkan resiko inkonsistensi data pada basis data.
c. Meminimalkan kemungkinan anomaly pembaruan.
d. Memaksimalkan stabilitas struktur data.
Bentuk Normal
Tujuan proses normalisasi adalah mengkonversi relasi menjadi bentuk normal lebih tinggi. Terdapat beragam tingkat
bentuk normal, yaitu :
a. Bentuk normal pertama (1NF)
b. Bentuk normal kedua (2NF)
c. Bentuk normal ketiga (3NF)
d. Bentuk normal Boyce-Codd (BCNF)
e. Bentuk normal keempat (4NF)
f. Bentuk normal kelima (5NF)
Codd mendefinisikan bentuk normal pertama, kedua dan ketiga di makalah (Codd, 1970). Bentuk normal ketiga
kemudian diperbaiki sehingga mempunyai bentuk normal yang lebih kuat yaitu BCNF (Codd, 1974). Fagin
memperkenalkan bentuk normal keempat (Fagin, 1977), kemudian Fagin juga memperkenalkan bentuk normal kelima
(Fagin, 1979).
Bentuk normal pertama untuk menghilangkan atribut bernilai jamak. Bentuk normal kedua untuk menghilangkan
kebergantungan parsial. Bentuk normal ketiga untuk menghilangkan kebergantungan transitif. Bentuk normal BoyceCodd untuk menghilangkan anomaly tersisa disebabkan kebergantungan fungsional. Bentuk normal keempat untuk
menghilangkan kebergantungan nilai jamak. Bentuk normal kelima untuk menghilangkan anomaly tersisa.
Tiga bentuk normal pertama berkaitan dengan kebergantungan fungsional. Sementara itu bentuk keempat dan kelima
berkaitan dengan redudansi yang disebabkan kebergantungan banyak nilai (multi-valued dependencies).
Bentuk Normal Pertama
Bentuk normal pertama adalah ekivalen dengan definisi model relasional. Relasi adalah bentuk normal pertama (1NF)
jika semua nilai atributnya adalah sederhana (bukan komposit).
Syarat :
o Tidak ada set atribut yang berulang atau bernilai ganda.
o Telah ditentukannya primary key untuk tabel atau relasi.
o Tiap atribut hanya memiliki satu pengertian.
o Tiap atribut yang dapat memiiki banyak nilai sebenarnya menggambarkan entitas atau relasi yang terpisah.
Bentuk Normal Kedua
Syarat :
o Bentuk data telah memenuhi kriteria bentuk normal ke satu.
o Atribut bukan kunci(non-key attribute) haruslah memiliki ketergantungan fungsional sepenuhnya pada
primary key
Relasi pada bentuk normal kedua harus tidak menyimpan fakta-fakta mengenai bagian kunci relasi. Bentuk normal kedua
menghilangkan kebergantungan parsial dan masih memiliki anomali-anomali yang secara praktis tidak dapat diterima.
Bentuk Normal Ketiga
Syarat :
o Bentuk data telah memenuhi kriteria bentuk normal ke dua.
o 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.
Bentuk normal ketiga menghilangkan kebergantungan transitif, awalnya bentuk normal ketiga dipikir sebagai bentuk
normal puncak/paling akhir. Namun kemudian dapat ditemukan bentuk normal lebih kuat yaitu bentuk normal BoyceCodd.
Bentuk Normal Boyce-Codd (BCNF)
BCNF memiliki ketentuan yaitu masing-masing atribut utama bergantung fungsional penuh pada masing-masing kunci
dimana kunci tersebut bukan bagiannya. Relasi adalah BCNF (optimal) jika setiap determinan atribut-atribut relasi adalah
kunci relasi. Relasi adalah BCNF (optimal) jika kapanpun fakta-fakta disimpan mengenai beberapa atribut, maka atributatribut ini merupakan satu kunci relasi. BCNF dapat memiliki lebih dari satu kunci. Properti penting BCNF adalah relasi
tidak memiliki informasi yang redundan.
Bentuk Normal Keempat
Relasi dalam bentuk normal keempat (4NF) jika relasi dalam BCNF dan tidak berisi kebergantungan banyak nilai. Untuk
menghilangkan kebergantungan banyak nilai dari satu relasi, kita membagi relasi menjadi dua relasi baru. Masing –
masing relasi berisi dua atribut yang mempunyai hubungan banyak nilai.
Bentuk Normal Kelima
Bentuk normal kelima (5NF) berurusan dengan properti yang disebut join tanpa adanya kehilangan informasi (lossless
join). Bentuk normal kelima (5NF) juga disebut PJNF (projection-join normal form). Kasus-kasus ini sangat jarang muncul
dan sulit untuk dideteksi secara praktis.
Contoh Normalisasi pada beberapa tingkatan.
Diberikan tabel Mahasiswa di bawah ini, akan dilakukan normalisasi sampai bentuk normal ke tiga
Perhatikan bahwa tabel di atas sudah dalam bentuk normal ke Satu(1NF).
Bentuk Normal 2 ( NF2 )
Belum memenuhi kriteria 3NF,
Karena atribut non-key Nilai dan
Bobot masih memiliki ketergantungan fungsional.
Bentuk Normal 3 NF3
Download