Pages

Selasa, 20 November 2012


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