Basis Data (Database) (3 SKS) Tujuan Instruksional Umum : Mahasiswa mampu merancang Basis Data yang baik sesuai konsep-konsep perancangan Basis Data yang benar. Database System Concepts 1.1 ©Silberschatz, Korth and Sudarshan Basis Data (Database) 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 Database System Concepts 1.2 UTS UAS ©Silberschatz, Korth and Sudarshan Basis Data (Database) Referensi : Utama : Henry F Korth, Silberschatz, Sudarsan, “Database system concepts” Pendukung : C.J. Date, “Pengenalan Sistem Basis Data” Fathansyah, “Basis Data” Adi Nugroho, ST., MMSI., “Konsep Pengembangan Sistem Basis Data” Database System Concepts 1.3 ©Silberschatz, Korth and Sudarshan Basis Data (Database) 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 Database System Concepts 1.4 ©Silberschatz, Korth and Sudarshan Konsep Dasar Basis Data Arti Penting Database (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 Database System Concepts 1.5 ©Silberschatz, Korth and Sudarshan Konsep Dasar Basis Data Database System Applications : Banking : for customer information, accounts and loans, and banking transactions Airlines : 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 items Human 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 Database menyentuh semua aspek kehidupan Database System Concepts 1.6 ©Silberschatz, Korth and Sudarshan Konsep Dasar Basis Data 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 Database System Concepts 1.7 ©Silberschatz, Korth and Sudarshan Konsep Dasar Basis Data Sistem Pemrosesan Berkas (File Processing System / System File) : “sekelompok rekaman disimpan pada sejumlah berkas secara terpisah” personalia Prog. Aplikasi Personalia Berkas personalia pelatihan Prog. Aplikasi Pelatihan Database System Concepts 1.8 Berkas pelatihan ©Silberschatz, Korth and Sudarshan Konsep Dasar Basis Data 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 Database System Concepts 1.9 ©Silberschatz, Korth and Sudarshan Konsep Dasar Basis Data 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 Database System Concepts 1.10 ©Silberschatz, Korth and Sudarshan Konsep Dasar Basis Data 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 Database System Concepts 1.11 ©Silberschatz, Korth and Sudarshan Konsep Dasar Basis Data Pendekatan Basis Data : personalia pelatihan DBMS Basis Data Data tersimpan secara terpusat berbagai User dapat mengakses data menggunakan DBMS Database System Concepts 1.12 ©Silberschatz, Korth and Sudarshan Konsep Dasar Basis Data 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 Database System Concepts 1.13 ©Silberschatz, Korth and Sudarshan Konsep Dasar Basis Data 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 Basis Data IDProd NamaProduk Harga QtyStock F001 TV 14” 1500000 12 F002 TV 21” 2100.000 4 F003 TV 21” Flatron 2700000 24 link NoOrder Date IDProd QtyOrder IDSls 120301 12/11/04 F001 2 120302 13/11/04 F001 120303 22/11/04 F003 Database System Concepts File / Tabel link IDSls NmSls AlamatAsal KotaAsal S001 S001 Anita Jl. Nakula 9 Kendal 2 S003 S002 Vicky Jl. Arjuna I/6 Semarang 6 S001 S003 Roni Jl. Bima II/3 Semarang 1.14 ©Silberschatz, Korth and Sudarshan Konsep Dasar Basis Data C.J. Date : Basis data adalah tempat untuk sekumpulan file data /berkas terkomputerisasi Korth : A Database is a collection of interralated data 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 Database System Concepts 1.15 ©Silberschatz, Korth and Sudarshan Database System Concepts 1.16 ©Silberschatz, Korth and Sudarshan Konsep Dasar Basis Data 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 Database System Concepts 1.17 ©Silberschatz, Korth and Sudarshan Skema 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. Database System Concepts 1.18 ©Silberschatz, Korth and Sudarshan SKEMA FISIK SKEMA LOGIK Konsumen Barang Kode_k Nama_k Alamat_k Kota_k Kode_brg Nama_brg Satuan Harga char(4) char(20) char(12) char(10) Jual_h No_fak Tgl_jual Kode_k char(5) date char(4) int(2) char(15) char(10) int IDProd NamaProduk Harga QtyStock F001 TV 14” 1500000 12 F002 TV 21” 2100.000 4 F003 TV 21” Flatron 2700000 24 link 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 link Jual_d No_fak char(5) Kode_brg int(2) Jml dec(12,2) Database System Concepts 1.19 IDSls NmSls AlamatAsal KotaAsal S001 Anita Jl. Nakula 9 Kendal S002 Vicky Jl. Arjuna I/6 Semarang S003 Roni Jl. Bima II/3 Semarang ©Silberschatz, Korth and Sudarshan Database System Concepts 1.20 ©Silberschatz, Korth and Sudarshan Database System Concepts 1.21 ©Silberschatz, Korth and Sudarshan Database System Concepts 1.22 ©Silberschatz, Korth and Sudarshan Database System Concepts 1.23 ©Silberschatz, Korth and Sudarshan Database System Concepts 1.24 ©Silberschatz, Korth and Sudarshan Database System Concepts 1.25 ©Silberschatz, Korth and Sudarshan Konsep Dasar Basis Data 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. Database System Concepts 1.26 ©Silberschatz, Korth and Sudarshan Sistem Basis Data Komponen Sistem Basis Data : Hardware Operating System Basis Data DBMS Pemakai / User Software lain Basis Data user File1 File3 file2 Database System Concepts 1.27 File4 ©Silberschatz, Korth and Sudarshan 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 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. Database System Concepts 1.28 ©Silberschatz, Korth and Sudarshan Sistem Basis Data Contoh Produk DBMS : Oracle (Oracle Corp.) Informix Sybase Dbase MS Sql Server MySQL Sasaran utama DBMS menyediakan lingkungan yang nyaman dan efisien dalam menyimpan dan mengambil informasi ke dan dari basis data Database System Concepts 1.29 ©Silberschatz, Korth and Sudarshan 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 Database System Concepts 1.30 ©Silberschatz, Korth and Sudarshan Sistem Basis Data Database Administrator (DBA) 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 System Concepts 1.31 ©Silberschatz, Korth and Sudarshan Sistem Basis Data Struktur Sistem Keseluruhan : Naïve user Program Aplikasi Exe Program Programmer casual System Call Query DML Precompiler Query Processor Database Manager Skema Basis Data DDL Compiler DBMS File Manager File Data Disk Compiler DDL menghasilkan sekumpulan tabel yang tersimpan dalam kamus data. Kamus Data berisi metadata (data tentang data) Database System Concepts DBA 1.32 Kamus Data ©Silberschatz, Korth and Sudarshan 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 Database System Concepts 1.33 ©Silberschatz, Korth and Sudarshan Sistem Basis Data Merupakan tingkatan dalam bagaimana Tingkat abstraksi melihat data dalam Sistem Basis Data Abstraksi Data : Level Penampakan : user yang menikmati sebagian dari Basis Data Menggambarkan data apa yg sebenarnya (secara fungsional) disimpan dlm Basis Data dan hubungannya dg data lain Bagaimana sesungguhnya suatu data disimpan Database System Concepts 1.34 ©Silberschatz, Korth and Sudarshan Tingkat abstraksi Tingkat Fisik : yang menjelaskan bagaimana sebuah rekord disimpan. Tingkat Lojik : menjelaskan simpanan data dalam database, dan relasi antar data. Jual_h Konsumen Kode_k Nama_k Alamat_k Kota_k char(4) char(20) char(12) char(10) No_fak Tgl_jual Kode_k char(5) date char(4) Jual_d Barang Kode_brg Nama_brg Satuan Harga int(2) char(15) char(10) int No_fak char(5) Kode_brg int(2) Jml dec(12,2) Tingkat user (pandang): program aplikasi menyembunyikan rinci tipe data. Tingkat pandang dapat juga menyembunyikan nilai informasi untuk kebutuhan keamanan. Database System Concepts 1.35 ©Silberschatz, Korth and Sudarshan Sistem Basis Data Merupakan cara berinteraksi pemakai dg basis Bahasa Basis Data : data yang sesuai dengan aturan ditetapkan oleh pembuat DBMS Bagian 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. Database System Concepts 1.36 ©Silberschatz, Korth and Sudarshan Tugas a. List four significant differences between a file-processing system and a DBMS b. What are two advantages and disadvantages of a database system c. What are five main function of a database administrator d. Explain the database system concepts e. Explain the database schema, physical schema and logical schema Database System Concepts 1.37 ©Silberschatz, Korth and Sudarshan 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 Database System Concepts 1.38 ©Silberschatz, Korth and Sudarshan Model Data Dalam SBD Secara umum : E-R Model Semantic Model Object Based Data Model Record Based Binary Model Relational Model Hierarchycal Model Network Model Physical Based Unifying Model Frame Model Database System Concepts 1.39 ©Silberschatz, Korth and Sudarshan 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). Database System Concepts 1.40 ©Silberschatz, Korth and Sudarshan Model Data Dalam SBD Model data File datar ( Flat-file data model ) Contoh 1, Flat-file Model Data Model data flat-file dengan panjang fields-nya konstan. 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 Database System Concepts 1.41 ©Silberschatz, Korth and Sudarshan 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. Database System Concepts 1.42 ©Silberschatz, Korth and Sudarshan 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-S1 1234: Max Tetelepta : Progdi TI-S1 2345: Tyas Catur P.: Progdi TI-S1 3456: Ifan Riska:PS. Progdi TI-S1 4567: Ayu Pertiwi:PS. Progdi TI-S1 5678: Etika Kartika:PS. Progdi TI-S1 6789: Anthoni Suteja:PS. Progdi TI-S1 7890: Fikri Budiman: Progdi TI-S1 Database System Concepts 1.43 ©Silberschatz, Korth and Sudarshan 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. Database System Concepts 1.44 ©Silberschatz, Korth and Sudarshan 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 Database System Concepts 1.45 ©Silberschatz, Korth and Sudarshan Model Data Dalam SBD 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. Model Data Hirarkis : Contoh : Univ Nama Universitas UDINUS Fak Nama Fak Fasilkom Jml Dosen Jml Mhs 85 8500 Mhs NIM Nama A21002 Adam Jml Fak 5 Dosen Fakultas Fasilkom NIP A001 Nama_D Pangkat DR. Vis IIIC MK KD MK Nama_mk SKS MKK01 Database System Concepts SBD I 1.46 2 ©Silberschatz, Korth and Sudarshan Model Data Dalam SBD Model Data Hirarkis Keterangan : 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 Database System Concepts 1.47 ©Silberschatz, Korth and Sudarshan Model Data Dalam SBD 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 diatasnya Model Data Jaringan : Contoh : Universitas Fakultas Mahasiswa Dosen Mata Kuliah Registrasi Database System Concepts 1.48 ©Silberschatz, Korth and Sudarshan Model Data Dalam SBD Model Data Jaringan 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. Database System Concepts 1.49 ©Silberschatz, Korth and Sudarshan Model Data Dalam SBD E-R model : Model yang menjelaskan hub antar data dalam basis data berdasarkan suatu persepsi bahwa real word terdiri dari obyekobyek dasar yang mempunyai relasi antara obyek-obyek tersebut Simbol-simbol : entitas Relasi / hubungan atribut Database System Concepts Garis hubung 1.50 ©Silberschatz, Korth and Sudarshan Model Data Dalam SBD Contoh skema dalam model hubungan entitas Database System Concepts 1.51 ©Silberschatz, Korth and Sudarshan Model Data Dalam SBD Hampir sama seperti E-R Model, tetapi relasi antar obyek dasar dinyatakan dengan katakata (semantik). Model Data Semantic : SKS Contoh : Kode Mata Kuliah NM_kul Mengajar mengambil Dosen Mahasiswa NIM Nama_dos Alamat Nama Database System Concepts 1.52 ©Silberschatz, Korth and Sudarshan Model Data Relasional Disebut juga : Model Relasional atau Basis Data Relasional (ditemukan oleh : E.F. Codd) Menunjukan suatu cara yang digunakan untuk mengelola data secara fisik dalam memori sekunder dan bagaimana bentuk relasi dari keseluruhan data dalam sistem yang sedang ditinjau Kelebihan : 1. 2. 3. Dapat mengakomodasi berbagai kebutuhan pengelolaan basis data yg ada di dunia nyata (real word) Pencarian data dari suatu tabel atau banyak tabel dapat dilakukan dengan cepat Merupakan model yang paling sederhana sehingga mudah untuk dipahami Database System Concepts 1.53 ©Silberschatz, Korth and Sudarshan Model Data Dalam SBD Model Data Relasional Basis Data akan disebar / dipilah ke dalam tabel dua dimensi Contoh : Kolom / Field / Atribut NIM Baris / kardinalitas 980001 980002 980003 980004 Nama Mahasiswa Ali Akbar Budi Haryanto Imam Faisal Indah Susanti Tabel / relasi Alamat Tgl Lahir Jl. Merdeka No. 10 Jakarta 40121 Jl. Gajah Mada No. 2 Jakarta Komp. Griya Asri D-2 Depok 40151 Jl. Adil No. 123 Bogor 2 Jan 1979 6 Okt 1978 13 Mei 1978 21 Juni 1979 Record / tuple Item data Database System Concepts 1.54 ©Silberschatz, Korth and Sudarshan Model Data Dalam SBD Model Data Relasional Istilah-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 Database System Concepts 1.55 ©Silberschatz, Korth and Sudarshan Contoh Database Relasional Database System Concepts 1.56 ©Silberschatz, Korth and Sudarshan Model Data Dalam SBD Model Data Berorientasi Obyek 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. Database System Concepts 1.57 ©Silberschatz, Korth and Sudarshan Model Data Dalam SBD Model Data Berorientasi Obyek Contoh : Model Data Berorientasi Obyek Database declarations using Java Application code written using Java Object declarations using Java Java program compiler Database interaction Application executables generated End user Database System Concepts 1.58 ©Silberschatz, Korth and Sudarshan Model Data Dalam SBD Model Data Berorientasi Obyek Relasi pada basis data berorientasi obyek Nama Class Properties Class Operasi / method Database System Concepts 1.59 ©Silberschatz, Korth and Sudarshan Model Data Dalam SBD Model Data Berorientasi Obyek 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. Database System Concepts 1.60 ©Silberschatz, Korth and Sudarshan Model Data Dalam SBD Model Data Berorientasi Obyek Kelemahan basis data berorientasi objek: User harus memahami konsep berorientasi objek, karena basis data berorientasi objek tidak dapat bekerja dengan metoda pemrograman tradisional Database System Concepts 1.61 ©Silberschatz, Korth and Sudarshan 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 : Identifying Relationship Strong Entity Attribute Weak Entity Relationship Associative Entity Multivalued Attribute Derived Attribute Link Database System Concepts 1.62 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) 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 Database System Concepts 1.63 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) Contoh : Analogi NIM 980001 980002 980003 980004 Nama Mahasiswa Ali Akbar Budi Haryanto Imam Faisal Indah Susanti Alamat Tgl Lahir Jl. Merdeka No. 10 Jakarta 40121 Jl. Gajah Mada No. 2 Jakarta Komp. Griya Asri D-2 Depok 40151 Jl. Adil No. 123 Bogor 2 Jan 1979 6 Okt 1978 13 Mei 1978 21 Juni 1979 Entitas 1 Entitas 2 Entitas 3 Entitas 4 Himpunan Entitas Database System Concepts 1.64 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) 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 entitas Contoh : Atribut NIM pada Himp. Entitas mahasiswa Atribut Deskriptif : Merupakan atribut lain selain atribut kunci yang befungsi sebagai penjelasan terhadap entitas dalam himpunan entitas Contoh : Atribut nama, alamat, tgl_lahir pada Himp. Entitas MHS Database System Concepts 1.65 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) 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. Database System Concepts 1.66 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) Contoh : No_KTP No_SIM Nama Alamat superkey Superkey : No_KTP+No_SIM+Nama+Alamat No_KTP+No_SIM+Nama No_KTP+No_SIM No_KTP No_SIM Candidate Key Primary Key Candidate Key: No_KTP No_SIM Database System Concepts 1.67 Primary Key: No_KTP atau No_SIM tergantung kebutuhan ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) Dasar pemilihan Primary Key : 1. Key sering digunakan sebagai acuan 2. Key lebih ringkas 3. 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 Database System Concepts 1.68 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) 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 98001 Rudi 98002 Wati Hobi Jl. Seroja Renang Nonton 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 Database System Concepts 1.69 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) Contoh : NIM Nama Alamat Angkatan IPK 98001 Andi 99011 Susi Jl. X Jl. Y 1998 1999 3.2 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 Database System Concepts 1.70 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) Relasi (Relationship) : Digunakan untuk menunjukan hubungan antar entitas Himpunan Relasi (Relationship Sets) : Merupakan kumpulan semua relasi diantara entitas Contoh : Mahasiswa NIM Nama ... Mata Kuliah Kode_kul Nama_kul 98001 Andi ... 98003 Rudi ... 98013 Susi ... A01 A03 A02 Pancasila Internet I Network I sks 2 2 2 Dari tabel-tabel diatas, dapat dilihat bahwa terdapat hubungan / relasi antara himp entitas mahasiswa dengan mata kuliah. --> Andi mempelajari mata kuliah Internet I --> Rudi mempelajari mata kuliah Internet I dan Network I Database System Concepts 1.71 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) Sehingga apabila dimodelkan dengan E-R Diagram : Mahasiswa Mempe lajari Mata kuliah Kode_kul NIM Nama Nama_kul sks Database System Concepts 1.72 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) 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) Entitas 1 Entitas 2 Entitas 3 Entitas 4 A Database System Concepts Entitas 1 Entitas 2 Entitas 3 Entitas 4 Setiap entitas pada himp entitas A Berhubungan dengan paling banyak Dengan satu entias pada himpunan Entitas B dan begitu juga sebaliknya B 1.73 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) Contoh : Nama-Dosen Dosen Kode alamat 1 1 Menge palai Nama-Dosen Nama_prog Progdi 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. Database System Concepts 1.74 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) Satu ke banyak (one to many) Entitas 1 Entitas 2 Entitas 3 Entitas 4 A Contoh : Database System Concepts Setiap entitas pada himp entitas A Berhubungan dengan banyak entias pada himpunan entitas B, tetapi Tidak sebaliknya Entitas 1 Entitas 2 Entitas 3 Entitas 4 B Setiap agama dapat dianut oleh lebih dari satu mahasiswa, tetapi tidak sebaliknya (setiap mahasiswa hanya dapat menganut satu agama) 1.75 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) Contoh : Kode_agm Agama 1 NIM dianut N Mahasiswa NIM Kode_agm Nama Deskripsi Semester Database System Concepts 1.76 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) banyak ke banyak (many to many) Entitas 1 Entitas 2 Entitas 3 Entitas 4 A Contoh : Database System Concepts Setiap entitas pada himp entitas A Berhubungan dengan banyak entias pada himp entitas B, dan sebaliknya Entitas 1 Entitas 2 Entitas 3 Entitas 4 B Setiap dosen dapat mengajar lebih dari satu mata Kuliah dan setiap mata kuliah dapat diajar oleh lebih Dari satu dosen 1.77 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) Contoh : Nama_dos Dosen N kode-_kuliah Mengajar Nama_dos Alamat_dos N Mata Kuliah Kode_kuliah waktu Nm_kuliah tempat SKS Database System Concepts 1.78 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) 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 Database System Concepts 1.79 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) 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 N N Mengajar Mata Kuliah Kamus Data : Dosen = {Nama_dos, Alamat_dos} Mengajar = {Nama_dos, KD_kuliah, Waktu, Tempat, Ruang } Mata Kuliah = {Kd_kuliah, Nm_kuliah, SKS} Database System Concepts 1.80 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) Derajad Relasi Minimum : Menunjukan hubungan (korespondensi) minimum yang boleh terjadi dalam suatu relasi antar himpunan entitas. Nilai derajad relasi minimum hanya boleh 0 atau 1. Contoh : minimum Mahasisa maksimum (0,N) Mempela jari (0,N) Mata Kuliah ® 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 Database System Concepts 1.81 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) ERD dalam Notasi Lain : Notasi : Notasi o o Database System Concepts Derajad Relasi Minimum - Maksimum atau atau atau atau (0,N) (1,N) (1,1) (0,1) o o 1.82 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) Contoh : Mahasisa o Mempela jari o Mata Kuliah Kamus Data : Mahasiswa = {NIM, Nama, Alamat} Mempelajri = {NIM, KD_kuliah, Waktu, Tempat, Ruang } Mata Kuliah = {Kd_kuliah, Nm)kuliah, SKS} Database System Concepts 1.83 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) 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 menjamin keunikan entitas. Database System Concepts 1.84 ©Silberschatz, Korth and Sudarshan 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) Database System Concepts 1.85 ©Silberschatz, Korth and Sudarshan 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 Database System Concepts 1.86 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) Contoh : memiliki NIM Orang Tua NM_ortu alm_ortu Nama NIM Mahasiswa Nm_ortu alamat Tgl_lhr Hobbi Menye Hobbi nangi NIM Database System Concepts hobbi 1.87 Kunci utama Kunci yg tidak menyakinkan ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) Varian Relasi : Relasi Tunggal (Unary Relation) Relasi yang terjadi dari antar himpunan entitas yg sama Contoh : 1 Nama_dos Keahlian Nama_dos Mendam pingi Dosen N Database System Concepts 1.88 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) Relasi Ganda (Redundant Relation) Contoh : Nm_dos Kd_kul Meng ajar 1 Dosen tempat N waktu N Kuliah N Meng uasai Nm_dos Database System Concepts Kd_kul 1.89 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) Relasi Multi Entitas (N-ary / Ternary Relation) Merupakan relasi yang terdiri dari 3 himpunan entitas / lebih Contoh : Nama_dos Kd_kul Penga jaran Kuliah nm_kul Nama_dos waktu Kd_rg Kd_kul Dosen Kd_rg Ruang sks Nm_rg kap Database System Concepts 1.90 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) Spesialisasi : Merupakan proses dekomposisi (pengelompokkan) sebuah himpunan entitas yg melahirkan himpunan entitas baru yang dilakukan secara top-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). Database System Concepts 1.91 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) Contoh 1 : Nm_dos dosen nik alm_kantor Dosen tetap Database System Concepts alm_dos Nm_kantor Is a pangkat Top - down Dosen ttd tetap 1.92 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) Contoh 2 : Database System Concepts 1.93 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) Generalisasi : Merupakan penyatuan beberapa himpunan entitas menjadi sebuah himpunan entitas baru. Atribut dari masing-masing himpunan 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. Database System Concepts 1.94 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) Contoh : Mahasiswa bottom - up Is a Mahasiswa D3 Database System Concepts Mahasiswa S1 1.95 ©Silberschatz, Korth and Sudarshan Spesialisasi 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 Database System Concepts 1.96 ©Silberschatz, Korth and Sudarshan Batasan perancangan dalam Spesialisasi/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 Database System Concepts 1.97 ©Silberschatz, Korth and Sudarshan Batasan perancangan dalam Spesialisasi/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 Database System Concepts 1.98 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) Agregasi : Merupakan sebuah relasi yang secara kronologis mensyaratkan telah adanya relasi lain. Contoh : Mahasiswa NIM Nama NIM Kd_rg Kd_rg Database System Concepts N mempelajari N Kuliah Kd_kul nm_kul N mengikuti Kd_kul nilai N Praktikum 1.99 Nama_pr ©Silberschatz, Korth and Sudarshan Agregasi Sehubungan dengan relasi ternary works-on, seperti pada contoh dibawah Seandainya kita ingin mengetahui manajer dari seorang karyawan di sebuah cabang Database System Concepts 1.100 ©Silberschatz, Korth and Sudarshan Agregasi 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 Database System Concepts 1.101 ©Silberschatz, Korth and Sudarshan Diagram E-R dengan Agregasi Database System Concepts 1.102 ©Silberschatz, Korth and Sudarshan Diagram E-R Diagram untuk Bank Database System Concepts 1.103 ©Silberschatz, Korth and Sudarshan Exercise Consider a university database for the scheduling of classrooms for final exams. This database could be modeled as the single entity set exam, with attributes course_number, section_number, room_number and time. Alternatively, one or more 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. Database System Concepts 1.104 ©Silberschatz, Korth and Sudarshan 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 Mahasiswa Nim nama_mhs alamat nim Nama_mhs alamat Database System Concepts 1.105 ©Silberschatz, Korth and Sudarshan 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 Kode_dos Dosen 1 mengepalai 1 Progdi nm_dos dosen Kode_dos nm_dos Kode_dos Kode_P Kode_p progdi Kode_p nm_p Kode_dos nm_p Atribut yg ditambahkan Database System Concepts 1.106 ©Silberschatz, Korth and Sudarshan 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 atau Atribut-atribut relasi akan disertakan ke himp. Entitas yg mempunyai jumlah record yg lebih sedikit Database System Concepts 1.107 ©Silberschatz, Korth and Sudarshan 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). dosen 1 Kode_dos Kode_dos dosen nm_dos nm_dos Kode_dos Kode_kul mengajar kuliah ruang m Kuliah Kode_kul nm_kul sks kode_dos ruang Kode_kul nm_kul Atribut yg ditambahkan sks Database System Concepts 1.108 ©Silberschatz, Korth and Sudarshan 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 Mahasiswa mahasiswa nim Nim nama m nim krs nama krs Nim Kode_kul kode-Kul nilai nilai m kuliah kuliah Kode_kul Kode_kul nm_kul sks Nm_kul sks Database System Concepts 1.109 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) 5. Implementasi Himp. Entitas Lemah 1 memiliki mahasiswa nim 1 nim nama mahasiswa Nim nama orangtua Alm_ortu Hobbi hobbi Nm_ortu senang nim Nm_ortu 1 n hobbi orangtua Nm_ortu alm_ortu nim hobbi Hobi nim Key yang diambil dari entitas kuat Database System Concepts 1.110 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) 6. Implementasi Spesialisasi dosen Kd_dos nm_dos alm_dos nip Is a pangkat Nm_kantor Alm_kantor Tgl_msk Dosen tidak tetap Dosen tetap dosen Dosen tetap Kd_dos nm_dos alm_dos Nip pangkat tgl_msk kd_dos Nm_ktr alm_ktr kd_dos Dosen tidak tetap Key yg diambil dari entitas utama Database System Concepts 1.111 ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) 7. Implementasi Generalisasi nim nama mahasiswa alamat Is a Mahasiswa s1 Mahasiswa d3 mahasiswa Nim nama alamat Database System Concepts 1.112 progdi ©Silberschatz, Korth and Sudarshan E-R Model (Model Keterhubungan Entitas) 7. Implementasi unary relation Kd_dos Kd_dos 1 dosen dosen Kd_dos nm_dos kd_dos_pen mendampingi n Nm_dos kuliah n prasyarat kuliah n Nama atribut diganti sesuai dg fungsinya Kd_kul Kd_kul Kd_kul nm_kul prasyarat Kd_kul kd_kul_syarat Nm_kul Database System Concepts 1.113 ©Silberschatz, Korth and Sudarshan Functional Dependency And Normalization Database System Concepts 1.114 ©Silberschatz, Korth and Sudarshan motivasi Tabel : Film 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 What your comment ……….. Database System Concepts Is a “good” design .. ?? 1.115 ©Silberschatz, Korth and Sudarshan motivasi Tabel : Film 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 125 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 Update Anomaly Update informasi pada satu tupel tidak mengubah pada tupel yang lain Database System Concepts Redundancy Informasi diulang-ulang dalam beberapa tupel 1.116 ©Silberschatz, Korth and Sudarshan motivasi Tabel : Film 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 Delete Anomaly Jika Emilio Estavez dihapus, akan kehilangan informasi tentang Mighty Ducks Database System Concepts 1.117 ©Silberschatz, Korth and Sudarshan motivasi Tabel : Film 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 Star Wars 1977 124 Color MGM James Earl Jones Insertion Anomaly Jika kita sisipkan tupel baru (Star Wars, 177, 124, color, MGM, James Earl Jones) maka akan terjadi inkonsistensi pada atribut studio Database System Concepts 1.118 ©Silberschatz, Korth and Sudarshan motivasi 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. Database System Concepts 1.119 ©Silberschatz, Korth and Sudarshan motivasi Goals : Problems With : Integrity - redundansi - ambiguitas Performance - kecepatan akses - efisiensi storage Maintainability - update - delete - insert Database System Concepts Tabel Database yang baik (Good Design) : Mampu merepresentasikan informasi. Jika ada dekomposisi maka dekomposisinya adalah aman (Lossless, not Lossy) Terpeliharanya ketergantungan fungsional Mempunyai 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) 1.120 ©Silberschatz, Korth and Sudarshan we discuss before … Teori Dasar : Dekomposisi Relasi Ketergantungan Fungsional Key Database System Concepts 1.121 ©Silberschatz, Korth and Sudarshan dekomposisi relasi Dekomposisi : memecah relasi/tabel menjadi relasi/tabel yang lebih kecil untuk mendapatkan skema yang tidak mengandung anomali dan redundansi Diketahui skema relasi R. Gugus relasi {R1, R2, ,…, Rn} disebut Dekomposisi dari R jika : R1 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 Database System Concepts 1.122 ©Silberschatz, Korth and Sudarshan dekomposisi relasi Film 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 idfilm title year length filmType idstudio studioName F001 Star Wars 1977 124 color STD01 F002 Mighty Ducks 1991 104 color F003 Wayne’s World 1992 95 color Database System Concepts BintangFilm idstar starName Fox STR01 Carrie Fisher STD02 Disney STR02 Mark Hamill STD03 Paramount STR03 Harrison Ford STR04 Emilio Estevez STR05 Dana Carvey STR06 Mike Meyers Decomposition result 1.123 original ©Silberschatz, Korth and Sudarshan dekomposisi relasi 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 : n atau r ri n i 1 r ri atau r ri i 1 n i 1 Dekomposisi relasi R menjadi gugus relasi {R1, R2, …, Rn} yang menyebabkan hilangnya informasi disebut Lossy-Join Decomposition. Lossless Join digunakan untuk menjamin keutuhan data untuk operasi gabungan (join) dan merupakan fokus dalam desain basis data relasional Database System Concepts 1.124 ©Silberschatz, Korth and Sudarshan dekomposisi relasi 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 Oopss !!! Database System Concepts there is Anomaly !! Decompose it …… 1.125 ©Silberschatz, Korth and Sudarshan dekomposisi relasi Film 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 idfilm title year length filmType idstudio studioName F001 Star Wars 1977 124 color STD01 F002 Mighty Ducks 1991 104 color F003 Wayne’s World 1992 95 color Andaikan di dekomposisi Menjadi 3 tabel tsb …. Database System Concepts BintangFilm idstar starName Fox STR01 Carrie Fisher STD02 Disney STR02 Mark Hamill STD03 Paramount STR03 Harrison Ford STR04 Emilio Estevez STR05 Dana Carvey STR06 Mike Meyers Lossless or Lossy ? 1.126 ©Silberschatz, Korth and Sudarshan dekomposisi relasi Dengan ke-3 tabel hasil dekomposisi, misal ditanyakan informasi : “Di studio manakah Star Wars dibuat ?” Pasti kita akan membutuhkan tabel DaftarFilm dan StudioFilm. Tapi dapatkah diperoleh informasi yang kita inginkan dari kedua skema relasi tersebut ? Tampaknya : TIDAK. Karena kita harus melakukan operasi gabungan terlebih dahulu dari Ke-2 tabel. Misal kita lakukan operasi “cross product” antara Daftar_Film dan StudioFilm. DaftarFilm Database System Concepts StudioFilm 1.127 ©Silberschatz, Korth and Sudarshan Kehilangan LOSSY Informasi !! DECOMPOSITION dekomposisi relasi DaftarFilm idfilm title F001 StudioFilm year length filmType idstudio studioName 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) Database System Concepts 1.128 ©Silberschatz, Korth and Sudarshan functional dependencies (FD) Functional Dependencies (FD) / Ketergantungan Fungsional (KF) digunakan untuk menggambarkan atau mendeskripsikan bentuk normal atas suatu relasi 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 diberikan 2. Untuk menetapkan batasan gugus relasi yang berlaku 3. Untuk menentukan kunci relasi 4. Untuk melakukan normalisasi atas suatu tabel relasional Database System Concepts 1.129 ©Silberschatz, Korth and Sudarshan functional dependencies (FD) definisi Misalkan R adalah suatu skema relasional, atribut x R dan y R maka 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/tunggal 2. 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 Database System Concepts 1.130 ©Silberschatz, Korth and Sudarshan functional dependencies (FD) R = (A, B, C) contoh R = (A,B,C,D) A B C A B C D 1 4 C1 A1 B1 C1 D1 1 5 A1 B2 C1 D2 2 7 C1 A2 B2 C2 D2 A2 B3 C2 D3 A3 B3 C2 D4 C2 AB? t1(A)=t2(A), tetapi t1(B) t2(B) Maka A B AC? t1(A)=t2(A) dan t1(C) = t2(C) Maka A C Database System Concepts 1.131 AC? CA? (A,B) C ? (A,B) D ? Yes No Yes Yes ©Silberschatz, Korth and Sudarshan functional dependencies (FD) Database System Concepts 1.132 ©Silberschatz, Korth and Sudarshan functional dependencies (FD) contoh 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 ? Database System Concepts 1.133 ©Silberschatz, Korth and Sudarshan functional dependencies (FD) 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 Contoh : X,Y,Z X,Z XX X,Y,Z Z X,Y X X,Y,Z X,Y,Z X,Y Y Database System Concepts 1.134 ©Silberschatz, Korth and Sudarshan functional dependencies (FD) Armstrong’s Rule Diketahui A1. Reflexive Dari A2 Jika y x maka x y Diketahui A2. Augmentation Dari A3 Jika x y maka (x,z) (y,z) A3. Transitive Jika x y dan y z maka x z A4. Decomposition Jika x (y,z) maka x y dan x z A5. Union Jika x y dan x z maka x (y,z) A6. Pseudotranstivity Jika x y dan (z,y) w maka (x,z) w Database System Concepts 1.135 xy (x,z) (y,z) (z,y) w (x,z) w ©Silberschatz, Korth and Sudarshan Manfaat FD pada dekomposisi Untuk : 1. Lossless Join Decomposition Mendapatkan dekomposisi yang tidak kehilangan data/informasi 2. No Redundancy Mendapatkkan skema relasi yang tidak mengandung redundansi 3. Dependency Preservation Terjaminnya pemeliharaan ketergantungan sehingga dapat mengatasi masalah update anomali Database System Concepts 1.136 ©Silberschatz, Korth and Sudarshan 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 = R 2. Uji Lossless-join Menggunakan sifat ketergantungan fungsional Database System Concepts 1.137 ©Silberschatz, Korth and Sudarshan 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 F Ujilah 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. Database System Concepts 1.138 ©Silberschatz, Korth and Sudarshan uji lossless-joint decomposition contoh terbukti {R1,R2} Lossless 2. Uji Lossless 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 Jadi Dari (1) (5) (6) (7) (1) (8) (9) (3) (10) (11) Database System Concepts B A,G maka : B,D A,G,D (augmentasi) B,D B,D (refleksif) B,D A,B,D,G B A,G maka B A dan BG A E,C maka A E dan A C maka : Dari dan Maka Dan (8) (11) (12) (13) BA AC B C (transitif) B,D C,D (augmentasi) Dari (7) dan (13) didapat : B,D A,B,C,D,G Dari contoh di atas, tunjukkan pula bahwa (B,D) (B,D,E,F,H) 1.139 ©Silberschatz, Korth and Sudarshan 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. Database System Concepts 1.140 ©Silberschatz, Korth and Sudarshan 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+. Armstrong’s rule dapat dimanfaatkan untuk menentukan F+ Contoh : Diketahui R = (A, B, C, D) F = { A B, B C, A C, C D} maka : AD sebab A C dan C D, dari sifat transitif (A3) didapat A D BD sebab B C dan C D, dari sifat transitif (A3) didapat B D Sehingga {A B, B C, A C, C D, A D, B D} F+. Kita dapat menurunkan anggota-anggota F+ yang lain berdasarkan FD yang diketahui menggunakan Armstong’s rule. Closure FD (F+) berguna untuk Uji Dependency Preservation Database System Concepts 1.141 ©Silberschatz, Korth and Sudarshan uji dependency preservation Contoh : Diketahui skema relasi R=(A,B,C) dengan FD : A B ; B C Didekomposisi 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) = B Lossless jika B (A,B) atau B (B,C). Karena diketahui B C maka BB BC atau B BC (Augmentasi). Jadi dekomposisi tsb Lossless. Database System Concepts 1.142 ©Silberschatz, Korth and Sudarshan uji dependency preservation 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 Preservation Apabila 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 Database System Concepts 1.143 ©Silberschatz, Korth and Sudarshan soal latihan 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 : WX;XZ 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. Database System Concepts 1.144 ©Silberschatz, Korth and Sudarshan KEYS Database System Concepts 1.145 ©Silberschatz, Korth and Sudarshan 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 Database System Concepts 1.146 ©Silberschatz, Korth and Sudarshan 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 Database System Concepts 1.147 ©Silberschatz, Korth and Sudarshan candidate key 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 Database System Concepts 1.148 ©Silberschatz, Korth and Sudarshan primary key 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 superkey Sebagai Candidate Key nya adalah NoKTP atau NoSIM Maka NoSIM lebih baik dipilih sebagai Primary Key untuk skema relasi Sopir Database System Concepts 1.149 ©Silberschatz, Korth and Sudarshan secondary key Secondary Key adalah atribut (atau kombinasinya), yang digunakan sebagai 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 ada transaksi yang berkaitan dengan penggunaan identitas No SIM ?. Untuk memudahkan proses pencarian data sopir tersebut maka dapat digunakan atribut lain yang lebih mudah diingat misalnya “nama” dan/atau “alamat”. Penggunaan secondary key ini tentu saja tidak menjamin ditemukannya data uang 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 ? Database System Concepts 1.150 ©Silberschatz, Korth and Sudarshan foreign key Foreign Key adalah satu atau lebih atribut dalam satu tabel yang merupakan primary key tabel lain (kunci penghubung). Produk IDProd NamaProduk Harga QtyStock F001 TV 14” 1500000 12 F002 TV 21” 2100.000 4 F003 TV 21” Flatron 2700000 24 link Tabel Name : Produk Primary key : IDProd Foreign Key : - Order NoOrder Date IDProd QtyOrder IDSls 120301 12/11/04 P001 2 120302 13/11/04 P001 120303 22/11/04 P003 link IDSls NmSls AlamatAsal KotaAsal S001 S001 Anita Jl. Nakula 9 Kendal 2 S003 S002 Vicky Jl. Arjuna I/6 Semarang 6 S001 S003 Roni Jl. Bima II/3 Semarang Tabel Name : Order Primary key : NoOrder Foreign Key : IDProd,IDSls Database System Concepts Sales Tabel Name : Sales Primary key : IDSls Foreign Key : - 1.151 ©Silberschatz, Korth and Sudarshan 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 superkey Sebab : XY WZ maka XY XY (refleksif) XY XYWZ (union) XY R Karena XY R maka XY superkey. Jadi ruas kiri dari FD merupakan superkey. Database System Concepts 1.152 ©Silberschatz, Korth and Sudarshan hubungan FD dengan key Rule 2 : Atribut yang secara fungsional menentukan superkey dari tabel maka atribut tersebut juga merupakan superkey Contoh : Diketahui W superkey dari tabel R = (W,X,Y,Z) dan FD : Z W maka Z superkey Sebab : Z W dan W WXYZ (karena W superkey), maka Z WXYZ (transitif) ZR Karena Z R maka Z superkey Database System Concepts 1.153 ©Silberschatz, Korth and Sudarshan hubungan FD dengan key R = (A,B,C,D) A B C D A1 B1 C1 D1 A1 B2 C1 D2 A2 B2 C2 D2 A2 B3 C2 D3 A3 B3 C2 D4 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) R Jadi (A,B) superkey dari R Apakah A superkey dari R ? Bukan, sebab A R. Mengapa ? Database System Concepts 1.154 ©Silberschatz, Korth and Sudarshan hubungan FD dengan key Diketahui S = (A,B,C,D,E,F) dan FD : A BC ; B D ; C EF ; BF A Carilah superkey dan candidate key dari S menggunakan FD A BC AB AC karena A B dan B D maka AD karena A C dan C EF maka A EF AA Sehingga A ABCDEF atau A S (superkey) Database System Concepts B D maka BC DC C EF maka BC BEF Jadi BC BCDEF BC BCDEF dan BC A maka BC ABCDEF BC S (superkey) BF A A ABCDEF maka BF ABCDEF BF S (superkey) 1.155 Superkey dari S A, 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 Sudarshan hubungan FD dengan key 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 R b. 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 R b. Carilah candidate key dari R 4. Diberikan R(A,B,C,D,E) dengan FD : A(BC);(CD)E;BD;EA a. Carilah superkey dari R b. Carilah candidate key dari R 5. Diberikan R(A,B,C) dengan FD : AB;BC;CA Apakah A merupakan satu-satunya candidate key dari R Database System Concepts 1.156 ©Silberschatz, Korth and Sudarshan Perhatikan Tabel berikut : a b c d e f No_fa k Tgl_faktur Nm_kons Almt_kons Kota_kons Kode_brg 101 10-01-08 Ali Jl. A. Yani No. 10 Semarang 101 10-01-08 Ali Jl. A. Yani No. 10 101 10-01-08 Ali 102 11-01-08 102 11-01-08 Database System Concepts g h I j Nama_brg Jml Hrg_sat 1101 Sandal 10 15000 150000 Semarang 1110 Sepatu 7 100000 700000 Jl. A. Yani No. 10 Semarang 1112 Kaos 15 30000 450000 Rudi Jl. Seroja Raya 1 Solo 1101 Sandal 20 15000 300000 Rudi Jl. Seroja Raya 1 Solo 1113 Jaket 4 200000 800000 1.157 bayar ©Silberschatz, Korth and Sudarshan End Session Today Tomorrow We’ll Discuss About Normalization …… Database System Concepts 1.158 ©Silberschatz, Korth and Sudarshan Normalization Database System Concepts 1.159 ©Silberschatz, Korth and Sudarshan 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) Database System Concepts 1.160 ©Silberschatz, Korth and Sudarshan First Normal Form (1NF) 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. Database System Concepts 1.161 ©Silberschatz, Korth and Sudarshan First Normal Form (1NF) Tabel : Sales IDSales ADN006 ADN007 ADN008 ADN009 ADN010 NamaSales Yeni, SE Memey Tina Ir. Yanto Made Telepon 3517261, 3520165 4744621,08122861427 08566241521 7265122, 7123910 6723192 1NF Database System Concepts IDSales ADN006 ADN006 ADN007 ADN007 ADN008 ADN009 ADN009 ADN010 1.162 non-atomic Unnormalized Not 1NF NamaSales Yeni, SE Yeni, SE Memey Memey Tina Ir. Yanto Ir. Yanto Made Telepon 3517261 3520165 4744621 08122861427 08566241521 7265122 7123910 6723192 ©Silberschatz, Korth and Sudarshan Unnormalized Not 1NF First Normal Form (1NF) Tabel : Buku ISBN Thn_Terbit ID_Pengarang 12-1202-19222 1992 K0121 11-1090-29101 2001 K1021 11-1090-29102 2001 K2091 12-1201-90871 2002 K2092 13-2089-12910 2001 K2019 repeated Nama_Pengarang Aris M Kosim P K Odelia Renaldi Samsuri J ISBN Thn_Terbit ID_Pengarang 12-1202-19222 1992 K0121 12-1202-19222 1992 K1021 11-1090-29101 2001 K1021 11-1090-29102 2001 K2091 11-1090-29102 2001 K0121 12-1201-90871 2002 K2092 12-1201-90871 2002 K2091 13-2089-12910 2001 K2019 Database System Concepts 1.163 ID_Pengarang Nama_Pengarang K1021 Kosim P K0121 K2091 Aris M K Odelia Nama_Pengarang Aris M Kosim P Kosim P K Odelia Aris M Renaldi K Odelia Samsuri J 1NF ©Silberschatz, Korth and Sudarshan Second Normal Form (2NF) Suatu relasi disebut memenuhi bentuk normal kedua (2NF) jika dan hanya jika : 1. memenuhi 1NF 2. 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 Database System Concepts 1.164 ©Silberschatz, Korth and Sudarshan Second Normal Form (2NF) 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 dan A,B E Jadi semua atribut bukan kunci utama tergantung penuh pada (A,B). Note : Jika suatu relasi memenuhi 1NF dan hanya memiliki tepat satu atribut kunci utama maka relasi tsb memenuhi 2NF Database System Concepts 1.165 ©Silberschatz, Korth and Sudarshan Second Normal Form (2NF) 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. Database System Concepts 1.166 ©Silberschatz, Korth and Sudarshan Second Normal Form (2NF) Diketahui Workshop = (NIM,Modul,Biaya,Grade) Peserta Workshop NIM Modul Biaya Grade (Biaya ditentukan oleh Modul yang diambil mahasiswa) Tabel biaya peserta workshop 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 Database System Concepts Key : NIM+Modul FD : Modul Biaya 1.167 1NF Not 2NF Sebab dalam tabel ini, Biaya tidak bergantung penuh pada atribut kunci (NIM,Modul) ©Silberschatz, Korth and Sudarshan Second Normal Form (2NF) NIM Modul Biaya Grade (NIM,Modul) = key (NIM,Modul) Biaya (partial) (NIM,Modul) Grade (full) NIM Modul Biaya Eliminate Grade Make Decomposition : Works1 = (NIM,Modul,Grade) Works2 = (Modul,Biaya) Fully Dependency Database System Concepts 1.168 ©Silberschatz, Korth and Sudarshan Second Normal Form (2NF) Workshop NIM Modul Grade P11.2004.0129 VB.Net A NIM Modul Biaya Grade P11.2004.0129 VB.Net 250000 A P11.2004.0130 Prolog A P11.2004.0130 Prolog 100000 A P11.2004.0129 Prolog B P11.2004.0129 Prolog 100000 B P11.2004.0201 Delphi 6 150000 A P11.2004.0201 Delphi 6 A P11.2004.0250 VB.Net 250000 B P11.2004.0250 VB.Net B Works1 More Better Then 1NF Modul Biaya VB.Net 250000 Prolog 100000 Delphi 6 150000 Works2 Database System Concepts 1.169 ©Silberschatz, Korth and Sudarshan Third Normal Form (3NF) Suatu relasi disebut memenuhi bentuk normal ketiga (3NF) jika dan hanya jika : 1. memenuhi 2NF 2. 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). Another Definition : 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 superkey 2. A merupakan anggota candidate key (A disebut prime attribute) Database System Concepts 1.170 ©Silberschatz, Korth and Sudarshan Third Normal Form (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. Note : Jika suatu relasi memenuhi 2NF dan hanya memiliki tepat satu atribut yang bukan kunci utama maka relasi tsb memenuhi 3NF Database System Concepts 1.171 ©Silberschatz, Korth and Sudarshan Third Normal Form (3NF) 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. Database System Concepts 1.172 ©Silberschatz, Korth and Sudarshan Third Normal Form (3NF) FD : A,B C,D,E berarti A,B C ; C D,E ; A,B D,E A,B D reduce A,B E reduce Dekomposisinya : R1=(A,B,C) ; FD : (A,B)C R2=(C,D,E) ; FD : CD,E R A A B B C C D E C D R2 R1 Database System Concepts E 1.173 ©Silberschatz, Korth and Sudarshan Third Normal Form (3NF) Misal diketahui struktur informasi dari suatu dokumen supplier : S S1 S2 S3 S4 Status City PQ P Qty 20 LONDON P1 300 P2 200 P3 400 P4 200 P5 100 P6 100 10 PARIS P1 300 P2 400 10 PARIS P2 200 20 LONDON P2 200 P4 399 P5 400 Database System Concepts Akan dibentuk suatu tabel dengan skema TPS=(S,Status,City,P,Qty) dengan (S,P) = primary key dan berlaku FD : SStatus SCity CityStatus Lakukan normalisasi dari 1NF hingga 3NF. 1.174 ©Silberschatz, Korth and Sudarshan Third Normal Form (3NF) TPS S Status City P Qty S1 20 LONDON P1 300 S1 20 LONDON P2 200 S1 20 LONDON P3 400 S1 20 LONDON P4 200 S1 20 LONDON P5 100 S1 20 LONDON P6 100 S2 10 PARIS P1 300 S2 10 PARIS P2 400 S3 10 PARIS P2 200 S4 20 LONDON P2 200 S4 20 LONDON P4 399 S4 20 LONDON P5 400 Database System Concepts 1NF Not 2NF Problem : Redundansi inconsistency low speed process Anomaly : S(Status,City) tapi kita tidak bisa insert data (S5,30,JAKARTA) tanpa diikuti data P (khususnya) dan Q. Menghapus 1 baris data akan jg merusak keutuhan informasi. Solusi : Dekomposisi menjadi : TPS1 dan TPS2 1.175 ©Silberschatz, Korth and Sudarshan Third Normal Form (3NF) TPS1 S Status City S1 20 LONDON S2 10 PARIS S3 10 PARIS S4 20 LONDON 1NF 2NF Not 3NF (trans.) SCity CityStatus Sekarang kita dapat menambah data (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 baris sebagian data City juga bisa merusak keutuhan informasi S. Selain itu, masih ada redundansi pada Status dan City Database System Concepts 1.176 TPS2 S S1 S1 S1 S1 S1 S1 S2 S2 S3 S4 S4 S4 P P1 P2 P3 P4 P5 P6 P1 P2 P2 P2 P4 P5 Qty 300 200 400 200 100 100 300 400 200 200 399 400 1NF 2NF 3NF ©Silberschatz, Korth and Sudarshan Third Normal Form (3NF) S S1 S2 S3 S4 TPS1-1 City LONDON PARIS PARIS LONDON 1NF 2NF 3NF Database System Concepts TPS1-2 City Status LONDON 20 PARIS 10 1NF 2NF 3NF 1.177 S S1 S1 S1 S1 S1 S1 S2 S2 S3 S4 S4 S4 TPS2 P Qty 1NF P1 300 2NF 3NF P2 200 P3 400 P4 200 P5 100 P6 100 P1 300 P2 400 P2 200 P2 200 P4 399 P5 400 ©Silberschatz, Korth and Sudarshan Try it … !! Third Normal Form (3NF) 1.Diberikan skema relasi R = (A,B,C,D,E,F,G,H,I,J,K) dengan ketergantungan fungsional : A B,C,D ; C D ; E F ; A,E G,H,I,J,K ; I J,K 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. 2.Diketahui R=(A,B,C,D,E,F,G) dimana (A,B) : primary key Ketergantungan 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. Database System Concepts 1.178 ©Silberschatz, Korth and Sudarshan 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. Database System Concepts 1.179 ©Silberschatz, Korth and Sudarshan Boyce Codd Normal Form (BCNF) 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 B dua-duanya sekarang menjadi superkey. Database System Concepts 1.180 ©Silberschatz, Korth and Sudarshan Boyce Codd Normal Form (BCNF) 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 R CB ; 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. Database System Concepts 1.181 ©Silberschatz, Korth and Sudarshan Boyce Codd Normal Form (BCNF) Books Students sid name age bid title year 53666 Jones 18 B001 MySQL 2002 53668 Smith 18 B002 Algorithm 2003 53669 Melissa 17 B003 Visual Foxpro 6.0 2003 53670 Hilden 19 B004 Visual basic 6.0 2005 Students=(sid, name, age) FD : sid name, age • BCNF, sebab sid superkey Pinjam idpinjam sid bid date P-01 53666 B002 10/11/2005 P-02 53668 B001 10/11/2005 P-03 53668 B004 11/12/2005 P-04 53670 B002 14/11/2005 Database System Concepts 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 1.182 ©Silberschatz, Korth and Sudarshan Boyce Codd Normal Form (BCNF) Pinjam idpinjam sid bid date P-01 53666 B002 10/11/2005 P-02 53668 B001 10/11/2005 P-03 53668 B004 11/12/2005 P-04 53670 B002 14/11/2005 Didekomposisi menjadi : Pinjam1 Pinjam2 idpinjam sid idpinjam bid date P-01 53666 P-01 B002 10/11/2005 P-02 53668 P-02 B001 10/11/2005 P-03 53668 P-03 B004 11/12/2005 P-04 53670 P-04 B002 14/11/2005 FD trivial BCNF Database System Concepts idpinjam bid, date idpinjam superkey BCNF 1.183 ©Silberschatz, Korth and Sudarshan Comparison of BCNF And 3NF 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. Database System Concepts 1.184 ©Silberschatz, Korth and Sudarshan Comparison of BCNF And 3NF Contoh kasus redundansi pada 3NF Jadwal = (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 : NIM Modul Dosen NIM Dosen Dosen Modul P11.2004.0129 VB.Net Ajib P11.2004.0129 Ajib Ajib VB.Net P11.2004.0130 Prolog Aris P11.2004.0130 Aris Aris Prolog P11.2004.0201 VB Net Budi P11.2004.0201 Budi Jono Prolog P11.2004.0250 Prolog Jono P11.2004.0250 Jono Budi VB.Net P11.2004.0260 VB.Net Budi P11.2004.0260 Budi NOT BCNF Database System Concepts BCNF 1.185 ©Silberschatz, Korth and Sudarshan Design Goals 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 Database System Concepts 1.186 ©Silberschatz, Korth and Sudarshan Design Steps (doesn’t meet the definition of a relation) Entity Set First Normal Form Praktisi database kebanyakan menganggap bahwa tingkatan normalisasi hingga BCNF atau 3NF dianggap sudah cukup untuk meminimalisasi masalah dalam desain database (redundansi,lossless,dependency preservation) Database System Concepts Second Normal Form Third Normal Form Boyce-Codd Normal Form 1.187 Remove multivalued & repeating attributes. Meet definition of relation Remove partial dependencies Remove transitive dependencies Select relation where all determinants are candidate key ©Silberschatz, Korth and Sudarshan Contoh Untuk Tuan Ali Jl, A. Yani No. 10 Semarang No Faktur : 101 Tanggal : 10-01-2008 Kode Nama Harga Barang Barang 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 Database System Concepts 1.188 ©Silberschatz, Korth and Sudarshan Tidak Normal Pertama, Karena ada multivalued attribute Bentuk Tidak Normal Bentuk Tidak Normal (Unnormalized Form) No_fa k Tgl_faktur Nm_kons Almt_kons Kota_kons Kode_brg 101 10-01-08 Ali Jl. A. Yani No. 10 Semarang 102 11-01-08 Database System Concepts Rudi Jl. Seroja Raya 1 Solo 1.189 Nama_brg Jml Hrg_sat bayar 1101 Sandal 10 15000 150000 1110 Sepatu 7 100000 700000 1112 Kaos 15 30000 450000 1101 Sandal 20 15000 300000 1113 Jaket 4 200000 800000 ©Silberschatz, Korth and Sudarshan Bentuk Normal Pertama No_fak Tgl_faktur Nm_kons Almt_kons Kota_kons Kode_brg Nama_brg Jml Hrg_sat 101 10-01-08 Ali Jl. A. Yani No. 10 Semarang 101 10-01-08 Ali Jl. A. Yani No. 10 101 10-01-08 Ali 102 11-01-08 102 11-01-08 bayar 1101 Sandal 10 15000 150000 Semarang 1110 Sepatu 7 100000 700000 Jl. A. Yani No. 10 Semarang 1112 Kaos 15 30000 450000 Rudi Jl. Seroja Raya 1 Solo 1101 Sandal 20 15000 300000 Rudi Jl. Seroja Raya 1 Solo 1113 Jaket 4 200000 800000 Tidak ada multivalued attribute. Tetapi masih ada Anomali Database System Concepts 1.190 ©Silberschatz, Korth and Sudarshan Bentuk Normal Kedua Berdasarkan Ketergantungan Fungsionalnya : barang Kode_brg -> nama_brg, hrg_sat Nm_kons -> almt_kons, kota_kons No_fak -> nm_kons, tgl_faktur No_faktur, kode_brg -> jml, bayar Kode_brg Nama_brg Hrg_sat konsumen Nm_kons Almt_kons Kota_kons Database System Concepts 1.191 detil No_fak Kode_brg Jml bayar faktur No_fak Nm_kons Tgl_faktur ©Silberschatz, Korth and Sudarshan Perhatikan masing-masing tabel, Masih ada anomali? Bentuk Normal Kedua detil Barang Kode_brg Nama_brg No_fak Hrg_sat Kode_brg Jml Bayar 1101 Sandal 15000 101 1101 10 150000 1110 Sepatu 100000 101 1110 7 700000 1112 Kaos 30000 101 1112 15 450000 1113 Jaket 200000 102 1101 20 300000 102 1113 4 800000 konsumen faktur Nm_kons Almt_kons Kota_kons Ali Jl. A. Yani No. 10 Semarang Rudi Jl. Seroja Raya 1 Solo Database System Concepts 1.192 No_fak Nm_kons Tgl_faktur 101 Ali 10-01-2008 102 Rudi 11-01-2008 ©Silberschatz, Korth and Sudarshan Bentuk Normal Ketiga Barang Kode_brg Nama_brg Hrg_sat 1101 Sandal 15000 1110 Sepatu 100000 1112 Kaos 30000 1113 Jaket 200000 √ 1 NF √ 2 NF √ 3 NF KF : Kode_brg -> nama_brg, hrg_sat Ketergantungan Transitif ? Database System Concepts 1.193 ©Silberschatz, Korth and Sudarshan Bentuk Normal Ketiga konsumen √ 1 NF Nm_kons Almt_kons Kota_kons Ali Jl. A. Yani No. 10 Semarang √ 2 NF Rudi Jl. Seroja Raya 1 Solo √ 3 NF KF : Nm_kons -> almt_kons, kota_kons faktur √ 1 NF No_fak Nm_kons Tgl_faktur 101 Ali 10-01-2008 √ 2 NF 102 Rudi 11-01-2008 √ 3 NF Ketergantungan Transitif ? KF : No_fak -> nm_kons, kota_kons Database System Concepts 1.194 ©Silberschatz, Korth and Sudarshan Bentuk Normal Ketiga detil No_fak Kode_brg Jml Bayar √ 1 NF 101 1101 10 150000 101 1110 7 700000 √ 2 NF 101 1112 15 450000 √ 102 1101 20 300000 3 NF 102 1113 4 800000 Ketergantungan Transitif ? KF : No_fak, kode_brg -> jml, bayar Database System Concepts 1.195 ©Silberschatz, Korth and Sudarshan Diagram Relasi Diagram Relasi setelah proses normalisai : barang Kode_brg Nama_brg Hrg_sat konsumen Nm_kons Almt_kons Kota_kons Database System Concepts detil No_fak Kode_brg Jml bayar faktur No_fak Nm_kons Tgl_faktur 1.196 ©Silberschatz, Korth and Sudarshan Berdasarkan formulir tersebut, • Rancanglah tabel penyimpanan datanya • Lakukan normalisasi hingga 3NF atau BCNF Database System Concepts 1.197 ©Silberschatz, Korth and Sudarshan 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) Database System Concepts 1.198 ©Silberschatz, Korth and Sudarshan Denormalisasi Design Standards Vs (proceessing speed,information requirements) Normalisasi hanyalah merupakan teknik pendekatan yang digunakan untuk 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 Database System Concepts 1.199 ©Silberschatz, Korth and Sudarshan Additional Material (Normal Form Other) Database System Concepts 1.200 ©Silberschatz, Korth and Sudarshan 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. Database System Concepts 1.201 ©Silberschatz, Korth and Sudarshan Multivalued Dependency (MVD) 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 Kuliah Mata Kuliah Instruktur Basis Data Himawan Basis Data Purwanto Basis Data Aris Marjuni Basis Data Himawan Basis Data Purwanto Matematika M Sidiq C Liu Basis Data Aris Marjuni MT Lang Matematika M Sidiq MVD : Mata Kuliah Instruktur Matematika M Sidiq Penawaran Mata Kuliah Mata KuliahInstruktur Pustaka Basis Data Himawan CJ Date Purwanto HF Korth Aris Marjuni Pustaka CJ Date CJ Date CJ Date HF Korth HF Korth HF Korth C Liu MT Lang Mata Kuliah Pustaka Database System Concepts 1.202 ©Silberschatz, Korth and Sudarshan Multivalued Dependency (MVD) Dalam contoh lain : R1 R2 R3 X Y Z X Y Z X Y Z 1 1 1 1 1 1 1 1 1 1 1 2 1 1 2 1 1 2 1 2 1 1 2 1 1 2 1 1 2 2 1 2 2 2 2 1 2 2 1 2 2 1 2 2 2 2 2 2 2 1 2 3 3 3 XY ? XZ ? YX ? ZX ? MVD Exist Database System Concepts No MVD Why ? No MVD Why ? 1.203 ©Silberschatz, Korth and Sudarshan Multivalued Dependency (MVD) Refleksif Augmentation Transitif Pseudotransitif Union Dekomposisi Komplemen Database System Concepts : : : : : : : xx Jika xy Jika xy Jika xy Jika xy Jika xy Jika xy maka xzyz dan yz maka xz-y dan ywz maka xwz-yw dan xz maka xyz dan xz maka xyz dan xz-y dan z=R-x-y maka xz 1.204 ©Silberschatz, Korth and Sudarshan 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 Database System Concepts 1.205 ©Silberschatz, Korth and Sudarshan Fourth Normal Form (4NF) 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 R1=(A,B) • Dekomposisi R2 : Dari CDEF dibentuk R21=(C,D,E,F) R21=(C,D,E,F) Karena CDEF dan CDA, dibentuk R22=(C,D,A) R22=(C,D,A) • R21=(C,D,E,F) 4NF, karena MVD : CDEF trivial Memenuhi 4NF • R22=(C,D,A) 4NF, karena tidak ada MVD. Database System Concepts 1.206 ©Silberschatz, Korth and Sudarshan Fourth Normal Form (4NF) 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) R1=(A,B) memenuhi 4NF, sebab MVD : AB trivial R21=(C,G,H) • R2=(A,C,G,H,I) R221=(A,I) Bukan 4NF, karena MVD : CGH nontrivial R222=(A,C,G) • Dekomposisi R2 : Dari CGH dibentuk R21=(C,G,H) Memenuhi 4NF 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. Database System Concepts 1.207 ©Silberschatz, Korth and Sudarshan Fourth Normal Form (4NF) Penawaran Mata Kuliah Mata Kuliah Instruktur Basis Data Himawan Basis Data Purwanto Basis Data Aris Marjuni Basis Data Himawan Basis Data Purwanto Basis Data Aris Marjuni Matematika M Sidiq Matematika M Sidiq Pustaka CJ Date CJ Date CJ Date HF Korth HF Korth HF Korth C Liu 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 Database System Concepts 1.208 ©Silberschatz, Korth and Sudarshan Fourth Normal Form (4NF) Penawaran Mata Kuliah Mata Kuliah Instruktur Basis Data Himawan Basis Data Purwanto Basis Data Aris Marjuni Basis Data Himawan Basis Data Purwanto Basis Data Aris Marjuni Matematika M Sidiq Matematika M Sidiq Pustaka CJ Date CJ Date CJ Date HF Korth HF Korth HF Korth C Liu MT Lang Inst Mata Kuliah Basis Data Basis Data Basis Data Matematika Instruktur Himawan Purwanto Aris Marjuni M Sidiq 4NF Mata KuliahInstruktur Pust Mata Kuliah Basis Data Basis Data Matematika Matematika Pustaka CJ Date HF Korth C Liu MT Lang 4NF Mata KuliahPustaka Refference : J. Teorey, Database Modeling1.209 & Design, page 112-116 DatabaseToby System Concepts ©Silberschatz, Korth and Sudarshan Fourth Normal Form (4NF) R1 R2 R3 X Y Z X Y Z X Y Z 1 1 1 1 1 1 1 1 1 1 1 2 1 1 2 1 1 2 1 2 1 1 2 1 1 2 1 1 2 2 1 2 2 2 2 1 2 2 1 2 2 1 2 2 2 2 2 2 2 1 2 3 3 3 4NF ? Yes 4NF ? Yes 4NF ? No. - MVD nontrivial - Bukan Superkey Database System Concepts 1.210 ©Silberschatz, Korth and Sudarshan Fifth Normal Form (5NF) Misal SPJ berisi data-data Supplier (S) yang memasok barang (P) untuk suatu Project (J). Satu supplier dapat memasok banyak barang, supplier juga Dapat berpartisipasi pada banyak proyek. SP SPJ PJ S P J S P P J S1 P1 J2 S1 P1 P1 J2 S1 P2 J1 S1 P2 P2 J1 S2 P1 J1 S2 P1 P1 J1 S1 P1 J1 Key : S, P, J MVD : SP SJ 4NF ? No SP 4NF ? Yes Jika SP dan PJ di-project join-kan kembali on P akan diperoleh : SJ 4NF ? Yes SP join PJ S P J S1 P1 J2 S1 P1 J1 S2 P1 J2 S2 P1 J1 S1 P2 J1 Tupel asing Ternyata projection-join dari dekomposisinya tidak mengembalikan Ke relasi asal. Database System Concepts 1.211 ©Silberschatz, Korth and Sudarshan Fifth Normal Form (5NF) Relasi hasil project-join tsb akan kembali ke bentuk relasi asal SPJ setelah di project-join Kan dengan SJ pada S dan J SJ SP join PJ SPJ (Original) S P J S J S P J S1 P1 J2 S1 J2 P1 J2 S1 P1 J1 Project-join S1 on (S,J) S1 J1 S1 P1 J1 S2 P1 J2 S2 J1 S2 P1 J1 S2 P1 J1 S1 P2 J1 S1 P2 J1 SP PJ SJ S P P J S J S1 P1 P1 J2 S1 J2 S1 P2 P2 J1 S1 J1 S2 P1 P1 J1 S2 J1 Dekomposisi Akhir Database System Concepts 1.212 ©Silberschatz, Korth and Sudarshan 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 projectionjoin 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 Database System Concepts 1.213 ©Silberschatz, Korth and Sudarshan Fifth Normal Form (5NF) SP SPJ SJ PJ S P J S P P J S J S1 P1 J2 S1 P1 P1 J2 S1 J2 S1 P2 J1 S1 P2 P2 J1 S1 J1 S2 P1 J1 S2 P1 P1 J1 S2 J1 S1 P1 J1 Key : S, P, J MVD : SP SJ 4NF ? No SP 4NF ? Yes 5NF ? Yes SJ 4NF ? Yes 4NF ? Yes 4NF ? Yes, tidak ada MVD 5NF ? Yes 5NF ? Yes, tidak dapat didekomposisi lagi Trivial pada candidate key Refference : Systems, page©Silberschatz, 394-399 DatabaseC.J. SystemDate, Concepts An Introduction To Database 1.214 Korth and Sudarshan 1NF SUMMARY 2NF 3NF BCNF 4NF 5NF LEVEL NORMALISASI Database System Concepts 1.215 ©Silberschatz, Korth and Sudarshan SUMMARY It is best to find a database design that meet the 3-criteria : • NF (Normal-Form)note • Dependency Preservation • Lossless-Join note If 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. Database System Concepts 1.216 ©Silberschatz, Korth and Sudarshan