Sistem Basis Data TI
Sistem Basis Data TI
MODUL PERKULIAHAN
Basis Data
01
Ilmu Komputer Teknik Informatika 87033 Tim Dosen
Abstract Kompetensi
Modul ini berisi materi tentang Mahasiswa mampu menjelaskan
pengenalan terhadap basis data, konsep basis data, mampu
dan DBMS menjelaskan komponen dalam basis
data, mampu menyebutkan dan
menjelaskan keuntungan dan
kelebihan penggunaan basis data
Pendahuluan
Basis data merupakan kumpulan data, yang mendeskripsikan aktivitas suatu organisasi
yang saling berhubungan atau lebih. Misalkan sebuah rumah sakit yang mungkin berisi
informasi sebagai berikut:
Entitas seperti dokter, suster, pegawai RS, pasien, obat dan informasi lainnya.
Hubungan antara entitas, contohnya adalah relasi periksa antara dokter dengan pasien,
relasi pengobatan antara pasien dengan obat dan relasi lainnya yang mungkin terjadi dari
hubungan antara 2 relasi atau lebih.
Jauh sebelum ditemukan dan diaplikasikan basis data dalam pengembangan system dan
aplikasi, industry teknologi informasi menggunakan pendekatan aplikasi berbasis file atau
file-base approach. Berikut adalah penjelasan mengenai file-based system.
File-Based Systems
Kumpulan dari program-program aplikasi yang menyediakan layanan untuk end users
sebagai contohnya adalah laporan.
File‐Based Processing
o User dari program yang satu tidak dapat menggunakan data yang diperlukan yang
berada pada program yang lain.
Pendekatan Database
Timbul karena :
- Pendefinisian data disimpan/dilekatkan dalam program aplikasi bukan disimpan pada
tempat yang terpisah dan independen.
- Tidak ada pengaturan/control pada pengaksesan dan manipulasi data yang dilakukan
oleh program aplikasi
Hasil :
– Database dan Database Management System (DBMS).
Definisi :
Kumpulan relasi-relasi logikal dari data (dan deskripsi data) yang dapat digunakan
bersama dan dibuat untuk memperoleh informasi yang dibutuhkan oleh perusahaan.
Merupakan relasi data logikal yang terdiri dari entity-entity, atribut-atribut, dan
relationship dari informasi organisasi/perusahaan.
Sistem software yang memungkinkan user untuk mendefinisikan, membuat, dan memelihara
database dan menyediakan akses terkontrol untuk database yang bersangkutan.
o Sistem keamanan.
o Sistem integritas.
Mekanisme view .
o Untuk spesifikasi tipe data, struktur dan batasan-batasan lainnya (Skema eksternal,
konseptual dan internal, juga mapping-mapping yang ada).
o DML Request akan diproses oleh komponen Optimizer yang berfungsi untuk
menentukan cara yang paling efisien dalam implementasi request.
o DBMS harus mampu memonitor permintaan user, dan menolak segala usaha yang
mengganggu batasan keamanan dan integritas data yang telah didefinisikan.
o DBMS atau komponen software lain (Transaction Manager) harus menyediakan kontrol
system recovery dan concurrency.
Data Dictionary
o Berisikan “data about the data “, yaitu seluruh objek yang terkait dalam system
didefinisikan dan disimpan dalam data dictionary.
Performance
o DBMS harus menampilkan semua fungsi yang telah didefinisikan sebelumnya se-efisien
mungkin.
Mekanisme View.
Views
Komponen DBMS
Komponen DBMS
Hardware
Software
Data
- Data pada sebuah system database baik itu single-user system maupun
multi-user system harus terintegrasi dan dapat ddigunakan bersama
(Integrated and Shared).
Procedures
People
- End Users, Siapapun yang berinteraksi dengan system secara online melalui
workstation/terminal.
First generation
Second generation
- Relational
Third generation
- Object Relational
- Object-Oriented
Keuntungan DBMS
Layanan Back up dan Recovery Semakin Baik (Improved backup and recovery services)
Kerugian DBMS
Rumit (Complexity)
Karena penetapan fungsi dari DBMS yang baik, menyebabkan DBMS menjadi software
yang cukup rumit. Seluruh user harus mengetahui fungsi-fungsi yang ada dengan baik,
sehingga dapat memperoleh manfaatnya.
Ukuran (Size)
Kerumitan dan banyaknya fungsi yang ada menyebabkan DBMS memerlukan banyak
software pendukung yang mengakibatkan penambahan tempat penyimpanan dan
memory.
Performance
Pada dasarnya DBMS dibuat untuk menyediakan banyak aplikasi, akibatnya mungkin
beberapa aplikasi akan berjalan tidak seperti biasanya.
Karena system yang terpusat, jika seluruh user dan aplikasi terakses dari DBMS maka
kerusakan pada bagian manapun dari system, akan menyebabkan operasi terhenti.
Latihan
1. Jelaskan dengan singkat menggunakan kalimat anda sendiri tentang bagaimana
basis data diperlukan dalam sebuah pegembangan aplikasi.
Daftar Pustaka
1. Database system: A Practical approach to design, implementation and management
MODUL PERKULIAHAN
Basis Data
02
Ilmu Komputer Teknik Informatika 87033 Tim Dosen
Abstract Kompetensi
Modul ini berisi materi tentang Mahasiswa mampu menjelaskan
lingkungan basis data tentang perbedaan konsep asitektur 3 level
arsitektur ANSI-SPARC serta basis data dan mampu
komponen dalam perangkat lunak mengidentifikasi komponen
dari DBMS berserta fungsinya perangkat lunak dalam DBMS
Tujuan dari Three-Level Architecture
Seluruh pengguna harus dapat mengakses data yang sama.
Struktur internal database harus tidak terpengaruh oleh perubahan aspek fisik pada
penyimpanan.
DBA harus dapat merubah struktur konseptual database tanpa mempengaruhi seluruh
pengguna.
External Level
Menerangkan bagaimana data yang ada direpresentasikan untuk user yang berbeda.
Ekternal level merupakan level individual user, dimana masing-masing user hanya akan
berkepentingan dengan satu bagian saja. Cara pandang dari masing-masing user bersifat
abstrak bila dibandingkan dengan bagaimana sebenarnya data tersebut disimpan. Masing-
masing pandangan user tersebut disebut external view, yang berisi berbagai tipe eksternal
record. Jadi level ini berkaitan erat dengan pemakai, dimana dari tiap pemakai hanya
memerlukan sebagian dari data yang ada dalam database. Cara pandang secara eksternal
hanya terbatas pada entitas, atribut, dan hubungan antar entitas yang diperlukan saja.
Conceptual Level
Menerangkan data apa saja yang tersimpan dan relasi antar data.
Internal Level
Internal view merupakan level terendah dalam representasi dari keseluruhan database.
Internal view berisikan berbagai tipe internal record yang didefinisikan oleh skema internal.
Selain itu juga menjelaskan mengenai alokasi ruang penyimpanan data dan index,
bagaimana perwujudan field-field yang disimpan, deskripsi record untuk penyimpanan
(dengan ukuran penyimpanan untuk data elemen), pemampatan data, dan teknik encription
(pengamanan data). Dengan kata lain level ini berkaitan dengan storage structure/stored
database yang menerangkan tempat penyimpanan data pada internal view, dan storage
structure definition pada skema internal yang menerangkan hubungannya dengan cara
pengaksesan data yang disimpan.
User A1 User A2 User B1 User B2 User B3
Host
Host Host Host Host
L
*External *External
External View A External View B
Schema A Schema B
Conceptual/Internal
mapping A
Storage
Structure
Definition
Stored Database (Internal View)
(Internal
Schema)
*User Interface
Data Independence
Logical Data Independence
Tidak memerlukan perubahan skema eksternal atau penulisan ulang program
aplikasi.
Database Languages
Data Definition Language (DDL)
Bahasa yang memungkinkan DBA atau user untuk mendefinisikan, menerangkan dan
memberi nama entitas-entitas, atribut, dan relationship yang dibutuhkan untuk aplikasi,
termasuk batasan-batasan keamanan dan integritas-nya.
Menyediakan operasi dasar manipulasi data pada data yang ada dalam Database, yaitu:
- Penyisipan data
- Modifikasi data
- Pemanggilan data
- Penghapusan data
Procedural DML
Non-Procedural DML
Bahasa yang memungkinkan user untuk menentukan data yang dibutuhkan dengan
menyebutkan spesifikasinya tanpa men-spesifikasikan bagaimana cara
mendapatkannya.
User lebih menekankan pada pendefinisian apa yang akan dikerjakan, daripada
bagaimana mengerjakannya. 4GL meliputi :
Query Languages
Forms Generators
Merupakan fasilitas interaktif untuk membuat form input data dan tampilannya.
Mendefinisikan design tampilan, informasi apa yang akan disajikan, komponen
warna pada layar dan karakteristik lainnya.
Report Generators
Membuat laporan (reports) yang datanya diambil dari database. Memungkinkan user
untuk mengambil data yang diperlukan untuk laporan. Lebih menekankan kepada
rancangan output, yaitu bagaimana suatu laporan akan disajikan.
Graphics Generators
Digunakan untuk mengambil data dari database, dan menampilkannya dalm bentuk
grafik, seperti ; bar chart, pie chart, line chart dan lainnya.
Application Generators.
Model Data
Kumpulan konsep-konsep yang terintegrasi untuk menggambarkan data, relationships antar
data, dan batasan-batasan data dalam organisasi.
Aturan-aturan Integritas.
Kegunaan untuk
Entity-Relationship
Semantic
Functional
Object-Oriented.
Hierarchical Data Model.
Conceptual Modelling
Merupakan representasi yang akurat dan lengkap dari kebutuhan data pada
organisasi.
Fungsi-fungsi DBMS
Penyimpanan, pengambilan dan perubahan Data.
Dukungan Transaksi.
Layanan recovery.
Layanan integrasi.
Layanan utilitas.
Komponen software utama DBMS
Query Processor, merupakan komponen utama dalam DBMS yang merubah query
kedalam bahasa instruksi tingkat rendah yang ditujukan untuk database manager.
Database Manager (DM), DM berhadapan dengan program aplikasi dan queri yang
diajukan oleh user. DM menerima query dan memeriksa skema eksternal dan
konseptual untuk menentukan record konseptual apa yang dapat memenuhi permintaan
user.
File Manager, memanipulasi file-file dasar yang tersimpan dan mengatur alokasi tempat
penyimpanan.
DML Processor, modul ini mengkonversikan pernyataan DML dalam program aplikasi
kebentuk standar dari bahasa host.
DDL Compiler, mengkonversikan pernyataan DDL kedalam sekumpulan tabel-tabel
yang berisikan meta-data. Tabel-tabel ini tersimpan di katalog sistem dan informasi
pengawasannya disimpan pada file header data.
Komponen software utama dalam DM :
Authorization Control, modul ini memeriksa bahwa user memiliki otorisasi yang
dibutuhkan untuk melakukan transaksi.
Command Processor, ketika sistem telah memeriksa otorisasi user, maka hak
pengawasan dialihkan pada command processor.
Query Optimizer, modul ini menentukan stategi yang paling optimal untuk eksekusi
query.
Transaction Manager, modul ini menampilkan proses yang diinginkan dari suatu
operasi
Scheduler, modul ini bertanggung jawab untuk memastikan bahwa operasi terhadap
database yang berurutan tidak mengalami konflik satu dengan lainnya.
Recovery Manager, modul ini memastikan database selalu berada pada kondisi
yang konsisten jika terjadi kesalahan.
Buffer Manager, modul ini bertanggung jawab untuk men-transfer data antara main
memory dan secondary storage.
Teleprocessing
Arsitektur tradisional untuk multi-user system, dimana sebuah CPU terhubung dengan
beberapa workstation.
Teleprocessing Topology
File-Server
Kerugiannya :
Kepadatan jaringan
File-server architecture
Client-Server
Server menangani database dan DBMS, Client mengatur user interface dan
menjalankan aplikasi.
Keuntungannya :
Meningkatkan performa.
Peningkatan konsistensi.
Client-Server Architecture
Alternative Client-Server Topologies
Summary Client – Server
Client
Mengatur user Interface
Menerima & memeriksa syntax input dari user
Membangun (Generates) permintaan DB dan mengirimkannya ke server
Memberikan respon balik ke user
Server
Menerima & memroses permintaan DB dari client
Memeriksa autorisasi
Menjamin batasan integritas
Menampilkan queri/proses update dan mengirimkannya ke user
Memelihara System Catalog
Menyediakan kontrol recovery
Menyediakan akses DB yang akurat
System Catalog
data item yang dapat diakses oleh user dan tipe aksesnya.
extensibility of data;
integrity of data;
Latihan
1. Diskusikan konsep dari data independence dan jelaskan pentingnya konsep ini
dalam lingkup basis data
2. Apa yang dimaksud dengan model data? Sebutkan dan jelaskan masing-masing dari
model data
3. Apa yang dimaksud dengan ‘client–server architecture’ dan apa keuntungan dari
pendekatan ini? Bandingkan arsitektur client-server dengan 2 arsitektur lainnya
4. Jelaskan fungsi dan pentingnya dari sebuah system katalog
Daftar Pustaka
1. Database system: A Practical approach to design, implementation and management
MODUL PERKULIAHAN
Basis Data
03
Ilmu Komputer Teknik Informatika 87033 Tim Dosen
Abstract Kompetensi
Modul ini berisi materi tentang Mahasiswa mampu menjelaskan
model relasional dalam basis data struktur data relasional, mampu
menyebutkan dan menjelaskan
kunci relasional
Relational Model Terminology
Relasi direpresentasikan sebagai table yang terdiri dari baris dan kolom.
Diaplikasikan hanya pada struktur logical bukan fisikal.
Atribut adalah nama kolom pada table.
Tuple adalah baris pada table (record).
Domain adalah himpunan nilai dari satu atau lebih atribut.
Degree adalah banyaknya atribut/kolom pada tabel.
Cardinality adalah banyaknya tuple/baris pada tabel.
Relational Database adalah kumpulan relasi ternormalisasi dengan nama relasi yang
jelas dan dapat dibedakan.
Contoh Domain Atribut
Himpunan bagian dari Cartesian product merupakan relasi, contoh :
Relasi Database
Skema Relasi
Nama relasi yang didefinisikan oleh himpunan pasangan atribut dan nama domain.
Misal : A1, A2, …, An adalah atribut dengan domain D1, D2, …, Dn, maka pasangan
{ a1:D1, A2:D2, …, An:Dn} adalah skema relasi.
Skema Database Relasional
Himpunan skema relasi, dengan nama yang berbeda.
Misal : Jika R1, R2, ..., Rn adalah himpunan skema relasi, maka dapat dituliskan
skema database relasional dalam R, sehingga R = {R1, R2, ..., Rn}
Sifat-sifat Relasi
Nama Relasi berbeda satu sama lain dalam skema relasional.
Setiap sel (baris, kolom) dari relasi berisi satu nilai atomik.
Setiap atribut memiliki nama yang berbeda.
Nilai suatu atribut berasal dari domain yang sama.
Setiap tuple berbeda, dan tidak ada duplikasi tuple.
Relational Integrity
Null
- Merepresentasikan nilai untuk atribut yang tidak diketahui/tidak digunakan/tidak
tersedia untuk suatu tuple.
- Berkaitan dengan ketidaklengkapan/pengecualian data
- Representasi tidak adanya suatu nilai dan tidak sama nilainya dengan Nol atau
Spasi.
Entity Integrity
Pada relasi dasar, tidak ada atribut ataupun primary key yang bernilai NULL.
Referential Integrity
Jika terdapat foreign key dalam suatu relasi, maka nilai foreign key tersebut harus
sesuai (match) dengan nilai candidate key dari beberapa tuple pada database atau
nilai foreign key harus NULL seluruhnya.
Enterprise Constraints
Aturan tambahan yang dispesifikasikan oleh user atau DBA.
Views
- Hasil dinamik dari satu atau lebih operasi relasional yang dilakukan pada relasi
dasar untuk menghasilkan relasi yang lain.
- Merupakan relasi virtual yang tidak harus ada dalam database, tetapi
dihasilkan pada saat dilakukan permintaan (request).
- Isi dari view didefinisikan sebagai query dari satu atau lebih relasi dasar.
- View bersifat dinamis, artinya perubahan yang dilakukan pada relasi dasar
yang mempengaruhi atribut pada view langsung terlihat.
Kegunaan View
Menyediakan mekanisme keamanan yang fleksible dan baik dengan
menyembunyikan bagian database dari user tertentu.
Mengijinkan user untuk meng-akses data dengan berbagai cara, sehingga data yang
sama dapat dilihat oleh user yang berbeda dengan cara yang berbeda pada saat
yang sama.
Menyederhanakan operasi yang rumit pada relasi dasar.
Merubah view (Updating View)
Seluruh update yang dilakukan pada relasi dasar harus secepatnya terlihat dalam
seluruh view yang terkait dengan relasi dasar tersebut.
Jika view di-update, perubahan harus terlihat pada relasi dasar yang digunakan.
Terdapat beberapa batasan pada tipe modifikasi yang dilakukan terhadap view,
diantaranya:
- Update diperbolehkan jika query melibatkan relasi dasar tunggal dan berisikan
candidate key dari relasi dasar.
- Update dilarang jika melibatkan banyak relasi dasar.
- Update tidak diperkenankan melibatkan penggabungan atau pengelompokan
operasi.
Latihan
1. Jelaskan perbedaan antara sebuah relasi, skema relasi. Apakah yang dimaksud
dengan skema basis data relasional?
3. Apa yang dimaksud dengan view? Jelaskan perbedaa antara view dengan sebuah
relasi fisik
Daftar Pustaka
1. Database system: A Practical approach to design, implementation and management
MODUL PERKULIAHAN
Basis Data
04
Ilmu Komputer Teknik Informatika 87033 Tim Dosen
Abstract Kompetensi
Modul ini berisi materi tentang Mahasiswa mampu menuliskan
perintah dalam SQL DML untuk perintah SQL DML sederhana dan
queri pada tabel tunggal fungsi agregat
Sampai dengan SQL3, SQL tidak mengandung perintah alih kontrol. Hal ini
diimplementasikan dengan menggunakan bahasa pemrograman atau perintah kontrol atau
secara interaktif, sesuai dengan keputusan user.
SQL dapat digunakan oleh bermacam-macam user, termasuk DBA, manajemen, pembuat
aplikasi dan user lainnya. Terdapat ISO standard untuk SQL, membuat bahasa formal dan
de facto untuk relasional database.
Sejarah SQL
Tahun 1974, D. Chamberlin (IBM San Jose Laboratory) mendefinisikan bahasa yang
disebut ‘Structured English Query Language’ (SEQUEL).
Versi yang telah diperbaiki, SEQUEL/2, ditemukan tahun 1976 tetapi namanya diubah
menjadi SQL untuk alasan hukum.
Sampai saat ini masih banyak yang menyebut ‘see-quel’, walaupun ejaan sesungguhnya
adalah ‘S-Q-L’.
IBM secara berturut-turut memproduksi prototype DBMS yang disebut System R,
berdasarkan pada SEQUEL/2.
Akar dari SQL, adalah SQUARE (Specifying Queries as Relational Expressions), dimana
mendahului proyek System R.
Diakhir 70-an, ORACLE muncul dan mungkin merupakan RDBMS komersil pertama
yang berbasis SQL.
Pada tahun 1987, ANSI dan ISO mempublikasikan standar awal untuk SQL.
Pada tahun 1989, ISO mempublikasikan tambahan yang mendefinisikan ‘Integrity
Enhancement Feature’.
Tahun 1992, revisi utama yang pertama dilakukan pada standar ISO, dikenal sebagai
SQL2 atau SQL/92.
Tahun 1999, SQL3 dikeluarkan dengan dukungan untuk manajemen data berorientasi
objek (object-oriented data management).
Pentingnya SQL
SQL telah menjadi bagian dari arsitektur aplikasi seperti arsitektur aplikasi sistem IBM.
Merupakan pilihan yang strategis untuk organisasi besar dan berpengaruh (co :
X/OPEN).
SQL digunakan untuk standar lainnya dan mempengaruhi pembuatan standar lainnya
sebagai definitional tool. Contoh :
– Standar ISO Information Resource Directory System (IRDS).
– Standar Remote Data Access (RDA).
Dreamhome Database
Registration
ClentNo BranchNo StaffNo Date_joined
Viewing
ClientNo PropertyNo View_Date Comment
Client
ClientNo fName lName TelNo PrefType MaxRent
Private Owner
OwnerNo fName lName Address TelNo
PropertyForRent
PropertyNo Street City PostCode Type Rooms Rent OwnerNo StaffNo BranchNo
PA14 16 Holhead Aberdeen AB7 5SO House 6 650 CO46 SA9 B007
PG36 2 Manor Rd Glasgopw G32 4QX Flat 3 375 CO93 SG37 B003
PG16 5 Novar Dr Glasgow G12 9AX Flat 4 450 CO93 SG14 B003
Branch
BranchNo Street City PostCode
Staff
StaffNo fName lName Position Sex DOB Salary BranchNo
Perintah SELECT
Bentuk umum :
[WHERE condition]
[ORDER BY columnList]
Dimana :
Catatan :
FROM Staff;
SELECT *
FROM Staff;
Buatlah daftar gaji seluruh staff yang menampilkan nomor staff, nama awal dan akhir, dan
gaji.
FROM Staff;
SELECT propertyNo
FROM Viewing;
FROM Viewing;
Tampilkan daftar gaji/bulan untuk seluruh staff, dengam menampilkan nomor staff, nama
awal dan akhir dan detail gaji.
FROM Staff;
FROM Staff;
FROM Staff
Tampilkan detail seluruh kantor cabang yang beralamat di London atau Glasgow.
SELECT *
FROM Branch
WHERE city = “London” OR city = “Glasgow”;
FROM Staff
FROM Staff
FROM Staff
FROM Staff
FROM PrivateOwner
Tampilkan detail seluruh all viewing pada properti PG4 dimana tidak terdapat komentar.
Terdapat 2 viewing untuk properti PG4, satu terdapat komentar dan lainnya tidak.
Dilakukan test nilai null secara tegas dengan keyword IS NULL:
FROM Viewing
FROM Staff
FROM PropertyForRent
ORDER BY type;
o Dari contoh diatas terdapat empat field. Untuk menyusun properti berdasarkan rent
maka harus dispesifikasikan minor order sbb :
FROM PropertyForRent
o Setiap fungsi beroperasi pada satu kolom dan mengembalikan satu nilai tunggal.
o COUNT, MIN, dan MAX digunakan untuk field numerik dan non-numerik, sedangkan
SUM dan AVG hanya dapat digunakan pada field numerik.
o Bagian dari COUNT(*), pertama setiap fungsi mengeliminasi null dan mengoperasikan
nilai non-null.
o COUNT(*) menghitung seluruh baris dalam tabel, walaupun terdapat null atau duplikasi.
o Menggunakan DISTINCT sebelum nama kolom untuk menghilangkan duplikasi.
o DISTINCT tidak berpengaruh terhadap operasi MIN/MAX, tetapi berpengaruh pada
SUM/AVG.
o Fungsi Aggregate dapat digunakan dalam daftar SELECT dan clause HAVING clause.
o Jika daftar SELECT menyertakan fungsi aggregate dan tidak terdapat clause GROUP
BY, daftar SELECT tidak dapat mengacu ke kolom dengan fungsi aggregate.
o Contoh berikut adalah salah :
FROM Staff;
Kegunaan COUNT(*)
Tampilkan banyaknya properti yang mempunyai biaya sewa lebih dari £350 per bulan
FROM PropertyForRent
Kegunaan COUNT(DISTINCT)
Tampilkan banyaknya properti yang berbeda telah dilihat selama May ‘01?
FROM Viewing
FROM Staff
FROM Staff;
Kegunaan GROUP BY
Tampilkan jumlah staff pada setiap cabang dan total gaji staf pada masing-masing cabang
FROM Staff
GROUP BY branchNo
ORDER BY branchNo;
ORDER BY branchNo;
Latihan
Perhatikan skema Hotel berikut:
Hotel (hotelNo, hotelName, city)
Room (roomNo, hotelNo, type, price)
Booking (hotelNo, guestNo, dateFrom, dateTo, roomNo)
Guest (guestNo, guestName, guestAddress)
b. Menampilkan semua hotel dengan harga terendah dan harga tertinggi dan
harga rata-ratanya
f. tampilkan ada berapa jumlah tamu yang berasal dari kota Bandung
Daftar Pustaka
1. Database system: A Practical approach to design, implementation and management
MODUL PERKULIAHAN
Basis Data
05
Ilmu Komputer Teknik Informatika 87031 Tim Dosen
Abstract Kompetensi
Modul ini berisi materi tentang Mahasiswa mampu menuliskan
perintah dalam SQL DML untuk perintah SQL DML multi queri
queri pada tabel lebih dari 1
QUERY MULTI TABLE
Dalam aplikasinya basis data digunakan untuk menyimpan banyak tabel yang secara logical
saling berhubungan satu dengan yang lain. Pada bab sebelumnya, kita telah membahas
tentang queri pada tabel tunggal dimana informasi yang dibutuhkan memang hanya berasal
dari satu tabel saja. Selanjutnya apa yang harus dilakukan jika informasi yang dibutuhkan
dari basis data membutuhkan gabungan informasi dari lebih 1 tabel. Dalam sql, ini biasa
disebut sebagai queri multi table.
Queri multi table dilakukan dengan 2 pendekatan. Pendekatan yang pertama disebut
sebagai nested queri. Nested queri adalah sebuah queri yang mememiliki queri yang
tersebunyi didalamnya, queri yang tersembunyi tersebut dinamakan sebagai subqueri.
Subqueri biasanya muncul dengan klausa WHERE, FROM atau HAVING.
Selain nested queri, pendekatan lainnya adalah dengan menggunakan join. Jenis join ini
beragam. Operasi Join yang mengacu pada SQL:1999 adalah sebagai berikut:
1. INNER JOIN (SIMPLE JOIN): yaitu bentuk kondisi join dimana di antara 2 atau lebih tabel
yang ingin di join memiliki hubungan sehingga semua isi tabel yang di pilih bisa di
tampilkan.
Sintak:
2. NON-EQUIJOIN: adalah kondisi join yang tidak mengandung opertor sama dengan (=)
Sintak:
3. OUTER JOIN : yaitu bentuk nilai join yang memenuhi daari kedua tabel, Outer join terdiri
dari 2 yaitu,
LEFT OUTER JOIN: Menampilkan semua data yang ada di tabel kiri dan hanya data
yang bersesuaian di tabel kanan, jika tabel kiri tidak mempunyai lawan di tabel kanan maka
tabel kanan akan diisi dengan null.
Contoh sintak
atau
on tabel1.kolom = tabel2.kolom
RIGHT OUTER JOIN : Sama dengan left outer join namun peletakan data atau nilai dari
tabel lain berada pada sebelah kanan tabel asal.
Contoh sintak
atau
on tabel1.kolom = tabel2.kolom
4. SELF JOIN: adalah suatu bentuk kondisi join tau penggabungan yang terjadi pada dua
tabel yang sama kondisinya dari kedua tabel tersebut dan menambahkan suatu kata
dengan kondisi yang sama antara kedua tabel.
Sintak:
Nested queri
Tampilkan detail staff yang bekerja di cabang yang berada di ‘163 Main St’.
WHERE branchNo =
SELECT yang didalam mencari no cabang dari cabang yang beralamat di ‘163 Main St’
(‘B003’).
SELECT yang diluar memanggil detail dari seluruh staff yang bekerja dicabang ini.
Kemudian SELECT luar menjadi :
Contoh : Subquery dengan Aggregate
Tampilkan detail staff yang gaji-nya lebih besar dari gaji rata-rata dan tampilkan selisihnya
SELECT staffNo, fName, lName, position, salary – (SELECT AVG(salary) FROM Staff)
As SalDiff FROM Staff
FROM Staff
Aturan-aturan Subquery
Clause ORDER BY dapat tidak digunakan dalam subquery (walaupun dapat digunakan
dalam SELECT terluar).
Subquery SELECT harus terdiri dari nama kolom tunggal atau ekspresi, kecuali untuk
subqueries yang menggunakan EXISTS.
Berdasarkan default, nama kolom mengacu ke nama tabel pada clause FROM dari
subquery. Dapat mengacu ke table dalam FROM menggunakan alias.
Ketika subquery merupakan sebuah operand dalam suatu perbandingan, maka harus
dituliskan disebelah kanan.
Subquery tidak dapat digunakan sebagai operand dalam suatu ekspresi.
FROM PropertyForRent
WHERE staffNo IN
ANY dan ALL
ANY dan ALL dapat digunakan dengan subqueries yang menghasilkan satu kolom
tunggal.
Dengan ALL, kondisi akan bernilai benar jika terpenuhi oleh semua nilai yang dihasilkan
oleh subquery.
Dengan ANY, kondisi akan bernilai benar jika ada nilai yang dihasilkan subquery
memenuhi ketentuan.
Jika subquery bernilai kosong (empty), ALL mengembalikan nilai benar (true), dan ANY
mengembalikan nilai salah (false).
SOME dapat digunakan sebagai pengganti ANY.
Tampilkan staff yang mempunyai gaji lebih besar dari gaji 1 staff dicabang B003.
Inner query menghasilkan himpunan {12000, 18000, 24000} dan outer query mengambil
staff yang gaji-nya lebih besar dari semua nilai yang ada di himpunan tersebut.
Contoh : Kegunaan ALL
Tampilkan staff yang gaji-nya lebih besar dari gaji setiap anggota staff cabang B003.
Contoh penggunaan non inner join
Tampilkan nama cabang dan stafnya yang tinggal diluar Paris
Tampilkan status laporan dari property yang sudah dilihat oleh client
Latihan
Buka skema HR pada latihan oracle anda. Buatlah queri-queri dengan menggunakan
perintah join.
Daftar Pustaka
1. Database system: A Practical approach to design, implementation and management
2. Sistem Manajemen Basis Data
3. Oracle database 10g: SQL Fundamentals I
MODUL PERKULIAHAN
Basis Data
SQL:
DATA DEFINITION LANGUAGE
06
Ilmu Komputer Teknik Informatika 87031 Tim Dosen
Abstract Kompetensi
Modul ini berisi materi tentang Mahasiswa mampu menuliskan
perintah dalam SQL untuk perintah SQL untuk membuat
membangun dan mendefiniskan sebuah struktur tabel, mampu
basis data beserta strukturnya mendefinisikan integrity constraint
dalam DDL.
2014 Basis Data Pusat Bahan Ajar dan eLearning
1 Tim Dosen http://www.mercubuana.ac.id
IEF-Required Data
Beberapa kolom field harus memiliki nilai yang pasti (tidak diperkenankan bernilai
NULL).
NULL digunakan untuk merepresentasikan data yang tidak ada/ tidak tersedia,
hilang atau tidak disertakan.
Standar ISO menetapkan keyword NOT NULL untuk mengatasi hal tersebut.
Contoh format deklarasi :
position VARCHAR(10) NOT NULL
2014 Basis Data Pusat Bahan Ajar dan eLearning
2 Tim Dosen http://www.mercubuana.ac.id
IEF-Domain Constraints
Setiap kolom mempunyai domain, atau dengan kata lain himpunan dari nilai-nilai
yang benar.
Misalkan dalam tabel Staff terdapat kolom Sex yang berisi nilai karakter tunggal ‘M’
atau ‘F’, maka dapat dideklarasikan CHECK (Search Condition);
sehingga :
sex CHAR NOT NULL
[DEFAULT defaultOption]
[CHECK (searchCondition)]
Sehingga :
CREATE DOMAIN SexType AS CHAR
FROM Branch));
2014 Basis Data Pusat Bahan Ajar dan eLearning
3 Tim Dosen http://www.mercubuana.ac.id
[RESTRICT | CASCADE]
Hanya dapat mempunyai 1 clause PRIMARY KEY untuk setiap table, tetapi masih
dapat memastikan pemasukkan nilai yang unik untuk beberapa alternate key
dengan menggunakan keyword UNIQUE:
UNIQUE(telNo)
2014 Basis Data Pusat Bahan Ajar dan eLearning
4 Tim Dosen http://www.mercubuana.ac.id
Operasi INSERT/UPDATE yang berusaha untuk membuat nilai FK dalam child table
tanpa nilai candidate key yang sesuai dalam parent table.
Aksi yang dilakukan yang berusaha untuk merubah / menghapus (update/delete)
nilai candidate key dalam parent table yang memiliki baris yang sesuai dalam child
table tergantung pada referential action yang ditetapkan dengan subclause ON
UPDATE dan ON DELETE. Terdapat 4 pilihan aksi, yaitu :
o CASCADE, menghapus baris dari parent table dan secara otomatis
menghapus baris yang sesuai dalam child table, jika baris yang dihapus tadi
merupakan candidate key yang digunakan sebagai foreign key pada tabel
lainnya, maka aturan foreign key untuk tabel ini dihilangkan.
o SET NULL, menghapus baris pada parent table dan menetapkan nilai foreign
key dalam child table menjadi NULL. Berlaku jika kolom foreign key
mempunyai qualifier NOT NULL.
o SET DEFAULT, menghapus baris dari parent table dan menetapkan setiap
komponen foreign key dari child table menjadi defaultyang telah ditetapkan.
Berlaku jika kolom foreign key memliki nilai DEFAULT.
o NO ACTION, menolak operasi penghapusan dari parent table. Merupakan
default jika aturan ON DELETE dihilangkan
Contoh 1 :
Pada tabel PropertyForRent, StaffNo merupakan foreign key yang mengacu ke tabel
Staff. Untuk menetapkan aturan penghapusan, jika record staff dihapus dari tabel Staff,
maka nilai StaffNo yang ada pada PropertyForRent akan diganti menjadi NULL.
Sehingga dapat dituliskan :
Contoh 2 :
2014 Basis Data Pusat Bahan Ajar dan eLearning
5 Tim Dosen http://www.mercubuana.ac.id
OwnerNo dalam tabel PropertyForRent merupakan foreign key yang mengacu ke tabel
PrivateOwner. Untuk mendefinisikan aturan peng-update-an, jika OwnerNo dalam
PrivateOwner di-update, maka kolom yang terkait dalam tabel PropertyForRent akan
diganti dengan nilai baru, sehingga dapat dituliskan :
CHECK (searchCondition)
FROM PropertyForRent
GROUP BY staffNo
2014 Basis Data Pusat Bahan Ajar dan eLearning
6 Tim Dosen http://www.mercubuana.ac.id
Data Definition
SQL DDL memungkinkan objek database seperti schema, domain, table, view, dan
index untuk dibuat dan dihapuskan.
Perintah-perintah SQL DDL yang utama adalah :
o CREATE SCHEMA
o DROP SCHEMA
o CREATE/ALTER DOMAIN
o DROP DOMAIN
o CREATE/ALTER TABLE
o DROP TABLE
o CREATE VIEW
o DROP VIEW
Beberapa DBMS juga menyediakan :
o CREATE INDEX
o DROP INDEX
Relasi-relasi dan objek lain dari suatu database berada dalam sebuah environment.
Setiap environment mengandung saru atau lebih catalog, dan setiap catalog terdiri dari
sekumpulan/himpunan skema.
Skema adalah suatu himpunan bernama yang terdiri dari oobjek-objek database yang
saling berhubungan.
Objek dalam sebuah skema dapat berupa table, view, domain, assertion, collation,
translation, dan himpunan karakter. Seluruhnya memiliki owner yang sama.
AUTHORIZATION CreatorId ]
Jika ditetapkan RESTRICT (default), maka skema harus kosong atau operasi akan
digagalkan. Jika ditetapkan CASCADE, maka operasi berjalan berurut menghapus
2014 Basis Data Pusat Bahan Ajar dan eLearning
7 Devi Fitrianah http://www.mercubuana.ac.id
seluruh objek yang terkait dengan skema yang telah didefinisikan sebelumnya. Jika
terjadi kegagalan operasi, maka DROP SCHEMA akan gagal juga.
[DEFAULT defaultOption]
[MATCH {PARTIAL|FULL}]
Membuat tabel dengan satu atau lebih kolom dengan tipe data tertentu.
Dengan NOT NULL, sistem akan menolak setia[ usaha untuk memasukan nilai NULL
kedalam kolom.
Dapat menspesifikasikan nilai DEFAULT untuk kolom.
Primary key harus selalu ditetapkan NOT NULL.
Clause FOREIGN KEY menetapkan FK bersama dengan aksi referensial.
postcode PostCode
staffNo StaffNumber
Constraint StaffNotHandlingTooMuch
GROUP BY staffNo
Nilai default ‘F’ untuk ‘Flat’ ditetapkan untuk tipe property kolom Type. Batasan untuk
kolom nomor staff ditetapkan untuk memastikan staff tidak menangani property lebih dari
100 unit. Primary key yang digunakan adalah PropertyNo.
StaffNo merupakan FK yang mengacu kepada tabel Staff, aturan penghapusan telah
ditetapkan yaitu jika record dari tabel Staff dihapus, maka nilai yang terkait dengan kolom
staff pada tabel PropertyForRent akan diisi dengan NULL. Untuk aturan peng-update-an,
jika staffNo dalam tabel staff diupdate, maka nilai yang terkait dalam kolom staffNo pada
tabel PropertyForRent akan di-update menjadi nilai yang baru.
Format penulisan :
DROP TABLE
Jika ditetapkan RESTRICT, maka operasi penghapusan akan ditolak jika terdapat objek
lain yang terkait dengan objek yang akan dihapus. Sedangkan CASCADE, operasi
penghapusan akan dilaksanakan dan seluruh objek terkait akan dihapus juga.
Contoh :
Hapus sebuah tabel dan seluruh baris didalamnya
Latihan
1. MEMBUAT TABEL
Buatlah table dengan struktur sebagai berikut di dalam database
TB_STAFF
SNAMA Varchar2 30
SGAJI Numeric 9,2
TB_DIVISI
DNAMA Varchar2 10
2014 Basis Data Pusat Bahan Ajar dan eLearning
13 Devi Fitrianah http://www.mercubuana.ac.id
2. MENAMPILKAN STRUKTUR TABEL YANG SUDAH ADA
Gunakan perintah DESCRIBE
3. MENGINSERT DATA
TB_STAFF
TB_DIVISI
00011 YOLANDA TANTYA 5540000
IDDIVISI DNAMA
00013 ARIEF RAHMAN 870000
10 PRODUKSI
00015 TUBAGUS ALDI 2540000
20 KEUANGAN
00017 ZIDAN 4540000
30 PERSONALIA
00019 HAFIRA AINI 1970000
40 HUMAS
00021 HALIZA 780000
50 PENJUALAN
00031 FAISAL RAFIF 5400000
60 IT
00012 AQILA RASIYAH 7500000
00023 ALFATH MUBINAN 2300000
00014 SYARIFAH IZNA 1600000
4. MEMODIFIKASI STRUKTUR DATA
Tambahkan field berikut sesuai dengan table yang sudah ditentukan dan definisikan constraintnya.
TB_STAFF
JENKEL Varchar2 9
TMPLHR Varchar2 25
TGLLHR Date
TB_DIVISI
5. Masukkan data baru untuk field baru
TB_STAFF
TB_DIVISI
20 KEUANGAN 00013
30 PERSONALIA 00023
40 HUMAS 00019
50 PENJUALAN 00011
60 IT 00031
6. Tampilkan hasil masing‐masing tabel dengan data setelah disisipkan data baru
7. Buatlah perintah‐perintah SQL untuk kebutuhan berikut dan tampilkan hasilnya.
a. Tampilkan nama dan gaji dari pegawai‐pegawai divisi tertentu.
b. Tampilkan nama dan gaji dari para manajer divisi.
c. Tampilkan jumlah pegawai di masing‐masing divisi.
d. Tampilkan rata‐rata gaji para pegawai di masing‐masing divisi.
e. Tampilkan gaji terendah, gaji tertinggi, dan gaji rata‐rata seluruh pegawai
f. Tampilkan nama pegawai beserta usianya diatas 30 tahun
g. Tampilkan gaji setahun dari divisi produksi
Daftar Pustaka
1. Database system: A Practical approach to design, implementation and management
2. Sistem Manajemen Basis Data
3. Oracle database 10g: SQL Fundamentals I
MODUL PERKULIAHAN
Basis Data
SQL:
DATA DEFINITION LANGUAGE
VIEW DAN KONTROL AKSES
07
Ilmu Komputer Teknik Informatika 87031 Tim Dosen
Abstract Kompetensi
Modul ini berisi materi tentang Mahasiswa mampu menuliskan
perintah dalam SQL untuk perintah SQL untuk membuat
membangun dan mendefiniskan sebuah struktur tabel, mampu
basis data beserta strukturnya mendefinisikan integrity constraint
dalam DDL.
Views
View merupakan hasil dinamik dari satu atau lebih operasi relasional yang
dioperasikan pada relasi dasar untuk menghasilkan relasi lain.
View merupakan relasi virtual yang tidak perlu ada dalam database tetapi dihasilkan
dari permintaan – permintaan khusus para user pada saat itu.
Isi dari view didefinisikan sebagai query pada satu atau lebih relasi dasar.
Dengan view resolution (pemecahan), operasi apapun pada view secara otomatis di
terjemahkan kedalam operasi pada relasi mana view tersebut dihasilkan.
Dengan view materialization (perwujudan), view disimpan sebagai tabel sementara,
yang diatur sebagai tabel dasar utama yang telah diubah.
Memerlukan hak SELECT pada semua tabel yang ditunjuk dalam subselect dan hak
USAGE pada domain yang digunakan dalam kolom yang ditunjuk
Buatlah view, sehingga manager dikantor cabang B003 hanya dapat melihat detail staff
yang bekerja di kantor cabang tersebut.
AS SELECT *
FROM Staff
Buatlah view detail staff dikantor cabang B003 tidak termasuk gaji.
FROM Staff
Buatlah view dari staff yang mengatur properti untuk disewakan, termasuk nomor kantor
cabang tempat mereka bekerja, nomor staff dan jumlah properti yang ditangani.
Jika CASCADE didefinisikan, maka semua objek yang terkait/terhubung akan dihapus.
Misalkan, view yang didefinisikan dari view yang dihapus.
Jika RESTRICT (Default) didefinisikan, maka jika terdapat objek lain yang bergantung
pada view yang akan dihapus, perintah penghapusan view akan ditolak.
View Resolution
Carilah jumlah properti yang ditangani oleh setiap anggota staff dari kantor cabang B003.
FROM StaffPropCnt
ORDER BY staffNo;
View resolution menggabungkan query diatas dengan defining query dari view StaffPropCnt
sbb :
(a) Nama kolom view dalam daftar SELECT diterjemahkan kedalam nama kolom yang
dimaksud dalam defining query:
SELECT s.staffNo As staffNo, COUNT(*) As cnt
2014 Basis Data Pusat Bahan Ajar dan eLearning
5 Tim Dosen http://www.mercubuana.ac.id
(b) Nama view dalam FROM digantikan dengan daftar FROM yang ditunjukan dalam
defining query:
(c) WHERE dari query user dikombinasikan dengan WHERE dari defining query
menggunakan AND:
(e) ORDER BY disalin dari query dengan nama kolom view diterjemahkan kedalam nama
kolom defining query :
ORDER BY s.staffNo
ORDER BY s.staffNo;
(a) Jika kolom dalam view berdasarkan pada fungsi aggregate, maka :
Kolom hanya boleh muncul dalam clause SELECT dan ORDER BY dari query
yang mengakses view.
Kolom tidak dapat digunakan dalam WHERE maupun argumen untuk fungsi
aggregate dalam query yang berasal dari view.
Contoh, query berikut adalah salah :
SELECT COUNT(cnt)
FROM StaffPropCnt;
Dan
SELECT *
FROM StaffPropCnt
(b) View yang dikelompokkan tidak akan pernah digabungkan dengan tabel dasar atau
view.
Contoh : view StaffPropCnt merupakan view yang dikelompokkan, oleh
sebab itu usaha untuk menggabungkan view ini atau tabel lainnya akan gagal.
View Updatability
Seluruh update yang dilakukan pada tabel dasar akan terlihat dalam semua view yang
mengandung tabel dasar tersebut.
Maka dapat dikatakan, jika view di-update/diubah maka tabel dasar akan
menggambarkan /menampilkan perubahannya.
Perhatikan view StaffPropCnt, jika akan dimasukan record pada kantor cabang B003,
SG5 mengatur 2 properti, dapat dituliskan :
INSERT INTO StaffPropCnt
Maka masih akan tetap bermasalah, karena dalam tabel PropertyForRent, seluruh kolom
kecuali postcode dan staffNo tidak memperbolehkan NULL, dan tidak dapat memasukan
nilai pada kolom-kolom NON NULL.
ISO menetapkan, suatu view harus dapat di-update dalam sistem yang sesuai dengan
standar.
Sebuah view dapat di-update jika dan hanya jika :
o DISTINCT tidak ditetapkan/digunakan.
o Setiap elemen dalam daftar SELECT dari defining query merupakan nama
kolom dan tidak ada kolom yang muncul lebih dari satu kali
2014 Basis Data Pusat Bahan Ajar dan eLearning
8 Tim Dosen http://www.mercubuana.ac.id
o Clause FORM ditetapkan hanya 1 tabel, tidak termasuk view yang berasal
dari join, union, intersection atau difference.
o Tidak terdapat nested SELECT yang mengacu ke outer tabel.
o Tidak terdapat clause GROUP BY atau HAVING.
o Setiap baris yang ditambahkan melalui view harus tidak melanggar batasan
integritas dari tabel dasar.
Updatable View
Untuk view yang dapat diubah, DBMS harus berkemampuan untuk menelusuri kebelakang
setiap baris atau kolom pada baris atau kolom dalam tabel asal/sumber.
AS SELECT *
FROM Staff
Misalkan salah satu baris akan di-update nomor cabangnya dari B003 menjadi B005,
sbb :
UPDATE Manager3Staff
Penulisan WITH CHECK OPTION pada definisi view akan menggagalkan perintah
diatas, karena dapat menyebabkan baris bermigrasi.
Juga tidak dapat memasukan baris kedalam view jika nomor cabang tidak sama
dengan B003, contoh :
INSERT INTO Manager3Staff
Penulisan WITH CHECK OPTION pada definisi view akan mencegah pemasukkan
data ke tabel Staff .
Jika Manager3Staff didefinisikan tidak pada tabel Staff langsung tetapi pada view lain
dari tabel Staff :
CREATE VIEW LowSalary
Maka perintah diatas akan gagal, walaupun update akan menyebabkan baris hilang
dari HighSalary, tetapi tidak akan hilang dari LowSalary.
Jika update mencoba untuk menetapkan salary = 8000, update akan dilaksanakan dan
baris tersebut tidak lagi menjadi bagian dari LowSalary.
Jika HighSalary ditetapkan WITH CASCADED CHECK OPTION, penetapan salary
menjadi 9500 atau 8000 akan ditolak karena menyebabkan baris dihilangkan dari
HighSalary.
Untuk mengatasi penyimpangan seperti ini, setiap view harus dibuat menggunakan
WITH CASCADED CHECK OPTION.
Disadvantages of Views
View Materialization
FROM PropertyForRent
staffNo
SG37
SG14
Jika akan dimasukan record baru ke tabel PropertyForRent dimana rent <= 400 maka
view tidak akan berubah.
Jika akan dimasukan data (‘PG24’, … , 550, ‘CO40’, ‘SG19’, ‘B003’) ke tabel
PropertyForRent, maka baris baru akan muncul pada materialized view.
Tetapi jika data yang akan dimasukan adalah (‘PG54’, …, 450, ‘CO89’, ‘SG37’, ‘B003’)
maka tidak akan terjadi penambahan baris karena ‘SG37’ sudah ada dalam
materialized view.
Privileges (Hak)
Aksi yang dapat dilakukan oleh user terhadap tabel dasar atau view :
o SELECT Mengambil (Retrieve) data dari tabel
o INSERT Memasukan (Insert) baris baru kedalam tabel
o UPDATE Merubah (Modify) baris dari data dalam tabel
o DELETE Menghapus baris data dari tabel
o REFERENCES Kolom referensi (Reference columns) dari tabel yang
disebutkan dalam integrity constraint.
o USAGE Menggunakan domain, collation, character set, dan
translation.
GRANT
ON ObjectName
TO {AuthorizationIdList | PUBLIC}
PrivilegeList berisi satu atau lebih hak (privilege) yang dipisahkan dengan koma.
ALL PRIVILEGES memberikan seluruh hak (privilege) kepada user.
PUBLIC memungkinkan akses diberikan ke user saat ini dan selanjutnya.
ObjectName dapat berupa tabel dasar, view, domain, character set, collation
(pemeriksaan) atau translation (penerjemahan).
WITH GRANT OPTION memungkinkan privilege diberikan oleh seorang user ke user
lainnya.
Contoh - GRANT
Berikan hak penuh kepada manager untuk menggunakan tabel Staff :
GRANT ALL PRIVILEGES
ON Staff
Berikan user Personnel dan Director hak SELECT dan UPDATE pada kolom salary
dari tabel Staff :
ON Staff
TO Personnel, Director;
GRANT SELECT
ON Branch
TO PUBLIC;
REVOKE
REVOKE, mengambil kembali hak yang diberikan oleh statemen GRANT, format
penulisan REVOKE sbb :
ON ObjectName
[RESTRICT | CASCADE]
ON Branch
FROM PUBLIC;
Ambil seluruh hak yang telah diberikan pada Director untuk tabel Staff.
ON Staff
FROM Director;
Latihan
Buka kembali latihan anda pada skema HOTEL. Pada latihan kali ini anda diminta untuk membangun
database untuk skema hotel secara baik dan benar.
1. Perhatikan constraint yang diminta:
a. Tipe harus salah satu dari: Single, Double, atau Family.
b. Harga harus antara £ 10 dan £ 100.
c. roomNo harus antara 1 dan 100.
d. dateFrom dan dateTo harus lebih besar dari tanggal hari ini.
e. Kamar tidak available jika sudah di pesan
f. tamu yang sama tidak dapat memesan lebih dari 1 pemesanan (booking)
2. Buat view/tampilan yang berisi nama hotel dan nama‐nama tamu yang sedang menginap di hotel
3. Buat view/tampilan yang berisi item guest beserta harga yang dibayarkan ketika check out dari
Hotel Fragrance hari ini (beri nama view = TamuKeluarHariIni)
4. Beri wewenang kepada manajer dan front office untuk mengakses 2 tampilan ini dengan
priviledge memberikan wewenang yang sama pada user lain.
Daftar Pustaka
1. Database system: A Practical approach to design, implementation and management
2. Sistem Manajemen Basis Data
3. Oracle database 10g: SQL Fundamentals I
MODUL PERKULIAHAN
Basis Data
Pemodelan Entitas-Relasi
08
Ilmu Komputer Teknik Informatika 87031 Tim Dosen
Abstract Kompetensi
Modul ini berisi materi tentang Mahasiswa mampu menjelaskan
model entitas dan hubungannya tentang model entitas dan
beserta atribut yang terdapat dalam komponen-komponen
entitas pemodelannya
Tujuan Pemodelan
Bagaimana menggunakan model Entity-Relationship (ER) dalam desain database.
Konsep dasar dikaitkan dengan model ER.
Teknik pendiagraman untuk menampilkan model ER dengan menggunakan Unified
Modelling Language (UML).
Bagaimana mengidentifikasi dan memecahkan masalah dengan model ER yang dikenal
dengan connection trap.
Bagaimana membuat sebuah model ER dari spesifikasi persyaratan.
Konsep Model ER
Entity types
Konsep dasar dari Model ER adalah Entity Types, yaitu kumpulan dari objek-objek
dengan sifat (property) yang sama, yang di identifikasi oleh enterprise mempunyai
eksistensi yang independen. Keberadaannya dapat berupa fisik maupun abstrak.
Entity occurrence, yaitu pengidentifikasian object yang unik dari sebuah type entity.
Setiap entitas di identifikasikan dan disertakan property-nya.
Relationship types
Kumpulan keterhubungan yang mempunyai arti (meaningful associations) antara
type entitas yang ada.
Contoh :
Derajat Relationship
Yaitu jumlah entitas yang berpartisipasi dalam suatu relationship. Derajat relationship
terdiri dari :
Binary relationship, keterhubungan antar dua type entitas. Contoh binary relationship
antara PrivateOwner dengan PropertyForRent yang disebut POwns.
Ternary relationship, keterhubungan antar tiga type entitas. Contoh Ternary
Relationship yang dinamakan Registers. . Relasi ini melibatkan tiga tipe entity yaitu
Staff, Branch dan Client. Relationship ini menggambarkan staff mendaftarkan client
pada branch.
Unary relationship, keterhubungan antar satu type entitas, dimana type entitas
tersebut berpartisipasi lebih dari satu kali dengan peran yang berbeda. Kadang
disebut juga recursive relationship. Relationship dapat diberikan role names untuk
meng-identifikasikan keterkaitan type entitas dalam relationship. Contoh entitas Staff
yang berperan menjadi supervisor dan staff yang di-supervisor-i.
Attributes
Merupakan sifat-sifat (property) dari sebuah entity atau type relationship. Contohnya:
sebuah entity Staff digambarkan oleh attribute staffNo, name, position dan salary.
Attribute Domain adalah himpunan nilai yang diperbolehkan untuk satu atau lebih
atribut. Macam-macam atribut :
Simple Attribute, yaitu atribut yang terdiri dari satu komponen tunggal dengan
keberadaan yang independen dan tidak dapat dibagi menjadi bagian yang lebih kecil
lagi. Dikenal juga dengan nama Atomic Attribute.
2014 Basis Data Pusat Bahan Ajar dan eLearning
6 Tim Dosen http://www.mercubuana.ac.id
Composite Attribute, yaitu atribut yang terdiri dari beberapa komponen, dimana
masing-masing komponen memiliki keberadaan yang independen. Misalkan atribut
Address dapat terdiri dari Street, City, PostCode.
Single-valued Attribute, yaitu atribut yang mempunyai nilai tunggal untuk setiap
kejadian. Misalnya entitas Branch memiliki satu nilai untuk atribut branchNo pada
setiap kejadian.
Multi-valued Attribute, yaitu atribut yang mempunyai beberapa nilai untuk setiap
kejadian. Misal entitas Branch memiliki beberapa nilai untuk atribut telpNo pada
setiap kejadian.
Derived Attribute, yaitu atribut yang memiliki nilai yang dihasilkan dari satu atau
beberapa atribut lainnya, dan tidak harus berasal dari satu entitas.
Keys
Candidate Key, yaitu jumlah minimal atribut-atribut yang dapat meng-identifikasikan
setiap kejadian/record secara unik.
Primary Key, yaitu Candidate key yang dipilih untuk meng-identifikasikan etiap
kejadian/record dari suatu entitas secara unik.
Composite Key, yaitu Candidate key yang terdiri dari dua atau lebih atribut.
Strong dan Weak Entity Types
Strong Entity Type, yaitu entitas yang keberadaannya tidak bergantung pada entitas
lain sedangkan Weak Entity Type, adalah entitas yang keberadaannya bergantung pada
entitas lain. Strong Entity Type terkadang disebut dengan parent, owner dominant dan Weak
Entity Type disebut child, dependent, subordinate.
Structural Constraints
Batasan utama pada relationship disebut multiplicity, yaitu jumlah (atau range) dari
kejadian yang mungkin terjadi pada suatu entitas yang terhubung ke satu kejadian dari
entitas lain yang berhubungan melalui suatu relationship.
one-to-one (1:1)
Relationship Staff Manages Branch
one-to-many (1 : *)
Relationship dari Staff Oversees PropertyForRent
many-to-many (* : *)
Relationship Newspaper Advertises PropertyForRent
Multiplicity for Complex Relationships
Yaitu jumlah (atau range) dari kejadian yang mungkin dari suatu entitas dalam n-ary
relationship ketika nilai entitas yang lain (n-1) diketahui.
Ternary relationship Registers dengan nilai untuk entitas Staff dan Branch diketahui
Multiplicity dibentuk dari 2 macam batasan pada relationship : cardinality dan participation.
Cardinality, menjelaskan jumlah maksimum dari kejadian relationship yang mungkin
untuk entitas yang berpartisipasi didalam relationship tersebut.
Participation, menetapkan apakan seluruh atau sebagian entitas yang berpartisipasi
dalam suatu relationship.
Latihan
1. Dari skema Dreamhome, tentukan mana saja relasi entitas yang termasuk kedalam
a. Unary
b. Binary
c. Ternary
d. Quarterary
2. Masih dari skema Dreamhome, tentukan mana saja atribut yang termasuk kedalam
a. Simple
b. Composite
c. Single valued
d. Multi valued
e. Derived
3. Jelaskan bagaimana multiplicity dapat merepresentasikan kardinalitas dan partisipasi
4. Berikan sebuah contoh dari relasi yang dapat memiliki atribut
Daftar Pustaka
1. Database system: A Practical approach to design, implementation and management
2. Sistem Manajemen Basis Data
3. Oracle database 10g: SQL Fundamentals I
MODUL PERKULIAHAN
Basis Data
09
Ilmu Komputer Teknik Informatika 87031 Tim Dosen
Abstract Kompetensi
Modul ini berisi materi tentang Mahasiswa mampu
pembuatan diagram ERD dan menggambarkan ERD dan Class
Class Diagram Diagram dari sebuah studi kasus
yang diberikan
Dalam perancangan basis data terdapat dua pendekatan yang dapat digunakan.
Pendekatan statis dan dinamis. Pendekatan statis seringkali digunakan ERD sebagai
pemodelannya, sementara untuk pemodelan yang dinamis digunakan Class Diagram. Tetapi
keduanya sama-sama memodelkan struktur data didalam sistem. Class diagram
merepresentasikan aspek dinamis dari sebuah sistem, baik dari sisi struktur maupun
behavior, sementara ERD hanya memperlihatkan struktur statis dari sistem.
Seperti yang telah kita ketahui bahwa ERD memiliki elemen-elemen diagram, yaitu entitas,
relasi, atribut. Dari sebuah deskripsi sistem, yang pertama harus dilakukan adalah
mengidentifikasi entitas, relasi antar entitas dan atribut dari masing-masing entitas.
1. Identifikasi entitas
2. Tentukan relasi
3. Gambar ERD awal
4. Tentukan kardinalitas
5. Tentukan kunci primer
6. Tentukan key based ERD
7. Tentukan atribut
8. Gambar ERD secara menyeluruh
Class Diagram
Pada class diagram kita terlebih dahulu harus mengetahui elemen-elemen dari class
diagram:
1. Class, merupakan konsep yang umum yang biasanya digambarkan dengan kotak.
Sebuah class menggambarkan atribut struktural dan karakterisitik tingkah laku dari
konsep didalamnya.
2014 Basis Data Pusat Bahan Ajar dan eLearning
2 Tim Dosen http://www.mercubuana.ac.id
Asosiasi terdapat dua jenis ada yang binary asosiasi dan ada pula yang n-ary asosiasi
dimana menghubungkan dengan lebih dari dua class.
Realisasi, class mendukung semua operasi dari class target tetapi tidak semua atribut
maupun asosiasi
Asosiasi class
3. Atribut merupakan elemen berikut dari class diagram setelah class dan asosiasi.
Atribut merupakan deskripsi dari class dengan karakteristik data serupa.
4. Operasi merupakan apa yang dapat dilakukan oeh objek ini dan aksi yang dilakukan
adalah yang relevan terhadap analisis. Operasi biasa juga disebut sebagai method.
Setelah mengetahui elemen dari class diagram, selanjutnya adalah membangun class
diagram dari sebuah deskripsi sistem. Langkah-langkah dari membangun sebuah class
diagram adalah:
1. Identifikasi class
2. Tentukan asosiasi
3. Gambar class diagram awal
4. Tentukan multiplicity
5. Tentukan atribut
6. Tentukan tingkah laku atau method dari class
7. Periksa kembali class diagram
Latihan
Universitas Maju Jaya adalah sebuah universitas yang memiliki beberapa fakultas. Setiap
fakultas dipimpin oleh seorang dekan dan minimal memiliki satu program studi yang
dikepalai oleh seorang kaprodi. Sebuah prodi minimal memiliki seorang dosen tetap dan
dosen tidak tetap. Setiap dosen tetap ditugaskan pada 1 fakultas, tetapi ada pula yang
ditugaskan pada 2 atau lebih fakultas. Setiap dosen tetap mengajar matakuliahnya, atau ada
juga dosen tetap yang tidak mengajar, melainkan hanya melakukan penelitian. Setiap
matakuliah diajar oleh lebih dari 1 pengajar. Dari dokumen didapatkan informasi tentang
nama fakultas, nama dosen, id dosen, nama matakuliah, jadwal kuliah, semester
penyelenggaraan kuliah tersebut, fakultas dan program studi dari dosen yang mengajar,
fakultas dan program studi dari kuliah yang diselenggarakan.
Dari deskripsi diatas anda diminta untuk membuat sebuah rancangan pemodelan data
dengan ERD dan class diagram
Daftar Pustaka
1. Database system: A Practical approach to design, implementation and management
2. Sistem Manajemen Basis Data
3. Oracle database 10g: SQL Fundamentals I
MODUL PERKULIAHAN
Basis Data
Normalisasi
10
Ilmu Komputer Teknik Informatika 87031 Tim Dosen
Abstract Kompetensi
Modul ini berisi materi tentang data Mahasiswa mampu menjelaskan
redundansi, konsep anomaly dan konsep tentang data yang tidak
ketergantungan fungsionalitas mengandung redundansi serta
dapat mengidentifikasi anomaly dari
data dan memahami konsep
ketergantungan fungsionalitas
Normalisasi
Tujuan utama dalam pengembangan model data logical pada sistem database relasional
adalah untuk menciptakan representasi akurat suatu data, keterhubungannya dan
batasan-batasannya.
Untuk mencapai tujuan ini, maka harus ditetapkan/diidentifikasi sekumpulan relasi.
Empat bentuk normal yang biasa digunakan yaitu, first normal form (1NF), second
normal form (2NF) dan third normal form (3NF), dan Boyce–Codd normal form (BCNF).
Berdasarkan pada functional dependencies antar atribut dalam relasi
Sebuah relasi dapat dinormalisasi kedalam bentuk tertentu untuk mengatasi
kemungkinan terjadinya pengulangan dari update yang tidak baik.
Normalisasi adalah suatu teknik untuk menghasilkan sekumpulan relasi dengan sifat-
sifat (properties) yang diinginkan, memenuhi kebutuhan data pada enterprise.
Data Redundancy
Tujuan utama dari desain database relasional adalah untuk mengelompokkan atribut-
atribut kedalam relasi-relasi sehingga meminimalisasi redundansi data dan mengurangi
penggunaan tempat penyimpanan yang dibutuhkan oleh sebuah relasi dasar.
Masalah-masalah yang terkait dengan redundansi dapat dijelaskan dengan
membandingkan relasi Staff dan Branch dengan relasi StaffBranch.
Relasi StaffBranch memiliki data redundan, yaitu detail dari branch dituliskan berulang-
ulang untuk setiap staff.
Sebaliknya, informasi mengenai branch muncul hanya satu kali pada relasi Branch dan
hanya branchNo saja yang diulang dalam relasi Staff, untuk merepresentasikan dimana
setiap staff tersebut bekerja.
Update Anomalies
Relasi yang mengandung informasi yang redundan dapat diakibatkan oleh update
anomalies.
Beberapa tipe dari update anomalies, diantaranya :
o Insertion: anomaly yang terjadi apabila terdapat penyisipan baris baru pada table,
(adanya PK yang kosong)
o Deletion: anomaly yang terjadi apabila terdapat penghapusan baris dari table,
(ada informasi yang semestinya tidak hilang menjadi hilang bersamaan
dihapusnya sebuah baris dalam tabel)
o Modification: anomaly yang terjadi apabila terdapat perubahan pada sebuah
baris saja, tanpa merubah sisa baris dengan definisi yang sama.
Pada contoh dari table staffBranch dapat dilihat anomaly-anomaly sebagai berikut:
o Anomaly insertion, apabila disisipkan sebuah baris staff baru, maka atribut
yang akan disisipkan hanya staffno, sname, posisition dan salary. Padahal
pada table tersebut PK adalah staffno dan Branchno. Maka disini terdapat
anomaly bahwa terdapat PK yang kosong.
o Anomaly deletion, apabila terdapat staff yang mengundurkan diri, yaitu Mary
Howe. Ketika menghapus informasi tentang Mary Howe, maka satu baris
akan ikut terhapus, demikian pula informasi tentang cabang yang ada di
Glasgow. Sehingga informasi cabang tidak lagi menyimpan informasi tentang
cabang Glasgow.
o Anomali update, apabila kita hendak mengganti informasi pada satu field.
Tetapi karena terdapat redundansi maka ketika diupdate hanya terjadi pada 1
baris saja, sedangkan baris-baris yang lain tidak ikut diupdate sehingga
menimbulkan inkonsistensi.
Untuk mengatasi anomalies ini dapat dilakukan decomposotion pada relasi dasar.
Terdapat dua sifat Decomposition yaitu :
Lossless-join
Memungkinkan kita menemukan suatu instance relasi dasar dari instance koresponden
dalam relasi yang lebih kecil.
Functional Dependency
Merupakan konsep inti yang terkait dengan normalisasi.
Functional Dependency, menjelaskan relationship antar atribut-atribut dalam relasi.
Misalkan, jika A dan B adalah atribut dari suatu relasi R, B dikatakan Functionally
Dependent pada A (dinotasikan A --> B), jika setiap nilai A dihubungkan dengan tepat
satu nilai B. ( A dan B masing-masing dapat terdiri atas satu atau lebih atribut)
Functional Dependency merupakan sifat dari arti semantik suatu atribut dalam sebuah
relasi.
Direpresentasikan dalam diagram
Determinant dari functional dependency mengacu kepada atribut atau himpunan atribut
disebelah kiri anak panah.
Nontrivial.
Kumpulan lengkap dari sebuah functional dependency untuk suatu relasi bisa sangat
besar.
Penting untuk menemukan pola pendekatan yang dapat mengurangi
himpunan/kumpulan tersebut untuk mendapatkan ukuran yang lebih mudah diatur.
Perlu untuk mengidentifikasi himpunan functional dependency (direpresentasikan oleh
X) untuk relasi yang lebih kecil daripada himpunan lengkap functional dependency
(direpresentasikan oleh Y) untuk relasi tersebut dan memiliki sifat disetiap functional
dependency pada Y dipenuhi dengan functional dependencies pada X.
Himpunan dari seluruh functional dependency yang dipenuhi dengan himpunan yang
diberikan dari functional dependencies X disebut closure X (dituliskan, X+).
Himpunan inference rules, disebut Armstrong’s axioms, menetapkan bagaimana
functional dependency yang baru dapat disimpulkan dari functional dependency yang
sudah ada.
Misalkan A, B, dan C merupakan subset dari atribut suatu relasi R. Maka Armstrong’s
axiom-nya adalah :
o Reflexivity, jika B merupakan subset dari A, then A B
o Augmentation, jika A B, maka A,C B, C
o Transitivity, jika A B dan B C, maka A C
Ketergantungan fungsional penuh berarti bahwa jika ada atribut B yang tergantung secara
fungsinal terhadap A dan tidak kepada sebagian atau turunan dari atribut A. Dinotasikan
sebagai A B
Artinya bahwa atribut B bergantung penuh pada atribut A, dimana A adalah sebagai
determinannya. Jika A adalah primary key atribut yang komposit (lebih dari 1), maka atribut
yang dinyatakan sebagai tergantung penuh, harus tergantung kepada atribut primary key
komposit tersebut (lebih dari 1).
Contoh :
Dari tabel diatas dapat diketahui bahwa Primary key nya adalah No-pesanan dan No-pem.
Primary
key ini adalah composite primary key yang berarti perimary key lebih dari 1. Berarti semua
atribut yang non primary key harus bergantung penuh kepada keduanya.
Dari penjelasan diatas dapat dikatehui bahwa nomor pemesanan dan no pemesan,
keduanya menentukan nomor barang yang dipesan dan keduanya juga menentukan berapa
jumlah pesanan. Sehingga atribut yang bukan primary key semuanya bergantung pada
primary key-nya.
Ketergantungan fungsional parsial artinya bahwa dalam sebuah tabel ada atribut atau
sebagian atribut yang tidak bergantung sepenuhnya kepada primary key di tabel tersebut.
Hal ini biasa terjadi jika pada sebuah tabel terdiri dari lebih 1 primary key (composite primary
key). Misalkan jika terdapat A, B C, D. Dan A E. Sehingga terdapat atribut E yang
hanya bergantung kepada sebagian atribut primary key yaitu atribut A saja. Lihat gambar
dibawah:
Jika tabel seperti diatas, maka dapat dirtentukan sebagai primary key bahwa nomor
pesanan dan nomor pemesan menentukan semua atribut yang ada pada tabel tersebut.
Tetapi kenyataannya bahwa ada atribut Na_pem yang hanya tergantung pada No_pem dan
tidak tergantung pada No_pesanan. Sehingga terjadi ketergantungan parsial antara Na_pem
kepada No_pem.
Ketergantungan fungsional transitif artinya jika pada sebuah tabel terdapat atribut yang tidak
hanya tergantung kepada primary keynya, tetapi kepada atribut lain yang bukann kunci.
Sehingga keadaan tersebut dapat diidentifikasikan dengan notasi:
A B, B C
Perhatikan tabel contoh dibawah. Terdapat atribut nama barang yang tergantung pada
kedua atribut kunci primer. Tetapi pada kenyataannya atribut nama barang ini bergantung
kepada no_barang, sehingga terdapat ketergantungan transitif terhadap no_barang yang
juga tergantung kepada atribut kunci primer yaitu No_pemesanan dan No_pemesan.
No_bar Na_bar
Latihan
Perhatikan tabel dibawah ini
1. Dari tabel ini tentukan anomali yang terjadi (insert, update, delete)
Daftar Pustaka
1. Database system: A Practical approach to design, implementation and management
2. Sistem Manajemen Basis Data
3. Oracle database 10g: SQL Fundamentals I
MODUL PERKULIAHAN
Basis Data
Proses Normalisasi
11
Ilmu Komputer Teknik Informatika 87031 Tim Dosen
Abstract Kompetensi
Modul ini berisi materi tentang Mahasiswa mampu menggunakan
proses dan langkah-langkah dari teknik normalisasi untuk model
teknik normalisasi data tabel dari sebuah studi kasus
2014 Basis Data Pusat Bahan Ajar dan eLearning
1 Tim Dosen http://www.mercubuana.ac.id
Proses Normalisasi
Suatu teknik formal untuk menganalisa relasi berdasarkan primary key atau
candidate key-nya dan functional dependency antar atribut.
Dilakukan dalam beberapa langkah. Setiap langkah mengacu ke bentuk normal
tertentu, sesuai dengan sifat yang dimilikinya.
Setelah normalisasi diproses, relasi secara bertahap menjadi lebih terbatas/kuat
bentuk formatnya dan juga mengurangi tindakan update yang anomali.
2014 Basis Data Pusat Bahan Ajar dan eLearning
2 Tim Dosen http://www.mercubuana.ac.id
1. Masukkan data yang semestinya kedalam kolom yang kosong pada baris
yang berisikan data yang berulang (flattening the table), atau dengan
cara
2. Menggantikan data yang ada dengan copy dari kunci atribut yang
sesungguhnya kedalam relasi terpisah.
Contoh:
Contoh sederhana DreamHome lease. Seorang klien bernama John Kay
menyewa properti di Glasgow yang dimiliki oleh Tina Murphy. Dalam kasus ini
diasumsikan seorang klien dapat menyewa sebuah properti hanya satu kali dan
tidak dapat menyewa lebih dari satu pada saat yang bersamaan.
Sample data yang digunakan diambil dari 2 kontrak dari 2 klien yang berbeda yaitu
John Kay dan Aline Stewart yang diubah kedalam bentuk tabel sbb, disebut dengan
unnormalized table :
ClientRental
client cName prope pAddress rentStart rentFinish rent owner oName
No rtyNo No
CR76 John Kay PG4 6 Lawrence St, 1-Jul-00 31-Aug-01 350 CO40 Tina
Glasgow Murphy
PG16 5 Novar Dr, 1-Sep-01 1-sep-02 450 CO39 Tony
Glasgow Shaw
CR56 Aline PG4 6 Lawrence St, 1-Sep-99 10-Jun-00 350 CO40 Tina
Stewart Glasgow Murphy
PG36 2 Manor Rd, 10-Oct-00 1-Dec-01 375 CO93 Tony
Glasgow Shaw
PG16 5 Novar Dr, 1-Nov-02 10_Aug-03 450 CO93 Tony
Glasgow Shaw
2014 Basis Data Pusat Bahan Ajar dan eLearning
3 Tim Dosen http://www.mercubuana.ac.id
Tentukan atribut kunci untuk tabel unnormalized ClientRental , yaitu clientNo.
Tentukan group/kelompok yang berulang untuk setiap clientNo, yaitu :
Untuk mengubah tabel unnormalized menjadi 1NF, maka harus ditetapkan terdapat
1 nilai untuk setiap kolom dan baris. Dapat dicapai dengan memindahkan group
yang berulang. Sehingga menghasilkan 1NF sbb :
ClientRental
client cName prope pAddress rentStart rentFinish rent owner oName
No rtyNo No
CR76 John Kay PG4 6 Lawrence St, 1-Jul-00 31-Aug-01 350 CO40 Tina
Glasgow Murphy
CR76 John Kay PG16 5 Novar Dr, 1-Sep-01 1-sep-02 450 CO39 Tony
Glasgow Shaw
CR56 Aline PG4 6 Lawrence St, 1-Sep-99 10-Jun-00 350 CO40 Tina
Stewart Glasgow Murphy
CR56 Aline PG36 2 Manor Rd, 10-Oct-00 1-Dec-01 375 CO93 Tony
Stewart Glasgow Shaw
CR56 Aline PG16 5 Novar Dr, 1-Nov-02 10_Aug-03 450 CO93 Tony
Stewart Glasgow Shaw
ClientRental
client propertyN cName pAddress rentStart rentFinish rent owner oName
No o No
CR76 PG4 John Kay 6 Lawrence St, 1-Jul-00 31-Aug-01 350 CO40 Tina
Glasgow Murphy
CR76 PG16 John Kay 5 Novar Dr, 1-Sep-01 1-sep-02 450 CO39 Tony
Glasgow Shaw
CR56 PG4 Aline 6 Lawrence St, 1-Sep-99 10-Jun-00 350 CO40 Tina
Stewart Glasgow Murphy
CR56 PG36 Aline 2 Manor Rd, 10-Oct-00 1-Dec-01 375 CO93 Tony
Stewart Glasgow Shaw
CR56 PG16 Aline 5 Novar Dr, 1-Nov-02 10_Aug-03 450 CO93 Tony
Stewart Glasgow Shaw
2014 Basis Data Pusat Bahan Ajar dan eLearning
4 Tim Dosen http://www.mercubuana.ac.id
ClientRental (clientNo, propertyNo, cName, pAddress, rentStart, rentFinish, rent,
ownerNo, oName)
Client clientN property rentStart rentFinis
clientN cName o No h
o CR76 PG4 1-Jul-00 31-Aug-01
CR76 John Kay CR76 PG16 1-Sep-01 1-sep-02
CR56 Aline Stewart CR56 PG4 1-Sep-99 10-Jun-00
CR56 PG36 10-Oct-00 1-Dec-01
CR56 PG16 1-Nov-02 10_Aug-
03
Rental
propertyOwner
property pAddress rent owner oName
No No
PG4 6 Lawrence St, Glasgow 350 CO40 Tina
Murphy
PG16 5 Novar Dr, Glasgow 450 CO39 Tony Shaw
PG36 2 Manor Rd, Glasgow 375 CO93 Tony Shaw
Karena setiap atribut non-primary-key bersifat fully dependent pada primary key dalam
relasi, maka relasi-relasi diatas mempunyai bentuk :
2NF ke 3NF :
o Identifikasikan primary key dalam relasi 2NF.
o Identifikasikan functional dependency dalam relasi.
o Jika terdapat transitive dependency terhadap primary key, hapus dengan
menempatkannya dalam relasi yang baru bersama dengan salinan
determinan-nya.
Contoh
Functional dependency yang ada dalam relasi Client, Rental dan PropertyOwner,
yang dihasilkan dari contoh sebelumnya, sbb :
Client
fd2 clentNo cName (Partial Dependency)
Rental
fd1 clienNo, propertyNo rentStart, rentFinish (Primary Key)
fd5’ clientNo, rentStart propertyNo, rentFinish (Candidate Key)
fd6’ properyNo, rentStart clientNo, rentFinish (Candidate Key)
PropertyOwner
fd3 propertyNo pAddress, rent, ownerNo, oName(Partial Dependency)
fd4 ownerNo oName (Transitive Dependency)
Seluruh atribut non-primary key yang terdapat pada relasi client dan Rental bersifat
functionally dependent pada masing-masing primary key-nya dan tidak memiliki
transitive dependency yang dibutuhkan dalam 3NF. fd yang diberi label tanda kutip (fd5’
dan fd6’) menandakan bahwa dependency yang terdapat didalamnya telah
dibandingkan sebelumnya (bandingkan dgn fd1).
Seluruh non-primary-key pada relasi PropertyOwner bersifat functionally
dependen pada primary key-nya, terkecuali oName yang juga dependent pada
ownerNo. Transitive dependency adalah jika suatu atribut dependent pada satu atau
lebih non-primary-key.
Untuk merubah relasi PropertyOwner kedalam bentuk 3NF, harus
menghilangkan transitive dependencies dengan membuat 2 relasi baru yaitu
2014 Basis Data Pusat Bahan Ajar dan eLearning
7 Tim Dosen http://www.mercubuana.ac.id
PropertyForRent dan Owner. Sehingga relasi yang baru tersebut mempunyai bentuk
sbb :
Rental
clientNo propertyNo rentStart rentFinish
CR76 PG4 1-Jul-00 31-Aug-01
CR76 PG16 1-Sep-01 1-sep-02
CR56 PG4 1-Sep-99 10-Jun-00
CR56 PG36 10-Oct-00 1-Dec-01
CR56 PG16 1-Nov-02 10_Aug-03
PropertyForRent
propertyNo pAddress rent ownerNo
PG4 6 Lawrence St, Glasgow 350 CO40
PG16 5 Novar Dr, Glasgow 450 CO39
PG36 2 Manor Rd, Glasgow 375 CO93
Client
clientNo cName
CR76 John Kay
CR56 Aline Stewart
Owner
ownerNo oName
CO40 Tina Murphy
CO39 Tony Shaw
2014 Basis Data Pusat Bahan Ajar dan eLearning
8 Tim Dosen http://www.mercubuana.ac.id
Definisi umum 2NF dan 3NF
Second normal form (2NF)
Suatu relasi yang ada dalam 1NF dan setiap atribut non-primary-key bersifat fully
functionally dependent pada candidate key.
Langkah-langkah Normalisasi
Unnormalized
Menghilangkan group berulang sehingga setiap irisan baris dan kolom hanya
berisi satu dan hanya satu nilai
Bentuk 1 NF
Menghilangkan partial dependency terhadap primary key, sehingga didapat
atribut non primary key yang fully functional dependent terhadap primary
key-nya
Bentuk 2 NF
Menghilangkan transitive dependency
Bentuk 3 NF
Jika dan hanya jika setiap determinan merupakan candidate key
Bentuk BCNF
2014 Basis Data Pusat Bahan Ajar dan eLearning
9 Tim Dosen http://www.mercubuana.ac.id
Latihan
Perhatikan kartu pengobatan pasien dibawah ini:
Dari kartu pengobatan diatas, anda diminta untuk mengkonversinya menjadi tabel‐tabel yang
terbentuk dengan teknik normalisasi.
Daftar Pustaka
1. Database system: A Practical approach to design, implementation and management
2. Sistem Manajemen Basis Data
3. Oracle database 10g: SQL Fundamentals I
2014 Basis Data Pusat Bahan Ajar dan eLearning
10 Tim Dosen http://www.mercubuana.ac.id
MODUL PERKULIAHAN
Basis Data
ALJABAR RELASIONAL
KALKULUS RELASIONAL
12
Ilmu Komputer Teknik Informatika 87031 Tim Dosen
Abstract Kompetensi
Modul ini berisi materi tentang Mahasiswa mampu memahami
bahasa procedural aljabar konsep aljabar relasional dan
relasional dan kalkulus relasional mampu menjawab pertanyaan queri
dalam bentuk aljabar relasional dan
kalkulus relasional
2014 Basis Data Pusat Bahan Ajar dan eLearning
1 Tim Dosen http://www.mercubuana.ac.id
Relational Algebra
Pendahuluan
o Aljabar relasional dan kalkulus relasional merupakan bahasa formal yang berhubungan
dengan model relasional.
o Secara informal, aljabar relasional adalah bahasa prosedural (high-level) dan kalkulus
relasional adalah bahasa non-procedural.
o Tetapi, secara formal keduanya ekuivalen satu dengan lainnya.
o Sebuah bahasa yang memproduksi relasi yang dihasilkan dengan menggunakan
kalkulus relasional disebut relationally complete.
Aljabar Relasional
o Operasi aljabar relasional yang dilakukan pada satu atau lebih relasi untuk
mendefinisikan relasi lainnya tanpa mengubah relasi yang asli.
o Operand dan hasilnya merupakan relasi, sehingga output suatu operasi dapat menjadi
input bagi operasi yang lain.
o Memungkinkan suatu operasi bertingkat (nested) (seperti aritmatika), hal ini disebut
closure.
o terdapat 5 operasi dasar pada aljabar relasional: Selection, Projection, Cartesian
product, Union, dan Set Difference. Menampilkan seluruh operasi pemanggilan data
yang dibutuhkan.
o Operasi lainnya : Join, Intersection, dan Division operations, yang juga dapat
diekspresikan dengan menggunakan operasi dasar.
o Operasi aljabar Relasional
2014 Basis Data Pusat Bahan Ajar dan eLearning
2 Tim Dosen http://www.mercubuana.ac.id
Operasi dasar dalam Aljabar Relasional
2014 Basis Data Pusat Bahan Ajar dan eLearning
3 Tim Dosen http://www.mercubuana.ac.id
Contoh Kasus: Dreamhome Database
Registration
ClentNo BranchNo StaffNo Data_joined
CR76 B005 SL41 2-Jan-01
CR56 B003 SG37 11-Apr-00
CR74 B003 SG37 16-Nov-99
CR62 B007 SA9 7-Mar-00
Viewing
ClientNo PropertyNo View_Date Comment
CR56 PA14 24-May-01 Too Small
CR76 PG4 20-Apr-01 Too Remote
CR56 PG4 26-May-01
CR62 PA14 14-May-01 No Dining Room
CR56 PG36 28-Apr-01
Client
ClientNo fName lName TelNo PrefType MaxRent
CR76 John Kay 0207-774-5632 Flat 425
CR56 Aline Stewart 0141-848-1825 Flat 350
CR74 Mike Ritchie 01475-392178 House 750
CR62 Mary Tregear 01224-196720 Flat 600
Private Owner
OwnerNo fName lName Address TelNo
CO46 Joe Keogh 2 Fergus Dr, Abeerdeen AB2 7SX 01224-861212
CO87 Carol Farrel 6 Achray St, Glasgow G32 9DX 0141-357-7419
CO40 Tina Murphy 63 Well St, Glasgow G42 0141-943-1728
CO93 Tony Shaw 12 Park Pl, Glasgow G4 0QR 0141-225-7025
PropertyForRent
Proper Street City PostCode Type Rooms Rent Owner Staff Branch
tyNo No No No
PA14 16 Holhead Aberdeen AB7 5SO House 6 650 CO46 SA9 B007
PL94 6 Argyll St London NW2 Flat 4 400 CO87 SL41 B005
PG4 6 Lawrence St Glasgow G11 9QX Flat 3 350 CO40 - B003
PG36 2 Manor Rd Glasgopw G32 4QX Flat 3 375 CO93 SG37 B003
PG21 18 Dale Rd Glasgow G12 House 5 600 CO87 SG37 B003
PG16 5 Novar Dr Glasgow G12 9AX Flat 4 450 CO93 SG14 B003
2014 Basis Data Pusat Bahan Ajar dan eLearning
4 Tim Dosen http://www.mercubuana.ac.id
Branch
BranchNo Street City PostCode
B005 22 Deer Rd London SW1 4EH
B007 16 Argyll St Aberdeen AB2 3SU
B003 163 Main St Glasgow G11 9QX
B004 32 Manse Rd Bristol BS99 1NZ
B002 56 Clover Dr London NW10 6EU
Staff
StaffNo fName lName Position Sex DOB Salary BranchNo
SL21 John White Manager M 1-Oct-45 30000 B005
SG37 Ann Beech Assistant F 10-Nov-60 12000 B003
SG14 David Ford Supervisor M 24-Mar-58 18000 B003
SA9 Mary Howe Assistant F 19-Feb-70 9000 B007
SG5 Susan Brand Manager F 3-Jun-40 24000 B003
SL41 Julie Lee Assistant F 13-Jun-65 9000 B005
Projection
col1, . . . , coln(R)
- Operasi pada relasi tunggal R dan menghasilkan relasi yang berisikan subset
vertical (kolom) dari R, Menampilkan isi atribut dan menghilangkan duplikasi.
Contoh :
Buatlah daftar gaji seluruh staff, yang terdiri dari staffNo, fName, lName, dan salary.
2014 Basis Data Pusat Bahan Ajar dan eLearning
5 Tim Dosen http://www.mercubuana.ac.id
staffNo, fName, lName, salary(Staff)
Union
RS
- Penggabungan (Union) dua relasi, R dan S, menghasilkan relasi yang
berisikan semua tuple dari R, dan/atau S, dan duplikasi akan
dieliminasi/dihilangkan.
- Atribut ( R ) = Atribut ( S ) .
Jika R dan S memiliki sejumlah tuple I dan J , maka hasil tupel dari union keduanya
max (I + J).
Contoh :
Tampilkan seluruh kota dimana terdapat kantor cabang dan property untuk
disewakan
city(Branch) city(PropertyForRent)
2014 Basis Data Pusat Bahan Ajar dan eLearning
6 Tim Dosen http://www.mercubuana.ac.id
Set Difference
R–S
- Menghasilkan relasi yang terdiri dari tuple pada relasi R,yang tidak ada pada
relasi S.
- Atribut ( R ) = Atribut ( S ).
Contoh :
Tampilkan seluruh kota dimana terdapat kantor cabang tetapi tidak terdapat property
untuk disewakan.
city(Branch) – city(PropertyForRent)
Intersection
RS
- Menghasilkan relasi yang terdiri dari kumpulan seluruh tuple yang ada pada
relasi R maupun S.
- Atribut ( R ) = Atribut ( S )
Dapat dihasilkan dengan menggunakan operasi dasar :
R S = R – (R – S)
Contoh :
Tampilkan seluruh kota yang mempunyai kantor cabang dan sedikitnya 1 property
untuk disewakan.
city(Branch) city(PropertyForRent)
2014 Basis Data Pusat Bahan Ajar dan eLearning
7 Tim Dosen http://www.mercubuana.ac.id
Cartesian product
RXS
- Menghasilkan relasi yang merupakan urutan (concatenation) dari setiap tuple
pada relasi R dengan setiap tuple pada relasi S.
Contoh :
Tampilkan nama dan komentar seluruh klien yang telah melihat property yang
disewakan.
(clientNo, fName, lName(Client)) X (clientNo, propertyNo, comment (Viewing))
2014 Basis Data Pusat Bahan Ajar dan eLearning
8 Tim Dosen http://www.mercubuana.ac.id
Cartesian product dan Selection dapat diganti dengan operasi tunggal, Join.
Join Operation
R FS
Mendefinisikan relasi yang terdiri dari tuple-tuple yang memenuhi syarat predikat F
dari Cartesian product relasi R dan S.
Predikat F yaitu bentuk dari R.ai S.bi dimana dapat berupa operator pembanding
(<, , >, , =, ).
Theta join dapat dituliskan dengan menggunakan operasi dasar Selection dan
operasi Cartesian product.
R FS = F(R S)
2014 Basis Data Pusat Bahan Ajar dan eLearning
9 Tim Dosen http://www.mercubuana.ac.id
Contoh - Equijoin
Tampilkan nama dan komentar semua klien yang telah melihat property untuk
disewakan.
(clientNo,fName,lName(Client)) Client.clientNo=Viewing.clientNo(clientNo,propertyNo,
comment(Viewing))
Natural join
R S
Equijoin dari dua relasi R dan S untuk seluruh atribut x. Perulangan akan dieliminasi
dari hasil akhir.
Contoh - Natural join
Tampilkan nama dan komentar seluruh klien yang telah melihat property untuk
disewakan.
2014 Basis Data Pusat Bahan Ajar dan eLearning
10 Tim Dosen http://www.mercubuana.ac.id
Outer join
Untuk menampilkan baris pada relasi yang dihasilkan, dimana baris tersebut tidak
memiliki nilai yang cocok (matching values) dengan kolom yang di-join.
R S
(Left) outer join adalah join, dimana tuple dari R yang tidak memiliki nilai yang cocok
(matching values) pada kolom dari S, yang ditampilkan dalam relasi yang dihasilkan.
Contoh - Left Outer join
Buatlah laporan status dari property viewings.
Semijoin
R FS
Mendefinisikan relasi yang berisikan tuple-tuple dari relasi R yang ada pada join R
dengan S.
Semijoin dapat dituliskan dengan menggunakan Projection dan join :
R FS = A(R F S)
Contoh - Semijoin
Tampilkan detail lengkap semua staff yang bekerja pada kantor cabang di Glasgow.
2014 Basis Data Pusat Bahan Ajar dan eLearning
11 Tim Dosen http://www.mercubuana.ac.id
Division
RS
Mendefinisikan relasi antara atribut-atribut C yang terdiri dari himpunan tuple R yang
merupakan kombinasi yang cocok/sesuai (match) dengan setiap tuple S.
Ekpresi dengan menggunakan operasi dasar :
T1 C(R)
T2 C((S X T1) – R)
T T1 – T2
Contoh - Division
Identifikasi seluruh klien yang telah melihat seluruh properti dengan 3 buah
ruang/kamar.
(clientNo, propertyNo(Viewing)) (propertyNo(rooms = 3 (PropertyForRent)))
2014 Basis Data Pusat Bahan Ajar dan eLearning
12 Tim Dosen http://www.mercubuana.ac.id
Relational Calculus
Query kalkulus relasional lebih menspesifikasikan apa yang harus
ditampilkan/diambil daripada bagaimana menampilkan/ mengambilnya. Pada kalkulus
relasional tidak ada deskripsi bagaimana meng-evaluasi suatu query.
Nama kalkulus relasional diambil dari predicate calculus. Ketika diaplikasikan untuk
database, kalkulus relasional berbentuk : tuple relational calculus dan domain relational
calculus.
Contoh : terdapat kalimat “john white is a member of staff “ dan “ john white earns
more than ann beech “, kedua kalimat tersebut adalah proposisi. Kalimat pertama
mempunyai fungsi “is a member of staff “ dengan argumen john white, begitupun kalimat
kedua.
Jika predikat berisi sebuah variable (mis, ‘x adalah jumlah staff’), maka harus ada
range untuk x. Ketika disubtitusikan beberapa nilai dari range x ini, proposisi mungkin
bernilai benar untuk suatu nilai, dan bernilai salah untuk lainnya.
Maka jika P adalah predikat, maka himpunan x untuk P dapat dituliskan sbb :
{ x | P (x) }
2014 Basis Data Pusat Bahan Ajar dan eLearning
13 Tim Dosen http://www.mercubuana.ac.id
Tuple Relational Calculus
{ t | P (t) }.
Sejumlah tuple dari seluruh tuple t dengan predicate P adalah TRUE untuk tuple t
Ditujukan untuk menampilkan tuple untuk predikat yang bernilai benar dengan
menggunakan variabel tuple (tuple variables).
Variable Tuple adalah variable yang meliputi (ranges over) relasi bernama, contoh :
variable yang hanya diperbolehkan yang merupakan tuple-tuple dari suatu relasi.
menetapkan range dari variable tuple S sebagai relasi Staff sbb :
Staff(S)
Untuk mengetahui himpunan dari semua tuple S dimana P(S) adalah benar :
{S | P(S)}
Contoh :
mencari detail dari semua staff yang berpenghasilan lebih dari £10,000 :
{S | Staff(S) S.salary > 10000}
S.salary berarti nilai dari atribut salary diberikan untuk variabel tuple S.
2014 Basis Data Pusat Bahan Ajar dan eLearning
14 Tim Dosen http://www.mercubuana.ac.id
Dapat menggunakan dua buah quantifier untuk mengetahui berapa banyak instances
yang diperoleh dari suatu predikat, yaitu:
Existential quantifier (‘there exists’), akan bernilai benar jika sedikitnya terdapat 1
buah instance yang memenuhi syarat. Contoh :
Berarti, terdapat tuple branch dengan branchNo yang sama dengan branchNo dari
tuple Staff , S, dan berlokasi di London’.
Universal quantifier (‘for all’) , akan bernilai benar jika setiap instance memenuhi
syarat. Contoh :
2014 Basis Data Pusat Bahan Ajar dan eLearning
15 Tim Dosen http://www.mercubuana.ac.id
Variabel tuple yang sesuai dengan atau disebut variable terbatas (bound ), lainnya
variable bebas(free ).
keterangan:
Si.a1 Sj.a2 ,dimana Si. dan Sj. merupakan variable tuple. a1 adalah atribut
dari relasi pada range Si., a2 adalah atribut dari relasi pada range Sj. dan
operator pembanding.
Si.a1 c dimana Si. adalah variable tuple. a1 adalah atribut dari relasi pada
range Si., c adalah konstanta dari domain atribut a1 dan operator pembanding.
jika F adalah ekspresi dengan variable bebas X, maka (X)(F) dan (X)(F) juga
merupakan ekspresi.
2014 Basis Data Pusat Bahan Ajar dan eLearning
16 Tim Dosen http://www.mercubuana.ac.id
Contoh :
1. Tampilkan nama seluruh manager yang memiliki penghasilan lebih dari £25,000.
Atau
2014 Basis Data Pusat Bahan Ajar dan eLearning
17 Tim Dosen http://www.mercubuana.ac.id
Suatu ekspresi dapat menghasilkan himpunan tak hingga, contoh
{S | ~Staff(S)}
Untuk mengatasi hal tersebut, tambahkan batasan bahwa semua nilai yang dihasilkan
harus merupakan nilai dalam domain ekspresi.
dimana F(d1, d2, . . . , dn) merupakan formula yang disusun dari atom-atom dan d1, d2, . .
. , dn merepresentasikan domain variables.
Contoh :
{fN, lN | (sN, posn, sex, DOB, sal, bN) (Staff (sN, fN, lN, posn, sex, DOB, sal, bN)
posn = ‘Manager’ sal > 25000)}
2014 Basis Data Pusat Bahan Ajar dan eLearning
18 Tim Dosen http://www.mercubuana.ac.id
{sN,fN,lN,posn,sex,DOB, sal, bN |sN1,cty)(Staff(sN,fN,lN,posn,sex,DOB,sal,bN)
PropertyForRent(pN, st, cty, pc, typ, rms, rnt, oN, sN1, bN1) (sN=sN1) cty=‘Glasgow’)}
Ketika dibatasi untuk menyimpan ekspresi, domain relational calculus ekuivalen dengan
tuple relational calculus terbatas untuk menyimpan ekspresi, dimana ekuivalen dengan
relational algebra.
Yang berarti, setiap ekspresi aljabar relasional terdapat ekuivalensinya dalam ekspresi
kalkulus relasional, dan sebaliknya.
Bahasa lainnya
2014 Basis Data Pusat Bahan Ajar dan eLearning
19 Tim Dosen http://www.mercubuana.ac.id
Latihan
Masih dari skema Hotel yang pernah kita bahas, jawablah pertanyaan berikut dengan menggunakan
bahasa prosedura Aljabar Relasional dan Kalkulus Relasional.
1. Tampilkan nama hotel yang beralamat dikota Bandung
2. Tampilkan nomor kamar yang harga sewanya diatas Rp. 350.000,‐
3. Tampilkan nama hotel yang memiliki kamar bertipe deluxe
4. Tampilkan nama hotel yang sedang dibooking oleh tamu
5. Tampilkan nama tamu yang berasal dari Jakarta
6. Tampilkan nama tamu yang menginap di kamar R002
7. Tampilkan nama tamu yang menginap di hotel Mawar
8. Tampilkan nama tamu yang menginap dari tanggal 12 Agustus 2009 sampai 15 Agustus 2009
disemua hotel
9. Tampilkan nama tamu yang menginap di kamar bertipe single
10. Tampilkan nomor kamar dan hotelnya yang sedang kosong atau sedang tidak disewa tamu
Daftar Pustaka
1. Database system: A Practical approach to design, implementation and management
2. Sistem Manajemen Basis Data
3. Oracle database 10g: SQL Fundamentals I
2014 Basis Data Pusat Bahan Ajar dan eLearning
20 Tim Dosen http://www.mercubuana.ac.id
MODUL PERKULIAHAN
Basis Data
13
Ilmu Komputer Teknik Informatika 87031 Tim Dosen
Abstract Kompetensi
Modul ini berisi materi tentang Mahasiswa mampu memahami
lingkup kemanan basis data, tipe konsep lingkup keamanan
ancaman terhadap system basis basisdata beserta ancaman yang
data dan fitur keamanan dari dapat terjadi pada system basis
DBMS yang ada data, serta mampu menjelaskan
fitur keamanan yang ada ada
DBMS (Ms. SQL Server, Oracle
dan MySQL)
Berbagai tindakan balasan untuk ancaman yang terjadi dikaitkan dengan kontrol fisik
sampai dengan prosedur administratif yang meliputi:
Authorisasi (Authorization)
View
Back-up dan Recovery
Integrity
Encryption
RAID Technology
Authorization (Otorisasi)
View
Merupakan hasil dinamis dari satu atau lebih operasi relasional yang dioperasikan
pada relasi/table dasar untuk menghasilkan relasi/table lainnya. View merupakan
relasi/table virtual yang tidak benar-benar ada dalam database, tetapi dihasilkan
berdasarkan permintaan oleh user tertentu pada saat tertentu.
Back Up
Suatu proses yang secara periodik mengambil salinan database dan log file (dapat
juga berupa program) untuk disimpan pada media penyimpanan offline.
Journaling
Suatu proses pemeliharaan dan penyimpanan log file (jurnal) dari semua
perubahan yang dilakukan terhadap database untuk kemudahan recovery bila
terjadi kerusakan (failure).
Integrity
Mencegah data dari ketidaksesuaian (invalid) dan mengakibatkan pemberian hasil
yang salah.
Encryption
Penyandian (encoding) data dengan menggunakan algoritma khusus yang
membuat data tidak dapat dibaca oleh program tanpa kunci decryption.
User and Group Accounts Dialog Box for the DreamHome Database
2014 Basis Data Pusat Bahan Ajar dan eLearning
6 Devi Fitrianah http://www.mercubuana.ac.id
2014 Basis Data Pusat Bahan Ajar dan eLearning
7 Devi Fitrianah http://www.mercubuana.ac.id
Penerima merasa yakin bahwa data tersebut berasal dari pengirim yang dimaksud
(authenticity).
2014 Basis Data Pusat Bahan Ajar dan eLearning
8 Devi Fitrianah http://www.mercubuana.ac.id
Pengirim merasa yakin bahwa penerima adalah penerima yang sebenarnya (non
fabrication).
Pengirim tidak dapat menyangkal bahwa dirinya yang mengirim data (non
repudiation)
Lock up resources, menyebabkan tidak dapat digunakan untuk user dan program
Berakibat tidak fatal tetapi memberikan hasil yang tidak diinginkan, terutama pada
output device
Latihan
Dalam kelompok diskusi, jelaskan dengan lengkap, pendekatan apa saja yang dibutuhkan
untuk mengamankan DBMS dalam sebuah aplikasi web. Jelaskan jawaban kelompok anda
dalam sebuah mini presentation.
Daftar Pustaka
1. Database system: A Practical approach to design, implementation and management
2. Sistem Manajemen Basis Data
3. Oracle database 10g: SQL Fundamentals I
2014 Basis Data Pusat Bahan Ajar dan eLearning
9 Devi Fitrianah http://www.mercubuana.ac.id
MODUL PERKULIAHAN
Basis Data
14
Ilmu Komputer Teknik Informatika 87031 Tim Dosen
Abstract Kompetensi
Modul ini berisi materi tentang Mahasiswa mampu memahami dan
konsep yang terkait dengan OODB mempresentasikan kembali semua
atau Object Oriented Data Base. komponen didalam OODB
Abstraksi, penyembunyian
informasi, identitas objek, objek
dan atribut, method dan message,
class, subclass, superclass,
inheritance, overloading,
polymorphism dan dynamic
binding.
Object Oriented Data Base
Objek database mulai populer pada pertengahan tahun 1990 an. Bermula dari Objek
Oriented Programming (OOP) yang kemudian dikembangkan menjadi Objek Oriented
Database (OOD) dan pada akhirnya menjadi Objek Oriented Analysis (OOA). Didalam
konsep objek oriented database kita dapat melakukan pemodelan data dari semua
phenomena dan dapat dinyatakan dalam bahasa umum (natural). Objek Oriented Database
pada dasarnya merupakan kosep dari pemrograman berorientasi objek secara umum
ditambah dengan database sebagai media penyimpanan datanya yang berbentuk class-
class, sehingga dalam hal ini masih berhubungan erat dengan E-R Model. Objek Oriented
Database muncul karena kekomplekan dari penyimpanan objek-objek yang akan disimpan
didalam database sehingga konsep dari Relational Database Manejemen Sistem (RDBMS)
masih tetap digunakan. Mekanisme penyimpanan objek-objek didalam Relational Database
Menejemen Sistem ini sering dikenal dengan istilah ORDBMS (Objek Relational Database
Managemen System).
Object oriented database adalah sebuah model basisdata dimana informasi disimpan
daam bentuk object. Object yang dimaksud tersebut digunakan dalam OOP (object oriented
progamming). Ketika kemampuan basisdata bergabung dengan kemampuan OOP, hasilnya
berupa object database management sistem (ODBMS). ODBMS ideal untuk pada
pemrogaman object oriented karena mereka ketika malakukan proses developer, controller
ddan model mamiliki persamaan yaitu sama – sama mengguanakn object. ODBMS
mendukung data yang compleks seperti vidio, suara, gambar, dll secara native. Berbeda
dengan Relational Databse Mangement Sistem (RDBMS) yang tidak native mendukung data
compleks karena harus membagi menjasi dua bagian yaitu : model basis data dan model
aplikasi. Bagi yang telah mengenal RDBMS, object pada ODBMS bertindak sama dengan
tabel RDBMS. ODBMS dibuat untuk menggantikan RDBMS jika bahasa pemrograman yang
digunakan adalah OOP.
Kekurangan OODB antara lain :
Database CAD menyimpan data yang berhubungan dengan rancangan mekanik dan
elektrik, sebagai contoh : gedung, pesawat, dan chips IC.
Database CAM menyimpan data yang jenisnya sama dengan sistem CAD, ditambah data
yang berhubungan dengan produksi yang mempunyai ciri-ciri tersendiri (seperti mobil pada
saat perakitan) dan produksi yang continue (seperti sintesa kimia).
Database CASE menyimpan data yang berhubungan dengan langkah-langkah dari siklus
pengembangan software yaitu : planning, requirements collection analysis, design,
implementation, test, maintenance and documentation.
Database CAP menyimpan dokumen yang kompleks. Sama seperti otomatisasi kantor,
aplikasi CAP telah diperluas untuk menangani dokumen-dokumen multimedia yang
berisikan teks, audio, gambar, video data, dan animasi.
5. Office Automation (OA)
Agar menyediakan dukungan yang lebih baik untuk area ini, dibutuhkan penanganan yang
lebih luas terhadap jenis data daripada nama, alamat, tanggal dan uang.
Sekarang ini sistem yang modern dapat menangani text yang berjenis bebas, foto, diagram,
audio dan video. Sebagai contoh: dokumen multimedia yang mengangani teks, foto,
spreadsheets dan suara.
Dalam Object Oriented baik Programming maupun database terdapat beberapa konsep
mengenai object oriented yang perlu diketahui. Berikut adalah penjelasannya.
Kenyataan dalam dunia ini direpresentasikan sebagai object
Setiap object memiliki state dan behavior
State merupakan nilai dari properties dan atribut dari object
Behavior merupakan method yang dijalankan oleh state
Object yang memiliki kesamaan state dan behavior dikelompokkan dalam satu class
yang sama
Setiap object hanya dapat diturunkan (instace) kedalam satu class saja
Class-class dikeompokkan dalam sebuah hierarki. Subclass memiliki turunan (inherits)
dari superclass-nya.
Dimungkinkan juga terjadi overriding dimana sebuah class men-substitute domain dari
propertiesnya dengan method lain dalam implementasi yang berbeda.
· Abstraksi
adalah proses identifikasi aspek-aspek yang perlu dari entitas dan mengabaikan
property yang tidak penting.
Contoh : Objek Roti, objek ini mempunyai method Pembuatan Roti. Jika kita ingin memakan
roti, tentu kita tidak perlu tahu bagaimana cara membuatnya. Dengan demikian pembuatan
Roti menjadi sesuatu yang menjadi dasar bagi konsep information hiding.
B. Objek dan Atribut
· Objek
adalah sebuah entitas yang dapat diidentifikasikan secara unik, berisikan atribut-
atribut yang menerangkan keadaan atau kondisi (state) objek dunia nyata (real world object)
dan aksi-aksi yang berhubungan dengan sebuah objek dunia nyata. Definisi objek serupa
dengan definisi entitas. Perbedaannya : objek menunjukkan keadaan (state) dan tingkah
laku (behaviour), sedangkan entitas menunjukkan models state.
· Atribut
adalah nama-nama property dari sebuah kelas yang menjelaskan batasan nilainya
dari property yang dimiliki oleh sebuah kelas tersebut. Atribut dari sebuah kelas
mempresentasikan property-property yang dimiliki oleh kelas tersebut. Atribut mempunyai
tipe yang menjelaskan tipe instanisasinya. Hanya sebuah instanisasi dari kelas (objek) yang
dapat mengubah nilai dari atributnya.
Keadaan (state) dari sebuah objek dijelaskan dengan nilai dari atribut-atribut yang
dimilikinya (selain keberadaan hubungan dengan objek lainnya). Dalam sebuah kelas atribut
hanya dinyatakan keberadaan dan batasan nilainya saja, sedangkan dalam sebuah objek
atributnya sudah dinyatakan nilai dan menjelaskan kedudukan / keadaan dari objek tersebut.
Pada saat objek dibuat, object identifier (OID) langsung ditentukan. OID tersebut unik
dan berbeda. OID membedakan objek yang satu dengan objek lainnya di dalam sistem.
Sekali objek dibuat, OID tersebut tidak dapat digunakan kembali untuk objek-objek lainnya,
walaupun objek tersebut telah dihapus.
D. Metode dan Pesan
· Metode (Methods)
· Pesan (Message)
E. CLASS
Contoh :
seluruh objek cabang dideskripsikan oleh sebuah class cabang (branch). Objek-objek pada
sebuah class disebut instance dari class. Setiap instance mempunyai nilainya sendiri untuk
setiap atribut, tetapi nama atribut dan method-nya sama seperti instance lainnya dari sebuah
class.
F. SUBCLASS, SUPERCLASS, dan INHERITANCE
Inheritance mengizinkan satu class objek didefinisikan sebagai kasus spesial (special case)
dari sebuah class pada umumnya. Special case ini dikenal dengan subclass, dan kasus
umum lainnya dikenal sebagai superclass. Proses pembentukan superclass sama seperti
generalization, sedangkan subclass seperti specialization. Konsep dari superclass,
subclass, dan inheritance sama seperti EER, kecuali dalam paradigm object-oriented,
inheritance meliputi state dan behaviour.
1. Single inheritance
Contoh : subclass Manager dan Sales_Staff merupakan turunan property dari superclass
Staff.
2. Multiple inheritance
3. Repeated inheritance
4. Selective inheritance
Object Oriented Database (OOD) merupakan salah satu jenis database dimana data
direpresentasikan dalam bentuk object. Pendekatan ini sangat dipengaruhi oleh bahasa
pemrograman object-oriented dan dapat dipahami sebagai usaha untuk menambah
fungsionalitas DBMS pada lingkup bahasa pemrograman.
Daftar Pustaka