ISYS6508
Database System
Week 5
1. Introduction to SQL
3. Data Definition
Introduction to SQL
Bahasa tertentu yang muncul dari pengembangan model relasional adalah Structured
Query Language, atau yang biasa disebut SQL. Selama beberapa tahun terakhir, SQL telah
menjadi bahasa database relasional standar. Pada tahun 1986, SQL Standard didefinisikan
oleh American National Standards Institute (ANSI) dan kemudian diadopsi pada tahun 1987
sebagai standar internasional oleh International Organization for Standardization (ISO, 1987).
Saat ini lebih dari seratus DBMSs didukung oleh SQL, yang berjalan di berbagai platform
perangkat keras dari PC hingga mainframe.
Bahasa di dalam basis data idealnya harus memungkinkan pengguna untuk:
Membuat database dan struktur database relasional.
Melakukan tugas-tugas dasar dari manajemen data, seperti insert, update, dan delete
data.
Melakukan query sederhana hingga query kompleks.
Sejarah model relasional (SQL secara tidak langsung) dimulai dengan publikasi
makalah seminar oleh E. F. Codd, yang ditulis selama bekerja di Laboratorium Penelitian
IBM di San José (Codd, 1970). Pada tahun 1974, D. Chamberlin, juga dari Laboratorium
IBM San José, mendefinisikan bahasa yang disebut Structured English Query Language, atau
SEQUEL. Kemudian direvisi menjadi SEQUEL / 2, yang didefinisikan pada tahun 1976,
tetapi nama SEQUEL kemudian diubah menjadi SQL karena alasan hukum (Chamberlin dan
Boyce, 1974; Chamberlin et al., 1976). Hari ini, banyak orang masih mengucapkan SQL
sebagai "See-Quel," meskipun pelafalan resmi adalah "S-Q-L."
IBM menghasilkan prototipe DBMS berdasarkan SEQUEL / 2 yang disebut System R
(Astrahan et al., 1976). Tujuan prototipe ini adalah untuk memvalidasi kelayakan model
relasional. Salah satu hasil terpenting lainnya yang dikaitkan dengan proyek SEQUEL / 2
adalah pengembangan SQL. Namun, akar SQL dalam bahasa SQUARE (Specifying Queries
As Relational Expressions), yang lebih dahulu dari proyek Sistem R. SQUARE dirancang
sebagai bahasa penelitian untuk menerapkan aljabar relasional dengan kalimat dalam bahasa
Inggris (Boyce et al., 1975).
Pada tahun 1989, ISO menerbitkan sebuah adendum yang mendefinisikan "Fitur
Peningkatan Integritas" (ISO, 1989). Pada tahun 1992, revisi besar pertama terhadap standar
ISO terjadi, kadang disebut sebagai SQL2 atau SQL-92 (ISO, 1992). Meskipun beberapa fitur
telah didefinisikan dalam standar untuk pertama kalinya, banyak dari fitur ini telah
diimplementasikan sebagian atau dalam bentuk serupa dalam satu atau lebih dari banyak
Sepanjang ini Bab berikutnya, kami menggunakan bentuk tambahan dari notasi
Backus Naur Form (BNF) untuk mendefinisikan pernyataan SQL:
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,
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)
Seperti yang telah kita bahas di bagian sebelumnya, versi pernyataan CREATE TABLE ini
menggabungkan fasilitas untuk mendefinisikan integritas referensial dan batasan lainnya.
Ada 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.
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.
Connolly, T., & Begg, C. (2015). Database System A Practical Approach to Design,
Implemetation, and Management 6th Edition. Pearson