©Silberschatz, Korth and Sudarsha 1.1 Database System Concepts Basis Data (Database) Tujuan Instruksional Umum : Mahasiswa mampu merancang Basis Data yang baik sesuai konsep-konsep perancangan Basis Data yang benar. (3 SKS)
©Silberschatz, Korth and Sudarshan1.1Database System Concepts
Basis Data (Database)
Tujuan Instruksional Umum :
Mahasiswa mampu merancang Basis Data yang baik sesuaikonsep-konsep perancangan Basis Data yang benar.
(3 SKS)
©Silberschatz, Korth and Sudarshan1.2Database System Concepts
Materi : Konsep Dasar Basis Data Sistem Basis Data Model-Model Data E-R Model Tranformasi E-R Model ke Basis Data Fisik Dekomposisi, Ketergantungan Fungsional dan Kunci Normalisasi Data Relational Model Bahasa Query
UTS
UAS
Basis Data (Database)
©Silberschatz, Korth and Sudarshan1.3Database System Concepts
Henry F Korth, Silberschatz, Sudarsan, “Database system concepts”
Fathansyah, “Basis Data”
Referensi :
C.J. Date, “Pengenalan Sistem Basis Data”
Utama :
Pendukung :
Adi Nugroho, ST., MMSI., “Konsep Pengembangan Sistem Basis Data”
Basis Data (Database)
©Silberschatz, Korth and Sudarshan1.4Database System Concepts
Penilaian :
UTS : 35%UAS : 35%Tugas : 30%
Alokasi Waktu yang diharapkan untuk matakuliah ini :3 SKS = 3 * 3 jam / minggu = 9 jam / minggu
• 3 jam / minggu belajar dikelas (kuliah)• 3 jam / minggu belajar mandiri• 3 jam / minggu mengerjakan tugas individu atau kelompok
Basis Data (Database)
©Silberschatz, Korth and Sudarshan1.5Database System Concepts
Konsep Dasar Basis Data
File data yang dapat menghasilkan informasi merupakan Sumberdaya bagi perusahaan / organisasi, maka perlu dikelola dengan :~ Baik Mudah dalam pengaksesan~ Terpadu Dapat mengantisipasi permasalahan masa yang akan datang (berksinambungan)~ Aman Data harus dapat dilindungi dari campur tangan pihak lain
Arti Penting Database (Basis Data) :
©Silberschatz, Korth and Sudarshan1.6Database System Concepts
Database System Applications :Banking : for customer information, accounts and loans, and banking transactionsAirlines : for reservations and schedule information
University : for students information, course registrations Sales : for customer, product, and purchase information
Manufacturing : inventories of items in stores and orders for itemsHuman Resources : for information about employees, salaries, payroll taxes and benefits
Finance : for storing information about holdings, sales, purchase of financial instruments such as stock and bonds
Konsep Dasar Basis Data
Database menyentuh semua aspek kehidupan
©Silberschatz, Korth and Sudarshan1.7Database System Concepts
Evolusi Teknologi Basis Data :
1960s: Data collection, database creation, IMS and network DBMS
1970s: Relational data model, relational DBMS implementation
1980s: RDBMS, advanced data models (extended-relational, OO,
deductive, etc.) and application-oriented DBMS (scientific, engineering, etc.)
1990s—2000s: Data mining and data warehousing, multimedia databases, and Web databases
Konsep Dasar Basis Data
©Silberschatz, Korth and Sudarshan1.8Database System Concepts
Sistem Pemrosesan Berkas (File Processing System / System File) :“sekelompok rekaman disimpan pada sejumlah berkas secara terpisah”
Prog. Aplikasi Personalia
Prog. Aplikasi Pelatihan Berkas
pelatihan
Berkaspersonalia
personalia
pelatihan
Konsep Dasar Basis Data
©Silberschatz, Korth and Sudarshan1.9Database System Concepts
Pada waktu yang lalu aplikasi database dibangun diatas sistem file
Kekurangan penggunaan sistem file sebagai penyimpan data: Redundansi / kerangkapan data dan inconsistency
Format file yang tidak seragam, kerangkapan data di file-file yang berbeda
Sulit dalam mengakses data
Perlu program baru untuk mengakses data baru
Pengisolasian data — banyak file dengan format yang berbeda
Masalah integritas (keterpaduan)
Pengendalian terpadu (mis. saldo > 0) menjadi bagian dari program
Sulit untuk menambah elemen pengendali atau mengubah yang sudah ada
Konsep Dasar Basis Data
©Silberschatz, Korth and Sudarshan1.10Database System Concepts
Kekurangan sistem file Pengubahan atomik
Kesalahan mungkin mengakibatkan database dalam kedaan yang tidak konsisten dengan data yang baru yang dihasilkan
Mis. Pengiriman uang dari satu rekening ke rekening yang lain harus terjadi secara lengkap atau tidak sama sekali
Akses secara bersamaan oleh banyak user
Akses secara bersama untuk meningkatkan kinerja
Akses bersama akan mengakibatkan ketidak konsistenan
– Mis. Dua orang membaca dan megubah data saldo pada saat yang sama
Masalah keamanan
Sistem Database mampu mengatasi masalah tersebut diatas
Konsep Dasar Basis Data
©Silberschatz, Korth and Sudarshan1.11Database System Concepts
Alasan Database perlu dirancang : Jumlah data yang selalu bartambah Adanya pengulangan / duplikasi data Disintegrasi antar data / file Keamanan data Keterasingan data Akses data secara simultan Masalah keutuhan data
Konsep Dasar Basis Data
©Silberschatz, Korth and Sudarshan1.12Database System Concepts
Pendekatan Basis Data :
DBMS BasisData
Data tersimpan secara terpusat berbagaiUser dapat mengakses data menggunakan
DBMS
personalia
pelatihan
Konsep Dasar Basis Data
©Silberschatz, Korth and Sudarshan1.13Database System Concepts
Keuntungan Pemakaian Sistem Basis Data: Efisiensi ruang penyimpanan (space) Keakuratan (accuracy) Data dapat dipakai bersama Kecepatan dan kemudahan (speed) Keamanan data terjamin Terpeliharanya integritas data Data independence
Konsep Dasar Basis Data
©Silberschatz, Korth and Sudarshan1.14Database System Concepts
Basis Data ?
Basis : Kumpulan / Gudang
Data : Fakta tentang obyek, orang dan lain-lain
yg dinyatakan dengan nilai (angka, simbol dll)Hirarki Data :
Byte Field Record File / Tabel Basis Data
Konsep Dasar Basis Data
IDSls NmSls AlamatAsal KotaAsal
S001 Anita Jl. Nakula 9 Kendal
S002 Vicky Jl. Arjuna I/6 Semarang
S003 Roni Jl. Bima II/3 Semarang
IDProd NamaProduk Harga QtyStock
F001 TV 14” 1500000 12
F002 TV 21” 2100.000
4
F003 TV 21” Flatron 2700000 24
NoOrder
Date IDProd QtyOrder IDSls
120301 12/11/04
F001 2 S001
120302 13/11/04
F001 2 S003
120303 22/11/04
F003 6 S001
linklink
©Silberschatz, Korth and Sudarshan1.15Database System Concepts
C.J. Date :
Basis data adalah tempat untuk sekumpulan file data /berkas terkomputerisasi
Definisi Lain :
Basis Data : kumpulan file data yang saling berhubungan dan
disimpan dalam media elektronis
Basis Data : kumpulan data yang saling berhubungan dan diorganisasi
sedemikian sehingga dapat dimanfaatkan dg cepat & mudah
Korth :
A Database is a collection of interralated data
Konsep Dasar Basis Data
©Silberschatz, Korth and Sudarshan1.17Database System Concepts
Operasi-operasi dasar terhadap suatu basis data :Pembuatan basis data baru (create database)Penghapusan basis data (drop database)Pembuatan tabel (create table)Pengisian data dalam tabel (insert)Pengambilan data (retrieve)Pengubahan data (update)Penghapusan data (delete)dll
Konsep Dasar Basis Data
©Silberschatz, Korth and Sudarshan1.18Database System Concepts
Skema dan IsiSkema dan Isi
Mendekati tipe dan variabel dalam bahasa pemrograman
Skema – struktur lojik dari database Mis. Database yang berisi informasi tentang himpunan nasabah dan
rekeningnya dan relasi diantaranya
Analogi dengan tipe informasi dari variabel dalam sebuah program
Skema fisik : rancangan database dalam tingkatan fisik
Skema lojik : rancangan database dalam tingkatan lojik
Instan – isi aktual dari database pada suatu waktu Analogi dengan nilai variabel
Kemandirian data fisik – memungkinkan melakukan perubahan skema fisik tanpa mengubah skema lojik Aplikasi bergantung pada skema lojik
Secara umum, antar muka antara berbagai tingkat dan komponen harus dapat didefinisiikan dengan baik sehingga perubahan di suatu bagian tidak memberikan dampak banyak pada bagian lainnya.
©Silberschatz, Korth and Sudarshan1.19Database System Concepts
SKEMA LOGIKSKEMA FISIK
IDSls NmSls AlamatAsal KotaAsal
S001 Anita Jl. Nakula 9 Kendal
S002 Vicky Jl. Arjuna I/6 Semarang
S003 Roni Jl. Bima II/3 Semarang
IDProd NamaProduk Harga QtyStock
F001 TV 14” 1500000 12
F002 TV 21” 2100.000
4
F003 TV 21” Flatron 2700000 24
NoOrder
Date IDProd QtyOrder IDSls
120301 12/11/04
P001 2 S001
120302 13/11/04
P001 2 S003
120303 22/11/04
P003 6 S001link
link
Konsumen
Kode_k char(4)Nama_k char(20)Alamat_k char(12)Kota_k char(10)
Jual_d
No_fak char(5)Kode_brg int(2)Jml dec(12,2)
Jual_h
No_fak char(5)Tgl_jual dateKode_k char(4)
Barang
Kode_brg int(2)Nama_brg char(15)Satuan char(10)Harga int
©Silberschatz, Korth and Sudarshan1.26Database System Concepts
Sistem : Sebuah tatanan yang terdiri dari sejumlah Komponen fungsional yang SALING berhubungan untuk memenuhi suatu tujuan tertentu.
Sistem Basis Data :
Merupakan sistem yang terdiri atas basis data dan sekumpulan program (DBMS) yang memungkinkan beberapa user mengakses dan memanipulasi data tersebut.
Konsep Dasar Basis Data
©Silberschatz, Korth and Sudarshan1.27Database System Concepts
Sistem Basis Data
Komponen Sistem Basis Data :
Basis Data
File1 File3
file2 File4
Hardware Operating System Basis Data DBMS Pemakai / User Software lain
user
©Silberschatz, Korth and Sudarshan1.28Database System Concepts
DBMS berguna untuk :Mendefinisikan struktur data Memanipulasi nilai data yang ada dalam database.Pengendalaian akses terhadap suatu data : * untuk pengamanan sistem * untuk keterpaduan sistem * sistem pengendalian persetujuan akses * sistem pengendalian pemulihan.
Sistem Basis Data
DBMS ( Data Base Management System) :Adalah suatu program komputer yang digunakan untuk memasukkan, mengubah, menghapus, memanipulasi dan memperoleh data / informasi secara praktis dan efisien
©Silberschatz, Korth and Sudarshan1.29Database System Concepts
Sistem Basis Data
Contoh Produk DBMS :
Oracle (Oracle Corp.) Informix Sybase Dbase MS Sql Server MySQL
Sasaran utama DBMS menyediakan lingkungan yang nyamandan efisien dalam menyimpan dan mengambil informasi ke dan dari basis data
©Silberschatz, Korth and Sudarshan1.30Database System Concepts
Sistem Basis Data
Pemakai / User : Programmer Aplikasi Cara berinteraksi dengan basis data melalui program yang ditulis User Mahir (Casual User) Cara berinteraksi dengan basis data melalui query yang telah disediakan oleh DBMS User Umum (End User/Naïve User) Cara berinteraksi dengan basis data melalui pemanggilan program aplikasi (executable program) User Khusus (Specialized User) User yang dapat mengakses Basis data tanpa / dengan dbms, misalnya untuk keperluan Artificial Intelligence, Expert System dll
©Silberschatz, Korth and Sudarshan1.31Database System Concepts
Adalah orang yang bertanggung jawab terhadap sebuah database: Schema Definition Storage Structure and Access-method Definition Granting of Authorization for data access Routine Maintenance a. Backing up the database b. Monitoring jobs running on the database c. upgrading disk space as required
Database Administrator (DBA)
Sistem Basis Data
©Silberschatz, Korth and Sudarshan1.32Database System Concepts
Sistem Basis Data
Struktur Sistem Keseluruhan :
Naïve user Programmer
casual DBA
QueryProgramAplikasi
SystemCall
SkemaBasis Data
DML Precompiler
Query Processor
DDL Compiler
ExeProgram
DatabaseManager
File Manager File
DataKamusData
DBMS
DiskCompiler DDL menghasilkan sekumpulan tabel yang tersimpan dalam kamus data.Kamus Data berisi metadata (data tentang data)
©Silberschatz, Korth and Sudarshan1.33Database System Concepts
Sistem Basis Data
Keterangan :
File manager : mengelola alokasi ruang dalam disk dan struktur data dalam disk
Database manager : menyediakan interface antara low level Dengan prog. Aplikasi dan query
Query processor : menterjemahkan perintah dlm query Language ke perintah low level yang dimengerti oleh Database manager
DML precompiler : mengkonversi perintah DML yang ada Di prog. Aplikasi ke pemanggilan prosedur normal dlm Bahasa induk
DDL compiler : mengkonversi perintah-perintah DDL Kedalam sekumpulan tabel yang mengandung metadata. Tabel ini kemudian disimpan dalam kamus data
©Silberschatz, Korth and Sudarshan1.34Database System Concepts
Sistem Basis Data
Abstraksi Data : Merupakan tingkatan dalam bagaimana melihat data dalam Sistem Basis Data
Level Penampakan : user yang menikmati sebagian dari Basis DataMenggambarkan data apa yg sebenarnya (secara fungsional) disimpan dlm Basis Data dan hubungannya dg data lain
Bagaimana sesungguhnyasuatu data disimpan
Tingkat abstraksiTingkat abstraksi
©Silberschatz, Korth and Sudarshan1.35Database System Concepts
Tingkat abstraksiTingkat abstraksi
Tingkat Fisik : yang menjelaskan bagaimana sebuah rekord disimpan.
Tingkat Lojik : menjelaskan simpanan data dalam database, dan relasi antar data.
Tingkat user (pandang): program aplikasi menyembunyikan rinci tipe data. Tingkat pandang dapat juga menyembunyikan nilai informasi untuk kebutuhan keamanan.
Konsumen
Kode_k char(4)Nama_k char(20)Alamat_k char(12)Kota_k char(10)
Jual_d
No_fak char(5)Kode_brg int(2)Jml dec(12,2)
Jual_h
No_fak char(5)Tgl_jual dateKode_k char(4)
Barang
Kode_brg int(2)Nama_brg char(15)Satuan char(10)Harga int
©Silberschatz, Korth and Sudarshan1.36Database System Concepts
Sistem Basis Data
Bahasa Basis Data :Merupakan cara berinteraksi pemakai dg basis data yang sesuai dengan aturan ditetapkan oleh pembuat DBMSBagian Basis Data :
Data Definition Language (DDL)
Bahasa yg digunakan untuk menggambarkan basis data secara keseluruhan, Operasi yang dapat dijalankan adalah membuat tabel baru, membuat indeks, mengubah tabel, menentukan struktur. Hasil kompilasi dari DDL ini adalah Kamus Data (Data Dictionary)
Data Manipulation Language (DML)
Bahasa untuk melakukan manipulasi dan pengambilan data pada suatu basis data, seperti : penyisipan, penghapusan dan update.
©Silberschatz, Korth and Sudarshan1.37Database System Concepts
Tugas
a. List four significant differences between a file-processing system and a DBMSb. What are two advantages and disadvantages of a database systemc. What are five main function of a database administratord. Explain the database system conceptse. Explain the database schema, physical schema and logical schema
©Silberschatz, Korth and Sudarshan1.38Database System Concepts
Model Data Dalam SBD
Model Data : Adalah kumpulan perangkat konseptual untuk menggambarkan Data, hubungan antar data, semantik dan batasan data.
Model data biasanya digunakan untuk perancangan basis data, yang disebabkan karena kelangkaan data / fakta yang dimiliki
Henry F. Korth : Ada 2 kelompok model data, yaitu :
Model data berbasis object
Model data berbasis record
©Silberschatz, Korth and Sudarshan1.39Database System Concepts
Model Data Dalam SBD
Secara umum :
Data Model
Object Based
Record Based
Physical Based
E-R Model
Semantic ModelBinary Model
Relational ModelHierarchycal ModelNetwork Model
Unifying ModelFrame Model
©Silberschatz, Korth and Sudarshan1.40Database System Concepts
Model Data Dalam SBD
Model data File datar ( Flat-file data model )
a.Data flat-file terdiri dari satu atau lebih file yang dapat dibaca, yang secara normal berbentuk format file text.
b.Informasi pada suatu flat-file disimpan sebagai fields, dengan fields-nya memiliki panjang konstan atau panjang bervariasi yang dipisahkan beberapa karakter (delimeter).
©Silberschatz, Korth and Sudarshan1.41Database System Concepts
Model Data Dalam SBD
Model data File datar ( Flat-file data model )
Contoh 1, Flat-file Model Data
1234 5 67890123456789012345 6 78901234567890123
0123 Mulyono Progdi TI-S1
1234 Arifin Progdi TI-S1
2345 Tyas Catur P. Progdi TI-S1
3456 Ifan Riska Progdi TI-S1
4567 Ayu Pertiwi Progdi TI-S1
Model data flat-file dengan panjang fields-nya konstan.
©Silberschatz, Korth and Sudarshan1.42Database System Concepts
Model Data Dalam SBD
Model data File datar ( Flat-file data model )
Penjelasan Contoh 1,
Terdapat 3 fields : identifikasi angka, nama dosen, dan nama program studi.
Setiap fields memiliki panjang konstan karena field identifikasi angka selalu dimulai pada kolom #1 dan selalu berakhir pada kolom #4, field nama dosen selalu dimulai pada kolom #6 dan selalu berakhir pada kolom #25, dan seterusnya.
©Silberschatz, Korth and Sudarshan1.43Database System Concepts
Model Data Dalam SBD
Model data File datar ( Flat-file data model )
Contoh 2, Flat-file Model Data
Model data flat-file dengan panjang fields-nya bervariasi
0123: Mulyono: Progdi TI-S11234: Max Tetelepta : Progdi TI-S12345: Tyas Catur P.: Progdi TI-S13456: Ifan Riska:PS. Progdi TI-S14567: Ayu Pertiwi:PS. Progdi TI-S15678: Etika Kartika:PS. Progdi TI-S16789: Anthoni Suteja:PS. Progdi TI-S17890: Fikri Budiman: Progdi TI-S1
©Silberschatz, Korth and Sudarshan1.44Database System Concepts
Model Data Dalam SBD
Model data File datar ( Flat-file data model )
Penjelasan Contoh 2,
Model data flat-file dengan panjang fields bervariasi yang dipisahkan dengan delimeter.
Untuk setiap fields dipisahkan dengan titik dua. Setiap fields memiliki panjang tidak konstan.
Pada saat menggunakan fields separator, seharusnya fields seperatornya bukan merupakan karakter yang terdapat pada data.
©Silberschatz, Korth and Sudarshan1.45Database System Concepts
Model Data Dalam SBD
Model data File datar ( Flat-file data model )
Kelemahan model data flat-file: Flat-file tidak menggunakan struktur data yang dengan
mudah dapat direlasikan Sulit untuk mengatur data secara efisien dan menjamin
akurasi Lokasi fisik fields data dengan file harus diketahui Program harus dikembangkan untuk mengatur data
©Silberschatz, Korth and Sudarshan1.46Database System Concepts
Model Data Dalam SBD
Model Data Hirarkis :
Menjelaskan hub logik antar data dlm bentuk hub bertingkat. Elemen penyusun disebut node, node tertinggi : root. Suatu node yg lebih rendah hanya diijinkan memp, 1 hub dg node yg lebih tinggi, disebut parent. Parent dapat mempunyai > 1 hub dg node dibawahnya.
Contoh :
Nama UniversitasUDINUS
Nama Fak Jml MhsJml Dosen Jml Fak
Fasilkom 85 8500 5
NIM Fakultas Nama A21002 Adam Fasilkom
NIP PangkatNama_D
A001 DR. Vis IIIC
SKSNama_mkKD MK
MKK01 SBD I 2
Univ
Fak
Dosen
MK
Mhs
©Silberschatz, Korth and Sudarshan1.47Database System Concepts
Model Data Dalam SBD
Model Data Hirarkis
Kelebihan basis data hirarki dibandingkan flat-file: Data dapat dengan cepat dilakukan retrieve Integritas data mudah dilakukan pengaturan
Kelemahan basis data hirarki dibandingkan flat-file: Pengguna harus sangat familiar dengan struktur basis data Terjadi redudansi data
Keterangan :
©Silberschatz, Korth and Sudarshan1.48Database System Concepts
Model Data Jaringan : Distandarisasi oleh Data Base Task Group (DBTG) tahun 1971. Hampir sama seperti hirarakis, tetapi dalam model jaringan suatu node dibawahnya bisa memp hub dengan > 1 node diatasnyaContoh :
Universitas
Fakultas
Dosen
Mata Kuliah
Mahasiswa
Registrasi
Model Data Dalam SBD
©Silberschatz, Korth and Sudarshan1.49Database System Concepts
Model Data Jaringan
Model Data Dalam SBD
Kelebihan model data jaringan: Data lebih cepat diakses User dapat mengakses data dimulai dari beberapa
tabel Mudah untuk memodelkan basis data yang komplek Mudah untuk membentuk query yang komplek dalam
melakukan retrieve data.
©Silberschatz, Korth and Sudarshan1.50Database System Concepts
E-R model : Model yang menjelaskan hub antar data dalam basis data berdasarkan suatu persepsi bahwa real word terdiri dari obyek-obyek dasar yang mempunyai relasi antara obyek-obyek tersebutSimbol-simbol :
entitas
atribut
Relasi / hubungan
Garis hubung
Model Data Dalam SBD
©Silberschatz, Korth and Sudarshan1.51Database System Concepts
Model Data Dalam SBD
Contoh skema dalam model hubungan entitas
©Silberschatz, Korth and Sudarshan1.52Database System Concepts
Model Data Semantic :
Contoh :
Hampir sama seperti E-R Model, tetapi relasi antar obyek dasar dinyatakan dengan kata-kata (semantik).
Mahasiswa
Mata Kuliah
Dosenmengambil
Mengajar
NIM
Nama
Nama_dos
Alamat
Kode
NM_kul
SKS
Model Data Dalam SBD
©Silberschatz, Korth and Sudarshan1.53Database System Concepts
Model Data Relasional
Menunjukan suatu cara yang digunakan untuk mengelola data secara fisik dalam memori sekunder dan bagaimana bentuk relasi dari keseluruhan data dalam sistem yang sedang ditinjauKelebihan :
1. Dapat mengakomodasi berbagai kebutuhan pengelolaan basis data yg ada di dunia nyata (real word)
2. Pencarian data dari suatu tabel atau banyak tabel dapat dilakukan dengan cepat
3. Merupakan model yang paling sederhana sehingga mudah untuk dipahami
Disebut juga : Model Relasional atau Basis Data Relasional (ditemukan oleh : E.F. Codd)
©Silberschatz, Korth and Sudarshan1.54Database System Concepts
Model Data RelasionalBasis Data akan disebar / dipilah ke dalam tabel dua dimensi
Contoh :
NIM NamaMahasiswa
Alamat Tgl Lahir
980001 Ali Akbar Jl. Merdeka No. 10 Jakarta 40121 2 Jan 1979980002 Budi Haryanto Jl. Gajah Mada No. 2 Jakarta 6 Okt 1978980003 Imam Faisal Komp. Griya Asri D-2 Depok 40151 13 Mei 1978980004 Indah Susanti Jl. Adil No. 123 Bogor 21 Juni 1979
Tabel / relasi
Record / tuple
Kolom / Field / Atribut
Baris /kardi-nalitas
Item data
Model Data Dalam SBD
©Silberschatz, Korth and Sudarshan1.55Database System Concepts
Model Data RelasionalIstilah-istilah: RDMS (relational Database Management System) adalah
DBMS yang bermodelkan relasional Kardinalitas adalah jumlah tupel suatu relasi (tabel) Derajad / degree / arity adalah jumlah atribut suatu
relasi Domain adalah Himpunan / batasa nilai yang berlaku
bagi suatu atribut misalnya : Domain atribut nilai adalah A, B, C, D, dan E
Domain tidak sama dengan tipe data suatu atribut Istilah relasi biasanya untuk membicarakan struktur logis
sedangkan istilah tabel biasanya untuk basis data fisik
Model Data Dalam SBD
©Silberschatz, Korth and Sudarshan1.56Database System Concepts
Contoh Database Relasional Contoh Database Relasional
©Silberschatz, Korth and Sudarshan1.57Database System Concepts
Model Data Berorientasi Obyek
Model Data Dalam SBD
Model basis data berorientasi objek adalah suatu model basis data, dimana data didefinisikan, disimpan, dan diakses menggunakan pemrograman berorientasi objek.
Basis data berorientasi objek didefinisikan dengan menggunakan bahasa pemrograman berorientasi objek, yaitu bahasa Java.
Aplikasi End user juga di bangun dengan menggunakan bahasa berorientasi objek.
Object database management system digunakan untuk membuat link antara basis data dan aplikasi.
©Silberschatz, Korth and Sudarshan1.58Database System Concepts
Model Data Berorientasi Obyek
Model Data Dalam SBD
Database declarationsusing Java
interaction
Object declarations usingJava
Application code writtenusing Java
Java program compiler
Application executablesgenerated
End user
Database
Contoh : Model Data Berorientasi Obyek
©Silberschatz, Korth and Sudarshan1.59Database System Concepts
Model Data Berorientasi Obyek
Model Data Dalam SBD
Relasi pada basis data berorientasi obyek
Nama Class
PropertiesClass
Operasi / method
©Silberschatz, Korth and Sudarshan1.60Database System Concepts
Model Data Berorientasi Obyek
Model Data Dalam SBD
Kelebihan basis data berorientasi objek:
a. Programmer hanya dibutuhkan memahami konsep berorientasi objek untuk mengkombinasikan konsep berorientasi objek dengan storage basis data relasional
b. Objek dapat dilakukan sifat pewarisan dari objek yang lain
c. Secara teoritis mudah untuk mengatur objek
d. Model data berorientasi objek lebih kompatibel dengan tools pemrograman berorientasi objek.
©Silberschatz, Korth and Sudarshan1.61Database System Concepts
Kelemahan basis data berorientasi objek:
User harus memahami konsep berorientasi objek, karena basis data berorientasi objek tidak dapat bekerja dengan metoda pemrograman tradisional
Model Data Berorientasi Obyek
Model Data Dalam SBD
©Silberschatz, Korth and Sudarshan1.62Database System Concepts
E-R Model (Model Keterhubungan
Entitas)Semesta data di dunia nyata ditansformasikan ke dalam sebuah diagram dengan memanfaatkan perangkat konseptual disebut dengan ERD (Entity Relationship Diagram).
Simbol / Notasi E-R Diagram :
Strong Entity
Weak Entity
AssociativeEntity
Relationship
IdentifyingRelationship
Attribute
MultivaluedAttribute
DerivedAttribute
Link
©Silberschatz, Korth and Sudarshan1.63Database System Concepts
Entity (Entitas)Merupakan individu yang mewakili sesuatu yang nyata dan dapat dibedakan dari sesuatu yang lainnya (individu : manusia, tempat, obyek, kejadian, konsep). Biasanya berhub. Dg baris dlm sebuah tabel).
Entity Sets (Himpunan Entitas) :
Sekelompok entitas yang sejenis dan berada dalam lingkup yang sama
Contoh :Himpunan Entitas : Pelanggan Entitas : Budiman, Suherman dll
Himpunan Entitas : Mobil Entitas : Mobil Suzuki, Mobil Honda dll
Himpunan Entitas : Mahasiswa Entitas : Ali, Budi, Iman dll
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.64Database System Concepts
Contoh :
NIM NamaMahasiswa
Alamat Tgl Lahir
980001 Ali Akbar Jl. Merdeka No. 10 Jakarta 40121 2 Jan 1979980002 Budi Haryanto Jl. Gajah Mada No. 2 Jakarta 6 Okt 1978980003 Imam Faisal Komp. Griya Asri D-2 Depok 40151 13 Mei 1978980004 Indah Susanti Jl. Adil No. 123 Bogor 21 Juni 1979
Himpunan Entitas
Entitas 1
Entitas 3Entitas 4
Entitas 2
E-R Model (Model Keterhubungan
Entitas)
Analogi
©Silberschatz, Korth and Sudarshan1.65Database System Concepts
Atribut (attribute / Properties)Merupakan karakteristik dari sebuah entitas (biasanya berhubungan dengan field dalam sebuah tabel). Penentuan atribut bagi suatu entitas didasarkan pada relevansinya terhadap entitas tersebut.
Atribut Kunci / Identifikasi :Merupakan atribut pengidentifikasi entitas yang paling unik untuk semua entitas dalam himpunan entitasContoh : Atribut NIM pada Himp. Entitas mahasiswa
Atribut Deskriptif :
Merupakan atribut lain selain atribut kunci yang befungsi sebagai penjelasan terhadap entitas dalam himpunan entitasContoh : Atribut nama, alamat, tgl_lahir pada Himp. Entitas MHS
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.66Database System Concepts
Ada tiga macam kunci :
® Superkey Adalah satu / lebih atribut yg dapat membedakan entitas satu dengan lainnya dalam himp entitas
® Candidate Key Merupakan kumpulan atribut minimal yang dapat membeda kan entitas satu dengan lainnya dalam himp entitas.
® Primary Key Salah satu dari candidate key yang digunakan sebagi peng identifikasi suatu entitas dalam himp entitas.
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.67Database System Concepts
superkey
CandidateKey Primary Key
Contoh :
No_KTP No_SIM Nama Alamat
Superkey :No_KTP+No_SIM+Nama+AlamatNo_KTP+No_SIM+NamaNo_KTP+No_SIMNo_KTPNo_SIM
Candidate Key:No_KTPNo_SIM
Primary Key:No_KTP atau No_SIMtergantung kebutuhan
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.68Database System Concepts
Dasar pemilihan Primary Key :1. Key sering digunakan sebagai acuan2. Key lebih ringkas3. Key adalah unik
Atribut Sederhana (Simple Attribute) : atribut atomik yg tidak dapat di pilah lagi
Atribut Komposit (Composite Attribute) : atribut atomik yg dapat di pilah lagi
Contoh :Atribut nama : atribut sederhana (nilai sudah paling kecil / atomik)Atribut alamat : atribut komposit, karena masih dapat dipilah-pilah lagi menjadi atribut : jalan, kota dan kode_pos
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.69Database System Concepts
Atribut bernilai banyak (multivalued attribute) : Merupakan atribut yang dapat bernilai lebih dari 1 nilai yang sejenis
Atribut bernilai tunggal (Single-valued attribute) : Merupakan atribut yang hanya mempunyai satu nilai
Contoh :NIM Nama Alamat Hobi
98001 Rudi Jl. Seroja Renang Nonton98002 Wati Dago Raya Tidur
NIM, Nama dan Alamat : atribut bernilai tunggal
Hobi : atribut bernilai banyak
Atribut Turunan (Derived attribute) : Merupakan atribut yang nilainya diperoleh dari pengolahan atau diturunkan dari atribut / tabel lain
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.70Database System Concepts
Contoh :
NIM Nama Alamat Angkatan IPK
98001 Andi Jl. X 1998 3.299011 Susi Jl. Y 1999 3.0
Angkatan, IPK :
Atribut turunan
Atribut harus bernilai (Mandatory Attribute) :Merupakan atribut-atribut yang harus diisikan nilainya
Atribut tidak harus bernilai (Non Mandatory Attribute / Null) :Merupakan atribut-atribut yang nilainya boleh dikosongi
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.71Database System Concepts
Relasi (Relationship) :Digunakan untuk menunjukan hubungan antar entitas
Himpunan Relasi (Relationship Sets) :Merupakan kumpulan semua relasi diantara entitas
Contoh :Mahasiswa Mata Kuliah
NIM Nama ...
98001 Andi ...98003 Rudi ...
Kode_kul Nama_kul sks
A01 Pancasila 2A03 Internet I 2A02 Network I 2
Dari tabel-tabel diatas, dapat dilihat bahwa terdapat hubungan / relasiantara himp entitas mahasiswa dengan mata kuliah.--> Andi mempelajari mata kuliah Internet I--> Rudi mempelajari mata kuliah Internet I dan Network I
98013 Susi ...
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.72Database System Concepts
Sehingga apabila dimodelkan dengan E-R Diagram :
Mahasiswa Mata kuliahMempe lajari
NIM
Nama
Kode_kul
Nama_kul
sks
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.73Database System Concepts
Kardinalitas / Derajad Relasi :Merupakan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himp entitas yang lain.
Macam-macam Kardinalitas : Satu ke satu (one to one)
A B
Entitas 1Entitas 2Entitas 3Entitas 4
Entitas 2Entitas 3Entitas 4
Entitas 1Setiap entitas pada himp entitas A Berhubungan dengan paling banyak Dengan satu entias pada himpunanEntitas B dan begitu juga sebaliknya
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.74Database System Concepts
Contoh :
Dosen ProgdiMengepalai
1 1
Nama-Dosen alamat Nama_progKode
Nama-Dosen Kode
Satu dosen paling banyak mengepalai satu program studi (walaupun tidak semua dosen menjadi ketua) dan setiap program studi di kepalai oleh paling banyak satu dosen.
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.75Database System Concepts
Satu ke banyak (one to many)
Setiap entitas pada himp entitas A Berhubungan dengan banyak entias pada himpunan entitas B, tetapiTidak sebaliknya
A B
Entitas 1Entitas 2Entitas 3Entitas 4
Entitas 1Entitas 2Entitas 3Entitas 4
Contoh :Setiap agama dapat dianut oleh lebih dari satu mahasiswa,tetapi tidak sebaliknya (setiap mahasiswa hanya dapat menganut satu agama)
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.76Database System Concepts
Agama Mahasiswadianut1 N
Kode_agm
Deskripsi
Kode_agm NIM
NIM
Nama
Semester
E-R Model (Model Keterhubungan
Entitas)Contoh :
©Silberschatz, Korth and Sudarshan1.77Database System Concepts
banyak ke banyak (many to many)
Setiap entitas pada himp entitas A Berhubungan dengan banyak entias pada himp entitas B, dan sebaliknya
A B
Entitas 1Entitas 2Entitas 3Entitas 4
Entitas 1Entitas 2Entitas 3Entitas 4
Contoh :Setiap dosen dapat mengajar lebih dari satu mata Kuliah dan setiap mata kuliah dapat diajar oleh lebihDari satu dosen
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.78Database System Concepts
Contoh :
Dosen Mata KuliahMengajarN N
Nama_dos
Alamat_dos
Nama_dos
tempat
waktu
kode-_kuliah
Kode_kuliah
Nm_kuliah
SKS
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.79Database System Concepts
Tahapan pembuatan E-R Diagram :
Mengidentifikasi dan menetapkan seluruh himpunan entitas yang akan terlibat Menentukan atribut-atribut kunci dari masing-masing himpunan entitas Mengidentifikasi dan menetapkan seluruh himpunan relasi di antara himpunan entitas – himpunan entitas yang ada beserta foreign key (kunci tamu) Menentukan derajad / kardinalitas relasi untuk setiap himpunan entitas Melengkapi himpunan entitas dan himpunan relasi dengan atribut-atribut deskriptif
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.80Database System Concepts
ERD dengan kamus data :Pada sebuah sistem yang kompleks, penggambaran atribut-atribut dalam sebuah ERD seringkali kelihatan lebih rumit. Untuk itu pendeklarasian atribut-atribut tersebut dapat menggunakan kamus data.
Contoh :
Dosen Mata KuliahMengajarN N
Kamus Data :
Dosen = {Nama_dos, Alamat_dos}Mengajar = {Nama_dos, KD_kuliah, Waktu, Tempat, Ruang }Mata Kuliah = {Kd_kuliah, Nm_kuliah, SKS}
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.81Database System Concepts
Derajad Relasi Minimum :Menunjukan hubungan (korespondensi) minimum yang boleh terjadi dalam suatu relasi antar himpunan entitas. Nilai derajad relasi minimumhanya boleh 0 atau 1.
Contoh :
Mahasisa Mata KuliahMempela jari
(0,N)
® Setiap mahasiswa dapat mempelajri banyak mata kuliah tetapi ada mahasiswa yang belum / tidak mempelajari mata kuliah satupun.® Setiap mata kuliah dapat dipelajari oleh banyak mahasiswa, tetapi bisa juga ada mata kuliah yang tidak / belum diikuti oleh satupun mahasiswa
(0,N)
minimum maksimum
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.82Database System Concepts
ERD dalam Notasi Lain :
Notasi :
Notasi Derajad Relasi Minimum - Maksimum
(0,N)
(1,N)
(1,1)
(0,1)
o
o
atau
atau
atau
atau
o
o
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.83Database System Concepts
Contoh :
Mahasisa Mata KuliahMempela jari
o o
Kamus Data :
Mahasiswa = {NIM, Nama, Alamat}Mempelajri = {NIM, KD_kuliah, Waktu, Tempat, Ruang }Mata Kuliah = {Kd_kuliah, Nm)kuliah, SKS}
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.84Database System Concepts
Varian Entitas :
Strong Entity (entitas kuat)Himpunan entitas yg tidak memiliki ketergantungan dg entitas yang lain.
Weak Entity (entitas Lemah)Himpunan entitas yg keberadaannya tergantung dengan entitas yang lain. Himpunan entitas yg demikian tidak memp.Atribut yg berfungsi sebagai key yg benar-benar menjaminkeunikan entitas.
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.85Database System Concepts
Entitas lemah (Weak Entity Sets)Entitas lemah (Weak Entity Sets) Entitas lemah disimbolkan dengan persegi panjang double.
discriminator dari entitas lemah ditandai dengan garis bawah terputus.
payment-number – discriminator dari entitas lemah payment
Primary key dari payment – (loan-number, payment-number)
©Silberschatz, Korth and Sudarshan1.86Database System Concepts
Entitas lemah (Weak Entity Sets)Entitas lemah (Weak Entity Sets)
Catatan : Kunci utama dari entitas kuat tidak secara eksplisit menjadi kunci utama entitas lemah, hal tersebut hanya berlaku selama ada relasi.
Jika loan-number secara eksplisit menggantikan, payment dapat menjadi entitas kuat, tetapi kemudian antara payment dan loan akan menjadi duplikasi dengan atribut loan-number yang menggabungkan payment dan loan
©Silberschatz, Korth and Sudarshan1.87Database System Concepts
Orang Tua
Hobbi
Mahasiswa
memiliki
Menyenangi
NIM
Nama
alamat
Tgl_lhr
NIMNm_ortu
NM_ortu
NIM hobbi
alm_ortu
Hobbi
Kunci utamaKunci yg tidakmenyakinkan
E-R Model (Model Keterhubungan
Entitas)Contoh :
©Silberschatz, Korth and Sudarshan1.88Database System Concepts
Varian Relasi : Relasi Tunggal (Unary Relation)
Relasi yang terjadi dari antar himpunan entitas yg sama
Contoh :
Dosen Mendam pingi
1
N
Nama_dos
Nama_dos
Keahlian
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.89Database System Concepts
Relasi Ganda (Redundant Relation)
E-R Model (Model Keterhubungan
Entitas)
Dosen Kuliah
Meng ajar
Menguasai
1
N
N
N
Kd_kulNm_dos
tempatwaktu
Nm_dos Kd_kul
Contoh :
©Silberschatz, Korth and Sudarshan1.90Database System Concepts
Relasi Multi Entitas (N-ary / Ternary Relation)
E-R Model (Model Keterhubungan
Entitas)
Merupakan relasi yang terdiri dari 3 himpunan entitas / lebih
Kuliah Dosen
Ruang
Pengajaran
Kd_kul
nm_kul
sks
Kd_rgwaktu
Nama_dos
Kd_rg
Nm_rg
kap
Nama_dosKd_kul
Contoh :
©Silberschatz, Korth and Sudarshan1.91Database System Concepts
E-R Model (Model Keterhubungan
Entitas)Spesialisasi :
Merupakan proses dekomposisi (pengelompokkan) sebuah himpunanentitas yg melahirkan himpunan entitas baru yang dilakukan secaratop-down.
Proses perancangan Top down; Membuat sub-grup dari
entitas sehingga menjadi berbeda dengan entitas yang lain.
Hasil dari sub grouping adalah entitas tingkat rendah dimana salah satu atribut sebagai relasi dengan entitas diatasnya.
Digambarkan dengan segitiga dan diberi label ISA (Mis. Pelanggan “is a” Manusia).
©Silberschatz, Korth and Sudarshan1.92Database System Concepts
Contoh 1 :
dosen
Dosen tetap Dosen ttd tetap
Is a
Top - down
Nm_dos
alm_dos
Nm_kantor
alm_kantor
nik
pangkat
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.93Database System Concepts
Contoh 2 :
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.94Database System Concepts
E-R Model (Model Keterhubungan
Entitas)Generalisasi :Merupakan penyatuan beberapa himpunan entitas menjadisebuah himpunan entitas baru. Atribut dari masing-masinghimpunan entitas disatukan kedalam himpunan entitas baru.
Proses perancangan bottom-up – menggabungkan
beberapa entitas yang mempunyai atribut yang sama
menjadi entitas yang lebih tinggi tingkatnya.
Spesialisasi dan generalisasi adalah upaya
penyederhanaan; dan dapat digambarkan dengan ERD.
Peristiwa spesialisasi dan generalisasi dapat diterapkan
bolak-balik.
©Silberschatz, Korth and Sudarshan1.95Database System Concepts
Contoh :Mahasiswa
Mahasiswa D3 Mahasiswa S1
Is a
bottom - up
E-R Model (Model Keterhubungan
Entitas)
©Silberschatz, Korth and Sudarshan1.96Database System Concepts
Spesialisasi dan GeneralisasiSpesialisasi dan Generalisasi
Pada sebuah entitas dapat dilakukan spesialisasi bertingkat tergantung dari kompleksitas entitas tersebut.
Mis. Karyawan_tetap vs. karyawan_tidak_tetap, dapat dibagi lagi berdasar pekerjaannya officer vs. sekretaris vs. teller
Setiap bagian dari karyawan dapat menjadi : Anggota dari karyawan_tetap atau karyawan _tidak_tetap,
Dan juga anggota dari officer, sekretaris atau teller
Realisasi ISA adalah relasi superclass - subclass
©Silberschatz, Korth and Sudarshan1.97Database System Concepts
Batasan perancangan dalam Batasan perancangan dalam Spesialisasi/GeneralisasiSpesialisasi/Generalisasi
Batasan sebuah entitas dapat menjadi anggota suatu entitas lain yang lebih tinggi. Tergantung dari keadaan
Mis. Semua pelanggan yang berusia diatas 65 tahun anggota entitas manusia_sepuh; manusia_sepuh ISA manusia.
Tergantung user
Batasan apakah entitas dimiliki oleh lebih dari satu entitas tingkat rendah dengan sebuah generalisasi. Disjoint
Sebuah entitas dapat dimiliki oleh hanya satu entitas tingkat rendah
Dalam diagram E-R tulis disjoint setelah segitiga ISA Overlapping
Sebuah entitas dapat dimiliki oleh lebih dari satu entitas tingkat rendah
©Silberschatz, Korth and Sudarshan1.98Database System Concepts
Batasan perancangan dalam Batasan perancangan dalam Spesialisasi/GeneralisasiSpesialisasi/Generalisasi
Batasan kelengkapan – spesifikasi apakah sebuah entitas merupakan entitas tingkat tinggi atau tidak harus dimiliki oleh satu atau lebih entitas yang lebih rendah dalam relasi generalisasi. total : sebuah entitas harus dimiliki oleh satu atau lebih entitas
tingkat rendah
Partial (sebagian): sebuah entitas tidak harus dimiliki oleh salah satu entitas tingkat rendah
©Silberschatz, Korth and Sudarshan1.99Database System Concepts
Agregasi :
Contoh :
Mahasiswa
Praktikum
Merupakan sebuah relasi yang secara kronologis mensyaratkantelah adanya relasi lain.
E-R Model (Model Keterhubungan
Entitas)
mempelajari Kuliah
mengikuti
N N
N
NNIM
Kd_rg
Kd_kul
nilai
Nama_prKd_rg
Kd_kul
nm_kul
NIM
Nama
©Silberschatz, Korth and Sudarshan1.100Database System Concepts
AgregasiAgregasi
Sehubungan dengan relasi ternary works-on, seperti pada contoh
dibawah
Seandainya kita ingin mengetahui manajer dari seorang karyawan
di sebuah cabang
©Silberschatz, Korth and Sudarshan1.101Database System Concepts
AgregasiAgregasi
Relasi works-on dan manages menyajikan informasi yang tumpang tindih Setiap relasi manages berhubungan dengan sebuah relasi pada works-on
Sementara itu, beberapa relasi works-on mungkin tidak berhubungan dengan relasi manages
Kita dapat membuang relasi works-on
Hilangkan kerangkapan dengan agregasi Anggap sebuah relasi dan entitas yang berelasi adalah sebuah entitas
Buat relasi dengan entitas lain
Tanpa mengenalkan istilah kerangkapan, diagram tersebut dapat diubah: Seorang karyawan bekerja di sebuah bagian di suatu cabang
Seorang karyawan , cabang, bagian dapat digabungkan dengan seorang manajer
©Silberschatz, Korth and Sudarshan1.102Database System Concepts
Diagram E-R dengan AgregasiDiagram E-R dengan Agregasi
©Silberschatz, Korth and Sudarshan1.103Database System Concepts
Diagram E-R Diagram untuk BankDiagram E-R Diagram untuk Bank
©Silberschatz, Korth and Sudarshan1.104Database System Concepts
ExerciseExercise
Consider a university database for the scheduling of classrooms for final exams.This database could be modeled as the single entity set exam, with attributescourse_number, section_number, room_number and time. Alternatively, one ormore additional entity sets could be defined, along with relationship sets to replace some of the attributes of the exam entity set, as☻ course with attributes name, department, and course_number☻ section with attributes section_number and enrollment, and dependent as a weak entity set on course☻ room with attributes room_number, capacity and building
Show an E-R Diagram illustrating the use of all three additional entity sets listed.
©Silberschatz, Korth and Sudarshan1.105Database System Concepts
E-R Model (Model Keterhubungan
Entitas)Transformasi ERD ke Basis Data Fisik (Tabel)Aturan-aturan :
1. Setiap Himp. Entitas Ditransformasikan sebagai sebuah tabel
Contoh :
Mahasiswa
nim
Nama_mhs
alamat
Nim nama_mhs alamat
mahasiswa
©Silberschatz, Korth and Sudarshan1.106Database System Concepts
E-R Model (Model Keterhubungan
Entitas)2. Relasi dengan Derajad satu-ke-satu yang menghubungkan 2 himp. Entitas akan transformasikan kedalam bentuk penyer taan atribut-atribut relasi ke salah satu himp. Entitas
1
1
Dosen
Progdi
mengepalai
Kode_dos
nm_dos
Kode_dos
Kode_P
Kode_p
nm_p
Kode_dos nm_dos
Kode_p nm_p Kode_dos
Atribut yg ditambahkan
dosen
progdi
©Silberschatz, Korth and Sudarshan1.107Database System Concepts
E-R Model (Model Keterhubungan
Entitas)Ketentuan penyertaan atribut adalah :
Atribut-atribut relasi akan disertakan ke himp. Entitas yg mempunyai derajad relasi minimumnya yg lebih besar
Atribut-atribut relasi akan disertakan ke himp. Entitas yg mempunyai jumlah record yg lebih sedikit
atau
©Silberschatz, Korth and Sudarshan1.108Database System Concepts
E-R Model (Model Keterhubungan
Entitas)3. Relasi dengan Derajad satu-ke-banyak yg menghubungkan 2 himp. Entitas akan transformasikan kedalam bentuk penyer taan atribut-atribut relasi ke himp. Entitas yg derajad rela sinya banyak (many).
1
m
dosen
Kuliah
mengajar
Kode_dos
nm_dos
Kode_dos
Kode_kul
ruang
Kode_kul
nm_kul
sks
Kode_dos nm_dos
Kode_kul nm_kul sks kode_dos ruang
Atribut yg ditambahkan
dosen
kuliah
©Silberschatz, Korth and Sudarshan1.109Database System Concepts
E-R Model (Model Keterhubungan
Entitas)4. Relasi dengan Derajad banyak-ke-banyak yg menghubungkan dua himp. Entitas, maka atribut-atribut relasi akan di ke transformasikan menjadi sebuah tabel
m
m
Mahasiswa
kuliah
krs
nimnama
nim Kode_kul
nilaiKode_k
ulNm_kul
sks
Nim nama
Nim kode-Kul nilai
Kode_kul nm_kul sks
mahasiswa
krs
kuliah
©Silberschatz, Korth and Sudarshan1.110Database System Concepts
E-R Model (Model Keterhubungan
Entitas)5. Implementasi Himp. Entitas Lemah
memiliki
mahasiswa
orangtua
Hobbi
nim
nim
nim
namahobbi
Nm_ortu
Nm_ortu
Alm_ortu
hobbisenang
1
1
1
n
Nim nama Nm_ortu alm_ortu nim Hobi nim
hobbiorangtuamahasiswa
Key yang diambil dari entitas kuat
©Silberschatz, Korth and Sudarshan1.111Database System Concepts
E-R Model (Model Keterhubungan
Entitas)6. Implementasi Spesialisasi
dosen
Dosen tetap Dosen tidak tetap
Kd_dosnm_dos
alm_dos
Nm_kantor
Alm_kantor
nip
pangkat
Tgl_msk
Is a
Kd_dos nm_dos alm_dos Nip pangkat tgl_msk kd_dos Nm_ktr alm_ktr kd_dos
dosen Dosen tetap Dosen tidak tetap
Key yg diambil dari entitas utama
©Silberschatz, Korth and Sudarshan1.112Database System Concepts
E-R Model (Model Keterhubungan
Entitas)7. Implementasi Generalisasi
mahasiswa
Mahasiswa d3 Mahasiswa s1
nimnama
alamat
Is a
Nim nama alamat progdimahasiswa
©Silberschatz, Korth and Sudarshan1.113Database System Concepts
E-R Model (Model Keterhubungan
Entitas)7. Implementasi unary relation
dosen mendampingi
prasyaratkuliah
n
n
Kd_kul
Nm_kul
1
n
Kd_kul
Kd_dos
Nm_dos
Kd_dos
Kd_dos nm_dos kd_dos_pen
dosen
Kd_kul nm_kulkuliah
Kd_kul kd_kul_syarat
prasyarat
Nama atribut diganti sesuai dg fungsinya
©Silberschatz, Korth and Sudarshan1.114Database System Concepts
Functional DependencyAnd
Normalization
©Silberschatz, Korth and Sudarshan1.115Database System Concepts
title year length filmType studioName starName
Star Wars 1977 124 color Fox Carrie Fisher
Star Wars 1977 124 color Fox Mark Hamill
Star Wars 1977 124 color Fox Harrison Ford
Mighty Ducks 1991 104 color Disney Emilio Estevez
Wayne’s World 1992 95 color Paramount Dana Carvey
Wayne’s World 1992 95 color Paramount Mike Meyers
Tabel : Film
motivasi
What your comment
………..Is a “good” design .. ??
©Silberschatz, Korth and Sudarshan1.116Database System Concepts
title year length filmType studioName starName
Star Wars 1977 124 color Fox Carrie Fisher
Star Wars 1977 124 color Fox Mark Hamill
Star Wars 1977 124 color Fox Harrison Ford
Mighty Ducks 1991 104 color Disney Emilio Estevez
Wayne’s World 1992 95 color Paramount Dana Carvey
Wayne’s World 1992 95 color Paramount Mike Meyers
Redundancy Informasi diulang-
ulang dalam beberapa tupel
125
Update AnomalyUpdate informasi
pada satu tupel tidak mengubah pada tupel
yang lain
motivasi
Tabel : Film
©Silberschatz, Korth and Sudarshan1.117Database System Concepts
title year length filmType studioName starName
Star Wars 1977 124 color Fox Carrie Fisher
Star Wars 1977 124 color Fox Mark Hamill
Star Wars 1977 124 color Fox Harrison Ford
Mighty Ducks 1991 104 color Disney Emilio Estevez
Wayne’s World 1992 95 color Paramount Dana Carvey
Wayne’s World 1992 95 color Paramount Mike Meyers
Tabel : Film
motivasi
Delete AnomalyJika Emilio Estavez
dihapus, akan kehilangan informasi
tentang Mighty Ducks
©Silberschatz, Korth and Sudarshan1.118Database System Concepts
Star Wars 1977 124 Color MGM James Earl Jones
Tabel : Film
motivasi
Insertion AnomalyJika kita sisipkan tupel baru
(Star Wars, 177, 124, color, MGM, James Earl Jones)maka akan terjadi inkonsistensi pada atribut studio
title year length filmType studioName starName
Star Wars 1977 124 color Fox Carrie Fisher
Star Wars 1977 124 color Fox Mark Hamill
Star Wars 1977 124 color Fox Harrison Ford
Mighty Ducks 1991 104 color Disney Emilio Estevez
Wayne’s World 1992 95 color Paramount Dana Carvey
Wayne’s World 1992 95 color Paramount Mike Meyers
©Silberschatz, Korth and Sudarshan1.119Database System Concepts
Masalah Anomali : Redundancy: Pengulangan informasi dalam
beberapa tupel yang sebenarnya tidak diperlukan.
Update anomalies: Pengubahan informasi dalam satu tupel yang tidak kompak (inkonsistensi).
Deletion anomalies: Kehilangan informasi akibat penghapusan informasi.
Insertion anomalies: Penambahan tupel baru yang tidak konsisten.
motivasi
©Silberschatz, Korth and Sudarshan1.120Database System Concepts
Integrity- redundansi- ambiguitas
Performance- kecepatan akses- efisiensi storage
Maintainability- update - delete- insert
Problems With :
Tabel Database yang baik (Good Design) : Mampu merepresentasikan informasi.
Jika ada dekomposisi maka dekomposisinya adalah aman (Lossless, not Lossy)
Terpeliharanya ketergantungan fungsionalMempunyai skema relasi yang baik, kemudahan update data tanpa anomali(Dependency Preservation)
Tidak terjadi pengulangan data- Tidak melanggar Boyce Codd Normal Form (BCNF)- Jika tidak dapat diupayakan memenuhi BCNF, maka minimal memenuhi bentuk 3NF(No Redundancy, anything say once)
Goals :
motivasi
©Silberschatz, Korth and Sudarshan1.121Database System Concepts
Teori Dasar : Dekomposisi Relasi
Key
Ketergantungan Fungsional
we discuss before …
©Silberschatz, Korth and Sudarshan1.122Database System Concepts
dekomposisi relasi
Diketahui skema relasi R. Gugus relasi {R1, R2, ,…, Rn} disebutDekomposisi dari R jika :
Dekomposisi : memecah relasi/tabel menjadi relasi/tabel yang lebih kecil untuk mendapatkan skema yang tidak mengandung anomali dan redundansi
R1 R2 … Rn = RR1 R2 … Rn = R
Artinya {R1, R2, …, Rn} dekomposisi dari R jika setiap atribut dalam R muncul paling sedikit di salah satu Ri untuk 1 i n
©Silberschatz, Korth and Sudarshan1.123Database System Concepts
idfilm title year length
filmType
F001 Star Wars 1977 124 color
F002 Mighty Ducks 1991 104 color
F003 Wayne’s World
1992 95 color
idstudio studioName
STD01 Fox
STD02 Disney
STD03 Paramount
idstar starName
STR01 Carrie Fisher
STR02 Mark Hamill
STR03 Harrison Ford
STR04 Emilio Estevez
STR05 Dana Carvey
STR06 Mike Meyers
idfilm title year length
filmType
idstudio
studioName
idstar starName
F001 Star Wars 1977 124 color STD01 Fox STR01 Carrie Fisher
F001 Star Wars 1977 124 color STD01 Fox STR02 Mark Hamill
F001 Star Wars 1977 124 color STD01 Fox STR03 Harrison Ford
F002 Mighty Ducks 1991 104 color STD02 Disney STR04 Emilio Estevez
F003 Wayne’s World 1992 95 color STD03 Paramount STR05 Dana Carvey
F003 Wayne’s World 1992 95 color STD03 Paramount STR06 Mike Meyers
DaftarFilm StudioFilm BintangFilm
Film original
Decomposition result
dekomposisi relasi
©Silberschatz, Korth and Sudarshan1.124Database System Concepts
dekomposisi relasi
Lossless Join digunakan untuk menjamin keutuhan data untuk operasi gabungan (join) dan merupakan fokus dalam desain basis data
relasional
Dekomposisi relasi R menjadi gugus relasi {R1, R2, …, Rn} yang tidak menyebabkan hilangnya informasi disebut Lossless-Join Decomposition.Jadi, jika r R dan ri = Ri(R) dimana 1 i n maka akan selalu memenuhi kondisi berikut :
i
n
ii
n
irrataurr
11
i
n
irr
1
atau
Dekomposisi relasi R menjadi gugus relasi {R1, R2, …, Rn} yang menyebabkan hilangnya informasi disebut Lossy-Join Decomposition.
©Silberschatz, Korth and Sudarshan1.125Database System Concepts
Film = (idfilm, title, year, length, filmType, idstudio, studioName, idstar, starName)
there is Anomaly !! Decompose it ……
idfilm title year length filmType idstudio studioName idstar starName
F001 Star Wars 1977 124 color STD01 Fox STR01 Carrie Fisher
F001 Star Wars 1977 124 color STD01 Fox STR02 Mark Hamill
F001 Star Wars 1977 124 color STD01 Fox STR03 Harrison Ford
F002 Mighty Ducks 1991 104 color STD02 Disney STR04 Emilio Estevez
F003 Wayne’s World 1992 95 color STD03 Paramount STR05 Dana Carvey
F003 Wayne’s World 1992 95 color STD03 Paramount STR06 Mike Meyers
dekomposisi relasi
Oopss !!!
©Silberschatz, Korth and Sudarshan1.126Database System Concepts
idfilm title year length
filmType
F001 Star Wars 1977 124 color
F002 Mighty Ducks 1991 104 color
F003 Wayne’s World
1992 95 color
idstudio studioName
STD01 Fox
STD02 Disney
STD03 Paramount
idstar starName
STR01 Carrie Fisher
STR02 Mark Hamill
STR03 Harrison Ford
STR04 Emilio Estevez
STR05 Dana Carvey
STR06 Mike Meyers
idfilm title year length
filmType
idstudio
studioName
idstar starName
F001 Star Wars 1977 124 color STD01 Fox STR01 Carrie Fisher
F001 Star Wars 1977 124 color STD01 Fox STR02 Mark Hamill
F001 Star Wars 1977 124 color STD01 Fox STR03 Harrison Ford
F002 Mighty Ducks 1991 104 color STD02 Disney STR04 Emilio Estevez
F003 Wayne’s World 1992 95 color STD03 Paramount STR05 Dana Carvey
F003 Wayne’s World 1992 95 color STD03 Paramount STR06 Mike Meyers
dekomposisi relasi
Losslessor
Lossy ?
DaftarFilm StudioFilm BintangFilm
Film
Andaikan di dekomposisiMenjadi 3 tabel tsb ….
©Silberschatz, Korth and Sudarshan1.127Database System Concepts
“Di studio manakah Star Wars dibuat ?”
Karena kita harus melakukan operasi gabungan terlebih dahulu dariKe-2 tabel. Misal kita lakukan operasi “cross product” antara Daftar_Film dan StudioFilm.
Pasti kita akan membutuhkan tabel DaftarFilm dan StudioFilm.
Dengan ke-3 tabel hasil dekomposisi, misal ditanyakan informasi :
Tapi dapatkah diperoleh informasi yang kita inginkan dari kedua skema relasi tersebut ?
Tampaknya : TIDAK.
dekomposisi relasi
DaftarFilm StudioFilm
©Silberschatz, Korth and Sudarshan1.128Database System Concepts
idfilm title year length filmType idstudio studioName
F001 Star Wars 1977 124 color STD01 Fox
F001 Star Wars 1977 124 color STD02 Disney
F001 Star Wars 1977 124 color STD03 Paramount
F002 Mighty Ducks 1991 104 color STD01 Fox
F002 Mighty Ducks 1991 104 color STD02 Disney
F002 Mighty Ducks 1991 104 color STD03 Paramount
F003 Wayne’s World 1992 95 color STD01 Fox
F003 Wayne’s World 1992 95 color STD02 Disney
F003 Wayne’s World 1992 95 color STD03 Paramount
Ternyata kita tidak mendapatkan informasi yang dibutuhkan, karena film Star Wars dibuat oleh 3 studio (Fox, Disney, Paramount)
dekomposisi relasiKehilanganInformasi !!
DaftarFilm StudioFilm
LOSSY DECOMPOSITION
©Silberschatz, Korth and Sudarshan1.129Database System Concepts
Functional Dependencies (FD) / Ketergantungan Fungsional (KF) digunakan untuk menggambarkan atau mendeskripsikan bentuk normal atas suatu relasi
functional dependencies (FD)
FD adalah batasan terhadap gugus relasi yang berlaku. Diperoleh berdasarkan hubungan antar atribut data.
Kegunaan FD :1. Untuk memeriksa keabsahan apakah semua relasi
sesuai dengan ketergantungan fungsional yang diberikan2. Untuk menetapkan batasan gugus relasi yang berlaku3. Untuk menentukan kunci relasi4. Untuk melakukan normalisasi atas suatu tabel relasional
©Silberschatz, Korth and Sudarshan1.130Database System Concepts
Misalkan R adalah suatu skema relasional, atribut x R dan y Rmaka x dikatakan secara fungsional menentukan y (atau y bergantung secara fungsional pada x), ditulis x y pada R, jika :1. Semua tupel ti [x], 1 i n adalah unik/tunggal2. Semua pasangan tupel dimana ti [x] = tj [x], i j, terjadi juga ti [y] = tj [y]
dengan kata lain :
Untuk setiap nilai x terdapat hanya satu nilai y (x menentukan secara tunggal nilai y). Jadi apabila terdapat 2 tuple t1 dan t2 mempunyai nilai atribut x yang sama, maka juga akan mempunyai nilai atribut y yang sama. t1[x] = t2 [x] t1[y] = t2 [y] pada skema relasi R
Misalkan R adalah suatu skema relasional, atribut x R dan y Rmaka x dikatakan secara fungsional menentukan y (atau y bergantung secara fungsional pada x), ditulis x y pada R, jika :1. Semua tupel ti [x], 1 i n adalah unik/tunggal2. Semua pasangan tupel dimana ti [x] = tj [x], i j, terjadi juga ti [y] = tj [y]
dengan kata lain :
Untuk setiap nilai x terdapat hanya satu nilai y (x menentukan secara tunggal nilai y). Jadi apabila terdapat 2 tuple t1 dan t2 mempunyai nilai atribut x yang sama, maka juga akan mempunyai nilai atribut y yang sama. t1[x] = t2 [x] t1[y] = t2 [y] pada skema relasi R
functional dependencies (FD)
definisi
©Silberschatz, Korth and Sudarshan1.131Database System Concepts
R = (A, B, C)
A B
1 4
1 5
2 7
A B ?t1(A)=t2(A), tetapi t1(B) t2(B)
A B C D
A1 B1 C1 D1
A1 B2 C1 D2
A2 B2 C2 D2
A2 B3 C2 D3
A3 B3 C2 D4
R = (A,B,C,D)
A C ? C A ? (A,B) C ? (A,B) D ?
C
C1
C1
C2
Maka A B A C ?
t1(A)=t2(A) dan t1(C) = t2(C)
Maka A C
functional dependencies (FD)
contoh
YesNoYesYes
©Silberschatz, Korth and Sudarshan1.133Database System Concepts
Film = (idfilm, title, year, length, filmType, idstudio, studioName, idstar, starName)
idfilm title year length filmType idstudio studioName idstar starName
F001 Star Wars 1977 124 color STD01 Fox STR01 Carrie Fisher
F001 Star Wars 1977 124 color STD01 Fox STR02 Mark Hamill
F001 Star Wars 1977 124 color STD01 Fox STR03 Harrison Ford
F002 Mighty Ducks 1991 104 color STD02 Disney STR04 Emilio Estevez
F003 Wayne’s World 1992 95 color STD03 Paramount STR05 Dana Carvey
F003 Wayne’s World 1992 95 color STD03 Paramount STR06 Mike Meyers
F004 My Hearts 1992 101 color STD04 MGM STR01 Carrie Fisher
F004 My Hearts 1992 101 color STD04 MGM STR01 Carrie Fisher
Apakah : idfilm title ?idstar studioName ?(idfilm,idstar) starName ?
functional dependencies (FD)
contoh
©Silberschatz, Korth and Sudarshan1.134Database System Concepts
FD dirumuskan berdasarkan batasan dari dunia nyata suatu atribut.Contoh : - Nomor Induk mahasiswa menentukan NamaMahasiswa NIM NamaMhs- Kode Matakuliah menentukan Nama Mata Kuliah dan SKS KodeMK (NamaMK, SKS)- NIM dan Kode Mata Kuliah menentukan Nilai Matakuliah (NIM,KodeMK) NilaiMK
Suatu FD : x y disebut trivial jika y x
functional dependencies (FD)
Contoh :X XX,Y XX,Y Y
X,Y,Z X,ZX,Y,Z ZX,Y,Z X,Y,Z
©Silberschatz, Korth and Sudarshan1.135Database System Concepts
functional dependencies (FD)
Armstrong’s Rule
A1. ReflexiveJika y x maka x y
A2. AugmentationJika x y maka (x,z) (y,z)
A3. TransitiveJika x y dan y z maka x z
A4. DecompositionJika x (y,z) maka x y dan x z
A5. UnionJika x y dan x z maka x (y,z)
A6. PseudotranstivityJika x y dan (z,y) w maka (x,z) w
Diketahui x y Dari A2 (x,z) (y,z)Diketahui (z,y) w Dari A3 (x,z) w
©Silberschatz, Korth and Sudarshan1.136Database System Concepts
Manfaat FD pada dekomposisi
Untuk :1. Lossless Join Decomposition Mendapatkan dekomposisi yang tidak kehilangan data/informasi2. No Redundancy
Mendapatkkan skema relasi yang tidak mengandung redundansi3. Dependency Preservation
Terjaminnya pemeliharaan ketergantungan sehingga dapat mengatasi masalah update anomali
©Silberschatz, Korth and Sudarshan1.137Database System Concepts
uji lossless-join decomposition
Misal diketahui skema relasi R didekomposisi menjadi gugus relasi {R1, R2, R3, R4, …, Rn}, maka dekomposisi ini disebut Lossless Join Decomposition jika kondisi R1 R2 R3 … Rn Ri dipenuhi sekurang-kurangnya untuk 1 nilai i, dimana 1 i n.
Dengan kata lain, jika diketahui skema relasi R didekomposisi menjadi gugus relasi {R1, R2}, maka dekomposisi ini disebut Lossless Join Decomposition jika dipenuhi salah satu kondisi : R1 R2 R1 atau R1 R2 R2
Langkah-2 Uji Lossless-joint Decomposition :1. Uji Dekomposisi
R1 R2 … Rn = R2. Uji Lossless-join
Menggunakan sifat ketergantungan fungsional
©Silberschatz, Korth and Sudarshan1.138Database System Concepts
uji lossless-join decomposition
contoh
Diketahui skema relasi R=(A,B,C,D,E,F,G,H) didekomposisi menjadi :R1=(A,B,C,D,G) dan R2=(B,D,E,F,H). FD pada R yang berlaku adalah :(1) B A,G(2) E D,H(3) A E,C(4) D FUjilah apakah dekomposisi {R1,R2} tersebut lossless atau lossy ?
1. Uji Dekomposisi
R1 R2 = (A,B,C,D,G) (B,D,E,F,H)= (A,B,C,D,E,F,G,H)= R
.:. Terbukti bahwa {R1,R2} adalah dekomposisi dari R.
©Silberschatz, Korth and Sudarshan1.139Database System Concepts
uji lossless-joint decomposition
contoh
2. Uji Lossless
Dari (1) B A,G maka :(5) B,D A,G,D (augmentasi)(6) B,D B,D (refleksif)
Jadi (7) B,D A,B,D,G(1) B A,G maka(8) B A dan (9) B G
Dari (3) A E,C maka(10) A E dan(11) A C maka :
R1 R2 = (A,B,C,D,G) (B,D,E,F,H)= (B,D)
Akan dibuktikan bahwa paling sedikit satu kondisi berikut dipenuhi : R1 R2 R1 ; (B,D) (A,B,C,D,G) atau R1 R2 R2 ; (B,D) (B,D,E,F,H)
Dari (8) B Adan (11) A C Maka (12) B C (transitif) Dan (13) B,D C,D (augmentasi)
Dari (7) dan (13) didapat :B,D A,B,C,D,G
terbukti{R1,R2}Lossless
Dari contoh di atas, tunjukkan pula bahwa (B,D) (B,D,E,F,H)
©Silberschatz, Korth and Sudarshan1.140Database System Concepts
uji dependency preservation
Misal skema relasi R dengan himpunan ketergantungan fungsional F didekomposisi menjadi R1,R2,R3,…,Rn. Dan F1,F2,F3,…,Fn adalah himpunan ketergantungan fungsional yang berlaku di R1,R2,R3,…,Rn maka dekomposisi tersebut dikatakan memenuhi sifat Dependency Preservation apabila berlaku :
(F1 F2 F3 … Fn)+ = F+
Dependency Preservation (Pemeliharaan Ketergantungan) merupakan kriteria yang menjamin keutuhan relasi ketika suatu relasi didekomposisi menjadi beberapa tabel. Sehingga diharapkan tidak terjadi inkonsistensi atau anomali ketika dilakukan update data.
©Silberschatz, Korth and Sudarshan1.141Database System Concepts
Armstrong’s rule dapat dimanfaatkan untuk menentukan F+
functional dependencies (FD)
Closure FD (F+)
Misal F adalah gugus ketergantungan fungsional pada skema relasi R,maka semua FD yang mungkin dapat diturunkan dari F dengan hukum-hukum FD disebut : Closure dari F, ditulis F+.
Contoh : Diketahui R = (A, B, C, D) F = { A B, B C, A C, C D} maka : A D
sebab A C dan C D, dari sifat transitif (A3) didapat A D B D
sebab B C dan C D, dari sifat transitif (A3) didapat B DSehingga {A B, B C, A C, C D, A D, B D} F+.
Kita dapat menurunkan anggota-anggota F+ yang lain berdasarkanFD yang diketahui menggunakan Armstong’s rule.
Closure FD (F+) berguna untuk Uji Dependency Preservation
©Silberschatz, Korth and Sudarshan1.142Database System Concepts
uji dependency preservation
Contoh :Diketahui skema relasi R=(A,B,C) dengan FD : A B ; B CDidekomposisi menjadi R1=(A,B) dan R2=(B,C)a. Apakah dekomposisi tsb Lossless-Joint ?b. Apakah dekomposisi tsb memenuhi Dependency Preservation ?
a. R1 R2 = (A,B) (B,C) = (A,B,C) = R R1 R2 = (A,B) (B,C) = BLossless jika B (A,B) atau B (B,C).Karena diketahui B C maka BB BC atau B BC (Augmentasi). Jadi dekomposisi tsb Lossless.
©Silberschatz, Korth and Sudarshan1.143Database System Concepts
b. R=(A,B,C) dan F = {AB, BC}. Karena AB dan BC maka AC. Maka dapat dibentuk closure F+={AB, BC,AC}.
R1=(A,B) dan F1={AB}. Karena hanya AB yang berlaku di R1.R2=(B,C) dan F2={BC}. Karena hanya BC yang berlaku di R2.
F1 F2 = {AB,BC}. Karena AB dan BC maka AC.Sehingga (F1 F2 )+={AB,BC,AC}=F+
Jadi dekomposisi tsb memenuhi Dependency Preservation.
Ujilah dekomposisinya apakah Lossless dan Dependency PreservationApabila R di atas didekoposisi menjadi R1=(A,B) dan R2=(A,C).
Bagaimana bila R1=(A,B) dan R2=(B,C) tetapi FD : BC, ACB
uji dependency preservation
©Silberschatz, Korth and Sudarshan1.144Database System Concepts
Ujilah dekomposisi dari skema relasi R, apakah lossless atau lossy ?1. R = (A,B,C,D,E,F,G,H) didekomposisi menjadi :
R1 = (A,B,C,D,E) dan R2 = (C,D,F,G,H) dengan FD :C (A,B,D) ; F (G,H) ; D (E,F)
2. R = (A,B,C,D,E) didekomposisi menjadi :R1 = (A,B,C,D) dan R2 = (C,D,E) dengan FD :A B ; (C,D) E ; B D ; E A
3. R = (X,Y,Z,W,U,V) didekomposisi menjadi :R1 = (X,Y,Z,W) dan R2 = (W,U,V) dengan FD :W X ; X Z
4. R = (A,B,C,D,E,F) didekomposisi menjadi :R1 = (A,B,C), R2 = (A,D,F) dan R3 = (E,D) dengan FD :A (B,C) ; D (F,A)
Ujilah pula dependency preservation nya untuk masing-masing soal tsb.
soal latihan
©Silberschatz, Korth and Sudarshan1.146Database System Concepts
atribut kunci (key)
Kunci (key) adalah kolom/atribut atau kombinasi kolom/atribut yang dapat digunakan untuk mengidentifikasi baris dalam tabel (entitas) secara unik.
Penentuan Key suatu tabel didasarkan pada sifat “determinasi”. Determinan : gugus atribut dimana satu atau lebih atribut lain
tergantung secara fungsional.“A determinan B” artinya apabila nilai atribut A akan menentukan nilai-nilai atribut B.“A determinan B” dapat dituliskan sebagai suatu ketergantungan fungsional A B. Jika A menentukan B,C dan D maka dituliskan A B,C,D.
Contoh : Relasi Mahasiswa=(NIM,Nama,Agama,TglLhr)Bila nilai NIM seorang mahasiswa diketahui maka dapat digunakan untuk melihat nilai-nilai atribut Nama, Agama dan Tanggal Lahirnya.Dituliskan NIM Nama,Agama,TglLhr
©Silberschatz, Korth and Sudarshan1.147Database System Concepts
superkey
Superkey (key) : - gugus atribut entitas yang dapat digunakan untuk mengidentifikasikan entitas/obyek secara unik.- satu atau lebih atribut yang membedakan setiap baris secara unik.Misal R skema relasi, dan K adalah satu atau lebih atribut dari R dimana K R maka K disebut Superkey jika dan hanya jika K R.Catatan : Suatu skema relasi dapat memiliki lebih dari 1 superkey.
Bila K adalah superkey maka semua atribut gabungan yang mengandung K juga merupakan superkey
Contoh : Relasi Sopir=(NoKTP,NoSIM,Nama,Alamat). Alternatif superkey : NoKTP superkey ; NoKTP Sopir NoSIM superkey ; NoSIM Sopir (NoKTP,NoSIM) superkey ; (NoKTP,NoSIM) Sopir (NoKTP,Nama) superkey ; (NoKTP,Nama) Sopir (NoKTP,NoSIM,Nama) superkey ; (NoSKTP,NoSIM,Nama) Sopir (NoKTP,NoSIM,Nama,Alamat) dengan sendirinya juga superkey Nama bukan superkey. Demikian juga (Nama,Alamat) juga bukan superkey
©Silberschatz, Korth and Sudarshan1.148Database System Concepts
Candidate Key :- Superkey dengan jumlah atribut minimal- Superkey tanpa redundansi (tidak memuat subset superkey yang lain)K adalah Candidate Key dari skema relasi R jika dan hanya jika :K R dan tidak terdapat K dengan R
Contoh :Skema relasi Sopir=(NoKTP,NoSIM,Nama,Alamat). Alternatif superkey : NoKTP superkey ; NoKTP Sopir NoSIM superkey ; NoSIM Sopir (NoKTP,NoSIM) superkey ; (NoKTP,NoSIM) Sopir (NoKTP,Nama) superkey ; (NoKTP,Nama) Sopir (NoKTP,NoSIM,Nama) superkey ; (NoSKTP,NoSIM,Nama) Sopir (NoKTP,NoSIM,Nama,Alamat) dengan sendirinya juga superkey
Sebagai Candidate Key nya adalah NoKTP atau NoSIM
candidate key
©Silberschatz, Korth and Sudarshan1.149Database System Concepts
Primary Key adalah candidate key yang dipilih untuk digunakan sebagai kunci identitas tabel secara unik (kunci indeks tabel) dan tidak boleh bernilai NULL.
Dasar pemilihan Candidate Key sebagai Primary Key : Key tsb menjamin keunikan baris data Key tsb bersifat natural atau universal (lazim dipakai sebagai acuan) Key tsb mudah dan ringkas untuk dipakai sebagai acuan
Contoh :Skema relasi Sopir=(NoKTP,NoSIM,Nama,Alamat). Alternatif superkey : NoKTP superkey ; NoKTP Sopir NoSIM superkey ; NoSIM Sopir (NoKTP,NoSIM) superkey ; (NoKTP,NoSIM) Sopir (NoKTP,Nama) superkey ; (NoKTP,Nama) Sopir (NoKTP,NoSIM,Nama) superkey ; (NoSKTP,NoSIM,Nama) Sopir (NoKTP,NoSIM,Nama,Alamat) dengan sendirinya juga superkeySebagai Candidate Key nya adalah NoKTP atau NoSIMMaka NoSIM lebih baik dipilih sebagai Primary Key untuk skema relasi Sopir
primary key
©Silberschatz, Korth and Sudarshan1.150Database System Concepts
Secondary Key adalah atribut (atau kombinasinya), yang digunakansebagai perantara untuk mendapatkan kembali data asal.
Biasanya dipakai pada pencarian data (data retrieval).
Contoh :Skema relasi Sopir=(NoKTP,NoSIM,Nama,Alamat) dengan NoSIM sebagai Primary Key. Walaupun atribut ini lazim dipakai sebagai identitas seorang Sopir,tapi apakah seorang sopir dijamin hapal nomor SIM nya ketika misalnya adatransaksi yang berkaitan dengan penggunaan identitas No SIM ?. Untuk memudahkan proses pencarian data sopir tersebut maka dapat digunakanatribut lain yang lebih mudah diingat misalnya “nama” dan/atau “alamat”. Penggunaan secondary key ini tentu saja tidak menjamin ditemukannya datauang unik, karena memang tidak ditujukan untuk kepentingan keunikan data.Tetapi sebagai alternatif atau fasilitas untuk membantu mengidentifikasi data. Analogikan ketika kita lupa akan ID atau password account email kita. Fasilitas apa yang bisa kita manfaatkan ?
secondary key
©Silberschatz, Korth and Sudarshan1.151Database System Concepts
Foreign Key adalah satu atau lebih atribut dalam satu tabel yang merupakan primary key tabel lain (kunci penghubung).
IDSls NmSls AlamatAsal KotaAsal
S001 Anita Jl. Nakula 9 Kendal
S002 Vicky Jl. Arjuna I/6 Semarang
S003 Roni Jl. Bima II/3 Semarang
IDProd NamaProduk Harga QtyStock
F001 TV 14” 1500000 12
F002 TV 21” 2100.000
4
F003 TV 21” Flatron 2700000 24 Sales
Produk
NoOrder
Date IDProd QtyOrder IDSls
120301 12/11/04
P001 2 S001
120302 13/11/04
P001 2 S003
120303 22/11/04
P003 6 S001
Order
Tabel Name : ProdukPrimary key : IDProdForeign Key : -
Tabel Name : OrderPrimary key : NoOrderForeign Key : IDProd,IDSls
Tabel Name : SalesPrimary key : IDSlsForeign Key : -
foreign key
linklink
©Silberschatz, Korth and Sudarshan1.152Database System Concepts
hubungan FD dengan key
Amstrong’s rule dapat digunakan untuk menurunkan superkey tabel,berdasarkan 1 atau lebih superkey yang diketahui
Rule 1 : Apabila diketahui FD yang memuat semua atribut pada tabel, maka atribut-atribut yang terdapat pada ruas kiri dari FD adalah superkey Contoh :Diketahui tabel R = (W,X,Y,Z) dan FD : XY WZ maka XY superkeySebab :XY WZ maka
XY XY (refleksif)XY XYWZ (union)XY R
Karena XY R maka XY superkey. Jadi ruas kiri dari FD merupakan superkey.
©Silberschatz, Korth and Sudarshan1.153Database System Concepts
Rule 2 : Atribut yang secara fungsional menentukan superkey dari tabel maka atribut tersebut juga merupakan superkeyContoh :Diketahui W superkey dari tabel R = (W,X,Y,Z) dan FD : Z W maka Z superkeySebab :Z W danW WXYZ (karena W superkey), maka Z WXYZ (transitif)Z RKarena Z R maka Z superkey
hubungan FD dengan key
©Silberschatz, Korth and Sudarshan1.154Database System Concepts
A B C D
A1 B1 C1 D1
A1 B2 C1 D2
A2 B2 C2 D2
A2 B3 C2 D3
A3 B3 C2 D4
R = (A,B,C,D) Apakah (A,B) superkey dari R ?
Akan dibuktikan apakah (A,B) R.Jika Ya maka (A,B) superkey dari R.
Karena semua tupel ti[A,B] untuk 1 i 5 adalah unik, t1[A,B]=(A1,B1)
t2[A,B]=(A1,B2)t3[A,B]=(A2,B2)t4[A,B]=(A2,B3)t5[A,B]=(A3,B3)
Maka (A,B) (A,B,C,D) atau (A,B) RJadi (A,B) superkey dari R Apakah A superkey dari R ?
Bukan, sebab A R. Mengapa ?
hubungan FD dengan key
©Silberschatz, Korth and Sudarshan1.155Database System Concepts
hubungan FD dengan key
Diketahui S = (A,B,C,D,E,F) dan FD : A BC ; B D ; C EF ; BF ACarilah superkey dan candidate key dari S menggunakan FD
A BCA BA C
karena A B dan B D maka A D
karena A Cdan C EF makaA EF
A ASehingga A ABCDEF atau A S (superkey)
BF AA ABCDEF makaBF ABCDEF BF S (superkey)
B D makaBC DC
C EF makaBC BEF
Jadi BC BCDEF BC BCDEF dan
BC A makaBC ABCDEF BC S (superkey)
Superkey dari SA, BC, BF serta gabungan atribut yang mengandung A, BC dan BF
Candidate key dari S A
Tips !!Fokuskan
perhatian Anda pada atribut-2 di ruas kiri dari FD untuk mencari
superkey
©Silberschatz, Korth and Sudarshan1.156Database System Concepts
Latihan :1. Diberikan R(A,B,C,D) dengan FD : AB,AC dan AD
Apakah A candidate key dari R ?2. Diberikan R(A,B,C,D) dengan FD : AB
a. Apakah ACD superkey dari Rb. Apakah A candidate key dari R
3. Diberikan R(A,B,C,D,E,F) dengan FD : C(AB);B(DE);EF;ABC a. Carilah superkey dari Rb. Carilah candidate key dari R
4. Diberikan R(A,B,C,D,E) dengan FD : A(BC);(CD)E;BD;EAa. Carilah superkey dari Rb. Carilah candidate key dari R
5. Diberikan R(A,B,C) dengan FD : AB;BC;CAApakah A merupakan satu-satunya candidate key dari R
hubungan FD dengan key
©Silberschatz, Korth and Sudarshan1.157Database System Concepts
No_fak
Tgl_faktur Nm_kons Almt_kons Kota_kons Kode_brg Nama_brg Jml Hrg_sat bayar
101 10-01-08 Ali Jl. A. Yani No. 10 Semarang 1101 Sandal 10 15000 150000
101 10-01-08 Ali Jl. A. Yani No. 10 Semarang 1110 Sepatu 7 100000 700000
101 10-01-08 Ali Jl. A. Yani No. 10 Semarang 1112 Kaos 15 30000 450000
102 11-01-08 Rudi Jl. Seroja Raya 1 Solo 1101 Sandal 20 15000 300000
102 11-01-08 Rudi Jl. Seroja Raya 1 Solo 1113 Jaket 4 200000 800000
Perhatikan Tabel berikut :
a b c d e f g h I j
©Silberschatz, Korth and Sudarshan1.158Database System Concepts
End Session TodayTomorrow We’ll Discuss About
Normalization ……
©Silberschatz, Korth and Sudarshan1.160Database System Concepts
normalisasi
Normalisasi : Teknik/pendekatan yang digunakan dalam membangun disain lojik database relasional melalui organisasi himpunan data dengan tingkat ketergantungan fungsional dan keterkaitan yang tinggi sedemikian sehingga menghasilkan struktur tabel yang normal.
Tujuan : Minimalisasi redundansi (pengulangan data) Memudahkan identifikasi entitas Mencegah terjadinya anomali
Beberapa bentuk normal (normal forms, NF) : 1NF, 2NF, 3NF, BCNF
based on keys and functional dependencies 4NF, 5NF
based on keys and multi-valued dependencies)
©Silberschatz, Korth and Sudarshan1.161Database System Concepts
Suatu relasi disebut memenuhi bentuk normal pertama (1NF) jika dan hanya jika setiap atribut dari relasi tersebut hanya memiliki nilai tunggal dan tidak ada pengulangan grup atribut dalam baris.
Bentuk 1NF tidak boleh mengandung grup atribut yang berulang.
Tujuan membentuk 1NF :::. semantik tabel menjadi lebih eksplisit (say anything once).::. semua operator aljabar relasional dapat diaplikasikan pada tabel.
First Normal Form (1NF)
©Silberschatz, Korth and Sudarshan1.162Database System Concepts
IDSales NamaSales Telepon
ADN006 Yeni, SE 3517261, 3520165ADN007 Memey 4744621,08122861427ADN008 Tina 08566241521ADN009 Ir. Yanto 7265122, 7123910ADN010 Made 6723192
Tabel : Sales
non-atomic
UnnormalizedNot 1NF
IDSales NamaSales Telepon
ADN006 Yeni, SE 3517261ADN006 Yeni, SE 3520165ADN007 Memey 4744621ADN007 Memey 08122861427ADN008 Tina 08566241521ADN009 Ir. Yanto 7265122ADN009 Ir. Yanto 7123910ADN010 Made 6723192
1NF
First Normal Form (1NF)
©Silberschatz, Korth and Sudarshan1.163Database System Concepts
Tabel : Buku repeated
ISBN Thn_Terbit ID_Pengarang Nama_Pengarang ID_Pengarang Nama_Pengarang
12-1202-19222 1992 K0121 Aris M K1021 Kosim P11-1090-29101 2001 K1021 Kosim P11-1090-29102 2001 K2091 K Odelia K0121 Aris M12-1201-90871 2002 K2092 Renaldi K2091 K Odelia13-2089-12910 2001 K2019 Samsuri J
UnnormalizedNot 1NF
ISBN Thn_Terbit ID_Pengarang Nama_Pengarang
12-1202-19222 1992 K0121 Aris M12-1202-19222 1992 K1021 Kosim P11-1090-29101 2001 K1021 Kosim P11-1090-29102 2001 K2091 K Odelia11-1090-29102 2001 K0121 Aris M12-1201-90871 2002 K2092 Renaldi12-1201-90871 2002 K2091 K Odelia13-2089-12910 2001 K2019 Samsuri J
1NF
First Normal Form (1NF)
©Silberschatz, Korth and Sudarshan1.164Database System Concepts
Suatu relasi disebut memenuhi bentuk normal kedua (2NF) jika dan hanya jika :1. memenuhi 1NF2. setiap atribut yang bukan kunci utama tergantung secara fungsional terhadap semua atribut kunci dan bukan hanya sebagian atribut kunci (fully functionally dependent).
Untuk normalisasi ke bentuk 2NF, maka tabel 1NF didekomposisi menjadi beberapa tabel yang masing-masing memenuhi 2NF.
Bila terdapat ketergantungan parsial maka : eliminate.
Tujuan membentuk 2NF ::: semantik tabel 2NF menjadi lebih eksplisit (fully FD):: mengurangi update anomali yang masih mungkin terjadi pada 1NF
Second Normal Form (2NF)
©Silberschatz, Korth and Sudarshan1.165Database System Concepts
Contoh : Diketahui tabel R=(A,B,C,D,E) ; A,B kunci utama (primary key)dengan FD : A,B C,D,E maka tabel R memenuhi 2NF sebab :A,B C,D,E berarti :A,B C, A,B D danA,B EJadi semua atribut bukan kunci utama tergantung penuh pada (A,B).
Second Normal Form (2NF)
Note : Jika suatu relasi memenuhi 1NF dan hanya memiliki tepat satu atribut kunci utama maka relasi tsb memenuhi 2NF
©Silberschatz, Korth and Sudarshan1.166Database System Concepts
Bagaimana bila R = (A,B,C,D,E) tetapi dengan FD : (A,B) (C,D) dan B E. Apakah memenuhhi 2NF ?
Jelas bahwa R bukan 2NF karena ada atribut E yang bergantung hanya pada atribut B saja dan bukan terhadap (A,B). Dari FD : (A,B) (C,D) juga mencerminkan bahwa hanya C dan D saja yang bergantung secara fungsional terhadap (A,B), tidak untuk E. Jadi bukan 2NF.
Untuk mengubah menjadi 2NF, lakukan dekomposisi menjadi :R1 = (A,B,C,D) dan R2 = (B,E). Tampak R1 dan R2 memenuhi 2NF.
Second Normal Form (2NF)
©Silberschatz, Korth and Sudarshan1.167Database System Concepts
Diketahui Workshop = (NIM,Modul,Biaya,Grade)
NIM
Peserta Workshop
Modul BiayaKey : NIM+ModulFD : Modul Biaya
NIM Modul Biaya Grade
P11.2004.0129 VB.Net 250000 A
P11.2004.0130 Prolog 100000 A
P11.2004.0129 Prolog 100000 B
P11.2004.0201 Delphi 6 150000 A
P11.2004.0250 VB.Net 250000 B
(Biaya ditentukan oleh Modul yangdiambil mahasiswa)
1NF Not 2NF
Sebab dalam tabel ini, Biaya tidak bergantung penuhpada atribut kunci (NIM,Modul)
Tabel biaya peserta workshop
Grade
Second Normal Form (2NF)
©Silberschatz, Korth and Sudarshan1.168Database System Concepts
NIM Modul Biaya Grade
(NIM,Modul) = key(NIM,Modul) Biaya (partial)(NIM,Modul) Grade (full)
Eliminate
NIM Modul Biaya Grade
Make Decomposition :
Works1 = (NIM,Modul,Grade)Works2 = (Modul,Biaya)
Fully Dependency
Second Normal Form (2NF)
©Silberschatz, Korth and Sudarshan1.169Database System Concepts
NIM Modul Biaya Grade
P11.2004.0129 VB.Net 250000 A
P11.2004.0130 Prolog 100000 A
P11.2004.0129 Prolog 100000 B
P11.2004.0201 Delphi 6 150000 A
P11.2004.0250 VB.Net 250000 B
WorkshopNIM Modul Grade
P11.2004.0129 VB.Net A
P11.2004.0130 Prolog A
P11.2004.0129 Prolog B
P11.2004.0201 Delphi 6 A
P11.2004.0250 VB.Net B
Modul Biaya
VB.Net 250000
Prolog 100000
Delphi 6 150000
Works1
Works2
More Better Then1NF
Second Normal Form (2NF)
©Silberschatz, Korth and Sudarshan1.170Database System Concepts
Suatu relasi disebut memenuhi bentuk normal ketiga (3NF) jika dan hanya jika :1. memenuhi 2NF2. setiap atribut yang bukan kunci tidak tergantung secara fungsional terhadap atribut bukan kunci yang lain dalam relasi tsb (tidak terdapat ketergantungan transitif pada atribut bukan kunci).
Third Normal Form (3NF)
Suatu relasi disebut memenuhi bentuk normal ketiga (3NF) jika dan hanya jika setiap FD nontrivial : X A, dimana X dan A atribut (atau kompositnya), memenuhi salah satu kondisi :1. X adalah superkey2. A merupakan anggota candidate key (A disebut prime attribute)
Another Definition :
©Silberschatz, Korth and Sudarshan1.171Database System Concepts
Third Normal Form (3NF)
Note : Jika suatu relasi memenuhi 2NF dan hanya memiliki tepat satu atribut yang bukan kunci utama maka relasi tsb memenuhi 3NF
Jika suatu relasi sudah memenuhi 2NF tapi tidak memenuhi 3 NF, maka untuk normalisasi ke bentuk 3NF, tabel 2NF didekomposisi
menjadi beberapa tabel hingga masing-masing memenuhi 3NF. Tujuan membentuk 3NF :
:: semantik tabel 3NF menjadi lebih eksplisit (fully FD hanya pada primary key).:: menghindari update anomali yang masih mungkin terjadi pada 2NF.
©Silberschatz, Korth and Sudarshan1.172Database System Concepts
Contoh : Diketahui tabel R=(A,B,C,D,E) ; A,B kunci utama (primary key)dengan FD : A,B C,D,E dan C D,E maka R bukan 3NF sebab :Atribut D dan E (bukan kunci utama) bergantung secara fungsional pada C (yang juga bukan kunci utama).
Melalui FD : Diketahui A,B C,D,E.
Karena sifat refleksif maka A,BA,B. Sehingga A,BA,B,C,D,E (A,B) : Superkey.
Diketahui CD,E.Karena sifat refleksif maka CC. Sehingga CC,D,E. Karena C A,B,C,D,E maka C bukan superkey.
Tidak memenuhi definisi 3NF. Jadi R bukan 3NF.
Agar R memenuhi 3NF maka didekomposisi menjadi :R1=(A,B,C) dan R2=(C,D,E) sehingga R1 dan R2 memenuhi 3NF.
Third Normal Form (3NF)
©Silberschatz, Korth and Sudarshan1.173Database System Concepts
FD : A,B C,D,E berarti A,B C ; C D,E ; A,B D,EA,B D reduceA,B E reduce
Dekomposisinya : R1=(A,B,C) ; FD : (A,B)CR2=(C,D,E) ; FD : CD,E
A B C D E
A B C C D E
R1 R2
R
Third Normal Form (3NF)
©Silberschatz, Korth and Sudarshan1.174Database System Concepts
Misal diketahui struktur informasi dari suatu dokumen supplier :
Akan dibentuk suatu tabel dengan skema TPS=(S,Status,City,P,Qty) dengan (S,P) = primary key dan berlaku FD :
SStatusSCityCityStatus
Lakukan normalisasi dari 1NF hingga 3NF.
S Status CityP Qty
S1 20 LONDON P1 300P2 200P3 400P4 200P5 100P6 100
S2 10 PARIS P1 300P2 400
S3 10 PARIS P2 200S4 20 LONDON P2 200
P4 399P5 400
PQ
Third Normal Form (3NF)
©Silberschatz, Korth and Sudarshan1.175Database System Concepts
1NF Not 2NF
Problem : Redundansi inconsistency
low speed process Anomaly :
S(Status,City) tapi kita tidak bisa insertdata (S5,30,JAKARTA) tanpa diikuti dataP (khususnya) dan Q. Menghapus 1 barisdata akan jg merusak keutuhan informasi.
Solusi :Dekomposisi menjadi :TPS1 dan TPS2
TPSS Status City P QtyS1 20 LONDON P1 300S1 20 LONDON P2 200S1 20 LONDON P3 400S1 20 LONDON P4 200S1 20 LONDON P5 100S1 20 LONDON P6 100S2 10 PARIS P1 300S2 10 PARIS P2 400S3 10 PARIS P2 200S4 20 LONDON P2 200S4 20 LONDON P4 399S4 20 LONDON P5 400
Third Normal Form (3NF)
©Silberschatz, Korth and Sudarshan1.176Database System Concepts
TPS1 TPS2S P QtyS1 P1 300S1 P2 200S1 P3 400S1 P4 200S1 P5 100S1 P6 100S2 P1 300S2 P2 400S3 P2 200S4 P2 200S4 P4 399S4 P5 400
S Status CityS1 20 LONDONS2 10 PARISS3 10 PARISS4 20 LONDON
Sekarang kita dapat menambahdata (S5,30,JAKARTA) dgn aman
Tapi masih ada anomaly :Karena CityStatus maka kita tidak bisa entry data City baru sebelum Status punya nilai. Penghapusan 1 barissebagian data City juga bisa merusak keutuhan informasi S.
Selain itu, masih ada redundansipada Status dan City
1NF 2NF Not 3NF (trans.) SCity CityStatus
1NF 2NF 3NF
Third Normal Form (3NF)
©Silberschatz, Korth and Sudarshan1.177Database System Concepts
S CityS1 LONDONS2 PARISS3 PARISS4 LONDON
City StatusLONDON 20PARIS 10
TPS1-1 TPS1-2 TPS2S P QtyS1 P1 300S1 P2 200S1 P3 400S1 P4 200S1 P5 100S1 P6 100S2 P1 300S2 P2 400S3 P2 200S4 P2 200S4 P4 399S4 P5 400
1NF 2NF 3NF
1NF 2NF 3NF 1NF
2NF 3NF
Third Normal Form (3NF)
©Silberschatz, Korth and Sudarshan1.178Database System Concepts
Third Normal Form (3NF) Try it … !!
1.Diberikan skema relasi R = (A,B,C,D,E,F,G,H,I,J,K) dengan ketergantunganfungsional :A B,C,D ; C D ; E F ; A,E G,H,I,J,K ; I J,KApakah R memenuhi 3NF ? Jika tidak, rancanglah skema relasi R sedemikian
sehingga memenuhi bentuk 3NF. Bila Saudara melakukan dekomposisi tabel, lengkapi dengan uji dekomposisi dan uji lossless.
2.Diketahui R=(A,B,C,D,E,F,G) dimana (A,B) : primary keyKetergantungan fungsional yang berlaku (FD) :A C,D,F ; B C,D,E,G ; E G Jika diketahui bahwa R memenuhi 1NF, apakah R memenuhi 3NF ? Jika tidak,
rancanglah skema relasi R sedemikian sehingga memenuhi bentuk 3NF. Bila Saudara melakukan dekomposisi tabel, lengkapi dengan uji dekomposisi dan uji lossless.
©Silberschatz, Korth and Sudarshan1.179Database System Concepts
Boyce Codd Normal Form (BCNF)
Suatu relasi disebut memenuhi BCNF jika dan hanya jika setiap determinan yang ada pada relasi tersebut adalah candidate key.
Definisi yang lain :Suatu relasi disebut memenuhi BCNF jika untuk setiap FD nontrivial :X A atribut X adalah superkey.
Untuk normalisasi ke bentuk BCNF, maka tabel 3NF didekomposisi menjadi beberapa tabel yang masing-masing memenuhi BCNF.
Tujuan membentuk BCNF ::: semantik multiple candidate key menjadi lebih eksplisit (FD hanya pada candidate key).:: menghindari update anomali yang masih mungkin terjadi pada 3NF.
Dari definisi 3NF dan BCNF, maka apabila suatu relasi memenuhi BCNF pasti memenuhi 3NF, tetapi belum tentu sebaliknya.
©Silberschatz, Korth and Sudarshan1.180Database System Concepts
Contoh : Diketahui tabel R=(A,B,C)dengan FD : A B dan B C maka R bukan BCNF, sebab : A superkey ?
AB (diketahui)AB dan BC maka AC (transitif)AA (refleksif)Sehingga A(A,B,C) atau AR. Jadi A superkey.
B superkey ?BC (diketahui)BB (refleksif)Tapi BA. Sehingga BA,B,C atau B bukan superkey.
Agar R memenuhi BCNF maka didekomposisi menjadi :R1=(A,B) ; FD : A B dan R2=(B,C) ; FD : B C. sehingga R1 dan R2 masing-masing memenuhi BCNF. Sebab A dan Bdua-duanya sekarang menjadi superkey.
Boyce Codd Normal Form (BCNF)
©Silberschatz, Korth and Sudarshan1.181Database System Concepts
Contoh : Diketahui tabel R=(A,B,C)dengan FD : AB C dan C B. Apakah : 3NF ? BCNF ?
R memenuhi 3NF karena :ABC ; maka AB ABC, atau AB R. Jadi AB superkey dari RCB ; maka AC AB, atau AC ABC dan AC R. Jadi AC juga superkey (sekaligus juga candidate key) dari R Karena AB superkey dan C subset candidate key maka R memenuhi 3NF
R bukan BCNF karena :AB superkey tetapi C bukan superkey.
Boyce Codd Normal Form (BCNF)
©Silberschatz, Korth and Sudarshan1.182Database System Concepts
Students=(sid, name, age)FD : sid name, age• BCNF, sebab sid superkey
Books=(bid, title, year)FD : bid title, year• BCNF, sebab bid superkey
Pinjam=(idpinjam, sid, bid, date)FD : idpinjam bid, date• Bukan BCNF, sebab idpinjam bukan superkey idpinjam sid
Students
sid nameage
53666 Jones 18
53668 Smith 18
53669
Melissa 17
53670 Hilden 19
Books
bid titleyea
r
B001 MySQL200
2
B002 Algorithm200
3
B003Visual Foxpro 6.0
2003
B004Visual basic 6.0
2005
Pinjamidpinja
m sid bid date
P-01 53666 B00210/11/200
5
P-02 53668 B00110/11/200
5
P-03 53668 B00411/12/200
5
P-04 53670 B00214/11/200
5
Boyce Codd Normal Form (BCNF)
©Silberschatz, Korth and Sudarshan1.183Database System Concepts
Pinjamidpinja
m sid bid date
P-01 53666 B00210/11/200
5
P-02 53668 B00110/11/200
5
P-03 53668 B00411/12/200
5
P-04 53670 B00214/11/200
5
Didekomposisi menjadi :Pinjam1
idpinjam sid
P-01 53666
P-02 53668
P-03 53668
P-04 53670
Pinjam2idpinja
m bid date
P-01 B00210/11/200
5
P-02 B00110/11/200
5
P-03 B00411/12/200
5
P-04 B00214/11/200
5
FD trivial BCNF
idpinjam bid, dateidpinjam superkey BCNF
Boyce Codd Normal Form (BCNF)
©Silberschatz, Korth and Sudarshan1.184Database System Concepts
It is always possible to decompose a relation into relations in 3NF and the decomposition is lossless the dependencies are preserved
It is always possible to decompose a relation into relations in BCNF and the decomposition is lossless it may not be possible to preserve
dependencies.
Comparison of BCNF And 3NF
©Silberschatz, Korth and Sudarshan1.185Database System Concepts
Contoh kasus redundansi pada 3NFJadwal = (Nim,Modul,Dosen)FD = {Dosen Modul}Relasi ini memenuhi 3NF, karena tidak ada ketergantungan transitif. Tetapi tidak memenuhi BCNF karena dari Dosen Modul maka Dosen bukan candidate key.Alternatif yang dilakukan adalah dekomposisi tabel menjadi :
Comparison of BCNF And 3NF
NIM Modul Dosen
P11.2004.0129 VB.Net Ajib
P11.2004.0130 Prolog Aris
P11.2004.0201 VB Net Budi
P11.2004.0250 Prolog Jono
P11.2004.0260 VB.Net Budi
NIM Dosen
P11.2004.0129 Ajib
P11.2004.0130 Aris
P11.2004.0201 Budi
P11.2004.0250 Jono
P11.2004.0260 Budi
Dosen Modul
Ajib VB.Net
Aris Prolog
Jono Prolog
Budi VB.Net
BCNFNOT BCNF
©Silberschatz, Korth and Sudarshan1.186Database System Concepts
Goal for a relational database design is: BCNF. Lossless join. Dependency preservation.
If we cannot achieve this, we accept one of Lack of dependency preservation Redundancy due to use of 3NF
Design Goals
©Silberschatz, Korth and Sudarshan1.187Database System Concepts
Entity Set (doesn’t meet the
definition of a relation)
First Normal Form
Second Normal Form
Third Normal Form
Boyce-Codd Normal Form
Remove multivalued & repeating attributes. Meet definition of relationRemove partial dependencies
Remove transitive dependencies
Select relation where all determinants are candidate key
Design Steps
Praktisi database kebanyakanmenganggap bahwa tingkatannormalisasi hingga BCNF atau3NF dianggap sudah cukup untuk meminimalisasi masalahdalam desain database (redundansi,lossless,dependencypreservation)
©Silberschatz, Korth and Sudarshan1.188Database System Concepts
Contoh
Untuk Tuan Ali Jl, A. Yani No. 10 Semarang
Faktur : 101Tanggal : 10-01-2008
No Kode
Barang
Nama
Barang
Harga
Satuan
Jumlah Jumlah
Bayar
1 1101 Sandal 15.000 10 150.000
2 1110 Sepatu 100.000 7 700.000
3 1112 Kaos 30.000 15 450.000
Total 1.300.000
©Silberschatz, Korth and Sudarshan1.189Database System Concepts
No_fak
Tgl_faktur Nm_kons Almt_kons Kota_kons Kode_brg Nama_brg Jml Hrg_sat bayar
101 10-01-08 Ali Jl. A. Yani No. 10 Semarang 1101 Sandal 10 15000 150000
1110 Sepatu 7 100000 700000
1112 Kaos 15 30000 450000
102 11-01-08 Rudi Jl. Seroja Raya 1 Solo 1101 Sandal 20 15000 300000
1113 Jaket 4 200000 800000
Bentuk Tidak Normal (Unnormalized Form)
Bentuk Tidak Normal
Tidak Normal Pertama, Karena ada multivalued
attribute
©Silberschatz, Korth and Sudarshan1.190Database System Concepts
No_fak Tgl_faktur Nm_kons Almt_kons Kota_kons Kode_brg Nama_brg Jml Hrg_sat bayar
101 10-01-08 Ali Jl. A. Yani No. 10 Semarang 1101 Sandal 10 15000 150000
101 10-01-08 Ali Jl. A. Yani No. 10 Semarang 1110 Sepatu 7 100000 700000
101 10-01-08 Ali Jl. A. Yani No. 10 Semarang 1112 Kaos 15 30000 450000
102 11-01-08 Rudi Jl. Seroja Raya 1 Solo 1101 Sandal 20 15000 300000
102 11-01-08 Rudi Jl. Seroja Raya 1 Solo 1113 Jaket 4 200000 800000
Bentuk Normal Pertama
Tidak ada multivalued attribute. Tetapi masih
ada Anomali
©Silberschatz, Korth and Sudarshan1.191Database System Concepts
Bentuk Normal Kedua
Berdasarkan Ketergantungan Fungsionalnya :
Kode_brg -> nama_brg, hrg_satNm_kons -> almt_kons, kota_konsNo_fak -> nm_kons, tgl_fakturNo_faktur, kode_brg -> jml, bayar
Kode_brgNama_brgHrg_sat
No_fakKode_brgJmlbayar
Nm_konsAlmt_konsKota_kons
No_fakNm_konsTgl_faktur
barang
konsumen
detil
faktur
©Silberschatz, Korth and Sudarshan1.192Database System Concepts
Bentuk Normal Kedua
Kode_brg Nama_brg Hrg_sat
1101 Sandal 15000
1110 Sepatu 100000
1112 Kaos 30000
1113 Jaket 200000
No_fak Kode_brg Jml Bayar
101 1101 10 150000
101 1110 7 700000
101 1112 15 450000
102 1101 20 300000
102 1113 4 800000
Nm_kons Almt_kons Kota_kons
Ali Jl. A. Yani No. 10 Semarang
Rudi Jl. Seroja Raya 1 Solo
Barang
konsumen
detil
No_fak Nm_kons Tgl_faktur
101 Ali 10-01-2008
102 Rudi 11-01-2008
faktur
Perhatikan masing-masing tabel,Masih ada anomali?
©Silberschatz, Korth and Sudarshan1.193Database System Concepts
Bentuk Normal Ketiga
Kode_brg Nama_brg Hrg_sat
1101 Sandal 15000
1110 Sepatu 100000
1112 Kaos 30000
1113 Jaket 200000
Barang
KF :Kode_brg -> nama_brg, hrg_sat
√
√
√
1 NF
2 NF
3 NF
Ketergantungan Transitif ?
©Silberschatz, Korth and Sudarshan1.194Database System Concepts
Nm_kons Almt_kons Kota_kons
Ali Jl. A. Yani No. 10 Semarang
Rudi Jl. Seroja Raya 1 Solo
konsumen
Bentuk Normal Ketiga
KF :Nm_kons -> almt_kons, kota_kons
Ketergantungan Transitif ?
√
√
√
1 NF
2 NF
3 NF
No_fak Nm_kons Tgl_faktur
101 Ali 10-01-2008
102 Rudi 11-01-2008
faktur
KF :No_fak -> nm_kons, kota_kons
√
√
√
1 NF
2 NF
3 NF
©Silberschatz, Korth and Sudarshan1.195Database System Concepts
Bentuk Normal Ketiga
No_fak Kode_brg Jml Bayar
101 1101 10 150000
101 1110 7 700000
101 1112 15 450000
102 1101 20 300000
102 1113 4 800000
detil
KF :
No_fak, kode_brg -> jml, bayar
Ketergantungan Transitif ?
√
√
√
1 NF
2 NF
3 NF
©Silberschatz, Korth and Sudarshan1.196Database System Concepts
Diagram Relasi
Diagram Relasi setelah proses normalisai :
Kode_brgNama_brgHrg_sat
No_fakKode_brgJmlbayar
Nm_konsAlmt_konsKota_kons
No_fakNm_konsTgl_faktur
barang
konsumen
detil
faktur
©Silberschatz, Korth and Sudarshan1.197Database System Concepts
Berdasarkan formulir tersebut,• Rancanglah tabel penyimpanan
datanya• Lakukan normalisasi hingga 3NF
atau BCNF
©Silberschatz, Korth and Sudarshan1.198Database System Concepts
The Callenge of Database Design
Designers must make design compromises that are triggered by conflicting goals : design standards (design elegance or faithfulness),
to develop “good” design : Lossless, No Redundant, Dependency Preservation processing speed (performance), and
high processing speeds is “top” priority (efficiency) minimizing the number and complexity of relationships or table
information requirements capablility for delivering all specified query and reporting
of user requirements timely
Contoh bentuk kompromi yang populer :
Denormalisasi (pelanggaran normalisasi)
©Silberschatz, Korth and Sudarshan1.199Database System Concepts
Denormalisasi
Normalisasi hanyalah merupakan teknik pendekatan yang digunakanuntuk mendapatkan desain database (lojik) yang baik dan bukan sebagai “aturan baku” DBMS yang harus digunakan. Bersifat “Normatif”, memungkinkan untuk dilanggar dengan alasan :
Kecepatan Proses (Efisiensi) dan Pelayanan Informasi Tepat Waktu Bentuk-bentuk Denormalisasi :
- Membuat Atribut Turunan pada Tabel, mis : Cost=Qty*Price- Atribut yang Berlebihan, mis : NIM mahasiswa sudah mencerminkan program studi mahasiswa, tetapi dalam tabel mahasiswa dibuat atribut Program Studi.- Summary Table (mis : summary table for report)- Membiarkan relasi transitif dalam satu tabel untuk kemudahan proses
Konsekuensi Denormalisasi :Redundancy, Not Atomic, Worst Space dll
Design Standards Vs (proceessing speed,information requirements)
©Silberschatz, Korth and Sudarshan1.200Database System Concepts
Additional Material(Normal Form Other)
©Silberschatz, Korth and Sudarshan1.201Database System Concepts
Multivalued Dependency (MVD)
Beberapa bentuk normal (normal forms, NF) : 1NF, 2NF, 3NF, BCNF
based on keys and functional dependencies 4NF, 5NF
based on keys and multi-valued dependencies)
Multivalued Dependencies (MVD)
Misal R adalah skema relasi. A, B dan C adalah subset atribut dari R maka A disebut multidependensi pada B, ditulis AB, jika untuk setiap nilai A terdapat sekumpulan nilai B dan sekumpulan nilai C, tetapi nilai B dan nilai C independen.
©Silberschatz, Korth and Sudarshan1.202Database System Concepts
Relasi MVD melibatkan minimal 3 atribut relasi, misal A-B-C Untuk setiap nilai A, terdapat sekumpulan nilai B dan
sekumpulan nilai C. Sekumpulan nilai B independen dengan sekumpulan nilai C,
semikian juga sebaliknya.
Penawaran Mata KuliahMata KuliahInstruktur PustakaBasis Data Himawan CJ Date
Purwanto HF KorthAris Marjuni
Matematika M Sidiq C LiuMT Lang
Penawaran Mata KuliahMata Kuliah Instruktur PustakaBasis Data Himawan CJ DateBasis Data Purwanto CJ DateBasis Data Aris Marjuni CJ DateBasis Data Himawan HF KorthBasis Data Purwanto HF KorthBasis Data Aris Marjuni HF KorthMatematika M Sidiq C LiuMatematika M Sidiq MT Lang
Multivalued Dependency (MVD)
MVD : Mata Kuliah InstrukturMata Kuliah Pustaka
©Silberschatz, Korth and Sudarshan1.203Database System Concepts
Dalam contoh lain :
X Y Z
1 1 1
1 1 2
1 2 1
1 2 2
2 2 1
2 2 2
3 3 3
X Y Z
1 1 1
1 1 2
1 2 1
1 2 2
2 2 1
2 1 2
X Y Z
1 1 1
1 1 2
1 2 1
2 2 1
2 2 2
R1 R2 R3
XY ?XZ ?YX ?ZX ?MVD Exist
No MVDWhy ?
No MVDWhy ?
Multivalued Dependency (MVD)
©Silberschatz, Korth and Sudarshan1.204Database System Concepts
Refleksif : xxAugmentation : Jika xy maka xzyzTransitif : Jika xy dan yz maka xz-yPseudotransitif : Jika xy dan ywz maka xwz-ywUnion : Jika xy dan xz maka xyzDekomposisi : Jika xy dan xz maka xyz dan xz-yKomplemen : Jika xy dan z=R-x-y maka xz
Multivalued Dependency (MVD)
©Silberschatz, Korth and Sudarshan1.205Database System Concepts
Fourth Normal Form (4NF)
Skema relasi R disebut 4NF jika dan hanya jika BCNF dan Tidak terdapat MVD. Apabila terdapat MVD dalam R, misal XY
maka harus memenuhi salah satu :- MVD adalah trivial atau- X adalah superkey
©Silberschatz, Korth and Sudarshan1.206Database System Concepts
Misal diketahui R = (A, B, C, D, E, F)MVD : AB dan CDEF. Bila diasumsikan R memenuhi BCNF, apakah memenuhi 4NF ? Jika belum upayakan menjadi 4NF.
• Bukan 4NF sebab terdapat MVD dan nontrivial.• Dekomposisi R :
Dari AB, dibentuk R1=(A,B)Karena AB maka A C,D,E,F dan dibentuk R2=(A,C,D,E,F)
• R1=(A,B) memenuhi 4NF, sebab MVD : AB trivial
• R2=(A,C,D,E,F)Bukan 4NF, karena MVD : CDEF nontrivial
• Dekomposisi R2 :Dari CDEF dibentuk R21=(C,D,E,F)Karena CDEF dan CDA, dibentuk R22=(C,D,A)
• R21=(C,D,E,F)4NF, karena MVD : CDEF trivial
• R22=(C,D,A)4NF, karena tidak ada MVD.
Fourth Normal Form (4NF)
R1=(A,B)
R21=(C,D,E,F)
R22=(C,D,A)
Memenuhi 4NF
©Silberschatz, Korth and Sudarshan1.207Database System Concepts
Misal diketahui R = (A, B, C, G, H, I)MVD : AB, BHI dan CGH. Bila diasumsikan R memenuhi BCNF, apakah memenuhi 4NF ? Jika belum upayakan menjadi 4NF.
• Bukan 4NF sebab terdapat MVD, nontrivial dan bukan superkey.• Dekomposisi R :
Dari AB, dibentuk R1=(A,B)Karena AB maka A C,G,H,I dan dibentuk R2=(A,C,G,H,I)
• R1=(A,B) memenuhi 4NF, sebab MVD : AB trivial
• R2=(A,C,G,H,I)Bukan 4NF, karena MVD : CGH nontrivial
• Dekomposisi R2 :Dari CGH dibentuk R21=(C,G,H)Karena CGH maka CGA,I dan dibentuk R22=(C,G,A,I)
• R21=(C,G,H) 4NF, karena MVD : CGH trivial, tetapi R22=(C,G,A,I)bukan 4NF, karena ada MVD : AI (dari AB, BHI maka A-->HI dan AI).
• Dekomposisi R22 menjadi R221=(A,I) dan R222=(A,C,G)dan masing-masing merupakan bentuk 4NF.
Fourth Normal Form (4NF)
R1=(A,B)
R21=(C,G,H)
R221=(A,I)
R222=(A,C,G)
Memenuhi 4NF
©Silberschatz, Korth and Sudarshan1.208Database System Concepts
Penawaran Mata KuliahMata Kuliah Instruktur PustakaBasis Data Himawan CJ DateBasis Data Purwanto CJ DateBasis Data Aris Marjuni CJ DateBasis Data Himawan HF KorthBasis Data Purwanto HF KorthBasis Data Aris Marjuni HF KorthMatematika M Sidiq C LiuMatematika M Sidiq MT Lang
BCNF, sebab : - 1NF, Yes - 2NF, Yes. Sebab semua atribut mrpk atribut kunci. - 3NF, Yes. Sebab tidak ada ketergantungan transitif. - BCNF, Yes. Tidak ada FD pada atribut bukan kunci. - 4NF, No. Sebab terdapat MVD yang nontrivial. Dekomposisi ……………………
MVD : Mata Kuliah Instruktur Mata Kuliah Pustaka
Fourth Normal Form (4NF)
©Silberschatz, Korth and Sudarshan1.209Database System Concepts
InstMata Kuliah InstrukturBasis Data HimawanBasis Data PurwantoBasis Data Aris MarjuniMatematika M Sidiq
PustMata Kuliah PustakaBasis Data CJ DateBasis Data HF KorthMatematika C LiuMatematika MT Lang
Penawaran Mata KuliahMata Kuliah Instruktur PustakaBasis Data Himawan CJ DateBasis Data Purwanto CJ DateBasis Data Aris Marjuni CJ DateBasis Data Himawan HF KorthBasis Data Purwanto HF KorthBasis Data Aris Marjuni HF KorthMatematika M Sidiq C LiuMatematika M Sidiq MT Lang
4NF
4NF
Mata KuliahPustaka
Mata KuliahInstruktur
Fourth Normal Form (4NF)
Refference :Toby J. Teorey, Database Modeling & Design, page 112-116
©Silberschatz, Korth and Sudarshan1.210Database System Concepts
X Y Z
1 1 1
1 1 2
1 2 1
1 2 2
2 2 1
2 2 2
3 3 3
X Y Z
1 1 1
1 1 2
1 2 1
1 2 2
2 2 1
2 1 2
X Y Z
1 1 1
1 1 2
1 2 1
2 2 1
2 2 2
R1 R2 R3
4NF ? No.- MVD nontrivial- Bukan Superkey
4NF ? Yes
4NF ? Yes
Fourth Normal Form (4NF)
©Silberschatz, Korth and Sudarshan1.211Database System Concepts
Fifth Normal Form (5NF)
S P J
S1 P1 J2
S1 P2 J1
S2 P1 J1
S1 P1 J1
SPJ
SPSJ4NF ? No
S P
S1 P1
S1 P2
S2 P1
SP
P J
P1 J2
P2 J1
P1 J1
PJ
SP4NF ? Yes
SJ4NF ? Yes
Misal SPJ berisi data-data Supplier (S) yang memasok barang (P) untuk suatu Project (J). Satu supplier dapat memasok banyak barang, supplier jugaDapat berpartisipasi pada banyak proyek.
Key : S, P, JMVD :
Jika SP dan PJ di-project join-kan kembali on P akan diperoleh :
S P J
S1 P1 J2
S1 P1 J1
S2 P1 J2
S2 P1 J1
S1 P2 J1
SP join PJ
Tupel asing
Ternyata projection-join dari dekomposisinya tidak mengembalikan Ke relasi asal.
©Silberschatz, Korth and Sudarshan1.212Database System Concepts
S P J
S1 P1 J2
S1 P1 J1
S2 P1 J2
S2 P1 J1
S1 P2 J1
SP join PJ
Relasi hasil project-join tsb akan kembali ke bentuk relasi asal SPJ setelah di project-joinKan dengan SJ pada S dan J
S J
S1 J2
S1 J1
S2 J1
SJ
Project-joinon (S,J)
S P J
S1 P1 J2
S1 P1 J1
S2 P1 J1
S1 P2 J1
SPJ (Original)
Dekomposisi Akhir
S P
S1 P1
S1 P2
S2 P1
SP
P J
P1 J2
P2 J1
P1 J1
PJ
S J
S1 J2
S1 J1
S2 J1
SJ
Fifth Normal Form (5NF)
©Silberschatz, Korth and Sudarshan1.213Database System Concepts
Fifth Normal Form (5NF)
Disebut juga Projection-Join Normal Form (PJ/NF) Skema relasi R disebut memenuhi 5NF jika tidak dapat dibuat menjadi beberapa tabel kecil yang lossless melalui operasi projection- join atau
Skema relasi R disebut memenuhi 5NF jika setiap join dependency (JD) nontrivial pada R diimplikasikan oleh Candidate key dari R Join Dependency
Batasan dekomposisi yang lossless pada sejumlah operasi project-join
©Silberschatz, Korth and Sudarshan1.214Database System Concepts
S P J
S1 P1 J2
S1 P2 J1
S2 P1 J1
S1 P1 J1
SPJ
SPSJ4NF ? No
S P
S1 P1
S1 P2
S2 P1
SPP J
P1 J2
P2 J1
P1 J1
PJ
SP4NF ? Yes5NF ? Yes
SJ4NF ? Yes4NF ? Yes
Key : S, P, JMVD :
5NF ? Yes, tidak dapat didekomposisi lagi
Trivial pada candidate key
S J
S1 J2
S1 J1
S2 J1
SJ
4NF ? Yes, tidak ada MVD5NF ? Yes
Refference :C.J. Date, An Introduction To Database Systems, page 394-399
Fifth Normal Form (5NF)
©Silberschatz, Korth and Sudarshan1.215Database System Concepts
4NF
5NF
BCNF
3NF
2NF
1NF
LEVEL NORMALISASI
SUMMARY
©Silberschatz, Korth and Sudarshan1.216Database System Concepts
It is best to find a database design that meet the 3-criteria :• NF (Normal-Form)note
• Dependency Preservation• Lossless-Join
noteIf we only have functional dependencies (FD), the first criteria is just BCNF.If we only have multivalued dependency (MVD), the first criteria is just 4NF.If we only have join dependency (JD), the first criteria is just 5NF.
If we cannot meet all 3-criteria, we compromise on 4NF, and accept BCNF, or even 3NF if necessary, to ensure dependency preservation.
SUMMARY