DEFINISI DATA
Definisi Data
A. Data Tipe ISO SQL
B. Data Tipe SQL Skala
- Data Boolean
- Data Karakter
- Angka Numerik Pasti
- Angka Numerik Perkiraan
C. Integrity Enhancement Feature (IEF)
- IEF: fasilitas yang disediakan oleh standar SQL untuk integrity control
- Integrity control terdiri dari batasan yang ingin kita paksakan untuk menjaga
database agar tidak inkosisten
- Batasan ini bisa dispesifikasikan di CREATE dan ALTER TABLE
- Terdiri dari 5 tipe batasan integritas
o Data yang dibutuhkan
Beberapa kolom harus memiliki nilai yang valid, tidak
diperbolehkan untuk terisi null
Modul Jurusan Statistika Angkatan 57 Semester IV
Pengurus Angkatan STIS 57
Divisi Akademik
Null berbeda dari kosong atau 0, dan digunakan untuk
merepresentasikan data yang tidak tersedia, hilang atau tidak
berlaku
Standar ISO menyediakan kolom NOT NULL lebih spesifik di
pernyataan CREATE dan ALTER TABLE untuk batasan tipe
ini. Ketika NOT NULL dispesifikasikan, sistem menolak semua
percobaan untuk memasukkan null pada kolom. Jika NULL
dispesifikasikan, sistem akan menerima null
Default ISO adalah NULL
Contoh, untuk menspesifikasikan posisi kolom pada tabel Staff
tidak bisa diisi null, kita tentukan kolom sbb.:
Position VARCHAR(10) NOT NULL
o Batasan Domain
Setiap kolom mempunyai sebuah domain
Contoh, jenis kelamin setiap staff adalah antara ‘M’ atau ‘F’,
sehingga domain pada kolom jenis kelamin pada tabel Staff
adalah single character string terdiri dari ‘M’ atau ‘F’
Domain bisa dihapus dari database menggunakan pernyataan
DROP DOMAIN :
DROP DOMAIN DomainName[RESTRICT|CASCADE]
o Integritas Entitas
Primary key pada tabel harus terdiri dari nilai yang unik, non-
null pada setiap baris
PRIMARY KEY(propertyNo)
PRIMARY KEY (ClientNo,propertyNo)
Klausa PRIMARY KEY bisa dispesifikasikan hanya satu setiap
tabel. Tetapi, ada kemungkinan untuk mengamankan keunikan
pada setiap ALTERNATE KEYS pada tabel menggunakan kata
kunci UNIQUE. Setiap kolom yang tampil dalam klausa
UNIQUE harus dideklarasikan sebagai NOT NULL.
SQL menolak setiap operasi INSERT atau UPDATE yang
dicoba untuk membuat nilai duplikasi di setiap CANDIDATE
KEY (PRIMARY KEY atau ALTERNATE KEY
Contoh
ClientNo VARCHAR(5) NOT NULL,
propertyNo VARCHAR (5) NOT NULL,
UNIQUE (ClientNo,propertyNo)
o Integritas Referensial
FOREIGN KEY adalah kolom atau sekumpulan kolom yang
berhubungan dengan setiap baris pada tabel dimana pada salah
satu tabel menjadi FOREIGN KEY dan tabel lainnya menjadi
PRIMARY KEY
Integritas referensial berarti jika FK terdiri dari nilai, nilai
tersebut harus ada pada tabel utama
Standar ISO mensupport definisi klausa FOREIGN KEY di
CREATE dan ALTER TABLE
FOREIGN KEY(…) REFERENCES …
Setiap percobaan INSERT/UPDATE untuk membuat nilai FK
pada tabel ank tanpa mencocokan nilai CANDIDATE KEY di
tabel induk akan ditolak
Keputusan diambil ketika mencoba mengupdate/ menghapus
nilai CK di tabel induk dengan mencocokan baris pada anak
yang bergantung pada aksi referensial dispesifikasikan
menggunakan sub klausa ON UPDATE dan ON DELETE
CASCADE
SET
DEFAULT
SET NULL
NO ACTION
Modul Jurusan Statistika Angkatan 57 Semester IV
Pengurus Angkatan STIS 57
Divisi Akademik
Saat pengguna mencoba untuk menghapus baris dari tabel
orangtua, dan terdapat satu atau lebih baris yang sama dengan
tabel anak, SQL memberikan empat pilhan tergantung aksi yang
diambil
CASCADE
SET NULL
SET
DEFAULT
NO ACTION
SQL mendukung pilihan yang sama ketika CANDIDATE KEY
pada tabel induk diperbarui
Dengan CASCADE, nilai FOREIGN KEY pada tabel anak akan
terisi dengan nilai baru pada CANDIDATE KEY pada tabel
induk. Begitu juga jika kita memperbarui kolom
Contoh pada tabel PropertyForRent
FOREIGN KEY(staffNo) REFERENCES Staff ON DELETE
SET NULL
FOREIGN KEY (ownerNo) REFERENCES Owner ON
UPDATE CASCADE
o Batasan Umum
Pembaruan pada tabel mungkin dibatasi oleh aturan umum
perusahaan ditransaksi dunia nyata yang direpresentasikan oleh
UPDATE
Bisa menggunakan CHECK/UNIQUE di CREATE dan ALTER
TABLE
Sama dengan klausa CHECK, juga mempunyai:
CREATE ASSERTION Assertion Name
CHECK (searchCondition)
Berbeda dengan CHECK/UNIQUE, ASSERTION bisa
digunakan pada lebih dari satu tabel
CREATE ASSERTION StaffNotHandlingTooMuch
CHECK(NOT EXISTS(SELECT staffNo
FROM PropertyForRent
GROUP BY StaffNo
HAVING COUNT (*)>100))
o Klausa CHECK, yang mengijinkan batasan untuk ditentukan pada kolom
atau seluruh tabel. Format klausa CHECK adalah
CHECK(searchCondition)
Sex CHAR NOT NULL CHECK(sex IN (‘M’, ‘F’))
o Mengijinkan domain untuk ditentukan lebih eksplisit menggunakan
pernyataan CREATE DOMAIN
CREATE DOMAIN DomainName[AS]data Type
[DEFAULT defaultOption]
[CHECK (searchCondition)]
CREATE DOMAIN sexType AS CHAR
DEFAULT ‘M’
CHECK (VALUE (‘M’ , ‘F’));
sex SEXType NOT NULL
CREATE DOMAIN BranchNumber AS CHAR (4)
CHECK (VALUE IN (SELECT branchNo FROM Branch));
D. Definisi Data
- SQL DDL mengijinkan objek database seperti skema, domain, tabel , view dan
index bisa dibuat dan dihapus
- Pernyataan utama SQL DDL adalah:
CREATE SCHEMA DROP SCHEMA
CREATE/ALTER DOMAIN DROP DOMAIN
CREATE/ALTER TABLE DROP TABLE
CREATE VIEW DROP VIEW
Modul Jurusan Statistika Angkatan 57 Semester IV
Pengurus Angkatan STIS 57
Divisi Akademik
- Banyak DBMS juga menyediakan (tidak standar)
CREATE INDEX DROP INDEX
- Relation(tabel) dan objek database lainnya ada di envinroment
- Setiap envinroment terdiri atas satu atau lebih catalog, dan setiap catalog terdiri
atas sekumpulan skema
- Skema adalah nama kumpulan objek database yang berhubungan
- Objek di skema bisa tabel, views, domain, assertion, collation, translations, dan
sekumpulan karakter. Semuanya mempunyai pemilik sama
E. Buat Tabel
CREATE TABLE TableName (
{ colName dataType [NOT NULL][UNIQUE]
[DEFAULT defaultOption]
[CHECK searchCondition[, …]}
[PRIMARY KEY (listOfColumns),]
{[UNIQUE (listOfColumns),][… , ]}
{[FOREIGN KEY (listOfFKColumns)
REFERENCES ParentTabelName[(listOfCKColumns)],
[ON UPDATE referentialAction]
[ON DELETE referentialAction]][,…]}
{[CHECK (searchConditon)][,…]} )
- Membuat tabel dengan satu atau lebih kolom dispesifikasikan di dataType
- Dengan NOT NULL, sistem menolak semua percobaan untuk memasukkan null
di kolom
- Bisa menspesifikasikan nilai DEFAULT untuk kolom
- PRIMARY KEY seharusnya selalu dispesifikasikan sebagai NOT NULL
- Klausa FOREIGN KEY menspesifikasikan FOREIGN KEY dengan referential
action
- Contoh:
F. Alter Tabel
- Menambahkan kolom baru pada tabel
- Menghapus kolom pada tabel
- Menambahkan batasan tabel
- Menghapus batasan tabel
- Mengatur default pada kolom
- Menghapus default pada kolom
- Format dasar dari pernyataannya adalah:
Modul Jurusan Statistika Angkatan 57 Semester IV
Pengurus Angkatan STIS 57
Divisi Akademik
- DROP COLUMN mempunyai opsi kualifikasi dimana menspesifikasikan apakah
aksi DROP adalah cascade atau tidak
o RESTRICT : operasi akan ditolak jika kolom yang direferensikan oleh
objek database lain. Merupakan setting default
o CASCADE : operasi akan diproses dan secara otomatis menghapus
kolom dari setuap objek database yang direferensikan.
- Contoh
o Merubah tabel staff dengan menghapus default (Assistant) pada kolom
posisi
ALTER TABLE Staff
ALTER position DROP DEFAULT;
o Merubah tabel PropertyForRent dengan mengubah default untuk kolom
ruangan menjadi 2
ALTER TABLE PropertyForRent
ALTER rooms SET DEFAULT 2;
o Mengubah tabel Client dengan menambah kolom yang
merepresentasikan jumlah ruangan yang disukai
ALTER TABLE Client
ADD prefNoRooms PRooms;
G. Drop Tabel
- DROP TABLE TableName[RESTRICT|CASCADE]
o Contoh : DROP TABLE PropertyForRent
- Menghapus nama tabel dan semua baris di dalamnya
o Gunakan DELETE FROM PropertyForRent untuk menghapus baris saja
- Dengan RESTRICT, jika terdapat objek yang eksistensinya tergantung pada
eksistensi pada tabel ini, SQL tidak mengijinkan permintaan
- Dengan CASCADE, SQL menghapus semua objek dependen
H. Views
- View: Hasil dinamis dari satu atau lebih operasi tabel pada relation dasar untuk
menghasilkan relation lain
- Relation tak nyata yang tidak sebenarnya tidak diperlukan keberadaannya di
database tetapi dihasilkan saat request, pada saat ada permintaan
- Konten sebuah view berdasarkan sebuah query pada satu atau lebih relation dasar
I. SQL-Membuat View
CREATE VIEW ViewName[(newColumnName[,…]) AS subselect
[WITH [CASCADED|LOCAL]CHECK OPTION]
- Contoh mengelompokkan dan menggabung View
Buatlah view staff yang mengatur PropertyForRent, termasuk no cabang mereka
bekerja, nomor staff dan property yang mereka
atur
CREATE VIEW StaffPropCnt(branchNo,
staffNo, cnt)
AS SELECT s.branchNo, s.staffNo,
COUNT(*)
FROM Staff s, PropertyForRent p
WHERE s.staffNo=p.staffNo
GROUP BY s.branchNo,s.staffNo;
Modul Jurusan Statistika Angkatan 57 Semester IV
Pengurus Angkatan STIS 57
Divisi Akademik
Nama kolom untuk COUNT (*) harus lebih spesifik
J. SQL-Drop View
DROP VIEW ViewName[RESTRICT|CASCADE]
- Menyebabkan view yang didefinisikan dihapus dari database
- Contoh DROP VIEW Manager3Staff
- Dengan CASCADE, semua objek yang berhubungan akan dihapus
- DENGAN RESTRICT(default), jika ada objek tergantung eksistensinya pada
objek lain, perintah ditolak
K. Resolusi View
- Ketika DBMS encounters sebuah referensi untuk sebuah view, satu cara adalah
melihat definisinya dan menerjemahkan permintaan menjadi permintaan yang
sesuai dengan tabel sumber dan melakukan permintaan yang sesuai. Proses
penggabungan ini disebut view resolution
- Hitung jumlah property yang diatur oleh setiap staff di cabang B003
SELECT staffNo,cnt
FROM StaffPropCnt
WHERE branchNo= ‘B003’
ORDER BY staffNo;
- View resolution menggabung query diatas dengan defining query dari
StaffPropCnt view sebagai dasarnya:
o Nama kolom pada view di daftar SELECT diterjemahkan menjadi
corresponding kolom di defining query:
SELECT s.staffNo AS staffNo, COUNT(*) AS cnt
o Nama view pada FROM akan diganti dengan daftar corresponding dari
FROM
FROM Staff s, PropertyForRent p
- WHERE dari pengguna mengkombinasi query dengan WHERE pada defining
query menggunakan AND
o WHERE s.staffNo=p.staffNo AND branchNo= ‘B003’;
- Klausa GROUP BY dan HAVING disalin dari defining query
o GROUP BY s.branchNo, s.staffNo
- ORDER BY disalin dari query dengan nama kolom view diterjemahkan menjadi
nama kolom defining query
o ORDER BY s.staffNo
- Hasil akhir dari penggabungan bisa dijalankan dan hasilnya sebagai berikut
SELECT s.staffNo AS staffNo, COUNT (*) AS cnt
FROM Staff s, PropertyForRent p
WHERE s.staffNo=p.staffNo AND branchNo= ‘B003’
GROUP BY s.branchNo, s.staffNo
ORDER BY s.staffNo
L. Keuntungan View
- Ketidaktergantungan data
- Currency
- Meningkatkan keamanan
- Mengurangi kekompleksan
- Bisa dirubah
- Integritas Data
M. Kerugian View
- Tidak bisa di update
- Batasan pada struktur
- Performa
N. View Materialization
- Mekanisme pada resolusi view mungkin lambat, tentunya jika view diakses
sering
- View Materialization disimpan pada view pada tabel sementara di database
ketika view pertama kali diqueri dan menjaga currency pada view…
Modul Jurusan Statistika Angkatan 57 Semester IV
Pengurus Angkatan STIS 57
Divisi Akademik
- Akibatnya, queri berdasarkan materialized vire lebih cepat daripada recomputing
view setiap kali
- Merupakan applikasi baru yang berguna, seperti gudang data, mereplika server,
visualisasi daa dan sistem mobile
- Kesulitannya adalah menjaga currency view ketika tabel dasar sedang diperbarui
- Proses memperbarui pada materialized view sebagai respon untuk menrubah
menjadi underlying data disebut View Maintenance
A. Data Tipe ISO SQL
B. Data Tipe SQL Skala
- Data Boolean
- Data Karakter
- Angka Numerik Pasti
- Angka Numerik Perkiraan
C. Integrity Enhancement Feature (IEF)
- IEF: fasilitas yang disediakan oleh standar SQL untuk integrity control
- Integrity control terdiri dari batasan yang ingin kita paksakan untuk menjaga
database agar tidak inkosisten
- Batasan ini bisa dispesifikasikan di CREATE dan ALTER TABLE
- Terdiri dari 5 tipe batasan integritas
o Data yang dibutuhkan
Beberapa kolom harus memiliki nilai yang valid, tidak
diperbolehkan untuk terisi null
Modul Jurusan Statistika Angkatan 57 Semester IV
Pengurus Angkatan STIS 57
Divisi Akademik
Null berbeda dari kosong atau 0, dan digunakan untuk
merepresentasikan data yang tidak tersedia, hilang atau tidak
berlaku
Standar ISO menyediakan kolom NOT NULL lebih spesifik di
pernyataan CREATE dan ALTER TABLE untuk batasan tipe
ini. Ketika NOT NULL dispesifikasikan, sistem menolak semua
percobaan untuk memasukkan null pada kolom. Jika NULL
dispesifikasikan, sistem akan menerima null
Default ISO adalah NULL
Contoh, untuk menspesifikasikan posisi kolom pada tabel Staff
tidak bisa diisi null, kita tentukan kolom sbb.:
Position VARCHAR(10) NOT NULL
o Batasan Domain
Setiap kolom mempunyai sebuah domain
Contoh, jenis kelamin setiap staff adalah antara ‘M’ atau ‘F’,
sehingga domain pada kolom jenis kelamin pada tabel Staff
adalah single character string terdiri dari ‘M’ atau ‘F’
Domain bisa dihapus dari database menggunakan pernyataan
DROP DOMAIN :
DROP DOMAIN DomainName[RESTRICT|CASCADE]
o Integritas Entitas
Primary key pada tabel harus terdiri dari nilai yang unik, non-
null pada setiap baris
PRIMARY KEY(propertyNo)
PRIMARY KEY (ClientNo,propertyNo)
Klausa PRIMARY KEY bisa dispesifikasikan hanya satu setiap
tabel. Tetapi, ada kemungkinan untuk mengamankan keunikan
pada setiap ALTERNATE KEYS pada tabel menggunakan kata
kunci UNIQUE. Setiap kolom yang tampil dalam klausa
UNIQUE harus dideklarasikan sebagai NOT NULL.
SQL menolak setiap operasi INSERT atau UPDATE yang
dicoba untuk membuat nilai duplikasi di setiap CANDIDATE
KEY (PRIMARY KEY atau ALTERNATE KEY
Contoh
ClientNo VARCHAR(5) NOT NULL,
propertyNo VARCHAR (5) NOT NULL,
UNIQUE (ClientNo,propertyNo)
o Integritas Referensial
FOREIGN KEY adalah kolom atau sekumpulan kolom yang
berhubungan dengan setiap baris pada tabel dimana pada salah
satu tabel menjadi FOREIGN KEY dan tabel lainnya menjadi
PRIMARY KEY
Integritas referensial berarti jika FK terdiri dari nilai, nilai
tersebut harus ada pada tabel utama
Standar ISO mensupport definisi klausa FOREIGN KEY di
CREATE dan ALTER TABLE
FOREIGN KEY(…) REFERENCES …
Setiap percobaan INSERT/UPDATE untuk membuat nilai FK
pada tabel ank tanpa mencocokan nilai CANDIDATE KEY di
tabel induk akan ditolak
Keputusan diambil ketika mencoba mengupdate/ menghapus
nilai CK di tabel induk dengan mencocokan baris pada anak
yang bergantung pada aksi referensial dispesifikasikan
menggunakan sub klausa ON UPDATE dan ON DELETE
CASCADE
SET
DEFAULT
SET NULL
NO ACTION
Modul Jurusan Statistika Angkatan 57 Semester IV
Pengurus Angkatan STIS 57
Divisi Akademik
Saat pengguna mencoba untuk menghapus baris dari tabel
orangtua, dan terdapat satu atau lebih baris yang sama dengan
tabel anak, SQL memberikan empat pilhan tergantung aksi yang
diambil
CASCADE
SET NULL
SET
DEFAULT
NO ACTION
SQL mendukung pilihan yang sama ketika CANDIDATE KEY
pada tabel induk diperbarui
Dengan CASCADE, nilai FOREIGN KEY pada tabel anak akan
terisi dengan nilai baru pada CANDIDATE KEY pada tabel
induk. Begitu juga jika kita memperbarui kolom
Contoh pada tabel PropertyForRent
FOREIGN KEY(staffNo) REFERENCES Staff ON DELETE
SET NULL
FOREIGN KEY (ownerNo) REFERENCES Owner ON
UPDATE CASCADE
o Batasan Umum
Pembaruan pada tabel mungkin dibatasi oleh aturan umum
perusahaan ditransaksi dunia nyata yang direpresentasikan oleh
UPDATE
Bisa menggunakan CHECK/UNIQUE di CREATE dan ALTER
TABLE
Sama dengan klausa CHECK, juga mempunyai:
CREATE ASSERTION Assertion Name
CHECK (searchCondition)
Berbeda dengan CHECK/UNIQUE, ASSERTION bisa
digunakan pada lebih dari satu tabel
CREATE ASSERTION StaffNotHandlingTooMuch
CHECK(NOT EXISTS(SELECT staffNo
FROM PropertyForRent
GROUP BY StaffNo
HAVING COUNT (*)>100))
o Klausa CHECK, yang mengijinkan batasan untuk ditentukan pada kolom
atau seluruh tabel. Format klausa CHECK adalah
CHECK(searchCondition)
Sex CHAR NOT NULL CHECK(sex IN (‘M’, ‘F’))
o Mengijinkan domain untuk ditentukan lebih eksplisit menggunakan
pernyataan CREATE DOMAIN
CREATE DOMAIN DomainName[AS]data Type
[DEFAULT defaultOption]
[CHECK (searchCondition)]
CREATE DOMAIN sexType AS CHAR
DEFAULT ‘M’
CHECK (VALUE (‘M’ , ‘F’));
sex SEXType NOT NULL
CREATE DOMAIN BranchNumber AS CHAR (4)
CHECK (VALUE IN (SELECT branchNo FROM Branch));
D. Definisi Data
- SQL DDL mengijinkan objek database seperti skema, domain, tabel , view dan
index bisa dibuat dan dihapus
- Pernyataan utama SQL DDL adalah:
CREATE SCHEMA DROP SCHEMA
CREATE/ALTER DOMAIN DROP DOMAIN
CREATE/ALTER TABLE DROP TABLE
CREATE VIEW DROP VIEW
Modul Jurusan Statistika Angkatan 57 Semester IV
Pengurus Angkatan STIS 57
Divisi Akademik
- Banyak DBMS juga menyediakan (tidak standar)
CREATE INDEX DROP INDEX
- Relation(tabel) dan objek database lainnya ada di envinroment
- Setiap envinroment terdiri atas satu atau lebih catalog, dan setiap catalog terdiri
atas sekumpulan skema
- Skema adalah nama kumpulan objek database yang berhubungan
- Objek di skema bisa tabel, views, domain, assertion, collation, translations, dan
sekumpulan karakter. Semuanya mempunyai pemilik sama
E. Buat Tabel
CREATE TABLE TableName (
{ colName dataType [NOT NULL][UNIQUE]
[DEFAULT defaultOption]
[CHECK searchCondition[, …]}
[PRIMARY KEY (listOfColumns),]
{[UNIQUE (listOfColumns),][… , ]}
{[FOREIGN KEY (listOfFKColumns)
REFERENCES ParentTabelName[(listOfCKColumns)],
[ON UPDATE referentialAction]
[ON DELETE referentialAction]][,…]}
{[CHECK (searchConditon)][,…]} )
- Membuat tabel dengan satu atau lebih kolom dispesifikasikan di dataType
- Dengan NOT NULL, sistem menolak semua percobaan untuk memasukkan null
di kolom
- Bisa menspesifikasikan nilai DEFAULT untuk kolom
- PRIMARY KEY seharusnya selalu dispesifikasikan sebagai NOT NULL
- Klausa FOREIGN KEY menspesifikasikan FOREIGN KEY dengan referential
action
- Contoh:
F. Alter Tabel
- Menambahkan kolom baru pada tabel
- Menghapus kolom pada tabel
- Menambahkan batasan tabel
- Menghapus batasan tabel
- Mengatur default pada kolom
- Menghapus default pada kolom
- Format dasar dari pernyataannya adalah:
Modul Jurusan Statistika Angkatan 57 Semester IV
Pengurus Angkatan STIS 57
Divisi Akademik
- DROP COLUMN mempunyai opsi kualifikasi dimana menspesifikasikan apakah
aksi DROP adalah cascade atau tidak
o RESTRICT : operasi akan ditolak jika kolom yang direferensikan oleh
objek database lain. Merupakan setting default
o CASCADE : operasi akan diproses dan secara otomatis menghapus
kolom dari setuap objek database yang direferensikan.
- Contoh
o Merubah tabel staff dengan menghapus default (Assistant) pada kolom
posisi
ALTER TABLE Staff
ALTER position DROP DEFAULT;
o Merubah tabel PropertyForRent dengan mengubah default untuk kolom
ruangan menjadi 2
ALTER TABLE PropertyForRent
ALTER rooms SET DEFAULT 2;
o Mengubah tabel Client dengan menambah kolom yang
merepresentasikan jumlah ruangan yang disukai
ALTER TABLE Client
ADD prefNoRooms PRooms;
G. Drop Tabel
- DROP TABLE TableName[RESTRICT|CASCADE]
o Contoh : DROP TABLE PropertyForRent
- Menghapus nama tabel dan semua baris di dalamnya
o Gunakan DELETE FROM PropertyForRent untuk menghapus baris saja
- Dengan RESTRICT, jika terdapat objek yang eksistensinya tergantung pada
eksistensi pada tabel ini, SQL tidak mengijinkan permintaan
- Dengan CASCADE, SQL menghapus semua objek dependen
H. Views
- View: Hasil dinamis dari satu atau lebih operasi tabel pada relation dasar untuk
menghasilkan relation lain
- Relation tak nyata yang tidak sebenarnya tidak diperlukan keberadaannya di
database tetapi dihasilkan saat request, pada saat ada permintaan
- Konten sebuah view berdasarkan sebuah query pada satu atau lebih relation dasar
I. SQL-Membuat View
CREATE VIEW ViewName[(newColumnName[,…]) AS subselect
[WITH [CASCADED|LOCAL]CHECK OPTION]
- Contoh mengelompokkan dan menggabung View
Buatlah view staff yang mengatur PropertyForRent, termasuk no cabang mereka
bekerja, nomor staff dan property yang mereka
atur
CREATE VIEW StaffPropCnt(branchNo,
staffNo, cnt)
AS SELECT s.branchNo, s.staffNo,
COUNT(*)
FROM Staff s, PropertyForRent p
WHERE s.staffNo=p.staffNo
GROUP BY s.branchNo,s.staffNo;
Modul Jurusan Statistika Angkatan 57 Semester IV
Pengurus Angkatan STIS 57
Divisi Akademik
Nama kolom untuk COUNT (*) harus lebih spesifik
J. SQL-Drop View
DROP VIEW ViewName[RESTRICT|CASCADE]
- Menyebabkan view yang didefinisikan dihapus dari database
- Contoh DROP VIEW Manager3Staff
- Dengan CASCADE, semua objek yang berhubungan akan dihapus
- DENGAN RESTRICT(default), jika ada objek tergantung eksistensinya pada
objek lain, perintah ditolak
K. Resolusi View
- Ketika DBMS encounters sebuah referensi untuk sebuah view, satu cara adalah
melihat definisinya dan menerjemahkan permintaan menjadi permintaan yang
sesuai dengan tabel sumber dan melakukan permintaan yang sesuai. Proses
penggabungan ini disebut view resolution
- Hitung jumlah property yang diatur oleh setiap staff di cabang B003
SELECT staffNo,cnt
FROM StaffPropCnt
WHERE branchNo= ‘B003’
ORDER BY staffNo;
- View resolution menggabung query diatas dengan defining query dari
StaffPropCnt view sebagai dasarnya:
o Nama kolom pada view di daftar SELECT diterjemahkan menjadi
corresponding kolom di defining query:
SELECT s.staffNo AS staffNo, COUNT(*) AS cnt
o Nama view pada FROM akan diganti dengan daftar corresponding dari
FROM
FROM Staff s, PropertyForRent p
- WHERE dari pengguna mengkombinasi query dengan WHERE pada defining
query menggunakan AND
o WHERE s.staffNo=p.staffNo AND branchNo= ‘B003’;
- Klausa GROUP BY dan HAVING disalin dari defining query
o GROUP BY s.branchNo, s.staffNo
- ORDER BY disalin dari query dengan nama kolom view diterjemahkan menjadi
nama kolom defining query
o ORDER BY s.staffNo
- Hasil akhir dari penggabungan bisa dijalankan dan hasilnya sebagai berikut
SELECT s.staffNo AS staffNo, COUNT (*) AS cnt
FROM Staff s, PropertyForRent p
WHERE s.staffNo=p.staffNo AND branchNo= ‘B003’
GROUP BY s.branchNo, s.staffNo
ORDER BY s.staffNo
L. Keuntungan View
- Ketidaktergantungan data
- Currency
- Meningkatkan keamanan
- Mengurangi kekompleksan
- Bisa dirubah
- Integritas Data
M. Kerugian View
- Tidak bisa di update
- Batasan pada struktur
- Performa
N. View Materialization
- Mekanisme pada resolusi view mungkin lambat, tentunya jika view diakses
sering
- View Materialization disimpan pada view pada tabel sementara di database
ketika view pertama kali diqueri dan menjaga currency pada view…
Modul Jurusan Statistika Angkatan 57 Semester IV
Pengurus Angkatan STIS 57
Divisi Akademik
- Akibatnya, queri berdasarkan materialized vire lebih cepat daripada recomputing
view setiap kali
- Merupakan applikasi baru yang berguna, seperti gudang data, mereplika server,
visualisasi daa dan sistem mobile
- Kesulitannya adalah menjaga currency view ketika tabel dasar sedang diperbarui
- Proses memperbarui pada materialized view sebagai respon untuk menrubah
menjadi underlying data disebut View Maintenance
Komentar
Posting Komentar