sistem basis data - UIGM | Login Student

advertisement
Pemrograman C
Pengenalan Borland C++
Diktat
SISTEM BASIS DATA
Sistem Informasi S1
Fakultas Ilmu Komputer
Suzan Agustri, S.Kom., M.T.I.
NPM
:
Nama :
Kelas
:
UNIVERSITAS INDO GLOBAL MANDIRI
2017
Suzan Agustri
1
Sistem Basis Data
S I L A B U S
Kode Mata Kuliah
Jumlah SKS
Kelas
Nama Mata Kuliah
Jadwal
Dosen
Bahasa Pengantar
: MKB303
: 4 SKS
: 121401
: Sistem Basis Data
: Kamis
: Suzan Agustri, S.Kom., M.T.I.
: Bahasa Indonesia
Objektif
Mata kuliah ini merupakan teori basis data yang sangat mendasar tanpa memerlukan
prasyarat pengetahuan tentang basis data sebelumnya. Materi mata kuliah ini
difokuskan pada tiga hal pokok, yaitu: dasar-dasar basis data, model data dan
bagaimana membuat model data yang baik. Selain itu, mata kuliah ini juga membahas
contoh-contoh aturan yang berlaku di lapangan yang terefleksikan dalam perancangan
basis data. Sejumlah aspek lain yang relevan, seperti DBMS, SQL, aplikasi basis data dan
perkembangan teknologi terbaru juga dibahas dalam mata kuliah ini.
Penilaian: Kehadiran 5%, Quiz 20%, Tugas 20%, UTS 25%, UAS 30%.
Buku Teks Utama: Thomas Connolly, Carolyn Begg, Database Systems 4th Ed., 2005
Prasyarat: -
Jadwal Perkuliahan:
Jadwal perkuliahan berikut merupakan panduan yang dapat berubah sewaktu-waktu sesuai kebutuhan
perkuliahan berdasarkan pertimbangan dosen.
Suzan Agustri
Sistem Basis Data
Minggu ke1&2
Tanggal
16 & 23-Feb-17
Topik
Pengantar Basis Data
3
2-Mar-17
Lingkungan Basis Data
3&4
2 & 9-Mar-17
4
9-Mar-17
QUIZ
5
16-Mar-17
Structured Query Language
5&6
16 & 23-Mar-17
Entity Relationship Diagram
7&8
30-Mar & 6-Apr-17
8
6-Apr-17
9 & 10
13 & 20-Apr-17
Model Enhanced Entity Relationship
10 & 11
20 & 27-Apr-17
Proses Perancangan Basis Data
11
27-Apr-17
QUIZ
12
4-Mei-17
Database Control
13
11-Mei-17
Studi Kasus 1 Perancangan Basis Data
Model Data Relasional
Normalisasi
UTS
Studi Kasus 2 Perancangan Basis Data
14
18-Mei-17
Studi Kasus 3 Perancangan Basis Data
Studi Kasus 4 Perancangan Basis Data
UAS
Suzan Agustri
Sistem Basis Data
Pengantar Basis Data
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, penjadwalan

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
Program Aplikasi Mahasiswa
file
mahasiswa
mahasiswa
Program Aplikasi Mata Kuliah
file
mata kuliah
mata kuliah
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 banyak
record pada banyak file yang terpisah, yang disebut juga Sistem Pemrosesan File. Dimana
masing-masing file diperuntukkan hanya untuk satu program aplikasi saja. Perhatikan
Suzan Agustri
1
Sistem Basis Data
Pengantar Basis Data
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 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 mahasiswa
dan juga pada suatu file yang terdiri dari record mata kuliah. Kerangkapan data seperti
ini dapat menyebabkan pemborosan tempat penyimpanan dan biaya akses 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 mungkin dalam 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. Ketergantungan Data (Data Dependence)
Apabila terjadi perubahan atau kesalahan pada program aplikasi maka pemakai tidak
dapat mengakses data.
Suzan Agustri
2
Sistem Basis Data
Pengantar Basis 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.
Program Aplikasi Mahasiswa
mahasiswa
DBMS
Basis data
Universitas
Program Aplikasi Mata kuliah
mata kuliah
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 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 bentuk 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.
DBMS (DataBase Management System) adalah Perangkat Lunak yang menangani semua
pengaksesan ke basis data
Suzan Agustri
3
Sistem Basis Data
Pengantar 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, dan sebagainya.
Data yang disimpan dalam basis data merupakan data operasional dari suatu enterprise.
Contoh data operasional: data keuangan, data mahasiswa, data pasien
Entitas (Entity)
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: Natawiangga, Nadya, Fatahillah
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.
Suzan Agustri
4
Sistem Basis Data
Pengantar Basis Data
Record Data
Kumpulan Isi Elemen data yang saling berhubungan.
Contoh: kumpulan atribut NPM, nama, alamat, tanggal lahir dari Entitas Mahasiswa berisikan:
"2009210123", "Natawiangga", "Jl. Sirsak 28 Palembang", "11 Oktober 1991".
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
o
Memonitor siapa yang mengakses basis data
o
Mengatur pemakaian basis data
o
Memeriksa security, integrity, recovery dan concurrency
Program Utilitas yang digunakan oleh DBA:
o
Loading Routines
Membangun versi utama dari basis data
o
Reorganization Routines
Mengatur/mengorganisasikan kembali basis data
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
Suzan Agustri
5
Sistem Basis Data
Pengantar Basis Data
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, dan lain-lain)
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 keperluankeperluan khusus seperti aplikasi Artificial Intelligence, Sistem Pakar, Pengolahan Citra,
dan lain-lain, yang bisa saja mengakses basis data dengan atau tanpa DBMS yang
bersangkutan.
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.
Suzan Agustri
6
Sistem Basis Data
Pengantar Basis 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
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
Suzan Agustri
7
Sistem Basis Data
Lingkungan Basis Data
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 berbeda-beda 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 belakang 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.
Suzan Agustri
8
Sistem Basis Data
Lingkungan Basis Data
2. Tingkat Konseptual (Conseptual Level)
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
Suzan Agustri
9
Sistem Basis Data
Lingkungan Basis Data
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
Suzan Agustri
10
Sistem Basis Data
Lingkungan Basis Data
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 sebagai berikut:
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 produkproduk 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 System) adalah kumpulan program yang mengkoordinasikan
semua kegiatan yang berhubungan dengan basis data. Dengan adanya berbagai
tingkatan pandangan dalam suatu basis data maka untuk mengakomodasikan masingmasing pengguna dalam piranti lunak manajemen basis data biasanya terdapat bahasabahasa tertentu yang disebut Data Sub Language.
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, dan sebagainya). Secara umum maka setiap pengguna basis data
memerlukan bahasa yang dipakai sesuai tugas dan fungsinya.
Suzan Agustri
11
Sistem Basis Data
Lingkungan Basis Data
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, dan lain-lain
(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:
- 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 interaktif atau di-compile dulu.
Suzan Agustri
12
Sistem Basis Data
Lingkungan Basis Data
MODEL DATA
Model data adalah kumpulan konsep yang terintegrasi yang menggambarkan data,
hubungan antara data dan batasan-batasan data dalam 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)
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.
Suzan Agustri
13
Sistem Basis Data
Lingkungan Basis Data
4. Melayani kontrol concurrency
Sebuah DBMS harus menyediakan mekanisme yang menjamin basis data ter-update
secara benar pada saat beberapa pemakai melakukan perubahan terhadap basis data
yang sama secara bersamaan.
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.
Suzan Agustri
14
Sistem Basis Data
Lingkungan Basis Data
KOMPONEN DBMS
Programmers
Users
DBA
Application
Programs
Queries
Database
Schema
DBMS
DML
Preprocessor
Query
Processor
DDL
Compiler
Program
Object Code
Database
Manager
Dictionary
Manager
Access
Method
File
Manager
System
Buffer
Database
dan
Data Dictionary
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 dibutuhkan untuk memenuhi permintaan. Kemudian DM
memanggil file manager untuk menyelesaikan permintaan
3. File Manager
Memanipulasi penyimpanan file dan mengatur alokasi ruang penyimpanan pada disk.
Suzan Agustri
15
Sistem Basis Data
Lingkungan Basis Data
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
Database
Manager
Integrity
Checker
Data
Manager
Access
Method
System
Buffer
Query
Processor
Dictionary
Manager
Authorization
Control
Command
Processor
Query
Optimizer
Transaction
Manager
Scheduler
Buffer
Manager
Recovery
Manager
File
Manager
Database
dan
Data
Dictionary
Gambar 3. Komponen Software Utama Database Manager
Suzan Agustri
16
Sistem Basis Data
Lingkungan Basis Data
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.
Suzan Agustri
17
Sistem Basis Data
Lingkungan Basis Data
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.
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
masing-masing
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.
Suzan Agustri
18
Sistem Basis Data
Lingkungan Basis Data
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).
Workstation2
Workstation1
Workstation3
LAN
request for data
files returned
Database
file server
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
Suzan Agustri
19
Sistem Basis Data
Lingkungan Basis Data
Client Server
Untuk mengatasi kelemahan arsitektur-arsitektur di atas maka dikembangkan arsitektur clientserver. 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.
Client 2
client 1
Client 3
LAN
request for data
selected data returned
Database
server (with DBMS)
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.
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.
Suzan Agustri
20
Sistem Basis Data
Lingkungan Basis Data
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
Mengatur user interface
Menerima dan memeriksa sintaks input dari
pemakai
Memproses aplikasi
Generate permintaan basis data dan
memindahkannya ke server
Memberikan response balik kepada pemakai
Server
Menerima dan memproses basis data yang
diminta dari client
Memeriksa autorisasi
Menjamin tidak terjadi pelanggaran
terhadap integrity constraint
Melakukan query/pemrosesan update dan
memindahkan response ke client
Memelihara data dictionary
Menyediakan akses basis data secara
bersamaan
Menyediakan kontrol recovery
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
Suzan Agustri
21
Sistem Basis Data
Lingkungan Basis Data
•
nama-nama data item yang ada dalam basis data
•
data item yang dapat diakses oleh pemakai dan jenis akses yang diizinkan, 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.
Suzan Agustri
22
Sistem Basis Data
Model Data Relasional
MODEL DATA RELASIONAL
PENGERTIAN BASIS DATA RELASIONAL
Pada model relasional, basis data akan "disebar" atau dipilah-pilah ke dalam berbagai
tabel dua dimensi. Setiap tabel selalu terdiri atas lajur mendatar yang disebut baris data
(row/record) dan lajur vertikal yang biasa disebut dengan kolom (column/field).
Contoh Tabel dan keterhubungannya:
MHS
NPM
Nama
Alamat
10296832
Natawiangga
Palembang
10296126
Anisa
Palembang
31296500
Fatahillah
Lampung
41296525
Farah
Semarang
50096487
Nadya
Bogor
21196353
Andre
Semarang
MKUL
KDMK
MTKULIAH
SKS
KK021
P. Basis Data
2
KD132
SIM
3
KU122
Pancasila
2
NILAI
NPM
KDMK
MID
FINAL
10296832
KK021
60
75
10296126
KD132
70
90
31296500
KK021
55
40
41296525
KU122
90
80
21196353
KU122
75
75
50095487
KD132
80
0
10296832
KD132
40
30
Suzan Agustri
23
Sistem Basis Data
•
Model Data Relasional
Keuntungan Basis Data Relasional
1. Bentuknya sederhana
2. Mudah melakukan berbagai operasi data
•
Istilah dalam Basis Data Relasional:
Relasi
Relasi merupakan sebuah tabel yang terdiri dari beberapa kolom dan beberapa baris.
Relasi menunjukkan adanya hubungan diantara sejumlah entitas yang berasal dari
himpunan entitas yang berbeda. Entitas merupakan individu yang mewakili sesuatu yang
nyata dan dapat dibedakan dengan yang lainnya.
Atribut
Atribut merupakan kolom pada sebuah relasi. Setiap entitas pasti memiliki aribut yang
mendeskripsikan karakter dari entitas tersebut. Penentuan atau pemilihan atribut-atribut
yang relevan bagi sebuah entitas merupakan hal penting dalam pembentukan model
data.
Tuple
Tuple merupakan baris pada sebuah relasi atau kumpulan elemen-elemen yang saling
berkaitan menginformasikan tentang suatu entitas secara lengkap. Satu record mewakili
satu data atau informasi tentang seseorang, misalnya: NPM, nama mahasiswa, alamat,
kota, dan lain-lainl.
Domain
Kumpulan nilai yang valid untuk satu atau lebih atribut
Derajat (degree)
Jumlah atribut dalam sebuah relasi
Cardinality
Jumlah tuple dalam sebuah relasi
Suzan Agustri
24
Sistem Basis Data
Model Data Relasional
atribut
MHS
NPM
Relasi
Nama
Alamat
10296832
Natawiangga
Palembang
10296126
Anisa
Palembang
31296500
Fatahillah
Lampung
41296525
Farah
Semarang
50096487
Nadya
Bogor
21196353
Andre
Semarang
Baris
Domain
Derajat (Degree)
RELATIONAL KEY
Super key
Satu atribut/kumpulan atribut yang secara unik mengidentifikasi sebuah tuple di dalam
relasi
Candidate key
Suatu atribut atau satu set minimal atribut yang mengidentifikasikan secara unik suatu
kejadian spesifik dari entitas. Atribut di dalam relasi yang biasanya mempunyai nilai unik.
Satu set minimal dari atribut menyatakan secara tak langsung dimana kita tidak dapat
membuang beberapa atribut dalam set tanpa merusak kepemilikan yang unik.
Primary key
Merupakan
satu
atribut
atau
satu
set
minimal
atribut
yang
tidak
hanya
mengidentifikasikan secara unik suatu kejadian spesifik, tapi juga dapat mewakili setiap
Suzan Agustri
25
Sistem Basis Data
Model Data Relasional
kejadian dari suatu entitas. Candidate key yang dipilih untuk mengidentifikasikan tuple
secara unik dalam relasi. Setiap kunci candidate key punya peluang menjadi primary
key, tetapi sebaiknya dipilih satu saja yang dapat mewakili secara menyeluruh terhadap
entitas yang ada.
Alternate key
Merupakan candidate key yang tidak dipakai sebagai primary key atau Candidate Key
yang tidak dipilih sebagai primary key.
Foreign key (Kunci Tamu)
Atribut dengan domain yang sama yang menjadi kunci utama pada sebuah relasi tetapi
pada relasi lain atribut tersebut hanya sebagai atribut biasa. Kunci tamu ditempatkan
pada entitas anak dan sama dengan primary key induk direlasikan.
Alternate key
Candidate key
Primary key
MHS
NPM

Nama
Alamat
10296832
Natawiangga
Palembang
10296126
Anisa
Palembang
31296500
Fatahillah
Lampung
41296525
Farah
Semarang
50096487
Nadya
Bogor
21196353
Andre
Semarang
Relational Integrity Rules
1. Null
Nilai suatu atribut yang tidak diketahui dan tidak cocok untuk baris (tuple) tersebut.
Nilai (konstanta) Null digunakan untuk menyatakan/mengisi atribut-atribut yang
nilainya memang belum siap/tidak ada.
Suzan Agustri
26
Sistem Basis Data
Model Data Relasional
2. Entity Integrity
Tidak ada satu komponen primary key yang bernilai null.
3. Referential Integrity
Suatu domain dapat dipakai sebagai kunci primer bila merupakan atribut tunggal
pada domain yang bersangkutan.
BAHASA PADA BASIS DATA RELATIONAL
Menggunakan bahasa query → pernyataan yang diajukan untuk mengambil informasi.
Bahasa Query (Query Language) lebih ditekankan pada aspek pencarian data dari
dalam tabel. Aspek pencarian ini sedemikian penting karena merupakan inti dari upaya
untuk pengelolaan data.
Bahasa query terbagi 2:
1. Bahasa Formal
Bahasa query yang diterjemahkan dengan menggunakan simbol-simbol matematis.
Contoh :
•
Aljabar Relasional
Bahasa query prosedural → pemakai menspesifikasikan data apa yang
dibutuhkan dan bagaimana untuk mendapatkannya.
•
Kalkulus Relasional
Bahasa query non-prosedural → pemakai menspesifikasikan data apa yang
dibutuhkan tanpa menspesifikasikan bagaimana untuk mendapatkannya.
Terbagi 2:
1. Kalkulus Relasional Tuple
2. Kalkulus Relasional Domain
2. Bahasa Komersial
Bahasa Query yang dirancang sendiri oleh programmer menjadi suatu program
aplikasi agar pemakai lebih mudah menggunakannya (user friendly).
Contoh:
• QUEL
Berbasis pada bahasa kalkulus relasional
Suzan Agustri
27
Sistem Basis Data
Model Data Relasional
• QBE
Berbasis pada bahasa kalkulus relasional
• SQL
Berbasis pada bahasa kalkulus relasional dan aljabar relasional
•
Contoh-contoh Basis Data Relasional:
-
DB2 → IBM
-
ORACLE → Oracle
-
SYBASE → Powersoft
-
INFORMIX → Informix
-
Microsoft Access → Microsoft
Suzan Agustri
28
Sistem Basis Data
Structured Query Language
STRUCTURED QUERY LANGUAGE
Structured 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
SQL
STRUCTURED
QUERY
LANGUAGE
DEFINITION
Suzan Agustri
MANIPULATION
CONTROL
DDL
DML
DCL
CREATE
DROP
ALTER
SELECT
INSERT
UPDATE
DELETE
GRANT
REVOKE
29
Sistem Basis Data
Structured Query Language
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))
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.
Suzan Agustri
30
Sistem Basis Data
Structured Query Language
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)
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.
Table-name
: nama tabel basis data.
Suzan Agustri
31
Sistem Basis Data
Structured Query Language
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 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:
Suzan Agustri
DROP VIEW VPERSON
32
Sistem Basis Data
Structured Query Language
6. DROP INDEX
Fungsi: menghapus index
Sintaks:
DROP INDEX indexname
Contoh:
DROP INDEX PRSONIDX
7. ALTER
Fungsi: merubah atribut pada suatu tabel
Sintaks:
Contoh:
ALTER TABLE tbname
MODIFY
(nama_kolom tipe_kolom)
ADD
(nama_kolom tipe_kolom [[before, nama_kolom]])
DROP
(nama_kolom tipe_kolom)
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.
Suzan Agustri
33
Sistem Basis Data
Structured Query Language
2. UPDATE
Fungsi: merubah record
Sintaks:
UPDATE tbname SET field = ekspresi
WHERE kondisi
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.
2.
Suzan Agustri
CREATE TABLE S
(Sn
Char(5)
NOT NULL,
Sname
Char(20)
NOT NULL,
Status
Smallint
NOT NULL,
City
Char(15)
NOT NULL);
(Pn
Char(6)
NOT NULL,
Pname
Char(20)
NOT NULL,
Color
Char(6)
NOT NULL,
Weight
Smallint
NOT NULL);
CREATE TABLE P
34
Sistem Basis Data
3.
Structured Query Language
CREATE TABLE SP
4.
(Sn
Char(5)
NOT NULL,
Pn
Char(6)
NOT NULL,
QTY
INTEGER
NOT NULL);
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 supplier 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'
Suzan Agustri
35
Sistem Basis Data
Structured Query Language
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
Color
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
Suzan Agustri
36
Sistem Basis Data
Structured Query Language
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
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 Color = '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'
Suzan Agustri
37
Sistem Basis Data

Structured Query Language
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
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
Suzan Agustri
38
Sistem Basis Data
7.
Structured Query Language
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
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'
Suzan Agustri
39
Sistem Basis Data

Structured Query Language
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
(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
Suzan Agustri
40
Sistem Basis Data
MIN
Structured Query Language
: nilai terkecil dalam kolom
Untuk SUM dan AVG nilainya harus numerik (INT, SMALLINT, FLOAT). Fungsi-fungsi
tersebut 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 di-supply
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
Suzan Agustri
41
Sistem Basis Data
Structured Query Language
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
Suzan Agustri
42
Sistem Basis Data
Entity Relationship Diagram
ENTITY RELATIONSHIP DIAGRAM
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.
PEGAWAI
KERJA
PROYEK
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.
Suzan Agustri
43
Sistem Basis Data
Entity Relationship Diagram
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.
TglLahir
Gelar
Nama
NIP
PEGAWAI

Atribut Composite
Suatu atribut yang terdiri dari beberapa atribut yang lebih kecil yang mempunyai arti
tertentu.
Nama
Depan
Nama
Tengah
Nama
Belakang
NAMA
PEGAWAI
Suzan Agustri
44
Sistem Basis Data
-
Entity Relationship Diagram
Atribut Derivatif
Suatu atribut yang dihasilkan dari atribut yang lain.
TglLahir
Umur
PEGAWAI
DERAJAT DARI RELATIONSHIP
Menjelaskan jumlah entity yang berpartisipasi dalam suatu relationship

Unary Degree (Derajat Satu)
PEGAWAI

Binary Degree (Derajat Dua)
PEGAWAI

LAPOR
KERJA
DEPARTEMEN
Ternary Degree (Derajat Tiga)
PEGAWAI
KERJA
DEPARTEMEN
PROYEK
Suzan Agustri
45
Sistem Basis Data
Entity Relationship Diagram
Cardinality Ratio Constraint

Menjelaskan batasan jumlah keterhubungan satu entity dengan entity lainnya.

Jenis Cardinality Ratio
1:1
Pegawai
Milik
Kendaraan
r1
P1 

 k1
r2
p2 

 k2
r3
p3 

.
.
 k3
.
1
PEGAWAI
1
MILIK
KENDARAAN
AI
1:M / M:1
Pegawai
Kerja
Departemen
r1
P1 

r2

r3

r4

p2 
p3 
p4 
.
Suzan Agustri
 d2
 d3
.
.
M
PEGAWAI
 d1
1
KERJA
DEPARTEMEN
46
Sistem Basis Data
Entity Relationship Diagram
M:N
Pegawai
Kerja
Proyek
r1
P1 

r2

r3

r4

p2 
p3 
.
 pr1
 pr2
 pr3
.
.
M
PEGAWAI
N
KERJA
PROYEK
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.
M
PEGAWAI

1
PUNYA
BAGIAN
Partial Participation
Keberadaan suatu entity tidak tergantung pada hubungannya dengan entity lain.
M
PEGAWAI
Suzan Agustri
1
KERJA
PROYEK
47
Sistem Basis Data
Entity Relationship Diagram
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 relationship-nya disebut

Identifying Relationship.
Weak Entity selalu mempunyai Total Participation constraint dengan Identifying Owner.

NOPEG
NAMA
………
…
PEGAWAI
MILIK
………
…
TANGGUNGAN
SIMBOL-SIMBOL ER-DIAGRAM
Notasi
Arti
1.
1. Entity
2.
2. Weak Entity
3.
3. Relationship
4.
4. Identifying Relationship
Suzan Agustri
48
Sistem Basis Data
Entity Relationship Diagram
5.
5. Atribut
6.
6. Atribut Primary Key
7.
7. Atribut Multivalue
8.
8. Atribut Composite
9.
9. Atribut Derivatif
Suzan Agustri
49
Sistem Basis Data
Entity Relationship Diagram
Contoh Penggambaran Diagram ER :
KDPOS
ALM1
ALAMAT
NAPEG
NOPEG
NOBAG
BEKERJA
NABAG
LOKASI
M
1
PEGAWAI
UMUR
BAGIAN
1
M
TGLLHR
1
PIMPIN
1
1
1
KONTROL
M
SELESAIKAN
MILIKI
PUNYA
M
JAM
M
N
PROYEK
TANGGUNGAN
NOPRO
LOKASI
NAPRO
Nama
JNSKEL
Suzan Agustri
HUB
50
Sistem Basis Data
Entity Relationship Diagram
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
PEGAWAI
KDPOS
ALAMAT
PEGAWAI (NOPEG, ALM1, KDPOS, …….)
2.
Setiap relasi yang mempunyai atribut multivalue, buatlah relasi baru dimana Primary
Key-nya merupakan gabungan dari Primary Key dari relasi tersebut dengan atribut
multivalue.
NOPRO
LOKASI
………
PROYEK
LOKPR (NOPRO, LOKASI)
3.
Setiap Unary Relationship 1:M, pada relasi perlu ditambahkan suatu foreign key yang
menunjuk ke nilai primary key-nya.
NOPEG
…….
1
KONTROL
PEGAWAI
M
PEGAWAI (NOPEG, ….., SUPERVISOR-ID)
Suzan Agustri
51
Sistem Basis Data
4.
Entity Relationship Diagram
Setiap Unary Relationship M:N, buatlah relasi baru dimana primary key-nya merupakan
gabungan dari dua atribut dimana keduanya menunjuk ke primary key relasi awal
dengan penamaan yang berbeda.
NOBAR
…….
M
BARANG
TERDIRI
JUMLAH
N
KOMBAR (NOBAR, NOKOMP , JUMLAH)
5.
Setiap Binary Relationship 1:1, dimana Participation Constraint keduanya total, buatlah
suatu relasi gabungan dimana Primary Key-nya dapat dipilih salah satu.
NOPEG
……
1
PEGAWAI
……
NOPRO
1
KERJA
PROYEK
PEGAWAI (NOPEG, ... , NOPRO, ...)
6.
Setiap Binary Relationship 1:1 dan salah satu Participation Constraint-nya Total, maka
Primary Key pada relasi yang Participation Constraint-nya Partial menjadi Foreign Key
pada relasi yang lainnya.
NOPEG
PEGAWAI
NOBAG
……
1
PIMPIN
……
1
BAGIAN
BAGIAN (NOBAG, ... , MANAGER)
Suzan Agustri
52
Sistem Basis Data
7.
Entity Relationship Diagram
Setiap Binary Relationship 1:1, dimana kedua Participation Constraint-nya partial, maka
selain kedua relasi perlu dibuat relasi baru yang berisi Primary Key gabungan dari Primary
Key kedua tipe Entity yang berelasi.
NOPEG
NOPRO
……
1
PEGAWAI
……
1
KERJA
PROYEK
PEKERJAAN ( NOPEG, NOPRO, …)
8.
Setiap Binary Relationship 1 : M, dimana tipe Entity yang bersisi M mempunyai
Participation Constraint Total, maka Primary Key pada relasi yang bersisi 1 dijadikan
Foreign Key pada relasi yang bersisi M.
NOPRO
……
NOBAG
1
BAGIAN
……
M
PUNYA
PROYEK
PROYEK (NOPRO, ... , NOBAG)
9.
Setiap Binary Relationship 1 : M, dimana tipe Entity yang bersisi M mempunyai
Participation Constraint partial, buatlah relasi baru dimana Primary Key-nya merupakan
gabungan dari Primary Key kedua tipe Entity yang berelasi.
NOPEG
……
PEGAWAI
NOPRO
M
KERJA
……
1
PROYEK
PEKERJAAN (NOPEG, NOPRO, ……)
Suzan Agustri
53
Sistem Basis Data
Entity Relationship Diagram
10. Setiap Binary Relationship M:N, buatlah relasi baru dimana Primary Key-nya merupakan
gabungan dari Primary Key kedua tipe Entity yang berelasi.
NOPEG
NOPRO
……
PEGAWAI
M
KERJA
……
N
PROYEK
PEKERJAAN (NOPEG, NOPRO, …..)
11. Setiap Ternary Relationship, buatlah relasi baru dimana Primary Key-nya merupakan
gabungan dari Primary Key ketiga tipe Entity yang berelasi.
NOPEG
NOPRO
……
KERJA
PEGAWAI
……
PROYEK
KOTA
NOKOT
……
PEKERJAAN ( NOPEG, NOPRO , NOKOT)
Suzan Agustri
54
Sistem Basis Data
Entity Relationship Diagram
12. Setiap tipe Weak Entity, dibuat suatu relasi yang memuat semua atributnya dimana
Primary Key-nya adalah gabungan dari Partial Key dan Primary Key dari relasi induknya
(identifying owner).
NOPEG
NAMA
……
PEGAWAI
1
PUNYA
N
……
TANGGUNGAN
TANGGUNGAN (NOPEG, NAMA, ….)
Hasil Transformasi dari Diagram ER ke database relasional:
Skema Database:
PEGAWAI
(NOPEG, NAPEG, ALM1, KDPOS, TGLLAH, UMUR, SUPERVISOR-ID,
NOBAG)
BAGIAN
(NOBAG, NABAG, LOKASI, MANAGER)
PROYEK
(NOPRO, NAPRO, NOBAG)
LOKPR
(NOPRO, LOKPR)
PEKERJAAN
(NOPEG, NOPRO, JAM)
TANGGUNGAN
(NOPEG, NAMA, JNSKEL, HUB)
Suzan Agustri
55
Sistem Basis Data
Normalisasi
NORMALISASI
Definisi
Normalisasi adalah suatu teknik untuk mengorganisasi data ke dalam tabel-tabel untuk
memenuhi kebutuhan pemakai di dalam suatu organisasi.
Tujuan dari normalisasi

Untuk menghilangkan kerangkapan data

Untuk mengurangi kompleksitas

Untuk mempermudah pemodifikasian data
Proses Normalisasi

Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan
tertentu ke beberapa tingkat.

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 (UNF/Unnormarilzed Form)
Menghilangkan perulangan grup
Bentuk Normal Pertama (1NF/First Normalized Form)
Menghilangkan ketergantungan sebagian
Bentuk Normal Kedua (2NF/Second Normalized Form)
Menghilangkan ketergantungan transitif
Bentuk Normal Ketiga (3NF/Third Normalized Form)
Menghilangkan anomali-anomali hasil dari
ketergantungan fungsional
Bentuk Normal Boyce-Codd (BCNF/Boyce-Codd Normalized Form)
Menghilangkan Ketergantungan Multivalue
Bentuk Normal Keempat (4NF/Fourth Normalized Form)
Menghilangkan anomali-anomali yang tersisa
Bentuk Normal Kelima
Suzan Agustri
56
Sistem Basis Data
Normalisasi
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
Ketergantungan fungsional:
No-pem  Na-pem
No-bar, No-pem  Jumlah (Tergantung penuh terhadap key-nya)
Suzan Agustri
57
Sistem Basis Data
Normalisasi
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
P01
1
P01
Kota
No-bar
Jumlah
Jakarta
B01
1000
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
Tabel KIRIM-1 (UNF)
No-pem
Kode-kota
P01
1
Kota
Jakarta
No-bar
Jumlah
B01
1000
B02
1500
B03
2000
P02
3
Bandung
B03
1000
P03
2
Surabaya
B02
2000
Suzan Agustri
58
Sistem Basis Data
Normalisasi
Tabel KIRIM-2 (1NF)
No-pem
Kode-kota
P01
1
P01
Kota
No-bar
Jumlah
Jakarta
B01
1000
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 key-nya.
Tabel PEMASOK-1 (2NF)
No-pem
Kode-kota
P01
1
Jakarta
P02
3
Bandung
P03
2
Surabaya
Suzan Agustri
Kota
59
Sistem Basis Data
Normalisasi
Tabel KIRIM-3
No-pem
No-bar
Jumlah
P01
B01
1000
P01
B02
1500
P01
B03
2000
P02
B03
1000
P03
B02
2000
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 key-nya.
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
Tabel KIRIM-3 (3NF)
No-pem
No-bar
Jumlah
P01
B01
1000
P01
B02
1500
P01
B03
2000
P02
B03
1000
P03
B02
2000
Suzan Agustri
60
Sistem Basis Data
Normalisasi
Contoh: Normalisasi pada database perkuliahan
Asumsi:

Seorang mahasiswa dapat mengambil beberapa mata kuliah

Satu mata kuliah dapat diambil oleh lebih dari satu mahasiswa

Satu mata kuliah hanya diajarkan oleh satu dosen

Satu dosen dapat mengajar beberapa mata kuliah

Seorang mahasiswa pada mata kuliah tertentu hanya mempunyai satu nilai
Tabel MAHASISWA-1 (UNF)
No-Mhs
Nama
- Mhs
Jurusan
Kode- MK
2683
Welli
MI
MI350
5432
Bakri
Ak.
Nama-MK
Kode-Dosen
NamaDosen
Nilai
Manajamen DB
B104
Ati
A
MI465
Analsis Prc. Sistem
B317
Dita
B
MI350
Manajemen DB
B104
Ati
C
AKN201
Akuntansi Keuangan
D310
Lia
B
MKT300
Dasar Pemasaran
B212
Lola
A
Tabel MAHASISWA-2 (1NF)
Jurusan
Kode-MK
2683
NamaMhs
Welli
MI
MI350
Manajamen DB
2683
Welli
MI
MI465
5432
Bakri
Ak.
5432
Bakri
5432
Bakri
No-Mhs
Suzan Agustri
Nama-MK
Kode-Dosen
B104
NamaDosen
Ati
Nilai
A
Analsis Prc. Sistem
B317
Dita
B
MI350
Manajemen DB
B104
Ati
C
Ak.
AKN201
Akuntansi Keuangan
D310
Lia
B
Ak.
MKT300
Dasar Pemasaran
B212
Lola
A
61
Sistem Basis Data
Normalisasi
Diagram Ketergantungan Fungsional
Nama_Mhs
No-Mhs
Jurusan
Nilai
Nama-MK
Kode-MK
Kode-Dosen
Nama-Dosen
Tabel KULIAH (2NF)
Nama-MK
Kode-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
No-Mhs
Nama-Mhs
Jurusan
2683
Welli
MI
5432
Bakri
Ak.
Suzan Agustri
62
Sistem Basis Data
Normalisasi
Tabel NILAI
No-Mhs
Nilai
Kode MK
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
Tabel DOSEN (3NF)
Kode- Dosen
Nama-Dosen
B104
Ati
B317
Dita
B310
Lia
B212
Lola
Tabel MAHASISWA-3 (3NF)
No-Mhs
Nama-Mhs
Jurusan
2683
Welli
MI
5432
Bakri
Ak.
Suzan Agustri
63
Sistem Basis Data
Normalisasi
Tabel NILAI (3NF)
No-Mhs
Kode MK
Nilai
2683
MI350
A
2683
MI465
B
5432
MI350
C
5432
AKN201
B
5432
MKT300
A
Suzan Agustri
64
Sistem Basis Data
Model Enhanced Entity Relationship
MODEL ENHANCED ENTITY RELATIONSHIP
Pada tahun delapan puluhan terdapat perkembangan dengan cepat beberapa aplikasi
basis data baru, seperti Computer Aided Design (CAD), Computer Aided Manufacturing
(CAM), Computer Aided Software Engineering (CASE) tools dan aplikasi-aplikasi multimedia.
Jenis aplikasi ini lebih banyak tergantung pada kebutuhan-kebutuhan basis data
dibandingkan dengan aplikasi administrasi tradisional.
Konsep dasar model Entity Relationship (ER) tidak cukup untuk menggambarkan kebutuhankebutuhan yang baru, aplikasi-aplikasi yang lebih kompleks. Hal ini menimbulkan suatu
kebutuhan untuk mengembangkan konsep model semantik tambahan. Ada beberapa
model data semantik yang telah diajukan. Tetapi beberapa konsep semantik yang penting
telah dengan sukses tergabung dalam model ER yang asli.
Model ER yang didukung dengan konsep semantik tambahan disebut model Enhanced
Entity Relationship (EER). Model EER berisikan seluruh konsep model ER ditambah konsepkonsep dari subclass dan superclass, dan konsep-konsep yang berhubungan yaitu
specialization dan generalization. Konsep lainnya yang termasuk dalam model EER yaitu
Category
Pada tulisan ini hanya menggambarkan konsep utama dari model EER yang bernama
specialization/generalization,
dan
mengilustrasikan
bagaimana
konsep
tersebut
direpresentasikan dalam model EER. Konsep specialization/generalization berhubungan
dengan konsep jenis-jenis entitas yang dideskripsikan sebagai superclass atau subclass, dan
proses turunan atribut.
SUBCLASS DAN SUPERCLASS
Dalam beberapa hal, suatu jenis entitas akan mempunyai banyak tambahan subgroup
entitas yang sangat berarti dan perlu digambarkan secara nyata karena entitas-entitas
tersebut penting sekali artinya bagi aplikasi basis data.
Contoh:
Entitas-entitas yang merupakan anggota dari entitas EMPLOYEE dikelompokkan menjadi
secretary, engineer, manager, technician, salaried_employee, hourly_employee, dan lainlain. Himpunan entitas pada tiap-tiap grup adalah subset entitas dari entitas EMPLOYEE,
Suzan Agustri
65
Sistem Basis Data
Model Enhanced Entity Relationship
yang berarti bahwa setiap entitas yang merupakan anggota dari salah satu subgroupsubgroup ini adalah suatu employee juga. Tiap-tiap subgroup tadi adalah suatu subclass dari
entity EMPLOYEE, dan entity EMPLOYEE disebut superclass untuk tiap-tiap subclass tersebut.
Hubungan antara superclass dan beberapa subclass-nya disebut superclass/subclass
relationship.
Contoh:
EMPLOYEE/SECRETARY
dan
EMPLOYEE/TECHNICIAN
adalah
dua
superclass/subclass
relationships.
Sebuah entitas tidak dapat berada dalam basis data dengan menjadi anggota suatu
subclass saja, tetapi entitas tersebut juga harus merupakan anggota dari superclass.
SPECIALIZATION
Specialization adalah proses pendefinisian suatu himpunan subclass dari suatu entitas; entitas
ini
disebut
superclass
dari
specialization.
Himpunan
subclass
tersebut
membentuk
specialization yang telah didefinisikan berdasarkan beberapa sifat/karakteristik yang
istimewa dari suatu entitas pada suatu superclass yang menggambarkan perbedaan yang
jelas antara entitas tersebut.
Contoh:
himpunan
subclass {SECRETARY,
ENGINEER,
TECHNICIAN} adalah
specialization
dari
superclass entitas EMPLOYEE dimana perbedaan antara entitas EMPLOYEE berdasarkan
pada jenis pekerjaan dari tiap-tiap entitas.
Kita dapat mempunyai beberapa specialization dari jenis entitas yang sama berdasarkan
perbedaan karakteristik yang istimewa.
Contoh:
specialization
dari
entitas
EMPLOYEE
dapat
menghasilkan
himpunan
subclass
{SALARIED_EMPLOYEE, HOURLY_EMPLOYEE}, pada specialization ini perbedaan entitas
EMPLOYEE berdasarkan metode pembayarannya.
GENERALIZATION
Generalization adalah proses pendefinisian entitas-entitas yang disatukan menjadi entitas
superclass tunggal dari entitas aslinya yang merupakan subclass istimewa. Proses
generalization dapat dipandang sebagai kebalikan dari proses specialization.
Suzan Agustri
66
Sistem Basis Data
Model Enhanced Entity Relationship
Contoh: Gambar 1.
Kita dapat memandang {CAR, TRUCK} sebagai specialization dari VEHICLE, sebaliknya kita
memandang VEHICLE sebagai suatu generalization dari CAR dan TRUCK. Dengan cara yang
sama, kita dapat memandang EMPLOYEE sebagai generalization dari SECRETARY,
TECHNICIAN, dan ENGINEER.
No of passangers
No Of Axles
Price
Price
Tonnage
Max speed
TRUCK
CAR
Vehicleid
Vehicleid
License Plate No
License Plate No
Price
Vehicleid
License Plate No
VEHICLE
d
No of passangers
No Of Axles
Tonnage
Max speed
CAR
TRUCK
Gambar 1. Generalize Superclass VEHICLE
CATEGORIZATION
Category adalah kebutuhan yang timbul untuk model suatu relationship superclass/subclass
tunggal
dengan
lebih
dari
satu
superclass
dimana
superclas-superclass
tersebut
menggambarkan jenis entity yang berbeda.
Contoh: Gambar 2.
Terdapat 3 jenis entitas yaitu: PERSON, BANK, dan COMPANY. Dalam suatu basis data
REGISTERED_VEHICLE, pemilik kendaraan (OWNER) bisa saja perorangan, bank, atau
perusahaan. Kita perlu membuat suatu class yang terdiri dari 3 jenis entitas untuk memainkan
Suzan Agustri
67
Sistem Basis Data
Model Enhanced Entity Relationship
perannya sebagai pemilik kendaraan. Maka dibuat suatu category OWNER yaitu sebuah
subclass dari gabungan (UNION) 3 class yaitu COMPANY, BANK, dan PERSON untuk
kepentingan ini.
BName
BAddress
BANK
SSN
SName
Driver License No
Address
CName
PERSON
CAddress
COMPANY
U
OWNER
Lien or Regular
OWNS
Purchase Date
License Plate No
REGISTERED_VEHICLE
U
TYear
TYear
TMake
Cmake
TModel
Cmodel
Tonnage
Cstyle
CAR
TRUCK
Vehicleid
Vehicleid
Gambar 2. Category REGISTERED_VEHICLE
Suzan Agustri
68
Sistem Basis Data
Model Enhanced Entity Relationship
Pada Gambar di atas, terdapat 2 category yaitu OWNER yang merupakan sebuah subclass
dari gabungan PERSON, BANK, dan COMPANY, yang lainnya yaitu REGISTERED_VEHICLE
yang merupakan subclass dari gabungan CAR dan TRUCK.
Sebuah category dapat mempunyai 2 atau lebih superclass yang menggambarkan jenisjenis entitas yang berbeda, sebaliknya relationship superclass/subclass lainnya selalu memiliki
superclass tunggal.
Suatu category adalah subset dari gabungan superclass-nya. Oleh sebab itu suatu entitas
yang merupakan anggota OWNER harus berisikan sedikitnya 1 superclass, tetapi tidak harus
menjadi anggota dari seluruh superclass. Hal ini menggambarkan batasan bahwa seorang
OWNER mungkin saja suatu COMPANY, sebuah BANK, atau perorangan (PERSON).
Perbedaan antara dua gambar di atas (generalize superclass VEHICLE dengan category
REGISTERED_VEHICLE):
Pada generalize superclass VEHICLE:
- Setiap mobil dan truk adalah vehicle
- Jika dipisahkan, tidak dapat dihindari bahwa akan terdapat jenis entitas lain seperti
entitas BICYCLE
Pada category REGISTERED_VEHICLE
-
Terdiri dari beberapa mobil dan beberapa truk, tetapi tidak seluruh mobil dan truk yang
diregistrasikan
-
Category registered_vehicle menyatakan hanya mobil dan truk saja, dan bukan jenis
entitas lain yang dapat menjadi anggota REGISTERED_VEHICLE
Suzan Agustri
69
Sistem Basis Data
Proses Perancangan Basis Data
PROSES PERANCANGAN BASIS DATA
Seperti telah disebutkan sebelumnya, sebuah sistem basis data merupakan komponen dasar
sistem informasi organisasi yang besar. Oleh karena itu siklus hidup aplikasi basis data
berhubungan dengan siklus hidup sistem informasi. Berikut ini akan digambarkan langkahlangkah yang terdapat di dalam siklus hidup aplikasi basis data.
Database
Planning
Systems Definition
Requirements
Collection and Analysis
Database
Design
DBMS Selection
Conceptual
Design
Logical Design
Application Design
Physical Design
Implementation
Prototyping
Data Loading
And Convertion
Testing
Operational
Maintenance
Gambar 1. Langkah-langkah Siklus Hidup Aplikasi Basis Data
Suzan Agustri
70
Sistem Basis Data
Proses Perancangan Basis Data
Hal yang penting adalah mengetahui bahwa langkah-langkah siklus hidup aplikasi basis
data dapat tidak berurutan, tetapi melibatkan beberapa langkah pengulangan yang
biasanya disebut sebagai feedback loop. Sebagai contoh: masalah-masalah yang ditemui
selama perancangan basis data mungkin harus mengumpulkan dan menganalisis
kebutuhan-kebutuhan tambahan. Seperti yang digambarkan terdapat feedback loop
diantara langkah-langkah yang sering terjadi.
PERANCANGAN BASIS DATA
Pada basis data yang digunakan oleh single user atau hanya beberapa pemakai saja,
perancangan basis data tidak sulit. Tetapi jika ukuran basis data yang sedang atau besar (25
- ratusan pemakai yang berisikan jutaan bytes informasi dan melibatkan ratusan query dan
program-program aplikasi, contoh: industri-industri, asuransi, hotel, travel, dan lain-lain (yang
seluruhnya tergantung pada kesuksesan dari operasi-operasi basis datanya), perancangan
basis data menjadi sangat kompleks. Oleh karena itu para pemakai mengharapkan
penggunaan basis data yang sedemikian rupa sehingga sistem harus dapat memenuhi
kebutuhan-kebutuhan seluruh pemakai tersebut.
Tujuan perancangan basis data:
•
untuk memenuhi informasi yang berisikan kebutuhan-kebutuhan pemakai secara khusus
dan aplikasi-aplikasinya.
•
memudahkan pengertian struktur informasi.
•
mendukung kebutuhan-kebutuhan pemrosesan dan beberapa obyek penampilan
(response time, processing time, dan storage space).
APLIKASI BASIS DATA DALAM LIFECYCLE
Siklus kehidupan sistem informasi sering disebut macro life cycle, dimana siklus kehidupan
basis data merupakan micro life cycle.
Aktivitas-aktivitas yang berhubungan dengan basis data sebagai micro life cycle dan
termasuk fase-fasenya sebagai berikut:
1.
Database planning
Di aktivitas ini akan disusun bagaimana langkah-langkah siklus hidup dapat direalisasikan
secara lebih efisien dan efektif.
2.
System definition
Definisi ruang lingkup basis data (misal : para pemakai, aplikasi-aplikasinya, dan
sebagainya)
Suzan Agustri
71
Sistem Basis Data
3.
Proses Perancangan Basis Data
Design
Pada bagian dari fase ini, perancangan sistem basis data secara konseptual, logikal dan
fisik dilaksanakan
4.
Implementation
Pemrosesan dari penulisan definisi basis data secara konseptual, eksternal, dan internal,
pembuatan file-file basis data yang kosong, dan implementasi aplikasi-aplikasi software.
5.
Loading atau Data Conversion
Basis data ditempatkan baik secara memanggil data secara langsung ataupun
merubah file-file yang ada ke dalam format sistem basis data dan memangggilnya
kembali.
6.
Application Conversion
Beberapa aplikasi software dari suatu sistem sebelumnya dikonversikan ke suatu sistem
yang baru.
7.
Testing dan Validation
Sistem yang baru dites dan diuji kebenarannya.
8.
Operation
Operasi-operasi pada sistem basis data dan aplikasi-aplikasinya.
9.
Monitoring dan Maintenance
Selama fase operasi, sistem secara konstan memonitor dan memelihara basis data.
Pertambahan dan pengembangan data dan aplikasi-aplikasi software dapat terjadi.
Modifikasi dan pengaturan kembali basis data mungkin diperlukan dari waktu ke waktu.
Langkah ke-3 disebut juga perancangan basis data. Langkah 3, 4, dan 5 merupakan bagian
dari fase design dan implementation pada siklus kehidupan sistem informasi yang besar.
Pada umumnya basis data pada organisasi menjalani seluruh aktivitas siklus kehidupan di
atas. Langkah 5 dan 6 tidak berlaku jika basis data dan aplikasi-aplikasinya baru.
PROSES PERANCANGAN BASIS DATA
6 Fase proses perancangan basis data:
1. Pengumpulan data dan analisis
2. Perancangan basis data secara konseptual
3. Pemilihan DBMS
4. Perancangan basis data secara logika (data model mapping)
5. Perancangan basis data secara fisik
6. Implementasi sistem basis data.
Suzan Agustri
72
Sistem Basis Data
Proses Perancangan Basis Data
Gambar fase-fase perancangan basis data untuk basis data yang besar:
Phase 1 : requirements
collection and analysis
Phase 2 : Conceptual
design
Data requirements
Conceptual & external
Schema design
(DBMS-independent)
Processing requirements
Transaction design
(DBMS-independent)
Phase 3 : Choice of
DBMS
Phase 4: Data model
Mapping (logical design)
Conceptual & external
schema design
(DBMS-dependent)
Phase 5 : Physical design
Internal schema design
(DBMS-dependent)
Phase 6: Implementation
DDL-statements
SDL-statements
frequencies,
performance
constraints
Transaction
implementation
Keterangan:
Secara khusus proses perancangan berisikan 2 aktivitas paralel. Aktivitas yang pertama
melibatkan perancangan dari isi data dan struktur basis data, sedangkan aktivitas kedua
mengenai perancangan pemrosesan basis data dan aplikasi-aplikasi perangkat lunak.
Dua aktivitas ini saling menjalin, misalnya: kita dapat mengidentifikasikan data item yang
akan disimpan dalam basis data dengan menganalisa aplikasi-aplikasi basis data. Dua
aktivitas ini juga saling mempengaruhi satu sama lain. Contohnya: fase perancangan basis
data secara fisik, pada saat kita memilih struktur penyimpanan dan jalur-jalur akses dari filefile basis data yang tergantung pada aplikasi-aplikasi yang akan menggunakan file-file
tersebut.
Di lain pihak, kita biasanya menentukan perancangan aplikasi-aplikasi basis data dengan
mengarah kepada konstruksi skema basis data yang telah ditentukan selama aktivitas yang
pertama.
6 fase di atas tidak harus diproses berurutan. Pada beberapa hal, rancangan tersebut dapat
dimodifikasi dari yang pertama dan sementara itu mengerjakan fase yang terakhir
(feedback loop antara fase) dan feedback loop dalam fase sering terjadi selama proses
perancangan.
Suzan Agustri
73
Sistem Basis Data
Proses Perancangan Basis Data
Fase 1 merupakan kumpulan informasi yang berhubungan dengan penggunaan basis data.
Fase 6 merupakan implementasi basis datanya. Fase 1 dan 6 kadang-kadang bukan
merupakan bagian dari perancangan basis data, tetapi merupakan bagian dari siklus
kehidupan sistem informasi secara umum. Inti dari proses perancangan basis data adalah
fase 2, 4, 5.
Fase 1: Pengumpulan data dan analisa
Proses identifikasi dan analisa kebutuhan-kebutuhan data disebut pengumpulan data dan
analisa. Untuk menentukan kebutuhan-kebutuhan suatu sistem basis data, pertama-tama
harus mengenal bagian-bagian lain dari sistem informasi yang akan berinteraksi dengan
sistem basis data, termasuk para pemakai yang ada dan para pemakai yang baru serta
aplikasi-aplikasinya. Kebutuhan-kebutuhan dari para pemakai dan aplikasi-aplikasi inilah
yang kemudian dikumpulkan dan dianalisa.
Aktivitas pengumpulan data dan analisa:
1. Menentukan kelompok pemakai dan bidang-bidang aplikasinya
Menentukan aplikasi utama dan kelompok user yang akan menggunakan basis data.
Individu utama pada tiap-tiap kelompok pemakai dan bidang aplikasi yang telah dipilih
merupakan peserta utama pada langkah-langkah berikutnya dari pengumpulan dan
spesifikasi data.
2. Peninjauan dokumentasi yang ada
Dokumen yang ada yang berhubungan dengan aplikasi-aplikasi dipelajari dan dianalisa.
Dokumen-dokumen lainnya (seperti: kebijaksanaan-kebijaksanaan, form, report, dan
bagan organisasi) diuji dan ditinjau kembali untuk menguji apakah dokumen-dokumen
tersebut berpengaruh terhadap kumpulan data dan proses spesifikasi.
3. Analisa lingkungan operasi dan pemrosesan data
Informasi yang sekarang dan yang akan datang dipelajari. Termasuk juga analisa jenisjenis transaksi dan frekuensi-frekuensi transaksinya dan juga arus informasi dalam sistem.
Input-output data untuk transaksi-transaksi tersebut diperinci.
4. Daftar pertanyaan dan wawancara
Tuliskan tanggapan-tanggapan dari pertanyaan-pertanyaan yang telah dikumpulkan
dari para pemakai basis data yang berpotensi. Ketua kelompok (individu utama) dapat
diwawancarai sehingga input yang banyak dapat diterima dari mereka dengan
memperhatikan informasi yang berharga dan mengadakan prioritas.
Suzan Agustri
74
Sistem Basis Data
Proses Perancangan Basis Data
Fase 2 : Perancangan basis data secara konseptual
Tujuan dari fase ini adalah menghasilkan conceptual schema untuk basis data yang
tergantung pada sebuah DBMS yang spesifik. Sering menggunakan sebuah high-level data
model seperti ER/EER model selama fase ini. Dalam conceptual schema, kita harus
memerinci aplikasi-aplikasi basis data yang diketahui dan transaksi-transaksi yang mungkin.
Fase perancangan basis data secara konseptual mempunyai 2 aktivitas paralel:
1. Perancangan skema konseptual:
menguji kebutuhan-kebutuhan data dari suatu basis data yang merupakan hasil dari
fase 1, dan menghasilkan sebuah conceptual database schema pada DBMSindependent model data tingkat tinggi seperti EER (enhanced entity relationship) model.
Skema ini dapat dihasilkan dengan menggabungkan bermacam-macam kebutuhan
pemakai dan secara langsung membuat skema basis data atau dengan merancang
skema-skema
yang terpisah dari
menggabungkan
skema-skema
kebutuhan tiap-tiap
tersebut.
Model
data
pemakai
yang
dan kemudian
digunakan
pada
perancangan skema konseptual adalah DBMS-independent, dan langkah selanjutnya
adalah memilih sebuah DBMS untuk melaksanakan rancangan tersebut.
2. Perancangan transaksi:
menguji aplikasi-aplikasi basis data dimana kebutuhan-kebutuhannya telah dianalisa
pada fase 1, dan menghasilkan perincian transaksi-transaksi ini. Kegunaan fase ini yang
diproses secara paralel bersama fase perancangan skema konseptual adalah untuk
merancang karakteristik dari transaksi-transaksi basis data yang telah diketahui pada
suatu DBMS-independent. Transaksi-transaksi ini akan digunakan untuk memproses dan
memanipulasi basis data suatu saat dimana basis data tersebut dilaksanakan.
Fase 3 : Pemilihan DBMS
Pemilihan basis data di tentukan oleh beberapa faktor, diantaranya: faktor teknik, ekonomi,
dan politik organisasi.
Contoh faktor teknik:
keberadaan DBMS dalam menjalankan tugasnya seperti jenis-jenis DBMS (relational, network,
hierarchical, dan lain-lain), struktur penyimpanan, dan jalur akses yang mendukung DBMS,
pemakai, dan lain-lain.
Faktor-faktor ekonomi dan organisasi yang mempengaruhi satu sama lain dalam pemilihan
DBMS:
1. Struktur data
Jika data yang disimpan dalam basis data mengikuti struktur hirarki, maka suatu jenis
hirarki dari DBMS harus dipikirkan.
Suzan Agustri
75
Sistem Basis Data
Proses Perancangan Basis Data
2. Personal yang telah terbiasa dengan suatu sistem
Jika staf programmer dalam suatu organisasi sudah terbiasa dengan suatu DBMS, maka
hal ini dapat mengurangi biaya latihan dan waktu belajar.
3. Tersedianya layanan penjual
Keberadaan
fasilitas
pelayanan
penjual
sangat
dibutuhkan
untuk
membantu
memecahkan beberapa masalah sistem.
Fase 4 : Perancangan basis data secara logika (pemetaan model data)
Fase selanjutnya dari perancangan basis data adalah membuat sebuah skema konseptual
dan skema eksternal pada model data dari DBMS yang terpilih. Fase ini dilakukan oleh
pemetaan skema konseptual dan skema eksternal yang dihasilkan pada fase 2. Pada fase
ini, skema konseptual ditransformasikan dari model data tingkat tinggi yang digunakan pada
fase 2 ke dalam model data dari DBMS yang dipilih pada fase 3.
Pemetaannya dapat diproses dalam 2 tingkat:
1. Pemetaan system-independent:
pemetaan ke dalam model data DBMS dengan tidak mempertimbangkan karakteristik
atau hal-hal yang khusus yang berlaku pada implementasi DBMS dari model data
tersebut.
2. Penyesuaian skema ke DBMS yang spesifik:
mengatur skema yang dihasilkan pada langkah 1 untuk disesuaikan pada implementasi
yang khusus di masa yang akan datang dari suatu model data yang digunakan pada
DBMS yang dipilih.
Hasil dari fase ini memakai perintah-perintah DDL dalam bahasa DBMS yang dipilih yang
menentukan tingkat skema konseptual dan eksternal dari sistem basis data. Tetapi dalam
beberapa hal, perintah-perintah DDL memasukkan parameter-parameter rancangan fisik
sehingga DDL yang lengkap harus menunggu sampai fase perancangan basis data secara
fisik telah lengkap.
Fase ini dapat dimulai setelah pemilihan sebuah implementasi model data sambil menunggu
DBMS yang spesifik yang akan dipilih. Contoh: jika memutuskan untuk menggunakan
beberapa relational DBMS tetapi belum memutuskan suatu relasi yang utama. Rancangan
dari skema eksternal untuk aplikasi-aplikasi yang spesifik seringkali sudah selesai selama
proses ini.
Suzan Agustri
76
Sistem Basis Data
Proses Perancangan Basis Data
Fase 5 : Perancangan basis data secara fisik
Perancangan
basis
data
secara
fisik
merupakan
proses
pemilihan
struktur-struktur
penyimpanan dan jalur-jalur akses pada file-file basis data untuk mencapai penampilan
yang terbaik pada bermacam-macam aplikasi.
Selama fase ini, dirancang spesifikasi-spesifikasi untuk basis data yang disimpan yang
berhubungan dengan struktur-struktur penyimpanan fisik, penempatan record dan jalur
akses. Berhubungan dengan internal schema (pada istilah 3 level arsitektur DBMS).
Beberapa petunjuk dalam pemilihan perancangan basis data secara fisik:
1. Response time:
waktu yang telah berlalu dari suatu transaksi basis data yang diajukan untuk
menjalankan suatu tanggapan. Pengaruh utama pada response time adalah di bawah
pengawasan DBMS yaitu: waktu akses basis data untuk data item yang ditunjuk oleh
suatu transaksi. Response time juga dipengaruhi oleh beberapa faktor yang tidak berada
di bawah pengawasan DBMS, seperti penjadwalan sistem operasi atau penundaan
komunikasi.
2. Space utility:
jumlah ruang penyimpanan yang digunakan oleh file-file basis data dan struktur-struktur
jalur akses.
3. Transaction throughput:
rata-rata jumlah transaksi yang dapat diproses per menit oleh sistem basis data, dan
merupakan parameter kritis dari sistem transaksi (misal: digunakan pada pemesanan
tempat di pesawat, bank, dan lain-lain). Hasil dari fase ini adalah penentuan awal dari
struktur penyimpanan dan jalur akses untuk file-file basis data.
Fase 6 : Implementasi sistem basis data
Setelah perancangan secara logika dan secara fisik lengkap, kita dapat melaksanakan
sistem basis data. Perintah-perintah dalam DDL (Data Definition Language) dan SDL (Storage
Definition Language) dari DBMS yang dipilih, dihimpun dan digunakan untuk membuat
skema basis data dan file-file basis data (yang kosong). Sekarang basis data tersebut dimuat
(disatukan) dengan datanya.
Jika data harus dirubah dari sistem komputer sebelumnya, perubahan-perubahan yang rutin
mungkin diperlukan untuk format ulang datanya yang kemudian dimasukkan ke basis data
yang baru. Transaksi-transaksi basis data sekarang harus dilaksanakan oleh para
programmmer aplikasi.
Suzan Agustri
77
Sistem Basis Data
Proses Perancangan Basis Data
Spesifikasi secara konseptual diuji dan dihubungkan dengan kode program dengan
perintah-perintah dari embedded DML yang telah ditulis dan diuji. Suatu saat transaksitransaksi tersebut telah siap dan data telah dimasukkan ke dalam basis data, maka fase
perancangan dan implementasi telah selesai, dan kemudian fase operasional dari sistem
basis data dimulai.
Suzan Agustri
78
Sistem Basis Data
Database Control
DATABASE CONTROL
1.
SECURITY DATABASE
Authorization
Authorization merupakan pemberian hak akses yang mengizinkan sebuah subyek
mempunyai akses secara legal terhadap sebuah sistem atau obyek.
Subyek
 user atau program
Obyek
 basis data, tabel, view, application, procedure, atau obyek lainnya yang
dibuat di dalam sebuah sistem
Jenis-jenis hak akses (privileges)

Penggunaan nama basis data yang spesifik

Select (retrieve) data

Membuat tabel (obyek lainnya)

Update data, delete data, insert data (bisa untuk kolom-kolom tertentu)

Menghasilkan output yang tidak terbatas dari operasi query (user tidak dibatasi
untuk mengakses record tertentu)

Menjalankan prosedur khusus dan utilitas program

Membuat basis data

Membuat (dan memodifikasi) DBMS user identifiers dan authorized identifiers jenis
lainnya

Anggota dari sebuah kelompok atau kelompok-kelompok user
Views (Subschemas)
Hasil yang dinamik dari satu atau lebih operasi relasi yang beroperasi pada relasi dasar
untuk menghasilkan relasi lainnya disebut sebagai view (subschemas). View merupakan
virtual relation yang tidak secara nyata ada di dalam sebuah basis data, tetapi
dihasilkan atas permintaan pemakai secara khusus.
Backing Up
Backing up merupakan proses yang secara periodik menyalin basis data dan menjurnal
(serta memprogram) ke dalam media penyimpanan offline
Suzan Agustri
79
Sistem Basis Data
Database Control
Journaling
Journaling merupakan proses penyimpanan dan pemeliharaan sebuah jurnal atau log
seluruh perubahan terhadap basis data agar dapat me-recover
secara efektif jika
terjadi kegagalan.
Checkpointing
Checkpointing merupakan titik temu sinkronisasi antara basis data dan transaksi log file.
Seluruh data yang disimpan di tempat sementara akan disimpan di media
penyimpanan kedua.
Integrity
Pengontrolan integritas juga membantu memelihara sistem basis data yang aman
dengan mencegah data dari invalid
Encryption
Enkripsi merupakan penyandian (encoding) data dengan menggunakan algoritma
khusus yang merubah data menjadi tidak dapat dibaca oleh program apapun tanpa
mendeskripsikannya.
2.
CONCURRENCY
Hampir semua DBMS adalah sistem multi user. Sistem seperti ini memerlukan mekanisme
pengontrolan konkuren. Tujuan dari mekanisme ini adalah untuk menjamin bahwa
transaksi-transaksi yang konkuren tidak saling menggangu operasinya masing-masing.
Jika transaksi-transaksi yang menggunakan record yang sama maka akan terdapat
beberapa masalah yang akan timbul dalam menjalankan transaksi-transaksi yang
konkuren. Tiga masalah yang umum adalah:
Suzan Agustri
80
Sistem Basis Data
a.
Database Control
Masalah Kehilangan Modifikasi
Transaksi A
Baca R
Modifikasi R
-
Waktu

t1

t2

t3

t4

Transaksi B
Baca R
Modifikasi R
-
Transaksi A membaca R pada t1, transaksi B membaca R pada t2.

Transaksi A memodifikasi R pada t3.

Transaksi B memodifikasi record yang sama pada t4.

Modifikasi dari transaksi A akan hilang karena transaksi B akan memodifikasi R
tanpa memperhatikan modifikasi dari transaksi A pada t3.
b.
Masalah Modifikasi Sementara
Masalah ini timbul jika transaksi membaca suatu record yang sudah dimodifikasi oleh
transaksi lain tetapi belum terselesaikan (uncommited), terdapat kemungkinan kalau
transaksi tersebut dibatalkan (rollback).
Transaksi A
Waktu
Transaksi B
Baca R
-

t1

t2

t3

modifikasi R
rollback
-

Transaksi B memodifikasi record R pada t1

Transaksi A membaca R pada t2

Pada saat t3 transaksi B dibatalkan

Maka transaksi A akan membaca record yang salah
Suzan Agustri
81
Sistem Basis Data
Database Control
Transaksi A
Waktu
Transaksi B
Modifikasi R
-

t1

t2

t3

Modifikasi R
-
Rollback
-

Pada waktu t2 transaksi A memodifikasi R

Karena transaksi B dibatalkan pada waktu t3, maka transaksi A memodifikasi
record yang salah.
Suzan Agustri
82
Sistem Basis Data
Database Control
c. Masalah Analisis yang Tidak Konsisten
Nilai 1 = 40
Nilai 2 = 50
Nilai 3 = 30
Transaksi A
Waktu
Transaksi B
Baca nilai 1(40)
juml = 40
Baca nilai 2 (50)
juml = 90
-

t1
-

t4
-

t5
Baca nilai 3
(30)
Modifikasi
nilai 3
30  20
Baca nilai 1
(40)
-

t6

t2

t3
Baca nilai 3 (20)
juml = 110 (bukan
120)
-

t7

t8
Modifikasi
nilai 1
40  50
Commit


Transaksi A menjumlahkan nilai 1, nilai 2 dan nilai 3

Transaksi B  nilai 1 +10 ; nilai 3 - 10

Pada waktu t8, transaksi A membaca nilai yang salah karena nilai 1 sudah
dimodifikasi menjadi 50 (transaksi B sudah melakukan commit sebelum
transaksi A membaca nilai 1)
Keterangan:

Commit adalah operasi yang menyatakan bahwa suatu transaksi sudah
terselesaikan/sukses (successfull end-of-transaction).

Rollback adalah operasi yang menyatakan bahwa suatu transaksi dibatalkan
(unsuccessfull end-of-transaction).
Suzan Agustri
83
Sistem Basis Data
Database Control
Locking
Locking adalah salah satu mekanisasi pengontrol konkuren. Konsep dasar: pada saat
suatu transaksi memerlukan jaminan kalau record yang diinginkan tidak akan berubah
secara mendadak, maka diperlukan kunci untuk record tersebut. Fungsi kunci (lock)
adalah menjaga record tersebut agar tidak dimodifikasi transaksi lain.
Cara kerja dari kunci:
1. Pertama kita asumsikan terdapat 2 macam kunci:
- Kunci X: kunci yang eksklusif.
- Kunci S: kunci yang digunakan bersama-sama.
2. Jika transaksi A menggunakan kunci X pada record R, maka permintaan dari
transaksi B untuk suatu kunci pada R ditunda, dan B harus menungggu sampai A
melepaskan kunci tersebut.
3. Jika transaksi A menggunakan kunci S pada record R, kemudian terdapat kondisi:
a. Bila transaksi B ingin menggunakan kunci X, maka B harus menunggu sampai A
melepaskan kunci tersebut.
b. Bila transaksi B ingin menggunakan kunci S, maka B dapat menggunakan kunci S
bersama A.
Tabel Kunci:
X
S
-
X = kunci X
X
N
N
Y
S = kunci S
S
N
Y
Y
N = No
-
Y
Y
Y
Y = Yes
4.
Bila suatu transaksi hanya melakukan pembacaan saja, secara otomatis
memerlukan kunci S  baca (S)
Bila transaksi tersebut ingin memodifikasi record maka secara otomatis memerlukan
kunci X  memodifikasi (X)
Bila transaksi tersebut sudah menggunakan kunci S, setelah itu akan memodifikasi
record, maka kunci S akan dinaikan ke level kunci X.
Suzan Agustri
84
Sistem Basis Data
5.
Database Control
Kunci X dan kunci S akan dilepaskan pada saat synchpoint (synchronization point).
Synchpoint menyatakan akhir dari suatu transaksi dimana basis data berada pada
keadaan yang konsisten. Bila synchpoint ditetapkan maka:
- Semua modifikasi program menjalankan operasi commit atau rollback.
- Semua kunci dari record dilepaskan.
Masalah Kehilangan Modifikasi

Transaksi A
Waktu
Transaksi B
Baca R
(kunci S)
Modifikasi R
(kunci X)
Tunggu
:
:
:

t1

t2

t3


t4


Baca R
(kunci S)
Modifikasi R
(kunci X)
Tunggu
:
:
Tunggu



:
:
Tunggu
Pada waktu t3, transaksi A memerlukan kunci X, maka transaksi A harus
menunggu sampai B melepaskan kunci S.

Transaksi B juga harus menunggu pada t4
Maka tidak akan ada yang kehilangan modifikasi, tetapi terdapat keadaan
baru yaitu DEADLOCK.
Suzan Agustri
85
Sistem Basis Data
Database Control
Masalah Modifikasi Sementara

Transaksi A
Waktu
Transaksi B
Baca R
kunci (S)
Tunggu
:
:
Tunggu
Baca R kembali
(kunci S)

t1

t2


t3


t4

modifikasi R
(kunci X)
Synchpoint
(kunci X dilepas)
-
Transaksi A
Waktu
Transaksi B
Modifikasi R
kunci (X)
Tunggu
:
:
Tunggu
Modifikasi R
(kunci X)

t1

t2


t3


t4

Modifikasi R
(kunci X)
Synchpoint
(kunci X dilepas)
-
Transaksi A pada t2 tidak dapat dijalankan langsung, tetapi harus menunggu
sampai B melepas kunci X.

Bila B sudah mencapai synchpoint, maka kunci X dilepaskan dan A dapat
meneruskan prosesnya.

Maka transaksi A tidak akan terjasi kesalahan dalam membaca, karena sudah
mencapai synchpoint.
Suzan Agustri
86
Sistem Basis Data
Database Control
Masalah Analisa yang Tidak Konsisten

Nilai 1 = 40
Nilai 2 = 50
Nilai 3 = 30
Transaksi A
Waktu
Transaksi B
Baca nilai 1
(40)
(kunci S)
jml = 40
Baca nilai 2
(50)
(kunci S)
jml = 90
Baca nilai 3
(20)
(kunci S)
Tunggu

t1
-



t2
-


t3


t4



t5


t6


t7
Baca nilai 3 (30)
(kunci S)
Modifikasi nilai 3
(kunci X)
30  20
Baca nilai 1 (40)
(kunci S)
Modifikasi nilai 1
(kunci X)
Tunggu
:


:
Tunggu
:
Transaksi B pada t6 tidak diijinkan, karena memerlukan kunci X maka B harus
menunggu sampai A melepaskan kunci S kepada nilai 1.

Pada t7 transaksi A juga tidak dapat langsung dilaksanakan, karena B
menggunakan kunci X pada nilai 3. Maka A harus menunggu B melepaskan
kunci X pada nilai 3.

Transaksi A akan membaca nilaiyang benar, tapi timbul masalah baru yaitu
DEADLOCK.
Suzan Agustri
87
Sistem Basis Data
Database Control
Time Stamping
Salah satu alternatif mekanisme pengawasan konkuren yang dapat menghilangkan
masalah deadlock adalah TIME STAMPING. Dalam skema ini tidak ada kunci yang
digunakan sehingga tidak ada deadlock yang muncul. Time stamping untuk sebuah
transaksi aksi merupakan suatu tanda pengenal yang unik yang menunjuk waktu mulai
relatif dari transaksi.
Time stamp dapat berupa pembacaan pada kunci internal pada waktu transaksi
dimulai, dapat berupa nilai dari suatu penunjuk logikal yang dapat bertambah setiap
kali suatu transaksi baru dimulai. Dalam hal ini nilai time stamp dari setiap transaksi
adalah unik dan menunjukkan bagaimana lamanya transaksi tersebut. Pengaruh dari
time stamping adalah menentukan suatu urutan serial transaksi.
Setiap item data terdiri dari sebuah lead time stamp yang memberikan time stamp
transaksi terakhir untuk membawa item dan sebuah write time stamp yang memberikan
transaksi terakhir untuk menuliskan/memperbaharui item.
Masalah dapat timbul dengan time stamping:
1. Suatu transaksi memerintahkan untuk membaca sebuah item yang sudah di-update
oleh transaksi yang belakangan
2. Suatu transaksi memerintahkan untuk menulis sebuah item yang nilainya sudah
dibaca/ditulis oleh transaksi yang belakangan
3.
RECOVERY
Recovery Facilities
Sebuah DBMS sebaiknya menyediakan fasilitas-fasilitas berikut ini untuk membantu
recovery:

Backup mechanism
Melakukan backup secara periodik terhadap basis data yang ada

Logging facilities
Mencatat transaksi-transaksi dan perubahan-perubahan yang terjadi terhadap basis
data. DBMS memelihara file khusus yang disebut Log (Journal) yang menyediakan
informasi mengenai seluruh perubahan yang terjadi pada basis data.
Suzan Agustri
88
Sistem Basis Data

Database Control
Checkpoint facility
Mengizinkan update terhadap basis data yang akan menjadi basis data yang
permanen

Recovery manager
Mengizinkan sistem untuk restore basis data ke keadaan sebelum terjadi kerusakan
Recovery Techniques
Prosedur recovery yang digunakan tergantung dari kerusakan yang terjadi pada basis
data. Terdapat 2 kasus kerusakan:
1. Jika basis data rusak secara fisik seperti: disk head crash dan menghancurkan basis
data, maka yang terpenting adalah melakukan restore backup basis data yang
terakhir dan mengaplikasikan kembali operasi-operasi update transaksi yang telah
commit dengan menggunakan log file. Dengan asusmsi bahwa log file-nya tidak
rusak.
2. Jika basis data tidak rusak secara fisik tetapi menjadi tidak konsisten, sebagai
contoh: sistem crashed sementara transaksi dieksekusi, maka yang perlu dilakukan
adalah membatalkan perubahan-perubahan yang menyebabkan basis data tidak
konsisten. Mengulang beberapa transaksi sangat diperlukan juga untuk meyakinkan
bahwa perubahan-perubahan yang dilakukan telah disimpan di dalam secondory
storage. Disini tidak perlu menggunakan salinan backup basis data, tetapi dapat
me-restore basis data ke dalam keadaan yang konsisten dengan menggunakan
before- dan after-image yang ditangani oleh log file.
Teknik recover berikut ini dilakukan terhadap situasi dimana basis data tidak rusak tetapi
basis data dalam keadaan yang tidak konsisten.
1. Deferred Update
Update tidak dituliskan ke basis data sampai sebuah transaksi dalam keadaan
commit. Jika transaksi gagal sebelum mencapai keadaan ini, transaksi ini tidak akan
memodifikasi basis data dan juga tidak ada perubahan-perubahan yang perlu
dilakukan.
Penulisan dilakukan secara inisial hanya terhadap log dan log record yang
digunakan untuk actual update terhadap basis data. Jika sistem gagal, sistem akan
menguji log dan menentukan transaksi mana yang perlu dikerjakan ulang, tetapi
tidak perlu membatalkan semua transaksi.
Suzan Agustri
89
Sistem Basis Data
Database Control
2. Immediate Update
Update diaplikasikan terhadap basis data tanpa harus menunggu transaksi dalam
keadaan commit. Update dapat dilakukan terhadap basis data setiap saat setelah
log record ditulis. Log dapat digunakan untuk membatalkan dan mengulang
kembali transaksi pada saat terjadi kerusakan.
Suzan Agustri
90
Download