Diktat SBD Feb 2013
Diktat SBD Feb 2013
Diktat SBD Feb 2013
Basis data menjadi hal yang penting dewasa ini karena teknologi
informasi yang kian berkembang pesat. Dengan teknologi informasi yang
maju maka berbagai bidang terkomputerisasi dan dengan kondisi seperti ini
dibutuhkan basis data untuk mengelola semua data yang ada.
Penulis menyadari buku ini masih jauh dari sempurna namun kami
berharap pembaca akan mendapatkan manfaat dari buku ini. Pada akhirnya
kami mengucapkan terimakasih untuk semua yang telah berperan serta
dalam pembuatan buku ini.
Penulis
BAB 1
PENGANTAR BASIS DATA
pemakai
data
DBMS
Sistem Operasi
lunak
Perangkat keras
Basis
data
Gambar 1. Komponen sistem
basis data
1.3 Prinsip & Tujuan Sistem Basis Data
Basis data dan lemari arsip sesungguhnya memiliki prinsip kerja dan
tujuan yang sama. Prinsip utamanya adalah pengaturan data/arsip. Dan
tujuan utamanya adalah kemudahan dan kecepatan dalam pengambilan
kembali data/ arsip. Perbedaannya hanya terletak pada media penyimpanan
yang digunakan . Jika lemari arsip menggunakan lemari sebagai media
penyimpanannya, maka basis data menggunakan media penyimpanan
elektronis seperti disk.
Yang perlu diingat adalah bahwa tidak semua bentuk penyimpanan data
secara elektronis bisa disebut basis data. Yang sangat ditonjolkan dalam
basis data adalah pengaturan/pemilahan/pengelompokkan/pengorganisasian
data yang akan kita simpan sesuai fungsi/jenisnya. Pemilahan/
pengelompokan ini dapat berbentuk sejumlah file/ tabel terpisah atau dalam
bentuk pendefinisian kolom-kolom/field-field data dalam setiap file/tabel.
Tujuan dibangunnya basis data secara singkat yaitu untuk mengatur data
sehingga diperoleh kemudahan, ketepatan dan kecepatan dalam
pengambilan kembali. Selain itu dengan adanya basis data membuat user
mudah mendapatkan data, menyediakan tempat penyimpanan data yang
relevan, menghapus data yang berlebihan, melindungi data dari kerusakan
fisik, memungkinkan perkembangan lebih lanjut di dalam sistem database.
Perhatikan penjelasan yang lebih rinci di bawah ini.
Tujuan dibangunnya basis data adalah sebagai berikut :
Kecepatan & kemudahan (speed)
Dengan memanfaatkan basis data, memungkinkan kita untuk dapat
menyimpan data atau melakukan perubahan/ manipulasi terhadap
data atau menampilkan kembali data tersebut secara lebih cepat &
mudah.
Efisiensi ruang penyimpanan (space)
Karena keterkaitan yang erat antara kelompok data dalam sebuah
basis data,maka redundansi (pengulangan) pasti akan selalu ada,
sehingga akan memperbesar ruang penyimpanan. Dengan basis data,
efisiensi ruang penyimpanan dapat dilakukan dengan menerapkan
sejumlah pengkodean, atau dengan membuat relasi-relasi antar
kelompok data yang saling berhubungan.
Keakuratan (accuracy)
Pengkodean atau pembentukan relasi antar data bersama dengan
penerapan aturan/batasan (constraint), domain data, keunikan data,
dsb, yang secara ketat dapat diterapkan dalam sebuah basis data,
sangat berguna untuk menekan ketidak akuratan penyimpanan data.
Ketersediaan (availability)
Dengan pemanfaatan jaringan komputer, maka data yang berada di
suatu lokasi/cabang dapat juga diakses (tersedia/available) bagi
lokasi/cabang lain.
Kelengkapan (completeness)
Kelengkapan data yang disimpan dalam sebuah database bersifat
relatif, bisa jadi saat ini dianggap sudah lengkap, tetapi belum tentu
pada suatu saat dianggap lengkap.
Keamanan (security)
aspek keamanan dapat diterapkan dengan ketat, dengan begitu kita
dapat menentukan pemakai basis data serta obyek-obyek didalamnya
serta jenis-jenis operasi apa saja yang boleh dilakukannya.
Kebersamaan pemakaian (sharability)
Basis data yang dikelola dengan aplikasi multi user dapat memenuhi
kebutuhan ini.
Fungsi DBMS
Layanan-layanan yang sebaiknya disediakan oleh database management
system adalah :
Penyimpanan, pengambilan dan perubahan data
Sebuah DBMS harus menyediakan kemampuan menyimpan,
mengambil dan merubah data dalam basis data.
Katalog yang dapat diakses pemakai
Menyediakan sebuah katalog yang berisi deskripsi item data yang
disimpan dan diakses oleh pemakai.
Mendukung Transaksi
Menyediakan mekanisme yang akan menjamin semua perubahan yang
berhubungan dengan transaksi yang sudah ada atau yang akan dibuat.
Melayani kontrol concurrency
Sebuah DBMS harus menyediakan mekanisme yang menjamin basis
data ter-update secara benar pada saat beberapa pemakai melakukan
perubahan terhadap basis data yang sama secara bersamaan.
Melayani recovery
Menyediakan mekanisme untuk mengembalikan basis data ke keadaan
sebelum terjadinya kerusakan pada basis data tersebut.
Melayani autorisasi
Sebuah DBMS harus menyediakan mekanisme untuk menjamin bahwa
hanya pemakai yang berwenang saja yang dapat mengakses basis
data.
Mendukung komunikasi data
Sebuah DBMS harus mampu terintegrasi dengan software komunikasi.
Melayani integrity
Sebuah DBMS bertujuan untuk menjamin semua data dalam basis data
dan setiap terjadi perubahan data harus sesuai dengan aturan yang
berlaku.
Melayani data independence
Sebuah DBMS harus mencakup fasilitas untuk mendukung kemandirian
program dari struktur basis data yang sesungguhnya.
Melayani utility
Sebuah DBMS sebaiknya menyediakan kumpulan layanan utility.
menggambarkan atribut-
atribut entitas
menggambarkan hubungan
antara himpunan entitas
- Cardinality Ratio
Cardinality ratio adalah menjelaskan hubungan batasan jumlah
keterhubungan satu entitas dengan entitas lainnya atau
banyaknya entitas yang bersesuaian dengan entitas yang lain
melalui relationship.
Jenis cardinality ratio yaitu :
One to One (1:1)
Hubungan satu entitas dengan satu entitas
1 1
Warga Paspor
memili
negara
ki
One to Many (1:M) atau Many to One (M:1)
Hubungan satu entitas dengan banyak entitas atau banyak
entitas dengan satu entitas.
1 M
Tim basket Pemain
berisi
basket
- Derajat Relationship
Derajat relationship menyatakan jumlah entitas yang
berparrtisipasi di dalam suatu relationship.
Unary degree
Relasi yang terjadi dari sebuah himpunan entity ke
himpunan entity yang sama. Sering disebut sebagai
regulasi tunggal. Misalkan relasi yang terjadi pada pasien
dan sarat. Relasi ini menunjukkan adanya persyaratan
menjadi pasien rawat inap. Misalkan pasien hanya boleh
mengikuti rawat inap bila telah terdaftar menjadi pasien
rawat jalan.
Pasien Syarat
Binary degree
Relasi yang terjadi dari dua himpunan entity. Relasi ini paling
sering dan paling banyak digunakan. Contoh relasi biner
adalah relasi antara pasien dengan obat.
Mema
Pasien Obat
kai
Ternary degree
Relasi yang terjadi dari hubungan tiga buah entity. Contoh
relasi ini adalah hubungan antara pasien, tindakan dan
dokter.
Dilaku
Pasien Tindakan
kan
Dokter
N-nary degree
Relasi yang menghubungkan lebih dari tiga buah entity.
Dimasukkan dalam relasi multi entity. Bentuk relasi semacam
ini sedapat mungkin dihindari karena akan mengaburkan
derajat relasi yang ada dan juga akan menyebabkan desain
database yang semakin kompleks.
- Participation Constraint
Menjelaskan apakah keberadaan suatu entitas tergantung pada
hubungannya dengan entitas lain. Participation constraint terbagi
menjadi dua jenis yaitu :
Total Participation adalah keberadaan suatu entitas
tergantung pada hubungannya dengan entitas lain. Di dalam
diagram E-R digambarkan dengan dua garis penghubung
antar entitas dan relationship.
Partial Participation adalah keberadaan suatu entitas tidak
tergantung pada hubungan dengan entitas lain. Di dalam
diagram E-R di gambarkan dengan satu garis penghubung.
Nama_Mh Nm_Mk
s
Alamat_M SKS
hs
Jurusan Semester
M M Mata kuliah
Mahasiswa Mempelaj
ari
M
Diajar
Dosen
Kd_Dosen
Nm_Dose
n
Gambar 3. ERD
Semantic Model
Semantic model hamper sama dengan E-R model namun relasi
antar obyek ridak dinyakan dengan symbol namun dengan kata-
kata (semantic). Untuk lebih jelas dapat dilihat dalam gambar
berikut :
Karakteristik Relasi
Karakteristik dalam relasi merupakan dasar bagi penyusunan struktur
relasi yang akan digunakan sebelum penyimpanan data dapat dilakukan.
Karakteristik relasi tersebut yaitu:
Harus mempunyai nilai tunggal (single value) dan nilai yang tidak
dapat dibagi lagi (atomic value)
Semua elemen data harus mempunyai tipe dan ukuran sama
Masing-masing atribut dalam sebuah relasi mempunyai nama yang
unik
Dalam sebuah relasi tidak ada dua record data yang identik
Domain
Degree/Der
ajat
*) Primary Key
Integritas Referensial (referential integrity): Dalam suatu relasi
dalam basis data yang dihubungkan oleh kunci luar/kunci penghubung,
maka dalam relasi tersebut harus menjamin bahwa elemen data pada
Foreign key harus sama/sesuai dengan elemen data di relasi/table
lainnya dimana foreign key berfungsi sebagai primary key.
Contoh:
Tabel Mahasiswa
NPM *) Nama Jenis_Kela
min
200943500 Andi L
123
200943500 Beni L
234
200943500 Citra P
345
Foreign
Tabel KRS
Key
NPM Jumlah_Mat Jumlah_SKS
Kul
200943500 7 21
123
200943500 6 18
234
200943500 6 19
345
200943500 7 19
456
Varian Relasi
Relasi berfungsi sebagai penghubung antar entity. Entiti yang tidak
berelasi tidak hanya terdiri dari dua relasi saja. Tetapi entity bisa berelasi
dengan dirinya sendiri atau berelasi lebih dari dua entity. Relasi ini dapat
dikelompokan menurut varian sebagai berikut:
Tabel duplikasi
NPM KODE_MK NIlAI
200943500 MK_01 A
123
200943500 MK_04 B
234
200943500 MK_02 A
234
200943500 MK_02 A
345
200943500 MK_03 B
456
Kamus Data
Kamus data adalah suatu daftar data elemen yang terorganisir dengan
definisi yang tetap dan sesuai dengan sistem, sehingga user dan analis
sistem mempunyai pengertian yang sama tentang input, output, dan
komponen data strore.
Kamus data digunakan untuk:
Pada tahap analisis, sebagai alat komunikasi antara analis system
dengan pemakai system tentang data yang mengalir dalam system,
yaitu tentang data yang masuk ke system dan tentang informasi yang
dibutuhkan oleh pemakai system
Pada tahap perancangan system, digunakan untuk merancang input,
laporan-laporan database.
Kamus data berisi Nama arus data, alias, bentuk data, arus data,
penjelasan atau keterangan-keterangan, periode terjadinya transaksi,
volume arus data yang mengalir dalam periode tertentu, struktur data.
Berikut penjelasan lebih rinci mengenai elemen kamus data :
- Nama arus data: Karena kamus data dibuat berdasarkan arus data
yang mengalir di DAD, maka nama arus data juga harus dicatat di
kamus data.
- Alias: alias atau nama lain dari data dapat dituliskan bila nama ini ada.
Alias perlu ditulis karena data yang sama mempunyai nama yang
berbeda untuk orang atau departemen satu dengan yang lainnya.
Misalnya bagian pembuat faktur dan langganan menyebut bukti
penjualan.sebagai faktur, sedang bagian gudang menyebutnya
sebagai tembusan permintaan persediaan. Balk faktur dan
tembusan permintaan persediaan ini mempunyai struktur data yang
sama, tetapi mempunyai struktur yang berbeda.
- Bentuk data: bentuk dari data yang mengalir dapat berupa
dokumen dasar atau formulir, dokumen hasil cetakan komputer,
laporan tercetak, tampilan di layar monitor, variable, parameter,
field. Bentuk data perlu dicatat dalam kamus data karena dapat
digunakan untuk mengelompokkan kamus data ke dalam
kegunaannya sewaktu perancangan sistem. Kamus data yang
mencatat data yang mengalir dalam bentuk dokumen dasar atau
formulir akan digunakan untuk merancang bentuk input sistem.
Kamus data yang mencatat data yang mengalir dalam bentuk
laporan tercetak dan dokumen hasil cetakan komputer akan
digunakan untuk merancang output yang akan dihasilkan oleh
sistem. Kamus data yang mencatat data yang mengalir dalam
bentuk tampilan di layar monitor akan digunakan juga untuk
merancang tampilan layar yang akan dihasilkan oleh sistem. Kamus
data yang mencatat data yang mengalir dalam bentuk parameter
dan variabel akan digunakan untuk merancang proses dari program.
- Arus Data: menunjukkan darimana data mengalir dan kemana data
akan menuju. Keterangan arus data ini perlu dicatat di kamus data
supaya memudahkan mencari arus data di DFD (Data Flow
Diagram)
- Penjelasan: untuk lebih memperjelas arus data yang dicatat di
kamus data, maka bagian penjelasan dapat diisi dengan
keterangan-keterangan tentang arus data tersebut. Contoh : nama
dari arus data adalah TEMBUSAN PERMINTAAN PERSEDIAAN, maka
dapat lebih dijelaskan sebagai tembusan dari faktur penjualan
untuk meminta barang dari gudang.
- Periode: menunjukkan kapan terjadinya arus data ini Periode perlu
dicatat di KD karena dapat digunakan untuk mengidentifikasikan
kapan input data harus dimasukkan ke sistem, kapan proses dari
program harus dilakukan dan kapan laporan-laporan harus
dihasilkan.
- Volume: Volume yang perlu dicatat di kamus data adalah tentang
volume rata-rata dan volume puncak dari arus data. Volume rata-
rata menunjukkan banyaknya rata-rata arus data yang mengalir
dalam satu periode tertentu dan volume puncak menunjukkan
volume yang terbanyak. Volume ini digunakan untuk
mengidentifikasikan besarnya simpanan luar yang akan digunakan,
kapasitas dan jumlah dari alat input, alat pemroses dan alat output.
- Struktur Data: Struktur data menunjukkan arus data yang dicatat di
KD terdiri dari item-item data apa raja.
BAB 5
KETERGANTUNGAN FUNGSI
(FUNCTIONAL DEPENDENCIES)
A B (Bentuk
matematika)
Apakah A B?
t1(A) = t2(A), tetapi t1(B) t2(B)
maka A B
Apakah A C?
t1(A) = t2(A) dan t1(C) = t2(C)
maka A C
suatu ketergantungan fungsi X Y disebut trivia jika Y X
contoh :
XX
X, Y X
X, Y Y
X, Y, Z X, Z
X, Y, Z Z
X, Y, Z X, Y, Z
Aturan Amstrong pada ketergantungan fungsional
Reflexive, Jika Y X maka X Y
Augmentation, jika X Y, maka (X, Z) (Y, Z)
Transitive, jika X Y dan Y Z, maka X Z
Decompositon, jika X (Y, Z), maka X Y dan X Z
Union, jika X Y dan X Z maka X (Y, Z)
Pseudotranstivity, jika X Y dan (Z, Y) W, maka (X, Z) W
Contoh:
Diketahui skema relasi R=(A,B,C,D,E,F,G,H) didekomposisi menjadi :
R1=(A,B,C,D,G) dan R2=(B,D,E,F,H). Ketergantungan fungsi pada R yang
berlaku adalah :
(1)B A,G
(2)E D,H
(3)A E,C
(4)D F
Ujilah apakah dekomposisi {R1,R2} tersebut lossless atau lossy ?
1. Uji Dekomposisi
R1 R2 = (A,B,C,D,G) (B,D,E,F,H) = (A,B,C,D,E,F,G,H) = R
Maka terbukti bahwa {R1,R2} dekomposisi dari R
2. Uji loseless
R1 R2 = (A,B,C,D,G) (B,D,E,F,H) = (B,D)
Akan dibuktikan bahwa paling sedikit satu kondisi berikut dipenuhi :
R1 R2 R1 ; (B,D) (A,B,C,D,G) atau
R1 R2 R2 ; (B,D) (B,D,E,F,H)
Dari ketergantungan fungsi (1) B A,G maka
(5) B,D A,G,D (augmentasi)
(6) B,D B,D (reflexive)
Jadi
(7)B,D A,B,D,G
Ketergantungan fungsi (1) B A,G maka
(8)B A
(9)B G
Dari ketergantungan fungsi (3) A E,C maka
(10) A E dan
(11) AC
Dari ketergantungan fungsi (8) B A
Dan ketergantungan fungsi (11) A C maka
(12) B C (transitif)
Dan (13) B,D C,D (augmentasi)
Dari ketergantungan fungsi (7) dan (13)
B,D A,B,C,D,G
Maka terrbukti {R1, R2} lossless
Tahapan normalisasi :
Bentuk tidak
normal (Un-
..................Menghilangkan ketergantungan
parsial
Bentuk normal
pertama (2NF)
..................Menghilangkan ketergantungan
transitif
Bentuk normal
pertama (3NF)
fungsional
Bentuk normal
pertama (BCNF)
..................Menghilangkan anomali-anomali
tersisa
Bentuk normal
pertama (4NF)
6.2 Anomali / Penyimpangan
Anomaly adalah suatu kondisi dimana terjadi inkonsistensi data pada saat
dilakukan proses insert, update, dan delete.
Insertion Anomali
Penyimpangan yang terjadi akibat operasi insert record/tuple pada
sebuah relasi/table.
Sebuah Anomali Insert terjadi ketika atribut tertentu tidak dapat
dimasukkan ke dalam basis data tanpa kehadiran atribut lainnya.
Sebagai contoh kita tidak dapat menambahkan jenis kursus baru
jika tidak ada siswa yang mendaftar jenis kursus tersebut.
Kode_sisw Kode_kurs Nama_muri Alama Jenis_Kurs
a us d t us
S21 9201 Jimi Jakarta Akuntansi
S21 9267 Jimi Jakarta Bhs.Jepang
S24 9267 Sandi Bekasi Komputer
S30 9201 Riri Bogor Akuntansi
S30 9322 Riri Bogor Matematika
Update anomaly
Update anomaly terjadi ketika satu atau beberapa data yang bernilai
ganda diperbarui namun tidak semua. Sebagai contoh, jika kita
memperbarui alamat Jimi maka harus memperbarui semua alamat Jimi.
Kode_sisw Kode_kurs Nama_muri Alama Jenis_Kurs
a us d t us
S21 9201 Jimi Jakarta Akuntansi
S21 9267 Jimi Jakarta Bhs.Jepang
S24 9267 Sandi Bekasi Komputer
S30 9201 Riri Bogor Akuntansi
S30 9322 Riri Bogor Matematika
Delete anomaly
Delete anomaly terjadi ketika atribut tertentu hilang karena
penghapusan atribut lainnya. Sebagai contoh, jika Riri berhenti kursus
maka penghapusan atribut tersebut akan menyebabkan semua
informasi tentang kursus hilang.
Kode_sisw Kode_kurs Nama_muri Alama Jenis_Kurs
a us d t us
S21 9201 Jimi Jakarta Akuntansi
S21 9267 Jimi Jakarta Bhs.Jepang
S24 9267 Sandi Bekasi Komputer
S30 9201 Riri Bogor Akuntansi
S30 9322 Riri Bogor Matematika
Langkah 1 :
Ubah laporan ke dalam bentuk Unormalised Form (UNF). Buat kolom
untuk semua item dalam laporan kecuali calculated fields. Dalam hal
ini total staf dan rata-rata bayaran.
Masukkan data ke dalam tabel. (Dalam contoh ini data yang
dimasukkan termasuk dari laporan proyek yang lain).
Identifikasi field kunci untuk tabel dan garis bawahi.
Tabel Proyek
Kd_Proyek Nama_Proy Manajer_Pr Biaya
ek oyek Proyek
PC010 Sistem K Stanley 250.000.000
Pensiun
PC045 Sistem Gaji R Jef 200.000.000
PC064 Sistem HR B Curtis 150.000.000
Tabel Proyek_Staf
Kd_Proye Kd_Staf Nama_St Kd_Dept Nama_De Bayaran
k af pt per jam
PC010 S10001 L Abba L004 IT 22.000
PC010 S10030 A Willy L023 Pensiun 18.500
PC010 S21010 P David L004 IT 21.000
PC010 S00232 R Adit L003 Program 26.000
PC045 S10001 L Abba L004 IT 18.000
PC045 S31002 T Chris L028 Database 25.500
PC045 S10010 B Jones L004 IT 21.750
PC045 S13210 W Riki L008 Gaji 17.000
PC064 S10001 T Chris L028 Database 23.250
PC064 S10030 P David L004 IT 17.500
PC064 S21010 B Jamie L009 HR 16.500
Tabel Proyek
Kd_Proyek Nama_Proyek Manajer_Proy Biaya_Proyek
ek
PC010 Sistem Pensiun K Stanley 250.000.000
PC045 Sistem Gaji R Jef 200.000.000
PC064 Sistem HR B Curtis 150.000.000
Tabel Proyek_Staf
Kd_Proy Kd_Staf Bayaran_per
ek _jam
PC010 S10001 22.000
PC010 S10030 18.500
PC010 S21010 21.000
PC010 S00232 26.000
PC045 S10001 18.000
PC045 S31002 25.500
PC045 S10010 21.750
PC045 S13210 17.000
PC064 S10001 23.250
PC064 S10030 17.500
PC064 S21010 16.500
Tabel Staf_Dept
Kd_Sta Nama_St Kd_Dept Nama_De
f af pt
S10001 L Abba L004 IT
S10030 A Willy L023 Pensiun
6.5 Bentuk Normal
S21010 P David L004 IT Ketiga (3 NF/Third
S00232 R Adit L003 Program
S31002 T Chris L028 Database Normal Form)
S10010 B Jones L004 IT
Definisi Bentuk Normal
S13210 W Riki L008 Gaji
S21010 B Jamie L009 HR Ketiga (3 NF) adalah
memenuhi bentuk 2 NF (normal kedua). Menghilangkan atribut yang
memiliki dependensi transitif.
Pada tabel Proyek_Staf : Kd_Proyek, Kd_Staf Bayaran_per_jam.
Hal ini berarti bayaran_per_jam memiliki kebergantungan pada
kd_proyek dan Kd_staf.
Pada tabel staf_dept : Kd_Staf Nama_Staf. Kd_Dept Nama_Dept.
Tetapi Kd_Staf Nama_Dept yang berarti Nama_Dept tidak
bergantung langsung pada Kd_Staf. Hal ini menunjukkan Nama_Dept
memiliki dependensi transistif terhadap primary key.
Tabel Proyek_Staf
Kd_Proy Kd_Staf Bayaran per
ek jam
PC010 S10001 22.000
PC010 S10030 18.500
PC010 S21010 21.000
PC010 S00232 26.000
PC045 S10001 18.000
PC045 S31002 25.500
PC045 S10010 21.750
PC045 S13210 17.000
PC064 S10001 23.250
PC064 S10030 17.500
PC064 S21010 16.500
Tabel Staf_Dept
Kd_Sta Nama_Sta Kd_Dept
f f
S10001 L Abba L004
S10030 A Willy L023
S21010 P David L004
S00232 R Adit L003
S31002 T Chris L028
S10010 B Jones L004
S13210 W Riki L008
Tabel Departemen
Kd_Dept Nama_Dept
L004 IT
L023 Pensiun
L003 Program
L028 Database
L008 Gaji
L009 HR
Tabel Kursus_Instruktur
No_siswa Instruktur
110011 Benny
110012 Reddi
110013 Ade
110014 Reinhard
Dealer Distributor
Sumber rejeki Nissan
Sumber rejeki Toyota
Wijaya motor Toyota
Distributo Kendaraan
r
Nissan Grand livina
Nissan All new Nissan
serena
Toyota Avanza
Toyota Rush
Dealer Kendaraan
Sumber Rejeki Grand Livina
Sumber Rejeki Avanza
Sumber Rejeki All new Nissan
serena
Wijaya Motor Rush
BAB 7
ALJABAR RELASIONAL
7.1 Pengertian Aljabar Relasional
Bahasa yang dipakai pada model relasional disebut dengan bahasa query.
Bahasa Query adalah suatu bahasa yang menyediakan fasilitas bagi user
untuk mengakses informasi dari basis data. Pada umumnya level bahasa ini
lebih tinggi dari bahasa pemrograman standar. Bahasa query dapat
dikategorikan sebagai prosedural & non-prosedural.
Dalam bahasa prosedural, user menginstruksikan ke sistem agar
membentuk serangkaian operasi dalam basis data untuk mengeluarkan hasil
yang diinginkan. Dalam bahasa non-prosedural, user mendeskripsikan
informasi yang diinginkan tanpa memberikan prosedur detail untuk
menghasilkan informasi tersebut. Aljabar relasional merupakan bahasa query
prosedural, sedangkan kalkulus relasional tupel dan kalkulus relasional
domain adalah non-prosedural.
Aljabar relasional yaitu sekumpulan operasi yang digunakan untuk
melakukan proses manipulasi rangka untuk mendapatkan informasi yang
diperlukan dari database. Aljabar relasional menggunakan sebuah bahasa
query prosedural yang terdiri dari sekumpulan operasi dimana masukkannya
adalah satu atau dua relasi dan keluarannya adalah sebuah relasi baru
sebagai hasil dari operasi tersebut.
Operasi dalam aljabar relasional secara umum dibagi menjadi 2:
operasi yang dikembangkan secara khusus untuk database
relational. (SELECT, PROJECT dan JOIN)
operasi himpunan (UNION, INTERSECTION, SET DIFFERENCE, dan
CARTESIAN PRODUCT)
7.2 Notasi
Notasi untuk masing-masing operasi adalah seperti yang terlihat dalam
tabel dibawah ini :
gaji
5000000
7000000
SELECT no_id, Projectno_id,gaji no_id gaji
gaji FROM 1100123 5000000
(pegawai) 1100124 7000000
pegawai
no_id,gaji (pegawai) 1100125 5000000
7.4 Selection
Select digunakan untuk menampilkan baris/record dari sebuah relasi yang
sesuai dengan kondisi.
Notasi :
<kondisi pilihan> (<nama relasi>)
no_id>=1100
23
Note : operasi SELECT dalam aljabar relasional tidak ada
hubungannya dengan sintaks SELECT dalam SQL.
d_kode D
p_n p_na p_de d_ko d_nam
o ma pt de a
1 Bill A A Marketi
ng
2 Sarah C C Legal
3 John A A Marketi
ng
INTERSECTION: notasi R S
Relasi yang terdiri dari baris yang ada di R dan juga ada di S
Contoh : R = {1,2,3,4}
S = {3,4,5,6}
R S = {3,4}
DIFFERENCE: notasi R S
Relasi yang terdiri dari semua baris di R, tetapi tidak ada di S
Contoh : R = {1,2,3,4}
S = {3,4,5,6}
RS = {1,2}
CARTESIAN PRODUCT R X S
Relasi yang terdiri dari kombinasi baris yang terdapat di R dan S. Yang
mana setiap baris di R digabungkan dengan setiap baris di S
Contoh : R = {1,2,3,4}
S = {3,4,5,6}
R x S = { (1,3), (1,4), (1,5), (1,6), (2,3), (2,4), (2,5), (2,6),
(3,3), (3,4),(3,5), (3,6), (4,3), (4,4), (4,5), (4,6)}
Contoh Cartesian product menggunakan P untuk relasi pegawai dan D
untuk relasi departemen :
SQL Aljabar Hasil
Relasio
nal
p_no p_nama p_dep d_kod d_nama
SELECT * FROM PXD t e
1 Bill A A Marketing
P,D 1 Bill A B Sales
1 Bill A C Legal
2 Sarah C A Marketing
2 Sarah C B Sales
2 Sarah C C Legal
3 John A A Marketing
3 John A B Sales
3 John A C Legal
BAB 8
STRUCTURE QUERY LANGUAGE (SQL)
Contoh :
Dapatkan semua data mahasiswa
Untuk menampilkan seluruh field yang ada dalam tabel mahasiswa,
gunakan perintah P.(print) pada kolom relasi. Notasi ini sama seperti
SELECT* pada perintah SQL
Mahasisw NPM Nama Alamat Kota Jkel
a
P.
CONDITION
_x="Depok" AND _y="W"
Keterangan :
_x : tanda garis bawah menunjukan bahwa x variabel
Inconsistent analysis
Masalah terjadi saat satu transaksi membaca beberapa nilai tetapi
transaksi kedua pd waktu sama memodifikasi nilai tersebut.
Wakt T1 T2 X Y Z Jml
u
t1 begin_transac 100 50 25
tion
t2 begin_transac sum=0 100 50 25 0
tion
t3 read(x) read(x) 100 50 25 0
t4 x=x-10 sum=sum+x 100 50 25 100
t5 write(x) read(y) 90 50 25 100
t6 read(z) sum=sum+y 90 50 25 150
t7 z=z+10 90 50 25 150
t8 write(z) 90 50 35 150
t9 commit read(z) 90 50 35 150
t10 sum=sum+z 90 50 35 185
t11 Commit 90 50 35 185
Teknik pengontrolan konkurensi :
Locking
Apabila suatu transaksi mengakses suatu data maka suatu lock (kunci)
dapat mencegah pengaksesan oleh transasksi lain.
Timestamping
Timestamping merupakan suatu identitas waktu dimulainya suatu
transasksi. Timestamping mengatur prioritas transaksi berdasarkan
timestamp. Timestamp terkecil merupakan transaksi paling duluan,
jika terjadi konflik transaksi direstart.
Optimistic
Berasumsi bahwa konflik jarang terjadi sehingga proses tetap berjalan
& pengecekan dilakukan pada saat transaksi sudah di-commit. Jika ada
konflik transaksi direstart
11.2 Metode Locking
Metode lockingmerupakan prosedur untuk mengontrol pengaksesan data
secara konkuren. Apabila satu transaksi mengakses basis data, suatu lock
(kunci) akan menolak pengaksesan transaksi lain utk mencegah modifikasi
yg tidak benar.
Jenis kunci yang digunakan pada metode locking :
Kunci READ / S (digunakan bersama)
Jika transaksi mempunyai kunci read terhadap suatu data, maka dia
dapat melakukan operasi read tetapi tidak dapat melakukan operasi
update terhadap data tersebut.
Kunci WRITE / X (eksklusif)
Jika transaksi mempunyai kunci write terhadap suatu data, maka dia
dapat melakukan operasi read maupun operasi update terhadap data
tersebut.
Transaksi yg akan mengakses suatu data harus terlebih dahulu
menguncinya, meminta kunci S jika hanya melakukan read data saja atau
kunci X jika untuk melakukan operasi read & write. Jika data tsb belum
dikunci oleh transaksi apapun, maka kunci diperkenankan. Jika data tsb telah
dikunci, maka DBMS menentukan apakah kunci yg diminta sesuai dg yg ada.
Jika kunci read yg diminta sama dengan kunci read yg telah ada, maka
permintaan diperkenankan, selain itu maka transaksi harus menunggu (wait)
sampai kunci write dilepaskan. Transaksi terus menahan suatu kunci sampai
dilepaskan secara eksplisit selama eksekusi atau telah selesai.
Matriks Locking :
S X
S True False
X False False
11.4 Deadlock
Suatu situasi dimana dua atau lebih transaksi masing2 menunggu (wait)
suatu kunci yg ditahan oleh transaksi lain, untuk dilepaskan.
Teknik menangani deadlock
Deadlock prevention, DBMS mengamati transaksi apakah
menimbulkan deadlock & tidak akan membiarkan deadlock terjadi
Deadlock prevention and recovery, DBMS membiarkan terjadi
deadlock, mengenalinya lalu menanganinya.
Transaksi deadlock
Wakt T1 T2
u
t1 Begin_transaction
t2 Write_lock(X) Begin_transaction
t3 Read(X) Write_lock(Y)
t4 X=X-10 Read(Y)
t5 Write(X) Y=Y+100
t6 Write_lock(Y) Write(Y)
t7 Wait Write_lock(X)
t8 Wait Wait
t9 Wait Wait
t10 Wait
t11
11.5 Timestamp
Timestamp, merupakan suatu identifikasi unik dibuat DBMS yg
mengindikasikan waktu mulai relatif dari suatu transaksi. Dengan waktu
sistem atau penambahan pada kounter logik setiap waktu transaksi mulai.
Suatu protokol yg menyusun transaksi2 secara global, dimana transaksi yg
tertua, transaksi dg timestamp terkecil, mendapat prioritas utama dari
konflik transaksi tsb.
11.6 Optimistic
Berbasis pada asumsi bahwa pada lingkungan tertentu, jarang terjadi
konflik, sehingga lebih efisien membiarkan transaksi dieksekusi. Kemudian
pada saat akan di-commit, diidentifikasi apakah akan timbul konflik, jika ya
maka transaksi harus di rollback atau di proses ulang.
Kehilangan ketersediaan
Seperti no. 4 (point 1-4)
Ancaman bom
Menghadapi ancaman diperlukan pengontrolan secara fisik, prosedur
administratif atau keduanya.
Sintaks REVOKE :
REVOKE [GRANT OPTION FOR]
Operasi/ALL PRIVILEGES
ON objek FROM pemakai/PUBLIC
[RESTRICT/CASCADE];
Contoh :
GRANT ALL PRIVILEGES
ON PEGAWAI TO Manager
WITH GRANT OPTION;
GRANT SELECT,UPDATE(GAJI)
ON PEGAWAI TO admin;
GRANT SELECT
ON DIVISI TO Public;
REVOKE SELECT
ON DIVISI FROM Public;
VIEW
Merupakan hasil dinamik dari operasi relasional terhadap satu atau lebih
relasi untuk mendapatkan relasi lain.
Mekanisme view dapat menyajikan data relevan dengan pemakai,
sedangkan yang lain disembunyikan.
Sintaks pembuatan view :
CREATE VIEW namaview [kolom,]
AS subselet [WITH [CASCEDE/LOCAL] GRANT OPTION]
FROM namatabel;
Contoh pembuatan view diperuntukkan manager divisi 2 yang inggin mengakses
data pegawai di divisi 2 secara detail.
CREATE VIEW peg2
AS select FROM pegawai WHERE KdDiv=2;
CREATE VIEW peg3
AS select NIP,Nama,Alm FROM pegawai where KdDiv=3
WITH CHECK OPTION;
DROP VIEW peg3;
- Password
Verifikasi user dengan menggunakan suatu kata tertentu.
- Backing-up
Proses yang secara periodik mengcopy database dan journal ke dalam
media penyimpanan tertentu.
- Encryption
Pengcodingan data dengan algoritma khusus sehingga data tidak
dapat dibaca oleh program apapun tanpa adanya kunci deskripsi dan
data yang dikirim tidak dapat dibaca sebelum proses deskripsi.
- Journaling
Pembuatan journal dari semua perubahan database agar supaya
pemulihan dapat secara efektif dilakukan pada saat terjadi kegagalan
ataupun kesalahan.
Jurnal mungkin akan berisi data
- Record transaksi
identifikasi dari record
tipe dari record jurnal (transaksi start, insert, update, delete, abort,
commit)
item data sebelum perubahan (operasi update dan delete)
item data sesudah perubahan (operasi insert dan update)
informasi manajemen jurnal, seperti pointer sebelum dan record jurnal
selanjutnya untuk semua transaksi
1. Record checkpoint
- Checkpointing
Titik sinkronisasi antara database dan transaksi log file. Informasi
pada jurnal digunakan untuk pemulihan database dari kegagalan yang
dilakukan. Satu kesulitan dengan skema ini adalah ketika kegagalan
terjadi, tidak diketahui seberapa jauh jurnal untuk kembali mencarinya
dan berakhir dengan melakukan transaksi REDO. Untuk membatasi
pencarian dan pemrosesan secara teratur digunakan teknik
checkpoint/pos pemeriksaan.
- Integrity
Pengontrolan keintegritasan data untuk menjamin data tetap valid.