basis data i...basis data i pertemuan ke-4 & ke-5 (model relasional – part 1) noor ifada...

Post on 25-Aug-2020

16 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Basis Data I

Pertemuan Ke-4 & ke-5(Model Relasional – Part 1)

Noor Ifada

noor.ifada@if.trunojoyo.ac.id

1

2

Sub Pokok Bahasan

Model Relasional

SQL (Structured Query Language)

Integrity Constraint

Transformasi ER ke Relasional

2

3

Model Relasional

Model (basisdata) Relasional: suatu basisdata dimodelkan sebagai kumpulan relasi

Relasi merupakan Tabel/Table/Relation/File yang terdiri dari:

Baris/Row/Tuple/Record (masing-masing baris tidak boleh ada yang sama)

Kolom/Column/Attribute/Field

Contoh skema tabel/relasi:

Students(sid: string, name: string, login: string, age: integer, gpa: real)

Students

3

4

SQL (Structured Query Language)

Adalah bahasa standar yang digunakan untuk memanipulasi basisdata relasionalDikembangkan oleh IBM pada tahun 1970-anStandar SQL:

SQL-86 SQL-89 (minor revision) SQL-92 (major revision) SQL-99 (major extensions, current standard)

Terdiri dari: Data Definition Language (DDL): CREATE tables, indexes, views, Establish

primary / foreign keys, DROP / ALTER tables .... Etc Data Manipulation Language (DML): INSERT / UPDATE / DELETE, SELECT

.... etc. Data Control Language (DCL): COMMIT / ROLLBACK work, GRANT /

REVOKE .... etc

4

5

Integrity Constraint (IC)

Merupakan kondisi yang dispesifikasikan dalam skema basisdata dan harus dipatuhi oleh setiap tabel/relasi dalam basisdata tersebut

Didefinisikan di dalam skema tabel/relasi

Pengecekan dilakukan setiap kali tabel/relasi dimodifikasi

Macam-macam IC:

Domain constraint

Primary key constraints

Foreign Key (referential integrity)

5

6

Domain Constraint

6

Primary Key (PK) Constraint

Primary key constraint: tidak boleh ada baris yang memiliki nilai yang sama dalam kolom PK

PK tidak boleh bernilai NULL

Boleh jadi ada beberapa/banyak candidate keys (didefinisikan dengan perintah UNIQUE), lalu salah satunya/sebagian dijadikan PK

Penggunaan PK yang salah, akan menyebabkan IC menolak penyimpanan data

Students

CREATE TABLE Students(sid CHAR(20),name CHAR(30),login CHAR(20),age INTEGER,gpa REAL,UNIQUE (name, age),CONSTRAINT StudentsKey PRIMARY KEY (sid) )

7

8

Foreign Key (FK) Constraint

Foreign Key (referential integrity): kolom dalam suatu relasi yang digunakan dengan mengambil referensi dari relasi yang lain

FK dari relasi pertama (referencing relation) harus sama dengan PK dari relasi kedua (referenced relation) → jumlah kolomnya dan kesesuaian tipe data (nama kolom boleh beda)

CREATE TABLE Enrolled (sid CHAR(20),cid CHAR(20),grade CHAR(2),PRIMARY KEY (sid, cid),FOREIGN KEY (sid) REFERENCES Students )

CREATE TABLE Enrolled(sid CHAR(20),cid CHAR(20),grade CHAR(2),PRIMARY KEY (sid),UNIQUE (cid,grade),FOREIGN KEY (sid) REFERENCES Students ))

?8

9

Foreign Key (FK) Constraint (contd)

Penerapan Referential integrity dalam SQL:

Default adalah NO ACTION (delete/update is rejected)

CASCADE (delete all tuples that refer to deleted tuple)

SET NULL/SET DEFAULT (sets foreign key value of referencing tuple)

CREATE TABLE Enrolled ( sid CHAR(20),cid CHAR(20),grade CHAR(10),PRIMARY KEY (sid, cid),FOREIGN KEY (sid) REFERENCES Students

ON DELETE CASCADEON UPDATE SET DEFAULT)

9

10

Transformasi: ER ke Relasional

Entity SetRelationship set (tanpa constraint)Relationship set dengan key constraint (konektifitas)Relationship set dengan participation constraint (eksistansi)Weak entity set

10

11

Entity Set

CREATE TABLE Employees (ssn CHAR(11),name CHAR(30) ,lot INTEGER,PRIMARY KEY (ssn) )

11

12

Relationship Set (tanpa constraint)

CREATE TABLE Works_In2 (ssn CHAR(11),did INTEGER,address CHAR(20) ,since DATE,PRIMARY KEY (ssn, did, address),FOREIGN KEY (ssn) REFERENCES Employees,FOREIGN KEY (address) REFERENCES Locations,FOREIGN KEY (did) REFERENCES Departments)

12

13

Relationship Set (tanpa constraint)

CREATE TABLE Reports_To (Supervisor_ssn CHAR (11),Subordinate_ssn CHAR (11) ,PRIMARY KEY (supervisor_ssn, subordinate_ssn),FOREIGN KEY (supervisor_ssn) REFERENCES Employees(ssn),FOREIGN KEY (subordinate_ssn) REFERENCES Employees(ssn) )

13

14

Relationship Set + Key Constraint

CREATE TABLE Manages (ssn CHAR (11) ,did INTEGER,since DATE,PRIMARY KEY (did),FOREIGN KEY (ssn) REFERENCES Employees,FOREIGN KEY (did) REFERENCES Departments)

CREATE TABLE Dept_Mgr (did INTEGER,dname CHAR(20),budget REAL,ssn CHAR (11) NULL,since DATE,PRIMARY KEY (did),FOREIGN KEY (ssn) REFERENCES Employees)

14

?

15

Relationship Set + Participation Constraint

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) 15

16

Weak Entity Set

CREATE TABLE Dep_Policy (pname CHAR(20) ,age INTEGER,cost REAL,ssn CHAR (11) ,PRIMARY KEY (pname, ssn),FOREIGN KEY (ssn) REFERENCES Employees

ON DELETE CASCADE )

16

top related