BAB 3 MODEL RELASIONAL

dokumen-dokumen yang mirip
Bab 1. Review Database 1 POKOK BAHASAN: TUJUAN BELAJAR: 1.1. PENDAHULUAN. Pendahuluan ER-Model Model Relasional Structured Query Language Normalisasi

Basis Data I. Pertemuan Ke-4 & ke-5 (Model Relasional Part 1) Noor Ifada.

BAB 2 MODEL RELASI ENTITAS (E-R MODEL)

Konsep model relasional

MODEL RELASI ENTITAS (E-R MODEL)

BASIS DATA MODEL RELASIONAL

Model Data Entity Relationship. Minggu 2

PRAKTIKUM BASIS DATA MODUL 1 PERANCANGAN DATABASE MENGGUNAKAN ER DIAGRAM

BAB III MODEL DATA RELASIONAL DAN ALJABAR RELASIONAL

ER-DIAGRAM (ENTITY RELATIONSHIP DIAGRAM)

MATA KULIAH BASIS DATA LANJUT POLITEKNIK PIKSI GANESHA

INTEGRITAS BASIS DATA. OLEH : Slamet Sn Wibowo Wicaksono

SISTEM BASIS DATA 1. WAHYU PRATAMA, S.Kom., MMSI.

Sistem Basis Data Danny Kriestanto, S.Kom., M.Eng

PERTEMUAN 4 Model Data Relational

System Technology Database 1. 2 Model Relational. Dahlia Widhyaestoeti, S.Kom dahlia74march.wordpress.

BASIS DATA I/2011-GANJIL MODEL RELASIONAL. Oleh Team Teaching Database. 12 Oktober 2011 BASIS DATA I/2011-GANJIL 1

BAB I PENDAHULUAN : SISTEM BASIS DATA

SISTEM BASIS DATA II S A N T I W I D I A N T I

Basis Data. DDL & Aturan Referential

Contoh SQL Constraint

MODUL 1. Pembuatan tabel, pendefinisian constraint, export dan import PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

MODEL DATA RELASIONAL

Model Relasional Basis Data

DESAIN DATABASE. Pertemuan 06 3 SKS

SISTEM BASIS DATA 2. WAHYU PRATAMA, S.Kom., MMSI.

Database Systems: Ch. 3: The Relational Model. History of The Relational Model. Learning Objectives

INTERNET PROGRAMMING DATABASE

BASIS DATA. Model Data Relational. Fakultas Ilmu Komputer UDINUS

Basis Data I. Pertemuan Ke-2 & Ke-3 (Rancangan Basisdata) Noor Ifada.

Pendahuluan. Tujuan MODUL

INTEGRITAS DAN KEAMANAN DATA. Gentisya Tri Mardiani, S.Kom., M.Kom

Konsep Sistem Informasi B. BAB 2 - SQL Overview

Pertemuan 2 dan 3 : Tujuan Instruksional Khusus :

STRUCTURE QUERY LANGUAGE DDL & DML

SISTEM BASIS DATA. Oleh : Devie Rosa Anamisa

IMPLEMENTASI CONSTRAINT UNTUK MENJAMIN KONSISTENSI DAN INTEGRITAS DATA DALAM DATABASE

Oracle Academic Initiative

Pertemuan 3 dan 4 : MODEL DATA RELASIONAL

Mahasiswa memahami fungsi-fungsi lain di dalam SQL Mahasiswa memahami tentang operasi agregasi Mahasiswa mampu mengaplikasikan operasi agregasi

P7 Perancangan Database

Basis Data. Bagian IV SQL (3) Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan

PERANCANGAN SISTEM DATABASE

PERTEMUAN 2 MODEL DATA MODEL ENTITY RELATIONSHIP ( MODEL E-R)

INTEGRITAS DAN KEAMANAN BASIS DATA. Alif Finandhita, S.Kom, M.T

Pertemuan Transformasi ER-MODEL INDIKATOR. 1. Memahami ER model 2. Menerapkan transformasi ER- Model ke Model Relasional.

Pengertian Query. Query adalah perintah-perintah untuk mengakses data pada sistem basis data

RENCANA PEMBELAJARAN

Agenda SQL. Pemakai SQL. Kemampuan SQL 02/12/2010 STRUCTURED QUERY LANGUAGE (SQL) Structured Query Language (SQL) (Pert. 9)

SISTEM BASIS DATA By Novareza Klifartha

MODEL DATA RELASIONAL

Sejarah(1) Sejarah(2) STRUCTURE QUERY LANGUANGE (1) Definisi SQL

RENCANA PEMBELAJARAN

Perangkat Lunak Pengembangan Web

PERTEMUAN 11 CONSTRAINT. Tujuan Pembelajaran : Memahami definisi Constraint Dapat Membuat Constraint Dapat Melakukan pemeliharaan Constraint

Constraint dan Manajemen Data dalam Timezone Berbeda

PERTEMUAN 10 PEMBUATAN TABEL

MODUL PEMPROGRAMAN SQL TINGKAT DASAR 1 STANDAR KOMPETENSI: MENERAPKAN BAHASA PEMPROGRAMAN SQL TINGKAT DASAR SMK NEGERI 1 MAJALENGKA

LATAR BELAKANG IBM San Jose Research Laboratory.

PERANCANGAN BASIS DATA. Alif Finandhita, S.Kom

PENGANTAR TEKNOLOGI SISTEM INFORMASI MANAGEMENT 2

Contoh SQL Constraint

Basis Data Relational

Pertemuan Sistem Informasi SI adalah suatu suatu sistem dalam suatu organisasi yang merupakan

Pengenalan Basis Data

S Q L STRUCTURED QUERY LANGUAGE DEFINITION MANIPULATION C O N T R O L D M L SELECT INSERT UPDATE DELETE

MODUL IV DATA DEFINITION LANGUAGE (DDL)

Pertemuan DDL INDIKATOR. Modul Teori Database Aknela

SEKOLAH TINGGI TEKNOLOGI INDONESIA TANJUNG PINANG

Basis Data Spasial Modul 2

SQL. Pemrograman Web II. Ganjil

Model Relasional. Mata Ajar Basis Data 1

Sistem Basis Data. Chapter 5: Logical Database Design and the Relational Model Andronicus Riyono, M.T.

STRUCTURE QUERY LANGUAGE (SQL)

15-Jan DATABASE - MySQL. Database. Constraints. Tujuan: Memahami perintah-perintah dasar DDL dan DML

STRUCTURE QUERY LANGUAGE

BAB 5 ANOMALI DAN INTEGRITAS DATA PADA MODEL RELASIONAL

BASISDATA. Basis Data Secara Umum

Pertemuan 9 Struktur Query Language(SQL)

Praktikum Basis Data 2. BAB 1 : Pendahuluan

PERTEMUAN 5. Model Data Relational (Lanjut)

MUHAMMAD ZEN S. HADI, ST. MSC.

PERTEMUAN IV ADVANCED ENTITY RELATIONSHIP DIAGRAM FAK. TEKNIK JURUSAN TEKNIK INFORMATIKA

BAB 2 LANDASAN TEORI

BASIS DATA. Model Data Relational. Fakultas Ilmu Komputer UDINUS

SATUAN ACARA PERKULIAHAN MATA KULIAH SISTEM BASIS DATA 1 (MI) KODE / SKS KK / 2 SKS

Modul Praktikum Basis Data 4 Relasi Table

Abstraksi Data (Arsitektur DBMS)

DATA DEFINITION LANGUAGE

Model Relasional. Basis Data. Pengertian

SISTEM BASIS DATA (Lanjutan) :

Pertemuan IV Advanced Entity Relationship Diagram Fak. Teknik Jurusan Teknik Informatika

SQL DASAR BASIS DATA. Rajif Agung Yunmar, S.Kom., M.Cs.

Basis Data Pertemuan 3. Weny Mistarika R.

POKOK BAHASAN: TUJUAN PEMBELAJARAN:

MODUL 7 STRUCTURED QUERY LANGUAGE

MODEL RELASIONAL. Alif Finandhita, S.Kom

DATABASE - MySQL. Muhammad Zen S. Hadi, ST. MSc.

Komponen-Komponen SQL a. Data Definition Language (DDL) : Digunakan untuk mendefinisikan data dengan menggunakan perintah : create, drop, alter.

DATA DEFINITION LANGUAGE : CREATE, DROP, ALTER

Transkripsi:

BAB 3 MODEL RELASIONAL Mengapa perlu mempelajari Model Relasional? Model basis data yang paling banyak digunakan o Vendors : IBM, Informix, Microsoft, Oracle, Sybase, dll. o Yang menjadi saingan berat akhir2 ini adalah model berorientasi obyek ObjectStore, Versant, Ontos Informix Unviersal Server, UniSQL, O2, Oracle, DB2 Definisi : Basis Data Relasional Basis Data Relasional : himpunan relasi Relasi : terdiri dari dua bagian : o Instance : table dengan baris dan kolom #baris = kardinalitas, #kolom/fields = degree/arity o Skema : menentukan nama relasi, plus nama dan tipe kolom Misal Students(sid : string, name : string, login : string, age : integer, gpa : real). Suatu relasi adalah himpunan kolom atau tupel (semua barisnya bersifat distinct/unik). Contoh : Instance dari Relasi Students Kardinalitas = 3, degree = 5, semua baris bersifat distinct Apakah semua kolom dalam instance relasi juga harus distinct? Bahasa Query Relasional (Relational Query Language) Kekuatan utama dari model relasional adalah kesederhanaannya, dan kelebihannya adalah dalam melakukan query atas data. Query dapat ditulis secara intuitif, dan DBMS bertanggungjawab untuk mengevaluasinya secara efisien. o Kunci : semantic yang tepat untuk relational query. o Mengijinkan pengoptimasi untuk memperluas atau mengatur kembali operasinya, dan memastikan bahwa hasil yang diperoleh tidak berubah.

SQL (Structured Query Language) Dikembangkan oleh IBM (system R) pada tahun 70-an Perlu dilakukan standardisasi sejak banyak dipakai oleh banyak vendor Standart SQL : o SQL-86 o SQL-89 o SQL-92 o SQL-99 Untuk menemukan pelajar berusia 18 tahun dari table, dapat ditulis bahasa query : SELECT * FROM Students S WHERE S.age=18 Untuk menemukan field names dan logins, ganti baris pertama query tersebut dengan : SELECT S.name, S.login Melakukan Query pada beberapa Tabel yang Berelasi Bila terdapat table Enrolled yang berelasi dengan table Students sebelumnya dengan key field sid : Dan diberikan query : SELECT S.name, E.cid FROM Students S, Enrolled E WHERE S.sid=E.sid and E.grade= A Maka table yang dihasilkan dari query tersebut adalah : Yaitu mencari data Students (nama Students dan mata kuliah yang diikutinya) yang mendapat nilai A.

Membuat Relasi dalam SQL Tabel Students dibuat model relasionalnya dengan tipe domain pada tiap field yang terspesifikasi : CREATE TABLE Students (sid : CHAR(20), name : CHAR(20), login : CHAR(10), age : INTEGER, gpa : REAL) Contoh lain adalah table Enrolled yang berisi tentang informasi mata kuliah yang diambil oleh Students : CREATE TABLE Enrolled (sid : char(20), cid : char(20), grade : char(2)) Menghapus suatu Relasi Perintah berikut : DROP TABLE Students Menghapus relasi Students. Perintah Query berikut : ADD COLUMN firstyear : integer Menambahkan satu field baru yaitu firstyear; tiap tuple dalam instance diperluas dengan penambahan nilai null pada field yang baru. Menambah dan Menghapus Tuple Satu tupel tunggal dapat disisipkan dengan cara : INSERT INTO Students(sid,name,login,age,gpa) VALUES (53688, Smith, smith@ee,18,3.2) Semua tupel yang ada dapat di-delete dengan menggunakan beberapa kondisi tertentu (missal : menghapus tupel dengan field name=smith) DELETE FROM Students S WHERE S.name= Smith

Batasan Integritas (Integrity Constraints) Batasan Integritas adalah suatu kondisi yang harus bernilai benar untuk suatu instance dalam basis data, missal : batasan domain o Dispesifikasi saat skema didefinisikan o Diperiksa pada saat suatu relasi dimodifikasi Instance dari relasi disebut legal jika bias memenuhi semua batasan integritas (integrity constraints) yang telah dispesifikasi o DBMS tidak mengiinkan suatu instance yang tidak legal. Jika DBMS memeriksa Integrity Constraints, maka data yang disimpan lebih dapat mencerminkan dunia nyata (real-world meaning). o Juga sangat perlu dihindari kesalahan dari entry data Batasan Kunci Primer (Primary Key Constraints) Himpunan suatu fields merupakan suatu key dari suatu relasi jika : 1. Tidak ada dua tupel yang distinct yang mempunyai nilai yang sama untuk semua key fields, dan 2. Key tersebut tidak memiliki subset. o Pernyataan 2 salah? bagaimana dengan superkey o Jika terdapat lebih dari satu key untuk suatu relasi, maka salah satu dari key tersebut akan dipilih oleh DBA untuk menjadi primary key. * Misal : sid adalah key untuk relasi Students. (Bagaimana dengan name), himpunan key (sid,gpa) adalah merupakan superkey. Primary dan Candidate Key dalam SQL Dari kemungkinan banyak candidate keys (dispesifikasi dengan menggunakan UNIQUE), salah satunya dapat dipilih menjadi primary key. Seorang Students dapat mengambil suatu course dan hanya menerima satu nilai untuk grade dari course yang diikutinya. CREATE TABLE Enrolled ( sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid) CREATE TABLE Enrolled (sid CHAR(20),

cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid) UNIQUE(cid,grade)) Foreign Keys, Referential Integrity Foreign key adalah himpunan fields dalam satu relasi yang digunakan untuk melakukan referensi ke tupel pada relasi yang lain (Harus berkorespondensi dengan primary key pada relasi yang kedua). Berlaku seperti logical pointer Missal sid adalah foreign key yang direfer dari relasi Students : o Enrolled(sid : string, cid : string, grade : string) Foreign Keys dalam SQL Hanya Students yang terdaftar dalam relasi Students yang diperbolehkan untuk mengikuti suatu perkuliahan (course). CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY(sid,cid), FOREIGN KEY(sid) REFERENCES Students) Mengusahakan suatu Referential Integrity Misal pada relasi Students dan Enrolled; sid dalam Enrolled adalah foreign key yang mereferensi relasi Students Apa yang harus dilakukan jika tupel Enrolled dengan suatu data Students yang tidak terdaftar dalam relasi Students disisipkan? (Hindari hal ini). Apa yang harus dilakukan jika tupel Students di-hapus? o Hapus juga semua tupel Enrolled yang merefer ke tupel Students yang dihapus tersebut o Tidak mengijinkan dilakukan penghapusan jika tupel tersebut merefer ke tupel pada relasi yang lain (alternatif lain dari yang pertama) o Ubah sid dalam tupel Enrolled menjadi default sid (alternatif yang lain lagi). o (Dalam SQL, juga dapat dilakukan setting pada tupel Enrolled yang direfer oleh tupel Students yang dihapus tersebut dengan memberikan nilai khusus yaitu null, yang artinya tidak diketahui (unknown atau inapplicable).

Sama halnya jika primary key dari tupel Students dilakukan perubahan (update). Referential Integrity dalam SQL/92 SQL/92 mendukung pilihan berikut untuk perintah delete dan update : o Default-nya adalah tidak dilakukan apa-apa (pembatalan perintah delete/update). o CASCADE (juga men-delete semua tupel yang merefer ke tupel yang didelete). o Set nilai NULL/DEFAULT (Set nilai foreign key dari tupel yang direferensi). Contoh : CREATE TABLE Enrolled (sid : CHAR(20), cid : CHAR(20), grade : CHAR(2), PRIMARY KEY(sid,cid), FOREIGN KEY(sid) REFERENCES Students ON DELETE CASCADE ON UPDATE SET DEFAULT) View View hanyalah sebuah relasi, yang juga bisa menyimpan definisi dari himpunan tuple. CREATE VIEW YoungActiveStudents(name,grade) AS SELECT S.name, E.grade FROM Students S, Enrolled E WHERE S.sid=E.sid and S.age<21 View dapat dihapus dengan menggunakan perintah DROP VIEW Perintah DROP TABLE dapat juga digunakan jika terdapat view pada table Desain Logika Basis Data : Dari ER ke Relasional Himpunan entitas suatu table basis data :

CREATE TABLE Employees (ssn CHAR(11), name CHAR(20), lot INTEGER, PRIMARY KEY (ssn)) Himpunan Relasi ke Tabel Untuk melakukan translasi dari himpunan relasi ke relasi, atribut relasi harus termasuk : o Key untuk tiap himpunan entity yang berpartisipasi (sebagai foreign key). Himpunan bentuk atribut ini merupakan superkey bagi relasi o Semua atribut deskriptif CREATE TABLE Works_In) Ssn CHAR(1) Did INTEGER, Since DATE, PRIMARY KEY(ssn,did), FOREIGN KEY (ssn) REFERENCES Employees, FOREIGN KEY (did) REFERENCES Departements)

Review : Key Constraints Tiap departement kebanyakan mempunyai seorang manager yang berhubungan dengan key constraints pada Manages Translasi ke model relasional? Translasi ER Diagram dengan Key Constraints Memetakan relasi ke dalam table :

Memisahkan table Employee dan Departments Jika tiap department memiliki seorang manager tertentu, maka kita kombinasikan Manages dan Departments. Review : Participation Constraints Apakah tiap departement memiliki seorang manager? o Jika ya, maka ini disebut dengan participation constraint : yaitu partisipasi dari Departments dalam Manages yang bisa bersifat total (atau sebagian). o Apakah nilai dari table Departments harus tampak dalam kolom pada table Manages (yang memiliki nilai ssn bukan null) Participation Constraint dalam SQL Pada saat participation constraint yang ditangkap melibatkan satu himpunan entity dalam relasi binary, tapi tanpa melakukan pengurutan ulang untuk menguji constraint yang bersangkutan. CREATE TABLE Dept_Mgr(

did INTEGER, dname CHAR(20), budget REAL, ssn CHAR(11) NOT NULL, since DATE, PRIMARY KEY (did), FOREIGN KEY (ssn) REFERENCES Employees, ON DELETE NO ACTION) Review : Entiti Lemah Entiti lemah (weak entity) dapat diidentifikasi secara unik hanya dengan memperhatikan primary key dari entity yang lain (owner). o Himpunan entity owner dan himpunan entity lemah harus berpartisipasi dalam relasi one-to-many (1 owner, dengan banyak entity lemah) o Himpunan entity lemah harus mempunyai partisipasi total dalam mengidentifikasi himpunan relasi ini. Translasi Himpunan Entiti Lemah Himpunan entity lemah dan himpunan relasi yang diidentifikasi dapat ditranslasikan ke dalam table tunggal. o Pada saat entity owner dihapus, semua entity lemah harus juga dihapus. CREATE TABLE Dep_Policy ( Pname CHAR(20), Age INTEGER, Cost REAL, Ssn CHAR(11) NOT NULL, PRIMARY KEY (pname,ssn), FOREIGN KEY (ssn) REFERENCES Employees, ON DELETE CASCADE)

Review : Hirarki ISA Sebagaimana dalam C++ maupun bahasa pemrograman yang lain, suatu atribut dapat diturunkan. Jika kita deklarasikan A ISA B, setiap entity A juga merupakan entity B. o Overlap constraints : Bolehkan seorang pegawai berstatus pegawai perjam (Hourly_Emps) dan pegawai kontrak (Contract_Emps)? o Covering constraints : Apakah setiap entity Employees juga merupakan entity Hourly_Emps dan Contract_Emps? Translasi Hirarki ISA ke Relasi : Pendekatan umum : o Contoh : terdapat tiga relasi yang terlibat : Employees, Hourly_Emps dan Contract_Emps. Hourly_Emps : Tiap data employee disimpan dalam Employees. Untuk pegawai dengan hitungan gaji perjam, informasi tambahan disimpan dalam Hourly_Emps (hourly_wages, hours_worked,ssn); Tupel Hourly_Emps harus dihapus jika tupel Employees yang berelasi dengannya dihapus. Alternatif lain : hanya Hourly_Emps dan Contract_Emps o Hourly_Emps : ssn, name, lot, hourly_wages, hours_worked o Tiap employee harus menjadi anggota salah satu dari sub class ini. Review : Relasi Binary vs. Ternary Jika tiap policy hanya dimiliki oleh satu orang employee :

o Key constraint pada policies mengartikan policy hanya dapat mengkover satu dependent Constraint apa yang ditambahkan dalam diagram yang kedua? Relasi Binary vs. Ternary Key Constraints membolehkan kita untuk mengkobinasikan Purchaser dengan Policies dan Beneficiary dengan Dependents Participation Constraint merupakan NOT NULL Constraints. Apa yang terjadi jika Policies merupakan himpunan entity lemah? CREATE TABLE Policies ( PolicyID INTEGER, cost REAL, ssn CHAR(11) NOT NULL, PRIMARY KEY (PolicyID), FOREIGN KEY (ssn) REFERENCES Employees, ON DELETE CASCADE) CREATE TABLE Dependents ( pname CHAR(20), age INTEGER, PolicyID INTEGER, PRIMARY KEY (pname, PolicyID), FOREIGN KEY (PolicyID) REFERENCES Policies, ON DELETE CASCADE) Ringkasan : Model Relasional Tabel yang merepresentasikan data Model yang paling banyak digunakan Integrity Constraints dapat dispesifikasi oleh DBA, berdasarkan aplikasi semantic. DBMS memeriksa kebenarannya. o Dua hal penting pada integrity constraint : primary dan foreign key. o Sebagai tambahan, selalu ada domain constraint

Memiliki banyak kelebihan dan sifatnya alami dalam menyatakan suatu query Aturan untuk mentranslasikan ER kedalam model relasional.