2. Outline
Jenis data yang didukung oleh SQL standar.
Tujuan peningkatan integritas dalam SQL.
Cara mendefinisikan batasan
integritas menggunakan SQL.
Caramenggunakan fitur peningkatan integritas
dalam TABLE CREATE dan ALTER.
4. Jenis Integrity Constraint
Integrity Constraints merupakan merupakan fasilitas
yang disediakan SQL Standard untuk Integrity
Control,yang mana control ini dilakukan untuk
melindungi database dari ketidakkonsistenan.
5 Tipe Integrity Constraints :
Entityintegrity
Required data
Referential Integrity
Domain Integrity
User Defined Integrity
5. Integrity constraint
Required Data
Beberapa kolom harus berisi nilai yang valid, mereka tidak diperbolehkan
mengandung nulls.
Ex :
position VARCHAR(10) NOT NULL
Domain Constraints
Setiap kolom mempunyai sebuah domain,dengan kata lain sekumpulan nilai yang
legal.
EX :
(a) CHECK
sex CHAR NOT NULL
CHECK (sex IN (‘M’, ‘F’))
6. Domain constraint
(b)CREATE DOMAIN
CREATE DOMAIN DomainName [AS] dataType
[DEFAULT defaultOption]
[CHECK (searchCondition)]
Ex :
CREATE DOMAIN SexType AS CHAR
CHECK (VALUE IN (‘M’, ‘F’));
sex SexType NOT NULL
7. Domain constraint
SearchCondition
Melibatkan table pencarian,sebagai contoh kita dapat
membuat sebuah domain BranchNumber untuk memastikan
bahwa nilai yang dimasukkan sesuai dengan jumlah cabang
yang ada di Tabel Branch
CREATE DOMAIN BranchNo AS CHAR(4)
CHECK (VALUE IN (SELECT branchNo
FROM Branch));
Domain bisa di hapus dengan DROP DOMAIN
DROP DOMAIN DomainName
[RESTRICT | CASCADE]
8. Integrity Constranins - Entity Integrity
Setiap PK dari sebuah tabel haruslah mengandung
nilai unik dan not null untuk tiap baris.
ISO Standard mendukung klausa FK dalam CREATE
dan ALTER TABLE statements :
PRIMARY KEY(staffNo)
PRIMARY KEY(clientNo, propertyNo)
Untuk memastikan keunikkan dari tiap alternatif key
bisa menggunakan Syntax UNIQUE
UNIQUE(telNo)
9. Integrity Constranins - Referential Integrity
Referential Integrity digunakan untuk menjaga
konsistensi baris-baris data antara dua buah tabel.
Aturan ini mengharuskan sebuah baris pada sebuah
tabel yang terelasikan pada tabel lain harus
mengacu pada sebuah baris di dalam tabel tersebut.
Adapun ISO Standard yang mendukung pendefinisian
tersebut adalah dengan klausa FOREIGN KEY dalam
CREATE dan ALTER TABLE :
FOREIGN KEY(branchNo) REFERENCES Branch
10. Integrity Constranins - Referential Integrity
Ketika pengguna mencoba untuk menghapus baris dari
Parent Table, dan ada satu atau lebih baris yang sama
dengan di child table, SQL mendukung empat
pilihan tentang tindakan yang akan diambil:
NO ACTION
Jika kita melakukan update pada primary key yang ditunjuk atau delete pada
record yang ditunjuk maka tidak melakukan reaksi apa pun.
CASCADE
Jika kita melakukan update pada primary key yang ditunjuk, maka foreign key
akan ikut ter-update.
SET NULL
Jika kita melakukan update pada primary key yang ditunjuk atau delete pada
record yang ditunjuk maka foreign key akan berisi
SET DEFAULT
Jika kita melakukan update pada primary key yang ditunjuk atau delete pada
record yang ditunjuk maka foreign key akan berisi nilai default
11. Integrity Constraints –
General Contraints
Bisa menggunakan CHECK/UNIQUE dalam CREATE
dan ALTER TABLE.
Sama dengan klausa CHECK dengan penambahan
klausa :
CREATE ASSERTION AssertionName
CHECK (searchCondition)
Apabila terdapat batasan umum yang melibatkan lebih dari
satu table,lebih disarankan untuk menggunakan ASSERTION
daripada membuat ulang check ditiap tabel atau tempat
dimana constraint itu ada.
12. Integrity Constraints –
General Contraints
Contoh
CREATE ASSERTION StaffNotHandlingTooMuch
CHECK (NOT EXISTS (SELECT staffNo
FROM PropertyForRent
GROUP BY staffNo
HAVING COUNT(*) > 100))
13. Data definition
DDL SQL memungkinkan database objek seperti schemas,
domain, tabel, View, dan indexes yang akan diciptakan
dan dihancurkan.
Statement utama SQL DDL adalah:
CREATE SCHEMA DROP SCHEMA
CREATE/ALTER DOMAIN DROP DOMAIN
CREATE/ALTER TABLE DROP TABLE
CREATE VIEW DROP VIEW
DBMS juga menyediakan:
CREATE INDEX DROP INDEX
14. Data definition
- Lingkungan masing-masing berisi satu atau
lebih katalog, dan setiap katalog terdiri
dari seperangkat skema.
- Skema ini dinamai objek database yg terkait.
- Objek dalam skema dapat berupa tabel,
view, domain, assertion ,Collations,
terjemahan, dan rangkaian karakter. Semua
memiliki pemilik yang sama.
15. Create Schema
CREATE SCHEMA [Name |
AUTHORIZATION CreatorId ]
DROP SCHEMA Name [RESTRICT | CASCADE ]
Dengan RESTRICT (default), skema harus kosong atau
operasi gagal.
Dengan CASCADE, operasi cascades untuk menjatuhkan
semua objek yang berhubungan
dengan skema untuk didefinisikan di atas. Jika salah
satu operasi gagal, skema DROP gagal.
16. Create Table
• Membuat tabel dengan satu atau lebih
kolom dari dataType yg ditentukan.
• Dengan NOT NULL, sistem menolak setiap usaha
untuk memasukkan null dalam kolom.
• Dapat menentukan nilai DEFAULT untuk kolom.
Kunci primer harus selalu ditetapkan sebagai NOT
NULL.
• Klausa FOREIGN KEY menentukan FK bersama
dengan tindakan referensial.
18. ALTER TABLE
- ALTER memodifikasi struktur obyek yang sudah ada dengan berbagai
cara, misalnya, menambahkan kolom atau constraint ke Table yang
ada, misalnya:
ALTER TABLE ADD my_table my_field4 NOMOR (3) NOT NULL;
fungsi alter table :
menambahkan kolom baru pada table
Drop kolom dari table
Tambahkan table constraint baru
Drop table constraint
Mengatur default untuk kolom
Drop default untuk kolom
19. ALTER TABLE
Sintaks
1. Add new column
ALTER TABLE [table_name] ADD [column_name] [datatype]
2. Drop column from table
ALTER TABLE [table_name] DROP COLUMN [colun_name]
3. Change the data type of a column in a table
ALTER TABLE [table_name] ALTER COLUMN [column_name][datatype]
4. Add Constraint from table
ALTER TABLE [table_name] ADD CONSTRAINT [constraint_name] CHECK [colum check]
5. Drop Constraint from table
ALTER TABLE [table_name] DROP CONSTRAINT [constraint_name]
6. Change default value for a column
Set default
ALTER TABLE [table_name] ADD CONSTRAINT [constraint_name] DEFAULT [default_value] FOR [column_name]