sejumlah
domain cabang dapat terjadi jika nilai dimasukkan sesuai
dengan jumlah cabang yang ada dalam tabel cabang, dengan menggunakan
pernyataan
CREATE DOMAIN
branchnumber AS CHAR (4)
CHECK ( VALUE IN ( SELECT branchNo FROM Branch));
The preferred menthod of defining domain constrains is using the create domain
statement,
Perilaku drop,
membatasi atau kaskade, menentukan tindakan yang jika domain saat ini sedang
digunakan pada tabel yang ada, melihat, atau definisi pernyataan (lihat bagian
7.2.5), yang
penurunan akan gagal kasus kaskade, setiap kolom tabel yang berbasis domain
berubah secara otomatis untuk menggunakan domain itu yang mendasari tipe data,
dan kendala apapun atau default untuk Domain diganti dengan klausa default kolom,
jika sesuai.
Entitas integritas
Kunci primer
Untuk menentukan komposit
kunci primer kita tentukan nama beberapa kolom di primary key
klausa, memisahkan masing-masing dengan koma. Misalnya, untuk menentukan
kunci utama melihat tabel, yang terdiri o clienNo kolom dan propertyNo, kami inklusi
klausa;
Primary key:
Klausa kunci primer
dapat ditetapkan hanya sekali per tabel. Namun, masih mungkin untuk memastikan
keunikan untuk setiap kunci alternatif dalam tabel menggunakan kata kunci
unik. Setiap kolom
yang appers dalam klausa yang unik juga harus dinyatakan tidak nol, mungkin ada
sebanyak unik atau update. operasi yang mencoba untuk membuat duplikat nilai
dalam setiap candidate key (yang kunci primer atau kunci alternatif), misalnya,
dengan melihat tabel kita awan juga telah menulis
Sebuah kolom foreign key, atau set kolom, yang memiliki pranala setiap baris dalam tabel
constining anak yang
forihg kunci untuk baris tabel yang berisi parem candidate key yang cocok
nilai. integritas Referential berarti bahwa jika batasan kunci asing nilai yang
nilai harus mengacu pada suatu baris, ada yang valid pada tabel induk. Misalnya,
jumlah cabang branchNo kolom dalam tabel ForRent properti menghubungkan
properti properti ke bahwa baris dalam tabel cabang di mana properti itu
ditetapkan, jika nomor cabang tidak null, harus mengandung nilai yang benar dari
yang BranchNo kolom dari tabel Cabang, atau kekayaan yang ditugaskan ke
valid kantor cabang
sql mendukung opsi yang sama ketika candidate key di tabel induk update. Dengan
cascade, nilai-nilai kunci asing dalam tabel anak ditetapkan dengan nilai-nilai baru dari
candidate key di tabel induk. Dengan cara yang dame, yang casdade memperbarui jika
kolom update dalam kunci anak tabel referensi asing di meja lain.
Foer contoh, pada tabel yang staffNo propertyForRent jumlah staf referensi kunci asing meja
guru. Kita dapat menentukan aturan menghapus sedemikian sehingga jika suatu recort
stadd dihapus dari meja guru, nilai dari kolom staffNo terkait dalam tabel PropertyForRent
diatur ke NULL:
Kendala UMUM
Update untuk tabel dapat dibatasi oleh aturan perusahaan govering transaksi dunia nyata
yang diwakili oleh pembaruan. Misalnya Dream rumah mungkin memiliki aturan yang
mencegah seorang anggota staf dari mengelola lebih dari 100 properti di saat yang sama,
standar iso memungkinkan kendala umum akan ditentukan menggunakan pernyataan
pernyataan PERIKSA. Kami mendiskusikan cek dan klausa yang unik di awal bagian th
ini. Penegasan itu membuat laporan merupakan kendala integritas yang tidak terkait
langsung Mith definisi tabel. Format laporan adalah
pernyataan ini sangat mirip dengan klausul memeriksa dibahas sebelumnya. Namun, ketika
kendala umumnya melibatkan lebih dari satu tabel, mungkin lebih baik untuk menggunakan
sebuah pernyataan rarther dari duplikat memeriksa di setiap tabel atau tempat kendala
dalam tabel sewenang-wenang. Misalnya, untuk menentukan kendala umum yang
mencegah seorang anggota staf dari mengelola lebih dari 100 properti di saat yang sama,
kita bisa menulis
CREATE ASSERTION staffnothandlingtoomuch
CHECK ( NOT IXIST ( SELECT staffNo
FROM propertyForrent
GROUP BY staffNo
HAVING COUNT (*) > 100))
Kami menunjukkan bagaimana untuk menggunakan fitur ini integritas pada bagian berikut
ketika kita memeriksa pernyataan th membuat mengubah tabel.
Data Definition
The DDL sql memungkinkan objek database seperti skema, domain, meja, pandangan, dan
indeks untuk membuat dan dihancurkan. Pada bagian ini, kita telaah secara singkat
bagaimana membuat dan menghancurkan skema, tabel, dan indeks, kita membahas
bagaimana membuat dan menghancurkan melihat pada bagian berikutnya.Standar iso juga
memungkinkan penciptaan karakter, kolasi set dan terjemahan.Namun, kita tidak akan
conside objek ini database dalam buku ini, pembaca bunga refrred untuk cannan dan data
SQL pernyataan definisi bahasa adalah:
Pernyataan ini digunakan untuk membuat, mengubah, dan menghancurkan struktur yang
membentuk skema konseptual, walaupun tidak dicakup dalam standar SQL, dua pernyataan
berikut yang disediakan oleh banyak DBMNSs:
perintah tambahan yang tersedia untuk para DBA untuk menentukan detail fisik
penyimpanan data, namun kami tidak daicuss perintah-perintah sini, karena mereka sistem-
spesifik.
ketika sistem terinstal dan terkonfigurasi, dan lainnya dapat menciptakan oleh pengguna
sebagai dan ketika reuired. Standar iso tidak menjelaskan bagaimana database dibuat, dan
masing-masing dialek generallyhas pendekatan defferent.
Menurut hubungan iso standar, dan hubungan lain dan objek database lain yang ada di
lingkungan. Antara lain, lingkungan masing-masing terdiri dari katalog satu atau lebih, dan
katalog masing-masing terdiri dari sebuah shemas set, Shema adalah sebuah collction
bernama objek database yang dalam beberapa cara terkait satu sama lain (semua objek
dalam database yang dijelaskan dalam satu skema atau yang lain), objek dalam skema
dapat meja, domain pandangan, pernyataan, collation, terjemahan, dan set karakter.
Semua objek dalam skema memiliki pemilik yang sama dan berbagi sejumlah standar.
Standar ini meninggalkan mekanisme untuk menciptakan dan menghancurkan katalog
sebagai diimplementasikan-didefinisikan, tetapi menyediakan mekanisme untuk
menciptakan dan menghancurkan katalog sebagai skema. Pernyataan Definisi skema
memiliki (disederhanakan) setelah
Setelah tabel yang dibuat struktur database, sekarang kita dapat menciptakan struktur tabel
untuk hubungan database yang akan disimpan dalam database. Tugas ini achivied
menggunakan perintah CREATE TABLE. Yang memiliki sintaks dasar sebagai berikut:
Seperti yang kita diskusikan di bagian sebelumnya, ini vertion dari pernyataan CREATE
TABLE menggabungkan fasilitas untuk mendefinisikan integritas refrentials dan kendala
lainnya ada variasi yang signifikan dalam dukungan yang diberikan oleh dialek berbeda
untuk versi ini pernyataan Namun ketika itu didukung, fasilitas harus digunakan
Pernyataan ini membuat peti dari tabel yang disebut tableName terdiri dari satu kolom lebih
dari tipe data tertentu. Himpunan tipe data diperbolehkan dijelaskan pada bagian
7.1.2. klausa DEFAULT opsional dapat ditentukan untuk memberikan nilai default untuk
kolom tertentu, SQL menggunakan nilai default ini setiap kali gagal memasukkan
pernyataan untuk menentukan nilai untuk kolom. Di antara nilai-nilai lain. Pilihan default
termasuk literal. The NOTNULL,, UNIK, dan klausa PERIKSA telah dibahas dalam bagian
sebelumnya. Klausul yang tersisa yang dikenal sebagai kendala tabel dan opsional bisa
didahului dengan klausa:
CONSTRAINT contraintname
Yang memungkinkan kendala yang akan dijatuhkan oleh nama menggunakan pernyataan
mengubah tabel (lihat berikut).
The klausa PRIMARY KEY menentukan kolom atau kolom yang membentuk kunci utama
untuk meja. Jika ini klausa tersedia, ahould ditentukan untuk setiap meja dibuat.Secara
default, NOT NULL diasumsikan untuk setiap kolom yang terdiri dari primary key, hanya satu
klausul primary key diperbolehkan per tabel. SL menolak setiap operasi insert atau update
yang attempst untuk membuat duplikat baris dalam kolom kunci utama, dengan cara ini, SL
menjamin keunikan dari primary key.
Klausa foreign key menetapkan kunci asing dalam tabel (anak) dan hubungan itu harus
tabel lain (induk). Klausul ini menerapkan batasan integritas referensial. Klausul menentukan
berikut:
listOfForeignKeyColumn A, kolom dari tabel yang dibuat yang dari kunci asing.
Aturan opsional update (ON UPDATE) untuk hubungan yang menentukan tindakan yang
harus diambil ketika kunci calon diperbarui pada tabel induk yang cocok dengan kunci asing
di tabel anak. Tindakan refrential adalah sama seperti untuk aturan UPDATE ON.
Secara default, kendala refrential puas jika ada komponen kunci asing null atau ada baris
yang cocok di tabel induk. Pilihan pencocokan menghasilkan hubungan kendala tambahan
untuk nulls dalam kunci asing. Jika MATCH FULL ditentukan, komponen kunci asing semua
harus nol, atau ada akan Leat satu baris pada tabel induk yang bisa memuaskan selebihnya
adalah benar substitud. Beberapa penulis berpendapat bahwa integritas refrential harus
berarti MATCH FULL.
Ada bisa banyak klausa KUNCI ASING sebagai equired. Para PERIKSA dan klausa
CONSTRAINT memungkinkan kendala tambahan, untuk didefinisikan. Jika digunakan
sebagai kendala kolom, cek klausa referensi taksi hanya kolom yang didefinisikan.Kendala
yang berlaku diperiksa setelah setiap pernyataan SQL telah dilaksanakan, meskipun
pemeriksaan ini bisa ditunda sampai akhir transaksi melampirkan (lihat bagian 7.5). contoh
7.1 demonrates potensi ini verstion pernyataan CREATE TABLE
EXAMPLE 7.1 CREATE TABLE
CONSTRAINS StaffHandlingToomuch
CHECK ( NOT EXIST (SELECT staffNo
FROM PropertyForrent
GROUP BY StaffNo
HAVING COUNT(*) > 100)),
BranchNo BrunchNumber NOTNULL
PRIMARY KEY (propertyNo)
FOREIGN (StaffNo) REFERENCE Staff ON DELETE SET NULL
ON UPDATE CASCADE
FOREIGN KEY (ownerNo) REFERENCE PrivateOwner ON DELETE NO
ACTION ON UPDATE CASCADE,
FOREIGN KEY (branchNo) REFERENCE Branch ON DELETE NO
ACTION ON UPDATE CASCADE);
Nilai default dari 'f' untuk 'flat' telah ditetapkan untuk tipe tipe properti kolom, menjadi
kendala untuk kolom jumlah staf telah ditetapkan untuk memastikan bahwa anggota staf
properti tidak terlalu banyak menangani properti. Kendala cek apakah jumlah anggota staf
properti saat ini menangani lebih dari 100.
Mana paramenter adalah sebagai ditetapkan untuk membuat laporan tabel di bagian
sebelumnya. tableContraintDefinition adalah salah satu klausa: UNIK PRIMARY KEY,
FOREIGN KEY, atau PERIKSA. The cluase ADD KOLOM mirip dengan kalimat spectifies
nama kolom ro dijatuhkan dari definisi tabel dan memiliki kualifikasi opsional yang bahwa
spectifies apakah tindakan drop adalah untuk caaascade atau tidak;
MEMBATASI: operasi drop ditolak jika kolom direferensikan oleh database lain
CASCADE: hasil drop operasi dan secara otomatis drop kolom dari database setiap objek
yang direferensikan oleh, ini kaskade operasi sehingga jika kolom terjatuh dari objek
referensi, SQL memeriksa apakah yang kolom oleh obyek apapun dan drop dari sana jika
dan segera