dbsdnfsdjfbewofbwoifdsnvweo
TRANSCRIPT
-
7/26/2019 DBsdnfsdjfbewofbwoifdsnvweo
1/9
115
Lebih SQL: Pertanyaan Complex,
Pemicu, Views, dan
Skema odi!kasi
Tbab menjelaskan ftur yang lebih canggih dariStandar bahasa SQL untuk databases.We relasional
mulai di Bagian 5.1 dengan menghadirkan ftur yang lebih kompleks uery pencarianSQL!
seperti uery bersarang! bergabung tabel! luar bergabung! "ungsi agregat! danpengelompokan.
#alam Bagian 5.$! kita menggambarkan%&'(T')enegasanpernyataan! yangmemungkinkan
spesifkasi kendala umum lebih pada database.*ami juga memperkenalkan
konsep pemicu dan%&'(T'T&+,,'&pernyataan! yang akan disajikan dalam
lebih detail dalam Bagian $-.1 ketika kami menyajikan prinsipprinsip database akti".
*emudian! di Bagian 5./! kita menggambarkan "asilitas SQL untuk mendefnisikanpandangan tentang database.
Tampilan juga disebuttabel virtualatauberasalkarena mereka menyajikan penggunadengan
apa yang tampak sebagai meja0amun! in"ormasi dalam tabel tersebut berasal dari
sebelumnya didefnisikan tabel.Bagian 5.2 memperkenalkan pernyataanT(BL'SQL(LT'&!
yang digunakan untuk memodifkasi tabel database dan kendala.Bagian 5.5 adalah
&ingkasan bab.
Bab ini merupakan kelanjutan dari Bab 2. instruktur dapat mele3ati bagian ini
Bab jika pengenalan kurang rinci untuk SQL dimaksudkan.
5"1 Lebih #ompleks SQL $etrie%al Query
-
7/26/2019 DBsdnfsdjfbewofbwoifdsnvweo
2/9
)ada Bagian 2./! kita menggambarkan beberapa jenis dasar uery pencarian di SQL.*arena
keumuman dan kekuatan ekspresi" bahasa! ada banyak ftur tambahan
yang memungkinkan pengguna untuk menentukan retrie4als lebih kompleks daridatabase.We membahas
beberapa ftur tersebut di bagian ini.
5bab
-
7/26/2019 DBsdnfsdjfbewofbwoifdsnvweo
3/9
5.$ enentukan *endala sebagai )ernyataan dan (ctions sebagai )emicu1&1
5"' enentukan #endala seba(ai Pene(asan
dan )indakan seba(ai Pemicu
)ada bagian ini! kami memperkenalkan dua ftur tambahan SQL6C$*+)*Pene(asan
)ernyataan danC$*+)*)$--*$pernyataan.Bagian 5.$.1 membahas
'%+)T(*( )enegasan!yang dapat digunakan untuk menentukan jenis tambahankendala
yang berada di luar lingkupbuilt-in kendala model relasional7primer dan
kunci unik! integritas entitas! dan integritas re"erensial8 yang kita disajikan dalam Bagian
/.$.+ni builtin kendala dapat ditentukan dalam pernyataanC$*+)*)+.L*
SQL 7lihat Bagian 2.1 dan 2.$8.
*emudian dalam )asal 5.$.$ kami memperkenalkanC$*+)* )$--*$,yang dapatdigunakan untuk menentukan
tindakan otomatis yang sistem database akan tampil ketika peristi3a tertentu dan
kondisi terjadi.9enis "ungsi umumnya disebutdatabase akti/"
*ami hanya memperkenalkan dasardasarpemicudalam bab ini! dan menyajikan lebih
diskusi lengkap database akti" dalam Bagian $-.1.
5"'"1 #endala enentukan 0mum seba(ai Pene(asan di SQL
#alam SQL! pengguna dapat menentukan batasanorang umum yang tidak termasukdalam salah satu
kategori yang dijelaskan dalam Bagian 2.1 dan 2.$melaluipernyataan deklarati/,
menggunakan
)ernyataanC$*+)* Pene(asandari ##L tersebut.Setiap pernyataan diberikan kendala
nama dan ditetapkan melalui kondisi yang mirip dengan klausaW:'&'dari uery SQL.
isalnya! untuk menentukan kendalabahwa gaji seorang karyawan tidak harus
lebih besar dari gaji manajer departemen yang karyawan bekerja untukdi
SQL! kita dapat menulis pernyataan berikut6
*CP)+#+ Pene(asanS(L(&;
-
7/26/2019 DBsdnfsdjfbewofbwoifdsnvweo
4/9
)+$2 3)4+#ada 3S*L*C)>
4+$*(&;(W( '!*(&;(W( !
#')(&T'' #
++'.Salary?.Salary
4+'.#no@#.#number
4+#.gr
-
7/26/2019 DBsdnfsdjfbewofbwoifdsnvweo
5/9
5.3 Views (Tabel Virtual) di SQL
Pada bagian ini kami memperkenalkan konsep pandangan di SQL.We menunjukkan
bagaimana pandangan
ditentukan dan kemudian kita memba!as masala! memperbarui pandangan dan bagaimana
pandangan bisa
dilaksanakan ole! "#$S.
5.3.% &onsep dari View di SQL
Pandangan di SQL terminologi adala! satu tabel 'ang berasal dari tables. lainn'a ini
tabel lain dapat tabel dasar atau pandangan 'ang ditetapkan sebelumn'a. Pandangan tidak
tentu
ada dalam bentuk isik* itu dianggap sebua! meja +irtual berbeda dengan tabel dasar
'ang tupel selalu se,ara isik disimpan dalam database. -al ini membatasi kemungkinan
operasi update 'ang dapat diterapkan untuk dili!at tetapi tidak memberikan batasan
pada uer' tampilan.
&ami bisa memikirkan pandangan sebagai ,ara menentukan tabel 'ang kita perlu reerensisering
meskipun mungkin tidak ada se,ara isik. $isaln'a menga,u pada
"atabase P/01S2-22 di 4ambar 3.5 kita mungkin sering mengeluarkan permintaan
'ang mengambil
nama pegawai dan namanama pro'ek 'ang kar'awan bekerja pada. "aripada
!arus menentukan bergabung dari tiga tabel /$PL67// W60&S86 dan P067/&
setiap kali kita mengeluarkan uer' ini kita dapat mendeinisikan tampilan 'ang ditetapkan
sebagai !asil dari
ini bergabung. &emudian kita bisa mengeluarkan permintaan pada tampilan 'ang ditetapkan
sebagai singletable
retrie+als bukan sebagai retrie+als melibatkan dua bergabung pada tiga panggilan tables.We
/$PL67// W60&S86 dan tabel P069/:T tabel mendeinisikan tampilan.
5.3.; Spesiikasi Views di SQL
-
7/26/2019 DBsdnfsdjfbewofbwoifdsnvweo
6/9
"alam SQL perinta! untuk menentukan pandangan adala! :0/2T/ V
-
7/26/2019 DBsdnfsdjfbewofbwoifdsnvweo
7/9
tabel dasar yang mendasari.isalnya! permintaanQC1akan secara otomatis
dimodifkasi untuk uery berikut dengan #BS6
S*L*C)Aname!lname
4+$*(&;(W(! )&=;'*!W=&*S
-
7/26/2019 DBsdnfsdjfbewofbwoifdsnvweo
8/9
5.A Skema 4anti Laporan di SQL
Pada bagian ini kami memberikan gambaran tentang e+olusi skema perinta! 'ang tersedia di
SQL 'ang dapat digunakan untuk menguba! skema dengan menamba!kan atau menjatu!kantabel atribut
kendala dan elemen skema lainn'a. -al ini dapat dilakukan sambil database
operasional dan tidak memerlukan kompilasi ulang dari skema database. Tertentu
pemeriksaan !arus dilakukan ole! "#$S untuk memastikan ba!wa peruba!an tidak
mempengaru!i sisan'a
database dan membuatn'a tidak konsisten.
#ab 5 Lebi! SQL= Pertan'aan :ompleB Pemi,u Views dan Skema $odiikasi
5.A.% T!e "06P Perinta!
Perinta! "06P dapat digunakan untuk drop elemen skema bernama seperti tabel
domain atau kendala. Satu juga bisa drop skema. Sebagai ,onto! jika keseluru!an
skema tidak lagi diperlukan perinta! "06P skema dapat digunakan. 2da
dua pili!an perilaku penurunan= :2S:2"/ dan $/$#2T2S
-
7/26/2019 DBsdnfsdjfbewofbwoifdsnvweo
9/9
ingin mela,ak tanggungan kar'awan dalam database P/01S2-22 4ambar
A.% kita dapat men'ingkirkan !ubungan T/042T14 dengan mengeluarkan perinta!
berikut=
"06P T2#L/ :2S:2"/ T/042T14*
9ika $/$#2T2S< opsi dipili! bukan :2S:2"/ meja dijatu!kan !an'a jika
tidak dirujuk dalam setiap kendala (misaln'a dengan deinisi kun,i asing di
!ubungan lain) atau (li!at #agian 5.3) atau dengan unsurunsur lain. "engan
Pili!an :2S:2"/ semua seperti kendala pandangan dan unsurunsur lain 'ang reerensi
tabel 'ang dijatu!kan juga turun se,ara otomatis dari skema bersama dengan
tabel itu sendiri.
5.A.; T!e 2LT/0 :ommand
"einisi dari tabel dasar atau unsur skema lain bernama dapat diuba! dengan
menggunakan perinta! 2LT/0. 1ntuk tabel dasar mungkin tindakan meja alter termasuk
menamba!kan atau menjatu!kan kolom (atribut) menguba! deinisi kolom dan
menamba!kan
atau menjatu!kan kendala meja. $isaln'a untuk menamba!kan atribut untuk mela,ak
pekerjaan kar'awan untuk basis relasi /$PL67// dalam skema P/01S2-22 (li!at
4ambar A.%) kita dapat menggunakan perinta!
2LT/0 T2#L/ 2"" :6$P27./$PL67// &6L6$ Pekerjaan V20:-20 (%;)*
&ita !arus tetap memasukkan nilai untuk atribut 9ob baru untuk setiap indi+idu &2072W2
tupel. -al ini dapat dilakukan baik dengan menetapkan klausul standar atau dengan
menggunakan 1P"2T/