SQL: DDL Basis Data 09.

Slides:



Advertisements
Presentasi serupa
SQL – DML.
Advertisements

Sejarah (1) • Tahun 1974, Dr. Chamberlin dari Saan Jose Laboratorium IBM mendefinisikan sebuah bahasa untuk mengakses database yang disebut dengan SEQUEL.
MATA KULIAH : “LOGIKA DAN ALGORITMA”
Pertemuan 2 : Dasar-dasar SQL SBD C – Senin, Frank & Rudy
SISTEM BASIS DATA INTRO-5. •Setelah mengikuti perkuliahan ini diharapkan mahasiswa dapat mengerti : 1.Aplikasi perintah SQL ke MySql Server 2.Mengerti.
DDL (Data Definition Language)
PERINTAH SQL.
MYSQL.
DDL & Aturan Referential
SQL (Structured Query Language)
Manajemen Basis Data menggunakan SQL Server
Basis Data Bab 3 Structured Query Language (SQL).
Model Relasional Merupakan hubungan logika antar data dalam basis data dalam bentuk tabel-tabel dimensi dua yang terdiri dari baris dan kolom yang menunjukkan.
MODUL 2 BAHASA BASIS DATA
Basisdata 2 T.Informatika UTM Ganjil 2012/2013 Fika Hastarita Rachman.
Konsep Dasar User dan Schema Database
DDL & Aturan Referential
1 Bab 3 Structured Query Language (SQL) Basis Data
Microsoft SQL Server DDL dan DML dasar
Modul 03 Relational Model
Data Definition Language dan Data Manipulation Language
Review DDL Pertemuan ke 2.
Entity-Relationship Modeling
Antonius Wahyu Sudrajat, S. Kom., M.T.I. Perintah SQL: Data Definition.
Data Types Data Definition Language Referential Constraint SQL Query
SQL: DML (2) Basis Data Pertemuan 07.
BAHASA QUERY TERAPAN OLEH : HARSITI, ST.
DATA DEFINITION LANGUAGE
Antonius Wahyu Sudrajat, S. Kom., M.T.I. Perintah SQL: Data Definition.
Basis Data Terapan Antonius Wahyu Sudrajat, S. Kom., M.T.I Perintah Drop Sintak Menghapus Tabel Drop Aturan: Harus dimulai dari table yang paling children.
DDL (DATA DEFINITION LANGUAGE) DALAM SQL
SQL Basis Data.
Data Definition Language (DDL)
Integritas Basis Data D. Sinaga, M.Kom.
Pertemuan 2 Model Data, Relational Data Model, Database Schema, DDL
Outline: Relational Data Model Entity Relationship Diagram
Pertemuan after UTS Structure Query Language (SQL)
Integritas Basis Data D. Sinaga, M.Kom.
Integritas basis data.
SQL.
Matakuliah Desain Basis Data Oleh Aziz Musthafa, S.Kom
Bahasa query terpan.
Konsep Teknologi Informasi B
VII. DDL Di sajikan untuk Lingkungan TASS Dosen : Tora Fahrudin., M.T
SQL (Structure Query Language)
Manajemen Basis Data menggunakan SQL Server
SQL: DML Basis Data Pertemuan 06.
Konsep Teknologi Informasi B
Sistem Basis Data ABU SALAM, M.KOM.
DDL (Data definition language)
SQL pada basis data client-server
SQL Basis Data.
SQL OVERVIEW.
SQL Data Manipulation IK203 Sistem Basis Data Pertemuan #12
OLEH : Slamet Sn Wibowo Wicaksono
Data Definition Language (DDL)
DDL (DATA DEFINITION LANGUAGE) DALAM SQL
Integritas Basis Data #3,#4
Tipe data dalam SQL Server
SQL.
08 Pemodelan Entitas-Relasi Mata Kuliah: Basis Data ILMU KOMPUTER
Basis Data Bab 3 Structured Query Language (SQL).
MODEL RELASIONAL BASIS DATA I/2011-GANJIL
MODEL RELASIONAL BASIS DATA I/2011-GANJIL
Integritas basis data.
CREATE, MODIFY, & DELETE TABLE
Referensi Bahasa MySQL
Bahasa basis data Safitri Jaya, S.Kom, M.T.I.
PENDAHULUAN MySQL Oleh: Rudianto.
Pengantar Teknologi SIM 2 (pertemuan 7)
Transcript presentasi:

SQL: DDL Basis Data 09

Sasaran : Tipe data yang didukung oleh SQL standard. Kegunaan dari integrity enhancement feature pada SQL. Bagaimana menetapkanbatasan integritas menggunakan SQL. Bagaimana menggunakan integrity enhancement feature dalam perintah CREATE dan ALTER TABLE.

Data Type (ISO SQL )

Integrity Enhancement Feature Data yang dibutuhkan (Required data) Batasan domain (Domain constraints) Integritas entitas (Entity integrity) Integritas referensial (Referential integrity) Batasan enterprise (Enterprise constraints)

IEF-Required Data Beberapa kolom field harus memiliki nilai yang pasti (tidak diperkenankan bernilai NULL). NULL digunakan untuk merepresentasikan data yang tidak ada/ tidak tersedia, hilang atau tidak disertakan. Standar ISO menetapkan keyword NOT NULL untuk mengatasi hal tersebut. Contoh format deklarasi : position VARCHAR(10) NOT NULL

IEF-Domain Constraints Setiap kolom mempunyai domain, atau dengan kata lain himpunan dari nilai-nilai yang benar. Misalkan dalam tabel Staff terdapat kolom Sex yang berisi nilai karakter tunggal ‘M’ atau ‘F’, maka dapat dideklarasikan CHECK (Search Condition); sehingga : sex CHAR NOT NULL CHECK (sex IN (‘M’, ‘F’));

atau dieklarasikan secara eksplisit : Lanjut.. atau dieklarasikan secara eksplisit : CREATE DOMAIN DomainName [AS] dataType [DEFAULT defaultOption] [CHECK (searchCondition)] Sehingga : CREATE DOMAIN SexType AS CHAR CHECK (VALUE IN (‘M’, ‘F’)); sex SexType NOT NULL

CREATE DOMAIN BranchNo AS CHAR(4) CHECK (VALUE IN (SELECT branchNo Lanjut.. searchCondition dapat mengandung table lookup, misalkan membuat domain Branchnumber untuk memastikan nilai yang akan dimasukan sesuai dengan branch number yang sudah ada pada tabel Branch : CREATE DOMAIN BranchNo AS CHAR(4) CHECK (VALUE IN (SELECT branchNo FROM Branch));

DROP DOMAIN DomainName [RESTRICT | CASCADE] Lanjut.. Domain dapat dihapuskan dengan menggunakan perintah DROP DOMAIN, jika ditetapkan RESTRICT kemudian domain digunakan dalam tabel, view dan definisi penegasan (assertion definition), maka penghapusan domain akan ditolak. Jika ditetapkan CASCADE, maka kolom tabel yang menggunakan domain tersebut secara otomatis diganti dengan nilai default yang ada. DROP DOMAIN DomainName [RESTRICT | CASCADE]

IEF - Entity Integrity Primary key dari suatu tabel harus berisi nilai yang unik, dan non-null untuk setiap barisnya. Standard ISO menyediakan clause FOREIGN KEY pada perintah CREATE dan ALTER TABLE : PRIMARY KEY(staffNo) PRIMARY KEY(clientNo, propertyNo) ->(Jika primary Key terdiri dari beberapa kolom)

Lanjut.. Hanya dapat mempunyai 1 clause PRIMARY KEY untuk setiap table, tetapi masih dapat memastikan pemasukkan nilai yang unik untuk beberapa alternate key dengan menggunakan keyword UNIQUE: UNIQUE(telNo)

IEF - Referential Integrity Foreign Key adalah kolom atau himpunan kolom yang menghubungkan setiap baris dalam child table yang berisi Foreign Key dengan baris dari parent table yang berisi Primary Key yang sesuai/match. Integritas referential berarti, jika FK berisi suatu nilai, maka nilai tersebut harus mengacu kesuatu baris dalam parent table. Standard ISO menyediakan pendefinisian untuk FK dengan clause FOREIGN KEY dalam CREATE dan ALTER TABLE: FOREIGN KEY(branchNo) REFERENCES Branch Operasi INSERT/UPDATE yang berusaha untuk membuat nilai FK dalam child table tanpa nilai candidate key yang sesuai dalam parent table.

Lanjut.. Aksi yang dilakukan yang berusaha untuk merubah / menghapus (update/delete) nilai candidate key dalam parent table yang memiliki baris yang sesuai dalam child table tergantung pada referential action yang ditetapkan dengan subclause ON UPDATE dan ON DELETE. Terdapat 4 pilihan aksi, yaitu : CASCADE, menghapus baris dari parent table dan secara otomatis menghapus baris yang sesuai dalam child table, jika baris yang dihapus tadi merupakan candidate key yang digunakan sebagai foreign key pada tabel lainnya, maka aturan foreign key untuk tabel ini dihilangkan. SET NULL, menghapus baris pada parent table dan menetapkan nilai foreign key dalam child table menjadi NULL. Berlaku jika kolom foreign key mempunyai qualifier NOT NULL. SET DEFAULT, menghapus baris dari parent table dan menetapkan setiap komponen foreign key dari child table menjadi defaultyang telah ditetapkan. Berlaku jika kolom foreign key memliki nilai DEFAULT. NO ACTION, menolak operasi penghapusan dari parent table. Merupakan default jika aturan ON DELETE dihilangkan

Contoh 1 Pada tabel PropertyForRent, StaffNo merupakan foreign key yang mengacu ke tabel Staff. Untuk menetapkan aturan penghapusan, jika record staff dihapus dari tabel Staff, maka nilai StaffNo yang ada pada PropertyForRent akan diganti menjadi NULL. Sehingga dapat dituliskan : FOREIGN KEY (staffNo) REFERENCES Staff ON DELETE SET NULL

Contoh 2: OwnerNo dalam tabel PropertyForRent merupakan foreign key yang mengacu ke tabel PrivateOwner. Untuk mendefinisikan aturan peng-update-an, jika OwnerNo dalam PrivateOwner di-update, maka kolom yang terkait dalam tabel PropertyForRent akan diganti dengan nilai baru, sehingga dapat dituliskan : FOREIGN KEY (ownerNo) REFERENCES Owner ON UPDATE CASCADE

IEF - Enterprise Constraints Standard ISO memungkinkan untuk menetapkan pendefinisian enterprise constraint dengan menggunakan clause CHECK/UNIQUE dalam CREATE dan ALTER TABLE juga CREATE ASSERTION. Format pendeklarasian : CREATE ASSERTION AssertionName CHECK (searchCondition)

Contoh Untuk mendefinisikan enterprise constraint yang menegaskan agar anggota staff tidak mengatur lebih dari 100 property pada waktu yang sama : CREATE ASSERTION StaffNotHandlingTooMuch CHECK (NOTEXISTS (SELECT staffNo FROM PropertyForRent GROUP BY staffNo HAVING COUNT(*) > 100))

Data Definition SQL DDL memungkinkan objek database seperti schema, domain, table, view, dan index untuk dibuat dan dihapuskan. Perintah-perintah SQL DDL yang utama adalah : CREATE SCHEMA DROP SCHEMA CREATE/ALTER DOMAIN DROP DOMAIN CREATE/ALTER TABLE DROP TABLE CREATE VIEW DROP VIEW

Beberapa DBMS juga menyediakan : Lanjut.. Beberapa DBMS juga menyediakan : CREATE INDEX DROP INDEX Relasi-relasi dan objek lain dari suatu database berada dalam sebuah environment. Setiap environment mengandung saru atau lebih catalog, dan setiap catalog terdiri dari sekumpulan/himpunan skema. Skema adalah suatu himpunan bernama yang terdiri dari oobjek-objek database yang saling berhubungan. Objek dalam sebuah skema dapat berupa table, view, domain, assertion, collation, translation, dan himpunan karakter. Seluruhnya memiliki owner yang sama.

Membuat Skema (CREATE SCHEMA) Perintah untuk mendefinisikan skema : CREATE SCHEMA [Name | AUTHORIZATION CreatorId ] Perintah untuk menghapus skema : DROP SCHEMA Name [RESTRICT | CASCADE ] Jika ditetapkan RESTRICT (default), maka skema harus kosong atau operasi akan digagalkan. Jika ditetapkan CASCADE, maka operasi berjalan berurut menghapus seluruh objek yang terkait dengan skema yang telah didefinisikan sebelumnya. Jika terjadi kegagalan operasi, maka DROP SCHEMA akan gagal juga.

Membuat table (CREATE TABLE) Membuat tabel dasar digunakan format sbb : CREATE TABLE TableName {(colName dataType [NOT NULL] [UNIQUE] [DEFAULT defaultOption] [CHECK searchCondition] [,...]} [PRIMARY KEY (listOfColumns),] {[UNIQUE (listOfColumns),] […,]} {[FOREIGN KEY (listOfFKColumns) REFERENCES ParentTableName [(listOfCKColumns)], [MATCH {PARTIAL|FULL}] [ON UPDATE referentialAction] [ON DELETE referentialAction ]] [,…]} {[CHECK (searchCondition)] [,…] })

Membuat tabel dengan satu atau lebih kolom dengan tipe data tertentu. Lanjut.. Membuat tabel dengan satu atau lebih kolom dengan tipe data tertentu. Dengan NOT NULL, sistem akan menolak setia[ usaha untuk memasukan nilai NULL kedalam kolom. Dapat menspesifikasikan nilai DEFAULT untuk kolom. Primary key harus selalu ditetapkan NOT NULL. Clause FOREIGN KEY menetapkan FK bersama dengan aksi referensial.

Contoh: CREATE DOMAIN OwnerNumber AS VARCHAR(5) CHECK (VALUE IN (SELECT ownerNo FROM PrivateOwner)); CREATE DOMAIN StaffNumber AS VARCHAR(5) CHECK (VALUE IN (SELECT staffNo FROM Staff)); CREATE DOMAIN BranchNumber AS VARCHAR(5) CHECK (VALUE IN (SELECT branchNo FROM Branch)); CREATE DOMAIN PropertyNumber AS VARCHAR(5); CREATE DOMAIN Street AS VARCHAR(25);

CREATE DOMAIN City AS VARCHAR(15); CREATE DOMAIN PostCode AS VARCHAR(8); CREATE DOMAIN PropertyType AS VARCHAR(1); CHECK (VALUE IN (‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ’M’, ‘S’)); CREATE DOMAIN PropertyRooms AS SMALLINT; CHECK(VALUE BETWEEN 1 AND 15); CREATE DOMAIN PRent AS DECIMAL(6,2) CHECK(VALUE BETWEEN 0 AND 9999.99);

CREATE TABLE PropertyForRent ( propertyNo PropertyNumber NOT NULL, street Street NOT NULL, city City NOT NULL, postcode PostCode type PropertyType NOT NULL DEFAULT 4, rooms PropertyRooms NOT NULL DEFAULT 4, rent PropertyRent NOT NULL, DEFAULT 600, ownerNo OwnerNumber NOT NULL, staffNo StaffNumber Constraint StaffNotHandlingTooMuch CHECK (NOT EXIST( SELECT staffNo FROM PropertyForRent GROUP BY staffNo HAVING COUNT(*) > 100)), branchNo BranchNumber NOT NULL, PRIMARY KEY (propertyNo), FOREIGN KEY (staffNo) REFERENCES Staff ON DELETE SET NULL ON UPDATE CASCADE, FOREIGN KEY (ownerNo) REFERENCES PrivateOwner ON DELETE NO ACTION ON UPDATE CASCADE, FOREIGN KEY (branchNo) REFERENCES Branch ON DELETE NO ACTION ON UPDATE CASCADE);

Merubah Table (ALTER TABLE) Menambahkan kolom pada tabel Menghapus kolom dari tabel Menambahkan batasan kolom Menghapus batasan tabel Menetapkan default untuk kolom Menghapus default dari kolom

Contoh: Ubah tabel Staff dengan menghapus default ‘Assistant’ untuk kolom position dan tetapkan default untuk kolom sex menjadi (‘F’). ALTER TABLE Staff ALTER position DROP DEFAULT; ALTER sex SET DEFAULT ‘F’;

Contoh: Hapus batasan/constraint dari tabel PropertyForRent yang menetapkan bahwa tidak diperbolehkan menangani lebih dari 100 unit properti pada saat yang sama. Tambahkan kolom baru untuk tabel Client. ALTER TABLE PropertyForRent DROP CONSTRAINT StaffNotHandlingTooMuch; ALTER TABLE Client ADD prefNoRooms PRooms;

Menghapus Tabel (DROP TABLE) Format penulisan : DROP TABLE DROP TABLE TableName [RESTRICT | CASCADE] Jika ditetapkan RESTRICT, maka operasi penghapusan akan ditolak jika terdapat objek lain yang terkait dengan objek yang akan dihapus. Sedangkan CASCADE, operasi penghapusan akan dilaksanakan dan seluruh objek terkait akan dihapus juga.

Contoh: Hapus sebuah tabel dan seluruh baris didalamnya DROP TABLE PropertyForRent;