oleh:
TOTO SUHARTO
KATA PENGANTAR
Dengan mengucap syukur alhamdulillah, karena atas ijin dan rahmat Allah S.W.T.,
penulis akhirnya dapat menyelesaikan Diktat Kuliah Pengantar Basis Data ini.
Diktat ini disusun dengan maksud agar dapat digunakan sebagai salah satu
rujukan pelengkap mahasiswa dalam mengikuti kuliah Pengantar Basis Data dan
Sistem Basis Data.
Materi pada diktat kuliah ini dibatasi hanya untuk hal-hal yang sifatnya umum
yang berhubungan dengan konsep basis data, dikarenakan keterbatasan waktu
penyampaian materi di kelas (bobot setiap kuliah masing-masing adalah 2 SKS).
Walaupun demikian, prinsip utama dari basis data tetap penulis sertakan dengan
harapan dapat dikembangkan sendiri oleh mahasiswa di luar waktu kuliah.
Pada kesempatan ini pula, penulis sampaikan ucapan terima kasih dan
penghargaan yang setinggi-tingginya kepada semua pihak yang telah membantu
penulis dalam mewujudkan tulisan ini. Semoga segala bentuk bantuan yang telah
diberikan mendapat balasan yang setimpal dari Allah S.W.T.
Penulis menyadari bahwa tulisan ini masih banyak kekurangannya dan untuk itu,
semua kritik dan saran yang sifatnya membangun dalam menyempurnakan tulisan
ini sangat penulis harapkan. Harapan penulis semoga tulisan ini dapat bermanfaat
bagi semua pihak yang memerlukannya.
Toto Suharto
DAFTAR ISI
i
5. MODEL DATA JARINGAN (NETWORK) .…….……………………………………… V-1
5.1 Pengertian Dasar …………..………………………………………………… V-1
5.2 Diagram Struktur Data ………………………..…………………………….. V-2
DAFTAR PUSTAKA
LAMPIRAN-LAMPIRAN
ii
Handout Pengantar Database Toto Suharto
1
PENDAHULUAN
TENTANG DATABASE
D alam suatu aplikasi pengolahan data yang berbasis komputer, data memegang
peranan yang cukup penting. Kecepatan waktu tanggap dari sistem salah
satunya ditentukan oleh bagaimana cara penyimpanan data dalam tempat
penyimpanan (storage). Pada saat sekarang ini, cukup banyak cara yang digunakan
untuk mengorganisasikan data dalam tempat penyimpanan tersebut, mulai dari
penggunaan sistem file konvensional sampai pendekatan database. Dari sekian
banyak cara tersebut, penyimpanan dengan pendekatan database lebih banyak
digunakan. Selain memberikan banyak keuntungan, penyimpanan dengan cara ini
sangat ditunjang oleh tersedianya beragam perangkat lunak DBMS yang mudah
didapatkan di pasaran.
Pendahuluan Halaman I-1
Handout Pengantar Database Toto Suharto
Pendahuluan Halaman I-2
Handout Pengantar Database Toto Suharto
4. Adanya ketergantungan struktur file dengan program, dan jumlah file dengan
metode akses.
Pendahuluan Halaman I-3
Handout Pengantar Database Toto Suharto
Pendahuluan Halaman I-4
Handout Pengantar Database Toto Suharto
DBMS yang digunakan dalam suatu sistem database biasanya mempunyai bagian-
bagian sebagai berikut:
• Procedural. DML ini akan meminta pemakai untuk menentukan data apa
yang dibutuhkan dan bagaimana cara untuk mendapatkannya.
• Non-procedural. DML ini akan meminta pemakai untuk menentukan data
apa yang dibutuhkan tanpa harus menentukan bagaimana cara untuk
mendapatkannya.
Jenis DML non-procedural ini mudah sekali untuk dipelajari dan digunakan
pemakai dibanding yang procedural. Tetapi karena pemakai tidak harus
menentukan bagaimana data didapat, DML ini akan membuat kode yang tidak
efisien dibandingkan dengan yang dibuat oleh DML procedural sehingga membuat
kerja sistem menjadi lama.
Pendahuluan Halaman I-5
Handout Pengantar Database Toto Suharto
Beberapa paket perangkat lunak DBMS populer yang tersedia di pasaran pada saat
ini diantaranya adalah MS-Access, Oracle, Clipper, dBase IV dan FoxPro untuk
lingkungan komputer PC. Dalam skala yang lebih besar dikenal DBMS seperti DB II,
Sybase, Informix, Ingres, Progress, dan masih banyak lagi.
1. Standarisasi
Item-item data pada database harus mempunyai definisi baku sehingga dapat
diakses oleh semua program aplikasi, maupun semua tingkat pemakai sistem
database.
3. Schema
Data yang tersimpan dalam suatu database harus dideskripsikan sedemikian
rupa sehingga struktur logikanya dapat dimengerti oleh pelbagai pemakainya.
Deskripsi logika suatu database dinyatakan dengan schema (skema). Skema
merupakan gambaran logika (logical view) atau cetak biru (blue print) dari disain
database secara keseluruhan. Suatu sistem database mempunyai beberapa
tingkatan skema, yaitu skema fisik, skema konseptual dan sub-skema.
4. Struktur data
Data pada suatu sistem database harus disusun menurut struktur yang
berkaitan secara logika dengan model skema konseptualnya. Bentuk
pengorganisasian data yang digunakan dalam sistem database misalnya adalah
sistem file konvensional seperti sequential, indexed-sequential dan random.
Disamping itu bentuk pengorganisasian data lainnya adalah simple-list, inverted-
list, struktur pohon, struktur jaringan (network), dan sebagainya.
Kita harus dapat mengatur database yang kita buat sedemikian rupa sehingga
database tersebut dapat digunakan oleh banyak user tanpa terjadi kekacauan
data. Selain itu, pengaturan kepentingan pemakai dari database tersebut,
kesulitan dalam memelihara susunan data, merupakan kendala yang mungkin
kita dapatkan. Oleh karena itu dibutuhkan perangkat lunak DBMS, karena
perangkat lunak inilah yang nantinya akan mengerjakan tugas-tugas di atas.
Abstraksi Data
Kegunaan utama dari suatu sistem database adalah memberikan user (pemakai)
pandangan abstraksi mengenai data. Itu berarti, sistem akan menyembunyikan
rincian tertentu tentang bagaimana data disimpan dan dipelihara. Bayangan tentang
data tidak lagi seperti kondisi sesungguhnya, tetapi digambarkan menyerupai kondisi
yang dihadapi pemakai sehari-hari yang dinyatakan dalam bahasa dan gambar yang
mudah dimengerti. Dengan demikian, penyajian data bisa dilakukan secara efisien
sehingga sistem menjadi bermanfaat (usable).
Sebenarnya hal-hal di atas dapat menuntun kita pada perancangan struktur data
yang kompleks untuk merepresentasikan data dalam database. Akan tetapi karena
tidak semua pemakai sistem database berlatar belakang komputer, komplektivitas
tersebut disembunyikan menjadi tiga level abstraksi sehingga memudahkan interaksi
pemakai dengan sistem. Tiga level (tingkatan) abstraksi data tersebut adalah:
Pendahuluan Halaman I-7
Handout Pengantar Database Toto Suharto
Hubungan antara ketiga tingkatan dari abstraksi data ini bisa dinyatakan oleh
Gambar 1-3 berikut ini.
1. Organisasi File
Organisasi file, disebut juga sebagai sub-skema atau LVIEW, yaitu suatu
gambaran data yang ditujukan untuk satu atau lebih program aplikasi.
Organisasi ini merupakan gambaran yang terbayangkan oleh programmer aplikasi
atau pemakai yang berinteraksi dengan sistem database untuk keperluan segi
aplikasi.
Pendahuluan Halaman I-8
Handout Pengantar Database Toto Suharto
2. Organisasi Logika
Organisasi database secara logika, disebut juga sebagai skema, merupakan
pengorganisasian yang menggambarkan keseluruhan isi database secara logika.
Organisasi ini merupakan tinjauan menyeluruh tentang data yang dilihat oleh
DBA atau system analyst.
3. Organisasi Fisik
Organisasi database secara fisik adalah suatu gambaran tata letak fisik data pada
perangkat penyimpanan. Organisasi ini merupakan lingkup tugas system
programmer dan system designer, yaitu orang yang berhubungan dengan
performansi bagaimanakah posisi data pada perangkat keras, bagaimana cara
indexing maupun teknik pemampatan datanya.
Pendahuluan Halaman I-9
Handout Pengantar Database Toto Suharto
Pendahuluan Halaman I-10
Handout Pengantar Database Toto Suharto
Pada gambar tersebut kita bisa melihat bahwa pemakai, baik sebagai programmer
aplikasi maupun online terminal user, berkomunikasi dengan sistem database melalui
bahasa pemrograman yang dikenal oleh sistem database. Bahasa yang digunakan
dapat berupa bahasa konvensional (host language), misalnya COBOL, PL/I dan
lainnya, atau bahasa query (bahasa tanya jawab) secara interaktif. Untuk menunjang
pengaksesan data, bahasa-bahasa tersebut biasanya dilengkapi dengan fasilitas DSL
(Data Sub Language) yang merupakan kombinasi dari DDL dan DML yang disediakan
oleh DBMS.
External view terdiri atas beberapa kejadian dari pelbagai jenis record eksternal.
Pemakai berkomunikasi dengan record eksternal melalui DSL. Tiap external view
didefinisikan oleh suatu skema eksternal, yaitu skema yang mendeskripsikan tiap
jenis record eksternal didalam view tersebut. Skema eksternal ditulis dengan
menggunakan DDL.
Internal view merupakan penyajian data dalam bentuk fisik yang mendekripsikan
bagaimana record tersimpan.
• File manager, yang mengelola alokasi ruangan pada tempat penyimpanan dan
struktur data yang digunakan untuk merepresentasikan informasi yang disimpan
dalam disk.
• Database manager, yang menyediakan interface antara data tingkat terrendah
yang tersimpan pada database dengan program aplikasi dan bahasa queries yang
diberikan kepada sistem.
• Query processor, yang berfungsi menerjemahkan pernyataan pada bahasa query
menjadi instruksi tingkat rendah yang dimengerti database manager.
• DML precompiler, yang menerjemahkan pernyataan DML yang ditulis pada
program aplikasi menjadi prosedur yang dapat dipanggil oleh host language.
• DDL precompiler, yang berfungsi menerjemahkan pernyataan DDL menjadi
kumpulan tabel.
Pendahuluan Halaman I-11
Handout Pengantar Database Toto Suharto
users
application
database database
programs
manager management
object code
system
file
manager
data files
Pendahuluan Halaman I-12
Handout Pengantar Database Toto Suharto
2
Terminologi dan
Model-model Data
D alam suatu sistem database, data merupakan salah satu objek utamanya.
Untuk itu, perlu kiranya untuk mempelajari konsep tentang data ini terutama
yang berhubungan dengan desain dan pembuatan database. Pada bagian ini akan
dibahas beberapa hal yang berhubungan dengan konsep data tersebut. Pertama,
terminologi tentang data dalam konteks sistem database, dan kedua tinjauan
tentang beberapa alat abstrak yang bisa digunakan untuk modelisasi data.
• Bit. Adalah suatu sistem angka biner yang hanya mempunyai dua
kemungkinan nilai, yaitu 0 dan 1. Sistem angka biner ini merupakan dasar
komunikasi antara manusia dan mesin (komputer).
• Byte. Adalah kumpulan 8 bit data yang kombinasi nilainya digunakan untuk
menyatakan satu buah karakter.
• Item Data. Adalah satuan terkecil dari data yang mempunyai arti. Item data
sering disebut juga dengan field data atau elemen data, yang dapat diberi nama
sebagai identitasnya.
• Agregat Data. Kumpulan item data dalam suatu record yang diberi nama
tertentu dan dianggap sebagi satu kesatuan yang utuh. Sebagai contoh, agregat
data dengan nama tanggal tersusun dari item data hari, bulan dan tahun.
Model-model Data Halaman II-1
Handout Pengantar Database Toto Suharto
• Model entity-relationship
• Model berorientasi objek (object-oriented model)
• Model biner
• Model data semantik
• Model infological
• Model data fungsional
Model-model Data Halaman II-2
Handout Pengantar Database Toto Suharto
Pada model E-R ini struktur logika database secara keseluruhan digambarkan
dengan menggunakan diagram E-R yang mempunyai simbol-simbol tertentu.
Simbol-simbol tersebut adalah:
Contoh dari model E-R ini bisa dilihat pada Gambar 2.1. sedangkan pembahasan
rincinya akan diberikan pada Bab 3.
street
sosial- account-
customer-city
security number
customer- balance
date
name
Model-model Data Halaman II-3
Handout Pengantar Database Toto Suharto
Bank X
melayani adalah nasabah
punya adalah
Account Customer Henry
Gambar 2.2. di atas menunjukkan contoh model data semantik. Dari gambar
tersebut bisa kita lihat bahwa simbol yang digunakan dalam model data semantik
ini adalah:
Struktur database pada model logika berbasis record ini dinyatakan dengan type
record yang mempunyai format tetap. Artinya setiap type record mempunyai
beberapa field atau atribut dengan jumlah tetap, dan setiap field mempunyai
panjang yang tetap.
Tiga model data pada kelompok ini yang telah diterima secara meluas adalah model
data relasi, jaringan (network) dan hirarki. Berikut adalah penjelasan singkat ketiga
model data ini. Adapun penjelasan secara rincinya akan diberikan di Bab 4-6.
Model-model Data Halaman II-4
Handout Pengantar Database Toto Suharto
Gambar 2.3. adalah sebuah contoh database model relasi yang menunjukkan
customer dengan account yang dipunyainya.
Pada contoh di atas, customer dengan Hodges yang tinggal di jalan Sidehill di kota
Brooklyn, mempunyai dua account, yaitu account dengan nomor 801 dengan nilai
10533 dan nomor 647 dengan nilai 105366.
Model data relasi dapat dimengerti, diingat dan divisualkan secara lebih mudah
dibandingkan dengan model data yang lainnya.
556 100000
Shiver North Bronx
647 105366
Model-model Data Halaman II-5
Handout Pengantar Database Toto Suharto
• unifying model
• memory frame
Karena cakupan dari model data fisik berhubungan dengan aspek mesin
(komputer), maka model data tersebut tidak akan dibahas pada tulisan ini.
Model-model Data Halaman II-6
Handout Pengantar Database Toto Suharto
3
Model Entity
Relationship (E-R)
M odel Entity-Relationship (model E-R) merupakan suatu model data yang menyatukan
beberapa informasi semantik yang penting mengenai dunia nyata. Pembuatan model
data E-R didasarkan pada anggapan bahwa dunia nyata terdiri dari kumpulan objek-objek
dasar yang disebut entity, dan hubungan yang terjadi diantaranya yang disebut relasi
(relationship). Model data E-R digunakan untuk menyederhanakan permasalahan pembuatan
basis data secara top down.
Entity-entity sejenis akan membentuk kelompok entity atau entity sets. Kumpulan beberapa
orang yang mempunyai NPM tertentu di sebuah perguruan tinggi, sebagai contoh, bisa
didefinisikan sebagai kelompok entity mahasiswa. Demikian juga, kelompok entity kuliah
mungkin mendefinisikan kumpulan semua entity kuliah.
Setiap entity dalam kelompok entity mempunyai atribut, yaitu deskripsi data yang
mengidentifikasikan entity tersebut. Sebagai contoh, atribut yang mungkin dipunyai kelompok
entity mahasiswa adalah NPM, nama, dan alamat. Sedangkan atribut yang mungkin untuk
kelompok entity kuliah adalah kode kuliah, nama kuliah dan SKS. Setiap atribut mempunyai
nilai data. Nilai-nilai data dari atribut yang mempunyai karakteristik sintaks dan semantik
yang sama membentuk domain, misalnya domain untuk nama mahasiswa adalah kumpulan
string teks dan domain untuk SKS adalah kumpulan data integer positif.
Model Entity-Relationship Halaman III-1
Handout Pengantar Database Toto Suharto
Dari gambar di atas kita bisa melihat relasi antara kelompok entity Persons dengan Vehicles
yang dinyatakan dalam kelompok relasi Drive. ‘Joe driving the Ford’ adalah satu relasi. ‘Jill
driving the Toyota’ adalah relasi yang lain. Kumpulan dari relasi ini disebut kelompok relasi
(relationship sets).
Relasi Drive adalah sebuah contoh dari relasi biner atau binary relationship, yaitu relasi yang
terbentuk dari dua kelompok entity. Kelompok relasi inilah yang paling banyak ditemukan
dalam sistem database. Akan tetapi tidak tertutup kemungkinan adanya relasi yang terbentuk
dari lebih dua entity yang disebut relasi ternary atau n-ary. Sebagai contoh misalnya relasi
antara entity Sopir, Paket dan Kendaraan pada saat pengiriman paket.
Selain relasi biner dan n-ary di atas, kita mungkin menemukan relasi yang terbentuk oleh dua
entity dari satu kelompok yang sama. Relasi seperti ini disebut relasi unary atau relasi
rekursif. Relasi pada saat merakit suatu barang (parts), misalnya mainboard dirakit dari board,
processor dan memory, bisa kita jadikan sebagai contoh dari relasi ini. Mainboard, board,
processor dan memory dianggap sebagai entity-entity dari satu kelompok yang sama, yaitu
kelompok entity Parts.
Seperti halnya entity, relasi pun mempunyai atribut-atribut. Secara umum, atribut yang
dipunyai relasi terdiri dari atribut kunci yang diturunkan dari entity yang membentuknya
ditambah dengan atribut yang muncul pada saat relasi terjadi.
Model Entity-Relationship Halaman III-2
Handout Pengantar Database Toto Suharto
3.3 Atribut
Atribut adalah deskripsi data untuk mengenali suatu entity. Oleh karena itu seluruh atribut dari
entity harus cukup untuk menyatakan identitas dari objek atau entity tersebut. Sebagai contoh,
atribut nama dan alamat belumlah cukup untuk mengenali entity mahasiswa, karena atribut-
atribut tersebut mungkin juga dipunyai oleh entity dosen atau karyawan. Akan tetapi jika
ditambah dengan atribut NPM, fakultas dan jurusan, maka atribut-atribut tersebut sekarang
sudah cukup untuk bisa mengenali suatu entity, dalam hal ini entity mahasiswa.
Satu atau beberapa atribut yang dipunyai entity bisa kita gunakan untuk membedakan masing-
masing entity secara unik. Atribut yang bisa digunakan untuk membedakan sebuah entity
secara unik tersebut dinamakan atribut kunci atau key attribute.
Superkey didefinisikan sebagai satu set dari satu atau lebih atribut yang memungkinkan kita
untuk mengenali sebuah entity secara unik. Sebagai contoh misalnya atribut NPM dalam
entity mahasiswa. Karena atribut NPM dapat membedakan antara mahasiswa yang satu
dengan yang lainnya, maka atribut NPM disebut superkey. Superkey dapat terdiri dari
beberapa atribut, sehingga kurang dapat digunakan untuk semua keperluan. Untuk itu perlu
dicari superkey dengan jumlah atribut sesedikit mungkin yang dikenal sebagai candidate keys.
Untuk selanjutnya istilah candidate key ini kita ganti dengan istilah primary key atau atribut
kunci.
Suatu kelompok entity mungkin tidak mempunyai cukup atribut untuk membentuk atribut
kunci. Kelompok entity semacam ini disebut weak entity (entity lemah). Kebalikan dari entity
lemah adalah strong entity (entity kuat), yaitu kelompok entity yang mempunyai atribut kunci.
Sebagai gambaran, tinjau kelompok entity transaksi dengan atribut nomor-transaksi, tanggal
dan jumlah. Walaupun setiap entity transaksi dapat dibedakan, namun transaksi pada account
yang berbeda dapat menggunakan nomor transaksi yang sama. Jadi kelompok entity ini tidak
mempunyai atribut kunci, oleh karenanya disebut entity lemah. Untuk membedakan entity dari
kelompok entity lemah digunakan atribut yang dinamakan diskriminator. Contoh dari
diskriminator ini misalnya adalah atribut nomor-transaksi untuk kelompok entity transaksi di
atas.
Model Entity-Relationship Halaman III-3
Handout Pengantar Database Toto Suharto
Sejauh ini, pembahasan atribut kunci di atas ditujukan hanya untuk membedakan kelompok
entity. Sekarang bagaimana menentukan atribut kunci kelompok relasi? Atribut kunci
kelompok relasi bisa kita turunkan dari atribut kunci kelompok entity yang membentuknya.
Untuk kasus tertentu, kadang-kadang kita masih memerlukan atribut-atribut lain sebagai
pelengkapnya. Atribut tersebut diambil dari satu atau beberapa atribut yang muncul pada saat
relasi terjadi yang penentuannya tergantung kepada jenis pemetaan dari record-recordnya.
Sebagai contoh, kelompok relasi Jual yang dibentuk oleh kelompok entity Barang dan
Customer mempunyai atribut kunci kode-barang dan kode-customer yang diambil dari atribut
kunci kelompok entity ditambah dengan atribut nomor-faktur yang didapat saat relasi terjadi.
Abdul T-01
Markum T-02
Kumkum T-03
PASIEN TMP_TIDUR
Abdul
R-01
Markum
R-02
Kumkum
PASIEN RUANGAN
Model Entity-Relationship Halaman III-4
Handout Pengantar Database Toto Suharto
• Banyak-ke-banyak (many-to-many)
Setiap elemen dari entity pertama dipasangkan dengan beberapa elemen dari entity kedua
dan setiap elemen dari entity kedua juga dipasangkan dengan beberapa elemen dari entity
pertama. Contoh: relasi antara PASIEN dan DOKTER.
Abdul
Basuki
Markum
Paijo
Kumkum
PASIEN DOKTER
Penentuan jenis pemetaan untuk kelompok relasi ini tergantung kepada dunia nyata yang
dimodelkan oleh kelompok relasi tersebut. Jadi untuk kelompok relasi yang satu mungkin kita
dapatkan pemetaan yang berbeda dengan kelompok relasi lainnya
Gambar 3.5. memperlihatkan contoh diagram E-R untuk menggambarkan hubungan antara
Persons dan Vehicles seperti ditunjukkan pada Gambar 3.1.
Model Entity-Relationship Halaman III-5
Handout Pengantar Database Toto Suharto
Berikut diberikan beberapa hal yang bisa digunakan sebagai petunjuk untuk menggambar
diagram E-R:
2. Penamaan
Gunakan kata benda untuk menamai kelompok entity karena sifanya yang pasif, dan
gunakan kata kerja atau kata sambung (preposisi) untuk menamai kelompok relasi karena
kelompok relasi menyatakan suatu kegiatan. Gambar 3.6. memperlihatkan contoh
bagaimana penamaan untuk kelompok entity dan relasi.
USE
PARTS
(a) Projects
PRICE
FROM SUPPLIERS
CHANGES
TO
PARTS
(b) Price changes
Model Entity-Relationship Halaman III-6
Handout Pengantar Database Toto Suharto
3. Ada kemungkinan terjadi lebih dari satu relasi diantara dua kelompok entity yang sama,
misalnya seperti contoh yang ditunjukkan oleh Gambar 3.7.
Sample OWNS
interactions
COMPANY
Sample
companies v1
c1 v2 Sample
vehicles
OWNS LEASES c2 v3
c3 v4
v5
Gambar 3.7. Relasi Lebih dari Satu Diantara Dua Kelompok Entity
4. Total sistem tidak diperbolehkan untuk disertakan dalam diagram E-R, dalam arti sistem
yang sedang dibuat model E-Rnya tidak diperkenankan untuk dimunculkan. Gambar 3.8.
memperlihatkan contoh diagram E-R yang salah yang menyertakan total sistem.
SELLS-TO
CUSTOMERS
(a) Incorrect model
Model Entity-Relationship Halaman III-7
Handout Pengantar Database Toto Suharto
p1
v1
p2
p3 v2
p4 v3
Dari gambar di atas terlihat bagaimana interaksi yang terjadi antara seseorang p1, p2, p3 dan
p4 pada kelompok entity Persons dengan sebuah kendaraan v1, v2 dan v3 pada kelompok
entity Vehicles. Garis yang menghubungkan pasangan entity diantara kedua kelompok entity
tersebut melalui sebuah relasi memperlihatkan orang yang mana yang mengemudi kendaraan
apa, seperti p1 mengemudi v1, p2 juga mengemudi v1, p2 mengemudi v2, dan seterusnya.
Setiap garis yang memperlihatkan interaksi antara sepasang entity adalah sebuah relasi, dalam
hal ini relasi pada kelompok relasi Drive.
Occurrence diagram pada Gambar 3.10 (b) memperlihatkan bahwa Jill dan Richard keduanya
menggunakan Ferrari. Diagram ini pun memperlihatkan bahwa kendaraan Ferrari digunakan
untuk mengirimkan kiriman D2 dan D3. Jika ditanyakan siapa yang mengirim kiriman D2 atau
Model Entity-Relationship Halaman III-8
Handout Pengantar Database Toto Suharto
D3, maka jawaban yang didapat berdasarkan occurrence diagram tersebut tidak bisa kita
berikan, karena bisa Jill bisa juga Richard (informasi jadi bias).
N M 1 N
DRIVER USE TRUCKS FOR DELIVERIES
Jill Ford • D1
• •
Richard Ferrari • D2
• •
• D3
Diagram E-R yang benar dengan informasi yang sama untuk masalah di atas ditunjukkan oleh
Gambar 3.11 (a). Pada diagram yang baru ini ada sebuah relasi Make antara Drivers dan
Deliveries, dan sebuah relasi Using antara Trucks dan Deliveries. Relasi Using sama artinya
dengan relasi For pada diagram dalam Gambar 3.10 (a), sedangkan relasi Make menyatakan
Deliveries yang dikerjakan oleh Drivers. Dari occurrence diagram pada Gambar 3.11 (b), kita
bisa mengetahui bahwa jika Richard mengirimkan kiriman D2 dan D3 dengan Ferrari, maka
kita mengetahui bahwa Richard menggunakan Ferrari.
N M 1 N
DRIVER MAKE DELIVERIES USING TRUCKS
Jill
• D1 • Ford
Richard •
D2
• • • Ferrari
D3
•
Model Entity-Relationship Halaman III-9
Handout Pengantar Database Toto Suharto
Bagaimana bentuk diagram E-R yang harus dibuat untuk memodelkan data yang terlibat pada
masalah jasa layanan kendaraan bermotor tersebut, sehingga pemilik bengkel bisa
mendapatkan informasi tentang:
• jumlah kas yang diterima setiap hari dari jasa layanan dan penjualan suku cadang.
• pemakaian suku cadang.
• jumlah upah mingguan yang harus dibayarkan kepada setiap montir.
Model Entity-Relationship Halaman III-10
Handout Pengantar Database Toto Suharto
Secara fisik, tata letak dokumen bukti pembayaran ditunjukkan oleh gambar berikut ini:
No.Bukti : Montir:
Tanggal :
Kendaraan:
--------------------------------------------------------------
No. Jenis Service/Spare Part Banyak Harga Jumlah
==============================================================
--------------------------------------------------------------
Total Rp.
--------------------------------------------------------------
2. Identifikasi Keluaran
Informasi yang menjadi keluaran adalah laporan yang diminta pemilik bengkel, yaitu:
• Laporan penerimaan kas:
– dari jasa layanan
– dari penjualan suku cadang
– dari keduanya
• Laporan pemakaian suku cadang
• Daftar upah mingguan untuk pembayaran montir
3. Identifikasi Entitas
Berdasarkan analisis (pengamatan) terhadap dokumen yang menjadi sumber data
masukan, entitas yang terlibat dapat diidentifikasi sebagai berikut:
• KENDARAAN
Mewakili objek kendaraan yang mendapatkan layanan.
• MONTIR
Mewakili objek orang yang mengerjakan layanan.
• LAYANAN atau SERVICE
Mewakili proses pengerjaan layanan.
• JENIS LAYANAN
Mewakili objek jenis-jenis layanan yang dapat diberikan.
• SUKU CADANG
Mewakili objek suku cadang yang dijual.
Model Entity-Relationship Halaman III-11
Handout Pengantar Database Toto Suharto
Berdasarkan hasil identifikasi entitas dan hubungan antar entitas, maka diagram E-R untuk
masalah jasa layanan kendaraan bermotor adalah:
m n
MONTIR KEAHLIAN
Tanggal
NoBukti Jumlah
m Kode
1 n m n JENIS
KENDARAAN LOG SERVICE UNTUK Nama
LAYANAN
Biaya
NoPol Pemilik m
n
PartNo
SUKU
Descr.
CADANG
Price
Dari diagram E-R tersebut, informasi yang diinginkan dapat diperoleh dengan cara sebagai
berikut:
• Laporan penerimaan kas
Informasi diperoleh dari entitas SERVICE.
• Laporan penerimaan kas dari jasa layanan
Informasi diperoleh dari hubungan antar entitas UNTUK, entitas SERVICE dan JENIS
LAYANAN.
• Laporan penerimaan kas dari penjualan suku cadang
Informasi diperoleh dari hubungan antar entitas BUTUH, entitas SERVICE dan SUKU
CADANG.
• Laporan pemakaian suku cadang
Informasi diperoleh dari hubungan antar entitas BUTUH, dan entitas SUKU CADANG.
• Daftar upah mingguan untuk pembayaran montir
Informasi diperoleh dari hubungan antar entitas LOG, UNTUK, KEAHLIAN, dan entitas
MONTIR dan JENIS LAYANAN.
Model Entity-Relationship Halaman III-12
Handout Pengantar Database Toto Suharto
4
Model
Data Relasi
M odel data relasi adalah suatu model logika database yang menggambarkan entity
dan relasi dalam bentuk tabel-tabel yang disebut relasi. Kelompok entity
digambarkan dengan suatu relasi yang kolom-kolomnya menunjukkan identifikasi
dari entity tersebut. Demikian juga untuk relasi, kolom-kolomnya menunjukkan
identifikasi dari entity-entity yang berhubungan, dan informasi tentang hubungan
tersebut. Sebagai contoh, tinjau masalah akademik. Entity yang terlibat didalamnya
misalnya adalah DOSEN, MAHASISWA dan KULIAH. Relasi yang terjadi antar entity
tersebut misalnya MENGAJAR untuk entity DOSEN-KULIAH dan MENGAMBIL untuk
entity MAHASISWA-KULIAH. Gambarannya:
Model Data Relasi Halaman IV-1
Handout Pengantar Database Toto Suharto
Skema Database
Skema database pada model data relasi adalah kumpulan dari skema relasi yang
mendeskripsikan database model relasi.
Contoh: MHS( NRP, Nama, Alamat, ... )
DOSEN( NIP, Nm_Dsn, Alm_Dsn, ... )
KULIAH( Kode, Nm_Klh, SKS, ... ) skema database
D-K( NIP, Kode, Hari, Jam, ... )
M-K( NRP, Kode, Nilai, ... )
m n
MAHASISWA AMBIL KULIAH
Jika atribut dari MAHASISWA adalah NRP, nama mahasiswa, jenis kelamin, dan
alamat, sedangkan atribut KULIAH adalah kode kuliah, nama kuliah dan SKS,
maka skema relasinya adalah:
Model Data Relasi Halaman IV-2
Handout Pengantar Database Toto Suharto
Operasi Dasar
1. Union (∪)
Operasi union dari relasi R1 dan R2 ditulis R1 ∪ R2 adalah kumpulan semua
tuple-tuple (baris) yang dimiliki oleh R1 dan atau R2. Operasi union hanya dapat
dilakukan terhadap relasi-relasi yang mempunyai ariti (baris) yang sama.
Colors−Fash ion
color colorcode
White 93474
Blue 93476
Model Data Relasi Halaman IV-3
Handout Pengantar Database Toto Suharto
3. Seleksi (σ)
Operasi seleksi terhadap relasi R1 dengan kondisi k ditulis σk(R1) adalah
kumpulan tuple dalam R1 yang memenuhi kondisi k. Kondisi k adalah formula
yang terdiri dari:
• Operan-operan yang merupakan konstanta atau nomor urut atribut atau pun
nama atribut dari relasi yang bersangkutan.
• Operator-operator pembanding seperti <, =, >, ≤, ≠, ≥
• Operator-operator logika seperti ∧ (dan), ∨ (atau), ¬ (tidak)
A B C
a b c
d a f
e b d
4. Projeksi (Π)
Operasi projeksi terhadap relasi R1ditulis Πa1,a2,...(R1) adalah kumpulan semua
tuple R dengan arity a1, a2, ...
R = ΠA,C(R1)
A C
a c
d f
e d
5. Cartesian Product ( X )
Jika arity R1 adalah k1 dan R2 adalah k2, maka operasi cartesian product dari R1
dan R2 ditulis R1 X R2 adalah kumpulan semua tuple-tuple dengan arity (k1+k2).
Contoh: R1 R2
A B C D E F
a b c b g a
d a f d a f
c b d
Model Data Relasi Halaman IV-4
Handout Pengantar Database Toto Suharto
R = R1 X R2
A B C D E F
a b c b g a
a b c d a f
d a f b g a
d a f d a f
c b d b g a
c b d d a f
Operasi Suplemen
Operasi suplemen pada dasarnya merupakan operasi yang dapat diturunkan dari
beberapa operasi dasar, yaitu:
1. Irisan (∩)
Operasi irisan dari relasi R1 dan R2 ditulis R1 ∩ R2 adalah kumpulan semua
tuple-tuple yang merupakan anggota R1 dan R2.
Colors∩Fash ion
color colorcode
White 93474
2. Join (│X│)
Jika R1 dan R2 suatu relasi dengan n1 adalah arity R1 dan n2 adalah arity R2,
operasi join untuk R1 dan R2 dengan atribut yang dibandingkan a1 dan a2 ditulis
R1 │X│ R2, adalah kumpulan tuple t dengan arity sama dengan m = (n1 + n2 ) - 1,
dimana m merupakan arity dari t dan θ adalah operator pembanding.
Contoh: R1 R2
A B C X Y Z
a1 b1 c1 a2 n1 n2
a1 b2 c2 a1 b1 b3
a2 b2 c3
R = R1 │X│ R2
A=X
A B C Y Z
a1 b1 c1 b1 b3
a1 b2 c2 b1 b3
a2 b2 c3 n1 n2
Model Data Relasi Halaman IV-5
Handout Pengantar Database Toto Suharto
3. Natural Join
Analog dengan penulisan join, tapi tanpa penulisan kondisi, yaitu R1 │X│ R2.
Model Data Relasi Halaman IV-6
Handout Pengantar Database Toto Suharto
5
Model Data
Jaringan (Network)
B erbeda dengan model data relasi yang merepresentasikan data dan relasi antar
datanya dalam bentuk kumpulan tabel, data pada model data jaringan
(network) direpresentasikan dalam bentuk kumpulan record sedangkan relasi antar
datanya direpresentasikan dalam bentuk links atau pointer. Model data jaringan
didasarkan pada konsep directed graph, dimana node pada graph dianalogikan
sebagai kumpulan record sedangkan arc dianalogikan sebagai link.
D1 Abdul K1 Algoritma
K2 Struktur Data
D2 Markum
K3 Database
D3 Kumkum K4 Matematika
Model Data Jaringan Halaman V-1
Handout Pengantar Database Toto Suharto
Dari Gambar 5.1. tersebut kita bisa melihat dua kumpulan record, yaitu Dosen dan
Kuliah. Kumpulan record Dosen tersusun dari field Kd_Dsn dan Nm_Dsn,
sedangkan Kuliah tersusun dari field Kd_Klh dan Nm_Klh. Record pertama dari
kumpulan record Dosen dihubungkan oleh link dengan record pertama dari
kumpulan record Kuliah untuk menyatakan dosen siapa mengajar kuliah apa.
Demikian juga untuk record kedua dengan record kedua dan ketiga, serta record
keempat dengan record ketiga dari kumpulan record Kuliah ke kumpulan record
Dosen.
Kumpulan record pada model data jaringan biasanya disebut record type sedangkan
link yang menghubungkannya disebut set type. Record type bisa dianggap sebagai
entity pada model data E-R, sedangkan set type bisa dianggap sebagai relasi antar
entitynya. Untuk setiap record type yang pendefinisiannya relatif terhadap set type,
dikenal istilah owner (pemilik) dan member (anggota). Owner adalah record type
dominan sedangkan member adalah record type sub-ordinat. Untuk contoh
database pada Gambar 5.1. di atas, record type owner adalah dosen sedangkan
record type member adalah kuliah.
Asosiasi yang diperkenankan antara record type owner dengan record type member
adalah asosiasi satu-ke-satu (1-1) dan satu-ke-banyak (1-n atau n-1). Artinya,
untuk satu record pada record type owner, terdapat satu atau beberapa record pada
record type member. Dengan perkataan lain, untuk satu kejadian (occurrence) dari
record type owner ada satu atau beberapa kejadian pada record type member.
Asosiasi banyak-ke-banyak (m-n) harus ditransformasikan menjadi (1-n) (n-1)
untuk menghindari record dengan panjang berubah-ubah (variabel-length record)
pada saat implementasinya.
Model data jaringan populer pada sekitar tahun 1960-an sampai 1970-an. Paket
DBMS yang digunakan pada saat itu diantaranya adalah:
Penjelasan berikut dari model data jaringan ini akan disampaikan dengan merujuk
pada paket DBMS Codasyl buatan DBTG.
Model Data Jaringan Halaman V-2
Handout Pengantar Database Toto Suharto
• Kotak, yaitu simbol untuk menggambarkan record type atau entity. Record
type yang digambarkan dengan simbol ini bisa dikomposisikan menjadi 0, 1
atau lebih atribut-atribut recordnya.
• Anak panah, yaitu simbol untuk menggambarkan link antara dua atau lebih
record type dan digunakan untuk menyajikan suatu set type.
Cara untuk memahami pembuatan diagram struktur data ini adalah dengan
melihat bagaimana suatu diagram E-R diubah menjadi diagram struktur data yang
sesuai. Sebagai contoh, perhatikan diagram E-R pada Gambar 5.2. berikut ini yang
merepresentasikan hubungan antara dua kelompok entity, yaitu Dosen dan Kuliah
melalui satu relasi Mengajar. Relasi Mengajar adalah relasi biner satu-ke-banyak
dengan atribut-atribut KdDsn dan KdKlh yang diturunkan dari atribut kunci kedua
kelompok entity.
Diagram E-R tersebut menunjukkan bahwa seorang dosen bisa mengajar beberapa
mata kuliah dan satu mata kuliah diajar oleh satu orang dosen. Penggambaran
diagram struktur data yang sesuai dengan diagram E-R. Sebagai contoh, misalkan
dosen Abdul mengajar kuliah Algoritma, Markum mengajar kuliah Struktur Data
dan Database, sedangkan Kumkum mengajar kuliah Matematika
ST set type
Pendefinisian suatu objek dari record type dideskripsikan dalam record. Misalkan
kita punya suatu jaringan sebagai berikut:
RT4
Model Data Jaringan Halaman V-3
Handout Pengantar Database Toto Suharto
RT : RT1
{ atribut}
ST : ST1
owner : RT1
member : RT4
dan seterusnya.
Dalam model jaringan di atas, untuk menyatakan hubungan antara record yang
diwakili oleh list rt21 dengan record yang diwakili oleh list rt24 tidak dilakukan
dengan membuat pointer yang menunjuk pada rt42 dari rt21. Jika dilakukan
dengan cara tersebut, maka akan menyebabkan terjadinya jumlah pointer yang
variabel sehingga akan mengakibatkan panjang record yang variabel pula.
Model Data Jaringan Halaman V-4
Handout Pengantar Database Toto Suharto
• b1
a1 •
• b2
a2 •
• b3
a3 •
• b4
c1
• b1
c2
a1 •
c3 • b2
a2 • c4
• b3
a3 • c5
c6 • b4
RTA RTB
VRTC
Fungsi virtual record type dalam model jaringan adalah untuk menghindari adanya
duplikasi record.
a1 a2 a3
b1 b2 b3 b4 b1 b4
Model Data Jaringan Halaman V-5
Handout Pengantar Database Toto Suharto
A RTA
m 1
ST1
n
R1 VRTC
n
n ST2
1
B RTB
1 RTA
1
R2 ST1
1, n
1, n RTB
B
Contoh:
Hubungan antara aircraft dengan pilot
Aircraft Aircraft
m 1
ST1
n
R1 VRTC
n
n ST2
1
Pilot Pilot
Model Data Jaringan Halaman V-6
Handout Pengantar Database Toto Suharto
• p1 (a1, p1)
a1 • (a1, p2)
• p2 (a1, p3)
a2 •
(a2, p2)
• p3 (a2, p3)
a3 •
(a3, p1)
Aircraft Pilot
a1 a2 a3 RTa/c
C1 C2 C3 C4 C5 C6 VRTR1
p1 p2 p3 RTpilot
1. Insert
Mencakup dua macam insert, yaitu:
a. Insert asosiasi (tanpa penambahan record)
b. Insert record
2. delete
Pada operasi ini yang dihapus adalah asosiasinya.
Database model jaringan (dan model hirarki) merupakan suatu basis data yang
prosedural, dalam arti untuk mendapatkan apa yang diinginkan terlebih dahulu
pemakai harus mendeskrispsikan bagaimana cara mendapatkannya (konsep
navigasi). Berbeda dengan basis data yang non-prosedural, misal model relasi, apa
yang diinginkan pemakai, bagaimana cara mendapatkannya, tidak perlu
dinyatakan.
Model Data Jaringan Halaman V-7
Handout Pengantar Database Toto Suharto
Model Data Jaringan Halaman V-8
Handout Pengantar Database Toto Suharto
6
Model Data
Hirarki
6.1. Pengertian Dasar
Model data hirarki adalah suatu model data yang tersusun dari record-record yang
diorganisasikan sebagai kumpulan pohon. Seperti pada model data jaringan, pada
model data ini data direpresentasikan sebagai kumpulan record sedangkan
hubungan antar datanya direpresentasikan oleh suatu links. Sebagai contoh, lihat
masalah akademik untuk hubungan antara data DOSEN dan KULIAH.
root
D1 D2 D3
K1 K2 K3 K4 K5
Skema (diagram struktur) untuk contoh model data hirarki di atas adalah:
Jika dosen D2 dan D3 adalah pembimbing akademik kelas MIF-3 dan MIF-6, maka
skemanya menjadi:
DOSEN
KULIAH KELAS
root
D1 D2 D3
K1 K2 K3 K4 K5 MIF-3 MIF-6
Asosiasi pada model data hirarki selalu (1-1) atau (1-n). Asosiasi (m-n) harus
ditransformasikan menjadi (1-n) dengan duplikasi data. Sebagai contoh, misalkan:
• mahasiswa M1 mengambil kuliah K1 dan mendapat nilai C
• mahasiswa M1 mengambil kuliah K2 dan mendapat nilai B
• mahasiswa M2 mengambil kuliah K1 dan mendapat nilai B
• mahasiswa M3 mengambil kuliah K2 dan mendapat nilai A
maka penggambaran model data hirarkinya adalah:
root
M1 M2 M3
C B B A
K1 K2 K1 K2
root
K1 K2
C B B A
M1 M1 M2 M3
root
M1 M2 M3
C B B A
root
K1 K2
C B B A
Secara skematis:
MHS KULIAH
AMBIL AMBIL
Gambar 6.7. Skema Model Data Hirarki Mahasiswa-Kuliah dengan Virtual Record
Model Data Hirarki Halaman VI-3
Handout Pengantar Database Toto Suharto
M1 M2 M3
K1 K2 K3 K4 K5
dimana operasi tersebut dapat terlaksana jika representasi model data hirarkinya
disajikan dalam bentuk struktur pohon biner.
Model Data Hirarki Halaman VI-4
Handout Pengantar Database Toto Suharto
7
Perancangan
Database
Beberapa tujuan yang ingin dicapai dari perancangan database diantaranya adalah:
• memenuhi kebutuhan informasi pada saat ini dan yang akan datang
• kemudahan pengembangan sesuai dengan perkembangan organisasi
• penerapan mekanisme pengamanan data
Untuk mencapai tujuan tersebut, ada dua tahapan proses yang harus dikerjakan
pada saat perancangan database ini, yaitu perancangan logika dan perancangan
fisik.
Perancangan logika database terdiri dari dari dua tahapan proses. Pertama,
perancangan model konseptual atau model enterprise dari dunia nyata yang
dirancang, disebut tahap pendeskripsian semantik. Kedua, perancangan model
logika yaitu proses dekomposisi model konseptual untuk memperoleh model logika,
disebut tahap dekomposisi skema basis data. Sasaran yang ingin dicapai dari
Perancangan Database Halaman VII-1
Handout Pengantar Database Toto Suharto
perancangan logika database ini adalah fleksibilitas model data yang dihasilkan dan
efisiensi pengimplementasiannya dalam komputer. Model data adalah suatu alat
abstrak untuk merepresentasikan data dari dunia nyata yang akan
diimplementasikan dalam sistem komputer tanpa tergantung kepada software
maupun bentuk dan jenis komputer itu sendiri.
Perancangan Database Halaman VII-2
Handout Pengantar Database Toto Suharto
1. Menentukan struktur untuk setiap tabel, meliputi nama field, jenis, lebar dan
field kuncinya
2. Menentukan nama database dan nama masing-masing tabel, dan lokasi
dimana database akan disimpan (drive, directory).
3. Menghitung perkiraan space yang dibutuhkan,
a. untuk seluruh tabel
St = jumlah tabel x panjang record x jumlah record + 10-20% toleransi
b. untuk seluruh index
4. Implementasi
Perancangan Database Halaman VII-3
Handout Pengantar Database Toto Suharto
Setiap kapal memiliki identifikasi seperti nama kapal, call sign, maksimum peti
kemas yang dapat diangkut, dan sebagainya. Rute perjalanan dan jadwal
labuh/berangkat sudah tetap, dan diumumkan dalam majalah Shipping Gazette.
Perjalanan kapal dikenal dengan nama voyage. Berbeda dengan flight number pada
angkutan udara, pada angkutan laut setiap kedatangan kapal mempunyai voyage
yang berbeda sehingga sebuah kapal dapat mempunyai voyage number yang
berbeda-beda. Sebagai contoh, kapal dengan nama Cape Jervis mempunyai voyage
number 03S saat berlayar dengan tujuan Australia, tapi untuk tujuan yang sama di
waktu lain voyage number untuk kapal tersebut mungkin S, 05S, dan sebagainya.
Sebuah kapal dapat melayani tujuan pengiriman yang berbeda-beda, misalnya pada
bulan ini melayani perjalanan ke Eropa, sedangkan bulan Juni ke Cina, dan
sebagainya.
Prosedur yang harus ditempuh oleh seorang ekportir untuk dapat mengirimkan
barangnya dengan menggunakan peti kemas melalui PT. Angin Ribut adalah
sebagai berikut:
1. Eksportir melakukan kontak dengan bagian Customer Support mengenai
rencana pengiriman barang.
2. Jika sudah sepakat mengenai tarif pengiriman, maka informasi rencana
pengiriman tersebut dicatat dalam buku booking seperti jumlah dan tipe peti
kemas yang akan dikirim, kapal yang akan dipakai, tujuan pengiriman, tarif
yang telah disetujui, dan lain-lain.
3. Setelah membayar sesuai dengan persetujuan (bisa sebagian) dan
mengantongi nomor peti kemas yang akan dipakai, eksportir pergi ke tempat
penyimpanan peti kemas untuk mengambil peti kemas kosongnya.
4. Di tempat eksportir, peti kemas tersebut diisi dengan barang yang akan
dikirim. Setelah diperiksa oleh petugas Customs (Bea Cukai), peti kemas
dikirim pada waktu yang telah ditentukan (sesuai dengan jadwal kapal yang
telah disepakati) ke pelabuhan.
5. PT. Angin Ribut akan memuat peti kemas tersebut pada saat proses muat
kapal dilakukan di pelabuhan, jika peti kemas milik eksportir sudah berada di
pelabuhan pada saat itu.
6. Proses ekspor harus dilengkapi dengan dokumentasi agar si penerima barang
di pelabuhan penerima dapat menerima barangnya. Oleh karena itu, setelah
kapal pergi eksportir harus kembali ke PT. Angin Ribut untuk mengambil
dokumen ekspor tersebut setelah membayar biaya dokumen.
Perancangan Database Halaman VII-4
Handout Pengantar Database Toto Suharto
Beberapa informasi yang diperlukan oleh para petugas PT. Angin Ribut ketika
bertugas adalah sebagai berikut:
• Daftar jadwal kapal beserta tujuannya
• Tujuan kapal tertentu (misalnya kapal Seven Seas Chariot)
• Kapal yang tersedia untuk pelabuhan tertentu (misalnya untuk pelabuhan
Hobart)
• Kapal yang tersedia ke pelabuhan tertentu pada bulan tertentu
• Daftar peti kemas yang harus dimuat ke kapal tertentu (dari hasil booking)
• Daftar petik emas beserta pemiliknya yang sudah siap dimuat ke atas kapal
tertentu (sudah ada di pelabuhan)
• Daftar peti kemas yang sudah dimuat ke atas kapal tertentu (realisasi
rencana)
• Daftar peti kemas tipe tertentu untuk tujuan Melbourne yang ada di kapal
tertentu
• Daftar eksportir yang telah mengambil peti kemas tapi peti kemasnya tidak
terangkut di pelabuhan (terlambat tiba di pelabuhan)
• Daftar booking untuk bulan Juni 1999
• Daftar pendapatan untuk kapal tertentu
Perancangan Database Halaman VII-5
Handout Pengantar Database Toto Suharto
Perancangan Database Halaman VII-6
Handout Pengantar Database Toto Suharto
1 N M N
SHIPTYPE TYPE SHIP SCHEDULE VOYAGE
1 Departure Status M
N N
1
M N
CONTAINER BRING BOOKING PORT
N
Deposit
ORDERED Amount
OrderStatus
1
EXPORTER
Skema relasi ialah kumpulan nama-nama atribut dari suatu relasi (deskripsi suatu
relasi). Skema relasi dapat diperoleh dari tranformasi model data E-R menjadi
model data relasi. Berdasarkan beberapa aturan tranformasi, skema relasi yang
dapat diturunkan dari diagram E-R untuk masalah pengiriman peti kemas adalah:
Perancangan Database Halaman VII-7
Handout Pengantar Database Toto Suharto
Atribut ShipName dan Voyage# pada skema relasi SCHEDULE tidak cukup
unik untuk mengidentifikasi jadwal suatu kapal, oleh karena itu perlu satu
atribut tambahan, yaitu Departure, untuk melengkapi kedua atribut tersebut
sehingga membentuk sebuah primary key (hubungan-antar-entitas
SCHEDULE adalah sebuah weak relationship).
Seperti pada kasus nomor dua, atribut Voyage# dan PortName pada skema
relasi ROUTE tidak cukup unik untuk mengidentifikasi rute perjalanan suatu
kapal, oleh karena itu perlu satu atribut tambahan, yaitu Date_of_AD, untuk
melengkapi kedua atribut tersebut sehingga membentuk sebuah primary key
(hubungan-antar-entitas ROUTE adalah sebuah weak relationship).
Perancangan Database Halaman VII-8
Handout Pengantar Database Toto Suharto
Dari hasil pembentukan skema relasi di atas, skema database yang didapat
untuk masalah pengiriman peti kemas adalah
Perancangan Database Halaman VII-9
Handout Pengantar Database Toto Suharto
2. Normalisasi
Normalisasi adalah proses memecah (dekomposisi) suatu skema relasi untuk
menghilangkan anomali proses update. Proses normalisasi akan melibatkan
beberapa langkah transformasi untuk membuat suatu relasi menjadi
konsisten secara internal dan non-redundant. Berikut adalah proses
normalisasi yang dilakukan untuk semua skema relasi pada skema database
masalah pengiriman peti kemas:
Perancangan Database Halaman VII-10
Handout Pengantar Database Toto Suharto
b. Tabel ShipType
Digunakan untuk menyimpan data jenis (spesifikasi) kapal. Struktur
data untuk tabel ini adalah:
Perancangan Database Halaman VII-11
Handout Pengantar Database Toto Suharto
c. Tabel Voyage
Digunakan untuk menyimpan data daerah tujuan perjalanan kapal.
Struktur data untuk tabel ini adalah:
Nama Tabel : VOYAGE
Primary Key: Voyage#
Foreign Key: -
No. Nama Atribut Jenis Lebar Keterangan
1 Voyage# CHAR 7 Nomor voyage
2 Destination CHAR 20 Daerah tujuan perjalanan
d. Tabel Schedule
Digunakan untuk menyimpan data inisialisasi jadwal perjalanan awal
kapal. Struktur data untuk tabel ini adalah:
Nama Tabel : SCHEDULE
Primary Key: ShipName, Voyage#, Departure
Foreign Key: ShipName, Voyage#
No. Nama Atribut Jenis Lebar Keterangan
1 ShipName CHAR 20 Nama kapal
2 Voyage# CHAR 7 Nomor voyage
3 Departure DATE Tanggal berangkat
4 Status CHAR 10 Status jadwal
(Empty, Available, Full)
e. Tabel Route
Digunakan untuk menyimpan data rute perjalanan awal kapal yang
sudah dijadwalkan. Struktur data untuk tabel ini adalah:
Nama Tabel : ROUTE
Primary Key: Voyage#, PortName, Date_of_AD
Foreign Key: Voyage#, PortName
No. Nama Atribut Jenis Lebar Keterangan
1 Voyage# CHAR 7 Nomor voyage
2 PortName CHAR 20 Nama pelabuhan tujuan
3 Date_of_AD DATE Tanggal labuh/berangkat
f. Tabel Port
Digunakan untuk menyimpan data pelabuhan yang menjadi tujuan (rute)
perjalanan kapal. Struktur data untuk tabel ini adalah:
Nama Tabel : PORT
Primary Key: PortName
Foreign Key: -
No. Nama Atribut Jenis Lebar Keterangan
1 PortName CHAR 20 Nama pelabuhan
2 Country CHAR 20 Negara dari pelabuhan
Perancangan Database Halaman VII-12
Handout Pengantar Database Toto Suharto
g. Tabel Booking
Digunakan untuk menyimpan data identitas transaksi booking yang
sudah dipesan eksportir. Struktur data untuk tabel ini adalah:
Nama Tabel : BOOKING
Primary Key: Booking#
Foreign Key: -
No. Nama Atribut Jenis Lebar Keterangan
1 Booking# CHAR 20 Nomor booking
2 BookDate DATE Tanggal booking
3 BookStatus CHAR 10 Status booking
1 = unready
2 = ready
3 = loaded
4 = completed
h. Tabel Assign
Digunakan untuk menyimpan data identitas kapal dan pelabuhan tujuan
yang dicatat pada transaksi booking. Struktur data untuk tabel ini
adalah:
Nama Tabel : ASSIGN
Primary Key: Booking#, ShipName, PortName
Foreign Key: Booking#, ShipName, PortName
No. Nama Atribut Jenis Lebar Keterangan
1 Booking# CHAR 20 Nomor booking
2 ShipName CHAR 20 Nama kapal
3 PortName CHAR 20 Nama pelabuhan
i. Tabel Bring
Digunakan untuk menyimpan data identitas peti kemas yang digunakan
(dibawa) pada suatu transaksi booking. Struktur data untuk tabel ini
adalah:
Nama Tabel : BRING
Primary Key: Booking#, Container#
Foreign Key: Booking#, Container#
No. Nama Atribut Jenis Lebar Keterangan
1 Booking# CHAR 20 Nomor booking
2 Container# CHAR 15 Nomor peti kemas
j. Tabel Order
Digunakan untuk menyimpan data order transaksi booking yang
dilakukan oleh eksportir tertentu. Struktur data untuk tabel ini adalah:
Nama Tabel : ORDER
Primary Key: Booking#, Container#
Foreign Key: Booking#, Container#
No. Nama Atribut Jenis Lebar Keterangan
1 Booking# CHAR 20 Nomor booking
2 Exporter# CHAR 10 Kode eksportir
3 Deposit NUMBER 15 Jumlah uang muka
4 Amount NUMBER 15 Jumlah total order
5 OrderStatus CHAR 11 Status order
(Paid, Not Paid)
Perancangan Database Halaman VII-13
Handout Pengantar Database Toto Suharto
k. Tabel Container
Digunakan untuk menyimpan data peti kemas. Struktur data untuk
tabel ini adalah:
Nama Tabel : CONTAINER
Primary Key: Container#
Foreign Key: -
No. Nama Atribut Jenis Lebar Keterangan
1 Container# CHAR 15 Nomor peti kemas
2 Type CHAR 8 Jenis peti kemas
3 Dimension CHAR 9 Ukuran peti kemas
l. Tabel Exporter
Digunakan untuk menyimpan data eksportir. Struktur data untuk tabel
ini adalah:
Nama Tabel : EXPORTER
Primary Key: Exporter#
Foreign Key: -
No. Nama Atribut Jenis Lebar Keterangan
1 Exporter# CHAR 10 Kode ekportir
2 ExpName CHAR 20 Nama eksportir
3 Address CHAR 20 Alamat eksportir
4 Phone CHAR 12 Nomor telepon eksportir
a. Domain Rule
Domain rule adalah aturan integritas yang membatasi nilai-nilai apa saja
yang diperkenankan untuk domain yang sudah ditentukan. Pada tugas
ini, aturan integritas domain rule dipergunakan untuk atribut-atribut:
b. Attribute Rule
Atribut rule adalah aturan integritas yang membatasi nilai-nilai apa saja
yang diperkenankan untuk atribut yang sudah ditentukan. Pada tugas
ini, aturan integritas attribut rule yang dibuat adalah:
Perancangan Database Halaman VII-14
Handout Pengantar Database Toto Suharto
c. Relation Rule
Relation rule adalah aturan integritas yang membatasi nilai-nilai apa saja
yang diperkenankan untuk relasi yang sudah ditentukan. Pada tugas ini,
aturan integritas relation rule yang digunakan hanya ditujukan untuk
atribut-atribut Amount dan Deposit pada tabel Order dimana nilai
Amount ≥ Deposit.
d. Database Rule
Database rule adalah aturan integritas yang membatasi nilai-nilai apa
saja yang diperkenankan untuk database yang sudah ditentukan. Pada
tugas ini, aturan integritas database rule yang digunakan ditujukan
untuk tabel Booking dan Order dimana jika atribut BookStatus pada
tabel Booking bernilai ‘3’ atau ‘4’, maka atribut OrderStatus pada tabel
Order harus bernilai ‘Paid’.
7.3.6. Implementasi
1. Pembuatan Tabel-tabel Database
Tabel-tabel database yang dibuat merujuk kepada hasil perancangan fisik
seperti yang ditunjukkan pada bagian 7.3.5 di atas. Adapun pelaksanaannya
dikerjakan dengan menggunakan perintah CREATE TABLE setelah database
untuk tabel-tabel tersebut dibuat. Perintah pembentukan untuk setiap
tabelnya adalah sebagai berikut:
a. Tabel Ship
CREATE TABLE Ship
(ShipName CHAR (20) NOT NULL, CallSign CHAR (10) NOT NULL,
Type NUMBER (2) NOT NULL,
PRIMARY KEY (ShipName),
FOREIGN KEY (Type) REFERENCES ShipType
ON DELETE CASCADE);
b. Tabel ShipType
CREATE TABLE ShipType
(Type NUMBER (2) NOT NULL, Tonage NUMBER (8) NOT NULL,
PRIMARY KEY (Type),
CHECK (Type > 0 AND TYPE < 5));
c. Tabel Voyage
CREATE TABLE Voyage
(Voyage# CHAR (7) NOT NULL, Destination CHAR (20),
PRIMARY KEY (Voyage#));
Perancangan Database Halaman VII-15
Handout Pengantar Database Toto Suharto
d. Tabel Schedule
CREATE TABLE Schedule
(ShipName CHAR (20) NOT NULL, Voyage# CHAR (7) NOT NULL,
Departure DATE NOT NULL, Status CHAR (10) NOT NULL,
PRIMARY KEY (ShipName, Voyage#, Departure),
FOREIGN KEY (ShipName) REFERENCES Ship,
FOREIGN KEY (Voyage#) REFERENCES Voyage ON DELETE CASCADE,
CHECK (Status IN (‘Empty’, ‘Available’, ‘Full)));
e. Tabel Route
CREATE TABLE Route
(Voyage# CHAR (7) NOT NULL, PortName CHAR (20) NOT NULL,
Date_of_AD DATE NOT NULL,
PRIMARY KEY (Voyage#, PortName, Date_of_AD),
FOREIGN KEY (Voyage#) REFERENCES Voyage,
FOREIGN KEY (PortName) REFERENCES Port);
f. Tabel Port
CREATE TABLE Port
(PortName CHAR (20) NOT NULL, Country CHAR (20) NOT NULL,
PRIMARY KEY (PortName));
g. Tabel Booking
CREATE TABLE Booking
(Booking# CHAR (20) NOT NULL, BookDate DATE NOT NULL,
BookStatus CHAR (10) NOT NULL,
PRIMARY KEY (Booking#),
CHECK (BookStatus IN (‘1’, ‘2’, ‘3’, ‘4’));
h. Tabel Assign
CREATE TABLE Assign
(Booking# CHAR (20) NOT NULL, ShipName CHAR (20) NOT NULL,
PortName CHAR (20) NOT NULL,
PRIMARY KEY (Booking#, ShipName, PortName),
FOREIGN KEY (Booking#) REFERENCES Booking,
FOREIGN KEY (ShipName) REFERENCES Ship,
FOREIGN KEY (PortName) REFERENCES Port);
i. Tabel Bring
CREATE TABLE Bring
(Booking# CHAR (20) NOT NULL,Container# CHAR (15) NOT NULL,
PRIMARY KEY (Booking#, Container#),
FOREIGN KEY (Booking#) REFERENCES Booking,
FOREIGN KEY (Container#) REFERENCES Container);
j. Tabel Order
CREATE TABLE Order
(Booking# CHAR (20) NOT NULL, Exporter# CHAR (10) NOT NULL,
Deposit NUMBER (15), Amount NUMBER (15) NOT NULL,
OrderStatus CHAR (11),
PRIMARY KEY (Booking#, Exporter#),
FOREIGN KEY (Booking#) REFERENCES Booking,
FOREIGN KEY (Exporter#) REFERENCES Exporter)
CHECK (OrderStatus IN ('Paid', 'Not Paid')
AND Deposit <= Amount));
Perancangan Database Halaman VII-16
Handout Pengantar Database Toto Suharto
k. Tabel Container
CREATE TABLE Container
(Container# CHAR (15) NOT NULL, Type CHAR (8) NOT NULL,
Dimension CHAR (9) NOT NULL, PRIMARY KEY (Container#));
l. Tabel Exporter
CREATE TABLE Exporter
(Exporter# CHAR (10) NOT NULL, ExpName CHAR (20) NOT NULL,
Address CHAR (20) NOT NULL, Phone CHAR (12) NOT NULL,
PRIMARY KEY (Exporter#));
1. Domain Rule
Dinyatakan melalui CHECK misalnya CHECK (TYPE > 1 AND TYPE <5))
untuk membatasi nilai TYPE pada domain nilai 1, 2, 3 dan 4.
2. Attribute Rule
Dinyatakan melalui clause NOT NULL untuk menyatakan bahwa nilai
atribut tidak boleh kosong, dan UNIQUE untuk menyatakan nilai atribut
harus unik.
3. Relation Rule
Dinyatakan dengan clause CHECK seperti halnya atrutan integritas
domain rule, misalnya CHECK (Amount >= Deposit) untuk menyatakan
bahwa nilai atribut Amount lebih besar atau sama dengan Deposit.
4. Database Rule
Secara teoritis, seharusnya aturan integritas database rule bisa
dinyatakan dengan clause CHECK dan sub-queries tetapi sampai saat
laporan ini dibuat kombinasi clause CHECK dan sub-queries tersebut
masih belum dapat diimplementasikan.
Perancangan Database Halaman VII-17
Handout Pengantar Database Toto Suharto
a. Tabel Ship
INSERT INTO Ship (ShipName, CallSign, Type)
VALUES (&ShipName, &CallSign, &Type);
b. Tabel ShipType
INSERT INTO ShipType (Type, Tonage)
VALUES (&Type, &Tonage);
c. Tabel Voyage
INSERT INTO Voyage (Voyage#, Destination)
VALUES (&Voyage, &Destination);
d. Tabel Schedule
INSERT INTO Schedule (ShipName, Voyage#, Departure, Status)
VALUES (&ShipName, &Voyage, &Departure, &Status);
e. Tabel Route
INSERT INTO Route (Voyage#, PortName, Date_of_AD)
VALUES (&Voyage, &PortName, &Date_of_AD);
f. Tabel Port
INSERT INTO Port (PortName, Country)
VALUES (&PortName, &Country);
g. Tabel Booking
INSERT INTO Booking (Booking#, BookDate, BookStatus)
VALUES (&Booking#, &BookDate, &BookStatus);
h. Tabel Assign
INSERT INTO Assign (Booking#, ShipName, PortName)
VALUES (&Booking#, &ShipName, &PortName);
i. Tabel Bring
INSERT INTO Bring (Booking#, Container#)
VALUES (&Booking#, &Container#);
j. Tabel Order
INSERT INTO Order (Booking#, Exporter#, Deposit, Amount, OrderStatus)
VALUES (&Booking#, &Exporter#, &Deposit, &Amount, &OrderStatus);
k. Tabel Container
INSERT INTO Container (Container#, Type, Size)
VALUES (&Container, &Type, &Size);
l. Tabel Exporter
INSERT INTO Exporter (Expoter#, ExpName, Address, Phone)
VALUES (&Expoter#, &ExpName, &Address, &Phone);
Perancangan Database Halaman VII-18
Handout Pengantar Database Toto Suharto
Contoh:
Mengubah tonage kapal menjadi 250000 untuk kapal Cape Howe.
Perancangan Database Halaman VII-19
Handout Pengantar Database Toto Suharto
4. Daftar petikemas tipe tertentu untuk Melbourne yang ada di kapal tertentu
BREAK ON ShipName ON Type;
SELECT A.ShipName, Br.Container#, C.Type, B.BookStatus
FROM Assign A, Bring Br, Booking B, Container C
WHERE B.Booking# = A.Booking# AND
B.Booking# = Br.Booking# AND
Br.Container# = C.Container# AND
A.PortName = 'Melbourne' AND
B.BookStatus = '3';
5. Daftar eksportir yang telah mengambil peti kemas tapi peti kemasnya tidak
terangkut di pelabuhan (terlambat tiba di pelabuhan)
SELECT E.ExpName, B.BookStatus, A.ShipName
FROM Exporter E, Booking B, Order O, Assign A, Schedule Sc
WHERE B.Booking# = O.Booking# AND
E.Exporter# = O.Exporter# AND
A.Booking# = B.Booking# AND
Sc.ShipName = A.ShipName AND
B.BookStatus = '1' AND
Sc.Departure < SYSDATE;
Perancangan Database Halaman VII-20
Handout Pengantar Database Toto Suharto
3. Daftar petikemas yang harus dimuat ke kapal tertentu (dari hasil booking)
SELECT A.ShipName, Br.Container#, B.BookStatus
FROM Assign A, Bring Br, Booking B
WHERE B.Booking# = A.Booking# AND
B.Booking# = Br. Booking# AND B.BookStatus = '1'
ORDER BY A.ShipName;
4. Daftar petikemas beserta pemiliknya yang sudah siap dimuat ke atas kapal
tertentu (sudah ada di pelabuhan)
BREAK ON ShipName ON ExpName;
SELECT A.ShipName, E.ExpName, Br.Container#, B.BookStatus
FROM Assign A, Bring Br, Booking B, Exporter E, Order O
WHERE (B.Booking# = A.Booking# AND
B.Booking# = Br.Booking# AND
B.Booking#=O.Booking#) AND
(O.Exporter# = E.Exporter#) AND B.BookStatus = '2'
ORDER BY A.ShipName, E.ExpName;
Perancangan Database Halaman VII-21