19 0 412 KB
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