Serializability (Serializabilitas)

advertisement
1 Pendahuluan
 Basis data: sekumpulan data terkait.
 DBMS: pl yang mengelola dan mengendalikan akses terhadap basis data.
 Bagian dari kehidupan sehari-hari:
– belanja di supermarket
– mengambil atau mentransfer uang di ATM
Sistem Berbasis File Tradisional
 Sistem berbasis file: sekumpulan program aplikasi yang memberikan
layanan kepada pengguna, misalnya pembuatan laporan.
 Setiap program mendefinisikan dan mengelola datanya sendiri.
 Keterbatasan:
a. data terpisah dan terisolasi: sulit mengambil data dari dua file atau lebih.
b. duplikasi data:
– waktu, biaya, storage lebih besar
– data tidak konsisten
c. keterikatan data dengan program:
– struktur dan tempat penyimpanan didefinisikan dalam kode aplikasi.
– perubahan struktur data sulit dilakukan, harus memodifikasi program.
– akibatnya program harus dikompilasi dan diuji ulang.
d. format file tidak kompatibel  bergantung pada bahasa pemrograman.
e. informasi yang diberikan sangat kaku, sangat bergantung pada program.
Pendekatan Basis Data
 Basis data: sekumpulan data yang saling berkaitan secara logis (termasuk
deskripsi datanya), dirancang u/ memenuhi kebutuhan sebuah organisasi.
 Deskripsi data (katalog sistem, kamus data atau metadata) adalah data ttg
data, disimpan dl bd, bukan dl program, shg data bebas dari program.
 DBMS (Database Management System): sistem pl yg memungkinkan user
mendefinisikan, membuat, memelihara bd & mengendalikan akses thd bd.
 DBMS memberikan fasilitas sbb:
– Mendefinisikan bd melalui DDL (data definiton language).
– Menambah, mengubah, menghapus dan mengambil data dari bd melalui
DML (data manipulation language).
– Mengendalikan akses terhadap basis data:
- sistem keamanan: mencegah user yg tidak berhak mengakses bd.
- sistem integritas: memelihara konsistensi data.
- sistem pengendalian konkurensi: akses bersama terhadap basis data.
- sistem pengendalian recovery: mengembalikan basis data ke status
konsisten sebelumnya bila terjadi kegagalan pk atau pl.
- katalog: deskripsi data dalam basis data.
– Mekanisme view: memungkinkan user memiliki view bd masing2, memberikan keamanan data, kustomisasi data & konsistensi penyajian data.
Komponen Lingkungan DBMS
 Hardware: PC tunggal, mainframe, jaringan komputer.
 Software: SO, DBMS, program aplikasi.
 Data
Data
– Data operasional.
Hardware Software
Prosedur
SDM
– Metadata.
– Skema: struktur basis data.
 Prosedur, instruksi/aturan yg mencakup perancangan/penggunaan bd:
– Log on ke sistem.
– Menggunakan fasilitas khusus DBMS atau program aplikasi.
– Memulai dan menghentikan sistem.
– Menangani kegagalan hardware maupun software.
– Membuat salinan backup basis data.
– Mengubah struktur tabel, meningkatkan kinerja, dsb.
 SDM: administrator data, perancang bd, pemrogram aplikasi, end user.
Desain Basis Data – Perubahan Paradigma
 Sistem berbasis file: (1) aplikasi, (2) data.
 Pendekatan basis data: (1) data, (2) aplikasi.
Peran dalam Lingkungan Basis Data
 Administrator data & basis data
– Administrator data  mengelola sumber data mencakup perencanaan,
pengembangan, pemeliharaan, kebijakan, prosedur & desain bd scr logis
– Administrator basis data, bertanggung jawab thd realisasi fisik sistem bd,
termasuk desain bd secara fisik & implementasinya, keamanan & kendali
integritas data, pemeliharaan sistem, dan kinerja yg memadai bagi aplikasi
 Perancang basis data
– Perancang basis data logis: mengidentifikasi data, kaitan antar data, batasan
data yg akan disimpan dalam bd  mengerti organisasi data & aturan bisnis
– Perancang basis data fisik: memutuskan bagaimana merealisasikan model
data logis secara fisik
 Analis sistem dan pemrogram aplikasi
– Analis sistem: mengidentifikasi masalah, menganalisis kebutuhan fungsional,
merancang dan menetapkan spesifikasi sistem.
– Membuat progr. aplikasi berdasarkan spesifikasi yg ditetapkan analis sistem
– Program berisi pernyataan yg meminta DBMS melakukan operasi thd bd:
pembacaan, penyaringan, penambahan, perubahan, penghapusan data.
 Pengguna (end-user)
– Pengguna biasa: mengakses bd melalui program aplikasi.
– Pengguna sophisticated: familiar dengan struktur bd dan fasilitas DBMS,
mampu menggunakan SQL & menulis aplikasi untuk kebutuhan sendiri.
Sejarah Sistem Basis Data
 Pendahulu: sistem berbasis file  masih digunakan di area tertentu.
 1960-an, North American Aviation, kontraktor proyek Apollo, mengembangkan pl
GUAM (Generalized Update Access Method)  struktur hierarki.
 Pertengahan 1960-an, IBM bersama NAA mengembangkan GUAM menjadi IMS
(Information Management System)  bd hierarki utama pd mainframe.
 Pertengahan 1960-an, General Electric, dikepalai Charles Bachmann,
mengembangkan IDS (Integrated Data Sore)  sistem bd network.
 1965, pembakuan dg CODASYL (COnference on Data SYstem Language).
 1967, CODASYL dinamai DBTG (Data Base Task Grup).
 1969, laporan draft spesifikasi standar DBTG.
 1971, laporan definitif spesifikasi standar DBTG.
 1970, E.F Codd (IBM Research Laboratory), mengusulkan model relasional
 Akhir 1970-an dan awal 1980-an, muncul produk komersial pertama. Khususnya
proyek System R di IBM’s San Jose Research Laboratory California, sangat
berperan dalam pengembangan:
– SQL (structured query language) yg menjadi bhs standar sistem relasional
– RDBMS komersial selama tahun 1980-an, misalnya DB2, SQL/DS, Oracle
 1976, Chen mempresentasikan model entity-relationship
 1980-an, 1990-an, RDBMS u/ PC: dBase, Paradoks, RBase, FoxPro, Access
 Dua model data ‘baru’: – OODM (Object Oriented Data Model)
– ERDM (Extended Relational Data Model)
Keuntungan Sistem Basis Data













Kendali redundansi data
Konsistensi data
Lebih banyak informasi dari sejumlah data yang sama
Penggunaan data bersama
Meningkatkan integritas data
Meningkatkan keamanan
Mendorong standarisasi
Ekonomis
Meningkatkan kemampuan akses data: SQL, QBE
Meningkatkan produktivitas
Memudahkan pemeliharaan melalui data independence
Meningkatkan konkurensi
Memberikan layanan backup dan recovery
Kerugian Sistem Basis Data




Kompleksitas
Ukuran
Biaya DBMS
Biaya hardware tambahan
 Biaya konversi
 Kinerja
 Dampak kegagalan
2 Lingkungan Basis Data
 Sistem bd memberikan abstraksi view data bagi user dg menyembunyikan
detil bagaimana data disimpan dan dimanipulasi.
 Oki, titik awal desain basis data adalah abstraksi & deskripsi umum
kebutuhan informasi sebuah organisasi
Arsitektur ANSI-SPARC Tiga Level
 1971, DBTG memperkenalkan pendekatan dua level:
(a) system view (schema)
(b) user view (subschema)
 1975, ANSI-SPARC mengusulkan pendekatan tiga level, yaitu:
– level eksternal: persepsi user terhadap data
– level konseptual: pemetaan & independensi antara level eksternal & internal
– level internal: persepsi DBMS dan SO terhadap data
 Arsitektur tiga level diperlukan karena:
– Setiap user mengakses data yg sama, tetapi mempunyai view data berbeda
– User tidak perlu mengetahui detil storage bd secara fisik,
dpl. interaksi user thd bd harus bebas dari pertimbangan storage.
– Adm bd dpt mengubah struktur storage bd tanpa dampak bagi view user.
– Struktur internal bd tidak dipengaruhi oleh perubahan fisik storage.
– Adm bd dapat mengubah struktur global bd (bd konseptual) tanpa dampak
bagi semua user.
Arsitektur ANSI-SPARC Tiga Level
Level eksternal: view user thd. bd,
mendeskripsikan bagian dari basis
data yang relevan bagi user.
– Data berbeda
– Data sama, format berbeda
User 1
User 2
View 1
View 2
Level konseptual: mendeskripsikan data
apa yang disimpan dalam basis data dan
kaitan (relationship) antar data.
– Berisi struktur logis bd keseluruhan:
semua entitas, atribut, relationship
– Batasan data
– Informasi semantik tentang data
– Informasi sekuritas dan integritas
Level internal: representasi basis data
secara fisik di komputer, mendeskripsikan
bagaimana data disimpan dalam basis data.
Merupakan implementasi fisik basis data:
– Struktur data
– Metoda akses
– Membuat indeks
User n
View n
Independensi
data logis
Skema
Konseptual
Independensi
data fisik
Skema
Internal
Basis
data
Skema Basis Data, Instance Basis Data
 Skema basis data: deskripsi bd keseluruhan, jarang berubah
 Disebut juga intension basis data
 Ada tiga skema:
– Skema eksternal (disebut juga subskema) pada level eksternal
– Skema konseptual pada level konseptual,
- mendeskripsikan semua item data dan kaitannya, serta batasan integritas
- hanya ada satu skema konseptual untuk setiap basis data
– Skema internal pada level internal, berisi:
- berisi definisi record tersimpan, field data, indeks
- hanya ada satu skema internal untuk setiap basis data
 Instance basis data: data aktual dalam basis data, sering berubah
 Disebut juga extension basis data
Independensi Data
 Independensi data: level yang lebih tinggi tidak dipengaruhi oleh perubahan
pada level di bawahnya.
 Independensi data logis:
kekebalan skema eksternal terhadap perubahan skema konseptual.
 Independensi data fisik:
kekebalan skema konseptual terhadap perubahan skema internal.
Bahasa Basis Data
DDL (Data Definition Language)
 Bahasa untuk mendefinisikan skema atau memodifikasi skema yang ada.
 Hasilnya: sekumpulan tabel yang disebut kamus data (data dictionary)
 Kamus data (disebut juga katalog, direkori) mengintegrasikan metadata
 Metadata mendeskripsikan objek dalam bd: definisi record, item data, dsb
DML (Data Manipulation Language)
 Bahasa untuk memanipulasi data, yaitu untuk
–
–
–
–
Menyisipkan data baru ke dalam bd
Memodifikasi data dalam bd
Menemukan kembali data dalam bd
Menghapus data dari dalam bd
 Ada dua jenis DML, yaitu:
– DML prosedural: bahasa yang memungkinkan user memerintahkan sistem
secara tepat bagaimana memanipulasi data.
– DML non-prosedural: bahasa yang memungkinkan user menyatakan data apa
yang dibutuhkan dan bukan bagaimana data diperoleh. Contoh: SQL, QBE
4GL (Fourth-Generation Language)
 SQL (Structured Query Language), QBE (Query by Example)
 Generator: form, report, grafik, aplikasi
Model Data
 Model data: sekumpulan konsep terpadu untuk mendeskripsi data, kaitan
antar data dan batasan data dalam sebuah organisasi.
Model Data Berbasis Objek
 Menggunakan konsep entitas, atribut, dan relationship
 Entitas: sekumpulan objek yang sejenis (orang, tempat, konsep, kejadian)
 Atribut: properti yang mendeskripsikan aspek objek yang akan direkam
 Relationship: asosiasi antar entitas
 Jenis model data berbasis objek :
–
–
–
–
Entity-relationship: teknik utama untuk desain basis data konseptual
Semantic
Functional
Object-oriented: atribut (deskripsi keadaan), aksi (perilaku)
Model Data Berbasis Record
 Terdiri atas sejumlah record, setiap record terdiri atas sejumlah field
 Ada tiga jenis model data berbasis record:
– Model data relasional: data dan relationship dalam bentuk tabel.
– Model data network: data  record, simpul; relationship  set, busur
Satu simpul boleh mempunyai lebih dari satu parent.
– Model data hierarki: satu simpul hanya boleh mempunyai satu parent
Pemodelan Konseptual
 Dari arsitektur tiga level, skema konseptual adalah ‘jantung’ basis data:
– Mendukung semua view eksternal, sebaliknya, didukung skema internal
– Skema konseptual harus lengkap dan akurat merepresentasikan kebutuhan
data sebuah enterprise, jika tidak, informasi enterprise ada yg hilang / salah
 Pemodelan konseptual atau desain basis data konseptual adalah proses
konstruksi model informasi yg digunakan dlm sebuah enterprise yg bebas
dari implementasi: DBMS, program aplikasi, bhs pemrograman, dsb.
 Model ini disebut model data konseptual.
Arsitektur DBMS Multi-User
Teleprocessing, file-server, client-server
 Teleprocessing
– Satu komputer mainframe dengan CPU
tunggal dan sejumlah terminal
– Terminal mengirim pesan ke program
aplikasi di server, menggunakan layanan
DBMS & mengirim hasil ke terminal
– Komputer pusat: run prog. aplikasi &
DBMS, format data u/ peragaan di layar
– Downsizing: mengganti mainframe (mahal)
dengan jaringan PC (lebih murah).Hasilnya
dua arsitektur: file-server, client-server
Aplikasi
Data
Server
Mainframe
  
Terminal 1
Terminal 2
Terminal N
 File-Server
– Pemrosesan didistribusikan melalui
jaringan (LAN, Local Area Network)
– Aplikasi & DBMS di-run pd setiap ws,
meminta file data dari file-server
– File-server berlaku sebagai hard disk
drive yang digunakan secara bersama
– Misalnya ada permintaan data mhs dg
NPM 0411001, maka semua data mhs yg
ada di file-server dikirim ke workstation.
Penyaringan data dilakukan di ws.

Permintaan disk I/O
Tugas: apa kerugian/keuntungan ketiga arsitektur
di atas? Dikumpulkan pada kuliah berikutnya.
File-Server
Disk blocks
LAN
  
DBMS
DBMS
Workstation 1
Workstation 2
Aplikasi
Aplikasi
 Client-Server
– Aplikasi di ws (dengan SQL atau bahasa
bd lainnya) meminta data dari server
– DBMS di server memproses permintaan
data, mengirimkan hasilnya ke client
– Misalnya ada permintaan data mhs dg
NPM 0411001, maka hanya data mhs
NPM 0411001 dikirim ke workstation.
Penyaringan data dilakukan di server
Data

Permintaan data
DBMS
Workstation N
Aplikasi
Data Server
DBMS
Data tersaring
LAN
  
Workstation 1
Aplikasi
Workstation 2
Workstation N
Aplikasi
Aplikasi
3 Model Relasional
Pada bab ini akan dipelajari:
 Model relasional: struktur, karakteristik, key, representasi skema basis data
 Integritas relasional: integritas entitas, integritas referensial
 Bagaimana membentuk query dalam aljabar relasional
 View: tujuan dan kegunaan
Struktur Data Relasional
 Relasi: tabel yg terdiri atas baris & kolom  level eksternal & konseptual
 Atribut: nama kolom relasi
 Domain: sekumpulan harga yg diizinkan u/ sebuah atau beberapa atribut
 Tuple: baris relasi
 Derajat relasi: jumlah atribut dalam relasi
 Kardinalitas relasi: jumlah tuple dalam relasi
 Basis data relasional: sekumpulan relasi yang sudah normal
Karakteristik Relasi
 Setiap relasi bernama unik
 Setiap sel relasi berharga tunggal
 Setiap atribut bernama unik
 Urutan atribut tidak penting
 Harga sebuah atribut berasal dari
domain yang sama
 Setiap tuple unik
 Urutan tuple scr teoritis tak penting
Key Relasional
 Candidate key: sebuah atau sekumpulan atribut minimum yang secara unik
mengidentifikasi sebuah tuple dalam sebuah relasi
– Dalam sebuah relasi mungkin ada beberapa candidate key
– Key dengan atribut lebih dari sebuah disebut composite key
 Primary key: candidate key yg dipilih utk mengidentifikasi tuple dalam relasi
 Foreign key: sebuah atau sekumpulan atribut dalam sebuah relasi yang
cocok dengan candidate key relasi lainnya (atau relasi yang sama)
Representasi Skema Basis Data Relasional
 Sebuah basis data relasional terdiri atas sejumlah relasi
 Skema relasi: nama relasi diikuti sekumpulan atribut
 Skema basis data relasional: kumpulan skema relasi dalam basis data tsb.
Integritas Relasional
Untuk menjamin keakuratan data:
 Integritas entitas: dalam sebuah relasi, atribut primary key tidak boleh null
– Null merepresentasikan harga yang belum diketahui (tidak ada)
– Null tidak sama dengan nol, spasi
 Integritas referensial: jika foreign key ada dl sebuah relasi, mk harganya hrs
cocok dg harga candidate key dl relasi lain (relasi yg sama) yang terhubung
 Enterprise constraint: aturan tambahan yg dispesifikasikan oleh user/DBA
Aljabar Relasional
 Bahasa teoritis yang mengoperasikan satu atau beberapa relasi dan
menghasilkan relasi lain tanpa mengubah relasi asli
 Keluaran sebuah operasi dapat menjadi masukan operasi lainnya
 Ada 8 operasi (Codd 1972)
– 5 operasi dasar: seleksi, proyeksi, produk Cartesian, union, set difference
– 3 operasi tambahan (turunan dr operasi dasar): join, interseksi (irisan), divisi
Operator dalam Aljabar Relasional
Nama Operator Ekspresi
Relasi yang Dihasilkan
Seleksi
σkriteria (R)
Berisi tuple dari relasi R yang sesuai dg kriteria
Berisi harga atribut kol1, ... , koln dari relasi R
Πkol1, ..., koln (R)
Proyeksi
dengan tanpa duplikasi tuple
Berisi tuple yang merupakan kombinasi setiap
Produk
RxS
Cartesian
tuple relasi R dengan setiap tuple relasi S
Gabungan i tuple relasi R dg j tuple relasi S,
Union
tanpa duplikasi tuple shg diperoleh maksimum
RS
(gabungan)
(i+j) tuple. R & S harus union compatible
Berisi tuple yg ada dl relasi R, tetapi tidak ada
Set difference
R–S
(selisih)
dalam relasi S. R & S harus union compatible
Berisi tuple yang ada dalam relasi R & S.
RS
Interseksi
(irisan)
 R – (R – S) R & S harus union compatible
Operator Join
 Mengombinasikan dua relasi atau lebih, & menghasilkan relasi baru
 Ekivalen dengan operasi seleksi terhadap produk Cartesian
 Macam2 operator join:  theta-join
 natural join
 semi-join
 equi-join
 outer join
 Theta-join (-join): R F S
– identik dengan: F (R x S)
– menghasilkan relasi berisi tuple dari R x S yang memenuhi predikat F
– predikat F dalam bentuk R.ai  S.bi dgn  adalah >, >=, <, <=, <>, =.
 Equi-join: identik dgn theta-join ttp predikat F menggunakan operator =
 Natural-join R  S: identik dg equi-join ttp atribut yg terhubung dieliminasi
(atribut yang sama hanya muncul sekali)
 Outer-join: R =>< S
– identik dengan natural join, tetapi semua tuple relasi R muncul
– tuple relasi S yang tidak cocok dengan tuple relasi R diberi harga null
– left outer-join: R =>< S
– full outer-join: R =><= S
– right outer-join: R ><= S
 Semi-join: identik dengan join R dg S tetapi atributnya hanya dari relasi R.
– Semi-theta-join: R F S
– Semi-equi-join:
R F S
– Semi-natural-join: R  S
Divisi: R  S
 A adalah himpunan atribut relasi R.
 B himpunan bagian dari A: B  A
 B adalah himpunan atribut relasi S.
 C adalah himpunan atribut relasi R tetapi bukan atribut relasi S, C = A – B
 R  S Divisi menghasilkan himpunan tuple dari relasi R dengan atribut C yang
cocok dengan kombinasi setiap tuple dalam relasi S
 Identik dengan: T1 = C(R);
T2 = C((S x T1) – R);
T = T1 – T2
View
 Relasi basis (base relation) adalah sebuah nama relasi,
tuple-nya secara fisik disimpan dalam basis data.
 View adalah hasil dinamis dari sebuah atau lebih operasi thd relasi basis.
 View adalah relasi virtual yang secara aktual tidak ada dalam basis data,
tetapi dihasilkan berdasarkan permintaan user pada saat dibutuhkan.
 Tujuan:
– Memberikan keamanan dg menyembunyikan sebagian dr bd thd user tertentu
– Memungkinkan user mengakses data sesuai dg kebutuhannya, shg data yg
sama dapat dilihat dg cara berbeda oleh user yg berbeda, pd waktu yg sama
– Menyederhanakan operasi rumit terhadap relasi basis.
 Update: diizinkan terhadap view yang diperoleh dari relasi basis tunggal.
 Update: tidak diizinkan terhadap view yang berasal dari banyak relasi basis,
agregasi, operasi pengelompokan.
4 Model Entity-Relationship
Pada bab ini akan dipelajari:
 Konsep dasar berkaitan dengan model ER (Entity-relationship)
 Model ER menggunakan UML (Unified Modeling Language)
 Bagaimana membangun model ER dari spesifikasi kebutuhan
Model ER: teknik utama untuk desain basis data konseptual
Jenis Entitas
 Merepresentasikan sekumpulan objek dlm dunia nyata dg properti sama
– fisik, contoh: pegawai, dosen, surat, mobil, dsb.
– konseptual (abstrak), contoh: penjualan, pengalaman kerja, kuliah, dsb
 Jenis entitas kuat
Notasi Chen
– eksistensinya tidak bergantung pada entitas lain
– disebut juga entitas parent, owner, atau entitas dominan
Nama entitas
 Jenis entitas lemah
– eksistensinya bergantung pada entitas lain
– disebut juga entitas child, dependent, atau subordinat
Relationship
 Relationship: asosiasi (keterkaitan) antar entitas
 Derajat relationship: jumlah jenis entitas yang
berpartisipasi dalam sebuah relationship
Nama entitas
kuat
Nama
relationship
Derajat relationship
Dosen
membimbing
Mahasiswa
binary relationship
quaternary relationship
(relationship derajat dua)
(relationship derajat empat)
mengawasi
Karyawan
supervisor
supervisee
ternary relationship
recursive relationship
(relationship derajat tiga)
(relationship derajat satu)
Atribut
 Atribut: properti entitas atau relationship
 Contoh atribut entitas mahasiswa: NPM, Nama, Alamat, Tgl Lahir, IPK
Atribut Sederhana
 Atribut yang hanya terdiri atas satu komponen
 Contoh: gol darah, hobi, jenis kelamin
Atribut Komposit
 Atribut yang terdiri atas beberapa komponen
 Misalnya alamat terdiri atas nama jalan, kelurahan, kecamatan, kota, prov.
Atribut Berharga Tunggal
 Atribut yg hanya memiliki sebuah harga u/ sebuah entitas
 Contoh: gol. darah, jenis kelamin, tgl. lahir
Atribut Berharga Banyak
 Atribut yang memiliki banyak harga untuk sebuah entitas
 Contoh: telepon, hobi
Atribut Turunan (derived attribute)
 Atribut yang harganya diperoleh (turunan) dari
sebuah atau sekumpulan atribut lain
 Contoh: gaji, IPK
Notasi Chen
Nama atribut
Nama atribut
berharga banyak
Nama atribut
turunan
Candidate Key
 Sebuah/sekumpulan atribut yg secara unik mengidentifikasi sebuah entitas
 Misalnya No. KTP atau No. SIM  untuk mengidentifikasi entitas orang
Primary Key
 Candidate key yang dipilih untuk mengidentifikasi
sebuah entitas secara unik
 Misalnya No.KTP dipilih sebagai primary key
untuk mengidentifikasi entitas orang
Notasi Chen
Nama atribut
primary key
Composite Key
 Candidate key yang terdiri atas dua atribut atau lebih
 Misalnya, NIM + KodeMataKuliah + Th + Smt adalah composite key yang
digunakan untuk mengidentifikasi nilai mata kuliah mahasiswa
Kardinalitas
 Jumlah objek dari sebuah jenis entitas yang
mungkin muncul dalam relationship
 Berkaitan dg kardinalitas, ada tiga jenis relationship:
– 1 : 1 relationship (one-to-one relationship)
– 1 : N relationship (one-to-many relationship)
– M : N relationship (many-to-many relationship)
1
1
1
N
M
N
Notasi Chen
Notasi Crow's Feet
Nama entitas
Nama Entitas
Nama atribut 1
Nama atribut
primary key
Nama atribut 2
Nama Entitas
Nama atribut primary key
Nama atribut 1
Nama atribut 2
Nama atribut (PK)
Nama atribut 1
Nama atribut 2
:
Nama atribut n
1
Notasi UML
Nama relationship
:
Nama atribut n
Nama atribut n
1
Nama relationship
1
Nama
relationship
0..1
1
Nama relationship
N
Nama relationship
1
Nama
relationship
0..*
M
Nama relationship
N
Nama relationship
1..*
Nama
relationship
0..*
0..*
Nama
relationship
0..*
Recursive relationship:
Nama relationship
Nama relationship
Nama relationship
Nama
peran
Nama peran
Nama
entitas
Nama peran
Nama
peran
Nama
entitas
Nama
peran
Nama
peran
Nama
entitas
5 Normalisasi
Pada bab ini akan dipelajari:
 tujuan normalisasi
 masalah akibat adanya redundansi data
 konsep ketergantungan fungsional
 proses normalisasi
Tujuan Normalisasi
 Tujuan utama perancangan basis data relasional adalah mengelompokkan
atribut ke dalam relasi sehingga redundansi data (data ganda) minimum.
 Normalisasi: teknik untuk memperoleh sekumpulan relasi yang memenuhi
kebutuhan data sebuah enterprise (perusahaan, lembaga, organisasi, dsb)
Redundansi Data dan Anomali Update
Adanya redundansi data menimbulkan masalah anomali update :
(a) anomali penyisipan, (b) anomali penghapusan, (c) anomali modifikasi
Anomali Penyisipan
 Bila ada pegawai baru yang ditempatkan di Cabang C3:
– Ke dalam relasi PegawaiCabang, selain data pegawai (NIP, Nama, Alamat),
data detail Cabang C3 (NoCabang, AlamatCabang, TelpCabang) juga harus
ditambahkan dengan resiko terjadi ketidakkonsistenan data.
– Sebaliknya, pada relasi Pegawai, cukup ditambahkan data pegawai dan
Cabang C3 tempat ia bekerja tanpa harus memasukkan detail cabang.
 Relasi PegawaiCabang berikut masih memiliki data ganda (redundansi data)
 Pengulangan data yang sama pada NoCabang, AlamatCabang, TelpCabang
 Timbul masalah anomali update (penyisipan, penghapusan, modifikasi)
Relasi PegawaiCabang
NIP
Nama Alamat
04.001 Toto
Jl. Kelinci 27
04.003 Ina
Jl. ABC 15
05.007 Adi
Jl. Murai 96
05.009 Badu
Jl. Merah 3
05.017 Fulan
Jl. Teduh 48
05.022 Nia
Jl. Damai 10
NoCabang
C5
C3
C3
C7
C5
C3
AlamatCabang
Jl. Rivai 98
Jl. Berlian 56
Jl. Berlian 56
Jl. Lintas 12
Jl. Rivai 98
Jl. Berlian 56
TelpCabang
360123
353637
353637
708090
360123
353637
 Normalisasi lebih lanjut terhadap relasi di atas menghasilkan dua relasi
 Keduanya bebas dari masalah anomali update karena tidak ada data ganda
Relasi Pegawai
NIP
04.001
04.003
05.007
05.009
05.017
05.022
Nama
Toto
Ina
Adi
Badu
Fulan
Nia
Relasi Cabang
Alamat
Jl. Kelinci 27
Jl. ABC 15
Jl. Murai 96
Jl. Merah 3
Jl. Teduh 48
Jl. Damai 10
NoCabang
C5
C3
C3
C7
C5
C3
NoCabang
C3
C5
C7
AlamatCabang TelpCabang
Jl. Berlian 56
353637
Jl. Rivai 98
360123
Jl. Lintas 12
708090
Anomali Penyisipan (Lanjutan)
 Bila ada cabang baru yang belum ada pegawainya:
– Ke dalam relasi PegawaiCabang, data detail cabang baru (NoCabang,
AlamatCabang, Telepon) ditambahkan dengan atribut pegawai (NIP, Nama,
Alamat) dikosongkan. Hal ini tak mungkin karena NIP sebagai primary
key tidak boleh kosong. Berarti data cabang baru tak dapat ditambahkan.
– Sebaliknya, pada relasi Cabang, detail cabang baru dapat ditambahkan.
Anomali Penghapusan
 Bila pegawai dengan NIP 05.009 dihapus:
– Pada relasi PegawaiCabang: data detail Cabang C7 juga ikut terhapus
– Sebaliknya, penghapusan pegawai dengan NIP 05.009 pada relasi
Pegawai tidak mengakibatkan hilangnya data detail Cabang C7.
Anomali Modifikasi
 Misalkan Cabang C3 pindah alamat dan teleponnya berganti nomor:
– Pada relasi PegawaiCabang: modifikasi data harus dilakukan secara
berulang ke seluruh tuple yang memuat data Cabang C3. Hal ini dapat
menimbulkan ketidakkonsistenan data.
– Sebaliknya, modifikasi data Cabang C3 pada relasi Cabang cukup
dilakukan sekali
Ketergantungan Fungsional
 Jika A dan B adalah atribut relasi R, maka B memiliki ketergantungan fungsional pada A (ditulis A  B), jika setiap harga A berasosiasi tepat dengan
satu harga B. (A dan B boleh jadi terdiri atas satu atau beberapa atribut)
 Determinan ketergantungan fungsional adalah atribut atau sekumpulan
atribut yang ada pada sisi kiri anak panah
NPM
Nama memiliki ketergantungan
fungsional pada NPM
Nama
2005.99.001
Amir
Determinan
2005.99.001
NPM TIDAK memiliki ketergantungan
Nama
fungsional pada Nama
NPM
Amir
2002.55.123
Proses Normalisasi
 1NF, 2NF, 3NF, BCNF, 4NF, 5NF
 Pertama kali dikembangkan oleh E.F. Codd (1973): 1NF, 2NF, 3NF
 R. Boyce dan E.F. Codd (1974): BCNF
 Fagin (1977, 1979): 4NF, 5NF (sangat jarang)
1NF - First Normal Form (Bentuk Normal Pertama)
Adalah relasi yang setiap perpotongan baris dan kolomnya berisi satu
dan hanya satu harga.
2NF - Second Normal Form (Bentuk Normal Kedua)
 Relasi yang memenuhi 1NF dan setiap atribut bukan primary key memiliki
ketergantungan fungsional secara penuh pada primary key.
 Bila A dan B adalah atribut sebuah relasi, maka B memiliki ketergantungan
fungsional secara penuh pada A jika B bergantung fungsional pada A
secara keseluruhan dan bukan pada sebagian dari A.
3NF - Third Normal Form (Bentuk Normal Ketiga)
 Relasi yang memenuhi 1NF, 2NF dan atribut yang bukan primary key tidak
memiliki ketergantungan transitif pada primary key
 Misal A, B, C adalah atribut sebuah relasi. Jika A  B dan B  C, maka
dikatakan C memiliki ketergantungan transitif pada A melalui B.
BCNF – Boyce-Codd Normal Form (Bentuk Normal Boyce-Codd)
 Relasi yang jika dan hanya jika setiap determinan adalah candidate key.
 Relasi BCNF tidak harus melalui 3NF terlebih dahulu
 Pengecekan BCNF perlu dilakukan apabila pada relasi tersebut :
– berisi dua composite candidate key atau lebih, dan
– sekurang-kurangnya ada sebuah atribut yang overlap
Contoh relasi yang belum BCNF
Relasi tsb. menunjukkan:
Relasi WawancaraMhsBaru
 Seorang mhs baru diwaNoTes
Tgl
Waktu
NRP Ruang
wancara hanya sekali
05.012 19-08-2005 08.00–09.30 99.005 205
dalam sehari.
05.034 19-08-2005 10.00–11.30 99.005 205
 Bila dipandang perlu,
05.056 19-08-2005 10.00–11.30 99.013 304
wawancara dilakukan
05.034 23-08-2005 08.00–09.30 99.005 304
lebih dari sekali pada
05.056 23-08-2005 10.00–11.30 99.005 304
hari yang berbeda.
 Pada hari yang sama, pewawancara menempati ruang yang sama
 Berdasarkan ketentuan di atas, relasi memiliki ketergantungan fungsional:
NoTes, Tgl  Waktu, NRP, Ruang
primary key
NRP, Tgl, Waktu  NoTes
candidate key
Ruang, Tgl, Waktu  NRP, NoTes
candidate key
NRP, Tgl  Ruang
Bukan candidate key
 Karena ada determinan yg bukan candidate key, relasi di atas belum BCNF
 Ketergantungan fungsional yang determinannya bukan candidate key dipisahkan dalam relasi tersendiri, sehingga diperoleh dua relasi BCNF:
Wawancara (NoTes, Tgl, Waktu, NRP)
RuangWawancara (NRP, Tgl, Ruang)
Setelah dinormalisasi, dari tabel WawancaraMhsBaru diperoleh dua buah relasi
BCNF sbb:
Relasi Wawancara
NoTes
05.012
05.034
05.056
05.034
05.056
Relasi RuangWawancara
Tgl
NRP Ruang
19-08-2005 99.005 205
19-08-2005 99.013 304
23-08-2005 99.005 304
Tgl
19-08-2005
19-08-2005
19-08-2005
23-08-2005
23-08-2005
Waktu
08.00–09.30
10.00–11.30
10.00–11.30
08.00–09.30
10.00–11.30
NRP
99.005
99.005
99.013
99.005
99.005
Relasi Mhs
NIM
05.012
05.034
05.056
06.034
06.056
Nama
NomorTelepon
Bijaksana
363738
Melati
NULL
Anti
081270008000, 363738
Megah
07117009000
Sabar
NULL
Apakah relasi Mhs memenuhi
syarat karakteristik sebuah relasi?
Relasi Mhs
NIM
05.012
05.034
05.056
06.034
06.056
Nama
NomorTelepon1 NomorTelepon2
Bijaksana
363738
Melati
NULL
Anti
081270008000
363738
Megah
07117009000
Sabar
NULL
Relasi Mhs
NIM
05.012
05.034
05.056
06.034
06.056
Nama
Bijaksana
Melati
Anti
Megah
Sabar
Relasi Telepon
NIM NomorTelepon Keterangan
05.012
363738
Rumah
05.056 081270008000
HP
05.056
363738
Rumah
06.034 07117009000
HP
05.056 07117778000
HP
Download