Anda di halaman 1dari 17

LECTURE NOTES

ISYS6513
Database System and Management

Week 6
SQL: Data Definition

ISYS6513 – Database System and Management


LEARNING OUTCOMES

LO3: Construct SQL that suit with the problem

OUTLINE MATERI (Sub-Topic):

1. SQL Identifier

2. Data Definition

ISYS6513 – Database System and Management


ISI MATERI

SQL Identifier
Pengidentifikasi SQL digunakan untuk mengidentifikasi objek dalam database, seperti
nama tabel, nama tampilan, dan kolom. Karakter yang dapat digunakan dalam pengidentifikasi
SQL yang ditentukan pengguna harus muncul dalam rangkaian karakter. Standar ISO
menyediakan seperangkat karakter default, yang terdiri dari huruf besar A. . . Z, huruf kecil a.
. . z, angka 0. . . 9, dan karakter garis bawah (_).Dimungkinkan juga untuk menentukan set
karakter alternatif. Pembatasan berikut dikenakan pada pengenal:
1. Identifier tidak boleh lebih dari 128 karakter;
2. Identifier harus dimulai dengan huruf;
3. Identifier tidak boleh berisi spasi.

Jenis Data SQL Scalar


Gambar 6.1 menunjukkan tipe data skalar SQL yang didefinisikan dalam standar ISO.
Kadang-kadang, untuk tujuan manipulasi dan konversi, karakter dan bit tipe data secara
kolektif disebut sebagai tipe data string, dan numerik serta perkiraan numerik yang tepat
disebut sebagai tipe data numerik, karena mereka berbagi properti serupa.

Gambar 6.1. Tipe data ISO SQL (Source: Connoly & Begg (2015))

ISYS6513 – Database System and Management


1. Data Boolean
Data Boolean terdiri dari nilai kebenaran berbeda TRUE dan FALSE. Kecuali dilarang
oleh batasan NOT NULL, data boolean juga mendukung nilai kebenaran UNKNOWN
sebagai nilai NULL. Semua nilai tipe data boolean dan nilai kebenaran SQL saling dapat
dibandingkan dan ditetapkan. Nilai TRUE lebih besar dari nilai FALSE, dan perbandingan
apa pun yang melibatkan nilai NULL atau nilai kebenaran UNKNOWN mengembalikan
hasil UNKNOWN.
2. Data Character
Data karakter terdiri dari urutan karakter dari set karakter yang ditentukan, yaitu
didefinisikan oleh vendor dialek SQL tertentu. Dengan demikian, karakter yang tepat yang
dapat muncul sebagai nilai data dalam kolom tipe karakter akan bervariasi. ASCII dan
EBCDIC adalah dua set yang umum digunakan saat ini. Format untuk menentukan tipe
data karakter adalah:

CHARACTER [VARYING] [length]


CHARACTER dapat disingkat menjadi CHAR dan
CHARACTER VARYING to VARCHAR.
3. Data Bit
Tipe data bit digunakan untuk mendefinisikan string bit, yaitu, urutan angka biner (bit),
masing-masing memiliki nilai 0 atau 1. Format untuk menentukan tipe data bit mirip
dengan tipe data karakter:
BIT [VARYING] [length]
4. Data Exact Numeric
Tipe data numerik yang tepat digunakan untuk menentukan angka dengan representasi
yang tepat. Jumlahnya terdiri dari digit, titik desimal opsional, dan tanda opsional. Tipe
data numerik yang tepat terdiri dari presisi dan skala. Presisi memberikan jumlah total
angka desimal yang signifikan, yaitu jumlah total digit, termasuk tempat desimal tetapi
tidak termasuk titik itu sendiri. Skala memberikan jumlah total tempat desimal. Kasus
khusus numerik yang tepat terjadi dengan integer (bilangan bulat). Ada beberapa cara
menentukan jenis data numerik yang tepat:
NUMERIC [ precision [, scale] ]

ISYS6513 – Database System and Management


DECIMAL [ precision [, scale] ]
INTEGER
SMALLINT
BIGINT
INTEGER dapat disingkat menjadi INT and DECIMAL to DEC
5. Approximate Numeric
Tipe data numerik perkiraan digunakan untuk menentukan angka yang tidak memiliki
representasi yang tepat, seperti bilangan real. Perkiraan numerik, atau titik apung, notasi
mirip dengan notasi ilmiah, di mana angka ditulis sebagai mantissa dikali kekuatan sepuluh
(eksponen). Ada beberapa cara untuk menentukan tipe data numerik perkiraan:
FLOAT [precision]
REAL
DOUBLE PRECISION
6. Data Datetime
Tipe data datetime digunakan untuk menentukan titik waktu ke tingkat akurasi tertentu.
Tiga jenis tipe data datetime didukung:
DATE
TIME [timePrecision] [WITH TIME ZONE]
TIMESTAMP [timePrecision] [WITH TIME ZONE]
7. Data Interval
Tipe data interval digunakan untuk mewakili periode waktu. Setiap tipe data interval terdiri
dari bagian yang berdekatan dari bidang: TAHUN, BULAN, HARI, JAM, MENIT,
DETIK. Ada dua kelas tipe data interval: interval tahun-bulan dan interval hari-waktu.
Format untuk menentukan tipe data interval adalah:
INTERVAL {{startField TO endField} singleDatetimeField}
startField = YEAR | MONTH | DAY | HOUR | MINUTE
[(intervalLeadingFieldPrecision)]
endField = YEAR | MONTH | DAY | HOUR | MINUTE | SECOND
[(fractionalSecondsPrecision)]
singleDatetimeField = startField | SECOND
[(intervalLeadingFieldPrecision [, fractionalSecondsPrecision])]

ISYS6513 – Database System and Management


8. Data Large Object
Objek besar adalah tipe data yang menyimpan sejumlah besar data, seperti file teks
panjang atau file grafik. Tiga jenis tipe data objek besar didefinisikan dalam SQL:
1. Binary Large Object (BLOB), string biner yang tidak memiliki kumpulan karakter atau
asosiasi collation;
2. Character Large Object (CLOB) dan National Large Large Object (NCLOB),
keduanya merupakan string karakter.

Scalar Operators
SQL menyediakan sejumlah operator skalar bawaan dan fungsi yang dapat digunakan
untuk membangun ekspresi skalar, yaitu ekspresi yang mengevaluasi nilai skalar. Terlepas dari
operator aritmatika yang jelas (+, -, *, /), operator yang ditunjukkan pada Tabel 6.1 tersedia.

Tabel 6.1. Operator Skalar ISO SQL.


OPERATOR MEANING
OCTET_LENGTH Mengembalikan panjang string dalam oktet (panjang bit
dibagi 8). Misalnya, OCTET_ LENGTH (× 'FFFF')
menghasilkan 2.
CHAR_LENGTH Mengembalikan panjang string dalam karakter (atau oktet,
jika string adalah string sedikit). Misalnya,
CHAR_LENGTH (‘Beech’) menghasilkan 5.
CAST Mengubah ekspresi nilai dari satu tipe data menjadi nilai di
tipe data lain. Misalnya, CAST (5.2E6 AS INTEGER).
|| Menggabungkan dua karakter string atau string bit.
Misalnya, fName || Name.
CURRENT_USER or Mengembalikan string karakter yang mewakili
USER pengidentifikasi otorisasi saat ini (secara informal, nama
pengguna saat ini).
SESSION_USER Mengembalikan string karakter yang mewakili
pengidentifikasi otorisasi sesi SQL.

ISYS6513 – Database System and Management


SYSTEM_USER Mengembalikan string karakter yang mewakili
pengidentifikasi pengguna yang memanggil modul saat ini.
LOWER Mengubah huruf besar menjadi huruf kecil. Misalnya,
LOWER (SELECT fName FROM Staff WHERE staffNo
= ‘SL21’) mengembalikan ‘john’.
UPPER Mengubah huruf kecil menjadi huruf besar. Misalnya,
UPPER (SELECT fName FROM Staff WHERE staffNo =
‘SL21’) mengembalikan ‘JOHN’.
TRIM Menghapus karakter yang memimpin (LEADING),
mengekor (TRAILING), atau keduanya leading dan trailing
(BOTH) dari string. Misalnya, TRIM (BOTH ‘*’ FROM
‘*** Hello World ***’) mengembalikan ‘Hello World’.
POSITION Mengembalikan posisi satu string dalam string lain.
Misalnya, POSITION('ee' IN 'Beech') mengembalikan 2.
SUBSTRING Mengembalikan substring yang dipilih dari dalam string.
Misalnya, SUBSTRING (‘Beech’ FROM 1|TO 3)
mengembalikan string ‘Bee’.
CASE Mengembalikan salah satu dari serangkaian nilai yang
ditentukan, berdasarkan pada beberapa kondisi. Sebagai
contoh,
CASE type
WHEN ‘House’ THEN 1
WHEN ‘Flat’ THEN 2
ELSE 0
END
CURRENT_DATE Mengembalikan tanggal saat ini di zona waktu yang bersifat
lokal untuk pengguna.
CURRENT_TIME Mengembalikan waktu saat ini di zona waktu yang
merupakan standar saat ini untuk sesi. Misalnya,
CURRENT_TIME (6) memberikan waktu untuk
mikrodetik presisi.

ISYS6513 – Database System and Management


CURRENT_TIMESTAMP Mengembalikan tanggal dan waktu saat ini di zona waktu
yang merupakan standar saat ini untuk sesi. Misalnya,
CURRENT_TIMESTAMP (0) memberikan ketepatan waktu
hingga detik.
EXTRACT Mengembalikan nilai bidang tertentu dari nilai waktu atau
interval. Misalnya, EXTRACT(YEAR FROM
Registration.dateJoined).
ABS Beroperasi pada argumen numerik dan mengembalikan nilai
absolutnya dalam tipe paling spesifik yang sama. Misalnya,
ABS (-17.1) mengembalikan 17.1.
MOD Beroperasi pada dua argumen numerik yang tepat dengan
skala 0 dan mengembalikan modulus (sisa) argumen pertama
dibagi dengan argumen kedua sebagai numerik yang tepat
dengan skala 0. Misalnya, MOD (26, 11) mengembalikan 4.
LN Menghitung logaritma natural dari argumennya. Misalnya,
LN (65) mengembalikan 4.174 (kurang-lebih).
EXP Menghitung fungsi eksponensial, yaitu, e, (basis logaritma
natural) dinaikkan ke kekuatan yang sama dengan
argumennya. Sebagai contoh, EXP (2) mengembalikan
7.389 (kurang-lebih).
POWER Mengangkat argumen pertamanya menjadi kekuatan
argumen kedua. Misalnya, POWER (2,3) mengembalikan 8.
SQRT Hitung akar kuadrat dari argumennya. Misalnya, SQRT (16)
mengembalikan 4.
FLOOR Menghitung bilangan bulat terbesar kurang dari atau sama
dengan argumennya. Misalnya, FLOOR (15,7)
mengembalikan 15.
CEIL Menghitung bilangan bulat terkecil lebih besar dari atau
sama dengan argumennya. Misalnya, CEIL (15,7)
mengembalikan 16.

ISYS6513 – Database System and Management


Data Definition
DDL SQL memungkinkan objek database seperti skema, domain, tabel, view, dan
indeks untuk dibuat dan dihancurkan. Di bagian ini, kami secara singkat memeriksa cara
membuat dan menghancurkan skema, tabel, dan indeks. Kami membahas cara membuat dan
menghancurkan view di bagian selanjutnya. Standar ISO juga memungkinkan pembuatan set
karakter, kolasi, dan translasi.
Pernyataan bahasa definisi data SQL utama adalah:
CREATE SCHEMA DROP SCHEMA
CREATE DOMAIN ALTER DOMAIN DROP DOMAIN
CREATE TABLE ALTER TABLE DROP TABLE
CREATE VIEW DROP VIEW
Meskipun tidak tercakup oleh standar SQL, 2 pernyataan berikut disediakan oleh
banyak DBMS
CREATE INDEX DROP INDEX

CREATING DATABASE
Menurut standar ISO, relasi dan objek basis data lainnya ada di lingkungan. Antara lain,
setiap lingkungan terdiri dari satu atau lebih katalog, dan setiap katalog terdiri dari satu set
skema. Skema adalah kumpulan objek database bernama yang dalam beberapa cara terkait satu
sama lain (semua objek dalam database dijelaskan dalam satu skema atau yang lain). Objek
dalam skema dapat berupa tabel, tampilan, domain, pernyataan, pengumpulan, terjemahan, dan
rangkaian karakter. Semua objek dalam skema memiliki pemilik yang sama dan berbagi
sejumlah default.
Mekanisme standar untuk membuat dan menghancurkan katalog sebagai
implementation-define, tetapi menyediakan mekanisme untuk membuat dan menghancurkan
skema. Pernyataan definisi skema memiliki bentuk (disederhanakan) berikut
CREATE SCHEMA [Name | AUTHORIZATION Creatorldentifier]
Oleh karena itu, jika pembuat skema SqlTests adalah Smith, maka pernyataan SQLnya adalah
CREATE SCHEMA SqlTests AUTHORIZATION Smith;

ISYS6513 – Database System and Management


Standar ISO juga menunjukkan bahwa harus mungkin untuk menetapkan dalam pernyataan ini
berbagai fasilitas yang tersedia untuk pengguna skema, tetapi rincian tentang bagaimana hak
istimewa ini ditentukan tergantung pada implementasi yang terjadi.
Skema dapat dihancurkan menggunakan pernyataan DROP SCHEMA, yang mengikuti
bentuk sebagai berikut:
DROP SCHEMA Name [RESTRICT | CASCADE]
Jika RESTRICT ditentukan, yang merupakan default, maka jika tidak ada kualifikasi yang
ditentukan, skema harus kosong atau operasi gagal. Jika CASCADE ditetapkan, operasi akan
jatuh ke semua objek yang terkait dengan skema dalam urutan yang ditentukan sebelumnya.
Jika salah satu dari operasi drop ini gagal, DROP SCHEMA gagal. Efek total dari DROP
SCHEMA dengan CASCADE bisa sangat luas dan harus dilakukan hanya dengan sangat hati-
hati.

CREATING TABLE
Setelah membuat struktur basis data, kita sekarang dapat membuat struktur tabel untuk
relasi dasar yang akan disimpan dalam basis data. Hal dicapai dengan menggunakan pernyataan
CREATE TABLE, yang memiliki sintaks dasar berikut:
CREATE TABLE TableName
{(columName dataType [NOT NULL] [UNIQUE]
[DEFAULT defaultOption] [CHECK (searchCondition)] [, . . .]}
[PRIMARY KEY (listOfColumns),]
{[UNIQUE (listOfColumns)] [, . . .]}
{[FOREIGN KEY (listOfForeignKeyColumns)
REFERENCES ParentTableName [(listOfCandidateKeyColumns)]
[MATCH {PARTIAL | FULL}
[ON UPDATE referentialAction]
[ON DELETE referentialAction]] [, . . .]}
{[CHECK (searchCondition)] [, . . .]})
Seperti yang telah kita bahas di bagian sebelumnya, versi pernyataan CREATE TABLE ini
menggabungkan fasilitas untuk mendefinisikan integritas referensial dan batasan lainnya. Ada

ISYS6513 – Database System and Management


variasi signifikan dalam dukungan yang diberikan oleh dialek yang berbeda untuk versi
pernyataan ini. Namun, ketika terfasilitasi, fasilitas tersbur harus digunakan.
Pernyataan CREATE TABLE membuat tabel bernama TableName yang terdiri dari
satu atau lebih kolom dari tipe data yang ditentukan. Klausa DEFAULT opsional dapat
ditentukan untuk memberikan nilai default untuk kolom tertentu. SQL menggunakan nilai
default ini setiap kali pernyataan INSERT gagal untuk menentukan nilai untuk kolom. Di
antara nilai-nilai lain, defaultOption termasuk literal. Seperti Klausa NOT NULL, UNIQUE,
dan CHECK. Klausul yang tersisa dikenal sebagai batasan tabel dan dapat secara opsional
didahului dengan klausa:
CONSTRAINT ConstraintName
Untuk kesulitan memberi nama dan mengganti nama dapat menggunakan ALTER TABLE.
Klausa PRIMARY KEY menentukan kolom atau kolom yang membentuk kunci utama
dalam tabel. Jika klausul ini tersedia, maka harus ditentukan primary key untuk setiap tabel
yang dibuat. Secara default, setiap kolom primary key diasusmsikan sebagai NOT NULL.
Hanya satu klausa PRIMARY KEY yang diperbolehkan untuk setiap tabel. SQL menolak
operasi INSERT atau UPDATE yang mencoba membuat duplikat baris dalam kolom
PRIMARY KEY (s). Dengan cara ini, SQL menjamin keunikan kunci utama.
Klausa FOREIGN KEY menentukan foreign key dalam tabel (anak) dan hubungannya
dengan tabel lain. aturan ini mengimplementasikan batasan integritas referensial. Klausa yang
menentukan foreign key sebagai berikut:
 Daftar kolom dari ForeignKey, adalah kolom dari tabel yang dibuat dengan membentuk
kunci asing.
 Sub klausa REFERENCE, memberikan tabel induk, yaitu tabel yang memegang
candidate key yang pas. Jika listOfCandidateKeyColumns dihilangkan, foreign key
diasumsikan sesuai dengan primary key dari tabel induk. Dalam hal ini, tabel induk
harus memiliki klausa PRIMARY KEY dalam pernyataan CREATE TABLE-nya.
 pilihan update (ON UPDATE) untuk relasi yang menentukan tindakan yang harus
diambil ketika candidate key diupdate dalam tabel induk yang cocok dengan foreign
key di tabel anak. ReferentialAction dapat menjadi CASCADE, SET NULL, SET
DEFAULT, atau NO ACTION. Jika klausa ON UPDATE dihilangkan, diasumsikan
sebagai default yaitu NO ACTION.

ISYS6513 – Database System and Management


 pilihan delete (ON DELETE) untuk relasi yang menentukan tindakan yang harus
diambil ketika baris dihapus dari tabel induk yang memiliki kunci kandidat yang cocok
dengan foreign key dalam tabel anak. ReferentialAction sama seperti aturan ON
UPDATE.
 Secara default, batasan referensial yang dipenuhi jika komponen dari foreign key
adalah null atau ada baris yang cocok dalam tabel induk. Pilihan MATCH menyediakan
kendala tambahan yang berkaitan dengan nol dalam foreign key. Jika ditentukan
MATCH FULL, komponen foreign key semuanya harus null atau semua harus
memiliki nilai. Jika ditentukan MATCH PARTIAL, komponen foreign key semuanya
harus null, atau harus ada, setidaknya satu baris dalam tabel induk yang dapat
memenuhi kendala null jika lainnya diganti dengan benar. Beberapa penulis
berpendapat bahwa integritas referensial seharusnya menyiratkan MATCH FULL.
Contoh Create Table yang lengkap dari tabel PropertyForRent:
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 CHAR(4)
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 CHAR(1)
CHECK(VALUE IN (‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘M’, ‘S’));
CREATE DOMAIN PropertyRooms AS SMALLINT;
CHECK(VALUE BETWEEN 1 AND 15);
CREATE DOMAIN PropertyRent AS DECIMAL(6,2)
CHECK(VALUE BETWEEN 0 AND 9999.99);
CREATE TABLE PropertyForRent(
propertyNo PropertyNumber NOT NULL,

ISYS6513 – Database System and Management


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

Changing a Table Definition (ALTER TABLE)


Standar ISO menyediakan pernyataan ALTER TABLE untuk mengubah struktur tabel
setelah pembuatan tabel. Definisi pernyataan ALTER TABLE dalam standar ISO terdiri dari
enam opsi yaitu:
 Menambahkan kolom baru ke tabel.
 Menghapus kolom dari tabel.
 Menambahkan constraint pada tabel baru.
 Menghapus constraint pada tabel.
 Mengatur kolom default.
 Menghapus kolom default.

ISYS6513 – Database System and Management


Format dasar kalimat ALTER adalah:
ALTER TABLE TableName
[ADD [COLUMN] columnName dataType [NOT NULL] [UNIQUE]
[DEFAULT defaultOption] [CHECK (searchCondition)]]
[DROP [COLUMN] columnName [RESTRICT | CASCADE]]
[ADD [CONSTRAINT [ConstraintName]] tableConstraintDefinition]
[DROP CONSTRAINT ConstraintName [RESTRICT | CASCADE]]
[ALTER [COLUMN] SET DEFAULT defaultOption]
[ALTER [COLUMN] DROP DEFAULT]
Klausa ADD COLUMN serupa dengan definisi kolom dalam pernyataan CREATE TABLE.
Klausa DROP COLUMN menentukan nama kolom yang akan dihapus dari definisi tabel, dan
memiliki kualifikasi opsional yang menentukan apakah tindakan DROP adalah kaskade atau
tidak.
Contoh 1 ALTER TABLE
ALTER TABLE Staff
ALTER position DROP DEFAULT;
ALTER TABLE Staff
ALTER sex SET DEFAULT ‘F’;
Contoh 2 ALTER TABLE
ALTER TABLE PropertyForRent
DROP CONSTRAINT StaffNotHandlingTooMuch;
ALTER TABLE Client
ADD prefNoRooms PropertyRooms;

Removing a Table (DROP TABLE)


Seiring waktu, struktur database akan berubah; tabel baru akan dibuat dan beberapa
tabel tidak lagi diperlukan. Kita dapat menghapus tabel redundan dari database menggunakan
pernyataan DROP TABLE, yang memiliki format:
DROP TABLE TableName [RESTRICT | CASCADE]
Misalnya, untuk menghapus tabel PropertyForRent kita menggunakan perintah:
DROP TABLE PropertyForRent;

ISYS6513 – Database System and Management


Efek total dari TABLE DROP dengan CASCADE bisa sangat luas dan harus dilakukan dengan
sangat hati-hati. Satu penggunaan umum DROP TABLE adalah untuk memperbaiki kesalahan
yang dibuat saat membuat tabel. Jika tabel dibuat dengan struktur yang salah, DROP TABLE
dapat digunakan untuk menghapus tabel yang baru dibuat dan mulai lagi.

Creating an Index (CREATE INDEX)


Indeks adalah struktur yang menyediakan akses lebih cepat ke baris tabel berdasarkan
nilai pada satu kolom atau lebih. Kehadiran indeks dapat meningkatkan kinerja kueri secara
signifikan. Namun, karena indeks dapat diperbarui oleh sistem setiap kali tabel yang
mendasarinya diperbarui, biaya tambahan dapat mungkin terjadi. Indeks biasanya dibuat untuk
memenuhi kriteria pencarian tertentu pada tabel yang sering digunakan untuk beberapa waktu
dan ukuran tabel membesar. Pembuatan indeks bukan standar SQL. Namun, sebagian besar
dialek mendukung kemampuan indeks. Format penulisan indeks sebagai berikut:
CREATE [UNIQUE] INDEX IndexName
ON TableName (columnName [ASC | DESC] [, . . .])

Contoh pembuatan indeks


CREATE INDEX Rentlnd ON PropertyForRent (city, rent);
maka indeks yang disebut Rentlnd dibuat untuk tabel PropertyForRent. Entri akan disusun
menurut abjad berdasarkan kota yang disewa di setiap kota.

Removing an Index (DROP INDEX)


Jika kita membuat indeks untuk tabel dan kemudian memutuskan bahwa itu tidak lagi
diperlukan, kita dapat menggunakan pernyataan DROP INDEX untuk menghapus indeks dari
database. DROP INDEX memiliki format berikut:
DROP INDEX IndexName;
Sehingga untuk menghapus indeks RentInd maka digunakan pernyataan:
DROP INDEX Rentlnd;

ISYS6513 – Database System and Management


SIMPULAN

Kesimpulan dari materi ini adalah:

1. Standar ISO SQL menyediakan klausul dalam pernyataan CREATE dan ALTER
TABLE untuk mendefinisikan batasan integritas yang menangani data yang diperlukan,
kendala domain, integritas entitas, integritas referensial, dan kendala umum. Data yang
diperlukan dapat ditentukan menggunakan NOT NULL. Kendala domain dapat
ditentukan menggunakan klausa CHECK atau dengan mendefinisikan domain
menggunakan pernyataan CREATE DOMAIN.
2. primary key harus didefinisikan menggunakan klausa PRIMARY KEY dan alternative
key menggunakan kombinasi NOT NULL dan UNIQUE.
3. foreign key harus didefinisikan dengan menggunakan klausa FOREIGN KEY.
4. memperbarui dan menghapus aturan menggunakan sub-klausa ON UPDATE dan ON
DELETE.
5. Kendala umum dapat didefinisikan dengan menggunakan klausa CHECK dan
UNIQUE. Kendala umum juga dapat dibuat menggunakan pernyataan CREATE
ASSERTION.

ISYS6513 – Database System and Management


DAFTAR PUSTAKA

Connolly, T., & Begg, C. (2015). Database System A Practical Approach to Design,
Implemetation, and Management 6th Edition. Pearson

ISYS6513 – Database System and Management

Anda mungkin juga menyukai