Model Data Relasional [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

MODEL RELASIONAL



DEFINISI  Model yang menyajikan database sebagai satu kumpulan “relasi” atau tabel  Nama tabel dan nama-nama kolom digunakan untuk membantu dalam melakukan interpretasi arti dari nilai-nilai dalam setiap baris dari tabel



STMIK AMIKOM Purwokerto



TERMINOLOGI MODEL RELASIONAL (1) 



    



Relasi/tabel/file representasi tabel yang terdiri atas sejumlah baris dan sejumlah kolom Tuple/row /record Sebuah baris pada tabel Attribute/ field/column Suatu kolom pada tabel Domain Tipe data yang menjelaskan jenis-jenis nilai dari suatu attribute Cardinality Banyaknya tupel/baris pada tabel Degree Banyaknya attribute atau kolom pada tabel STMIK AMIKOM Purwokerto



TERMINOLOGI MODEL RELASIONAL (2) Relation Name Attribute



Pegawai NIK K001 K002 K003



Nama Ahmad Zuhaemi Bayu Anggara Citra Karisma



Tgl_lahir 12/10/1980 20/01/1983 05/08/1985



Domain (Nama) = Varchar (30) Domain (tgl_lahir) = datetime Domain (JK) = char (1)



JK L L P



Alamat Banyumas Purwokerto Purbalingga



Cardinality (pegawai) = 3 Degree (pegawai) = 5



STMIK AMIKOM Purwokerto



Tuple



KARAKTERISTIK RELASI  Setiap relasi bernama unik  Harga sebuah atribut berasal dari setiap sel relasi berharga tunggal domain yang sama  Setiap tuple unik  Setiap atribut bernama unik  Urutan tuple scr teoritis tak penting  Urutan atribut tidak penting



STMIK AMIKOM Purwokerto



SKEMA RELASI  Adalah relasi yang memiliki nama, didefinisikan oleh himpunan pasangan attribute dan domain-nya.  Notasi: R(A1, A2, … An) R menyatakan nama relasi, A1, A2, … An menyatakan nama attribute  Contoh: pegawai (NIK, Nama, Tgl_lahir, JK, Alamat) menyatakan bahwa relasi bernama pegawai didefinisikan pada 5 attribute: (NIK, Nama, Tgl_lahir, JK, Alamat) Domain (NIK) = char(4), Domain(Nama) = Varchar(30), Domain(Tgl_lahir) = datetime, Domain(JK) = Char(1), Domain(Alamat) = Varchar(40) STMIK AMIKOM Purwokerto



TUPEL  Tupel adalah barisan (himpunan terurut) dari nilai-nilai yang masing-masing berada dalam domain tertentu  Dinyatakan dalam „< … >‟  Contoh tupel dari pegawai:  < “K001”, “Ahmad Zuhaemi”, 12/10/1980, “L”, “Banyumas” >  Disebut sebagai 5-tupel karena punya lima nilai  Relasi adalah himpunan dari tupel



STMIK AMIKOM Purwokerto



DOMAIN  Suatu domain memiliki definisi lojikal tertentu. Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia  Domain juga merupakan tipe data atau format yang didefinisikan untuk suatu attribute. Domain tanggal (date) memiliki beberapa format. Misal ddmm-yyyy, mm-dd-yyyy, dd-mm-yy  Nama attribute menyatakan peran yang diperankan oleh domain pada sebuah relasi Contoh: domain date digunakan untuk mendefinisikan 2 attribute bernama invoice-date dan payment-date dengan makna yang berbeda.



STMIK AMIKOM Purwokerto



SKEMA BASIS DATA  Skema basis data (database schema) adalah kumpulan skema relasi, masing-masing memiliki nama berbeda.  Notasi S = {R1, R2, … Rn}



 R1, R2, … Rn adalah nama-nama skema relasi dalam basis data S



STMIK AMIKOM Purwokerto



SKEMA BASIS DATA KOPERASI BARANG Kode_Barang



Nama_Barang



satuan



Harga



Nama_Karyawan



Bagian



Tgl_Fak



NIP



ANGGOTA NIP



PENJUALAN No_Fak



DETAIL_PENJUALAN No_Fak



Kode_Barang



Nama_Barang



Satuan



Harga



Jumlah



STMIK AMIKOM Purwokerto



STRUKTUR LOGIC DAN FISIK  Relasi adalah sebuah representasi data lojik bukan fisik. Relasi menggambarkan struktur data tanpa memperhatikan bagaimana data disimpan atau diakses.  Representasi lojik berarti bahwa sebuah relasi harus :  Tidak terdapat duplikasi baris  Urutan baris tidak diperhatikan  Setiap kolom dalam suatu relasi mempunyai sebuah nama yang unik  Struktur fisik diperlukan selama implementasi fisik yaitu pada saat menentukan layout data & indeks yang digunakan untuk mengakses data dalam suatu relasi.  Hal penting lainnya yang harus diperhatikan dalam merancang relasi adalah bahwa nama-nama atribut relasi harus menggambarkan sumber data berasal.



REDUNDANSI & DUPLIKASI (1)  Duplikasi Terjadi jika terdapat nilai data yang sama di dalam satu atau lebih kolom item  Redundansi Redundansi terjadi jika fakta yang sama disimpan lebih dari sekali.  Contoh: Contoh duplikasi



Tabel_konsultasi NIDN 06001 06002 06001 06002



NIM 08.11.0123 08.11.0456 08.12.0789 08.11.0345



Jadwal_konsultasi 1 Januari 2012 10 Januari 2012 10 Januari 2012 15 Januari 2012



REDUNDANSI & DUPLIKASI (2) Tabel_nilai nim 12.11.0123 12.12.0456 12.11.0122 12.12.0456



kode_mk Mk01 Mk01 Mk01 Mk02



sks 2 2 2 4



nilai A A B B



Tabel_matakuliah kode_mk Mk01 Mk02



nama_mk Statistik Algoritma



sks 2 4



Contoh Redundansi



CONSTRAINT MODEL RELASIONAL  Constraints adalah kondisi-kondisi yang harus dipenuhi pada semua relasi yang valid  Id_dep menyatakan id departemen tempat seorang pegawai bekerja. Apa yang terjadi jika user diperbolehkan menghapus sebuah departemen?



Pegawai NIK



Nama



Tgl_lahir



JK



Alamat



Id_dep



Departemen Id_dep



Nama_departemen



STMIK AMIKOM Purwokerto



KLASIFIKASI CONSTRAINT MODEL RELASIONAL  Domain Constraints Menyatakan hahwa nilai data sesuai dengan kenyataannya. Sistem dalam hal ini melakukan CHECK sesuai dengan aturan (rule) yang berlaku. Batasan dan implementasi (DEFAULT, CHECK, FOREIGN KEY) Tipe data, default, rules  Key Constraints  Suatu tabel adalah satu set record, dan semua elemen dalam satu set harus berbeda  Tidak boleh terdapat dua record yang mempunyai nilai yang sama untuk semua atributnya  Entity Integrity Constraints  Referential Integrity Constraint STMIK AMIKOM Purwokerto



KEY CONSTRAINT  Superkey Sebuah attribute, atau kumpulan attribute yang dapat mengidentifikasi tuple dalam sebuah relasi  Candidate key Merupakan superkey minimal, sehingga tidak ada subset dari superkey ini yang dapat mengidentifikasi tuple dalam sebuah relasi  Primary key Candidate key yang dipilih untuk mengidentifikasi tuple secara unik dalam sebuah relasi (Ditandai dengan garis bawah).  Foreign Key Satu atau lebih attribute dalam sebuah relasi yang match dengan primary key dari relasi lain yang berhubungan dengannya (Atau match dengan relasi itu sendiri pada recursive relationship)  Alternate key Candidate key yang tidak dipilih menjadi primary key



CONTOH KEY CONSTRAINT RELATIONAL NIK K001 K002 K003



Nama_depan Ahmad Bayu Citra



Nama_belakang Zuhaemi Anggara Karisma



Super key: NIK, {NIK, Nama_belakang}, {Nama_depan, Tgl_lahir}, …



Candidate key: NIK, Nama_depan



Primary key: NIK



Alternate key: Nama_depan



Tgl_lahir 12/10/1980 20/01/1983 05/08/1985



JK L L P



Alamat Banyumas Purwokerto Purbalingga



ENTITY INTEGRITY CONSTRAINTS  Setiap relasi harus memiliki primary key  Attribute-attribute yang merupakan primary key tidak boleh bernilai NULL  Catatan: attribute lain kadang-kadangjuga dibatasi agar tidak bernilai NULL, meskipun bukan primary key (sesuai requirement-nya)



STMIK AMIKOM Purwokerto



REFERENTIAL INTEGRITY CONSTRAINTS  Merupakan constraints yang melibatkan foreign key / melibatkan 2 buah relasi:  Referencing relation (yang memiliki foreign key)  Referenced relation  Nilai dari foreign key pada referencing relation R1 berupa salah satu dari 2 nilai berikut:  Nilai dari primary key yang berkaitan pada referenced relation R2 atau  Null



STMIK AMIKOM Purwokerto



CONTOH REFERENTIAL INTEGRITY CONSTRAINTS BARANG Kode_Barang



Nama_Barang



satuan



Harga



Nama_Karyawan



Bagian



Tgl_Fak



NIP



ANGGOTA NIP



PENJUALAN No_Fak



DETAIL_PENJUALAN No_Fak



Kode_Barang



Nama_Barang



Satuan



Harga



Jumlah



STMIK AMIKOM Purwokerto



Jika sapi A bisa memakan habis 7 rumput lapangan dalam 4 hari, sedangkan sapi B butuh 3 hari untuk menghabiskan 1 rumput lapangan. Berapa hari yang si butuhkan sapi A dan B untuk menghabiskan 50 rumput lapangan jika A dan B makan bersama-sama?



4 menit



7 menit



Bagaimana mengukur waktu 9 menit dengan menggunakan jam pasir 4 menit dan jam pasir 7 menit?



OPERASI-OPERASI UNTUK MEMODIFIKASI RELASI  Ada 3 macam operasi yang dapat mengubah relation state:  INSERT a tuple  DELETE a tuple  UPDATE a tuple  Proses modifikasi tidak boleh melanggar integrity constraints.  Suatu update kadang-kadang menyebabkan update yang lain secara otomatis, untuk menjaga integrity constraints



STMIK AMIKOM Purwokerto



PELANGGARAN INTEGRITY  Jika terjadi pelanggaran integrity pada saat relasi akan dimodifikasi, dapat dilakukan beberapa hal:  Membatalkan operasi yang menyebabkan pelanggaran integrity (opsi RESTRICT atau REJECT)  Melakukan operasi, namun memberi tahu pengguna tentang pelanggaran yang terjadi  Men-trigger update yang lain sehingga pelanggaran integrity dapat dikoreksi (opsi CASCADE atau opsi SET NULL)  Mengeksekusi error-correction routine yang ditetapkan oleh pengguna



STMIK AMIKOM Purwokerto



KEMUNGKINAN PELANGGARAN INTEGRITY (1)  Beberapa pelanggaran constraints pada operasi INSERT  Domain constraint: Jika ada nilai attribute dalam tuple baru yang tidak sesuai domainnya.  Key constraint: Jika nilai salah satu key attribute pada tuple baru telah ada pada tuple lain dalam relasi .  Referential integrity: Jika nilai foreign key pada tuple baru tidak ada pada referenced relation.  Entity integrity: Jika primary key bernilai null. STMIK AMIKOM Purwokerto



KEMUNGKINAN PELANGGARAN INTEGRITY (2)  Operasi DELETE hanya dapat melanggar referential integrity:  Pelanggaran terjadi jika akan menghapus nilai primary key yang direfer relasi lain  Opsi yang dapat dipilih o RESTRICT: menolak penghapusan o CASCADE: memberi primary key baru ke foreign key dari referencing tuple atau menghapus referencing tuple o SET NULL: memberi nilai NULL foreign key dari referencing tuple  Salah satu dari opsi ini harus ditetapkan pada saat merancang basis data untuk setiap foreign key



STMIK AMIKOM Purwokerto



KEMUNGKINAN PELANGGARAN INTEGRITY (3)  Operasi update dapat melanggar domain constraint dan NOT NULL constraint pada attribute yang akan dimodifikasi  Contraints lain dapat dilanggar, sesuai jenis attribute yang akan diupdate:  Meng-update primary key (PK): o Mirip dengan operasi DELETE diikuti INSERT o Perlu memilih opsi seperti pada operasi DELETE  Meng-update foreign key (FK): o Dapat melanggar referential constraints  Meng-update attribute lain (selain PK / FK): o Hanya dapat melanggar domain constraints



STMIK AMIKOM Purwokerto



CONTOH KASUS Basis data yang memproses order (pemesanan) pada sebuah perusahaan memiliki 6 relasi berikut: CUSTOMER (Cust, Cname, City) ORDER (Order, Ord_date , Cust, Ord_Amt) ORDER_ITEM (Order, Item, Qty) ITEM (Item, Unit_price) SHIPMENT (Order, Warehouse, Ship_date) WAREHOUSE (Warehouse, City) Ord_Amt mengacu pada jumlah harga pada satu kali order. Ord_date menyatakan tanggal pemesanan dilakukan, Ship_date menyatakan tanggal pengiriman barang yang dipesan customer dari gudang. Asumsikan bahwa suatu order dapat mengambil barang dari beberapa gudang (warehouse). Nyatakan Entity Integrity dan Referential Integrity untuk skema basis data tersebut.



Saat kamu terjatuh tersenyumlah, karena orang yang pernah jatuh adalah orang yang sedang berjalan menuju keberhasilan



STMIK AMIKOM Purwokerto