Unggul
Penulis
Tahun 2018
KATA PENGANTAR
Penulis,
DAFTAR ISI
Daftar Gambar
Daftar Tabel
Overview
Tujuan
Pada sebuah institusi, data merupakan salah satu hal yang sangat
penting. Setiap bagian/divisi dari institusi memiliki data sendiri-sendiri. Tapi
setiap bagian pun membutuhkan sebagian data dari bagian yang lain. Hal ini
yang biasa dikenal sebagai “shared data”. Setiap divisi memiliki aplikasi sendiri-
sendiri dalam melakukan manipulasi dan pengambilan data tersebut. Setiap
aplikasi memiliki file-file dalam sistem operasi yang digunakan untuk
menyimpan data-data. Seiring dengan berkembangnya institusi, bertambahnya
bagian/divisi, bertambah pula data dan aplikasi yang digunakan. Bertambahnya
aplikasi, bertambah pula file-file yang dibuat.
Gaya sistem pemrosesan-file tersebut menyebabkan setiap data
disimpan dalam bentuk record dalam berbagai macam file, dan diperlukan
aplikasi yang berbeda dalam melakukan pengambilan record dari, dan
penambahan record ke dalam file. Hal ini berlaku pada masa sebelum adanya
Sistem Basis Data (DBMS).
Masalah integritas.
Data yang disimpan harus memenuhi hal yang dinamakan dengan
consistency constraint. Jika sebuah constraint berubah, maka seluruh
aplikasi yang digunakan harus mengakomodasinya. Masalah akan
muncul, jika constraint melibatkan beberapa data dari file yang berbeda-
beda.
Masalah keamanan.
Tidak semua pengguna dari basis data dapat mengakses semua data.
Hal ini akan sulit dilakukan jika menggunakan gaya penyimpanan data
dalam file.
Pemakai
Aplikasi lain
Tujuan utama dari sistem basis data adalah untuk menyediakan fasilitas
untuk view data secara abstrak bagi penggunanya. Namun bagaimana sistem
menyimpan dan mengelola data tersebut, hanya diketahui oleh sistem itu
sendiri. Abstraksi data merupakan level dalam bagaimana melihat data dalam
sebuah sistem basis data. Berikut ini tiga level abstraksi data:
1. Level fisik
Merupakan level terendah pada abstraksi data yang menunjukkan
bagaimana sesungguhnya data disimpan. Pada level ini pemakai melihat
data sebagai gabungan dari struktur dan datanya sendiri.
2. Level lojik
Merupakan level berikutnya pada abstraksi data, menggambarkan data
apa yang disimpan pada basis data dan hubungan apa saja yang ada di
antara data tersebut.
3. Level view
Merupakan level tertinggi dari abstraksi data yang hanya menunjukkan
sebagian dari basis data. Banyak user dalam sistem basis data tidak akan
terlibat dengan semua data atau informasi yang ada atau yang disimpan.
Para user umumnya hanya membutuhkan sebagian data atau informasi
dalam basis data yang kemunculannya di mata user diatur oleh aplikasi
end user.
Network
Relationship dibuat menggunakan linked list (pointer). Berbeda dengan
model hierarchical satu anak dapat memiliki beberapa induk. Model
ini memiliki fleksibilitas yang tinggi.
Relational
Model ini direpresentasikan dalam tabel dua dimensi, tabel-tabel
tersebut memiliki hubungan yang disebut dengan relasi. Model ini
memiliki fleksibilitas dan kecepatan yang tinggi.
Object oriented
Object Oriented Databaseadalah sebuah sistem database yang
menggabungkan semua konsep object oriented seperti pewarisan,
abstraksi, enkapsulasi, dll. Model ini dapat berinteraksi dengan baik
dengan bahasa pemrograman berorientasi objek seperti java dan
C++.
Basis data relasional memiliki satu struktur “lojik” yang disebut Relation
(relasi). Struktur relasi merupakan strukture data 2-dimensi dan pada level
“fisik” berupa table (tabel). Attribute merepresentasikan elemen dari data
yang berkaitan dengan relasi. Sebagai contoh, relasi Mahasiswa memiliki
atribut-atribut seperti nim, nama, tempat lahir. tanggal_ lahir, dan alamat.
Nilai data dari atribut dari sebuah relasi akan disimpan dalam tuple
atau row (baris) dari tabel. Gambar dibawah merupakan ilustrasi dari sebuah
relasi.
Istilah ‘dunia nyata’ (real world) bermakna terhadap keseluruhan data yang
belum terstruktur yang secara nyata ada/terkait dalam lingkup sistem yang
sedang ditinjau. Dunia nyata disini bisa dikatakan sebagai sebuah domain
secara utuh/penuh maupun subdomain, sebagai contoh jika kita menganggap
suatu perusahaan sebagai suatu domain maka kita dapat menganggap unit-unit
yang ada dalam perusahaan tersebut adalah subdomain atau bisa saja sebuah
proses bisnis atau aktivitas yang ada di perusahaan tersebut juga bisa kita
anggap sebagai sebuah subdomain bahkan domain. Setiap dunia nyata (real
world) yang ada memiliki karakter yang tidak sama/unik. Sebagai contoh dunia
nyata bagi sistem perbankan pasti tidak sama dengan dunia nyata bagi sistem
rumah sakit. Pertanyaannya adalah apakah dunia nyata di bank yang satu
dengan bank yang lain pasti sama?
Secara umum ada dua tahapan proses perancangan basis data, yaitu :
Sasaran dari perancangan logika basis data adalah fleksibilitas model data yang
dihasilkan dan efisiensi pengimplementasiannya dalam komputer.
1. Pendekatan konvensional
Implementasi
Pembuatan melalui DBMS
Normalisasi
REAL Model Skema Basis
WORLD Data Basis Data
Model
Relasi Data
relasi
2. Pendekatan Entity-Relationship
3. Transaction control
Transaction control adalah bahasa basis data yang mengatur transaksi yang
dilakukan oleh Data Manipulation Language (DML). Transaction control ini
memiliki peran yang sangat besar untuk menentukan dilakukan atau
tidaknya perubahan-perubahan data yang ada pada basis data. Contoh dari
transaction control ini adalah perintah commit dan rollback.
Rangkuman
4. Teradapat tiga level abstraksi data yaitu dari yang paling dasar adalah level
fisik, level lojik, dan level view.
5. Basis data relasional memiliki satu struktur “lojik” yang disebut Relation
(relasi). Struktur relasi merupakan struktur data 2-dimensi dan pada level
“fisik” berupa table (tabel).
Pilihan Ganda
C. Network
8 Hal yang benar mengenai level view pada abstraksi data adalah…
Merupakan level terendah
A abstraksi D Berhubungan langsung dengan user
Dapat direpresentasikan dengan Salah satu level konseptual
B diagram ER. E abstraksi data
Berhubungan dengan indexing,
C fragmenting, dan crash recovery
Latihan
2 ENTITYRELATIONSHIP MODEL
Overview
Salah satu pemodelan basis data secara konseptual adalah pemodelan berbasis
relasi antar entitas. Pemodelan ini dikenal karena mudah dimengerti. Konsep
utama dari pemodelan ini berakar pada Entitas entitas dan relasi antar entitas.
Pada bab ini akan di bahas pengertian entitas, atribut dan relasi, derajat
himpunan relasi, kardinalitas relasi, serta pengenalan key sebagai salah satu
constraint dalam ER.
Tujuan
Entitas orang
Bambang
Susi
Sumarno
entitas orang
Mahasiswa
Himpunan entitas orang yang mempunyai kesamaan karakteristik yaitu nim, prodi,
dsb membentuk himpunan entitas ‘mahasiswa’
Atribut Entitas
Entitas 1
Entitas 2
Entitas 3
MAHASISWA
2.3 Atribut
Atribut merupakan gambaran karakteristik dari sebuah entitas atau
himpunan entitas. Contoh : atribut untuk himpunan entitas mahasiswa adalah
nim, nama, alamat, ipk, program studi,hobi, dsb.
Setiap atribut mempunyai domain value set yaitu batasan batasan yg
dibolehkan bagi suatu atribut.
Tipe – tipe atribut dapat dibedakan.
– Simple dan Composite
Atribut Simple yaitu suatu atribut yangtidak bisa dibagi menjadi
bagian yg lebih kecil lagi. Contoh atribut simple adalah Jenis Kelamin.
Atribut Compositeyaitu suatu atribut yangdapat di bagi menjadi
beberapa bagian. Contohatribut compositeNama dapat di bagi
menjadi nama depan dan nama belakang.
– Derived attribute
Derived Attribute yaitu suatu atribut yang nilainya didapatkan dari
hasil pengolahan atribut lain. Contoh atribut derivedadalah umur
yaitu didapatkan dari perhitungan tanggal lahir dan tanggal sekarang.
IPK yang didapatkan dari penjumlahan nilai di bagi dengan jumlah sks
yang diambil.
ipk
prodi
nama #nim
Mahasiswa
2.4 Relasi
ER menggambarkan entitas-entitas dengan atributnya yang saling
berelasi. Relasi menggambarkan hubungan antara entitas satu dengan entitas
yang lain sesuai dengan proses bisnisnya. Notasi relasi didalam diagram ER
digambarkan dengan notasi belah ketupat.
Perhatikan contoh relasi antara mahasiswa dengan organisasi berikut.
memp
Gambar 2-6 Relasi di gambarkan dengan belah ketupat
unyai
Gambar di atas menunjukkan hubungan antara entitas mahasiswa dan
entitas organisasi. Relasi yang terjadi adalah relasi mempunyai, dimana
mahasiwa mempunyai organisasi. Entitas mahasiwa memiliki atribut nim,
nama, alamat, prodi, ipk, dsb. Sedangkan entitas organisasi memiliki atribut
kd_organisasi, nama_organisasi, jenis_organisasi (* olahraga/kesenian/jurusan
dsb). 1 Mahasiswa bisa mempunyai 0 atau lebih organisasi pada semester
dan tahun ajaran tertentu. 1 Organisasi bisa di punyai 0 atau lebih
mahasiswa pada semester dan tahun ajaran tertentu. Kardinalitas relasi
adalah n ke n. Dampak dari kardinalitas n ke n ini, relasi menjadi atribut,
primary key dari entitas mahasiwa dan primary key dari entitas organisasi
masuk ke tabel relasi sebagai atribut. Atribut tambahan berupa semester
dan tahun ajaran merupakan atribut tambahan pada tabel relasi
Bambang
Organisai Pecinta Satwa
Sumarno
Mempunyai organisasi Pecinta Satwa
Di semester 1 tahun ajaran 2008/2009
Satu ke Satu
Satu ke Banyak
2.7 Key
Penggunaan key merupakan cara untuk membedakan suatu entitas
didalam himpunan entitas dengan entitas lain. Key dipilih karena unik, untuk
setiap entitas sehingga bisa di bedakan dari entitas yang lain. Kita bisa
mendefinisikan key sebagai satu atau gabungan dari beberapa atribut
yang dapat membedakan semua row dalam relasi secara unik.
Macam key ada 3 yaitu :
Superkey
Superkey yaitu satu atau lebih atribut (kumpulan atribut) yang
dapat membedakan satiap baris data dalam sebuah relasi
secara unik. Contoh super key yaitu =
• Nim, nama, alamat, kota
• Nim, nama, alamat
• Nim, nama
• Nim
Candidate key
Kumpulan atribut minimal yang dapat membedakan setiap
baris data dalam sebuah relasi secara unik. Contoh Nim
Primary key
Primary key merupakan salah satu dari candidate key yang
terpilih. Alasan pemilihan primary key :
• Lebih sering di jadikan acuan
• Lebih ringkas
• Jaminan keunikan key lebih baik
Contoh dari primary key adalah Nim
2.8 Diagram ER
Merupakan diagram model konseptual untuk menggambarkan struktur
logis dari basisdata berbasis grafis.
#kd_org
nama kota nama
#nim
Mahasiswa Organisasi
alamat mem
prodipuny
ipk jenis
umur aime
mpun
yai ER
Gambar 2-15 Contoh Diagram
#kd_org
nama kota nama
#nim
Mahasiswa Organisasi
alamat mem
prodipuny
ipk jenis
umur aime
mpun1 ke 1
Gambar 2-16Relasi
yai
1 Mahasiswa hanya boleh menjabat 1 jabatandalam 1 periode tertentu.
1 Jabatan hanya boleh di jabat oleh 1 mahasiswadalam 1 periode tertentu.
#kd_org
nama kota nama
#nim
Mahasiswa Organisasi
alamat mem
prodipuny
ipk jenis
umur aime
mpun
Gambar 2-17Relasi 1 ke banyak
yai
1 Jabatan hanya boleh dijabat oleh 1 mahasiswadalam 1 periode
tertentu dan 1 organisasi tertentu.
1 Mahasiswa boleh menjabat 1 jabatandalam1 periode tertentu di
organisasi yang berbeda.
#kd_org
nama kota nama
#nim
Mahasiswa Organisasi
alamat mem
prodipuny
ipk jenis
umur aime
mpun
Gambar 2-18Relasi Banyak ke 1
yai
32 Perancangan Basis data
Universitas Esa Perancangan Basis Data Relasional
Unggul
#kd_org
nama kota nama
#nim
Mahasiswa Organisasi
alamat mem
prodipuny
ipk jenis
umur aime
Gambar 2-19Relasi mpun
Banyak ke Banyak
yai
1 Mahasiswa boleh mengambil banyak mata kuliah
1 Mata kuliah boleh diambil banyak mahasiwa
Rangkuman
Pilihan Ganda
Berikut ini merupakan domain value set bagi sebuah atribut didalam konse
3. EntityRelationship, kecuali _________
A. Simple D. Multivalued
B. Composit E. Surrogate key
C. Single value
Dibawah ini merupakan alasan yang benar tentang makna Atribut
4. deskriptif ________
Muncul hanya jika 2 entitas
A. bertemu di sebuah relasi D. Atribut yang dipercaya sebagai key
B. Dibolehkan di konsep ER E. Pernyataan di atas salah semua
Atribut yang di turunkan dari
C. atribut lain
5.
Pada gambar di atas, derajat himpunan relasinya adalah ________
A. Unary D. Four-ary
B. Binary E. Tidak ada jawaban yang benar
C. Ternary
Latihan
3 KONVERSI ER KE TABEL
Overview
Tujuan
Nama penerima
#nip tunjangan
Nomor
nama
penerima
Pegawai tunjangan
Tunjangan
3.2 Spesialisasi
Spesialisasi merupakan proses desain top-down dengan mendesain
subgrouping didalam didalam himpunan entitas yang berbeda dari himpunan
entitas. Tujuan dari spesialisasi adalah memberikan gambaran konseptual
tentang perbedaan karakteristik dari himpunan entitas yang hampir serupa
dengan konsep sub grouping / pengelompokan.
Subgrouping di atas menjadi himpunan entias yang levelnya lebih
rendah dan memiliki atribut tersendiri yang tidak dimiliki pada level di
atasnya. Atribut ini khas dan merupakan pembeda dari entitas di subgroup
yang lain. IS Adinotasikan dengan gambar segitiga berlabel IS A.
Sifat dari spesialisasi adalah inheritan atribut yaitu atribut pada
level tinggi secara otomatis akan di turunkan pada level di bawahnya.
nama #Id_pegawai
Pegawai
3.3 Generalisasi
Generalisasi merupakan proses desain bottom-up dengan
mengkombinasikan jumlah himpunan entitas yang digunakan secara bersama
sama. Spesialisasi dan generalisasi sama sama digambarkan dengan notasi IS A,
yang membedakan adalah sudut pandangnya saja. Jika Spesialisasi kita
mendefinisikan entitas secara umum kemudian mencari subgroup dari entitas
tersebut, tetapi generalisasi memandang sebaliknya, dari adanya
subgroupsubgroup yang berbeda kemudian di cari entitas umum yang mewakili
2 himpunan entitas tersebut.
3.4 Agregasi
Agregasi adalah enkapsulasi dari entitas entitas yang berelasi (*n-n).
Pada umumnya terbentuk dari kardinalitas relasi banyak ke banyak. Didalam
konsep agregasi terdapat istilah enkapsulasi relasi dari kedua entitas.
Enkapsulasi di perlukan karena kedua himpunan entitas yang ber-relasi
tersebut merupakan 1 kesatuan yang tidak bisa di pisah. Notasi agregasi di
1 ke banyak / banyak ke 1
Primary key pada Tabel berkardinalitas sedikit menjadi foreign key
pada tabel berkardinalitas banyak.
Banyak ke banyak
Sudah jelas di atas
Pendekatan 2
– Bentuklah tabel untuk tiap himpunan entitas dengan semua atribut
lokal dan turunan.
– Bisa jadi tabel pada level tinggi tidak perlu di simpan jika spesialisasi
adalah total. Jika diperlukan bisa dibuat view yang menggabungkan
tabel-tabel spesialisasi.
Rangkuman
Pilihan Ganda
1.
kardinalitas relasinya adalah________
A. Banyak ke Banyak D. Banyak ke Banyak
B. 1 ke 1 E. Salah semua
C. 1 ke Banyak
4.
Banyak tabel yang bisa di hasilkan dari relasi di soal nomor 4 di atas adalah
5. _________
A. 3 Tabel D. 6 Tabel
B. 4 Tabel E. 7 Tabel
C. 5 Tabel
6
A. Himpunan Entitas D. Relasi
B. Himpunan Entitas Lemah E. Atribut
C. Himpunan Entitas Kuat
Banyak tabel yang bisa di hasilkan dari relasi di soal nomor 4 di atas adalah
7. _________
A. 3 Tabel
B. 4 Tabel E. 7 Tabel
C. 5 Tabel
C Network
Latihan
4 NORMALISASI
Overview
Tujuan
Tabel di atas adalah contoh tabel yang memiliki desain yang kurang baik.
Perhatikan bahwa jika kita ingin meng-update jumlah sks mata kuliah
English dari 2 menjadi 3 sks, maka kita harus mengupdate lebih dari 1
record, yaitu baris 2 dan 4.
Jika hanya salah satu baris saja yang di-update, maka data menjadi tidak
konsisten (ada mata kuliah English dengan 2 sks dan ada mata kuliah
English dengan 3 sks) . Kondisi seperti inilah yang disebut dengan update
anomaly.
Pada tabel yang sama seperti contoh di atas, terjadi pula insertion anomaly.
Misalkan terdapat mahasiswa baru dengan nim 1-02 bernama ‘Zubaedah’
dengan kode jurusan ‘TE’ dan nama jurusan ‘Elektro’.
Data mahasiswa tersebut tidak dapat dimasukkan ke dalam tabel sebab
dia belum mengambil kuliah apapun (misalnya karena belum melakukan
registrasi). Kondisi inilah yang disebut dengan insertion anomaly.
Pada contoh tabel di atas terjadi deletion anomaly. Perhatikan bahwa jika
kita menghapus data mahasiswa bernama ‘Maemunah’ maka kita harus
menghapus data pada baris ke 5, hal ini akan mengakibatkan kita juga
kehilangan data mata kuliah ‘Database’. Kondisi inilah yang disebut dengan
deletion anomaly.
2. (nama_mk)
Demikian pula dengan nama_mk, masing-masing baris data memiliki
nama_mk yang unik. Tidak ada satupun baris data yang memiliki kolom
nama_mk dengan nilai yang sama persis.
3. (kode_mk,nama_mk,semester)
Walaupun beberapa baris data memiliki kolom semester dengan nilai
yang sama (misalnya baris 1&4, baris 2&3) namun tidak ada satupun
baris data yang memiliki kombinasi kode_mk, nama_mk dan semester
yang sama persis.
4. (kode_mk,nama_mk, sks)
Kombinasi kode_mk, nama_mk dan sks juga digolongkan sebagai
super key dengan alasan yang kurang lebih sama dengan poin 3.
5. (kode_mk,nama_mk, semester, jml_temu)
Kombinasi kode_mk, nama_mk, semester dan jml_temu juga
digolongkan sebagai super key dengan alasan yang kurang lebih sama
dengan poin 3 dan 4.
Sedangkan yang bukan super key adalah:
1. (sks)
Perhatikan bahwa kolom sks tidak bisa membedakan baris data secara
unik, contohnya baris data 2,3, 4 dan 6 sama-sama memiliki kolom sks
bernilai 3.
2. (semester)
Kolom semester juga tidak bersifat unik, contohnya baris data 1 dan 4
sama-sama memiliki kolom semester bernilai 2
3. (semester, sks)
Kombinasi semester dan sks juga tidak membedakan tiap baris data
secara unik, contohnya baris data ke 2 dan 3 sama-sama memiliki kolom
semester bernilai 1 dan sama-sama memiliki kolom sks bernilai 3
Candidate key dari tabel mata_kuliah dipilih dari super key yang sudah ada.
Super key yang akan menjadi candidate key adalah super key yang tidak
mengandung super key lain di dalamnya.
Perhatikan 5 super key yang sudah kita peroleh dari analisis sebelumnya:
1. (kode_mk)
2. (nama_mk)
3. (kode_mk,nama_mk,semester)
4. (kode_mk,nama_mk, sks)
5. (kode_mk,nama_mk, semester, jml_temu)
Super key yang hanya teridiri dari satu atribut data pasti akan menjadi
candidate key sebab tidak mungkin mengandung super key yang lain. Oleh
karena itu super key pada poin 1 dan 2 otomatis menjadi candidate key.
Super key pada poin 3 tidak menjadi candidate key sebab dalam kombinasi
(kode_mk, nama_mk, semester) terdapat super key yang lain yaitu
(kode_mk). Dengan demikian, poin 4 dan 5 juga bukan candidate key.
Dari analisis ini, kita memperoleh 2 buah candidate key yaitu
(kode_mk) dan (nama_mk). Salah satu dari beberapa candidate key ini akan
dipilih untuk digunakan dalam DBMS sebagai primary key. Ada beberapa
pertimbangan untuk memilih primary key, di antaranya adalah jaminan
keunikan yang lebih kuat, representasi yang lebih baik dan lain-lain.
Dengan kata lain jika (B,C) adalah candidate key dan B A maka A
bergantung secara parsial terhadap (B,C) atau (B,C) menentukan A
secara parsial.
Untuk lebih jelasnya perhatikan tabel berikut ini:
Tabel 4-6Tabel Nilai
NIM Nama_Mhs Kode_MK Nilai
1-01 Tukimin TE-001 A
1-01 Tukimin DU-001 A
2-01 Jamilah IF-001 B
2-01 Jamilah DU-001 C
2-02 Maemunah IF-002 A
Tabel T versi pertama ini memiliki 2 atribut dengan domain yang sama yaitu
kolom telp_1 dan telp_2. Hal ini menunjukkan bahwa tabel T versi pertama
ini belum memenuhi syarat 1st NF.
Tabel T versi ke dua ini juga belum memenuhi sayarat 1 st NF karena kolom
telepon bersifat multivalue.
Perhatikan bahwa:
1. (nim, kode_mk) adalah candidate key
2. FD1: (nim) (nama_mhs, kd_jur, nama_jur)
3. FD2: (kode_mk) (nama_mk, sks)
4. FD3: (nim,kode_mk) nilai
Walaupun tabel T-1 telah memenuhi syarat 1st NF namun karena terjadi
partial functional dependency maka tabel T-1 belum memenuhi syarat 2nd NF.
Solusinya adalah dengan melakukan dekomposisi terhadap tabel T-1
dengan tetap menjaga agar datanya tetap konsisten. Hal ini dapat dilakukan
dengan melakukan dekomposisi tabel sesuai FD1, FD2 dan FD3 yang telah
kita analisis sebelumnya. Adapun hasil dekomposisi dari tabel T-1 adalah 3
tabel berikut ini:
Tabel 4-13Contoh Tabel T-1-1
NIM Nama_Mhs Kd_Jur Nama_Jur
1-01 Tukimin TE Elektro
2-01 Jamilah IF Informatika
2-02 Maemunah IF Informatika
Perhatikan bahwa:
FD1: (nim) (nama_mhs, kd_jur, nama_jur)
FD2: (kd_jur) (nama_jur)
• Memenuhi 3rd NF
Desain tabel yang tidak memenuhi syarat 3rd NF sudah pasti tidak akan
memenuhi syarat BCNF
• Untuk semua FD yang terdapat di tabel, ruas kiri dari FD
tersebut adalah super key
Jika ada satu saja FD pada tabel dimana ruas kirinya bukan super key maka
desain tabel tersebut belum memenuhi syarat BCNF. Solusinya adalah
dengan melakukan dekomposisi tabel dan tetap mempertahankan
konsistensi data seperti beberapa contoh pada sub bab sebelumnya
4.6 Denormalisasi
Denormalisasi adalah proses menggandakan data secara sengaja
(sehingga menyebabkan redundansi data) untuk meningkatkan performa
database, untuk meningkatkan kecepatan akses data atau memperkecil
query cost.
Rangkuman
Pilihan Ganda
77
Perancangan Basis Data Relasional
5 ALJABAR RELASIONAL
Overview
Tujuan
Dalam bab ini akan dibahas Bahasa Query prosedural, bahasa ini
memilikisejumlah operasi yang menggunakan satu atau beberapa relasi/tabel
sebagai inputan dan menghasilkan sebuah relasi/tabel sebagai outputnya.
Aljabar Relational sebagai dasar dari bahasa ini merupakan suatu kumpulan
operasi terhadap relasi dimana setiap operasi menggunakan satu atau lebih
relasi untuk menghasilkan suatu relasi yang baru. Operasi-operasi dasar dalam
Aljabar Relational sendiri dibagi menjadi 2 (dua) yaitu Unary dan Binary.
Operasi Unary adalah operasi yang hanya memerlukan satu operasi saja. Yang
termasuk didalamnya adalah Select,Project dan Rename. Sedangkan operasi-
operasi yang membutuhkan lebih dari satu relasi (sepasang relasi atau lebih)
disebut Binary,contohnya adalah Unio, Set Difference, Cartessian Product.
T_kuliah
kode_mk mata_kuliah sks semester
IS_001 Database 3 3
IS_002 Aljabar_Relational 2 3
CA_003 Calculus 3 1
CE_007 Citizenship 2 2
T_Dosen
Kd_dosen Nama_dosen Alamat Tgl_lahir
KML Komala Ratna Bandung N0.1 12-12-1984
HRA Henry Rossi Jakarta No.37 11-11-1983
HNP Hanung Jakarta No.57 10-10-1980
DAN Dahliar Ananda Surabaya 90 9-9-1982
T_ mahasiswa
NIM Nama Tempat_lahir Tgl_Lahir
3010001 Ahmad Jakarta 3-3-1989
3010003 Nita Surabaya 4-4-1988
3010054 Richard Medan 1-1-1990
3010066 Amelia Jakarta 2-2-1990
T_nilai
Kode_mk NIM Indeks
IS_001 3010001 A
IS_002 3010003 A
CA_003 3010003 C
CE_007 3010054 B
Operasi Project
dimana s atau daftar atribut yang berisi satu atau lebih field yang ingin
ditampilkan dari E1.
Sehingga jika kita ingin menghasilkan tampilan yang berisi data NIM dan
Nama_mahasiswa maka query-nya adalah sebagai berikut,
π<NIM,Nama_mahasiswa > (mahasiswa)
Sebagai catatan, operasi yang dapat diprojeksikan bukan hanya dari tabel
tetapi bisa juga dari suatu operasi/query.
Sebagai contoh, saat akan menampilkan hasil dari tabel kuliah dan tabel nilai
yang mendapatkan indeks “A”, maka operasinya dapat kita tuliskan sebagai
berikut:
Pada dasarnya untuk melihat adanya satu keterhubungan antara satu tabel
dengan tabel yang lainnya adalah ditandai dengan adanya satu field yang sama.
Misal antara t_kuliah dan t_nilai (tabel kuliah dan tabel nilai) sama-sama
memiliki field kode_mk.
Jika ingin menampilkan hasil dari suatu query dimana tidak ada relasi langsung
antar tabel-tabel yang terkait (tidak ada field yang sama) maka bisa kita
libatkan tabel lain yang memiliki keterhubungan antara tabel tersebut. Contoh
untuk menghasilkan list mahasiswa yang mengambil mata kuliah IS_001.
Tabel kuliah dan tabel mahasiswa tidak memiliki keterhubungan secara
langsung tetapi keterhubungannya dapat kita lihat dari tabel nilai. Sehingga kita
bisa membuat suatu query seperti dibawah ini:
Dari contoh diatas dapat terlihat bahwa Operasi Cartesian Product tidak
berdiri sendiri tetapi melibatkan operasi-operasi yang lainnya untuk
mendapatkan hasil query yang kita inginkan.
T1 UT2
Sehingga jika kita ingin memproyeksikan kedua tabel diatas maka kita bisa
menggunakan operasi Unio dengan bentuk sebagai berikut :
Πtempat_lahir(t_dosen)U Πtempat_lahir(t_mahasiswa)
2. Field dari T1 dan field dari T2 harus bersala dari domain yang
sama.
T1 – T2
Dapat dikatakan juga bahwa operasi adalah operasi terhadap relasi yang
terdiri dari semua baris di T1, tetapi tidak ada di T2. Operasi ini juga memiliki
syarat yang sama dengan operasi Unio yaitu harus UnioCompatible.
T_kuliah_MI
Kode_mk Mata_kuliah SKS Semester
MI_002 Kalkulus 3 1
MI_002 Aljabar Linear 2 2
CA_001 Database 4 2
CE_003 Java 3 3
T_kuliah_TK
Kode_mk Mata_kuliah SKS Semester
MI_002 Kalkulus 3 1
MI_002 Aljabar Linear 2 2
TK_001 English 2 2 2
CE_007 Software 3 3
Πmata_kuliah(t_kuliah_MI)–mata_kuliah(t_kuliah_TK)
Mata_kuliah
Database
Java
Dari contoh diatas didapatkan bahwa operasi ini akan menemukan tuple-tuple
yang berada pada satu relasi tetapi tidak berada pada relasi yang Lainnya
T1 T2
Selain simbol diatas dapat disimbolkan juga dengan bentuk set difference
seperti dibawah ini :
T1 – (T1-T2)
T1T2 menghasilkan suatu relasi yang berisi instan – instan yang terjadi baik
pada T1 dan T2. Relasi T1 dan T2 harus Unio – Compatible.
( R(( F ), ( E )))
Dimana R = Relasi, F = Daftar Renaming, E = Aljabar Relasional
5.9 Join
R |x|<kondisi join> S
Operator pembandinganyang digunakan dalam operasi join yaitu {=, <, ≤, >,
≥, ≠}
Operasi join sendiri memiliki beberapa tipe lagi, untuk yang pertama adalah
Naturaljoin dimana NaturalJOIN menghubungkan tabel dengan memilih hanya
record dengan nilai yang digunakan bersama-sama pada atribut yang sama.
Operator ini akan menghasilkan tiga tahapan proses:
PRODUCT
SELECT
PROJECT
Operasi join yang lain adalah EquiJOIN menghubungkan tabel didasarkan pada
kondisi yang sama dengan memban-dingkan kolom tertentu setiap tabel. Hasil
equiJOIN tidak menghilangkan kolom dupli-kat dan kondisi atau kriteria
penggabungan tabel harus terdefinisi secara eksplisit.
Pada OuterJOIN pasangan data yang tidak cocok akan tetap dipertahankan dan
nilai untuk tabel lainnya yang tidak cocok akan dibiarkan kosong.Outerjoin
sendiri terdiri dari tiga jenis, yaitu leftouterjoin, rightouterjoin, dan fullouterjoin.
dan rightouterjoin. Dimana operasi ini akan menghasilkan semua baris data di
kedua tabel/hasil query yang memiliki relasi ataupun tidak.
Untuk fungsi yang terakhir yaitu fungsi count terdapat perluasan dalam fungsi
tersebut yaitu yang diberi nama Count_distict. Fungsi Count_distict akan
menghitung nilai atribut yang unik.
A B B
a1 b1 b1
a2 b1 b2
a2 b2
a3 b2
B (B = b1 (T1)) A, B (T1) / B (T1)
A
B
a2
b1
a1
a2
Rangkuman
Pilihan Ganda
Latihan
Overview
Tujuan
6.1 Pendahuluan
Relational Database Management System(RDBMS) seperti Oracle,
Microsoft SQL Server, ProstGreSQL dan MySQL merupakan komponen
utama dalam dalam sebuah sistem informasi saat ini bahkan untuk sistem-
sistem yang berbasis intranet dan internet
2. Transact SQL
Dialek yang dikembangkan oleh Microsoft yang membuat sebuah
produk DBMS yang diberi nama Microsoft SQL Server. Transact
SQL ini merupakan hasil kerjasama dengan Sybase Adaptive
Server.
3. PL/PgSQL
Seperti juga pada Oracle, PostgreSQL mengembangkan bahasa
procedural tersendiri yang lebih jauh berkembang sehingga
memungkinkan untuk mengakomodasi ObjectOrientedDatabase
Management System
Mahasiswa
Contoh lain akan dibuat tabel kurikulum yang mempunyai primary key
KodeMK dan KodeKur.
KodeMK KodeJur MamaMK
Sks
Status
Kurikulum
Kalau tadi sudah dibentuk satu tabel dengan primary key, berikut akan
dibentuk tabel yang mempunyai Foreign key. Sebagai contoh akan dibuat tabel
Jurusan dan tabel mahasiswa sebagai berikut:
KodeJur
Mahasiswa
Memilih
Jurusan
KodeJur NamaJur
Gambar 6-3 Entitas Mahasiswa dan Jurusan
Tabel Mahasiswa
Nim Nama Alamat KodeJur
Tabel Jurusan
KodeJur NamaJur
Gambar 6-4 Relasi Tabel Mahasiswa dan Tabel Jurusan
Jenis Data
Tabel 6-5Jenis Data pada Oracle
Tipe Data Keterangan
BOOLEAN Data lojikal dengan nilai TRUE atau FALSE.
DATE mulai 1 Januari 4712 SM sampai dengan 31
Desember 9999.
NUMBER [(p [,s])] Tipe data numerik dengan p angka penting dan
sejumlah s angka penting di belakang koma.
Nilai p adalah integer dengan nilai maksimal 38
dan nilai s berada pada rentang -84 sampai
dengan 127. Nilai s negatif berarti pembulatan
sampai dengan 10s terdekat.
FLOAT Turunan dari NUMBER. Presisi sampai dengan
38 digit.
DOUBLE PRECISION Sama dengan FLOAT.
REAL Turunan dari number. Presisi sampai dengan 18
digit.
DEC [(p [,s])] Sama dengan NUMBER [(p [,s])].
DECIMAL [( p [,s])] Sama dengan NUMBER [(p [,s])].
NUMERIC [(p [,s])] Sama dengan NUMBER [(p [,s])].
INTEGER [(n)] Sama dengan NUMBER [(n,0)].
INT [(n)] Sama dengan NUMBER [(n,0)].
SMALLINT [(n)] Sama dengan NUMBER [(n,0)].
BINARY_INTEGER Tipe variabel ini digunakan menyimpan nilai
mulai dari
-2.147.483.647 s/d 2.147.483.647
NATURAL Bagian dari binary integer, mampu menyimpan
mulai dari 0 s/d 2.147.483.647.
NATURALN Bagian dari binary integer, mampu menyimpan
mulai dari 0 s/d 2.147.483.647. Tipe data ini
tidak boleh bernilai NULL.
POSITIVE Bagian dari binary integer, mampu menyimpan
mulai dari 1 s/d 2.147.483.647
POSITIVEN Bilangan integer dengan rentang nilai 1 sampai
dengan 2147483647. Tipe data ini tidak boleh
bernilai NULL.
SIGNTYPE Tipe data bilangan yang bernilai -1, 0 atau 1.
PLS_INTEGER Bilangan integer dengan rentang nilai -
Menambahkan Kolom
Pada tabel mahasiswa akan ditambahkan kolom tahun masuk. Perintah
SQLnya sbb:
Merubah Kolom
Akan dilakukan perubahan pada panjang data Alamat dari 75 karakter menjadi
100 karakter. Perintah SQLnya sb:
Menghapus Kolom
Akan dilakukan penghapusan kolom kelas pada tebel Mahasiswa karena akan
dipindahkan pada tabel lainnya. Perintah SQLnya sbb:
Misalkan akan dihapus primary key pada tabel mahasiswa, perintah SQLnya
sbb:
Menghapus ForeignKey
Penghapusan foreignkey berarti memutus hubungan antar tabel yang sudah
saling terkait. Perintah SQL yang dibuat hampir sama dengan penghapusan
primary key. Perintah SQL untuk melakukan penghapusan foreignkey adalah
sbb:
Menambahkan ForeignKey
Akan ditambahkan foreignkey untuk tabel mahasiswa yang tadi telah
dihapus hubungan dengan tabel jurusan nya. Perintah SQLnya sbb:
pada saat perintah INSERT dilakukan. Kolom_data dapat diabaikan untuk tidak
ditulis jika data yang akan diisikan untuk seluruh tabel.
Berikut akan diisikan data untuk tabel Jurusan dan Mahasiswa sesuai
dengan tabel berikut:
Tabel 6-6 Data Jurusan
KodeJur NamaJur
12 Teknik Komputer
22 Komputer Akuntansi
32 Manajemen Informatika
Perintah update ini akan mengubah isi kolom data yang jika tidak
disikan kondisi Where data maka akan mengubah seluruh kolom yang ada di
seuruh baris. Oleh sebab itu untuk membuat perubahan data harus selalu
diperhatikan kondisi data yang akan dilakukan perubahan.
Misalnya akan dilakukan perubahan nama pada nama=Aji menjadi Aji
Santoso. Maka kondisi yang harus dibuat adalah Nim sebagai key pada tabel
tersebut, Where Nim='32121001' .
Berikutnya ingin dirubah nama bayu dengan nama Bayu Adji dan
alamat menjadi Jl. Sukarame 15
UPDATE Mahasiswa
SET Nama='Bayu Adji', Alamat='Jl. Sukarame
15'
WHERE Nim='32121002';
Perintah delete akan menghapus satu baris data atau lebih tergantung
pada kondisi Where yang diberikan. Sebaiknya setipa melakukan proses
penghapusan data maka kondisi penghapusan harus terdefinisi dengan baik,
jika tidak maka akan kehilangan data.
Untuk latihan select ini akan digunakan tabel Mahasiswa, Jurusan dan
Kurikulum seperti berikut ini:
Tabel 6-8 Data Jurusan
KodeJur NamaJur
12 Teknik Komputer
22 Komputer Akuntansi
32 Manajemen Informatika
Penulisan alias pada kolom dapat juga dituliskan tanpa keyword AS,
sehingga perintah SQL nya menjadi sbb:
SELECT KodeJur Kode, NamaJur AS Jurusan
FROM Jurusan
SELECT nama_kolom
FROM nama_tabel
[WHERE kondisi]
Selain operator diatas juga digunakan operator relasi seperti AND, OR dan
NOT
Berikut beberapa contoh penulisan kondisi:
WHERE Nim=’ 32121001’
WHERE Sks=2
Untuk kolom yang jenis datanya adalah karakter (CHAR, VARCHAR) nilai
datanya harus diapit oleh tanda kutip seperti dibagian atas.
FROM Mahasiswa
WHERE Nim='32121001'
SELECT nama_kolom
FROM nama_Tabel
ORDER BY nama_kolom ASC | DESC
Rangkuman
Latihan
Pilihan Ganda
4 Create ______
A. tidak perlu diisi apapun D. diisi dengan Database
B. diisi bebas saja E. Diisi dengan tanda kutif
C. diisi dengan Table
5 No integer, _____
A. tidak perlu diisi apapun D. diisi dengan Primary key
B. diisi bebas saja E. Diisi dengan Constranints
C. diisi dengan NULL
Overview
Tujuan
Jumlah
5
Dilihat dari hubungan antar tabel seperti yang terlihat pada gambar
dibawah ini adalah sbb:
Tabel Jurusan
KodeJur NamaJur
Maka kaitan antara tabel Mahasiswa dan tabel Jurusan adalah pada
kolom KodeJur di kedua tabel. Penyambungan dilakukan dengan perintah sbb:
Mahasiswa.kodeJur = Jurusan.KodeJur
SELECT nama_kolom
FROM nama_tabel_1
INNER JOIN nama_tabel_2
ON kolom_relasi_tabel
SELECT nama_kolom
FROM nama_tabel AS nama_alias
Tabel 7-10Penerbit
NamaPen Kota
New Moon Books Boston
Binnet & Hardley Washington
Algodata Infosistems Berkeley
Five Lakes Publishing Chicago
Ramona Publishers Dallas
GGG&G München
Scootney Books New York
Lucerne Publishing Paris
7.4.1 LEFTJOIN
Bentuk umum penulisan LEFTJOIN adalah sbb:
SELECT nama_kolom
FROM nama_tabel_1
LEFTJOIN nama_tabel_2
ON relasi_tabel
7.4.2 RIGHTJOIN
Bentuk umum penulisan RIGHTJOIN adalah sbb:
SELECT nama_kolom
FROM nama_tabel_1
RIGHTJOIN nama_tabel_2
ON relasi_tabel
7.4.3 FULLJOIN
Bentuk umum penulisan FULLJOIN adalah sbb:
SELECT nama_kolom
FROM nama_tabel_1
FULLJOIN nama_tabel_2
ON relasi_tabel
7.5 Subquery
Subquery adalah sebuah bentuk perintah SELECT yang mengembalikan
nilai yang ada kepada perintah lain berupa perintah SELECT, INSERT, UPDATE
dan DELETE atau dengan kata lain subquery adalah query dalam query.
Operator IN
Subquery dengan menggunakan operatorIN adalah akan me-list hasil dari
subquery untuk dibandingkan dengan ekspresi where yang diberikan. Subquery
akan dijalankan terlebih dahulu baru kemudian query pemanggilnya akan
dijalankan.
Berikut contoh perintah Subquery untuk menampilkan nama penerbit
untuk buku yang berjenis business dengan menggunakan operatorIN
SELECT NamaPen
FROM Penerbit
WHERE kodePen IN
(SELECT kodePen
FROM Buku
WHERE jenis='business')
SELECT NamaPen
FROM Penerbit
WHERE kodePen IN (‘1389’, ‘1389’,’0736’,
‘1389’)
SELECT NamaPen
FROM Penerbit
WHERE kodePen NOT IN
(SELECT kodePen
FROM Buku
WHERE jenis='business')
Tabel 7-18Hasil Query Operator Not IN
NamaPen
Binnet & Hardley
Five Lakes Publishing
Ramona Publishers
GGG&G
Scootney Books
Lucerne Publishing
Operator EXISTS
Operator Exists ini akan melakukan pemeriksaan terhadap hasil
subqery apakah menghasilkan baris-data atau tidak, jika subquery tersebut
menghasilkan baris data maka akan mengembalikan nilai true dan sebaliknya
jika tidak menghasikan data maka akan mengembalikan nilai false
SELECT NamaPen
FROM Penerbit p
WHERE EXISTS
(SELECT *
FROM Buku b
WHERE b.KodePen= p.KodePen
AND jenis='business')
SELECT NamaPen
FROM Penerbit p
WHERE NOT EXISTS
(SELECT *
FROM Buku b
WHERE b.KodePen= p.KodePen
AND jenis='business')
Operator Komporasi
Subquery memungkinkan juga menggunakan operator komparasi yang
terdiri dari =, <>, >, > =, <, ! >, ! <, or < =. Berbeda dengan operator
sebelum penggunaaan operator ini subquery harus menghasilkan data tunggal
yang menjadi parameter untuk query pemanggilnya.
SELECT NamaPeng
FROM Pengarang
WHERE KotaTinggal =
(SELECT Kota
FROM Penerbit
WHERE namaPen='Algodata Infosistems')
>ALL mengandung arti bahwa akan mengambil nilai lebih besarnya dari
nilai tertinggi yang ada dalam lsit tersebut. Contoh >ALL (1,2,3) maka nilai
lebih besarnya adalah 3
SELECT NamaPeng
FROM Pengarang
WHERE KotaTinggal <>ANY
(SELECT Kota
FROM Penerbit)
Rangkuman
12. Subquery menggunakan operator IN, NotIN, Exists, NotExists, Any, All
dan operator relasi
13. Subquery dengan menggunakan operator IN adalah akan me-list hasil
dari subquery untuk dibandingkan dengan ekspresi where yang
diberikan.
14. Operator Exists ini akan melakukan pemeriksaan terhadap hasil
subqery apakah menghasilkan baris-data atau tidak, jika subquery
tersebut menghasilkan baris data maka akan mengembalikan nilai true
dan sebaliknya jika tidak menghasikan data maka akan
mengembalikan nilai false
15. Operator komparasi yang terdiri dari =, <>, >, > =, <, ! >, ! <, or <
=. Berbeda dengan operator sebelum penggunaaan operator ini
subquery harus menghasilkan data tunggal yang menjadi parameter
untuk query pemanggilnya.
16. Penggunaan operator ini dipadukan dengan operator relasi sehingga
nanti akan terbentuk >ANY, =ANY , <> ANY, >ALL dan <>ALL
Latihan
Pilihan Ganda
Untuk soal no 7:
9 Jika ada kondisi where kode <>ALL maka dapat diganti dengan
operator:
Overview
Sistem database merupakan satu kesatuan antara DBMS dan database nya.
DBMS merupakan paket software yang digunakan untuk mengatur akses data
ke database. Bagaimana struktur DBMS di dalamnya dan arsitektur sistem
database diimplementasikan, akan diterangkan lebih detail dalam bab ini.
Tujuan
8.1 Pendahuluan
Sistem database merupakan satu kesatuan dari Database Management
System (DBMS) dan database. DBMS adalah kumpulan dari program-program
yang mengijinkan user untuk melakukan create, maintain, dan control terhadap
semua kegiatan yang mengakses database.
Struktur logic terkecil pada Oracle adalah block, sedangkan pada MS SQL
Server adalah page.
Dua bagian utama dalam struktur DBMS ini adalah queryprocessor dan
storagemanager.
Oracle server terdiri dari Oracle instance dan Oracle database, dimana
Oracle Instance merupakan media untuk mengakses Oracle Database.
SGA
Shared pool Streams pool Large pool
SystemProcess
Database LogWriterArchive
MonitorMonitor Writer(LGWR) log files
(SMON)
Checkpoint(PMON)(DBWn)
Control
Control Archiver
files
(CKPT) files Data Redo log
(ARCn)
files files
Gambar 8-3Oracle Instance
SGA
SGA merupakan area memori yang berisi data dan control information
untuk instance, dimana struktur datanya meliputi :
- Databasebuffer cache: Cache block data yang diambil dari
database
- Redo logbuffer: Cache informasi redo, digunakan untuk
recoveryinstance,sampai informasi ini ditulis ke penyimpanan fisik redo
logfiles dalam disk
- Shared pool: Cache beberapa program yang dapat di share oleh
user
- Largepool:merupakan area opsionalyang menyediakan alokasi
memori yang besar untuk proses yang besar, seperti operasi backup
dan recovery, dan proses I/O server
- Java pool:digunakan untuk semua session Java code dan data dalam
Java Virtual Machine (JVM)
- Streams pool:digunakan oleh Oracle Streams
PGA
Program Global Area atau ProcessGlobal Area (PGA) adalah area
memori yang meliputi data dan control information untuk setiap proses.
PGA Instance
SG
Userpr Server
A
ocess process Background
processes
UserProcess
Userdatabaseyang akan mengakses informasi dari database harus
melakukan koneksi dulu ke Oracle server. Ini dapat dilakukan dengan
menggunakan tool, seperti SQL*Plus, dan userprocess dimulai.Userprocesstidak
berinteraksi langsung dengan Oracle server, tetapi melalui UserProgram
Interface (UPI) yang meng-create session dan mengaktifkan server process.
Server Process
Ketika user telah terkoneksi, server process dimulai untuk menangani
permintaan dari userprocess. Server processdapat berupa server process khusus
atau server process yang digunakan bersama (shared server process).
BackgroundProcess
Backgroundprocess merupakan bagian dari Oracle Instance, yang terdiri
dari beberapa proses. Proses-proses yang sering digunakan adalah:
- Sistem Monitor (SMON):melakukan crash recoverybila instance
gagal di-start.
- Process Monitor (PMON):melakukan process cleanup bila
userprocess gagal.
- Database Writer (DBWn):menulis blocks yang berubah dari
databasebuffer cache ke data files dalam disk
- Checkpoint (CKPT): meng-updatesemua data files dan controlfiles
databaseuntuk memberi tanda checkpoint yang terakhir
Logical Structure
Struktur logic dapat dilihat pada gambar di bawah ini dimana urutan
terbesar adalah database dan yang terkecil adalah block. Satu database terdiri
dari beberapa tablespace, dan setiap tablespace merupakan gabungan dari
beberapa segment.
Physical Structure
Struktur fisik berupa data file, dimana satu atau lebih data file dibuat
untuk setiap tablespace sehingga semua struktur logic akan tersimpan dalam
struktur fisik. Untuk tablespace TEMPORARY, data file nya tersimpan dalam
file temporer.
Logical Physical
Datab
ase
Segm
ent
Exte
nt
OS
Oracle data
block
block
Antar muka (Interface) antara front-end dan back-end melalui SQL atau
application program Interface(API).
Transaction Server
• Banyak digunakan dalam sistem database relasional
• Disebut juga query server sistems atau SQL server sistems
• clients mengirim permintaan ke sistem server dimana transaksi akan
dieksekusi, dan hasilnya dikirim kembali ke client
• Permintaan ditulis dalam SQL, dan dikomunikasikan ke server
melalui mekanisme remote procedure call (RPC)
Data Server
• Digunakan dalam sistem databaseobject-oriented
• Menggunakan LAN dengan koneksi yang sangat cepat antara client
dan server
• Data dikirim dari server ke komputer client dimana pemrosesan data
dilakukan, dan hasilnya dikirim kembali ke server
• Arsitektur ini membutuhkan full back-end functionality di komputer
client
Rangkuman
Pilihan Ganda
Latihan
Overview
Basis Data Relasional telah digunakan selama lebih dari dua dekade. Telah
banyak sekali aplikasi-aplikasi basis data relasional diterapkan dalam
lingkungan komersial, dengan mendukung tugas-tugas seperti pengolahan
transaksi di bank-bank, pasar modal, penjualan dan reservasi untuk beragam
bisnis, inventori dan penggajian untuk hampir semua perusahaan. Kali ini kita
akan membahas lebih jauh aplikasi-aplikasi baru, yang akhir-akhir ini banyak
berkembang.
Tujuan
9.1 Pendahuluan
Basis Data Relasional telah digunakan selama lebih dari dua dekade. Telah
banyak sekali aplikasi-aplikasi basis data relasional diterapkan dalam
lingkungan komersial, dengan mendukung tugas-tugas seperti pengolahan
transaksi di bank-bank, pasar modal, penjualan dan reservasi untuk beragam
bisnis, inventori dan penggajian untuk hampir semua perusahaan. Kali ini kita
akan membahas lebih jauh aplikasi-aplikasi baru, yang akhir-akhir ini banyak
berkembang. Aplikasi-aplikasi tersebut meliputi Sistem Pendukung Keputusan
S M L Total
Terang 8 35 10 53
Gelap 20 10 5 35
Total 28 45 15 88
data dalam bentuk relasional dengan menggunakan nilai khusus all untuk
menyatakan subtotal, seperti yang ditunjukan di tabel berikut ini :
Perhatikan pasangan (Terang, all, 53) dan (Gelap, all, 35). Kita bisa
memperoleh pasangan ini dengan menghilangkan pasangan individual dengan
nilai berbeda untuk ukuran, dan dengan mengganti nilai dari jumlah dengan
sebuah agreasi sum. Ekspresi query-nya dapat kita nyatakan sebagai :
Kita dapat melakukan hal yang sama untuk mendapatkan subtotal untuk
masing-masing ukuran. Dan akhirnya total untuk semua ukuran dan warna.
Paling tidak, ada 3 ekspresi query berbeda yang harus kita berikan untuk
mendapatkan semua informasi agregrasi yang mungkin. Tentu saja hal ini
menjadi semakin tidak praktis untuk data multidimensional (atribut
penentunya lebih dari 2). Walaupun kita dapat menghasilkan informasi seperti
yang diperlihatkan di Gambar 14.2 dengan menggunakan SQL, tetapi
melakukan hal itu memberikan kerumitan tersendiri. Query akan melibatkan
penggunaan operasi unio, dan dapat menjadi panjang seiring dengan banyaknya
atribut yang terlibat.
Karena itu ada gagasan untuk memperkaya perintah SQL dengan
operator cube. Sebagai contoh, berikut ini adalah query SQL yang akan
menghasilkan tabel di atas.
Dalam Data Mining, yang terpenting dan, sekaligus tersulit dari penjelasan di
atas adalah bagaimana aturan-aturan (yang merepresentasikan pengetahuan)
dari basis data tersebut dapat kita peroleh. Kesulitan ini seringkali
Polygon =
{(𝑥𝑙, 𝑦𝑙 ), ( 𝑥2, 𝑦2), (𝑥3, 𝑦3), (𝑥4, 𝑦4), (𝑥5, 𝑦5)}
dalam 2 jenis:
Data Raster. Pada kelompok ini, setiap objek tidak dilihat bentuk
geometrisnya secara utuh, tetapi dipandang sebagai kumpulan titik (pixel).
Karena itu data raster terdiri atas peta-peta bit atau pixel dalam 2
dimensi atau lebih. Contoh yang umum dari citra raster 2 dimensi adalah
citra satelit untuk awan, di mana setiap pixel (yang berasosiasi dengan
koordinat dan warna tertentu) menyimpan keberadaan titik awan secara
geografis. Data raster dapat pula berwujud 3 dimensi - sebagai contoh,
representasi temperatur pada berbagai ketinggian dalam area berbeda,
yang lagi-lagi diukur dengan bantuan sebuah satelit. Waktu dapat pula
menjadi komponen dimensi - contohnya, pengukuran temperatur di atas
permukaan pada waktu-waktu pengukuran yang berbeda. Basis Data
Perancangan umumnya tidak menyimpan data raster, karena besarnya
kebutuhan penyimpanan data.
Data Vektor. Data vektor dibentuk dari objek-objek geometric dasar,
seperti titik, garis, segitiga dan berbagai poligon lainnya untuk objek-
objek 2 dimensi dan silinder, elips, kubus dan polihedron lainnya untuk
objek-objek 3 dimensi.
tulisan tangan seseorang dengan data tulisan tangan yang telah tersimpan
di basis data yang mungkin berasosiasi dengan perintah atau makna
tertentu.
Kemiripan seringkali bersifat subjektif dan amat tergantung definisi
pemakai. Namun demikian, pengujian kemiripan cukup sukses untuk
pengenalan suara dan tulisan tangan, karena data masukandapat dibandingkan
dengan data yang telah tersimpan dalam basis data, dan karena himpunan
pilihan yang tersedia juga terbatas.
membantu penelusuran paket. Dan masih banyak lagi aplikasi dari komputer
jinjing/bergerak semacam ini.
Salah satu contoh yang umum dari penerapan sistem semacam ini
adalah katalog perpustakaan on-line. Data dalam sistem seperti ini diorganisasi
sebagai kumpulan dokumen. Setiap entri dalam katalog perpustakaan
merupakan sampel (bagian utama) dari dokumen. Seorang pemakai mungkin
ingin mendapatkan dokumen atau kelompok dokumen tertentu. Dokumen-
dokumen yang dicari tersebut biasanya diidentifikasi dengan menggunakan
kata kunci, sebagai contoh "pemrograman pascal" dapat digunakan untuk
mencari semua buku Yang menyinggung/membahas tentang pemrograman
berbahasa Pascal.
Ada sejumlah perbedaan antara model semacam ini dengan model
yang digunakan dalam sistem basis data tradisional :
Sistem Basis Data terbiasa dengan operasi perubahan (update), Yang
diikuti dengan kebutuhan akan kendali konkurensi. Aspek ini dianggap
kurang penting (jarang atau bahkan tidak pernah dilakukan) dalam Sistem
Pencarian Informasi. Mirip dengan itu, Sistem Basis Data berhubungan
dengan informasi terstruktur Yang diorganisasi dengan model data yang
relatif kompleks (seperti dalam model relasional atau model berorientasi
objek), sementara Sistem Pencarian Informasi umumnya menggunakan
model yang lebih sederhana, di mana keseluruhan informasi diorganisasi
sebagai kumpulan dokumen yang tidak terstruktur.
Sistem Pencarian Informasi berhubungan dengan sejumlah isu yang belum
sepenuhnya ditangani dalam Sistem Basis Data, seperti problem
penyimpanan dan pengelolaan dokumen yang tidak terstruktur, pencarian
dengan kata kunci (keyword) dan pengambilan dokumen berdasarkan
tingkat relevansi dokumen terhadap query.
arah.
web, hal ini membuat beberapa organisasi ingin bergerak untuk menggunakan
aplikasi basis data berbasis web (Web-Based Application).
Web-Based Application merupakan sebuah aplikasi yang memanfaatkan
teknologi World Wide Web sebagai Interface-nya, yang berarti data yang
diinginkan dapat diakses dan diubah dengan menggunakan sebuah Web
Browser. Ini sangat menguntungkan sebuah perusahaan karena aplikasi ini
dapat dijalankan di sembarang komputer, selama komputer tersebut memiliki
Web Browser terpasang di dalamnya.
Beberapa keuntungan lainnya dari Web-Based Applications ialah:
1. Data dapat diakses kapan saja dan dari mana saja asal terhubung
dengan internet (availability tinggi).
2. Interoperability tinggi.
3. Mudah dipakai, pemakai cukup melakukan point & click,
4. Murah karena tools untuk melakukan browsing banyak tersedia dan
gratis.
Proses untuk aplikasi berbasis Web biasanya lebih banyak dilakukan
diserver. Hasil proses itulah yang kemudian dikirim ke client melalui HTTP
dalambentuk halaman-halaman Web. Selain Web server dan browser, aplikasi
berbasisWeb tidak jarang melibatkan basis data. Dalam kasus ini Web server
dengan suatumekanisme dapat mengakses basis data dan kemudian mengolah
data lalu dikirimke client. Dilihat dari kedekatan program aplikasi dengan
penyimpanan data,sisitem ini dapat dikategorikan sebagai sistem three-tier.
Dalam pemrogramanthree-tier, aplikasi dipecah menjadi tiga bagian, yaitu
antarmuka pengguna,computational logic, dan penyimpanan data (basis
data).Untuk aplikasi three-tier berbasis Web, browser di client berfungsi
sebagaiantarmuka pengguna, Web server akan melakukan computational logic,
danprogram basis data, berfungsi sebagai penyimpan data. Secara umum
skemaaplikasi three-tier berbasis Web dapat dilihat pada Gambar 14.7. Pada
gambartersebut penomoran tier dihitung dari antarmuka pengguna.
Adanya antar muka antara web dan basis data menjadi penting dikarenakan
dua alasan yaitu :
1. Bersamaan dengan adanya pertumbuhan perdagangan elektronik atau E-
Commerce, pengolahan transaksi harus dapat dihubungkan dengan web.
Parapemakai berinteraksi dengan basis data secara tidak langsung melalui
serangkaian interaksi dokumen HTML yang kemudian dikirim sebagai
reaksi untuk server dan selanjutnya digunakan sebagai parameter oleh
program di server untuk melakukan pengolahan transaksi tertentu pada
basis data.
2. Keterbatasan yang dimiliki oleh dokumen HTML, seperti :
a) Pemakaian dokumen web yang tetap tidak memungkinkan
penampilan disesuaikan dengan keinginan pemakai, misalnya sebuah
perusahaan mungkin menginginkan materi promosinya disesuaikan
dengan keinginan pembeli.
b) Pada saat data di suatu basis data mengalami perubahan, maka
dokumen–dokumen web yang melibatkan data yang sama menjadi
tidak diperbaharui kembali jika tidak segera disesuaikan. Hal ini akan
semakin merepotkan jika dokumen tersebut tersebar di sejumlah
lokasi.
Untuk mengatasi keterbatasan ini maka dibuatlah suatu dokumen web yang
lebih dinamis dengan terlebih dahulu membuat antar muka web dengan
basis data. Sehingga pada saat dokumen diminta oleh pemakai, sebuah
program di web server akan dieksekusi untuk menjalankan operasi queri ke
basis data dan membuat dokumen sesuai dengan hasil queri tersebut.
Dengan mekanisme ini maka informasi yang diinginkan oleh pemakai dapat
terefleksi dengan baik.
Rangkuman
Pilihan Ganda
5. Berikut ini hal yang benar mengenai Basis Data Spasial, kecuali…
Menangani hal-hal yang
berhubungan dengan
A. ruangan/tempat D. Menggunakan indeks R-tree
B. Menggunakan indeks B-tree E. Salah semua
Dapat diimplementasikan untuk
C. sistem navigasi
Latihan
Daftar Pustaka