1.1. Pengantar Database
Database atau basis data dapat dibayangkan ibarat sebuah lemari arsip. Jika anda
bekerja diperkantoran tentu sangat banyak arsip-arsip atau dokumen kantor yang
disimpan kedalam lemari tersebut. Sering anda melihat bahwa penempatan arsip
didalam lemari tidak dilakukan secara sembarangan/acak, tapi diberi pembeda antara
satu arsip dengan arsip yang lainnya. Pembedanya dapat berupa nomor urut, warna
sampul, urutan letak atau berdasarkan tanggal dan lain sebagainya.
Begitu juga halnya dengan buku telpon/alamat yang anda punyai, biasanya diatur
menurut abjad nama atau kategori tertentu, seperti teman, keluarga, klien dan lain
sebagainya. Semuanya disimpan dan diatur menurut aturan tertentu sesuai dengan
yang diinginkan.
Upaya anda untuk menyusun dan melakukan hal diatas baru akan terasa kalau data
arsip dan daftar alamat yang dimiliki sudah banyak. Mengapa hal ini anda lakukan ?
tidak lain tujuannya adalah untuk memudahkan dalam mencari atau mengambil data
tertentu dalam arsip maupun buku alamat tadi secara Cepat dan mudah. Bayangkan
kalau semua arsip atau daftar buku alamat tersebut tidak diatur penyusunannya, tentu
akan sangat sulit untuk mencari arsip atau nomor telpon tertentu. Tidak saja sulit tapi
akan sangat membutuhkan waktu yang lama.
1.2. Pengertian Database.
Banyak sekali definisi tentang database yang diberikan oleh para pakar dibidang ini.
Database terdiri dari dua penggalan kata yaitu data dan base, yang artinya berbasiskan
pada data, tetapi secara konseptual, database diartikan sebuah koleksi atau kumpulan
data-data yang saling berhubungan (relation), disusun menurut aturan tertentu
secara logis, sehingga menghasilkan informasi. Sebuah informasi yang berdiri
sendiri tidaklah dikatakan database.
Pengantar Basis Data
Pengantar Basis Data 1
Pertemuan 1 :
PENGANTAR BASIS DATA
Tujuan Instruksional
Khusus :
· Mahasiswa dapat
menjelaskan perbedaan antara file tradisional dan file
manajemen basis data
· Mahasiswa dapat
menjelaskan konsep basis data dan istilah yang termasuk di
dalamnya
· Mahasiswa dapat
mejelaskan keuntungan dan kerugian apabila menggunakan
file manajemen basis data
· Mahasiswa dapat
menyebutkan para pengguna basis data
Deskripsi Singkat :
Pada materi ini akan dibahas mengenai
perbedaan antara file tradisional yang sudah
banyak ditinggalkan orang dan file
manajemen basis data atau sering disebut
sebagai basis data (database), dengan
disertai contoh penggunaan dua jenis file
tersebut. Pada materi ini juga akan
dapat menjawab mengapa basis data telah
banyak digunakan orang. Selain itu
juga akan dibahas mengenai pengertian basis
data termasuk konsep dari basis data,
istilah-istilah yang biasanya digunakan dalam
basis data, serta pengguna basis data
Bahan Bacaan :
1. Connoly, Thomas; Begg, Carolyn;
Strachan, Anne; Database Systems : A
Practical Approach to
Design, Implementation and Management, 3rd edition,
Addison Wesley, 2001.
2. Korth, H.; Database System
Concept, 4th
edition,
Mc Graw Hill, New York, 1991.
Pengantar Basis Data
Pengantar Basis Data 2
PENGANTAR BASIS DATA
Basis data menyediakan fasilitas atau
mempermudah dalam menghasilkan informasi
yang digunakan oleh pemakai untuk
mendukung pengambilan keputusan. Hal inilah
yang menjadikan alasan dari penggunaan
teknologi basis data pada saat sekarang
(dunia bisnis). Berikut ini contoh
penggunaan Aplikasi basis data dalam dunia bisnis
:
· Bank : Pengelolaan
data nasabah, akunting, semua transaksi perbankan
· Bandara : Pengelolaan
data reservasi, penjadualan
· Universitas :
Pengelolaan pendaftaran, alumni
· Penjualan :
Pengelolaan data customer, produk, penjualan
· Pabrik : Pengelolaan
data produksi, persediaan barang, pemesanan, agen
· Kepegawaian:
Pengelolaan data karyawan, gaji, pajak
· Telekomunikasi :
Pengelolaan data tagihan, jumlah pulsa
Sistem Pemrosesan
File
Gambar 1. Sistem pemrosesan file untuk suatu Universitas
Keterangan :
File mahasiswa : Mhs (npm,
nama, alamat, tgl_lahir)
MataKul (kd_mk, nama_mk, sks)
File MataKuliah : MataKul (kd_mk,
nama, sks)
Sebelumnya, sistem yang digunakan
untuk mengatasi semua permasalahan bisnis,
menggunakan pengelolaan data secara
tradisional dengan cara menyimpan recordrecord
pada file-file yang terpisah, yang
disebut juga sistem pemrosesan file.
Dimana masing-masing file
diperuntukkan hanya untuk satu program aplikasi saja.
Program Aplikasi Mahasiswa file
mahasiswa
Program Aplikasi Mata Kuliah file
mata kuliah
mahasiswa
mata kuliah
Pengantar Basis Data
Pengantar Basis Data 3
Perhatikan gambar 1 mengenai suatu
universitas yang mempunyai dua sistem yakni
sistem yang memproses data mahasiswa
dan sistem yang mengelola data mata
kuliah.
Kelemahannya dari
sistem pemrosesan file ini antara lain :
1. Timbulnya data rangkap (redundancy
data) dan Ketidakkonsistensi data
(Inconsistency data)
Karena file-file dan program aplikasi
disusun oleh programmer yang berbeda,
sejumlah informasi mungkin memiliki
duplikasi dalam beberapa file. Sebagai
contoh nama mata kuliah dan sks dari
mahasiswa dapat muncul pada suatu file
memiliki record-record mahasiswa dan
juga pada suatu file yang terdiri dari
record-record mata kuliah. Kerangkapan
data seperti ini dapat menyebabkan
pemborosan tempat penyimpanan dan
biaya akases yang bertambah. Disamping
itu dapat terjadi inkonsistensi data.
Misalnya, apabila terjadi perubahan jumlah
sks mata kuliah, sedangkan perubahan
hanya diperbaiki pada file mata kuliah
dan tidak diperbaiki pada file
mahasiswa. Hal ini dapat mengakibatkan kesalahan
dalam laporan nilai mahasiswa.
2. Kesukaran dalam Mengakses Data
Munculnya permintaan-permintaan baru
yang tidak diantisipasikan sewaktu
membuat program aplikasi, sehingga
tidak memungkinkan untuk pengambilan
data.
3. Data terisolir (Isolation Data)
Karena data tersebar dalam berbagai
file, dan file-file mungkin dalam format –
format yang berbeda, akan sulit
menuliskan program aplikasi baru untuk
mengambil data yang sesuai.
4. Masalah Pengamanan ( Security
Problem )
Tidak semua pemakai diperbolehkan
mengakses seluruh data. Bagian
Mahasiswa hanya boleh mengakses file
mahasiswa. Bagian Mata kuliah hanya
boleh mengakses file mata kuliah,
tidak boleh mengakses file mahasiswa. Tetapi
sejak program-program aplikasi
ditambahkan secara ad-hoc maka sulit
melaksanakan pengamanan seperti yang
diharapkan.
5. Data Dependence
Pengantar Basis Data
Pengantar Basis Data 4
Apabila terjadi perubahan atau
kesalahan pada program aplikasi maka pemakai
tidak dapat mengakses data.
Sistem Basis data
Seiring dengan berjalannya waktu,
lambat laun sistem pemrosesan file mulai
ditinggalkan karena masih bersifat
manual, yang kemudian dikembangkanlah sistem
pemrosesan dengan pendekatan basis
data.
Gambar 2. Sistem basis data untuk suatu universitas
Keterangan :
Mhs ( Npm, nama, alamat,
tgl_lahir )
Mt_kul ( kd_mk, nama_mk,sks
)
Perhatikan gambar 2 di atas. Pada
sistem ini record-record data disimpan pada satu
tempat yakni basis data dan diantara
program aplikasi maupun pemakai terdapat
DBMS (Database Management System).
Konsep Dasar Basis
Data
Data adalah representasi
fakta dunia nyata yang mewakili suatu objek seperti
manusia (pegawai, mahasiswa, pembeli),
barang, hewan, peristiwa, konsep,
keadaan, dan sebagainya yang direkam
dalam bentu angka, huruf, simbol, teks,
gambar, bunyi atau kombinasinya.
Basis Data adalah sekumpulan
data yang terintegrasi yang diorganisasikan untuk
memenuhi kebutuhan para pemakai di
dalam suatu organisasi.
Program Aplikasi Mahasiswa
Basis data
Universitas
Program Aplikasi Mata kuliah
mahasiswa
mata kuliah
DBMS
Pengantar Basis Data
Pengantar Basis Data 5
DBMS (Database
Management System) adalah Perangkat Lunak yang menangani
semua pengaksesan ke basis data
Sistem Basis Data terdiri dari basis
data dan DBMS.
Gambar 3. Sistem Basis Data
Istilah - Istilah
Dasar Basis Data
Enterprise
Suatu bentuk organisasi seperti :
bank, universitas, rumah sakit, pabrik, dsb.
Data yang disimpan dalam basis data
merupakan data operasional dari suatu
enterprise.
Contoh data operasional : data
keuangan, data mahasiswa, data pasien
Entitas
Suatu obyek yang dapat dibedakan dari
lainnya yang dapat diwujudkan dalam basis
data.
Contoh Entitas dalam lingkungan bank
terdiri dari : Nasabah, Simpanan, Hipotik
Contoh Entitas dalam lingkungan
universitas terdiri dari : Mahasiswa, mata kuliah
Kumpulan dari entitas disebut Himpunan
Entitas
Contoh : semua nasabah, semua
mahasiswa
Atribut (Elemen Data)
Karakteristik dari suatu entitas.
Contoh : Entitas Mahasiswa atributnya
terdiri dari Npm, Nama, Alamat, Tanggal lahir.
Nilai Data (Data
Value)
Isi data / informasi yang tercakup
dalam setiap elemen data.
Contoh Atribut Nama Mahasiswa dapat
berisi Nilai Data : Diana, Sulaeman, Lina
Pengantar Basis Data
Pengantar Basis Data 6
Kunci Elemen Data (Key
Data Element)
Tanda pengenal yang secara unik
mengidentifikasikan entitas dari suatu kumpulan
entitas.
Contoh Entitas Mahasiswa yang
mempunyai atribut-atribut npm, nama, alamat,
tanggal lahir menggunakan Kunci Elemen
Data npm.
Record Data
Kumpulan Isi Elemen data yang saling
berhubungan.
Contoh : kumpulan atribut npm, nama,
alamat, tanggal lahir dari Entitas Mahasiswa
berisikan : "10200123",
"Sulaeman", "Jl. Sirsak 28 Jakarta", "8 Maret
1983".
Keuntungan Sistem
Basis Data
1. Terkontrolnya kerangkapan data
Dalam basis data hanya mencantumkan
satu kali saja field yang sama yang
dapat dipakai oleh semua aplikasi yang
memerlukannya.
2. Terpeliharanya keselarasan
(kekonsistenan) data
Apabila ada perubahan data pada
aplikasi yang berbeda maka secara otomatis
perubahan itu berlaku untuk
keseluruhan
3. Data dapat dipakai secara bersama (shared)
Data dapat dipakai secara bersama-sama
oleh beberapa program aplikasi
(secara batch maupun on-line)
pada saat bersamaan.
4. Dapat diterapkan standarisasi
Dengan adanya pengontrolan yang terpusat
maka DBA dapat menerapkan
standarisasi data yang disimpan
sehingga memudahkan pemakaian, pengiriman
maupun pertukaran data.
5. Keamanan data terjamin
DBA dapat memberikan batasan-batasan
pengaksesan data, misalnya dengan
memberikan password dan pemberian hak
akses bagi pemakai (misal : modify,
delete, insert,
retrieve)
6. Terpeliharanya integritas data
Jika kerangkapan data dikontrol dan
kekonsistenan data dapat dijaga maka data
menjadi akurat
Pengantar Basis Data
Pengantar Basis Data 7
7. Terpeliharanya keseimbangan
(keselarasan) antara kebutuhan data yang
berbeda dalam setiap aplikasi
Struktur basis data diatur sedemikian
rupa sehingga dapat melayani
pengaksesan data dengan cepat
8. Data independence (kemandirian
data)
Dapat digunakan untuk bermacam-macam
program aplikasi tanpa harus merubah
format data yang sudah ada
Kelemahan Sistem
Basis Data
- Memerlukan tenaga spesialis
- Kompleks
- Memerlukan tempat yang besar
- Mahal
Pengguna Basis Data
1. System Engineer
Tenaga ahli yang bertanggung jawab
atas pemasangan Sistem Basis Data, dan
juga mengadakan peningkatan dan
melaporkan kesalahan dari sistem tersebut
kepada pihak penjual
2. Database Administrator (DBA)
Tenaga ahli yang mempunyai tugas untuk
mengontrol sistem basis data secara
keseluruhan, meramalkan kebutuhan akan
sistem basis data, merencanakannya
dan mengaturnya.
Tugas DBA :
o Mengontrol DBMS dan software-software
o Memonitor siapa yang
mengakses basis data
o Mengatur pemakaian
basis data
o Memeriksa security,
integrity, recovery dan concurency
Program Utilitas yang digunakan oleh
DBA :
o Loading Routines
Membangun versi utama dari basis data
o Reorganization
Routines
Mengatur / mengorganisasikan kembali
basis data
Pengantar Basis Data
Pengantar Basis Data 8
o Journaling Routines
Mencatat semua operasi pemakaian basis
data
o Recovery Routines
Menempatkan kembali data, sebelum
terjadinya kerusakan
o Statistical Analysis
Routines
Membantu memonitor kehandalan sistem
3. End User (Pemakai Akhir)
Ada beberapa jenis (tipe) pemakai
terhadap suatu sistem basis data yang dapat
dibedakan berdasarkan cara mereka
berinteraksi terhadap sistem :
a. Programmer aplikasi
Pemakai yang berinteraksi dengan basis
data melalui Data Manipulation
Language (DML), yang
disertakan (embedded) dalam program yang ditulis
pada bahasa pemrograman induk (seperti
C, pascal, cobol, dll)
b. Pemakai Mahir (Casual User)
Pemakai yang berinteraksi dengan
sistem tanpa menulis modul program.
Mereka menyatakan query (untuk
akses data) dengan bahasa query yang
telah disediakan oleh suatu DBMS
c. Pemakai Umum (End User / Naïve
User)
Pemakai yang berinteraksi dengan
sistem basis data melalui pemanggilan
satu program aplikasi permanen (executable
program) yang telah ditulis
(disediakan) sebelumnya
d. Pemakai Khusus (Specialized/Sophisticated
User)
Pemakai yang menulis aplikasi basis
data non konvensional, tetapi untuk
keperluan-keperluan khusus seperti
aplikasi AI, Sistem Pakar, Pengolahan
Citra, dll, yang bisa saja mengakses
basis data dengan atau tanpa DBMS
yang bersangkutan.
Pengantar Basis Data
Lingkungan Basis Data
1
Pertemuan 2 :
LINGKUNGAN BASIS DATA
Tujuan Instruksional
Khusus :
· Mahasiswa dapat
menjelaskan tingkatan arsitektur basis data
· Mahasiswa dapat
menjelaskan konsep data independence, komponen DBMS,
fungsi DBMS serta bahasa yang
digunakan di dalam DBMS
· Mahasiswa dapat
mejelaskan perbedaan model data berbasis objek, record,
konseptual, dan fisik
· Mahasiswa dapat
menjelaskan fungsi dan isi dari data dictionary
· Mahasiswa dapat
menjelaskan perbedaan arsitektur DBMS multi user
Deskripsi Singkat :
Basis data merupakan sumber informasi
yang dapat dipakai bersama. Setiap
pemakai membutuhkan pandangan yang
berbeda terhadap data yang disimpan di
dalam basis data. Untuk memenuhi
kebutuhan tersebut, terdapat arsitektur komersial
DBMS yang didasarkan pada perluasan
arsitektur yang disebut sebagai arsitektur
ANSI-SPARC. Oleh karena itu, materi
ini akan membahas tingkatan arsitektur basis
data, karakteristik fungsional DBMS,
bahasa yang digunakan di dalam DBMS serta
model-model data. Materi-materi
tersebut mengetengahkan latar belakang informasi
yang penting pada DBMS
Bahan Bacaan :
1. Connoly, Thomas; Begg, Carolyn;
Strachan, Anne; Database Systems : A
Practical Approach to
Design, Implementation and Management, 3rd edition,
Addison Wesley, 2001.
2. Korth, H.; Database System
Concept, 4th
edition,
Mc Graw Hill, New York, 1991.
Pengantar Basis Data
Lingkungan Basis Data
2
LINGKUNGAN BASIS DATA
Tujuan utama dari sistem basis data
adalah menyediakan pemakai melalui suatu
pandangan abstrak mengenai data,
dengan menyembunyikan detail dari bagaimana
data disimpan dan dimanipulasikan.
Oleh karena itu, titik awal untuk perancangan
sebuah basis data haruslah abstrak dan
deskripsi umum dari kebutuhan-kebutuhan
informasi suatu organisasi harus
digambarkan di dalam basis data.
Lebih jauh lagi, jika sebuah basis
data merupakan suatu sumber yang bisa
digunakan bersama maka setiap pemakai
membutuhkan pandangan yang berbedabeda
terhadap data di dalam basis data.
Untuk memenuhi kebutuhan ini, arsitektur
komersial basis data yang banyak
digunakan telah tersedia saat ini dan telah
mengalami perluasan yaitu arsitektur
ANSI-SPARC.
Materi ini menyediakan latar belakan
informasi yang penting pada basis data,
diantaranya tiga tingkatan arsitektur
ANSI-SPARC, pengenalan model data, fungsi
yang disediakan oleh DBMS multi user.
Tiga Tingkatan
Arsitektur Basis data ANSI-SPARC
Ada 3 tingkat dalam arsitektur basis
data yang bertujuan membedakan cara pandang
pemakai terhadap basis data dan cara
pembuatan basis data secara fisik.
3 tingkatan arsitektur basis data :
1. Tingkat Eksternal
(External Level)
Tingkat eksternal merupakan cara
pandang pemakai terhadap basis data. Pada
tingkat ini menggambarkan bagian basis
data yang relevan bagi seorang pemakai
tertentu. Tingkat eksternal terdiri
dari sejumlah cara pandang yang berbeda dari
sebuah basis data. Masing-masing
pemakai merepresentasikan dalam bentuk
yang sudah dikenalnya. Cara pandang
secara eksternal hanya terbatas pada
entitas, atribut dan hubungan antar
entitas (relationship) yang diperlukan saja.
2. Tingkat Konseptual
(Conseptual Level)
Pengantar Basis Data
Lingkungan Basis Data
3
Tingkat konseptual merupakan kumpulan
cara pandang terhadap basis data.
Pada tingkat ini menggambarkan data
yang disimpan dalam basis data dan
hubungan antara datanya.
Hal-hal yang digambarkan dalam tingkat
konseptual adalah :
- semua entitas beserta atribut dan
hubungannya
- batasan data
- informasi semantik tentang data
- keamanan dan integritas informasi
Semua cara pandang pada tingkat
eksternal berupa data yang dibutuhkan oleh
pemakai harus sudah tercakup di dalam
tingkat konseptual atau dapat diturunkan
dari data yang ada. Deskripsi data
dari entitas pada tingkat ini hanya terdiri dari
jenis data dan besarnya atribut tanpa
memperhatikan besarnya penyimpanan
dalam ukuran byte.
3. Tingkat Internal
(Internal Level)
Tingkat internal merupakan perwujudan
basis data dalam komputer. Pada tingkat
ini menggambarkan bagaimana basis data
disimpan secara fisik di dalam
peralatan storage yang
berkaitan erat dengan tempat penyimpanan / physical
storage.
Tingkat internal memperhatikan hal-hal
berikut ini :
- alokasi ruang penyimpanan data dan
indeks
- deskripsi record untuk penyimpanan
(dengan ukuran penyimpanan untuk
data elemen
- penempatan record
- pemampatan data dan teknik
encryption
Pengantar Basis Data
Lingkungan Basis Data
4
External Level
Conseptual Level
Internal Level
Gambar 1. Tingkatan Arsitektur Basis data
Contoh : sebuah file Pegawai yang akan
didefinisikan
Tingkat Eksternal
(External Level) :
Cobol
01 PEG_REC.
02 PEG_NO PIC X(6).
02 DEPT_NO PIC X(4).
02 GAJI PIC 9(6).
Tingkat Konseptual
(Conceptual Level) :
PEGAWAI
NOMOR_PEGAWAI CHARACTER 6
NOMOR_DEPT CHARACTER 4
GAJI NUMERIC 6
Tingkat Internal
(Internal Level) :
FILE_PEGAWAI LENGTH = 22
PREFIX TYPE = BYTE (6), OFFSET = 0
EMP# TYPE = BYTE (6), OFFSET = 6,
INDEX = EMPX
DEPT# TYPE = BYTE (4), OFFSET = 12
PAY TYPE = FULLWORD, OFFSET = 16
Pengantar Basis Data
Lingkungan Basis Data
5
Data Independence
Tujuan utama dari 3 tingkat arsitektur
adalah memelihara kemandirian data (data
independence) yang berarti
perubahan yang terjadi pada tingkat yang lebih rendah
tidak mempengaruhi tingkat yang lebih
tinggi.
Ada 2 jenis data independence,
yaitu
1. Physical Data
Independence
bahwa internal schema dapat
diubah oleh DBA tanpa menggangu conceptual
schema. Dengan kata lain physical
data independence menunjukkan kekebalan
conceptual schema terhadap perubahan internal
schema.
2. Logical Data
Independence
bahwa conceptual schema dapat
diubah oleh DBA tanpa menggangu external
schema. Dengan kata lain logical
data independence menunjukkan kekebalan
external schema terhadap perubahan conceptual
schema.
Prinsip data independence adalah
salah satu hal yang harus diterapkan di dalam
pengelolaan sistem basis data dengan
alasan-alasan sbb :
1. DBA dapat mengubah isi, lokasi,
perwujudan dalam organisasi basis data tanpa
mengganggu program-program aplikasi
yang sudah ada.
2. Pabrik / agen peralatan / software
pengolahan data dapat memperkenalkan
produk-produk baru tanpa mengganggu
program-program aplikasi yang sudah
ada.
3. Untuk memindahkan perkembangan
program-program aplikasi
4. Memberikan fasilitas pengontrolan
terpusat oleh DBA demi keamanan dan
integritas data dengan memperhatikan
perubahan-perubahan kebutuhan
pengguna.
Bahasa Dalam DBMS
DBMS (Database Management systems)
adalah kumpulan program yang
mengkoordinasikan semua kegiatan yang
berhubungan dengan basis data. Dengan
adanya berbagai tingkatan pandangan
dalam suatu basis data maka untuk
mengakomodasikan masing-masing
pengguna dalam piranti lunak manajemen basis
data biasanya terdapat bahasa-bahasa
tertentu yang disebut Data Sub language.
Pengantar Basis Data
Lingkungan Basis Data
6
Data sub language adalah subset bahasa
yang dipakai untuk operasi manajemen
basis data. Dalam penggunaan biasanya
dapat ditempelkan (embedded) pada
bahasa tuan rumah (Cobol, PL/1, dsb).
Secara umum maka setiap pengguna basis
data memerlukan bahasa yang dipakai
sesuai tugas dan fungsinya.
Dalam basis data secara umum dikenal 2
data sub language :
1. Data Definition
Language (DDL)
Bahasa yang digunakan dalam
mendefinisikan struktur atau kerangka dari basis
data, di dalamnya termasuk record,
elemen data, kunci elemen, dan relasinya
2. Data Manipulation
Language (DML)
Bahasa yang digunakan untuk
menjabarkan pemrosesan dari basis data, fasilitas
ini diperlukan untuk memasukkan,
mengambil, mengubah data. DML dipakai
untuk operasi terhadap isi basis data
Ada 2 jenis DML :
1. Procedural DML
Digunakan untuk mendefinisikan data
yang diolah dan perintah yang akan
dilaksanakan.
2. Non Procedural
Digunakan untuk menjabarkan data yang
diinginkan tanpa menyebutkan
bagaimana cara pengambilannya.
Secara khusus pengguna menggunakan
berbagai bahasa :
Programmer aplikasi menggunakan
bahasa-bahasa seperti Cobol, Informix, dll (host
language) yang ditempelkan
dengan bahasa yang dipakai dalam DBMS. Pemakai
terminal menggunakan bahasa Query
(misal SQL) atau menggunakan program
aplikasi (yang dirancang oleh
programmer). Sedangkan DBA lebih banyak
menggunakan bahasa DDL dan DML yang
tersedia dalam DBMS.
DBMS mempunyai tugas untuk menangani
semua bentuk akses kepada basis data,
secara konsep :
1. Pengguna menyatakan permintaan
akses menggunakan DBMS
2. DBMS menangkap dan
menginterpretasikan
3. DBMS mencari :
Pengantar Basis Data
Lingkungan Basis Data
7
- eksternal / conceptual mapping
- conceptual schema
- konseptual / internal mapping
- internal schema
4. DBMS melaksanakan operasi yang
diminta terhadap basis data tersimpan.
Proses 1 s/d 4 dapat dilakukan secara
interactive atau dicompile dulu.
Model Data
Model data adalah kumpulan konsep yang
terintegrasi yang menggambarkan data,
hubungan antara data dan
batasan-batasan data dala suatu organisasi. Fungsi dari
sebuah model data untuk
merepresentasikan data sehingga data tersebut mudah
dipahami.
Untuk menggambarkan data pada tingkat
eksternal dan konseptual digunakan model
data berbasis objek atau model data
berbasis record.
1. Model Data
Berbasis Objek
Model data berbasis objek menggunakan
konsep entitas, atribut dan hubungan
antar entitas. Beberapa jenis model
data berbasis objek yang umum adalah :
- entity-relationship
- semantic
- functional
- object-oriented
2. Model Data
Berbasis Record
Pada model data berbasis record,
basis data terdiri dari sejumlah record dalam
bentuk yang tetap yang dapat dibedakan
dari bentuknya. Ada 3 macam jenis
model data berbasis record yaitu
:
- model data relasional (relational)
- model data hierarkhi (hierarchical)
- model data jaringan (network)
Pengantar Basis Data
Lingkungan Basis Data
8
Fungsi DBMS
Layanan-layanan yang sebaiknya
disediakan oleh database management system
adalah :
1. Penyimpanan, pengambilan dan
perubahan data
Sebuah DBMS harus menyediakan
kemampuan menyimpan, mengambil dan
merubah data dalam basis data.
2. Katalog yang dapat diakses pemakai
menyediakan sebuah katalog yang berisi
deskripsi item data yang disimpan dan
diakses oleh pemakai.
3. Mendukung Transaksi
Menyediakan mekanisme yang akan
menjamin semua perubahan yang
berhubungan dengan transaksi yang
sudah ada atau yang akan dibuat.
4. Melayani kontrol concurrency
Sebuah DBMS harus menyediakan
mekanisme yang menjamin basis data terupdate
secara benar pada saat beberapa
pemakai melakukan perubahan
terhadap basis data yang sama secara
bersamaan.
5. Melayani recovery
Menyediakan mekanisme untuk
mengembalikan basis data ke keadaan sebelum
terjadinya kerusakan pada basis data
tersebut.
6. Melayani autorisasi
Sebuah DBMS harus menyediakan
mekanisme untuk menjamin bahwa hanya
pemakai yang berwenang saja yang dapat
mengakses basis data.
7. Mendukung komunikasi data
Sebuah DBMS harus mampu terintegrasi
dengan software komunikasi.
8. Melayani integrity
Sebuah DBMS bertujuan untuk menjamin
semua data dalam basis data dan
setiap terjadi perubahan data harus
sesuai dengan aturan yang berlaku.
9. Melayani data independence
Sebuah DBMS harus mencakup fasilitas
untuk mendukung kemandirian program
dari struktur basis data yang
sesungguhnya.
10. Melayani utility
Sebuah DBMS sebaiknya menyediakan
kumpulan layanan utility.
Pengantar Basis Data
Lingkungan Basis Data
9
Komponen DBMS
Query
Processor
DDL
Compiler
Database
Schema
Queries
Application
Programs
DML
Preprocessor
Program
Object Code
Database
Manager
Dictionary
Manager
System
Buffer
File
Manager
Access
Method
Database
dan
Data Dictionary
DBMS
Programmers
Users DBA
Gambar 2. Komponen DBMS
1. Query Processsor
Komponen yang merubah bentuk query ke
dalam instruksi tingkat rendah ke
database manager
2. Database Manager
Database manager menerima query dan
menguji skema eksternal dan
konseptual untuk menentukan apakah record-record
dibutuhkan untuk memenuhi
permintaan. Kemudian DM memanggil file
manager untuk menyelesaikan
permintaan
3. File Manager
Pengantar Basis Data
Lingkungan Basis Data
10
Memanipulasi penyimpanan file dan
mengatur alokasi ruang penyimpanan pada
disk.
4. DML Preprocessor
Modul yang merubah perintah DML embedded
ke dalam program aplikasi dalam
bentuk fungsi-fungsi yang memanggil
dalam host language.
5. DDL Compiler
Merubah perintah DDL menjadi kumpulan
tabel yang berisi metadata.
6. Dictionary Manager
Mengatur akses dan memelihara data
dictionary. Data dictionary diakses oleh
komponen DBMS yang lain.
Program
Object Code
Query
Processor
Dictionary
Manager
Authorization
Control
Query
Optimizer
Access
Method
System
Buffer
Buffer
Manager
Recovery
Manager
File
Manager
Command
Processor
Integrity
Checker
Transaction
Manager Scheduler
Database
Manager
Data
Manager
Database
dan
Data
Dictionary
Gambar 3. Komponen Software Utama Database
Manager
Pengantar Basis Data
Lingkungan Basis Data
11
Komponen software utama database
manager adalah
1. Authorization Control
Modul yang memeriksa apakah pemakai
mempunyai wewenang untuk
menyelesaikan operasi
2. Command Processor
Memeriksa apakah pemakai mempunyai
wewenang untuk menyelesaikan operasi
3. Integrity Checker
Untuk semua operasi yang merubah basis
data, integrity checker memeriksa
operasi yang diminta memerlukan
batasan integritas.
4. Query Optimizer
Modul ini menentukan strategi yang
optimal untuk eksekusi query
5. Transaction
Manager
Modul ini mengerjakan proses-proses
yang dibutuhkan operasi yang diterima
transaksi
6. Scheduler
Modul ini bertanggung jawab untuk
menjamin operasi secara bersamaan
terhadap basis data sehingga berjalan
tanpa ada masalah antara yang satu
dengan yang lain.
7. Recovery Manager
Modul ini menjamin basis data tetap
konsisten walaupun terjadi kerusakan.
8. Buffer Manager
Modul ini bertanggung jawab terhadap
pemindahan data antara main memory
dan secondary storage, seperti disk
dan tape.
Arsitektur DBMS Multi
User
Teleprocessing
Arsitektur tradisional untuk sistem
multi user adalah teleprocessing, dimana satu
komputer dengan sebuah CPU dan
sejumlah terminal seperti pada gambar di bawah
ini.
Pengantar Basis Data
Lingkungan Basis Data
12
IBM Compatible
Gambar 4. Arsitektur Teleprocessing
Semua pemrosesan dikerjakan dalam
batasan fisik komputer yang sama. Terminal
untuk pemakai berjenis 'dumb',
yang tidak dapat berfungsi sendiri dan masingmasing
dihubungkan ke komputer pusat.
Terminal-terminal tersebut mengirimkan
pesan melalui subsistem pengontrol
komunikasi pada sistem operasi ke program
aplikasi, yang bergantian menggunakan
layanan DBMS.
Dengan cara yang sama, pesan
dikembalikan ke terminal pemakai. Arsitektur ini
menempatkan beban yang besar pada
komputer pusat yang tidak hanya
menjalankan program aplikasi tetapi
juga harus menyelesaikan sejumlah pekerjaan
pada terminal seperti format data
untuk tampilan di monitor.
Pengantar Basis Data
Lingkungan Basis Data
13
File-Server
Proses didistribusikan ke dalam
jaringan sejenis LAN (Local Area Network). File
server mengendalikan file
yang diperlukan oleh aplikasi dan DBMS. Meskipun
aplikasi dan DBMS dijalankan pada
masing-masing workstation tetapi tetap meminta
file dari file server jika
diperlukan (perhatikan gambar di halaman berikut ini).
Database
Workstation2
Workstation1 Workstation3
LAN
file server
request for data files returned
Gambar 5. Arsitektur File Server
Dengan cara ini, file server berfungsi
sebagai sebuah hard disk yang digunakan
secara bersamaan.
Kerugian arsitektur file-server adalah
:
- Terdapat lalulintas jaringan yang
besar
- Masing-masing workstation membutuhkan
copy DBMS
- Kontrol terhadap concurrency,
recovery dan integrity menjadi lebih kompleks
karena sejumlah DBMS mengakses file
secara bersamaan
Pengantar Basis Data
Lingkungan Basis Data
14
Client Server
Untuk mengatasi kelemahan
arsitektur-arsitektur di atas maka dikembangkan
arsitektur client-server. Client-server
menunjukkan cara komponen software
berinteraksi dalam bentuk sistem.
Sesuai dengan namanya, ada sebuah
pemroses client yang membutuhkan sumber
dan sebuah server yang
menyediakan sumbernya. Tidak ada kebutuhan client dan
server yang harus diletakkan
pada mesin yang sama. Secara ringkas, umumnya
server diletakkan pada satu
sisi dalam LAN dan client pada sisi yang lain.
Database
Client 2
client 1 Client 3
LAN
server (with DBMS)
request for data selected data returned
Gambar 6. Arsitektur Client Server
Dalam konteks basis data, client mengatur
interface berfungsi sebagai workstation
tempat menjalankan aplikasi basis
data. Client menerima permintaan pemakai,
memeriksa sintaks dan generate kebutuhan
basis data dalam SQL atau bahasa yang
lain. Kemudian meneruskan pesan ke server,
menunggu response dan bentuk
response untuk pemakai akhir. Server
menerima dan memproses permintaan basis
data kemudian mengembalikan hasil ke client.
Pengantar Basis Data
Lingkungan Basis Data
15
Proses-proses ini melibatkan pemeriksaan
autorisasi, jaminan integritas,
pemeliharaan data dictionary dan
mengerjakan query serta proses update. Selain itu
juga menyediakan kontrol terhadap concurrency
dan recovery.
Ada beberapa keuntungan jenis
arsitektur ini adalah :
• Memungkinkan akses basis data yang
besar
• Menaikkan kinerja
• Jika client dan server diletakkan
pada komputer yang berbeda kemudian CPU
yang berbeda dapat memproses aplikasi
secara paralel. Hal ini mempermudah
merubah mesin server jika hanya
memproses basis data.
• Biaya untuk hardware dapat
dikurangi
• Hanya server yang membutuhkan
storage dan kekuatan proses yang cukup
untuk menyimpan dan mengatur basis
data
• Biaya komunikasi berkurang
• Aplikasi menyelesaikan bagian operasi
pada client dan mengirimkan hanya
bagian yang dibutuhkan untuk akses
basis data melewati jaringan, menghasilkan
data yang sedikit yang akan dikirim
melewati jaringan
• Meningkatkan kekonsistenan
• Server dapat menangani
pemeriksaan integrity sehingga batasan perlu
didefinisikan dan validasi hanya di
satu tempat, aplikasi program mengerjakan
pemeriksaan sendiri
• Map ke arsitektur open-system dengan
sangat alami
Berikut ini adalah ringkasan fungsi client-server
Client Server
Mengatur user interface Menerima
dan memproses basis data
yang diminta dari client
Menerima dan memeriksa sintaks input
dari pemakai
Memeriksa autorisasi
Memproses aplikasi Menjamin tidak
terjadi pelanggaran
terhadap integrity constraint
Generate permintaan basis data dan
memindahkannya ke server
Melakukan query/pemrosesan update
dan memindahkan response ke client
Memberikan response balik
kepada
pemakai
Memelihara data dictionary
Menyediakan akses basis data secara
bersamaan
Menyediakan kontrol recovery
Pengantar Basis Data
Lingkungan Basis Data
16
Data Dictionary
Data dictionary adalah tempat
penyimpanan informasi yang menggambarkan data
dalam basis data. Data dictionary biasa
disebut juga dengan metadata atau data
mengenai data. Modul pengontrol
otorisasi menggunakan data dictionary untuk
memeriksa apakah seorang pemakai perlu
mempunyai wewenang.
Untuk mengerjakan pemeriksaan tersebut
data dictionary menyimpan :
• nama-nama pemakai yang mempunyai
wewenang untuk menggunakan DBMS
• nama-nama data item yang ada
dalam basis data
• data item yang dapat diakses
oleh pemakai dan jenis akses yang diijinkan,
misalnya: insert, update, delete atau
read
Sedangkan untuk memeriksa integritas
data, data dictionary menyimpan :
• nama-nama data item dalam basis
data
• jenis dan ukuran data item
• batasan untuk masing-masing data
item
Sistem data dictionary dapat
dibedakan atas sistem aktif dan pasif. Sistem aktif
selalu konsisten dengan struktur basis
data karena secara otomatis dikerjakan oleh
sistem. Sebaliknya, sistem pasif tidak
konsisten terhadap perubahan basis data yang
dilakukan oleh pemakai.
Pertemuan 3 dan 4 :
MODEL DATA RELASIONAL
Tujuan Instruksional
Khusus :
· Mahasiswa dapat
menjelaskan pengertian model data relasional, istilah-istilah
dalam model data relasional,
jenis-jenis kunci relasional, serta aturan-aturan yang
terdapat dalam model data relasional
· Mahasiswa dapat
menyebutkan keuntungan penggunaan model data relasional
· Mahasiswa dapat
mengetahui bahasa-bahasa yang digunakan pada model data
relasional
Deskripsi Singkat :
Relational Database
Management System (RDBMS)
telah menjadi software
pemrosesan data yang dominan saat ini.
Software ini menggambarkan generasi
kedua dari DBMS dan berbasiskan model
data relasional yang diajukan oleh E.F.
Codd (1970). Pada model relasional,
seluruh data terstruktur secara logika di dalam
sebuah relasi (tabel). Setiap relasi
mempunyai nama dan terdiri dari atribut-atribut
bernama (kolom). Setiap tuple (baris)
berisikan satu nilai per atribut. Kekuatan yang
besar dari model data relasional
adalah struktur logikal yang sederhana. Pada materi
ini akan dibahas mengenai terminologi
dan konsep struktural dasar dari model data
relasional, serta bahasa-bahasa yang
dapat digunakan untuk merubah data dan
pemanggilan data.
Bahan Bacaan :
1. Connoly, Thomas; Begg, Carolyn;
Strachan, Anne; Database Systems : A
Practical Approach to
Design, Implementation and Management, 3rd edition,
Addison Wesley, 2001.
2. Korth, H.; Database System
Concept, 4th
edition,
Mc Graw Hill, New York, 1991.
Pengantar Basis Data
SQL 1
STRUCTURE QUERY
LANGUAGE
Structure Query
Language (SQL)
merupakan komponen bahasa relational database
system. SQL merupakan
bahasa baku (ANSI/SQL), non procedural, dan berorientasi
himpunan (set-oriented language).
SQL dapat digunakan baik secara interaktif atau
ditempelkan (embedded) pada
sebuah program aplikasi.
Komponen-Komponen SQL
a. Data Definition Language (DDL)
:
Digunakan untuk mendefinisikan data
dengan menggunakan perintah : create,
drop, alter.
b. Data Manipulation Language (DML)
:
Digunakan untuk memanipulasi data
dengan menggunakan perintah : select,
insert, update,
delete.
Data Manipulation Language merupakan
bagian terpadu bahasa SQL. Perintahperintahnya
dapat dibuat secara interaktif atau
ditempelkan pada sebuah
program aplikasi. Pemakai hanya perlu
menentukan 'APA' yang ia inginkan,
DBMS menentukan 'BAGAIMANA' cara
mendapatkannya.
c. Data Control Language (DCL)
:
Digunakan untuk mengontrol hak para
pemakai data dengan perintah : grant,
revoke
Pengantar Basis Data
SQL 2
DATA DEFINITION
LANGUAGE
1. CREATE TABLE
Fungsi : membuat tabel
Sintaks : CREATE TABLE tbname
(col 1 data type data
spec,
col 2 data type data
spec,
.
.
PRIMARY KEY
(col1,……))
Contoh :
CREATE TABLE PERSONEL
(REGNO CHAR(10) NOT NULL,
NAME CHAR(45) NOT NULL,
ADDRESS CHAR(45),
BIRTH DATE NOT NULL WITH DEFAULT,
PRIMARY KEY (REGNO))
S Q L
STRUCTURED
QUERY
LANGUAGE
DEFINITION MANIPULATION C O N T R O L
D D L
CREATE
DROP
ALTER
D M L
SELECT
INSERT
UPDATE
DELETE
DCL
GRANT
REVOKE
Pengantar Basis Data
SQL 3
NULL
Spesifikasi NULL, NOT NULL,
NOT NULL WITH DEFAULT
NULL :
dapat diinterpretasikan sebagai nilai
yang tidak diketahui atau tidak tersedianya
suatu nilai. Null bukan berarti kosong
(blank) atau 0 (Nol)
NOT NULL :
pemakai atau program harus memberikan
nilai-nilai pada saat memasukkan record
NOT NULL WITH DEFAULT
:
nilai default disimpan pada
saat record dimasukkan tanpa nilai yang ditentukan untuk
kolom ini.
Nilai default-nya :
Nol untuk tipe field NUMERIC
Blank untuk tipe field CHARACTER
CURRENT DATE untuk tipe field DATE
CURRENT TIME untuk tipe field TIME
Pada saat membuat tabel, salah satu
atribut tersebut di atas dispesifikasikan pada
sebuah kolom.
2. CREATE VIEW
Fungsi : membuat tabel view.
View merupakan bentuk alternatif
penyajian data dari satu atau lebih tabel. View
dapat berisi semua atau sebagian kolom
yang terdapat pada tabel dimana kolom
tersebut didefinisikan.
Tujuan membuat view :
· Meningkatkan keamanan
data
· Meningkatkan
kemandirian data
· Penyederhanaan bagi
end user (data yang sedikit, nama-nama kolom yang baru
dan dapat dibaca dengan lebih baik)
Pengantar Basis Data
SQL 4
Properti :
· Tidak terdapatnya
data tambahan
· View mencakup subset
kolom dan / atau baris
· View dapat berisikan
data dari beberapa tabel dan / atau tabel-tabel view lainnya
· View dapat berisikan
perolehan data, misal : nilai rata-rata
· Manipulasi data
melalui view terbatas
Sintaks : CREATE VIEW viewname
(column1, column2, ……..)
AS SELECT statement
FROM tbname
[WITH CHECK OPTION]
Keterangan :
View-name : nama view yang akan
dibuat.
Column : nama atribut untuk view
Statement : atribut yang dipilih dari
tabel basis data.
Tabel-name : nama tabel basis data.
Contoh :
CREATE VIEW VPERSON (REGNO, NAME) AS
SELECT REGNO, NAME FROM PAUL.PERSONEL
3. CREATE INDEX
Fungsi : membuat index
Sintaks : CREATE [UNIQUE] INDEX
indexname
ON nama_table
(nama_kolom)
Contoh :
CREATE UNIQUE INDEX PRSONIDX
ON PERSONEL(REGNO)
Dengan indeks memungkinkan suatu tabel
diakses dengan urutan tertentu tanpa
harus merubah urutan fisik dari
datanya dan dapat pula diakses secara cepat
Pengantar Basis Data
SQL 5
melalui indeks yang dibuat berdasar
nilai field tertentu. Spesifikasi UNIQUE akan
menolak key yang sama dalam file.
4. DROP TABLE
Fungsi : menghapus Tabel
Sintaks : DROP TABLE tbname
Contoh : DROP TABLE PERSONEL
Dengan perintah itu obyek lain yang
berhubungan dengan tabel tersebut otomatis
akan dihapus atau tidak akan berfungsi
seperti :
- semua record dalam tabel akan
terhapus
- index dan view pada tabel akan
hilang
- deskripsi tabel akan hilang
5. DROP VIEW
Fungsi : menghapus view
Sintaks : DROP VIEW viewname
Contoh : DROP VIEW VPERSON
6. DROP INDEX
Fungsi : menghapus index
Sintaks : DROP INDEX indexname
Contoh : DROP INDEX PRSONIDX
7. ALTER
Fungsi : merubah atribut pada suatu
tabel
Pengantar Basis Data
SQL 6
Sintaks : ALTER TABLE tbname
MODIFY (nama_kolom
tipe_kolom)
ADD (nama_kolom
tipe_kolom [[before, nama_kolom]])
DROP (nama_kolom
tipe_kolom)
Contoh : merubah Tabel TABX dengan
menambah Field D.
ALTER TABLE TABX
ADD D CHAR(3)
DATA MANIPULATION
LANGUAGE
1. INSERT
Fungsi : menambah baris (record) baru
Sintaks : INSERT INTO tbname
(col1, ...) VALUES
(value1, ...)
Catatan :
Sintaks tersebut dapat digunakan jika
jumlah kolom = jumlah nilai, tetapi jika
dalam tabel semua kolom akan diisi
dapat digunakan sintaks berikut ini :
Sintaks : INSERT INTO tbname
VALUES (value1,
value2, ...)
Nilai-nilai diisikan sebanyak kolom
yang terdapat di tabel tersebut.
2. UPDATE
Fungsi : merubah record
Sintaks : UPDATE tbname SET field =
ekspresi
WHERE kondisi
Pengantar Basis Data
SQL 7
3. DELETE
Fungsi : menghapus record
Sintaks : DELETE FROM tbname
WHERE kondisi
4. SELECT
Fungsi : menampilkan record
Sintaks : SELECT [DISTINCT] colname
FROM tbname
[WHERE kondisi]
[GROUP BY kondisi]
[HAVING kondisi]
[ORDER BY kondisi]
Contoh Kasus DDL :
· Membuat Tabel (CREATE
TABLE)
1. CREATE TABLE S
(Sn Char(5) NOT NULL,
Sname Char(20) NOT NULL,
Status Smallint NOT NULL,
City Char(15) NOT NULL);
2. CREATE TABLE P
(Pn Char(6) NOT NULL,
Pname Char(20) NOT NULL,
Color Char(6) NOT NULL,
Weight Smallint NOT NULL);
3. CREATE TABLE SP
(Sn Char(5) NOT NULL,
Pn Char(6) NOT NULL,
Pengantar Basis Data
SQL 8
QTY INTEGER NOT NULL);
4. CREATE UNIQUE INDEX Sidx ON S(Sn);
CREATE UNIQUE INDEX Pidx ON P(Pn);
CREATE INDEX Sdx ON SP(Sn);
CREATE INDEX Pdx ON SP(Pn);
· Modifikasi Table P
dengan perintah :
RENAME COLUMN P.COLOR TO WARNA
ALTER TABLE P ADD (City CHAR(15) NOT
NULL)
· Membuat View (CREATE
VIEW)
1. Membuat view untuk suplier yang
statusnya lebih besar dari 15
CREATE VIEW GOOD_SUPPLIERS
AS SELECT Sn, Status, City FROM S
WHERE Status > 15;
2. Membuat view yang berisi supplier
yang tinggal di Paris
CREATE VIEW Paris_Suppliers
AS SELECT * FROM Supliers
WHERE City = ' Paris '
3. Membuat view dengan mengganti
nama_atributnya
CREATE VIEW Parts (PNum, Part_Name,
WT)
AS SELECT P#, Pname, Weight FROM Part
WHERE COLOR = 'Red'
Pengantar Basis Data
SQL 9
Contoh Kasus DML :
· Menambah record
(INSERT)
INSERT INTO S VALUES
('S1','Smith',20,'London');
INSERT INTO S VALUES
('S2','Jones,10,'Paris');
INSERT INTO S VALUES
('S3','Blake',30,'Paris')
Tabel S, P dan SP isikan dengan
data-data sebagai berikut :
TABEL S
Sn Sname Status City
S1 Smith 20 London
S2 Jones 10 Paris
S3 Blake 30 Paris
S4 Clark 20 London
S5 Adams 30 Athens
TABEL P
Pn Pname Warna Weight
City
P1 Nut Red 12 London
P2 Bolt Green 17 Paris
P3 Screw Blue 17 Rome
P4 Screw Red 14 London
P5 Cam Blue 12 Paris
P6 Cog Red 19 London
TABEL SP
Sn Pn qty
S1 P1 300
S1 P2 200
S1 P 40
S1 P4 200
S1 P5 100
S1 P6 100
S2 P1 300
S2 P2 400
S3 P2 200
S4 P2 200
S4 P4 300
Pengantar Basis Data
SQL 10
S4 P5 400
· Merubah record
(UPDATE)
1. Merubah data (record) pada tabel P
yang mempunyai nomor part P2,
warnanya dirubah menjadi Kuning dan
beratnya ditambah 5
UPDATE P SET Warna = 'Yellow',
Weight = Weight + 5
WHERE Pn = 'P2'
2. Merubah record pada tabel S,
statusnya menjadi dua kali status awal untuk
supplier yang bertempat tinggal di
kota London
UPDATE S SET Status = 2 * Status
WHERE City = 'London'
· Menghapus record
(DELETE)
Menghapus record pada tabel S yang
nomor supplier-nya S5
DELETE FROM S
WHERE Sn ='S5'
· Menampilkan record
(SELECT 1 tabel)
1. Menampilkan semua data supplier
SELECT * FROM S
atau
SELECT Sn, Sname, Status, City FROM S
Pengantar Basis Data
SQL 11
2. Menampilkan semua nilai Pn pada
tabel SP
SELECT Pn FROM SP
3. Menampilkan nomor supplier dan
status untuk supplier yang tinggal di Paris
SELECT Sn, Status FROM S
WHERE City ='Paris'
4. Menampilkan no.supplier yang
tinggal di Paris dengan status > 20
SELECT Sn FROM S
WHERE City ='Paris" AND Status
> 20
5. Menampilkan jumlah pengiriman P1
SELECT COUNT(*) FROM SP
WHERE Pn = 'P1'
6. Perintah untuk menghindari hasil
data yang sama terulang kembali (distinct)
SELECT DISTINCT Pn FROM SP
7. Menampilkan no.supplier dan status
bagi supplier yang tinggal di Paris dalam
urutan status menurun
SELECT Sn,Status FROM S
WHERE City = 'Paris'
ORDER BY Status desc
8. Menampilkan no.Part dari semua part
yang dipasok oleh lebih dari seorang
supplier
Pengantar Basis Data
SQL 12
SELECT Pn FROM SP
GROUP BY Pn
HAVING COUNT(*) > 1
9. Menampilkan semua part yang
nomornya dimulai dengan huruf C
SELECT * FROM P
WHERE Pname LIKE 'C%'
· Menampilkan record
(SELECT lebih dari satu tabel / JOIN)
1. Menampilkan semua supplier dan part
yang keduanya bertempat tinggal
pada kota yang sama
SELECT Sn, Sname,S tatus, S.City , Pn,
Pname, Warna, Weight FROM S,P
WHERE S.City = P.City
2. Menampilkan nama supplier yang
memasok barang dengan nomor part P2
SELECT Sname FROM S, SP
WHERE S.Sn = SP.Sn AND SP.Pn = 'P2'
3. Menampilkan nama supplier yang
memasok part berwarna merah
SELECT Sname FROM S, SP, P
WHERE S.Sn = SP.Sn
AND SP.Pn = P.Pn
AND P.COLOR = 'RED'
· Menampilkan record
(SELECT lebih dari satu tabel / SELECT Bertingkat)
1. Menampilkan nama supplier yang
memasok barang dengan nomor part P2
SELECT Sname FROM S WHERE Sn IN
(SELECT Sn FROM SP WHERE Pn = 'P2')
atau
SELECT Sname FROM S WHERE Sn = ANY
Pengantar Basis Data
SQL 13
(SELECT Sn FROM SP WHERE Pn = 'P2')
2. Menampilkan nama supplier yang
memasok part berwarna merah
SELECT Sname FROM S WHERE Sn IN
(SELECT Sn FROM SP WHERE Pn IN
(SELECT Pn FROM P WHERE Warna =
'Red'))
3. Menampilkan no.supplier dengan
nilai status lebih kecil daripada nilai
maksimum status yang ada pada tabel S
SELECT Sn FROM S WHERE Status <
(SELECT MAX(Status) FROM S)
4. Menampilkan nama supplier yang
tidak memasok barang dengan nomor part
P2
SELECT Sname FROM S WHERE Sn NOT IN
(SELECT Sn FROM SP WHERE Pn = 'P2')
5. Menampilkan semua nomor supplier
yang sama lokasinya dengan S1
SELECT Sn FROM S WHERE CITY =
(SELECT CITY FROM S WHERE Sn = 'S1')
· Fungsi Perhitungan
COUNT : jumlah baris dan kolom
SUM : jumlah nilai dam kolom
AVG : rata - rata nilai dalam kolom
MAX : nilai terbesar dalam kolom
MIN : nilai terkecil dalam kolom
Pengantar Basis Data
SQL 14
Untuk SUM dan AVG nilainya harus
numerik (INT, SMALLINT, FLOAT). Fungsifungsi
tsb jika dikenakan pada nilai yang
NULL maka nilainya akan diabaikan
kecuali untuk COUNT(*)
1. Menghitung jumlah supplier
SELECT COUNT(*) FROM S
atau
SELECT COUNT (Sn) FROM S
2. Menampilkan nomor part dan total
kuantitas pengiriman dari setiap part
SELECT Pn, SUM(QTY) FROM SP
GROUP BY Pn
3. Menghitung jumlah kuantitas dari P2
yang telah disupply
SELECT SUM (QTY) FROM SP WHERE Pn =
'P2'
4. Menampilkan jumlah pengiriman
barang dengan nomor P4 dan dipasok oleh
nomor suppplier S1
SELECT COUNT(*) FROM SP
WHERE Pn = 'P4' AND Sn = 'S1'
5. Menampilkan nomor part dan total
kuantitas dari masing-masing part
SELECT Pn, SUM(QTY) FROM SP
GROUP BY P3
Pengantar Basis Data
SQL 15
DATA CONTROL LANGUAGE
1. GRANT
Fungsi : digunakan untuk memberikan
izin akses kepada user
Sintaks : GRANT privileges ON
tbname TO user
Contoh :
GRANT SELECT ON CLUB TO PUBLIC
GRANT SELECT, INSERT, UPDATE, DELETE
ON CLUB TO USER01
2. REVOKE
Fungsi : digunakan untuk mencabut izin
akses kepada user
Sintaks : REVOKE privileges ON
tbname FROM user
Contoh :
REVOKE INSERT, UPDATE, DELETE ON CLUB
FROM USER01
REVOKE ALL ON CLUB FROM PUBLIC
Pengenalan DB2 1
PENGENALAN DB2
Apakah DB2 itu ?
DB2 merupakan relational database
management system (RDBMS) yang
memungkinkan pemakai melakukan CREATE,
UPDATE dan CONTROL terhadap
basis data relasional dengan
menggunakan Structured Query Language (SQL). DB2
didisain untuk memperoleh informasi
yang dibutuhkan dalam bisnis berskala kecil
maupun besar.
DB2 dapat dijalankan pada
bermacam-macam platform termasuk sistem mainframe
seperti MVS/ESA, VM, dan VSE; sistem midrange
seperti OS/400, AIX, dan sistem
yang berbasiskan UNIX lainnya; dan
sistem tunggal atau yang berbasiskan LAN
seperti OS/2, Windows, dan Linux
Data diatur oleh DB2 database
server yang dapat diakses dan dimanipulasi oleh
aplikasi pada PC workstations yang
berjalan dalam sistem operasi terkenal seperti
OS/2, DOS, Windows, Linux dan dengan
aplikasi yang dikembangkan untuk UNIX
workstations dari IBM, HP, dan
SUN. Aplikasi tersebut untuk menunjang client dan
server platform yang akan ditambahkan
di masa yang akan datang.
DB2 merupakan suatu sistem terbuka.
Selain untuk client platform yang disediakan
oleh IBM, semua basis data yang ada
dalam DB2 server dapat diakses dari
beberapa produk yang menunjang
protokol Distributed Relational Architecture
(DRDA). Hal tersebut dimaksudkan untuk
mengurangi kebutuhan komponen
tambahan dan gateway yang
mahal.
IBM juga menyediakan fasilitas untuk
mengakses RDBMS lainnya yang
menggunakan server aplikasi
DRDA yang spesifik. Fasilitas ini disebut Distributed
Database Connection
Services (DDCS).
Pengenalan DB2 2
Selain fungsi manejemen data, DB2 juga
memiliki alat yang mengijinkan pemakai
membuat bermacam-macam aplikasi untuk
mengakses dan bekerja dengan data.
Juga untuk mengembangkan aplikasi dari
multimedia dan object-oriented.
Perkembangan Basis
data IBM
Akhir th. 70-an
· System R : Riset IBM
menyusun teknologi relasional
Th. 80-an
· Produk Relational DB
untuk VM, VSE, MVS, AS/400, OS/2
· Riset selanjutnya :
SQL Language, Performance, Distributed Data
Th. 90-an
· Distributed
Relational Data Architecture (DRDA)
· DB2 untuk AIX, HP-UX,
SOLARIS, NT, SINIX, Parallel Edition,...
· DataHub,
DataPropagator, DataGuide, DataRefresher, DataJoiner,...
· Riset selanjutnya :
Optimization, Parallelism, Object-Relational
Sekarang (’98)
· Pemasok DB utama
dengan pendapatan $1 milyar dari DB Engine
· >2 PetaBytes Data
yang dikelola oleh produk-produk IBM DBMS
· IBM mengangani lebih
dari 96 hak paten teknologi Relational DB di dunia
· Pemimpin dalam
pembuatan SQL pada DB2 Team
Mengapa DB2 banyak
digunakan :
· Memenuhi kebutuhan
bisnis untuk aplikasi-aplikasi baru
· Scalable across
· Menawarkan Open
hardware dan system integration
· Integrated Tools dan Usability
enhancements
DB2 Family
IBM DB2 Family dari database
management systems menangani ruang lingkup
hardware platform yang besar mulai dari
mainframe sampai dengan mesin-mesin
Pengenalan DB2 3
yang berbasiskan Intel, server IBM dan
non IBM RISC serta workstation, massively
parallel processors, Sistem mid range
AS/400, dan sistem mainframe yang
dijalankan dengan sistem operasi VM,
VSE dan MVS. Dengan tambahan database
engines yang dijalankan pada
setiap platform tersebut. DB2 family termasuk solusi
“middleware” untuk pengaksesan
basis data yang heterogen, replikasi data dan
database systems
management yang
berjalan di seluruh platform.
Produk-produk DB2 yang dijalankan pada
OS/2 dan platform yang berhubungan
dengan produk tersebut dikenal sebagai
versi DB2 Common Server. Hal ini untuk
membedakan bahwa produk-produk
tersebut dapat dijalankan pada platform yang
sejenis, yang berisikan fungsi produk
yang serupa dan menggunakan bersama
source code yang sama.
Produk-produk DB2 Common Server merupakan
client/server RDBMS untuk server
IBM dan server non IBM, dan workstation
yang berisikan fungsi-fungsi dimana
aplikasi dapat dijalankan pada
lingkungan client yang luas, fungsi-fungsi untuk
menyimpan dan mengelola data, dan gateway
yang mengizinkan pengaksesan data
dengan SQL pada lingkungan yang heterogen.
DB2 Common Server memegang peranan
penting pada saat :
· Client/Server
Up-sizing
PC dan workstation yang
terintegrasi dengan LAN untuk menggunakan basis
data secara bersamaan
· Host Right-sizing
Memindahkan aplikasi-aplikasi ke platform
yang cocok untuk suatu pekerjaan.
Sistem right-sizing dapat
berisikan mesin-mesin dari semua ukuran, seperti :
- Komputer mainframe
- Komputer midrange
- Komputer mini
- Komputer personal
· Host Down-sizing
Memisahkan dan memindahkan
aplikasi-aplikasi mainframe ke client workstation
dan network server
Pengenalan DB2 4
· Access to Host
Enterprise Data
Pengaksesan data untuk decision
support processing (query, report, charting,…)
yang membutuhkan integrasi dari sistem
basis data yang berlainan untuk
membentuk basis data yang memberikan
informasi lebih luas.
· DB2 Host
Application Development
Produk-produk DB2 Family sama
dalam hal disain dan fungsi serta dapat
digunakan untuk mengembangkan host
applications pada workstation dan PC.
DB2 database server tersedia
untuk sistem-sistem sebagai berikut : MVS/ESA,
OS/400, VM, VSE, OS2, UNIX-based
platform (AIX, HP-UX, SOLARIS), Windows,
Linux.
Objek-Objek DB2
Kunci elemen pada Sistem Administrator
DB2 adalah pengaturan obyek-obyek DB2
yang dibuat oleh software DB2.
Obyek-obyek yang terdapat pada DB2 di antaranya :
Tabel dan View yang digunakan oleh application
programmer dan end user yang
merupakan bagian dari pemrosesan
aplikasi. Juga termasuk obyek-obyek yang
biasanya tidak terlihat pada tingkatan
aplikasi seperti table space, index, database,
dan storage group.
Pengenalan DB2 5
STORAGE GROUP 2
STORAGE GROUP 1
DB2 SUBSYSTEM
CATALOG
DIRECTORY
OTHER SYSTEM OBJECTS
DATABASE 1
TABLESPACE1
TABLE1
TABLESPACE2, etc
TABLE2, etc
INDEX1 INDEX2, etc
VIEW1 VIEW2 VIEW3, etc
VOLUME1
VOLUME2
VOLUME2
DATABASE 2, etc
Gambar 1. Objek-objek DB2
Pengenalan DB2 6
DB2 Database
DB2 Database berisikan
sekumpulan tabel dan indeks-indeks yang berhubungan
dengan tabel-tabel tersebut. Dengan
mendefinisikan tabel-tabel dan indeks-indeks
dapat membuat sebuah basis data yang
khusus. Kita dapat memberikan sebuah
nama pada basis data, tabel, dan
indeks tersebut, dan dapat melakukan start dan
stop sebuah basis data dalam sebuah
operasi tunggal. Juga dapat memberikan hak
akses ke seluruh obyek yang terdapat
dalam basis data.
Table Space
Table Space merupakan area
penyimpanan yang berisikan satu atau lebih tabel
DB2. Secara fisik, sebuah table space
berisikan 1 – 64 VSAM entry-sequenced data
INSTANCE 1
DATABASE 1
CATALOG
LOG
DATABASE 2
DB CONFIGURATION
FILE
DB CONFIGURATION
FILE
LOG
CATALOG
TABLE1 TABLE2, etc
INDEX1 INDEX2, etc
VIEW1 VIEW2
TABLE1 TABLE2, etc
Dbm config file
Gambar 2. Objek-objek Universal DB2
Index View
Pengenalan DB2 7
sets (ESDS) dan dapat
berisikan lebih dari 64 gigabytes data. Sebuah table space
dibagi dalam pages. Tiap-tiap page
dapat dibaca atau ditulis pada sebuah directaccess
storage device (DASD) dalam sebuah
operasi tunggal.
Table space dapat berisikan simple,
partition, atau segmented. Simple table space
berisikan satu atau lebih tabel yang
lengkap. Partition table space dibagi dalam unitunit
yang disebut partitions, setiap
unit dapat berisikan sebagian tabel. Pembagian
tabel ke dalam partisi-partisi
berdasarkan atas pendefinisian clustering index untuk
tabel tersebut. Hanya satu tabel saja
yang dapat disimpan dalam partition table
space. Segmented table
space dibagi dalam ukuran segment yang sama. Segment
yang diberikan berisikan baris-baris
yang hanya berasal dari satu tabel saja.
Segmented table space
memberikan
peningkatan kinerja melalui simple table space
untuk menyimpan banyak tabel karena
hanya segment-segment milik sebuah tabel
saja yang perlu diproses pada saat tabel
dibaca atau dikunci.
Sebuah table space menggambarkan
bagian dasar dari DB2 database recovery. Jika
sebuah table space berisikan
banyak tabel, semuanya akan di-recover menjadi
sebuah unit. Pada partition table
space, setiap partisi dapat di-recover secara
terpisah. Jika diinginkan, keseluruhan
basis data dapat juga di-recover menjadi
sebuah unit dengan menspesifikasikan
nama basis data tersebut daripada
menspesifikasikan nama table space
selama proses recovery.
Indeks
Sebuah indeks berisikan sekumpulan
pointer pada baris dalam sebuah tabel.
Terdapat sebuah entry untuk
setiap nilai dalam kolom dengan sebuah pointer yang
disebut ‘RID’ (Record ID) untuk
tiap baris yang berisikan nilai tersebut. Sebuah
indeks yang didefinisikan pada sebuah
tabel dapat digunakan untuk berbagai macam
kebutuhan. Sebagai contoh : sebuah
indeks dapat digunakan untuk melakukan
pengaksesan data yang lebih efisien
dengan mengizinkan individual atau multiple
row yang diakses secara
langsung bila dibandingkan dengan pembacaan data
secara keseluruhan pada sebuah tabel.
Pengenalan DB2 8
Unique index merupakan bentuk
khusus dari indeks yang dapat digunakan untuk
meyakinkan bahwa tidak terdapat dua
baris pada sebuah tabel yang mempunyai nilai
yang sama. Cluster index merupakan
bentuk lain dari indeks yang dapat digunakan
untuk mengontrol urutan pada seuah
tabel dimana tabel tersebut disimpan. Cluster
index juga dapat menentukan
bagaimana baris-baris dibagi dalam partisi-partisi pada
sebuah partition table space.
Setiap indeks disimpan pada sebuah
area penyimpanan yang disebut index space.
Sebuah index space berisikan 1
– 64 VSAM ESDS. Pada saat indeks didefinisikan,
DB2 secara otomatis membuat dan
mengurus indeks tersebut. Program aplikasi dan
pemakai interaktif tidak perlu secara
spesifik menentukan penggunaan indeks,
kecuali jika ingin melihat perbedaan
kinerjanya.
· CREATE Index
CREATE INDEX EMPX
ON EMP (EMPNO)
· Index Entries
EMPX EMP
800 RID 310 BENSON
310 RID 340 SETRIGHT
340 RID
300 SMITH
Storage Group
DB2 menggunakan storage group untuk
mengawasi cara bagaimana data pada DB2
yang secara fisik disimpan pada volume
DASD. Sebuah storage group berisikan
kumpulan volume DASD yang semuanya
harus terletak pada peralatan yang sama
jenisnya. Setiap storage group mempunyai
nama, dan nama tersebut digunakan
untuk menunjuk sebuah table space ke
sebuah storage group yang dipilih.
Pengenalan DB2 9
Sebuah simple table space harus
disimpan pada sebuah storage group tunggal.
Sedangkan partition table space,
partisi-partisi yang berbeda dapat disimpan pada
storage group yang berbeda. Sebuah index
space juga dapat ditentukan pada
storage group, dan index space bisa
ditentukan pada storage group yang sama atau
tidak sesuai dengan tabel yang
berhubungan dengan indeks tersebut.
Storage group dibuat oleh system
administrator DB2 dengan menggunakan perintah
SQL, khususnya fasilitas interaktif
seperti SPUFI atau QMF.
View
View adalah pilihan data
sebelum didefinisikan dimana sebuah aplikasi atau pemakai
akan bekerja. Meskipun View digunakan
sebagai “TABLE” oleh pemakai, data tetap
terletak pada table aslinya.
· CREATE View
CREATE VIEW VW1 AS
SELECT ID, NAME
FROM EMP
WHERE DP = ‘E11’
Pada saat sebuah view mendefinisikan
sebuah virtual table yang menggunakan data
pada base table, CREATE VIEW
tidak perlu menspesifikasikan basis data, storage
group, atau
pilihan-pilihan lainnya yang berhubungan dengan sebuah tabel fisik.
Perintah ALTER tidak dapat digunakan
untuk sebuah view; untuk merubah view,
view tersebut harus dihapus dan dibuat
kembali. Menghapus view hanya
mempengaruhi terhadap program yang
menggunakan view tersebut; merubah view
tidak mempengaruhi tabel-tabel yang
digunakan oleh view tersebut.
Kegunaan View
- Memudahkan pengkodean :
View mendefinisikan permintaan user
- Keamanan :
Penghapusan data dari view tidak dapat
diakses oleh user
Pengenalan DB2 10
Alokasi Disk Pada
DB/2
Dibagi ke dalam blok 4K yang disebut PAGES
· Sebuah page adalah
sebuah unit dari transmisi I/O
· Sebuah baris harus
terletak dalam satu PAGE
DB2 Catalog
· Sekumpulan tabel yang
berisi informasi mengenai segala sesuatu yang
didefinisikan dalam sistem
· Digunakan oleh DB2
untuk menentukan jalur akses dan mengatur sumbersumber
· Struktur tabel catalog
dibedakan oleh platform
DB2 catalog terdiri dari
sekumpulan tabel yang berisikan informasi mengenai seluruh
obyek DB2 yang telah didefinisikan. Catalog
juga berisikan informasi mengenai
otorisasi, recovery, dan keterhubungan
yang ada di antara tabel catalog yang
berbeda.
DDL Dan DB2/* Catalog
DESIGN DDL DB2/*
DECISION CATALOG
DEPT TABLES
CREATE
ALTER
EMP DROP
· CREATE Table
CREATE TABLE TB1
(C1 CHAR(6) NOT NULL,
C2 INTEGER NOT NULL WITH DEFAULT,
C3 DECIMAL (5,2),
Pengenalan DB2 11
C4 VARCHAR (2,4),
PRIMARY KEY (C1))
CREATE TABLE TB4
(COLA SMALLINT,
COLB CHAR(6),
FOREIGN KEY (COLB)
REFERENCES TB1
ON DELETE CASCADE )
· ALTER Table
Definisi tabel dapat dimodifikasi
dengan menggunakan perintah ALTER. Perintah
ALTER dapat menambah kolom baru, juga
dapat menambah atau menghapus
primary atau foreign key.
Perubahan lainnya seperti merubah jenis dan panjang
kolom yang sudah ada harus melakukan
penghapusan tabel terlebih dahulu,
mengulangi pembuatan tabel, kemudian tabel
tersebut di-load kembali.
ALTER TABLE TB1
ADD C5 CHAR (2,4)
TB1
C1 C2 C3 C4 C5
ALTER Table Tidak :
- Merubah tipe data
- Merubah panjang kolom
- Merubah atribut null
- Tidak bisa merubah panjang kolom
- Menghilangkan sebuah kolom
· DROP
DROP INDEX IX1
DROP TABLE TB1
DROP VIEW VW1
Pengenalan DB2 12
Pada saat tabel dihapus, data yang
berada di dalamnya akan hilang, view atau
indeks yang didefinisikan pada tabel
tersebut juga hilang. Jika tabel berada pada
partition table space, tabel tersebut
tidak dapat dihapus. Sebaiknya tabel dihapus
dengan menggunakan perintah DROP untuk
table space.
DB2/* Utilities
DB2 Utilities digunakan untuk
menjalankan fungsi-fungsi sistem administrasi yang
berbeda-beda, seperti loading
tables, recover, repairing data, serta monitoring dan
tuning sistem DB2.
Utilitas terbagi dalam 3 kategori :
1. Utilitas setup atau move
2. Utilitas maintenance
3. Utilitas recovery
· Utilitas Setup dan
Move
Fungsi Utility DB2
MVS Universal DB
LOAD LOAD IMPORT
LOAD
UNLOAD DSNTIAUL
REORG-UNLOAD ONLY
DSN1COPY
EXPORT
MIGRATE
· Utilitas Maintenance
Fungsi Utility DB2
MVS Universal DB
REORGANIZE REORG REORG
REORGCHK
UPDATE STATISTICS RUNSTATS RUNSTATS
· Utilitas Recovery
Fungsi Utility DB2
MVS Universal DB
BACKUP COPY
MERGECOPY
BACKUP
RECOVER RECOVER
QUIESCE
REPORT
CHECK
REPAIR
RESTORE
ROLLFORWARD
QUIESCE
CHECK
Pengenalan DB2 13
Load
Utilitas Load digunakan untuk
memuat (loading) data ke dalam tabel. Tabel yang
di-load dapat berupa tabel yang
kosong atau tabel yang sudah ada isinya. Load
utility dapat digunakan untuk
menambah baris baru ke dalam sebuah tabel atau
menempatkan kembali (replace)
baris yang sudah ada ke dalam sebuah tabel.
DB2 RECOVERY
Recover mebutuhkan image
copies yang dibuat secara periodik oleh database
DB2. Copy utility dapat
digunakan untuk membuat image copy dari sebuah table
space atau sebagian table
space. Selama pemrosesan, DB2 secara otomatis
menyimpan seluruh perubahan terhadap
basis data yang ada ke dalam sebuah
log. Jika terdapat
masalah terhadap data, yang mungkin disebabkan oleh
kesalahan I/O pada media penyimpanan
atau kegagalan sistem yang
menyebabkan data tidak konsisten, maka
data dapat di-restore dengan
menggunakan image copy yang ada
dan menggunakan informasi dari log untuk
memasukkan kembali seluruh perubahan
yang telah dilakukan terhadap basis
data setelah image copy dibuat.
Pengenalan DB2 14
Incremental
Image Copies
INCREMENTAL COPIES
Incremental copy menunjukkan bagian table
space yang berubah saja yang
disimpan setelah salinan (copy)
terakhir dilakukan. Utilitas MERGECOPY dapat
digunakan untuk menggabungkan salinan
terkahir yang lengkap dan seluruh
incremental copy untuk membuat sebuah
salinan tunggal table space. Salinan
yang berlawanan ini kemudian dapat
digunakan untuk restore basis data dengan
menggunakan utilitas RECOVERY.
Hanya perubahan yang dibuat setelah
incremental copy terakhir yang perlu
dimasukkan.
Old Full
Image Copy
COPY
DB2
Database
MERGECOPY Composite
Image Copy RECOVER Recovered
Database
LOG
DB2
Database
COPY
Gambar 3. Database Recovery
Pengenalan DB2 15
COPY
Utilitas Copy digunakan untuk
membuat image copy sebuah table space atau
sekumpulan data pada sebuah table
space. Utilitas ini dapat melakukan full
image copy atau incremental
copy. Full image copy berisikan salinan seluruh
pages pada sebuah table
space atau sekumpulan data table space. Incremental
copy berisikan hanya pages
yang mengalami perubahan saja sejak utilitas
COPY dijalankan pada table
space atau sekumpulan data table space.
MERGECOPY
Utilitas Mergecopy digunakan
untuk menggabungkan beberapa incremental copy
bersama-sama untuk membuat incremental
copy tunggal yang berlawanan.
Utilitas ini juga dapat digunakan
untuk menggabungkan full image copy dengan
satu atau lebih incremental copy untuk
membuat full image copy yang baru.
QUIESCE
Utilitas Quiesce digunakan
untuk menentukan sebuah quiesce point, dimana
data pada sebuah tabel dihubungkan
dengan referential constraints yang berada
dalam keadaan yang konsisten.
REPORT
Utilitas Report digunakan untuk
mengidentifikasi seluruh table space yang terlibat
dalam referential constraint dan
menentukan lokasi quiesce point dalam DB2 log.
Informasi ini digunakan bersama
utilitas RECOVER untuk mendapatkan kembali
(recover) table space.
RECOVER
Utilitas Recover digunakan
untuk restore basis data pada keadaan yang
sekarang. Utilitas ini dapat digunakan
untuk me-recover satu atau lebih table
space, sekumpulan data
dalam table space, sekumpulan pages yang
berhubungan dengan kesalahan-kesalahan
tertentu, atau page tunggal. Untuk
sebuah partition table space,
satu atau lebih partisi dapat di-recover. Data direcover
dengan menggunakan image copy yang
baru dan memasukkan
perubahan-perubahan yang telah
disimpan di log. Utilitas Recover juga dapat
Pengenalan DB2 16
digunakan untuk me-recover indeks.
Indeks di-recover dengan membuat indeks
kembali menggunakan data dari tabel
yang berhubungan.
MODIFY
Utilitas Modify digunakan untuk
menghapus image copy dari sistem.
CHECK
Utilitas Check digunakan untuk
menentukan apakah indeks konsisten dengan
datanya. Jika terdapat
ketidak-konsistenan, maka utilitas RECOVER digunakan
untuk membuat indeks kembali. Utilitas
Check juga digunakan untuk menguji
pelanggaran terhadap referential
integrity.
REPAIR
Utilitas Repair digunakan untuk
memperbaiki data secara langsung.
RUNSTATS
Utilitas Runstats menyusun data
pada utilisasi ruang DASD dan efisiensi indeks,
yang kemudian digunakan untuk
memperbaiki statistik yang disimpan pada DB2
catalog. Statistik ini digunakan
untuk analisis kinerja yang dikerjakan sebagai
bagian dari jalur seleksi pada proses bind.
RUNSTATS dapat bermanfaat juga
untuk mengidentifikasi kinerja,
mengukur pengaruh perubahan yang dibuat oleh
sistem, dan menentukan table space atau
indeks yang perlu diorganisasikan
kembali.
REORG
Utilitas Reorg digunakan untuk
mengatur kembali table space atau indeks.
Utilitas ini akan menentukan kembali
ruang bebas dan menempatkan kembali
urutan fisiknya yang telah
didefinisikan oleh clustering index. Utilitas ini juga
memperoleh kembali ruang yang hilang
pada fragmentasi tabel atau tabel yang
telah dihapus. Reorganisasi
tabel-tabel dan indeks-indeks akan meningkatkan
efisiensi akses
Pengenalan DB2 17
MERUBAH
DATA
Utility DB2/* Quiesce
· Memperoleh lock
shared pada sebuah daftar table
· Menentukan time
stamp agar tabel konsisten
· Mencatat point
quiesce dalam katalog
Utility Recovery
Universal DB
· Backup, Restore,
Rollforward
· Pada level basis data
· Recovery forward tergantung pada jenis
log
Utility Roll Forward
pada DB2/2 dan DB2/6000
· Untuk akhir dari log
· Untuk time stamp yang
spesifik
· Option “AND STOP”
untuk transaksi yang tidak selesai
DATA
DATA
LAMA
COPY
PERUBAHAN
LOG
DATA
Recovered
Damaged
Gambar 4. Data Recovery
Model Entity Relationship 1
MODEL ENTITY –
RELATIONSHIP
Model Entity
Relationship
suatu penyajian data dengan
menggunakan Entity dan Relationship
Entity
Obyek yang dapat dibedakan dalam dunia
nyata
Entity set
Kumpulan dari entity yang sejenis
Berupa :
– Obyek secara fisik : Rumah, Kendaraan,
Peralatan
– Obyek secara konsep : Pekerjaan , Perusahaan,
Rencana
Relationship
Hubungan yang terjadi antara satu atau
lebih entity.
Relationship set
Kumpulan relationship yang sejenis.
Atribut
Karakteristik dari entity atau
relationship, yang menyediakan penjelasan detail
tentang entity atau relationship
tersebut.
Nilai Atribut
Suatu data aktual atau informasi yang
disimpan pada suatu atribut di dalam suatu
entity atau relationship.
PEGAWAI KERJA PROYEK
Model Entity Relationship 2
Jenis-jenis Atribut :
- Key
Atribut yang digunakan untuk
menentukan suatu entity secara unik.
- Atribut Simple
Atribut yang bernilai tunggal.
- Atribut Multivalue
Atribut yang memiliki sekelompok nilai
untuk setiap instan entity.
- Atribut Composite
Suatu atribut yang terdiri dari
beberapa atribut yang lebih kecil yang mempunyai
arti tertentu.
TglLahir
NIP Nama
PEGAWAI
Gelar
Nama
Depan
Nama
Tengah
Nama
Belakang
NAMA
PEGAWAI
Model Entity Relationship 3
- Atribut Derivatif
Suatu atribut yang dihasilkan dari
atribut yang lain.
Derajat dari
Relationship
Menjelaskan jumlah entity yang
berpartisipasi dalam suatu relationship
- Unary Degree (Derajat
Satu)
- Binary Degree
(Derajat Dua)
- Ternary Degree
(Derajat Tiga)
TglLahir Umur
PEGAWAI
PEGAWAI
PEGAWAI LAPOR
PEGAWAI KERJA DEPARTEMEN
KERJA
PROYEK
DEPARTEMEN
Model Entity Relationship 4
Cardinality Ratio
Constraint
- Menjelaskan batasan
jumlah keterhubungan satu entity dengan entity lainnya.
- Jenis Cardinality
Ratio
1 : 1
Pegawai Milik
Kendaraan
r1
P1 l l l k1
r2
p2 l l l k2
r3
p3 l l l k3
. . .
1 : N / N : 1
Pegawai Kerja
Departemen
r1
P1 l l l d1
r2
p2 l l l d2
r3
p3 l l l d3
r4
p4 l l .
. .
PEGAWAI KERJA
DEPARTEMEN
PEGAWAIAIII
AIII
MILIK KENDARAAN
1 1
1 N
Model Entity Relationship 5
M : N
Pegawai Kerja Proyek
r1
P1 l l l pr1
r2
p2 l l l pr2
r3
p3 l l l pr3
r4
l .
. .
Participation
Constraint
Menjelaskan apakah keberadaan suatu
entity tergantung pada hubungannya
dengan entity lain .
Terdapat 2 macam Participation
Constraint :
- Total Participation
Keberadaan suatu entity tergantung
pada hubungannya dengan entity lain.
N 1
PEGAWAI PUNYA BAGIAN
- Partial Participation
Keberadaan suatu entity tidak
tergantung pada hubungannya dengan entity
lain.
PEGAWAI KERJA PROYEK
M N
Model Entity Relationship 6
N 1
Weak Entity
- Weak Entity adalah
suatu Entity dimana keberadaan dari entity tersebut
tergantung dari keberadaan entity
lain.
- Entity yang merupakan
induknya disebut Identifying Owner dan relationshipnya
disebut Identifying Relationship.
- Weak Entity selalu
mempunyai Total Participation constraint dengan Identifying
Owner.
Simbol-simbol ER-Diagram
Notasi Arti
1. 1. Entity
2. 2. Weak Entity
3. 3. Relationship
PEGAWAI TANGGUNGAN
……… NAMA
…
MILIK
PEGAWAI KERJA PROYEK
NOPEG ………
…
Model Entity Relationship 7
4. 4. Identifying Relationship
5. 5. Atribut
6. 6. Atribut Primary Key
7. 7. Atribut Multivalue
8. 8. Atribut Composite
9. 9. Atribut Derivatif
Model Entity Relationship 8
Contoh Penggambaran
Diagram ER :
PEGAWAI
NOPEG BEKERJA
1
1
1
1
PROYEK
M
1
NAPEG
1
1
TANGGUNGAN
MILIKI
JNSKEL
1
1
HUB
1
1
ALAMAT
1
1
KDPOS
1
1
ALM1
1
1
UMUR
1
1TGLLHR
1
1
BAGIAN
NOBAG
1
NABAG
NAPRO
1
JAM
1
1
NOPRO
1
LOKASI
1
SELESAIKAN
KONTROL
M
1
M
1
1
1
1
1
M
1
N
1
M
1
1
1
1
PIMPIN
PUNYA
Nama
LOKASI
1
Model Entity Relationship 9
Transformasi dari ERD
ke Database Relasional
1. Setiap tipe Entity dibuat suatu
relasi yang memuat semua atribut simple,
sedangkan untuk atribut composite
hanya dimuat komponen-komponennya
saja.
NOPEG ALM1 KDPOS
PEGAWAI ALAMAT
PEGAWAI (NOPEG, ALM1,
KDPOS, …….)
2. Setiap relasi yang mempunyai
atribut multivalue, buatlah relasi baru dimana
Primary Keynya merupakan gabungan dari
Primary Key dari relasi tersebut
dengan atribut multivalue.
LOKPR(NOPRO, LOKASI)
3. Setiap Unary Relationship 1:N, pada
relasi perlu ditambahkan suatu foreign
key yang menunjuk ke nilai primary
keynya.
PEGAWAI (NOPEG, …..,
SUPERVISOR-ID)
PROYEK
NOPRO ……… LOKASI
PEGAWAI KONTROL
1
NOPEG …….
N
Model Entity Relationship 10
4. Setiap Unary Relationship M:N,
buatlah relasi baru dimana primary
keynya merupakan gabungan dari dua
atribut dimana keduanya menunjuk
ke primary key relasi awal dengan
penamaan yang berbeda.
KOMBAR (NOBAR, NOKOMP
, JUMLAH)
5. Setiap Binary Relationship 1:1,
dimana Participation Constraint keduanya
total, buatlah suatu relasi gabungan
dimana Primary Keynya dapat dipilih
salah satu.
PEGAWAI (NOPEG, ... ,
NOPRO, ...)
6. Setiap Binary Relationship 1:1 dan
salah satu Participation Constraintnya
Total, maka Primary Key pada relasi
yang Participation Constraintnya Partial
menjadi Foreign Key pada relasi yang
lainnya.
BAGIAN (NOBAG, ... ,
MANAGER)
NOBAR …….
BARANG TERDIRI JUMLAH
M
N
1
1
NOPRO
PEGAWAI KERJA PROYEK
NOPEG
1 1
1
……
1
1
……
1
NOBAG
PEGAWAI PIMPIN 1
BAGIAN
NOPEG
1
1
1
1
1
1
1
……
1
1
……
1
Model Entity Relationship 11
7. Setiap Binary Relationship 1:1,
dimana kedua Participation Constraintnya
partial, maka selain kedua relasi
perlu dibuat relasi baru yang berisi Primary
Key gabungan dari Primary Key kedua
tipe Entity yang berelasi.
PEKERJAAN ( NOPEG,
NOPRO, …)
8. Setiap Binary Relationship 1 : N,
dimana tipe Entity yang bersisi N
mempunyai Participation Constraint
Total, maka Primary Key pada relasi
yang bersisi 1 dijadikan Foreign Key
pada relasi yang bersisi N.
PROYEK (NOPRO, ... ,
NOBAG)
9. Setiap Binary Relationship 1 : N,
dimana tipe Entity yang bersisi N
mempunyai Participation Constraint
partial, buatlah relasi baru dimana
Primary Keynya merupakan gabungan dari
Primary Key kedua tipe Entity
yang berelasi.
BAGIAN PUNYA PROYEK
NOBAG
1 N
1
1
1
1
NOPRO
1
……
1
1
……
1
PEGAWAI KERJA PROYEK
NOPEG
1
1
1
1
1
1
1
NOPRO
……
1
……
Model Entity Relationship 12
PEKERJAAN (NOPEG,
NOPRO, ……)
10. Setiap Binary Relationship M:N,
buatlah relasi baru dimana Primary Keynya
merupakan gabungan dari Primary Key
kedua tipe Entity yang berelasi.
PEKERJAAN (NOPEG,
NOPRO, …..)
11. Setiap Ternary Relationship,
buatlah relasi baru dimana Primary Keynya
merupakan gabungan dari Primary Key
ketiga tipe Entity yang berelasi.
PEKERJAAN ( NOPEG,
NOPRO , NOKOT)
PEGAWAI KERJA PROYEK
NOPEG
1
1
1
1
N
1
1
NOPRO
1
……
1
1
……
1
PEGAWAI KERJA PROYEK
NOPEG
1 N
M
1
NOPRO
……
1
……
PEGAWAI KERJA PROYEK
NOPEG
1
1
NOPRO
……
1
……
KOTA
NOKOT ……
Model Entity Relationship 13
12. Setiap tipe Weak Entity, dibuat
suatu relasi yang memuat semua atributnya
dimana Primary Keynya adalah gabungan
dari Partial Key dan Primary Key
dari relasi induknya (identifying
owner).
TANGGUNGAN (NOPEG,
NAMA, ….)
Hasil Transformasi
dari Diagram ER ke database relasional :
Skema Database :
PEGAWAI (NOPEG, NAPEG, ALM1,
KDPOS, TGLLAH, UMUR, SUPERVISORID,
NOBAG)
BAGIAN (NOBAG, NABAG,
LOKASI, MANAGER)
PROYEK (NOPRO, NAPRO, NOBAG)
LOKPR (NOPRO, LOKPR)
PEKERJAAN (NOPEG, NOPRO, JAM)
TANGGUNGAN (NOPEG, NAMA, JNSKEL,
HUB)
PEGAWAI
NOPEG
1
1
N
1
1
1
1
1
……
1
1
NAMA
1
……
PUNYA TANGGUN1GAN
Normalisasi 1
NORMALISASI
Definisi
Normalisasi adalah suatu teknik untuk
mengorganisasi data ke dalam tabel-tabel
untuk memenuhi kebutuhan pemakai di
dalam suatu organisasi.
Tujuan dari
normalisasi
q Untuk menghilangkan
kerangkapan data
q Untuk mengurangi
kompleksitas
q Untuk mempermudah
pemodifikasian data
Proses Normalisasi
q Data diuraikan dalam
bentuk tabel, selanjutnya dianalisis berdasarkan
persyaratan tertentu ke beberapa
tingkat.
q Apabila tabel yang
diuji belum memenuhi persyaratan tertentu, maka tabel
tersebut perlu dipecah menjadi
beberapa tabel yang lebih sederhana sampai
memenuhi bentuk yang optimal.
Tahapan Normalisasi
Bentuk Tidak Normal
Menghilangkan perulangan group
Bentuk Normal Pertama (1NF)
Menghilangkan ketergantungan sebagian
Bentuk Normal Kedua (2NF)
Menghilangkan ketergantungan transitif
Bentuk Normal Ketiga (3NF)
Menghilangkan anomali-anomali hasil
dari
ketergantungan fungsional
Bentuk Normal Boyce-Codd (BCNF)
Menghilangkan Ketergantungan
Multivalue
Bentuk Normal Keempat (4NF)
Menghilangkan anomali-anomali yang
tersisa
Bentuk Normal Kelima
Normalisasi 2
Ketergantungan
Fungsional
Definisi :
Atribut Y pada relasi R dikatakan
tergantung fungsional pada atribut X (R.X ---> R.Y),
jika dan hanya jika setiap nilai X
pada relasi R mempunyai tepat satu nilai Y pada R.
Misal terdapat skema database
Pemasok-barang : Pemasok (No-pem, Na-pem)
Tabel PEMASOK-BARANG
No-pem Na-pem
P01 Baharu
P02 Sinar
P03 Harapan
Ketergantungan fungsional dari tabel
PEMASOK-BARANG adalah :
No-pem ---> Na-pem
Ketergantungan
Fungsional Penuh
Definisi :
Atribut Y pada relasi R dikatakan
tergantung fungsional penuh pada atribut X pada
relasi R, jika Y tidak tergantung pada
subset dari X ( bila X adalah key gabungan)
Contoh :
Tabel KIRIM-BARANG( No-pem, Na-pem,
No-bar, Jumlah)
No-pem Na-pem No-bar Jumlah
P01 Baharu B01 1000
P01 Baharu B02 1500
P01 Baharu B03 2000
P02 Sinar B03 1000
P03 Harapan B02 2000
Normalisasi 3
Ketergantungan
fungsional :
No-pem à Na-pem
No-bar, No-pem à
Jumlah
(Tergantung penuh terhadap keynya)
Ketergantungan
Transitif
Definisi :
Atribut Z pada relasi R dikatakan
tergantung transitif pada atribut X , jika atribut Y
tergantung pada atribut X pada relasi
R dan atribut Z tergantung pada atribut Y pada
relasi R. ( X à
Y, Y à
Z , maka
X à Z
)
Contoh :
No-pem Kode-kota Kota No-bar Jumlah
P01 1 Jakarta B01 1000
P01 1 Jakarta B02 1500
P01 1 Jakarta B03 2000
P02 3 Bandung B03 1000
P03 2 Surabaya B02 2000
Ketergantungan
transitif :
No-pem à Kode-kota
Kode-kota à
Kota,
maka
No-pem à Kota
Bentuk Normal Kesatu
(1NF)
Suatu relasi dikatakan sudah memenuhi
Bentuk Normal Kesatu bila setiap data
bersifat atomik yaitu setiap irisan
baris dan kolom hanya mempunyai satu nilai data
Normalisasi 4
Tabel KIRIM-1
(Unnormal)
No-pem Kode-kota Kota No-bar Jumlah
P01 1 Jakarta B01 1000
B02 1500
B03 2000
P02 3 Bandung B03 1000
P03 2 Surabaya B02 2000
Tabel KIRIM-2 (1NF)
No-pem Kode-kota Kota No-bar Jumlah
P01 1 Jakarta B01 1000
P01 1 Jakarta B02 1500
P01 1 Jakarta B03 2000
P02 3 Bandung B03 1000
P03 2 Surabaya B02 2000
Diagram
Ketergantungan Fungsional
Kode-kota
No-pem
Kota
Jumlah
No-bar
Bentuk Normal Kedua
(2NF)
Suatu relasi dikatakan sudah memenuhi
Bentuk Normal Kedua bila relasi tersebut
sudah memenuhi bentuk Normal kesatu,
dan atribut yang bukan key sudah
tergantung penuh terhadap keynya.
Normalisasi 5
Tabel PEMASOK-1 (2NF)
No-pem Kode-kota Kota
P01 1 Jakarta
P02 3 Bandung
P03 2 Surabaya
Bentuk Normal Ketiga
(3NF)
Suatu relasi dikatakan sudah memenuhi
Bentuk Normal ketiga bila relasi tersebut
sudah memenuhi bentuk Normal kedua dan
atribut yang bukan key tidak tergantung
transitif terhadap keynya.
Tabel KIRIM-3 (3NF)
No-pem No-bar Jumlah
P01 B01 1000
P01 B02 1500
P01 B03 2000
P02 B03 1000
P03 B02 2000
Tabel PEMASOK-2 (3NF)
Tabel PEMASOK-3 (3NF)
No-pem Kode-kota Kode-kota Kota
P01 1 1 Jakarta
P02 3 2 Surabaya
P03 2 3 Bandung
Contoh : Normalisasi
pada database perkuliahan
Asumsi :
q Seorang mahasiswa
dapat mengambil beberapa mata kuliah
q Satu mata kuliah
dapat diambil oleh lebih dari satu mahasiswa
q Satu mata kuliah
hanya diajarkan oleh satu dosen
q Satu dosen dapat
mengajar beberapa mata kuliah
q Seorang mahasiswa
pada mata kuliah tertentu hanya mempunyai satu nilai
Normalisasi 6
Tabel MAHASISWA-1 (
Unnormal )
No-Mhs Nama
- Mhs
Jurusan Kode- MK Nama-MK Kode-Dosen Nama-
Dosen
Nilai
2683 Welli MI MI350 Manajamen DB B104
Ati A
MI465 Analsis Prc. Sistem B317 Dita B
5432 Bakri Ak. MI350 Manajemen DB B104
Ati C
AKN201 Akuntansi Keuangan D310 Lia B
MKT300 Dasar Pemasaran B212 Lola A
Tabel MAHASISWA-2 (
1NF )
No-Mhs Nama-
Mhs
Jurusan Kode-MK Nama-MK Kode-Dosen
Nama-
Dosen
Nilai
2683 Welli MI MI350 Manajamen DB B104
Ati A
2683 Welli MI MI465 Analsis Prc.
Sistem B317 Dita B
5432 Bakri Ak. MI350 Manajemen DB B104
Ati C
5432 Bakri Ak. AKN201 Akuntansi
Keuangan D310 Lia B
5432 Bakri Ak. MKT300 Dasar Pemasaran
B212 Lola A
Diagram Ketergantungan
Fungsional
Nama_Mhs
No-Mhs Jurusan
Nilai
Nama-MK
Kode-MK Kode-Dosen
Nama-Dosen
Normalisasi 7
Tabel KULIAH (2NF)
Kode-MK Nama-MK Kode-Dosen Nama-Dosen
MI350 Manajamen DB B104 Ati
MI465 Analsis Prc. Sistem B317 Dita
AKN201 Akuntansi Keuangan D310 Lia
MKT300 Dasar Pemasaran B212 Lola
Tabel MAHASISWA-3
(3NF)
No-Mhs Nama-Mhs Jurusan
2683 Welli MI
5432 Bakri Ak.
Tabel NILAI (3NF)
No-Mhs Kode MK Nilai
2683 MI350 A
2683 MI465 B
5432 MI350 C
5432 AKN201 B
5432 MKT300 A
Tabel MATAKULIAH
(3NF)
Kode-MK Nama-MK Kode-Dosen
MI350 Manajamen DB B104
MI465 Analsis Prc. Sistem B317
AKN201 Akuntansi Keuangan D310
MKT300 DasarPemasaran B212
Normalisasi 8
Tabel DOSEN (3NF)
Kode- Dosen Nama-Dosen
B104 Ati
B317 Dita
B310 Lia
B212 Lola
Tidak ada komentar:
Posting Komentar