PENGONTROLAN BERBASIS KOMPUTER
1. Security Database
Authorization
Pemberian hak akses yang mengizinkan sebuah subyek mempunyai akses secara
legal terhadap sebuah sistem atau obyek.
Subyek user atau program
Obyek database table, view, application, procedure, atau obyek lainnya
yang dibuat di dalam sebuah sistem
Jenis-jenis hak akses (privileges)
• Penggunaan nama database yang spesifik
• Select (retrieve) data
• Membuat tabel (obyek lainnya)
• Update data, delete data, insert data (bisa untuk kolom-kolom tertentu)
• Menghasilkan output yang tidak terbatas dari operasi query (user tidak dibatasi
untuk mengakses record tertentu)
• Menjalankan prosedur khusus dan utilitas program
• Membuat database
• Membuat (dan memodifikasi) DBMS user identifiers dan authorized identifiers
jenis lainnya
• Anggota dari sebuah kelompok atau kelompok-kelompok user
Views (Subschemas)
Hasil yang dinamik dari satu atau lebih operasi relasi yang beroperasi pada relasi
dasar untuk menghasilkan relasi lainnya. View merupakan virtual relation yang tidak
secara nyata ada di dalam sebuah database, tetapi dihasilkan atas permintaan user
secara khusus.
Backing Up
Proses yang secara periodik menyalin database dan menjurnal (dan memprogram)
ke dalam media penyimpanan offline
Journaling
Proses penyimpanan dan pemeliharaan sebuah jurnal atau log seluruh perubahan
terhadap database agar dapat merecover secara efektif jika terjadi kegagalan.
Checkpointing
Titik temu sinkronisasi antara database dan transaksi log file. Seluruh data yang
disimpan di tempat sementara akan disimpan di media penyimpanan kedua.
Integrity
Pengontrolan integritas juga membantu memelihara sistem database yang aman
dengan mencegah data dari invalid
Encryption
Penyandian (encoding) data dengan menggunakan algoritma khusus yang merubah
data menjadi tidak dapat dibaca oleh program apapun tanpa mendeskripsikannya.
2. Concurrency
Hampir semua DBMS adalah sistem multi user. Sistem seperti ini memerlukan
mekanisme pengontrolan konkuren. Tujuan dari mekanisme ini adalah untuk
menjamin bahwa transaksi-transaksi yang konkuren tidak saling menggangu
operasinya masing-masing.
Terdapat beberapa masalah yang akan timbul dalam menjalankan transaksitransaksi
yang konkuren. Tiga masalah yang umum adalah :
1. Masalah kehilangan modifikasi
2. Masalah modifikasi sementara
3. Masalah analisis yang tidak konsisten
Masalah Kehilangan Modifikasi
Transaksi A Waktu Transaksi B
= =
Baca R t1 =
= =
= t2 Baca R
= =
Modifikasi R t3 =
= =
= t4 Modifikasi R
= =
• Transaksi A membaca R pada t1, transaksi B membaca R pada t2.
Transaksi A memodifikasi R pada t3.
• Transaksi B memodifikasi record yang sama pada t4.
• Modifikasi dari transaksi A akan hilang karena transaksi B akan
memodifikasi R tanpa memperhatikan modifikasi dari transaksi A pada t3.
Sistem Basis Data
Database Control Hal. 3 dari 10
Masalah Modifikasi Sementara
Masalah ini timbul jika transaksi membaca suatu record yang sudah dimodifikasi
oleh transaksi lain tetapi belum terselesaikan (uncommited), terdapat kemungkinan
kalau transaksi tersebut dibatalkan (rollback).
Transaksi A Waktu Transaksi B
- -
- t1 modifikasi R
- -
Baca R t2 -
- -
- t3 rollback
- -
• Transaksi B memodifikasi record R pada t1
• Transaksi A membaca R pada t2
• Pada saat t3 transaksi B dibatalkan
• Maka transaksi A akan membaca record yang salah
Transaksi A Waktu Transaksi B
- -
- t1 Modifikasi R
- -
Modifikasi R t2 -
- -
- t3 Rollback
- -
• Pada waktu t2 transaksi A memodifikasi R
• Karena transaksi B dibatalkan pada waktu t3, maka transaksi A
memodifikasi record yang salah.
Masalah Analisis yang Tidak Konsisten
Nilai 1 = 40
Nilai 2 =
50
Nilai 3 = 30
Transaksi A Waktu Transaksi B
- -
Baca nilai 1(40) t1 -
juml = 40 -
- -
Baca nilai 2 (50) t2 -
juml = 90 -
- -
- t3 Baca nilai 3
(30)
- -
- t4 Modifikasi nilai
3
- 30 20
- -
- t5 Baca nilai 1
(40)
- t6 Modifikasi nilai
1
- 40 50
- t7 Commit
-
Baca nilai 3 (20) t8
juml = 110 (bukan
120)
-
• Transaksi A menjumlahkan nilai 1, nilai 2 dan nilai 3
• Transaksi B nilai 1 +10 ; nilai 3 - 10
• Pada waktu t8, transaksi A membaca nilai yang salah karena nilai 3
sudah dimodifikasi menjadi 20 ( transaksi B sudah melakukan commit
sebelum transaksi A membaca nilai 3 )
Ket :
• Commit adalah operasi yang menyatakan bahwa suatu transaksi sudah
terselesaikan/ sukses (successfull end-of-transaction).
• Rollback adalah operasi yang menyatakan bahwa suatu transaksi dibatalkan
(unsuccessfull end-of-transaction).
Locking
Locking adalah salah satu mekanisasi pengontrol konkuren. Konsep dasar : pada
saat suatu transaksi memerlukan jaminan kalau record yang diinginkan tidak akan
berubah secara mendadak, maka diperlukan kunci untuk record tersebut. Fungsi
kunci (lock) adalah menjaga record tersebut agar tidak dimodifikasi transaksi lain.
Cara kerja dari kunci :
1. Pertama kita asumsikan terdapat 2 macam kunci :
- Kunci X : kunci yang eksklusif.
- Kunci S : kunci yang digunakan bersama-sama.
2. Jika transaksi A menggunakan kunci X pada record R, maka permintaan dari transaksi B untuk suatu kunci pada R ditunda, dan B harus menungggu sampai A melepaskan kunci tersebut.
3. Jika transaksi A menggunakan kunci S pada record R, maka : a. Bila transaksi B ingin menggunakan kunci X, maka B harus menunggu sampai A melepaskan kunci tersebut.
b. Bila transaksi B ingin menggunakan kunci S, maka B dapat menggunakan kunci S bersama A.
Tabel Kunci :
X S - X = kunci X
X N N Y S = kunci S
S N Y Y N = No
- Y Y Y Y = Yes
4. Bila suatu transaksi hanya melakukan pembacaan saja, secara otomatis ia
memerlukan kunci S baca (S)
Bila transaksi tersebut ingin memodifikasi record maka secara otomatis ia
memerlukan kunci X memodifikasi (X)
Bila transaksi tersebut sudah menggunakan kunci S, setelah itu ia akan
memodifikasi record, maka kunci S akan dinaikan ke level kunci X.
5. Kunci X dan kunci S akan dilepaskan pada saat synchpoint (synchronization
point). Synchpoint menyatakan akhir dari suatu transaksi dimana basis data
berada pada state yang konsisten. Bila synchpoint ditetapkan maka :
- Semua modifikasi program menjalankan operasi commit atau rollback.
- Semua kunci dari record dilepaskan.
Masalah Kehilangan Modifikasi
Transaksi A Waktu Transaksi B
- -
Baca R t1 -
(kunci S) -
- t2 Baca R
- (kunci S)
Modifikasi R t3 -
(kunci X) -
Tunggu -
: t4 Modifikasi R
: (kunci X)
: Tunggu
: :
: :
Tunggu Tunggu
• Pada waktu t3, transaksi A memerlukan kunci X, maka transaksi A
harus menunggu sampai B melepaskan kunci S.
• Transaksi B juga harus menunggu pada t4
Maka tidak akan ada yang kehilangan modifikasi, tetapi terdapat
keadaan baru yaitu DEADLOCK.
Masalah Modifikasi Sementara.
Transaksi A Waktu Transaksi B
- -
- t1 modifikasi R
- (kunci X)
Baca R t2 -
kunci (S) -
Tunggu -
: t3 Synchpoint
: (kunci X dilepas)
Tunggu -
Baca R kembali T4 -
(kunci S) -
Sistem Basis Data
Database Control Hal. 7 dari 10
Transaksi A Waktu Transaksi B
- t1 Modifikasi R
- (kunci X)
Modifikasi R t2 -
kunci (X) -
Tunggu -
: t3 Synchpoint
: (kunci X dilepas)
Tunggu -
Modifikasi R t4 -
(kunci X) -
• Transaksi A pada t2 tidak dapat dijalankan langsung, tetapi harus
menunggu sampai B melepas kunci X.
• Bila B sudah mencapai synchpoint, maka kunci X dilepaskan dan A
dapat meneruskan prosesnya.
• Maka transaksi A tidak akan terjasi kesalahan dalam membaca, karena
sudah mencapai synchpoint.
Masalah Analisa yang Tidak Konsisten
Nilai 1 = 40 Nilai 2 = 50 Nilai 3 = 30
Transaksi A Waktu Transaksi B
- -
Baca nilai 1
(40)
t1 -
(kunci S) -
jml = 40 -
- -
Baca nilai 2
(50)
t2 -
(kunci S) -
jml = 90 -
- t3 Baca nilai 3 (30)
- (kunci S)
- -
- t4 Modifikasi nilai 3
- (kunci X)
- 30 20
- -
- t5 Baca nilai 1 (40)
- (kunci S)
- -
- t6 Modifikasi nilai 1
- (kunci X)
- Tunggu
Baca nilai 3
(20)
t7 :
(kunci S) :
Tunggu Tunggu
:
• Transaksi B pada t6 tidak diijinkan, karena memerlukan kunci X maka B
harus menunggu sampai A melepaskan kunci S kepada nilai 1.
• Pada t7 transaksi A juga tidak dapat langsung dilaksanakan, karena B
menggunakan kunci X pada nilai 3. Maka A harus menunggu B
melepaskan kunci X pada nilai 3.
• Transaksi A akan membaca nilaiyang benar, tapi timbul masalah baru
yaitu DEADLOCK.
Time Stamping
Salah satu alternatif mekanisme pengawasan konkuren yang dapat menghilangkan
masalah deadlock adalah TIME STAMPING. Dalam skema ini tidak ada kunci yang
digunakan sehingga tidak ada deadlock yang muncul. Time stamping untuk sebuah
transaksi aksi merupakan suatu tanda pengenal yang unik yang menunjuk waktu
mulai relatif dari transaksi.
Time stamp dapat berupa pembacaan pada kinci internal pada waktu transaksi
dimulai, dapat berupa nilai dari suatu penunjuk logical yang dapat bertambah setiap
kali suatu transaksi baru dimulai. Dalam hal ini nilai time stamp dari setiap transaksi
adalah unik dan menunjukkan bagaimana lamanya transaksi tersebut . Pengaruh
dari time stamping adalah menentukan suatu urutan serial transaksi.
Setiap item data terdiri dari sebuah lead time stamp yang memberikan time stamp
transaksi terakhir untuk membawa item dan sebuah write time stamp yang
memberikan transaksi terakhir untuk menuliskan / memperbaharui item.
Masalah dapat timbul dengan time stamping :
1. Suatu transaksi memerintahkan untuk membaca sebuah item yang sudah diupdate
oleh transaksi yang belakangan
2. Suatu transaksi memerintahkan untuk menulis sebuah item yang nilainya sudah
dibaca / ditulis oleh transaksi yang belakangan
3. Recovery
Recovery Facilities
Sebuah DBMS sebaiknya menyediakan fasilitas-fasilitas berikut ini untuk membantu
recovery :
• Backup mechanism
melakukan backup secara periodik terhadap database yang ada
• Logging facilities
Mencatat transaksi-transaksi dan perubahan-perubahan yang terjadi terhadap
database. DBMS memelihara file khusus yang disebut Log (Journal) yang
menyediakan informasi mengenai seluruh perubahan yang terjadi pada
database.
• Checkpoint facility
Mengizinkan update terhadap database yang akan menjadi database yang
permanen
• Recovery manager
Mengizinkan sistem untuk restore database ke keadaan sebelum terjadi
kerusakkan
Recovery Techniques
Prosedur recovery yang digunakan tergantung dari kerusakkan yang terjadi pada
database. Terdapat 2 kasus kerusakkan :
1. Jika database rusak secara fisik seperti : disk head crash dan menghancurkan
database, maka yang terpenting adalah melakukan restore backup database
yang terakhir dan mengaplikasikan kembali operasi-operasi update transaksi
yang telah commit dengan menggunakan log file. Dengan asusmsi bahwa log filenya
tidak rusak.
2. Jika database tidak rusak secara fisik tetapi menjadi tidak konsisten, sebagai
contoh : sistem crashed sementara transaksi dieksekusi, maka yang perlu
dilakukan adalah membatalkan perubahan-perubahan yang menyebabkan
database tidak konsisten. Mengulang beberapa transaksi sangat diperlukan juga
untuk meyakinkan bahwa perubahan-perubahan yang dilakukan telah disimpan di
dalam secondory storage. Disini tidak perlu menggunakan salinan backup
database, tetapi dapat me-restore database ke dalam keadaan yang konsisten
dengan menggunakan before- dan after-image yang ditangani oleh log file.
Teknik recover berikut ini dilakukan terhadap situasi dimana database tidak rusak
tetapi database dalam keadaan yang tidak konsisten.
1. Deferred Update
Update tidak dituliskan ke database sampai sebuah transaksi dalam keadaan
commit. Jika transaksi gagal sebelum mencapai keadaan ini, transaksi ini tidak
akan memodifikasi database dan juga tidak ada perubahan-perubahan yang
perlu dilakukan.
Penulisan dilakukan secara initial hanya terhadap log dan log record yang
digunakan untuk actual update terhadap database. Jika sistem gagal, sistem
akan menguji log dan menentukan transaksi mana yang perlu dikerjakan ulang,
tetapi tidak perlu membatalkan semua transaksi.
2. Immediate Update
Update diaplikasikan terhadap database tanpa harus menunggu transaksi dalam
keadaan commit. Update dapat dilakukan terhadap database setiap saat setelah
log record ditulis. Log dapat digunakan untuk membatalkan dan mengulang
kembali transaksi pada saat terjadi kerusakkan.
1
PENDAHULUAN
Sistem informasi berbasiskan komputer terdiri dari komponen-komponen berikut ini :
• Database
• Database software
• Aplikasi software
• Hardware komputer termasuk media penyimpanan
• Personal yang menggunakan dan mengembangkan sistem
Database merupakan komponen dasar dari sebuah sistem informasi dan
pengembangan serta penggunaannya sebaiknya dipandang dari perspektif kebutuhankebutuhan
organisasi yang lebih besar. Oleh karena itu siklus hidup sebuah sistem
informasi organisasi berhubungan dengan siklus hidup sistem database yang
mendukungnya.
Pada tulisan ini akan dibahas mengenai proses perancangan database yang merupakan
bagian dari siklus hidup database sebagai micro lifecycle
2
SIKLUS KEHIDUPAN DATABASE SEBAGAI
SIKLUS KEHIDUPAN MIKRO
Seperti telah disebutkan sebelumnya, sebuah sistem database merupakan komponen
dasar sistem informasi organisasi yang lebih besar. Oleh karena itu siklus hidup aplikasi
database berhubungan dengan siklus hidup sistem informasi. Langkah-langkah siklus
hidup aplikasi adalah berikut ini :
Database
Design
Database
Systems Definition
Requirements
Collection and Analysis
Conceptual
Logical Design
Physical Design
Application Design
DBMS Selection
Prototyping
Implementation
Data Loading
And Convertion
Testing
Operational
Maintenance
3
Hal yang penting adalah mengetahui bahwa langkah-langkah siklus hidup aplikasi
database dapat tidak berurutan, tetapi melibatkan beberapa langkah pengulangan yang
biasanya disebut sebagai feedback loop. Sebagai contoh : masalah-masalah yang
ditemui selama perancangan database mungkin harus mengumpulkan dan
menganalisis kebutuhan-kebutuhan tambahan. Seperti yang digambarkan terdapat
feedback loop diantara langkah-langkah yang sering terjadi
Perancangan Database
Pada database yang digunakan oleh single user atau hanya beberapa user saja,
perancangan database tidak sulit. Tetapi jika ukuran database yang sedang atau besar
(25 - ratusan user yang berisikan jutaan bytes informasi dan melibatkan ratusan query
dan program-program aplikasi, contoh : industri-industri, asuransi, hotel, travel, dll yang
seluruhnya tergantung pada kesuksesan dari operasi-operasi databasenya),
perancangan database menjadi sangat kompleks. Oleh karena itu para pemakai
mengharapkan penggunaan database yang sedemikian rupa sehingga sistem harus
dapat memenuhi kebutuhan-kebutuhan seluruh user tsb.
Tujuan perancangan database :
• untuk memenuhi informasi yang berisikan kebutuhan-kebutuhan user secara
khusus dan aplikasi-aplikasinya.
• memudahkan pengertian struktur informasi
• mendukung kebutuhan-kebutuhan pemrosesan dan beberapa obyek penampilan
(response time, processing time, dan storage space)
Aplikasi database dalam lifecycle
Siklus kehidupan sistem informasi sering disebut macro life cycle, dimana siklus
kehidupan basis data merupakan micro life cycle.
Aktifitas-aktifitas yang berhubungan dengan database sebagai micro life cycle dan
termasuk fase-fasenya sbb :
1. Database planning
4
Di aktifitas ini akan disusun bagaimana langkah-langkah siklus hidup dapat
direalisasikan secara lebih efisien dan efektif.
2. System definition
Definisi ruang lingkup database (misal : para pemakai, aplikasi-aplikasinya, dsb.)
3. Design
Pada bagian dari fase ini, perancangan sistem database secara konseptual, logikal
dan fisik dilaksanakan
4. Implementation
Pemrosesan dari penulisan definisi database secara konseptual, eksternal, dan
internal, pembuatan file-file database yang kosong, dan implementasi aplikasiaplikasi
software.
5. Loading atau Data Conversion
Database ditempatkan baik secara memanggil data secara langsung ataupun
merubah file-file yang ada ke dalam format sistem database dan memangggilnya
kembali.
6. Application Conversion
Beberapa aplikasi software dari suatu sistem sebelumnya dikonversikan ke suatu
sistem yang baru.
7. Testing dan Validation
Sistem yang baru ditest dan diuji kebenarannya.
8. Operation
Operasi-operasi pada sistem database dan aplikasi-aplikasinya.
9. Monitoring dan Maintenance
Selama fase operasi, sistem secara konstan memonitor dan memelihara database.
Pertambahan dan pengembangan data dan aplikasi-aplikasi software dapat terjadi.
Modifikasi dan pengaturan kembali database mungkin diperlukan dari waktu ke
waktu.
5
Langkah ke-3 disebut juga perancangan database. Langkah 3,4, dan 5 merupakan
bagian dari fase design dan implementation pada siklus kehidupan sistem informasi
yang besar. Pada umumnya database pada organisasi menjalani seluruh aktifitasaktifitas
siklus kehidupan di atas. Langkah 5 dan 6 tidak berlaku jika database dan
aplikasi-aplikasinya baru.
Proses Perancangan Database
6 Fase proses perancangan database :
1. Pengumpulan data dan analisis
2. Perancangan database secara konseptual
3. Pemilihan DBMS
4. Perancangan database secara logika (data model mapping)
5. Perancangan database secara fisik
6. Implementasi Sistem database.
Gambar fase-fase perancangan database untuk database yang besar :
Phase 1 : requirements Data requirements Processing requirements
collection and analysis
Phase 2 : Conceptual Conceptual & external Transaction design
design Schema design (DBMS-independent)
(DBMS-independent)
Phase 3 : Choice of
DBMS
Phase 4: Data model Conceptual & external frequencies,
Mapping (logical design) schema design performance
(DBMS-dependent) constraints
Phase 5 : Physical design Internal schema design
(DBMS-dependent)
Phase 6: Implementation DDL-statements Transaction
SDL-statements implementation
Keterangan :
6
Secara khusus proses perancangan berisikan 2 aktifitas paralel. Aktifitas yang pertama
melibatkan perancangan dari isi data dan struktur database, sedangkan aktifitas kedua
mengenai perancangan pemrosesan database dan aplikasi-aplikasi perangkat lunak.
Dua aktifitas ini saling menjalin, misalnya : kita dapat mengidentifikasikan data item
yang akan disimpan dalam database dengan menganalisa aplikasi-aplikasi database.
Dua aktifitas ini juga saling mempengaruhi satu sama lain. Contohnya : fase
perancangan database secara fisik, pada saat kita memilih struktur penyimpanan dan
jalur-jalur akses dari file-file database yang tergantung pada aplikasi-aplikasi yang akan
menggunakan file-file tsb.
Di lain pihak, kita biasanya menentukan perancangan aplikasi-aplikasi database dengan
mengarah kepada konstruksi skema database yang telah ditentukan selama aktifitas
yang pertama.
6 fase di atas tidak harus diproses berurutan. Pada beberapa hal, rancangan tsb dapat
dimodifikasi dari yang pertama dan sementara itu mengerjakan fase yang terakhir
(feedback loop antara fase) dan feedback loop dalam fase sering terjadi selama proses
perancangan.
Fase 1 merupakan kumpulan informasi yang berhubungan dengan penggunaan
database. Fase 6 merupakan implementasi databasenya. Fase 1 dan 6 kadang-kadang
bukan merupakan bagian dari perancangan database, tetapi merupakan bagian dari
siklus kehidupan sistem informasi secara umum. Inti dari proses perancangan database
adalah fase 2,4,5
Fase 1 : Pengumpulan data dan analisa
Proses identifikasi dan analisa kebutuhan-kebutuhan data disebut pengumpulan data
dan analisa. Untuk menentukan kebutuhan-kebutuhan suatu sistem database, pertamatama
harus mengenal bagian-bagian lain dari sistem informasi yang akan berinteraksi
dengan sistem database, termasuk para pemakai yang ada dan para pemakai yang
7
baru serta aplikasi-aplikasinya. Kebutuhan-kebutuhan dari para pemakai dan aplikasiaplikasi
inilah yang kemudian dikumpulkan dan dianalisa.
Aktifitas-aktifitas pengumpulan data dan analisa :
1. Menentukan kelompok pemakai dan bidang-bidang aplikasinya
Mennentukan aplikasi utama dan kelompok user yang akan menggunakan database.
Individu utama pada tiap-tiap kelompok pemakai dan bidang aplikasi yang telah
dipilih merupakan peserta utama pada langkah-langkah berikutnya dari
pengumpulan dan spesifikasi data.
2. Peninjauan dokumentasi yang ada
Dokumen yang ada yang berhubungan dengan aplikasi-aplikasi dipelajari dan
dianalisa. Dokumen-dokumen lainnya (seperti : kebijaksanaan-kebijaksanaan, form,
report, dan bagan organisasi) diuji dan ditinjau kembali untuk menguji apakah
dokumen-dokumen tsb berpengaruh terhadap kumpulan data dan proses spesifikasi.
3. Analisa lingkungan operasi dan pemrosesan data
Informasi yang sekarang dan yang akan datang dipelajari. Termasuk juga analisa
jenis-jenis transaksi dan frekuensi-frekuensi transaksinya dan juga arus informasi
dalam sistem. Input-output data untuk transaksi-transaksi tsb diperinci.
4. Daftar pertanyaan dan wawancara
Tuliskan tanggapan -tanggapan dari pertanyaan-pertanyaan yang telah dikumpulkan
dari para pemakai database yang berpotensi. Ketua kelompok (individu utama) dapat
diwawancarai sehingga input yang banyak dapat diterima dari mereka dengan
memperhatikan informasi yang berharga dan mengadakan prioritas.
Fase 2 : Perancangan database secara konseptual
Tujuan dari fase ini adalah menghasilkan conceptual schema untuk database yang
tergantung pada sebuah DBMS yang spesifik. Sering menggunakan sebuah high-level
data model seperti ER/EER model selama fase ini. Dalam conceptual schema, kita
harus memerinci aplikasi-aplikasi database yang diketahui dan transaksi-transaksi yang
mungkin.
8
Fase perancangan database secara konseptual mempunyai 2 aktifitas paralel :
1. Perancangan skema konseptual :
menguji kebutuhan-kebutuhan data dari suatu database yang merupakan hasil dari
fase 1, dan menghasilkan sebuah conceptual database schema pada DBMSindependent
model data tingkat tinggi seperti EER (enhanced entity relationship)
model.
Skema ini dapat dihasilkan dengan menggabungkan bermacam-macam kebutuhan
user dan secara langsung membuat skema database atau dengan merancang
skema-skema yang terpisah dari kebutuhan tiap-tiap user dan kemudian
menggabungkan skema-skema tsb. Model data yang digunakan pada perancangan
skema konseptual adalah DBMS-independent, dan langkah selanjutnya adalah
memilih sebuah DBMS untuk melaksanakan rancangan tsb.
2. Perancangan transaksi :
menguji aplikasi-aplikasi database dimana kebutuhan-kebutuhannya telah dianalisa
pada fase 1, dan menghasilkan perincian transaksi-transaksi ini.
Kegunaan fase ini yang diproses secara paralel bersama fase perancangan skema
konseptual adalah untuk merancang karakteristik dari transaksi-transaksi database
yang telah diketahui pada suatu DBMS-independent. Transaksi-transaksi ini akan
digunakan untuk memproses dan memanipulasi database suatu saat dimana
database tsb dilaksanakan.
Fase 3 : Pemilihan DBMS
Pemilihan database di tentukan oleh beberapa faktor, diantaranya : faktor teknik,
ekonomi, dan politik organisasi.
Contoh faktor teknik :
keberadaan DBMS dalam menjalankan tugasnya seperti jenis-jenis DBMS (relational,
network, hierarchical, dll), struktur penyimpanan, dan jalur akses yang mendukung
DBMS, pemakai, dll.
9
Faktor-faktor ekonomi dan organisasi yang mempengaruhi satu sama lain dalam
pemilihan DBMS :
1. Struktur data
Jika data yang disimpan dalam database mengikuti struktur hirarki, maka suatu jenis
hirarki dari DBMS harus dipikirkan.
2. Personal yang telah terbiasa dengan suatu sistem
Jika staf programmer dalam suatu organisasi sudah terbiasa dengan suatu DBMS,
maka hal ini dapat mengurangi biaya latihan dan waktu belajar.
3. Tersedianya layanan penjual
Keberadaan fasilitas pelayanan penjual sangat dibutuhkan untuk membantu
memecahkan beberapa masalah sistem.
Fase 4 : Perancangan database secara logika (pemetaan model data)
Fase selanjutnya dari perancangan database adalah membuat sebuah skema
konseptual dan skema eksternal pada model data dari DBMS yang terpilih. Fase ini
dilakukan oleh pemetaan skema konseptual dan skema eksternal yang dihasilkan pada
fase 2. Pada fase ini, skema konseptual ditransformasikan dari model data tingkat tinggi
yang digunakan pada fase 2 ke dalam model data dari DBMS yang dipilih pada fase 3.
Pemetaannya dapat diproses dalam 2 tingkat :
1. Pemetaan system-independent :
pemetaan ke dalam model data DBMS dengan tidak mempertimbangkan
karakteristik atau hal-hal yang khusus yang berlaku pada implementasi DBMS dari
model data tsb.
2. Penyesuaian skema ke DBMS yang spesifik :
mengatur skema yang dihasilkan pada langkah 1 untuk disesuaikan pada
implementasi yang khusus di masa yang akan datang dari suatu model data yang
digunakan pada DBMS yang dipilih.
Hasil dari fase ni memakai perintah-perintah DDL dalam bahasa DBMS yang dipilih
yang menentukan tingkat skema konseptual dan eksternal dari sistem database. Tetapi
10
dalam beberapa hal, perintah-perintah DDL memasukkan parameter-parameter
rancangan fisik sehingga DDL yang lengkap harus menunggu sampai fase perancangan
database secara fisik telah lengkap.
Fase ini dapat dimulai setelah pemilihan sebuah implementasi model data sambil
menunggu DBMS yang spesifik yang akan dipilih. Contoh: jika memutuskan untuk
menggunakan beberapa relational DBMS tetapi belum memutuskan suatu relasi yang
utama. Rancangan dari skema eksternal untuk aplikasi-aplikasi yang spesifik seringkali
sudah selesai selama proses ini.
Fase 5 : Perancangan database secara fisik
Perancangan database secara fisik merupakan proses pemilihan struktur-struktur
penyimpanan dan jalur-jalur akses pada file-file database untuk mencapai penampilan
yang terbaik pada bermacam-macam aplikasi.
Selama fase ini, dirancang spesifikasi-spesifikasi untuk database yang disimpan yang
berhubungan dengan struktur-struktur penyimpanan fisik, penempatan record dan jalur
akses. Berhubungan dengan internal schema (pada istilah 3 level arsitektur DBMS).
Beberapa petunjuk dalam pemilihan perancangan database secara fisik :
1. Response time :
waktu yang telah berlalu dari suatu transaksi database yang diajukan untuk
menjalankan suatu tanggapan. Pengaruh utama pada response time adalah di
bawah pengawasan DBMS yaitu : waktu akses database untuk data item yang
ditunjuk oleh suatu transaksi. Response time juga dipengaruhi oleh beberapa faktor
yang tidak berada di bawah pengawasan DBMS, seperti penjadwalan sistem operasi
atau penundaan komunikasi.
2. Space utility :
jumlah ruang penyimpanan yang digunakan oleh file-file database dan strukturstruktur
jalur akses.
11
3. Transaction throughput :
rata-rata jumlah transaksi yang dapat diproses per menit oleh sistem database, dan
merupakan parameter kritis dari sistem transaksi (misal : digunakan pada
pemesanan tempat di pesawat, bank, dll). Hasil dari fase ini adalah penentual awal
dari struktur penyimpanan dan jalur akses untuk file-file database.
Fase 6 : Implementasi sistem database
Setelah perancangan secara logika dan secara fisik lengkap, kita dapat melaksanakan
sistem database. Perintah-perintah dalam DDL dan SDL(storage definition language)
dari DBMS yang dipilih, dihimpun dan digunakan untuk membuat skema database dan
file-file database (yang kosong). Sekarang database tsb dimuat (disatukan) dengan
datanya.
Jika data harus dirubah dari sistem komputer sebelumnya, perubahan-perubahan yang
rutin mungkin diperlukan untuk format ulang datanya yang kemudian dimasukkan ke
database yang baru. Transaksi-transaksi database sekarang harus dilaksanakan oleh
para programmmer aplikasi.
Spesifikasi secara konseptual diuji dan dihubungkan dengan kode program dengan
perintah-perintah dari embedded DML yang telah ditulis dan diuji. Suatu saat transaksitransaksi
tsb telah siap dan data telah dimasukkan ke dalam database, maka fase
perancangan dan implementasi telah selesai, dan kemudian fase operasional dari
sistem database dimulai.
12
PENUTUP
Sebuah sistem database merupakan komponen dasar sistem informasi organisasi yang
lebih besar. Oleh karena itu siklus hidup aplikasi database berhubungan dengan siklus
hidup sistem informasi. Siklus kehidupan sistem informasi merupakan macro lifecycle
sementara itu siklus kehidupan database merupakan micro lifecycle.
Aktifitas-aktifitas yang berhubungan dengan database sebagai micro life cycle dan
termasuk fase-fasenya diantaranya : system definition, design, implementation, loading
atau data conversion, application conversion, testing dan validation, operation,
monitoring dan maintenance.
Proses perancangan database merupakan bagian dari micro lifecycle. Sedangkan
kegiatan-kegiatan yang terdapat di dalam proses tersebut diantaranya : pengumpulan
data dan analisis, perancangan database secara konseptual, pemilihan DBMS,
perancangan database secara logika (data model mapping), perancangan database
secara fisik, dan implementasi sistem database.
Sistem Basis Data
Distributed Database Hal 1 dari 9
BASIS DATA TERDISTRIBUSI
Dalam sebuah database terdistribusi, database disimpan pada beberapa komputer.
Komputer-komputer dalam sebuah sistem terdistribusi berhubungan satu sama lain
melalui bermacam-macam media komunikasi seperti high-speed buses atau telephone
line.
Sebuah sistem database terdistribusi berisikan sekumpulan site, di mana tiap-tiap site
dapat berpartisipasi dalam pengeksekusian transaksi-transaksi yang mengakses data
pada satu site atau beberapa site. Tiap-tiap site dapat memproses transaksi lokal yaitu
sebuah transaksi yang mengakses data pada satu site di mana transaksi telah
ditentukan.
Sebuah site juga dapat mengambil bagian dalam mengeksekusi transaksi global yaitu
transaksi yang mengakses data pada site yang berbeda di mana transaksi telah
ditentukan, atau transaksi yang mengakses data pada beberapa site yang berbeda.
Untuk menggambarkan kedua tipe transaksi di atas, dapat dimisalkan : transaksi untuk
menambahkan $50 pada nomor rekening 177 yang berada di cabang Valleyview. Jika
transaksi telah ditentukan pada cabang Valleyview, maka transaksi ini dianggap
transaksi lokal. Jika sebuah transaksi untuk mentransfer $50 dari rekening 177 ke
rekening 305 yang berlokasi di cabang Hillside, maka transaksi ini dikatakan transaksi
global karena rekening di dua site yang berbeda telah diakses sebagai hasil dari
eksekusinya.
Site-site dalam database terdistribusi dihubungkan secara fisik dengan berbagai cara.
Beberapa topologi digambarkan sebagai sebuah graph yang simpul-simpulnya
bersesuaian dengan site. Sebuah edge dari simpul A ke simpul B bersesuaian dengan
sebuah hubungan langsung antara dua site. Beberapa konfigurasi (bentuk)
digambarkan sebagai berikut:
A B
C
E D
F
A
B C
F E D
Fully connected network Partially connected network
Sistem Basis Data
Distributed Database Hal 2 dari 9
A
B C
D E F
A B
C D
E F
A B
C
D E
Tree structured network Ring network Star network
Gambar 1. Topologi network
Fully Connected network :
Keuntungan : kalau salah satu node rusak, yang lainnya masih dapat berjalan (tetapi
biaya mahal).
Kerugian : control management tidak terjamin
Partially connected network :
Keuntungan : reliability rendah, biaya dapat ditekan
Kerugian : control management tidak terjamin
Tree structure network :
Keuntungan : bersifat sentral, control management lebih terjamin
Kerugian : kalau node pusat (A) rusak, semua akan rusak.
Cat : setiap proses dimulai dari bawah.
Ring Network (LAN) :
Keuntungan : rusak satu, yang lain masih berjalan
Kerugian : Control management kurang terjamin karena bersifat desentralisasi
Star Network (LAN) :
Keuntungan : - control management lebih terjamin, karena bersifat sentral
- reliability rendah
Kerugian : kalau pusat rusak, yang lainnya rusak
Keuntungan dan Kerugian Database Terdistribusi
a. Keuntungan-keuntungan dari database terdistribusi
1. Pengawasan distribusi dan pengambilan data
Jika sejumlah site yang berbeda dihubungkan satu sama lain, lalu seorang pemakai
yang berada pada satu site dapat mengakses data yang tersedia pada site lain.
Sebagai contoh : sistem distribusi pada sebuah bank memungkinkan seorang
pemakai pada salah satu cabang dapat mengakses data cabang lain.
2. Reliability dan availability
Sistem Basis Data
Distributed Database Hal 3 dari 9
Sistem distribusi dapat terus menerus berfungsi dalam menghadapi kegagalan dari
site individu atau mata rantai komunikasi antar site.
Misal : jika site-site gagal dalam sebuah sistem distribusi, site-site lainnya dapat
melanjutkan operasi jika data telah direplikasi pada beberapa site
3. Kecepatan pemrosesan query
Jika sebuah query melibatkan data pada beberapa site, memungkinkan membagi
query ke dalam sub query yang dapat dieksekusi dalam bentuk paralel oleh
beberapa site. Perhitungan secara paralel mempercepat pemrosesan dari seorang
pemakai query
4. Otonomi lokal
Pendistribusian sistem mengizinkan sekelompok individu dalam sebuah
perusahaan untuk melatih pengawasan lokal melalui data mereka sendiri. Dengan
kemampuan ini dapat mengurangi ketergantungan pada pusat pemrosesan.
5. Efisien dan fleksibel
Data dalam sistem distribusi dapat disimpan dekat dengan titik di mana data
tersebut dipergunakan. Data dapat secara dinamik bergerak atau disalin, atau
salinannya dapat dihapus.
b. Kerugian-kerugian dari database terdistribusi
1. Harga software yamg mahal
Hal ini disebabkan sangat sulit untuk membuat sistem database distribusi
2. Kemungkinan kesalahan lebih besar
Site-site yang termasuk dalam sistem distribusi beroperasi secara paralel sehingga
menjadi lebih sulit untuk menjamin kebenaran dari algoritma. Adanya kesalahan
mungkin tak dapat diketahui
3. Biaya pemrosesan tinggi
Perubahan pesan-pesan dan penambahan perhitungan dibutuhkan untuk
mencapai koordinasi antar site.
Dalam memilih sebuah disain untuk sistem database, perancang harus
mengimbangi keuntungan dan kerugian dari database terdistribusi.
Fragmentasi Data
Fragmentasi : relasi dipartisikan ke dalam beberapa bagian, setiap bagian disimpan
pada lokasi yang berbeda.
Sistem Basis Data
Distributed Database Hal 4 dari 9
Ada beberapa hal yang terlibat dalam penyimpanan relasi pada database terdistribusi di
antaranya fragmentasi data. Fragmentasi data memisahkan relasi ke dalam beberapa
fragment. Tiap-tiap fragment disimpan pada site yang berbeda.
Pemisahan relasi global ke dalam fragment-fragment dapat disusun dengan
menggunakan tiga jenis yang berbeda dari fragmentasi yaitu : fragmentasi horizontal,
fragmentasi vertikal, dan fragmentasi campuran.
Dalam seluruh jenis fragmentasi, sebuah fragment dapat didefinisikan dengan sebuah
ekspresi dalam sebuah bahasa relasional (dalam hal ini digunakan aljabar relasional)
yang mengambil relasi global sebagai operan dan memproduksi fragment sebagai hasil.
Beberapa peraturan yang harus diikuti ketika mendefinisikan fragment :
Kondisi lengkap.
Seluruh data dari relasi global harus dipetakan ke dalam fragment. Fragmentasi tidak
akan terjadi jika sebuah data item yang dimiliki oleh relasi global, tidak dimiliki oleh
beberapa fragment.
Kondisi penyusunan kembali.
Harus selalu mungkin untuk menyusun kembali tiap-tiap relasi global dari fragmentfragmentnya.
Hanya fragment-fragment yang disimpan dalam database terdistribusi
yang dapat membangun relasi global kembali melalui operasi penyusunan kembali jika
diperlukan.
Kondisi disjoin.
Kondisi ini sangat berguna terutama untuk fragmentasi horizontal, sementara untuk
fragmentasi vertikal kondisi ini kadang-kadang dilanggar.
Jenis-Jenis Fragmentasi Data
1. Fragmentasi Horizontal.
Fragmentasi horizontal berisikan tuple-tuple yang dipartisi dari sebuah relasi global
ke dalam sejumlah subset r1, r2, ... , rn. Tiap-tiap subset berisikan sejumlah tuple
dari r. Tiap-tiap tuple dari r harus memiliki satu fragment, sehingga relasi yang asli
dapat disusun kembali. Sebuah fragment dalam fragmentasi horizontal dapat
didefinisikan sebagai sebuah seleksi pada relasi global r. Oleh karena itu sebuah
predikat Pi digunakan untuk menyusun fragment ri seperti berikut :
ri = σi(r)
Penyusunan kembali dari relasi r dapat diperoleh dengan mengambil gabungan dari
seluruh fragment :
Sistem Basis Data
Distributed Database Hal 5 dari 9
n
r = U ri
i=1
2. Fragmentasi Vertikal
Dalam fragmentasi vertikal, tiap-tiap fragment ri didefinisikan sebagai :
ri = πi(r)
Relasi global dapat disusun kembali dari fragment-fragment dengan mengambil
natural join: r = r1 r2 r ..... rn
Fragmentasi vertikal disempurnakan dengan menambahkan sebuah atribut yang
disebut tuple identifier (tuple-id) ke dalam skema r. Sebuah tuple-id adalah sebuah
alamat logik dari sebuah tuple. Tiap-tiap tuple dalam r harus memiliki sebuah alamat
yang unik, atribut tuple-id sebagai kunci untuk penambahan skema.
Kunci tersebut akan direplikasikan ke dalam seluruh fragment dengan tujuan untuk
penyusunan kembali relasi global. Kita dapat melihat bahwa dalam fragmentasi
vertikal motivasi utama untuk memiliki fragment-fragment yang disjoin adalah tidak
sepenting dalam fragmentasi horizontal.
3. Fragmentasi Campuran
Relasi r (global) dibagi-bagi ke dalam sejumlah relasi fragment r1, r2, r3, ..., rn.
Tiap-tiap fragment diperoleh sebagai hasil baik dari skema fragmentasi horizontal
ataupun skema fragmentasi vertikal pada relasi r, atau dari sebuah fragment r yang
diperoleh sebelumnya.
Cara yang sederhana untuk membangun fragmentasi campuran sebagai berikut :
1. Menggunakan fragmentasi horizontal pada fragmentasi vertikal.
2. Menggunakan fragmentasi vertikal pada fragmentasi horizontal.
Contoh : Relasi Deposit
Deposit-Scheme(branch_name, account_number, customer_name, balance)
Sistem Basis Data
Distributed Database Hal 6 dari 9
Branch-name accountnumber
Customername
balance
Hillside 305 Lowman 500
Hillside 226 Camp 336
Valleyview 177 Camp 205
Valleyview 402 Khan 10000
Hillside 115 Khan 62
Valleyview 408 Khan 1123
Valleyview 639 Green 750
Pemecahan relasi global dengan menggunakan :
1. Fragmentasi Horizontal :
Untuk menggambarkan ini, relasi r adalah relasi deposit dari tabel di atas. Relasi ini
dapat dibagi ke dalam n fragment yang berbeda, di mana berisikan tuple-tuple dari
rekening yang dimiliki oleh sebuah cabang utama. Jika bank hanya memiliki dua
cabang, Hillside dan Valleyview maka ada dua fragment yang berbeda.
Kemudian fragmentasi horizontal dapat diuraikan sbb :
Deposit1 = σ branch-name = "Hillside" (Deposit)
Deposit2 = σ branch-name = "Valleyview" (Deposit)
Fragment deposit1 disimpan pada site Hiilside dan fragment deposit2 disimpan pada
site Valleyview.
Dua fragment ini digambarkan sbb:
branch-name account-number customer-name balance
Hillside 305 Lowman 500
Hillside 226 Camp 336
Hillside 115 Khan 62
(a) deposit1
branch-name account-number customer-name balance
Valleyview 177 Camp 205
Valleyview 402 Khan 10000
Valleyview 408 Khan 1123
Valleyview 639 Green 750
(b) deposit2
Fragmentasi di atas memenuhi kondisi lengkap jika "Hillside" dan "Valleyview" adalah
harga-harga yang mungkin dari atribut branch-name. Kondisi penyusunan kembali
Sistem Basis Data
Distributed Database Hal 7 dari 9
sangat mudah untuk diperiksa karena selalu mungkin untuk disusun kembali relasi global
deposit melalui operasi berikut :
Deposit = deposit1 U deposit2
Begitu juga untuk kondisi disjoin. Kita akan memakai predikat yang digunakan dalam
operasi seleksi yang mendefinisikan sebuah fragment kualifikasinya :
q1 : branch-name = "Hillside"
q2 : branch-name = "Valleyview"
2. Fragmentasi Vertikal :
Pada fragmentasi vertikal, relasi deposit memerlukan penambahan tuple-id
Berikut ini adalah relasi deposit dengan penambahan tuple-id :
branch-name accountnumber
customername
balance tuple-id
Hillside 305 Lowman 500 1
Hillside 226 Camp 336 2
Valleyview 177 Camp 205 3
Valleyview 402 Khan 10000 4
Hillside 115 Khan 62 5
Valleyview 408 Khan 1123 6
Valleyview 639 Green 750 7
Sebuah fragmentasi vertikal dari relasi ini dapat diuraikan sebagai berikut :
Deposit3 = π branch-name,customer-name,tuple-id (deposit)
Deposit4 = π account-number,balance,tuple-id (deposit)
branch-name customer-name tuple-id
Hillside Lowman 1
Hillside Camp 2
Valleyview Camp 3
Valleyview Khan 4
Hillside Khan 5
Valleyview Khan 6
Valleyview Green 7
(a) relasi deposit3
Sistem Basis Data
Distributed Database Hal 8 dari 9
account-number Balance tuple-id
305 500 1
226 336 2
177 205 3
402 10000 4
115 62 5
408 1123 6
639 750 7
(b) relasi deposit4
Untuk menyusun kembali relasi deposit yang asli dari fragment-fragment, kita dapat
menggunakan :
π Deposit-scheme(deposit3 deposit4)
Atribut join dari ekspresi di atas adalah tuple-id. Karena tuple-id menggambarkan
sebuah alamat, hal ini memungkinkan untuk memasangkan sebuah tuple dari
deposit3 yang berhubungan dengan tuple dari deposit4 dengan menggunakan
alamat yang diberikan oleh harga tuple-id.
3. Fragmentasi Campuran :
Misalkan relasi r adalah relasi deposit dari gambar 1 di atas. Relasi ini dibagi ke
dalam fragment deposit3 dan deposit4 seperti didefinisikan di atas. Selanjutnya kita
dapat membagi fragment deposit3 menjadi fragment deposit3a dan fragment
deposit3b dengan menggunakan skema fragmentasi horizontal ke dalam dua
fragment berikut :
Deposit3a = σ branch-name = "Hillside" (Deposit3)
Deposit3b = σ branch-name = "Valleyview" (Deposit3)
branch-name customer-name tuple-id
Hillside Lowman 1
Hillside Camp 2
Hillside Khan 5
(a)Relasi deposit3a
Sistem Basis Data
Distributed Database Hal 9 dari 9
branch-name customer-name tuple-id
Valleyview Camp 3
Valleyview Khan 4
Valleyview Khan 6
Valleyview Green 7
(b) relasi deposit3b
Replikasi :
Sistem memelihara beberapa salinan (copy) dari relasi. Setiap salinan disimpan pada beberapa lokasi yang berbeda
Replikasi & Fragmentasi
Rancangan ini merupakan kombinasi dari replikasi dan fragmentasi. Relasi dipartisikan ke dalam beberapa bagian. Sistem memelihara salinan yang identik untuk setiap bagian.
Sistem Basis Data
EER Hal 1 dari 4
ENHANCED ENTITY RELATIONSHIP (EER) DIAGRAM
Model EER berisikan seluruh konsep model ER ditambah konsep-konsep dari subclass
dan superclass, dan konsep-konsep yang berhubungan yaitu specialization dan
generalization. Konsep lainnya yang termasuk dalam model EER yaitu Category.
Subclass dan Superclass
Dalam beberapa hal, suatu jenis entitas akan mempunyai banyak tambahan subgroup
entitas yang sangat berarti dan perlu digambarkan secara nyata karena entitas-entitas
tsb penting sekali artinya bagi aplikasi database.
Contoh :
Entitas-entitas yang merupakan anggota dari entitas EMPLOYEE dikelompokkan
menjadi secretary, engineer, manager, technician, salaried_employee,
hourly_employee, dll. Himpunan entitas pada tiap-tiap group adalah subset entitas dari
entitas EMPLOYEE, yang berarti bahwa setiap entitas yang merupakan anggota dari
salah satu subgroup-subgroup ini adalah suatu employee juga. Tiap-tiap subgroup tadi
adalah suatu subclass dari entity EMPLOYEE, dan entity EMPLOYEE disebut
superclass untuk tiap-tiap subclass tsb.
Hubungan antara superclass dan beberapa subclass-nya disebut superclass/subclass
relationship.
Contoh :
EMPLOYEE/SECRETARY dan EMPLOYEE/TECHNICIAN adalah dua
superclass/subclass relationships.
Sebuah entitas tidak dapat berada dalam database dengan menjadi anggota suatu
subclass saja, tetapi entitas tsb juga harus merupakan anggota dari superclass.
Specialization
Specialization adalah proses pendefinisian suatu himpunan subclass dari suatu entitas;
entitas ini disebut superclass dari specialization. Himpunan subclass tsb membentuk
specialization yang telah didefinisikan berdasarkan beberapa sifat/karakteristik yang
istimewa dari suatu entitas pada suatu superclass yang menggambarkan perbedaan
yang jelas antara entitas tsb.
Contoh :
himpunan subclass {SECRETARY, ENGINEER, TECHNICIAN} adalah specialization
dari superclass entitas EMPLOYEE dimana perbedaan antara entitas EMPLOYEE
berdasarkan pada jenis pekerjaan dari tiap-tiap entitas.
Kita dapat mempunyai beberapa specialization dari jenis entitas yang sama
berdasarkan perbedaan karakteristik yang istimewa.
Sistem Basis Data
EER Hal 2 dari 4
Contoh :
specialization dari entitas EMPLOYEE dapat menghasilkan himpunan subclass
{SALARIED_EMPLOYEE, HOURLY_EMPLOYEE}, pada specialization ini perbedaan
entitas EMPLOYEE berdasarkan metode pembayarannya.
Generalization
Generalization adalah proses pendefinisian entitas-entitas yang disatukan menjadi
entitas superclass tunggal dari entitas aslinya yang merupakan subclass istimewa.
Proses generalization dapat dipandang sebagai kebalikan dari proses specialization.
Contoh : Gambar 1.
kita dapat memandang {CAR, TRUCK} sebagai specialization dari VEHICLE,
sebaliknya kita memandang VEHICLE sebagai suatu generalization dari CAR dan
TRUCK. Dengan cara yang sama, kita dapat memandang EMPLOYEE sebagai
generalization dari SECRETARY, TECHNICIAN, dan ENGINEER.
No of passangers
Max speed
Vehicleid
Price
License Plate No
CAR
Price
No Of Axles
Tonnage
TRUCK
Vehicleid
License Plate No
VEHICLE
Price
Vehicleid License Plate No
d
CAR TRUCK
No Of Axles
Tonnage
No of passangers
Max speed
Gambar 1. Generalize Superclass VEHICLE
Sistem Basis Data
EER Hal 3 dari 4
Categorization
Category adalah kebutuhan yang timbul untuk model suatu relationship
superclass/subclass tunggal dengan lebih dari satu superclass dimana superclassuperclass
tsb menggambarkan jenis entity yang berbeda.
Contoh : Gambar 2.
Terdapat 3 jenis entitas yaitu : PERSON, BANK, dan COMPANY. Dalam suatu
database REGISTERED_VEHICLE, pemilik kendaraan (OWNER) bisa saja perorangan,
bank, atau perusahaan. Kita perlu membuat suatu class yang terdiri dari 3 jenis entitas
untuk memainkan perannya sebagai pemilik kendaraan. Maka dibuat suatu category
OWNER yaitu sebuah subclass dari gabungan (UNION) 3 class yaitu COMPANY,
BANK, dan PERSON untuk kepentingan ini.
BName BAddress
BANK
SSN SName Address
Driver License No
PERSON COMPANY
CName CAddress
U
OWNER
OWNS
Lien or Regular
Purchase Date
License Plate No
REGISTERED_VEHICLE
U
Cmodel
Cmake
Cstyle
CAR
Vehicleid
TMake
TYear
TYear
TModel
Tonnage
TRUCK Vehicleid
Gambar 2. Category REGISTERED_VEHICLE
Sistem Basis Data
EER Hal 4 dari 4
Pada gambar di atas, terdapat 2 category yaitu OWNER yang merupakan sebuah
subclass dari gabungan PERSON, BANK, dan COMPANY, yang lainnya yaitu
REGISTERED_VEHICLE yang merupakan subclass dari gabungan CAR dan TRUCK.
Sebuah category dapat mempunyai 2 atau lebih superclass yang menggambarkan jenisjenis
entitas yang berbeda, sebaliknya relationship superclass/subclass lainnya selalu
memiliki superclass tunggal.
Suatu category adalah subset dari gabungan superclass-nya. Oleh sebab itu suatu
entitas yang merupakan anggota OWNER harus berisikan sedikitnya 1 superclass,
tetapi tidak harus menjadi anggota dari seluruh superclass. Hal ini menggambarkan
batasan bahwa seorang OWNER mungkin saja suatu COMPANY, sebuah BANK, atau
perorangan (PERSON).
Perbedaan antara dua gambar di atas (generalize superclass VEHICLE dengan
category REGISTERED_VEHICLE) :
Pada generalize superclass VEHICLE :
- Setiap mobil dan truk adalah vehicle
- Jika dipisahkan, tidak dapat dihindari bahwa akan terdapat jenis entitas lain seperti
entitas BICYCLE
Pada category REGISTERES_VEHICLE
- Terdiri dari beberapa mobil dan beberapa truk, tetapi tidak seluruh mobil dan truk
yang diregistrasikan
- Category registered_vehicle menyatakan hanya mobil dan truk saja, dan bukan
jenis entitas lain yang dapat menjadi anggota REGISTERED_VEHICLE
Sistem Basis Data
OOD Hal 1 dari 8
OBJECT ORIENTED DATABASE
Advanced Database Applications
Computer-Aided Design (CAD)
Database CAD menyimpan data yang berhubungan dengan rancangan mekanik dan
elektrik, sebagai contoh : gedung, pesawat, dan chips IC.
Computer-Aided Manufacturing (CAM)
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 kontinyu (seperti sintesa kimia)
Computer-Aided Software Engineering (CASE)
Database CASE menyimpan data yang berhubungan dengan langkah-langkah dari
siklus pengembangan software yaitu : planning, requirements collection analysis,
design, implementation, test, maintenance and documentation.
Office Automation (OA)
Database OA menyimpan data yang berhubungan dengan pengontrolan informasi
komputer dalam bidang bisnis, termasuk e-mail, dokumen-dokumen, invoice, dsb. 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.
Computer-Aided Publishing (CAP)
Database CAP menyimpan dokumen yang kompleks. Sama seperti otomatisasi kantor,
applikasi CAP telah diperluas untuk menangani dokumen-dokumen multimedia yang
berisikan teks, audio, gambar, video data, dan animasi.
Keterbatasan Relational DBMS
Representation of “Real World” entities
Proses normalisasi pada umumnya akan membuat relasi yang tidak berhubungan
dengan entitas pada “dunia nyata”. Fragmentasi dari entitas “dunia nyata” ke dalam
beberapa relasi, dengan sebuah representasi fisik akan menggambarkan struktur yang
tidak efisien karena akan melakukan banyak join selama proses query.
Semantic overloading
Model relasional hanya mempunyai satu konstruksi untuk menggambarkan data dan
keterhubungannya. Sebagai contoh : untuk menggambarkan keterhubungan M : N dari
entitas A dan B, kita membuat 3 relasi, satu untuk menggambarkan masing-masing
entitas A dan B, dan satu menggambarkan keterhubungannya (relationship). Tidak ada
Sistem Basis Data
OOD Hal 2 dari 8
mekanisme untuk membedakan antara entitas dan relationship, atau untuk
membedakan antara jenis relationship yang berbeda yang terdapat di antara entitas.
Sebagai contoh : relationship 1 : M dapat berarti memiliki, mempunyai, mengatur, dsb.
Jika perbedaan seperti itu dapat dibuat, maka mungkin dapat membangun semantik
pada operasi-operasi tersebut. Oleh karena itu model relasional merupakan
semantically oevrloaded.
Integrity constraints and enterprise constraints
Integrity berhubungan dengan validitas dan kekonsistenan dari data yang disimpan.
Integrity biasanya diekspresikan dalam istilah-istilah yang berhubungan dengan
constraint, dimana aturan-aturan kekonsistenan pada database tidak boleh dilanggar.
Sangat disayangkan bahwa banyak sistem komersial tidak mendukung batasan-batasan
itu, dan sistem tersebut lebih mengutamakan membuat batasan-batasannya di dalam
aplikasi. Tentu saja hal ini sangat berbahaya dan dapat menimbulkan duplikasi data,
dan lebih buruk lagi data berada dalam keadaan tidak konsisten. Lebih jauh lagi, tidak
ada dukungan untuk aturan-aturan enterprise dalam model relasional, yang artinya
aturan-aturan tersebut harus dibangun ke dalam DBMS atau aplikasi.
Homogeneous data
Model relasional mengasumsikan homogenitas horisontal dan vertikal. Homogenitas
horisontal berarti bahwa setiap tuple dari sebuah relasi harus disusun dari atribut-atribut
yang sejenis. Homogenitas vertikal berarti bahwa nilai di dalam kolom dari sebuah relasi
harus berasal dari domain yang sama (sejenis). Dan irisan (intersection) antara baris
dan kolom harus bernilai atomik. Struktur yang tetap seperti ini sangat terbatas untuk
beberapa objek “dunia nyata” yang mempunyai struktur kompleks. Sebagai contoh :
pesawat terbang.
Limited operations
Model relasional merupakan himpunan (set) yang sudah tetap, seperti operasi
himpunan (set) dan operasi tuple-oriented. Operasi-operasi ini disediakan oleh SQL.
Recursive Query
Recursive query merupakan proses query dari relationship yang berelasi dengan
dirinya sendiri (baik secara langsung atau tidak langsung). Sebagai contoh : terdapat
relasi sederhana dari relasi Staff yang menyimpan nomor staf dan manajer-nya.
Staff_No Manager_Staff_No
S5 S4
S4 S3
S3 S2
S2 S1
S1 Null
Bagaimana mencari para manajer yang secara langsung atau tidak langsung mengatur
(manage) anggota staf no S5 ?
Sistem Basis Data
OOD Hal 3 dari 8
Terdapat 2 tingkat hirarki :
SELECT manager_staff_no FROM staff WHERE staff_no = ‘S5’
UNION
SELECT manager_staff_no FROM staff WHERE staff_no =
(SELECT manager_staff_no FROM staff WHERE staff_no = ‘S5’);
Di dalam contoh ini, pendekatan ini berhasil karena kita mengetahui berapa tingkatan
dalam hirarki yang harus diproses. Tetapi jika untuk mendapatkan hasil yang lain seperti
“untuk setiap anggota staff, tampilkan seluruh manajer baik yang secara langsung
ataupun tidak langsung mengatur (manage) staf tersebut”, maka pendekatan seperti di
atas akan lebih sulit untuk diimplementasikan dengan menggunakan SQL. Untuk
mengatasi masalah ini, SQL dapat ditempelkan (embedded) pada bahasa
pemrograman tingkat tinggi, yang menyediakan konstruksi untuk fasilitas iterasi.
Sebagai tambahan, banyak sistem relasional yang menyediakan report writer dengan
konstruksi yang mirip.
Impedance mismatch
Perhitungan dengan menggunakan SQL kurang lengkap. Untuk mengatasi hal ini, SQL
standar menyediakan embedded SQL untuk membangun aplikasi database yang lebih
kompleks. Tetapi pendekatan ini menghasilkan sebuah “Impedance mismatch” karena
kita mencocokan paradigma pemrograman yang berbeda. SQL merupakan sebuah
bahasa yang menangani baris (record), sedangkan sebuah bahasa tingkat tinggi seperti
C merupakan bahasa prosedural yang dapat menangani hanya 1 baris pada suatu saat.
Kedua : SQL dan 3 GLs menggunakan model-model yang berbeda untuk
menggambarkan data. Sebagai contoh : SQL bisa berisikan jenis data date dan interval
yang tidak tersedia di dalam bahasa pemrograman tradisional. Oleh karena itu
merupakan hal yang sangat penting bagi program aplikasi untuk mengkonversi dua tipe
data tadi, sehingga menjadi tidak efisien. Lebih jauh lagi, karena kita menggunakan 2
tipe sistem yang berbeda, maka sangat tidak mungkin secara otomatis menguji aplikasi
secara keseluruhan.
Object Oriented Concepts
Abstaraction and Encapsulation
Abstraction :
proses identifikasi aspek-aspek yang perlu (essential) dari entitas dan mengabaikan
property yang tidak penting.
Encapsulation (information hiding) :
memisahkan aspek-aspek eksternal sebuah objek dari rincian internalnya (internal
details), yang tidak terlihat dari dunia luar. Dengan cara ini, internal detail sebuah objek
dapat dirubah tanpa mempengaruhi aplikasi yang menggunakan objek tersebut, begitu
juga dengan external detail. Dengan kata lain, encapsulation menyediakan data
independence.
Sistem Basis Data
OOD Hal 4 dari 8
Objects and Attributes
Object :
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.
Current state dari sebuah objek digambarkan dengan satu atau lebih attribute (instance
variables). Sebagai contoh : kantor cabang di 163 Main Street dapat memiliki atribut
yang terlihat pada tabel berikut :
Tabel 1. Object attributes for branch instance
BNO B3
STREET 163 Main St
AREA Partick
CITY Glasgow
POST_CODE G11 9QX
TEL_NO 0141-339-2178
FAX_NO 0141-339-4439
SALES_STAFF Ann Beech; David Ford
MANAGER Susan Brand
Atribut dapat dikelompokkan menjadi atribut simpel dan atribut kompleks. Atribut simpel
dapat berupa tipe primitif seperti integer, string, real, dsb. yang mengambil nilai literal.
Sebagai contoh : Bno pada tabel 1 merupakan atribut simpel dengan nilai litaral ‘B3’.
Sedangkan atribut kompleks dapat berisikan kumpulan (koleksi) dan / atau referensi.
Sebagai contoh : atribut Sales_staff merupakan kumpulan dari objek staff.
Atribut referensi (reference attribute) menggambarkan keterhubungan antar objek.
Atribut referensi berisikan sebuah nilai atau kumpulan nilai yang merupakan objeknya
sendiri. Sebagai contoh : Sales_staff lebih tepatnya merupakan kumpulan referensi
yang menunjuk kepada objek staf. Atribut referensi secara konseptual dama seperti
foreign key di dalam model data relasional atau seperti sebuah pointer dalam bahasa
pemrograman.
Atribut secara umum biasanya menggunakan notasi ‘dot’. Sebagai contoh : atribut street
dari objek branch : branch_object.street
Object Identity
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.
Sistem Basis Data
OOD Hal 5 dari 8
Methods and Message
Methods
Dalam teknologi objek, function biasanya disebut methods. Contoh : gambar 1,
memberikan suatu gambaran konseptual sebuah objek dengan atribut didalamnya, dan
methods di bagian luar. Methods mendefinisikan tingkah laku dari sebuah objek.
Methods dapat digunakan untuk merubah kondisi objek dengan memodifikasi nilai
atribut-atributnya, atau meng-query nilai atribut yang diseleksi. Sebagai contoh kita
dapat menggunakan methods untuk menambah property baru untuk disewa pada
sebuah cabang, merubah gaji pegawai atau mencetak detail pegawai.
Gambar 1. Object showing attributes & methods
Sebuah method berisikan nama dan body yang membentuk tingkah laku yang
berhubungan dengan nama method. Pada bahasa berorientasi objek, body berisikan
kode blok yang melaksanakan aksi. Sebagai contoh berikut ini menggambarkan method
untuk merubah gaji pegawai. Nama method-nya adalah update_salary, mempunyai
parameter inputnya increment yang menambahkan instance variable salary untuk
menghasilkan gaji baru
Method void update_salary(float increment)
{
salary = salary + increment
}
Message
Message mempunyai arti komunikasi antara objek. Sebuah message merupakan
permintaan sederhana dari suatu objek (pengirim) ke objek lain (penerima) dan
menanyakan objek tsb untuk mengeksekusi salah satu method-nya. Pengirim dan
penerima bisa pada objek yang sama. Notasi ‘dot’ biasanya digunakan untuk
mengakses sebuah method. Contoh : untuk mengeksekusi method update_salary dari
objek staff dan masukkan method dengan pertambahan nilai 1000.
staff_object.update_salary(1000)
Method 1 Method 2
Method 4 Method 3
Attrbutes
Sistem Basis Data
OOD Hal 6 dari 8
Pada bahasa pemrograman tradisional, sebuah message ditulis seperti function call :
update_salary(staff_object, 1000)
Class
Class merupakan pendefinisian himpunan objek yang sejenis. Objek yang mempunyai
atribut yang sama dan meresponse message yang sama dapat dikelompokkan bersama
membentuk sebuah class. Atribut dan method yang berhubungan cukup sekali saja
didefinisikan untuk class, daripada didefinisikan terpisah untuk setiap objek. 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. Contoh : gambar 2.
CLASS DEFINITION CLASS INSTANCES
Gambar 2. Class instances share attributes and methods
Bno=B5
Street = 22 Deer St
City = Sidcup
Area = London
……………..
Bno=B7
Street = 16 Argyll St
City = Dyce
Area = Aberdeen
………………
Bno=B3
Street = 163 Main
St
City = Partick
Area = Glasgow
BRANCH
Attributes
Bno
Street
City
Area
………
Methods
Print
Update_tel_no
Number_of_staff
……..
Sistem Basis Data
OOD Hal 7 dari 8
Subclass, Superclass, and 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 paradigma
object-oriented, inheritance meliputi state dan behaviour. Relationship antara subclass
dan superclass kadang-kadang dituliskan seperti A KIND OF (AKO), sebagai contoh : a
Manager is AKO staff. Relationship antara sebuah instance dan class-nya dituliskan ISA
; contoh : Susan Brand IS-A Manager.
Ada beberapa bentuk inheritance :
1. Single inheritance
Subclass merupakan turunan dari satu superclass.
Contoh : subclass Manager dan Sales_Staff merupakan turunan property dari
superclass Staff.
Gambar 3. Single inheritance
2. Multiple inheritance
Subclass Sales_Manager merupakan turunan dari superclass Manager dan
Sales_Staff.
Gambar 4. Multiple inheritance
Person
Staff
Manager Sales_staff
Manager Sales_staff
Sales_Manager
Sistem Basis Data
OOD Hal 8 dari 8
3. Repeated inheritance
Kasus spesial dari multiple inheritance, dimana sebuah superclass merupakan
turunan dari sebuah superclass biasa. Melanjutkan contoh multiple inheritance,
class Manager dan Sales_staff bisa saja merupakan turunan dari superclass biasa
yaitu superclass Staff. Dalam kasus ini, mekanisme inheritance harus meyakinkan
bahwa class Sales_manager tidak diturunkan sebanyak dua kali dari superclass
Staff.
Gambar 5. Repeated inheritance
4. Selective inheritance
Mengizinkan subclass menurunkan sejumlah property dari superclass.
Keistimewaan ini secara fungsional sama seperti mekanisme view, dengan
membatasi akses ke beberapa detail tapi tidak seluruhnya.
Manager Sales_staff
Sales_Manager
Staff
Sistem Basis Data
Perkembangan Database Saat Ini Hal 1 dari 5
PERKEMBANGAN BASIS DATA SAAT INI
Sejak tahun 1960-an penggunaan basis data sudah digunakan untuk bidang
komersial, dimana pemrosesan file-nya masih berbasis manajemen file tradisional.
Perkembangan komputer yang semakin pesat diikuti dengan perkembangan
perangkat lunak untuk aplikasi bisnis, sejak tahun 1970-an sampai awal tahun 1980
manajemen berbasis file tradisional berkembang menjadi manajemen basis data.
Di dalam manajemen basis data dikenal berbagai model data yang dapat
digunakan untuk mendeskripsikan sebuah data dalam merancang suatu basis data.
Manajemen ini memungkinkan banyak user untuk mengakses data secara
bersamaan sehingga fasilitas yang dimiliki oleh manajemen sudah semakin banyak
yaitu fasilitas pemanipulasian data, kontrol konkurensi data, recovery data,
keamanan data dan didukung dengan fasilitas komunikasi data karena manajemen
ini sudah terhubung dengan suatu jaringan .
Perkembangan dunia usaha semakin meningkat ditunjang dengan perkembangan
komunikasi yang mempermudah organisasi atau perusahaan untuk mengakses data,
sehingga mengubah manajemen basis data menjadi manajemen basis data tingkat
lanjut didukung dengan fasilitas data warehousing dan fasilitas basis data berbasis
web sebagai salah satu strategi organisasi dalam meningkatkan kinerja dan
keuntungan organisasi.
Data Collection and Database Creation
(1960s and earlier)
Database Management Systems (1970s – early 1980s)
- Hierarchical and Network Database Systems
- Relational Database Systems
- Data modeling tools : entity relationship model, etc
- Indexing and data organization techniques : b+ tree, hashing, etc
- Query language : SQL, etc
- User interface, forms, and reports
- Query processing and query optimizaztion
Advance Database Systems
(mid-1980s-present)
- Advance data models : extended
relational, object oriented, object
relational, deductive
- Application oriented : spatial,
temporal, multimedia, active,
scientific, knowledge bases
Web-Based Database Systems
(1990s – present)
- XML-based database systems
- Web mining
Data Warehouse and Data Mining (late 1980s – present)
- Data warehouse and OLAP technology
- Data mining and knowledge discovery
New Generation of Integrated Information Systems (2000 - …)
Gambar 1. Evolution of Database Technologi
Sistem Basis Data
Perkembangan Database Saat Ini Hal 2 dari 5
A. ORDBMS
A.1. ORDBMS (Object Relational Database Management System)
Penggunaan teknologi RDBMS pada awalnya sangat dominan, tetapi
dikarenakan fasilitas–fasilitas yang ada pada RDBMS tidak lagi sesuai
dengan aplikasi tingkat lanjut, maka RDBMS digantikan dengan
OODBMS. Pada OODBMS terdapat banyak sekali bentuk-bentuk object
oriented seperti metode encapsulation, inheritance, polymorphism, dll.
Model data relasional lanjutan tidak hanya ada satu , tetapi terdapat
berbagai macam model data, dimana karakteristik dan tingkat kebutuhan
data yang telah dibuat. Bagaimanapun semua model data yang akan
digunakan mengacu pada konsep objek dan mempunyai kemampuan
untuk menyimpan data di dalam database.
Berbagai macam terminologi yang digunakan untuk sistem model
relasional tingkat lanjut yaitu ERDBMS. Tapi sekarang ini untuk sistem
berbasis objek dapat digunakan OODBMS.
Inti dari kinerja RDBMS yaitu ada pada optimasi queri-nya dan juga
pengetahuan mengenai bagaimana mengeksekusi fungsi dari user-define
secara efisien, mengambil keuntungan dari pengindeksan pada struktur
yang baru, memetakan queri dengan cara baru, dan menavigasi antara
data menggunakan referensi data.
Penggunaan OODBMS untuk suatu organisasi yang sangat besar dan
universal tidak lagi sesuai sehingga untuk mendukung kinerja dari
organisasi tersebut dibutuhkan suatu ORDBMS (Objeck Relational
Database Management System).
ORDBMS memiliki fasilitas untuk mendefinisikan data yang kompleks,
menspesialisasikan struktur indeks dibutuhkan untuk mengefisienkan
pengambilan data. ORDBMS digunakan untuk dua sampai tiga
dimensional data.
Sistem Basis Data
Perkembangan Database Saat Ini Hal 3 dari 5
A.2. Perbandingan antara OODBMS dan ORDBMS
Pemodelan Data
Model OODBMS ORDBMS
Identitas Objek ada Ada dengan tipe REF
(Refferences)
Pengkapsulan Ada, tapi tidak dapat
digunakan untuk queri
Ada dengan UDT (User
Defined Types)
Penurunan Ada Ada (dipisahkan antara
UDT dan Table)
Polymorphism Ada, sebagai object
oriented pada model bahasa
pemrograman
Ada
Objek kompleks Ada Ada, dengan UDT
Relasi Ada Sangat mendukung untuk
mendefinisikan batasan
referensial integritas
B. Data Warehousing
B.1. Konsep Data Warehousing
Konsep dasar dari data warehousing adalah informasi yang dikumpulkan
dalam suatu gudang penyimpanan dan merepresentasikan solusi untuk
pengaksesan data didalam sistem non relasional. Sehingga data
warehousing dapat disebut sebagai database yang berorientasi pada
subyek, terintegrasi, mempunyai Time Variant dan bersifat non volatile
untuk kumpulan data yang mendukung dalam pengambilan keputusan.
• Berorientasi subyek artinya mengatur semua subyek utama pada
suatu organsisasi yang memfokuskan pada basis datanya bukan pada
aplikasi yang digunakan untuk pengambilan keputusan.
• Terintegrasi artinya pemakaian data bersama-sama sering
menyebabkan data tidak konsisten sehingga cara pandang user
terhadap data menjadi tidak sama. Agar terintegrasi pembentukan
sumber data harus standar dan konsisten.
• Time Variant, data yang ada pada gudang hanya valid dan akurat
pada titik waktu tertentu atau interval tertentu.
• Non-volatile, data tidak di-update secara real time tetapi selalu
diperbaharui dari sistem operasi pada database yang ada.
B.2. Keuntungan dari Data Warehousing
1. Hasil yang diperoleh dari investasi lebih tinggi
2. Kompetitif
3. Meningkatkan produktivitas perusahaan
Sistem Basis Data
Perkembangan Database Saat Ini Hal 4 dari 5
Jenis database yang tersimpan di dalam media penyimpanan data berdasarkan
penggunaan data :
• Database yang memiliki data sering di-update disebut data OLTP (Online
Transaction Processing). Data OLTP sering juga disebut data operasional,
mencerminkan sifat aplikasi database yang dinamik.
• Database yang memiliki data sering digunakan untuk query disebut DSS
(Decision Support System). Data DSS sering disebut data analitikal,
mencerminkan sifat aplikasi database yang relatif statik.
Data Operasional Data DSS
Berorientasi pada aplikasi : data
digunakan untuk proses bisnis. Sebagai
contoh : sistem perbankan dengan file
terpisah yang sudah dalam bentuk
normal untuk setiap proses bisnis.
Berorientasi pada subyek : data
digunakan untuk subyek bisnis, misal
informasi nasabah. Data dalam bentuk
denormalisasi dimana sebuah record
dapat meliputi keseluruhan proses bisnis.
Data terperinci Data ringkas
Struktur statik Struktur dinamik
Target operator komputer Target pengambil keputusan pada
seluruh tingkatan
Volatile (data dapat diubah) Non volatile (data tidak bisa diubah
setelah dimasukkan)
Kebutuhan data selalu diketahui sebelum
rancangan sistem
Kebutuhan data sama sekali tidak
diketahui sebelum rancangan sistem
Mengikuti siklus hidup pengembangan
klasik dimana iterasi rancangan
diselesaikan melalui normalisasi data,
dan memeriksa kebutuhan pemakai
Siklus hidup pengembangan sama sekali
berbeda, dimana pemakai menggunakan
aplikasi struktur data yang ada dan
membuat rancangan siap untuk dianalisis
Performansi penting karena jumlah
pemakai konkuren sangat besar dalam
mengakses data
Masalah performansi lebih longgar
Karena jumlah pemakai jauh lebih sedikit
dalam mengakses data sehingga tidak
ada masalah konkuren yang perlu
diperhatikan.
Penggerak-transaksi (Transaction-driven) Penggerak-analisis (Analysis-driven)
Data harus selalu tersedia untuk pemakai
akhir (back up dan recovery harus
terencana dengan baik)
Tidak mempunyai tingkat kebutuhan
ketersediaan data yang sama
(perencanaan back up dan recovery lebih
longgar)
Mencerminkan situasi mutakhir Mencerminkan nilai historis
C. Data Mart
Untuk mencapai suatu data warehouse kelihatannya merupakan suatu
tantangan besar dan memang demikian. Bahkan begitu besarnya sehingga
beberapa pakar menyarankan pendekatan yang lebih sederhana yaitu
menerapkan sesuatu yang dinamakan data mart. Data mart adalah database
yang berisikan data yang menjelaskan satu segmen operasi perusahaan.
Misalnya perusahaan mungkin memiliki data mart pemasaran, data mart smber
daya manusia, dsb.
Sistem Basis Data
Perkembangan Database Saat Ini Hal 5 dari 5
D. Data Mining
Istilah yang sering digunakan bersama-sama dengan data warehouse dan data
mart adalah data mining. Data mining adalah proses menemukan hubungan
dalam data yang tidak diketahui oleh pemakai. Data mining membantu pemakai
dengan mengungkapkan berbagai hubungan dan menyajikannya dengan suatu
cara yang dapat dimengerti sehingga dapat menjadi dasar pengambilan
keputusan. Data mining memungkinkan pemakai “menemukan pengetahuan”
pada database yang dalam sepengetahuannya tidak ada.
Contoh Data Mining :
Sebuah bank telah memutuskan untuk menawarkan reksadana kepada para
pelanggannya. Manajemen bank ingin mengarahkan materi promosi pada
segmen pelanggan yang memberikan potensi bisnis terbesar.
• Data Mining Berdasarkan Verifikasi. Pendekatan yang dilakukan oleh
para manajer adalah mengidentifikasi karakteristik yang mereka yakin
dimiliki oleh pasar sasaran. Misalkan para manajer ingin mengarah pada
pasangan muda, berpenghasilan ganda, dan kaya. Query dapat
dimasukkan ke dalam DBMS, dan catatan yang tepat dapat dipanggil.
Pendekatan yang seperti itu, yang mulai dengan hipotesis pemakai tentang
bagaimana data tersebut terstruktur, disebut data mining berdasarkan
verifikasi (verification-driven data mining). Kekurangan pendekatan ini
adalah proses pemanggilan kembali diarahkan sepenuhnya oleh pemakai.
Informasi yang dipilih tidak lebih baik daripada pandangan pemakai
terhadap data tersebut. Ini merupakan cara tradisional untuk bertanya pada
database.
• Data Mining Berdasarka Penemuan. Pendekatan lain memungkinkan
sistem data mining mengidentifikasi pelanggan terbaik untuk promosi
tersebut. Sistem itu menganalisis database, mencari kelompok-kelompok
dengan karakteristik umum. Dalam contoh bank, sistem data mining
mungkin mengidentifikasi bukan hanya kelompok pasangan muda lulusan
universitas tetapi juga pasangan yang sudah pensiun yang bergantung
pada jaminan sosial dan pensiun. Sistem data mining dapat melaksanakan
analisis selangkah lebih jauh, dengan merekomendasikan satu set promosi
yang diarahkan pada kedua kelompok tersebut.
• Kombinasi Data Mining Verifikasi dan Penemuan. Perkembangan data
mining di masa depan akan mengkombinasikan pendekatan hipotesis dan
penemuan. Perkembangan ini menggunakan penalaran yang sama yang
mendasari konsep Sistem Pendukung Keputusan (Decision Support
System – DSS). Konsep tersebut memungkinkan pemakai dan komputer
bekerja sama untuk memecahkan suatu masalah. Pemakai menerapkan
keahliannya dalam hal masalah, dan komputer melakukan analisis data
yang canggih untuk memilih data yang tepat dan menempatkannya dalam
format yang tepat untuk pengambilan keputusan.
Pengantar Basis Data
Pertemuan 1 :
PENGANTAR BASIS DATA
Tujuan Instruksional Khusus :
• Mahasiswa dapat menjelaskan perbedaan antara file tradisional dan file manajemen basis data
• Mahasiswa dapat menjelaskan konsep basis data dan istilah yang termasuk di dalamnya
• Mahasiswa dapat mejelaskan keuntungan dan kerugian apabila menggunakan file manajemen basis data
• Mahasiswa dapat menyebutkan para pengguna basis data
Deskripsi Singkat :
Pada materi ini akan dibahas mengenai perbedaan antara file tradisional yang sudah banyak ditinggalkan orang dan file manajemen basis data atau sering disebut sebagai basis data (database), dengan disertai contoh penggunaan dua jenis file tersebut. Pada materi ini juga akan dapat menjawab mengapa basis data telah banyak digunakan orang. Selain itu juga akan dibahas mengenai pengertian basis data termasuk konsep dari basis data, istilah-istilah yang biasanya digunakan dalam basis data, serta pengguna basis data
Bahan Bacaan :
1. Connoly, Thomas; Begg, Carolyn; Strachan, Anne; Database Systems : A Practical Approach to Design, Implementation and Management, 3rd edition, Addison Wesley, 2001.
2. Korth, H.; Database System Concept, 4th edition, Mc Graw Hill, New York, 1991.
Pengantar Basis Data 1
Pengantar Basis Data
PENGANTAR BASIS DATA
Basis data menyediakan fasilitas atau mempermudah dalam menghasilkan informasi yang digunakan oleh pemakai untuk mendukung pengambilan keputusan. Hal inilah yang menjadikan alasan dari penggunaan teknologi basis data pada saat sekarang (dunia bisnis). Berikut ini contoh penggunaan Aplikasi basis data dalam dunia bisnis :
• Bank : Pengelolaan data nasabah, akunting, semua transaksi perbankan
• Bandara : Pengelolaan data reservasi, penjadualan
• Universitas : Pengelolaan pendaftaran, alumni
• Penjualan : Pengelolaan data customer, produk, penjualan
• Pabrik : Pengelolaan data produksi, persediaan barang, pemesanan, agen
• Kepegawaian: Pengelolaan data karyawan, gaji, pajak
• Telekomunikasi : Pengelolaan data tagihan, jumlah pulsa
Sistem Pemrosesan File
file
mata kuliah
file mahasiswa
mahasiswa
Program Aplikasi Mahasiswa
mata kuliah
Program Aplikasi Mata Kuliah
Gambar 1. Sistem pemrosesan file untuk suatu Universitas
Keterangan :
File mahasiswa : Mhs (npm, nama, alamat, tgl_lahir)
MataKul (kd_mk, nama_mk, sks)
File MataKuliah : MataKul (kd_mk, nama, sks)
Sebelumnya, sistem yang digunakan untuk mengatasi semua permasalahan bisnis, menggunakan pengelolaan data secara tradisional dengan cara menyimpan record-record pada file-file yang terpisah, yang disebut juga sistem pemrosesan file. Dimana masing-masing file diperuntukkan hanya untuk satu program aplikasi saja.
Pengantar Basis Data 2
Pengantar Basis Data
Perhatikan gambar 1 mengenai suatu universitas yang mempunyai dua sistem yakni sistem yang memproses data mahasiswa dan sistem yang mengelola data mata kuliah.
Kelemahannya dari sistem pemrosesan file ini antara lain :
1. Timbulnya data rangkap (redundancy data) dan Ketidakkonsistensi data (Inconsistency data)
Karena file-file dan program aplikasi disusun oleh programmer yang berbeda, sejumlah informasi mungkin memiliki duplikasi dalam beberapa file. Sebagai contoh nama mata kuliah dan sks dari mahasiswa dapat muncul pada suatu file memiliki record-record mahasiswa dan juga pada suatu file yang terdiri dari record-record mata kuliah. Kerangkapan data seperti ini dapat menyebabkan pemborosan tempat penyimpanan dan biaya akases yang bertambah. Disamping itu dapat terjadi inkonsistensi data. Misalnya, apabila terjadi perubahan jumlah sks mata kuliah, sedangkan perubahan hanya diperbaiki pada file mata kuliah dan tidak diperbaiki pada file mahasiswa. Hal ini dapat mengakibatkan kesalahan dalam laporan nilai mahasiswa.
2. Kesukaran dalam Mengakses Data
Munculnya permintaan-permintaan baru yang tidak diantisipasikan sewaktu membuat program aplikasi, sehingga tidak memungkinkan untuk pengambilan data.
3. Data terisolir (Isolation Data)
Karena data tersebar dalam berbagai file, dan file-file mungkin dalam format –format yang berbeda, akan sulit menuliskan program aplikasi baru untuk mengambil data yang sesuai.
4. Masalah Pengamanan ( Security Problem )
Tidak semua pemakai diperbolehkan mengakses seluruh data. Bagian Mahasiswa hanya boleh mengakses file mahasiswa. Bagian Mata kuliah hanya boleh mengakses file mata kuliah, tidak boleh mengakses file mahasiswa. Tetapi sejak program-program aplikasi ditambahkan secara ad-hoc maka sulit melaksanakan pengamanan seperti yang diharapkan.
5. Data Dependence
Pengantar Basis Data 3
Pengantar Basis Data
Apabila terjadi perubahan atau kesalahan pada program aplikasi maka pemakai tidak dapat mengakses data.
Sistem Basis data
Seiring dengan berjalannya waktu, lambat laun sistem pemrosesan file mulai ditinggalkan karena masih bersifat manual, yang kemudian dikembangkanlah sistem pemrosesan dengan pendekatan basis data.
DBMS
mahasiswa
Program Aplikasi Mata kuliah
Basis data
Universitas
Program Aplikasi Mahasiswa
mata kuliah
Gambar 2. Sistem basis data untuk suatu universitas
Keterangan :
Mhs ( Npm, nama, alamat, tgl_lahir )
Mt_kul ( kd_mk, nama_mk,sks )
Perhatikan gambar 2 di atas. Pada sistem ini record-record data disimpan pada satu tempat yakni basis data dan diantara program aplikasi maupun pemakai terdapat DBMS (Database Management System).
Konsep Dasar Basis Data
Data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, mahasiswa, pembeli), barang, hewan, peristiwa, konsep, keadaan, dan sebagainya yang direkam dalam bentu angka, huruf, simbol, teks, gambar, bunyi atau kombinasinya.
Basis Data adalah sekumpulan data yang terintegrasi yang diorganisasikan untuk memenuhi kebutuhan para pemakai di dalam suatu organisasi.
Pengantar Basis Data 4
Pengantar Basis Data
DBMS (Database Management System) adalah Perangkat Lunak yang menangani semua pengaksesan ke basis data
Sistem Basis Data terdiri dari basis data dan DBMS.
Gambar 3. Sistem Basis Data
Istilah - Istilah Dasar Basis Data
Enterprise
Suatu bentuk organisasi seperti : bank, universitas, rumah sakit, pabrik, dsb.
Data yang disimpan dalam basis data merupakan data operasional dari suatu enterprise.
Contoh data operasional : data keuangan, data mahasiswa, data pasien
Entitas
Suatu obyek yang dapat dibedakan dari lainnya yang dapat diwujudkan dalam basis data.
Contoh Entitas dalam lingkungan bank terdiri dari : Nasabah, Simpanan, Hipotik
Contoh Entitas dalam lingkungan universitas terdiri dari : Mahasiswa, mata kuliah
Kumpulan dari entitas disebut Himpunan Entitas
Contoh : semua nasabah, semua mahasiswa
Atribut (Elemen Data)
Karakteristik dari suatu entitas.
Contoh : Entitas Mahasiswa atributnya terdiri dari Npm, Nama, Alamat, Tanggal lahir.
Nilai Data (Data Value)
Isi data / informasi yang tercakup dalam setiap elemen data.
Contoh Atribut Nama Mahasiswa dapat berisi Nilai Data : Diana, Sulaeman, Lina
Pengantar Basis Data 5
Pengantar Basis Data
Kunci Elemen Data (Key Data Element)
Tanda pengenal yang secara unik mengidentifikasikan entitas dari suatu kumpulan entitas.
Contoh Entitas Mahasiswa yang mempunyai atribut-atribut npm, nama, alamat, tanggal lahir menggunakan Kunci Elemen Data npm.
Record Data
Kumpulan Isi Elemen data yang saling berhubungan.
Contoh : kumpulan atribut npm, nama, alamat, tanggal lahir dari Entitas Mahasiswa berisikan : "10200123", "Sulaeman", "Jl. Sirsak 28 Jakarta", "8 Maret 1983".
Keuntungan Sistem Basis Data
1. Terkontrolnya kerangkapan data
Dalam basis data hanya mencantumkan satu kali saja field yang sama yang dapat dipakai oleh semua aplikasi yang memerlukannya.
2. Terpeliharanya keselarasan (kekonsistenan) data
Apabila ada perubahan data pada aplikasi yang berbeda maka secara otomatis perubahan itu berlaku untuk keseluruhan
3. Data dapat dipakai secara bersama (shared)
Data dapat dipakai secara bersama-sama oleh beberapa program aplikasi (secara batch maupun on-line) pada saat bersamaan.
4. Dapat diterapkan standarisasi
Dengan adanya pengontrolan yang terpusat maka DBA dapat menerapkan standarisasi data yang disimpan sehingga memudahkan pemakaian, pengiriman maupun pertukaran data.
5. Keamanan data terjamin
DBA dapat memberikan batasan-batasan pengaksesan data, misalnya dengan memberikan password dan pemberian hak akses bagi pemakai (misal : modify, delete, insert, retrieve)
6. Terpeliharanya integritas data
Jika kerangkapan data dikontrol dan kekonsistenan data dapat dijaga maka data menjadi akurat
Pengantar Basis Data 6
Pengantar Basis Data
7. Terpeliharanya keseimbangan (keselarasan) antara kebutuhan data yang berbeda dalam setiap aplikasi
Struktur basis data diatur sedemikian rupa sehingga dapat melayani pengaksesan data dengan cepat
8. Data independence (kemandirian data)
Dapat digunakan untuk bermacam-macam program aplikasi tanpa harus merubah format data yang sudah ada
Kelemahan Sistem Basis Data
- Memerlukan tenaga spesialis
- Kompleks
- Memerlukan tempat yang besar
- Mahal
Pengguna Basis Data
1. System Engineer
Tenaga ahli yang bertanggung jawab atas pemasangan Sistem Basis Data, dan juga mengadakan peningkatan dan melaporkan kesalahan dari sistem tersebut kepada pihak penjual
2. Database Administrator (DBA)
Tenaga ahli yang mempunyai tugas untuk mengontrol sistem basis data secara keseluruhan, meramalkan kebutuhan akan sistem basis data, merencanakannya dan mengaturnya.
Tugas DBA :
o Mengontrol DBMS dan software-software
o Memonitor siapa yang mengakses basis data
o Mengatur pemakaian basis data
o Memeriksa security, integrity, recovery dan concurency
Program Utilitas yang digunakan oleh DBA :
o Loading Routines
Membangun versi utama dari basis data
o Reorganization Routines
Mengatur / mengorganisasikan kembali basis data
Pengantar Basis Data 7
Pengantar Basis Data
o Journaling Routines
Mencatat semua operasi pemakaian basis data
o Recovery Routines
Menempatkan kembali data, sebelum terjadinya kerusakan
o Statistical Analysis Routines
Membantu memonitor kehandalan sistem
3. End User (Pemakai Akhir)
Ada beberapa jenis (tipe) pemakai terhadap suatu sistem basis data yang dapat dibedakan berdasarkan cara mereka berinteraksi terhadap sistem :
a. Programmer aplikasi
Pemakai yang berinteraksi dengan basis data melalui Data Manipulation Language (DML), yang disertakan (embedded) dalam program yang ditulis pada bahasa pemrograman induk (seperti C, pascal, cobol, dll)
b. Pemakai Mahir (Casual User)
Pemakai yang berinteraksi dengan sistem tanpa menulis modul program. Mereka menyatakan query (untuk akses data) dengan bahasa query yang telah disediakan oleh suatu DBMS
c. Pemakai Umum (End User / Naïve User)
Pemakai yang berinteraksi dengan sistem basis data melalui pemanggilan satu program aplikasi permanen (executable program) yang telah ditulis (disediakan) sebelumnya
d. Pemakai Khusus (Specialized/Sophisticated User)
Pemakai yang menulis aplikasi basis data non konvensional, tetapi untuk keperluan-keperluan khusus seperti aplikasi AI, Sistem Pakar, Pengolahan Citra, dll, yang bisa saja mengakses basis data dengan atau tanpa DBMS yang bersangkutan.
Pengantar Basis Data
Pertemuan 2 :
LINGKUNGAN BASIS DATA
Tujuan Instruksional Khusus :
• Mahasiswa dapat menjelaskan tingkatan arsitektur basis data
• Mahasiswa dapat menjelaskan konsep data independence, komponen DBMS, fungsi DBMS serta bahasa yang digunakan di dalam DBMS
• Mahasiswa dapat mejelaskan perbedaan model data berbasis objek, record, konseptual, dan fisik
• Mahasiswa dapat menjelaskan fungsi dan isi dari data dictionary
• Mahasiswa dapat menjelaskan perbedaan arsitektur DBMS multi user
Deskripsi Singkat :
Basis data merupakan sumber informasi yang dapat dipakai bersama. Setiap pemakai membutuhkan pandangan yang berbeda terhadap data yang disimpan di dalam basis data. Untuk memenuhi kebutuhan tersebut, terdapat arsitektur komersial DBMS yang didasarkan pada perluasan arsitektur yang disebut sebagai arsitektur ANSI-SPARC. Oleh karena itu, materi ini akan membahas tingkatan arsitektur basis data, karakteristik fungsional DBMS, bahasa yang digunakan di dalam DBMS serta model-model data. Materi-materi tersebut mengetengahkan latar belakang informasi yang penting pada DBMS
Bahan Bacaan :
1. Connoly, Thomas; Begg, Carolyn; Strachan, Anne; Database Systems : A Practical Approach to Design, Implementation and Management, 3rd edition, Addison Wesley, 2001.
2. Korth, H.; Database System Concept, 4th edition, Mc Graw Hill, New York, 1991.
Lingkungan Basis Data 1
Pengantar Basis Data
LINGKUNGAN BASIS DATA
Tujuan utama dari sistem basis data adalah menyediakan pemakai melalui suatu pandangan abstrak mengenai data, dengan menyembunyikan detail dari bagaimana data disimpan dan dimanipulasikan. Oleh karena itu, titik awal untuk perancangan sebuah basis data haruslah abstrak dan deskripsi umum dari kebutuhan-kebutuhan informasi suatu organisasi harus digambarkan di dalam basis data.
Lebih jauh lagi, jika sebuah basis data merupakan suatu sumber yang bisa digunakan bersama maka setiap pemakai membutuhkan pandangan yang berbeda-beda terhadap data di dalam basis data. Untuk memenuhi kebutuhan ini, arsitektur komersial basis data yang banyak digunakan telah tersedia saat ini dan telah mengalami perluasan yaitu arsitektur ANSI-SPARC.
Materi ini menyediakan latar belakan informasi yang penting pada basis data, diantaranya tiga tingkatan arsitektur ANSI-SPARC, pengenalan model data, fungsi yang disediakan oleh DBMS multi user.
Tiga Tingkatan Arsitektur Basis data ANSI-SPARC
Ada 3 tingkat dalam arsitektur basis data yang bertujuan membedakan cara pandang pemakai terhadap basis data dan cara pembuatan basis data secara fisik.
3 tingkatan arsitektur basis data :
1. Tingkat Eksternal (External Level)
Tingkat eksternal merupakan cara pandang pemakai terhadap basis data. Pada tingkat ini menggambarkan bagian basis data yang relevan bagi seorang pemakai tertentu. Tingkat eksternal terdiri dari sejumlah cara pandang yang berbeda dari sebuah basis data. Masing-masing pemakai merepresentasikan dalam bentuk yang sudah dikenalnya. Cara pandang secara eksternal hanya terbatas pada entitas, atribut dan hubungan antar entitas (relationship) yang diperlukan saja.
2. Tingkat Konseptual (Conseptual Level)
Lingkungan Basis Data 2
Pengantar Basis Data
Tingkat konseptual merupakan kumpulan cara pandang terhadap basis data. Pada tingkat ini menggambarkan data yang disimpan dalam basis data dan hubungan antara datanya.
Hal-hal yang digambarkan dalam tingkat konseptual adalah :
- semua entitas beserta atribut dan hubungannya
- batasan data
- informasi semantik tentang data
- keamanan dan integritas informasi
Semua cara pandang pada tingkat eksternal berupa data yang dibutuhkan oleh pemakai harus sudah tercakup di dalam tingkat konseptual atau dapat diturunkan dari data yang ada. Deskripsi data dari entitas pada tingkat ini hanya terdiri dari jenis data dan besarnya atribut tanpa memperhatikan besarnya penyimpanan dalam ukuran byte.
3. Tingkat Internal (Internal Level)
Tingkat internal merupakan perwujudan basis data dalam komputer. Pada tingkat ini menggambarkan bagaimana basis data disimpan secara fisik di dalam peralatan storage yang berkaitan erat dengan tempat penyimpanan / physical storage.
Tingkat internal memperhatikan hal-hal berikut ini :
- alokasi ruang penyimpanan data dan indeks
- deskripsi record untuk penyimpanan (dengan ukuran penyimpanan untuk data elemen
- penempatan record
- pemampatan data dan teknik encryption
Lingkungan Basis Data 3
Pengantar Basis Data
External LevelConseptual LevelInternal Level
Gambar 1. Tingkatan Arsitektur Basis data
Contoh : sebuah file Pegawai yang akan didefinisikan
Tingkat Eksternal (External Level) :
Cobol
01 PEG_REC.
02 PEG_NO PIC X(6).
02 DEPT_NO PIC X(4).
02 GAJI PIC 9(6).
Tingkat Konseptual (Conceptual Level) :
PEGAWAI
NOMOR_PEGAWAI CHARACTER 6
NOMOR_DEPT CHARACTER 4
GAJI NUMERIC 6
Tingkat Internal (Internal Level) :
FILE_PEGAWAI LENGTH = 22
PREFIX TYPE = BYTE (6), OFFSET = 0
EMP# TYPE = BYTE (6), OFFSET = 6, INDEX = EMPX
DEPT# TYPE = BYTE (4), OFFSET = 12
PAY TYPE = FULLWORD, OFFSET = 16
Lingkungan Basis Data 4
Pengantar Basis Data
Data Independence
Tujuan utama dari 3 tingkat arsitektur adalah memelihara kemandirian data (data independence) yang berarti perubahan yang terjadi pada tingkat yang lebih rendah tidak mempengaruhi tingkat yang lebih tinggi.
Ada 2 jenis data independence, yaitu
1. Physical Data Independence
bahwa internal schema dapat diubah oleh DBA tanpa menggangu conceptual schema. Dengan kata lain physical data independence menunjukkan kekebalan conceptual schema terhadap perubahan internal schema.
2. Logical Data Independence
bahwa conceptual schema dapat diubah oleh DBA tanpa menggangu external schema. Dengan kata lain logical data independence menunjukkan kekebalan external schema terhadap perubahan conceptual schema.
Prinsip data independence adalah salah satu hal yang harus diterapkan di dalam pengelolaan sistem basis data dengan alasan-alasan sbb :
1. DBA dapat mengubah isi, lokasi, perwujudan dalam organisasi basis data tanpa mengganggu program-program aplikasi yang sudah ada.
2. Pabrik / agen peralatan / software pengolahan data dapat memperkenalkan produk-produk baru tanpa mengganggu program-program aplikasi yang sudah ada.
3. Untuk memindahkan perkembangan program-program aplikasi
4. Memberikan fasilitas pengontrolan terpusat oleh DBA demi keamanan dan integritas data dengan memperhatikan perubahan-perubahan kebutuhan pengguna.
Bahasa Dalam DBMS
DBMS (Database Management systems) adalah kumpulan program yang mengkoordinasikan semua kegiatan yang berhubungan dengan basis data. Dengan adanya berbagai tingkatan pandangan dalam suatu basis data maka untuk mengakomodasikan masing-masing pengguna dalam piranti lunak manajemen basis data biasanya terdapat bahasa-bahasa tertentu yang disebut Data Sub language.
Lingkungan Basis Data 5
Pengantar Basis Data
Data sub language adalah subset bahasa yang dipakai untuk operasi manajemen basis data. Dalam penggunaan biasanya dapat ditempelkan (embedded) pada bahasa tuan rumah (Cobol, PL/1, dsb). Secara umum maka setiap pengguna basis data memerlukan bahasa yang dipakai sesuai tugas dan fungsinya.
Dalam basis data secara umum dikenal 2 data sub language :
1. Data Definition Language (DDL)
Bahasa yang digunakan dalam mendefinisikan struktur atau kerangka dari basis data, di dalamnya termasuk record, elemen data, kunci elemen, dan relasinya
2. Data Manipulation Language (DML)
Bahasa yang digunakan untuk menjabarkan pemrosesan dari basis data, fasilitas ini diperlukan untuk memasukkan, mengambil, mengubah data. DML dipakai untuk operasi terhadap isi basis data
Ada 2 jenis DML :
1. Procedural DML
Digunakan untuk mendefinisikan data yang diolah dan perintah yang akan dilaksanakan.
2. Non Procedural
Digunakan untuk menjabarkan data yang diinginkan tanpa menyebutkan bagaimana cara pengambilannya.
Secara khusus pengguna menggunakan berbagai bahasa :
Programmer aplikasi menggunakan bahasa-bahasa seperti Cobol, Informix, dll (host language) yang ditempelkan dengan bahasa yang dipakai dalam DBMS. Pemakai terminal menggunakan bahasa Query (misal SQL) atau menggunakan program aplikasi (yang dirancang oleh programmer). Sedangkan DBA lebih banyak menggunakan bahasa DDL dan DML yang tersedia dalam DBMS.
DBMS mempunyai tugas untuk menangani semua bentuk akses kepada basis data, secara konsep :
1. Pengguna menyatakan permintaan akses menggunakan DBMS
2. DBMS menangkap dan menginterpretasikan
3. DBMS mencari :
Lingkungan Basis Data 6
Pengantar Basis Data
- eksternal / conceptual mapping
- conceptual schema
- konseptual / internal mapping
- internal schema
4. DBMS melaksanakan operasi yang diminta terhadap basis data tersimpan.
Proses 1 s/d 4 dapat dilakukan secara interactive atau dicompile dulu.
Model Data
Model data adalah kumpulan konsep yang terintegrasi yang menggambarkan data, hubungan antara data dan batasan-batasan data dala suatu organisasi. Fungsi dari sebuah model data untuk merepresentasikan data sehingga data tersebut mudah dipahami.
Untuk menggambarkan data pada tingkat eksternal dan konseptual digunakan model data berbasis objek atau model data berbasis record.
1. Model Data Berbasis Objek
Model data berbasis objek menggunakan konsep entitas, atribut dan hubungan antar entitas. Beberapa jenis model data berbasis objek yang umum adalah :
- entity-relationship
- semantic
- functional
- object-oriented
2. Model Data Berbasis Record
Pada model data berbasis record, basis data terdiri dari sejumlah record dalam bentuk yang tetap yang dapat dibedakan dari bentuknya. Ada 3 macam jenis model data berbasis record yaitu :
- model data relasional (relational)
- model data hierarkhi (hierarchical)
- model data jaringan (network)
Lingkungan Basis Data 7
Pengantar Basis Data
Fungsi DBMS
Layanan-layanan yang sebaiknya disediakan oleh database management system adalah :
1. Penyimpanan, pengambilan dan perubahan data
Sebuah DBMS harus menyediakan kemampuan menyimpan, mengambil dan merubah data dalam basis data.
2. Katalog yang dapat diakses pemakai
menyediakan sebuah katalog yang berisi deskripsi item data yang disimpan dan diakses oleh pemakai.
3. Mendukung Transaksi
Menyediakan mekanisme yang akan menjamin semua perubahan yang berhubungan dengan transaksi yang sudah ada atau yang akan dibuat.
4. Melayani kontrol concurrency
Sebuah DBMS harus menyediakan mekanisme yang menjamin basis data ter-update secara benar pada saat beberapa pemakai melakukan perubahan terhadap basis data yang sama secara bersamaan.
5. Melayani recovery
Menyediakan mekanisme untuk mengembalikan basis data ke keadaan sebelum terjadinya kerusakan pada basis data tersebut.
6. Melayani autorisasi
Sebuah DBMS harus menyediakan mekanisme untuk menjamin bahwa hanya pemakai yang berwenang saja yang dapat mengakses basis data.
7. Mendukung komunikasi data
Sebuah DBMS harus mampu terintegrasi dengan software komunikasi.
8. Melayani integrity
Sebuah DBMS bertujuan untuk menjamin semua data dalam basis data dan setiap terjadi perubahan data harus sesuai dengan aturan yang berlaku.
9. Melayani data independence
Sebuah DBMS harus mencakup fasilitas untuk mendukung kemandirian program dari struktur basis data yang sesungguhnya.
10. Melayani utility
Sebuah DBMS sebaiknya menyediakan kumpulan layanan utility.
Lingkungan Basis Data 8
Pengantar Basis Data
Komponen DBMS QueryProcessorDDLCompilerDatabaseSchemaQueriesApplicationProgramsDMLPreprocessorProgramObject CodeDatabaseManagerDictionaryManagerSystemBufferFileManagerAccessMethodDatabasedanData DictionaryDBMSProgrammersUsersDBA
Gambar 2. Komponen DBMS
1. Query Processsor
Komponen yang merubah bentuk query ke dalam instruksi tingkat rendah ke database manager
2. Database Manager
Database manager menerima query dan menguji skema eksternal dan konseptual untuk menentukan apakah record-record dibutuhkan untuk memenuhi permintaan. Kemudian DM memanggil file manager untuk menyelesaikan permintaan
3. File Manager Lingkungan Basis Data 9
Pengantar Basis Data
Memanipulasi penyimpanan file dan mengatur alokasi ruang penyimpanan pada disk.
4. DML Preprocessor
Modul yang merubah perintah DML embedded ke dalam program aplikasi dalam bentuk fungsi-fungsi yang memanggil dalam host language.
5. DDL Compiler
Merubah perintah DDL menjadi kumpulan tabel yang berisi metadata.
6. Dictionary Manager
Mengatur akses dan memelihara data dictionary. Data dictionary diakses oleh komponen DBMS yang lain. ProgramObject CodeQueryProcessorDictionaryManagerAuthorizationControlQueryOptimizerAccessMethodSystemBufferBufferManagerRecoveryManagerFileMaagerCommandProcessorIntegrityCheckerTransactionManagerSchedulerDatabaseManagerDataManagerDatabasedanDataDictionary
Gambar 3. Komponen Software Utama Database Manager
Lingkungan Basis Data 10
Pengantar Basis Data
Komponen software utama database manager adalah
1. Authorization Control
Modul yang memeriksa apakah pemakai mempunyai wewenang untuk menyelesaikan operasi
2. Command Processor
Memeriksa apakah pemakai mempunyai wewenang untuk menyelesaikan operasi
3. Integrity Checker
Untuk semua operasi yang merubah basis data, integrity checker memeriksa operasi yang diminta memerlukan batasan integritas.
4. Query Optimizer
Modul ini menentukan strategi yang optimal untuk eksekusi query
5. Transaction Manager
Modul ini mengerjakan proses-proses yang dibutuhkan operasi yang diterima transaksi
6. Scheduler
Modul ini bertanggung jawab untuk menjamin operasi secara bersamaan terhadap basis data sehingga berjalan tanpa ada masalah antara yang satu dengan yang lain.
7. Recovery Manager
Modul ini menjamin basis data tetap konsisten walaupun terjadi kerusakan.
8. Buffer Manager
Modul ini bertanggung jawab terhadap pemindahan data antara main memory dan secondary storage, seperti disk dan tape.
Arsitektur DBMS Multi User
Teleprocessing
Arsitektur tradisional untuk sistem multi user adalah teleprocessing, dimana satu komputer dengan sebuah CPU dan sejumlah terminal seperti pada gambar di bawah ini.
Lingkungan Basis Data 11
Pengantar Basis Data
IBM Compatible
Gambar 4. Arsitektur Teleprocessing
Semua pemrosesan dikerjakan dalam batasan fisik komputer yang sama. Terminal untuk pemakai berjenis 'dumb', yang tidak dapat berfungsi sendiri dan masing-masing dihubungkan ke komputer pusat. Terminal-terminal tersebut mengirimkan pesan melalui subsistem pengontrol komunikasi pada sistem operasi ke program aplikasi, yang bergantian menggunakan layanan DBMS.
Dengan cara yang sama, pesan dikembalikan ke terminal pemakai. Arsitektur ini menempatkan beban yang besar pada komputer pusat yang tidak hanya menjalankan program aplikasi tetapi juga harus menyelesaikan sejumlah pekerjaan pada terminal seperti format data untuk tampilan di monitor.
Lingkungan Basis Data 12
Pengantar Basis Data
File-Server
Proses didistribusikan ke dalam jaringan sejenis LAN (Local Area Network). File server mengendalikan file yang diperlukan oleh aplikasi dan DBMS. Meskipun aplikasi dan DBMS dijalankan pada masing-masing workstation tetapi tetap meminta file dari file server jika diperlukan (perhatikan gambar di halaman berikut ini).
DatabaseWorkstation2Workstation1Workstation3LANfile serverfiles returnedrequest for data
Gambar 5. Arsitektur File Server
Dengan cara ini, file server berfungsi sebagai sebuah hard disk yang digunakan secara bersamaan.
Kerugian arsitektur file-server adalah :
- Terdapat lalulintas jaringan yang besar
- Masing-masing workstation membutuhkan copy DBMS
- Kontrol terhadap concurrency, recovery dan integrity menjadi lebih kompleks karena sejumlah DBMS mengakses file secara bersamaan
Lingkungan Basis Data 13
Pengantar Basis Data
Client Server
Untuk mengatasi kelemahan arsitektur-arsitektur di atas maka dikembangkan arsitektur client-server. Client-server menunjukkan cara komponen software berinteraksi dalam bentuk sistem.
Sesuai dengan namanya, ada sebuah pemroses client yang membutuhkan sumber dan sebuah server yang menyediakan sumbernya. Tidak ada kebutuhan client dan server yang harus diletakkan pada mesin yang sama. Secara ringkas, umumnya server diletakkan pada satu sisi dalam LAN dan client pada sisi yang lain.
DatabaseClient 2client 1Client 3LANserver (with DBMS)selected data returnedrequest for data
Gambar 6. Arsitektur Client Server
Dalam konteks basis data, client mengatur interface berfungsi sebagai workstation tempat menjalankan aplikasi basis data. Client menerima permintaan pemakai, memeriksa sintaks dan generate kebutuhan basis data dalam SQL atau bahasa yang lain. Kemudian meneruskan pesan ke server, menunggu response dan bentuk response untuk pemakai akhir. Server menerima dan memproses permintaan basis data kemudian mengembalikan hasil ke client.
Lingkungan Basis Data 14
Pengantar Basis Data
Proses-proses ini melibatkan pemeriksaan autorisasi, jaminan integritas, pemeliharaan data dictionary dan mengerjakan query serta proses update. Selain itu juga menyediakan kontrol terhadap concurrency dan recovery.
Ada beberapa keuntungan jenis arsitektur ini adalah :
• Memungkinkan akses basis data yang besar
• Menaikkan kinerja
• Jika client dan server diletakkan pada komputer yang berbeda kemudian CPU yang berbeda dapat memproses aplikasi secara paralel. Hal ini mempermudah merubah mesin server jika hanya memproses basis data.
• Biaya untuk hardware dapat dikurangi
• Hanya server yang membutuhkan storage dan kekuatan proses yang cukup untuk menyimpan dan mengatur basis data
• Biaya komunikasi berkurang
• Aplikasi menyelesaikan bagian operasi pada client dan mengirimkan hanya bagian yang dibutuhkan untuk akses basis data melewati jaringan, menghasilkan data yang sedikit yang akan dikirim melewati jaringan
• Meningkatkan kekonsistenan
• Server dapat menangani pemeriksaan integrity sehingga batasan perlu didefinisikan dan validasi hanya di satu tempat, aplikasi program mengerjakan pemeriksaan sendiri
• Map ke arsitektur open-system dengan sangat alami
Berikut ini adalah ringkasan fungsi client-server
Client
Server
Mengatur user interface
Menerima dan memproses basis data yang diminta dari client
Menerima dan memeriksa sintaks input dari pemakai
Memeriksa autorisasi
Memproses aplikasi
Menjamin tidak terjadi pelanggaran terhadap integrity constraint
Generate permintaan basis data dan memindahkannya ke server
Melakukan query/pemrosesan update dan memindahkan response ke client
Memberikan response balik kepada pemakai
Memelihara data dictionary
Menyediakan akses basis data secara bersamaan
Menyediakan kontrol recovery Lingkungan Basis Data 15
Pengantar Basis Data
Data Dictionary
Data dictionary adalah tempat penyimpanan informasi yang menggambarkan data dalam basis data. Data dictionary biasa disebut juga dengan metadata atau data mengenai data. Modul pengontrol otorisasi menggunakan data dictionary untuk memeriksa apakah seorang pemakai perlu mempunyai wewenang.
Untuk mengerjakan pemeriksaan tersebut data dictionary menyimpan :
• nama-nama pemakai yang mempunyai wewenang untuk menggunakan DBMS
• nama-nama data item yang ada dalam basis data
• data item yang dapat diakses oleh pemakai dan jenis akses yang diijinkan, misalnya: insert, update, delete atau read
Sedangkan untuk memeriksa integritas data, data dictionary menyimpan :
• nama-nama data item dalam basis data
• jenis dan ukuran data item
• batasan untuk masing-masing data item
Sistem data dictionary dapat dibedakan atas sistem aktif dan pasif. Sistem aktif selalu konsisten dengan struktur basis data karena secara otomatis dikerjakan oleh sistem. Sebaliknya, sistem pasif tidak konsisten terhadap perubahan basis data yang dilakukan oleh pemakai.
Pengantar Basis Data
Pertemuan 3 dan 4 :
MODEL DATA RELASIONAL
Tujuan Instruksional Khusus :
• Mahasiswa dapat menjelaskan pengertian model data relasional, istilah-istilah dalam model data relasional, jenis-jenis kunci relasional, serta aturan-aturan yang terdapat dalam model data relasional
• Mahasiswa dapat menyebutkan keuntungan penggunaan model data relasional
• Mahasiswa dapat mengetahui bahasa-bahasa yang digunakan pada model data relasional
Deskripsi Singkat :
Relational Database Management System (RDBMS) telah menjadi software pemrosesan data yang dominan saat ini. Software ini menggambarkan generasi kedua dari DBMS dan berbasiskan model data relasional yang diajukan oleh E.F. Codd (1970). Pada model relasional, seluruh data terstruktur secara logika di dalam sebuah relasi (tabel). Setiap relasi mempunyai nama dan terdiri dari atribut-atribut bernama (kolom). Setiap tuple (baris) berisikan satu nilai per atribut. Kekuatan yang besar dari model data relasional adalah struktur logikal yang sederhana. Pada materi ini akan dibahas mengenai terminologi dan konsep struktural dasar dari model data relasional, serta bahasa-bahasa yang dapat digunakan untuk merubah data dan pemanggilan data.
Bahan Bacaan :
1. Connoly, Thomas; Begg, Carolyn; Strachan, Anne; Database Systems : A Practical Approach to Design, Implementation and Management, 3rd edition, Addison Wesley, 2001.
2. Korth, H.; Database System Concept, 4th edition, Mc Graw Hill, New York, 1991.
Model Relasional 1
Pengantar Basis Data
MODEL DATA RELASIONAL
• Pengertian Basis Data Relasional
Pada model relasional, basis data akan “disebar” atau dipilah-pilah ke dalam berbagai tabel dua dimensi. Setiap tabel selalu terdiri atas lajur mendatar yang disebut baris data (row / record) dan lajur vertikal yang biasa disebut dengan kolom (column / field).
Contoh Tabel dan keterhubungannya :
MHS
NPM
Nama
Alamat
10296832
Nurhayati
Jakarta
10296126
Astuti
Jakarta
31296500
Budi
Depok
41296525
Prananingrum
Bogor
50096487
Pipit
Bekasi
21196353
Quraish
Bogor
MKUL
KDMK
MTKULIAH
SKS
KK021
P. Basis Data
2
KD132
SIM
3
KU122
Pancasila
2
Model Relasional 2
Pengantar Basis Data
NILAI
NPM
KDMK
MID
FINAL
10296832
KK021
60
75
10296126
KD132
70
90
31296500
KK021
55
40
41296525
KU122
90
80
21196353
KU122
75
75
50095487
KD132
80
0
10296832
KD132
40
30
• Keuntungan Basis Data Relasional
1. Bentuknya sederhana
2. Mudah melakukan berbagai operasi data
• Istilah dalam Basis Data Relasional :
Relasi
Relasi merupakan sebuah tabel yang terdiri dari beberapa kolom dan beberapa baris. Relasi menunjukkan adanya hubungan diantara sejumlah entitas yang berasal dari himpunan entitas yang berbeda. Entitas merupakan individu yang mewakili sesuatu yang nyata dan dapat dibedakan dengan yang lainnya.
Atribut
Atribut merupakan kolom pada sebuah relasi. Setiap entitas pasti memiliki aribut yang mendeskripsikan karakter dari entitas tersebut. Penentuan atau pemilihan atribut-atribut yang relevan bagi sebuah entitas merupakan hal penting dalam pembentukan model data.
Tuple
Tuple merupakan baris pada sebuah relasi atau kumpulan elemen-elemen yang saling berkaitan menginformasikan tentang suatu entitas secara lengkap. Satu record mewakili satu data atau informasi tentang seseorang, misalnya : NPM, nama mahasiswa, alamat, kota, dll.
Model Relasional 3
Pengantar Basis Data
Domain :
Kumpulan nilai yang valid untuk satu atau lebih atribut
Derajat (degree) :
Jumlah atribut dalam sebuah relasi
Cardinality :
Jumlah tupel dalam sebuah relasi
atribut
MHS
NPM
Nama
Alamat
10296832
Nurhayati
Jakarta
10296126
Astuti
Jakarta
31296500
Budi
Depok
41296525
Prananingrum
Bogor
50096487
Pipit
Bekasi
21196353
Quraish
Bogor
Domain
Baris
Relasi
Derajat (degree)
Model Relasional 4
Pengantar Basis Data
• Relational Key
Super key
Satu atribut / kumpulan atribut yang secara unik mengidentifikasi sebuah tuple di dalam relasi
Candidate key
Suatu atribut atau satu set minimal atribut yang mengidentifikasikan secara unik suatu kejadian spesifik dari entitas. Atribut di dalam relasi yang biasanya mempunyai nilai unik. Satu set minimal dari atribut menyatakan secara tak langsung dimana kita tidak dapat membuang beberapa atribut dalam set tanpa merusak kepemilikan yang unik.
Primary key
Merupakan satu atribut atau satu set minimal atribut yang tidak hanya mengidentifikasikan secara unik suatu kejadian spesifik, tapi juga dapat mewakili setiap kejadian dari suatu entitas. Candidate key yang dipilih untuk mengidentifikasikan tuple secara unik dalam relasi. Setiap kunci candidate key punya peluang menjadi primary key, tetapi sebaiknya dipilih satu saja yang dapat mewakili secara menyeluruh terhadap entitas yang ada.
Alternate key
Merupakan candidate key yang tidak dipakai sebagai primary key atau Candidate key yang tidak dipilih sebagai primary key.
Foreign key (Kunci Tamu)
Atribut dengan domain yang sama yang menjadi kunci utama pada sebuah relasi tetapi pada relasi lain atribut tersebut hanya sebagai atribut biasa. Kunci tamu ditempatkan pada entitas anak dan sama dengan primary key induk direlasikan. Model Relasional 5
Pengantar Basis Data
Alternate key Candidate Key
Primary key
MHS
NPM
Nama
Alamat
10296832
Nurhayati
Jakarta
10296126
Astuti
Jakarta
31296500
Budi
Depok
41296525
Prananingrum
Bogor
50096487
Pipit
Bekasi
21196353
Quraish
Bogor
• Relational Integrity Rules
1. Null
Nilai suatu atribut yang tidak diketahui dan tidak cocok untuk baris (tuple) tersebut.
Nilai (konstanta) Null digunakan untuk menyatakan / mengisi atribut-atribut yang nilainya memang belum siap/tidak ada.
2. Entity Integrity
Tidak ada satu komponen primary key yang bernilai null.
3. Referential Integrity
Suatu domain dapat dipakai sebagai kunci primer bila merupakan atribut tunggal pada domain yang bersangkutan.
• Bahasa Pada Basis data Relational
Menggunakan bahasa query pernyataan yang diajukan untuk mengambil informasi. Bahasa Query (Query Language) lebih ditekankan pada aspek pencarian data dari dalam tabel. Aspek pencarian ini sedemikian penting karena merupakan inti dari upaya untuk pengelolaan data.
Bahasa query terbagi 2 :
1. Bahasa Formal
Model Relasional 6
Pengantar Basis Data
Bahasa query yang diterjemahkan dengan menggunakan simbol-simbol matematis.
Contoh :
• Aljabar Relasional
Bahasa query prosedural pemakai menspesifikasikan data apa yang dibutuhkan dan bagaimana untuk mendapatkannya.
• Kalkulus Relasional
Bahasa query non-prosedural pemakai menspesifikasikan data apa yang dibutuhkan tanpa menspesifikasikan bagaimana untuk mendapatkannya.
Terbagi 2 :
1. Kalkulus Relasional Tupel
2. Kalkulus Relasional Domain
2. Bahasa Komersial
Bahasa Query yang dirancang sendiri oleh programmer menjadi suatu program aplikasi agar pemakai lebih mudah menggunakannya (user friendly).
Contoh :
• QUEL
Berbasis pada bahasa kalkulus relasional
• QBE
Berbasis pada bahasa kalkulus relasional
• SQL
Berbasis pada bahasa kalkulus relasional dan aljabar relasional
• Contoh-contoh Basis Data Relasional :
- DB2 IBM
- ORACLE Oracle
- SYBASE Powersoft
- INFORMIX Informix
- Microsoft Access Microsoft
Pengantar Basis Data
STRUCTURE QUERY LANGUAGE
Structure Query Language (SQL) merupakan komponen bahasa relational database system. SQL merupakan bahasa baku (ANSI/SQL), non procedural, dan berorientasi himpunan (set-oriented language). SQL dapat digunakan baik secara interaktif atau ditempelkan (embedded) pada sebuah program aplikasi.
Komponen-Komponen SQL
a. Data Definition Language (DDL) :
Digunakan untuk mendefinisikan data dengan menggunakan perintah : create, drop, alter.
b. Data Manipulation Language (DML) :
Digunakan untuk memanipulasi data dengan menggunakan perintah : select, insert, update, delete.
Data Manipulation Language merupakan bagian terpadu bahasa SQL. Perintah-perintahnya dapat dibuat secara interaktif atau ditempelkan pada sebuah program aplikasi. Pemakai hanya perlu menentukan 'APA' yang ia inginkan, DBMS menentukan 'BAGAIMANA' cara mendapatkannya.
c. Data Control Language (DCL) :
Digunakan untuk mengontrol hak para pemakai data dengan perintah : grant, revoke SQL 1
Pengantar Basis Data
S Q L
STRUCTURED
QUERY
LANGUAGE
DEFINITION
MANIPULATION
C O N T R O L
CREATE
DROP
ALTER
D D L
SELECT
INSERT
UPDATE
DELETE
D M L
GRANT
REVOKE
DCL
DATA DEFINITION LANGUAGE
1. CREATE TABLE
Fungsi : membuat tabel
Sintaks : CREATE TABLE tbname
(col 1 data type data spec,
col 2 data type data spec,
.
.
PRIMARY KEY (col1,……))
Contoh :
CREATE TABLE PERSONEL
(REGNO CHAR(10) NOT NULL,
NAME CHAR(45) NOT NULL,
ADDRESS CHAR(45),
BIRTH DATE NOT NULL WITH DEFAULT,
PRIMARY KEY (REGNO))
SQL 2
Pengantar Basis Data
NULL
Spesifikasi NULL, NOT NULL, NOT NULL WITH DEFAULT
NULL :
dapat diinterpretasikan sebagai nilai yang tidak diketahui atau tidak tersedianya suatu nilai. Null bukan berarti kosong (blank) atau 0 (Nol)
NOT NULL :
pemakai atau program harus memberikan nilai-nilai pada saat memasukkan record
NOT NULL WITH DEFAULT :
nilai default disimpan pada saat record dimasukkan tanpa nilai yang ditentukan untuk kolom ini.
Nilai default-nya :
Nol untuk tipe field NUMERIC
Blank untuk tipe field CHARACTER
CURRENT DATE untuk tipe field DATE
CURRENT TIME untuk tipe field TIME
Pada saat membuat tabel, salah satu atribut tersebut di atas dispesifikasikan pada sebuah kolom.
2. CREATE VIEW
Fungsi : membuat tabel view.
View merupakan bentuk alternatif penyajian data dari satu atau lebih tabel. View dapat berisi semua atau sebagian kolom yang terdapat pada tabel dimana kolom tersebut didefinisikan.
Tujuan membuat view :
• Meningkatkan keamanan data
• Meningkatkan kemandirian data
• Penyederhanaan bagi end user (data yang sedikit, nama-nama kolom yang baru dan dapat dibaca dengan lebih baik)
SQL 3
Pengantar Basis Data
Properti :
• Tidak terdapatnya data tambahan
• View mencakup subset kolom dan / atau baris
• View dapat berisikan data dari beberapa tabel dan / atau tabel-tabel view lainnya
• View dapat berisikan perolehan data, misal : nilai rata-rata
• Manipulasi data melalui view terbatas
Sintaks : CREATE VIEW viewname (column1, column2, ……..)
AS SELECT statement FROM tbname
[WITH CHECK OPTION]
Keterangan : View-name : nama view yang akan dibuat. Column : nama atribut untuk view Statement : atribut yang dipilih dari tabel basis data. Tabel-name : nama tabel basis data.
Contoh :
CREATE VIEW VPERSON (REGNO, NAME) AS
SELECT REGNO, NAME FROM PAUL.PERSONEL
3. CREATE INDEX
Fungsi : membuat index
Sintaks : CREATE [UNIQUE] INDEX indexname ON nama_table (nama_kolom)
Contoh :
CREATE UNIQUE INDEX PRSONIDX
ON PERSONEL(REGNO)
Dengan indeks memungkinkan suatu tabel diakses dengan urutan tertentu tanpa harus merubah urutan fisik dari datanya dan dapat pula diakses secara cepat
SQL 4
Pengantar Basis Data
melalui indeks yang dibuat berdasar nilai field tertentu. Spesifikasi UNIQUE akan menolak key yang sama dalam file.
4. DROP TABLE
Fungsi : menghapus Tabel
Sintaks : DROP TABLE tbname
Contoh : DROP TABLE PERSONEL
Dengan perintah itu obyek lain yang berhubungan dengan tabel tersebut otomatis akan dihapus atau tidak akan berfungsi seperti :
- semua record dalam tabel akan terhapus
- index dan view pada tabel akan hilang
- deskripsi tabel akan hilang
5. DROP VIEW
Fungsi : menghapus view
Sintaks : DROP VIEW viewname
Contoh : DROP VIEW VPERSON
6. DROP INDEX
Fungsi : menghapus index Sintaks : DROP INDEX indexname
Contoh : DROP INDEX PRSONIDX
7. ALTER
Fungsi : merubah atribut pada suatu tabel
SQL 5
Pengantar Basis Data
Sintaks : ALTER TABLE tbname
MODIFY (nama_kolom tipe_kolom) ADD (nama_kolom tipe_kolom [[before, nama_kolom]]) DROP (nama_kolom tipe_kolom)
Contoh : merubah Tabel TABX dengan menambah Field D.
ALTER TABLE TABX
ADD D CHAR(3)
DATA MANIPULATION LANGUAGE
1. INSERT
Fungsi : menambah baris (record) baru
Sintaks : INSERT INTO tbname (col1, ...) VALUES (value1, ...)
Catatan :
Sintaks tersebut dapat digunakan jika jumlah kolom = jumlah nilai, tetapi jika dalam tabel semua kolom akan diisi dapat digunakan sintaks berikut ini : Sintaks : INSERT INTO tbname VALUES (value1, value2, ...) Nilai-nilai diisikan sebanyak kolom yang terdapat di tabel tersebut.
2. UPDATE
Fungsi : merubah record
Sintaks : UPDATE tbname SET field = ekspresi WHERE kondisi SQL 6
Pengantar Basis Data
3. DELETE
Fungsi : menghapus record
Sintaks : DELETE FROM tbname WHERE kondisi
4. SELECT
Fungsi : menampilkan record
Sintaks : SELECT [DISTINCT] colname FROM tbname [WHERE kondisi] [GROUP BY kondisi] [HAVING kondisi] [ORDER BY kondisi]
Contoh Kasus DDL :
• Membuat Tabel (CREATE TABLE)
1. CREATE TABLE S (Sn Char(5) NOT NULL,
Sname Char(20) NOT NULL,
Status Smallint NOT NULL,
City Char(15) NOT NULL);
2. CREATE TABLE P
(Pn Char(6) NOT NULL,
Pname Char(20) NOT NULL,
Color Char(6) NOT NULL,
Weight Smallint NOT NULL);
3. CREATE TABLE SP
(Sn Char(5) NOT NULL,
Pn Char(6) NOT NULL,
QTY INTEGER NOT NULL);
SQL 7
Pengantar Basis Data
4. CREATE UNIQUE INDEX Sidx ON S(Sn);
CREATE UNIQUE INDEX Pidx ON P(Pn);
CREATE INDEX Sdx ON SP(Sn);
CREATE INDEX Pdx ON SP(Pn);
• Modifikasi Table P dengan perintah :
RENAME COLUMN P.COLOR TO WARNA
ALTER TABLE P ADD (City CHAR(15) NOT NULL)
• Membuat View (CREATE VIEW) 1. Membuat view untuk suplier yang statusnya lebih besar dari 15
CREATE VIEW GOOD_SUPPLIERS AS SELECT Sn, Status, City FROM S WHERE Status > 15;
2. Membuat view yang berisi supplier yang tinggal di Paris
CREATE VIEW Paris_Suppliers AS SELECT * FROM Supliers WHERE City = ' Paris '
3. Membuat view dengan mengganti nama_atributnya
CREATE VIEW Parts (PNum, Part_Name, WT)
AS SELECT P#, Pname, Weight FROM Part
WHERE COLOR = 'Red'
SQL 8
Pengantar Basis Data
Contoh Kasus DML :
• Menambah record (INSERT)
INSERT INTO S VALUES ('S1','Smith',20,'London'); INSERT INTO S VALUES ('S2','Jones,10,'Paris'); INSERT INTO S VALUES ('S3','Blake',30,'Paris')
Tabel S, P dan SP isikan dengan data-data sebagai berikut :
TABEL S
Sn
Sname
Status
City
S1
Smith
20
London
S2
Jones
10
Paris
S3
Blake
30
Paris
S4
Clark
20
London
S5
Adams
30
Athens
TABEL P
Pn
Pname
Warna
Weight
City
P1
Nut
Red
12
London
P2
Bolt
Green
17
Paris
P3
Screw
Blue
17
Rome
P4
Screw
Red
14
London
P5
Cam
Blue
12
Paris
P6
Cog
Red
19
London
TABEL SP
Sn
Pn
qty
S1
P1
300
S1
P2
200
S1
P
40
S1
P4
200
S1
P5
100
S1
P6
100
S2
P1
300
S2
P2
400
S3
P2
200
S4
P2
200
S4
P4
300
S4
P5
400 SQL 9
Pengantar Basis Data
• Merubah record (UPDATE)
1. Merubah data (record) pada tabel P yang mempunyai nomor part P2, warnanya dirubah menjadi Kuning dan beratnya ditambah 5
UPDATE P SET Warna = 'Yellow', Weight = Weight + 5 WHERE Pn = 'P2'
2. Merubah record pada tabel S, statusnya menjadi dua kali status awal untuk supplier yang bertempat tinggal di kota London
UPDATE S SET Status = 2 * Status WHERE City = 'London'
• Menghapus record (DELETE)
Menghapus record pada tabel S yang nomor supplier-nya S5
DELETE FROM S
WHERE Sn ='S5'
• Menampilkan record (SELECT 1 tabel)
1. Menampilkan semua data supplier
SELECT * FROM S
atau
SELECT Sn, Sname, Status, City FROM S
2. Menampilkan semua nilai Pn pada tabel SP
SELECT Pn FROM SP
SQL 10
Pengantar Basis Data
3. Menampilkan nomor supplier dan status untuk supplier yang tinggal di Paris
SELECT Sn, Status FROM S
WHERE City ='Paris'
4. Menampilkan no.supplier yang tinggal di Paris dengan status > 20
SELECT Sn FROM S
WHERE City ='Paris" AND Status > 20
5. Menampilkan jumlah pengiriman P1
SELECT COUNT(*) FROM SP
WHERE Pn = 'P1'
6. Perintah untuk menghindari hasil data yang sama terulang kembali (distinct)
SELECT DISTINCT Pn FROM SP
7. Menampilkan no.supplier dan status bagi supplier yang tinggal di Paris dalam urutan status menurun
SELECT Sn,Status FROM S
WHERE City = 'Paris'
ORDER BY Status desc
8. Menampilkan no.Part dari semua part yang dipasok oleh lebih dari seorang supplier
SELECT Pn FROM SP
GROUP BY Pn
HAVING COUNT(*) > 1
SQL 11
Pengantar Basis Data
9. Menampilkan semua part yang nomornya dimulai dengan huruf C
SELECT * FROM P
WHERE Pname LIKE 'C%'
• Menampilkan record (SELECT lebih dari satu tabel / JOIN)
1. Menampilkan semua supplier dan part yang keduanya bertempat tinggal pada kota yang sama
SELECT Sn, Sname,S tatus, S.City , Pn, Pname, Warna, Weight FROM S,P
WHERE S.City = P.City
2. Menampilkan nama supplier yang memasok barang dengan nomor part P2
SELECT Sname FROM S, SP
WHERE S.Sn = SP.Sn AND SP.Pn = 'P2'
3. Menampilkan nama supplier yang memasok part berwarna merah
SELECT Sname FROM S, SP, P
WHERE S.Sn = SP.Sn
AND SP.Pn = P.Pn
AND P.COLOR = 'RED'
• Menampilkan record (SELECT lebih dari satu tabel / SELECT Bertingkat)
1. Menampilkan nama supplier yang memasok barang dengan nomor part P2
SELECT Sname FROM S WHERE Sn IN
(SELECT Sn FROM SP WHERE Pn = 'P2')
atau
SELECT Sname FROM S WHERE Sn = ANY
(SELECT Sn FROM SP WHERE Pn = 'P2')
SQL 12
Pengantar Basis Data
2. Menampilkan nama supplier yang memasok part berwarna merah
SELECT Sname FROM S WHERE Sn IN
(SELECT Sn FROM SP WHERE Pn IN
(SELECT Pn FROM P WHERE Warna = 'Red'))
3. Menampilkan no.supplier dengan nilai status lebih kecil daripada nilai maksimum status yang ada pada tabel S
SELECT Sn FROM S WHERE Status <
(SELECT MAX(Status) FROM S)
4. Menampilkan nama supplier yang tidak memasok barang dengan nomor part P2
SELECT Sname FROM S WHERE Sn NOT IN
(SELECT Sn FROM SP WHERE Pn = 'P2')
5. Menampilkan semua nomor supplier yang sama lokasinya dengan S1
SELECT Sn FROM S WHERE CITY =
(SELECT CITY FROM S WHERE Sn = 'S1')
• Fungsi Perhitungan
COUNT : jumlah baris dan kolom
SUM : jumlah nilai dam kolom
AVG : rata - rata nilai dalam kolom
MAX : nilai terbesar dalam kolom
MIN : nilai terkecil dalam kolom
Untuk SUM dan AVG nilainya harus numerik (INT, SMALLINT, FLOAT). Fungsi-fungsi tsb jika dikenakan pada nilai yang NULL maka nilainya akan diabaikan kecuali untuk COUNT(*)
SQL 13
Pengantar Basis Data
1. Menghitung jumlah supplier
SELECT COUNT(*) FROM S
atau
SELECT COUNT (Sn) FROM S
2. Menampilkan nomor part dan total kuantitas pengiriman dari setiap part
SELECT Pn, SUM(QTY) FROM SP
GROUP BY Pn
3. Menghitung jumlah kuantitas dari P2 yang telah disupply
SELECT SUM (QTY) FROM SP WHERE Pn = 'P2'
4. Menampilkan jumlah pengiriman barang dengan nomor P4 dan dipasok oleh nomor suppplier S1
SELECT COUNT(*) FROM SP
WHERE Pn = 'P4' AND Sn = 'S1'
5. Menampilkan nomor part dan total kuantitas dari masing-masing part
SELECT Pn, SUM(QTY) FROM SP
GROUP BY P3
DATA CONTROL LANGUAGE
1. GRANT
Fungsi : digunakan untuk memberikan izin akses kepada user
Sintaks : GRANT privileges ON tbname TO user
SQL 14
Pengantar Basis Data
Contoh :
GRANT SELECT ON CLUB TO PUBLIC
GRANT SELECT, INSERT, UPDATE, DELETE ON CLUB TO USER01
2. REVOKE
Fungsi : digunakan untuk mencabut izin akses kepada user
Sintaks : REVOKE privileges ON tbname FROM user
Contoh :
REVOKE INSERT, UPDATE, DELETE ON CLUB FROM USER01
REVOKE ALL ON CLUB FROM PUBLIC
SQL 15
Pengantar Basis Data
Pertemuan 7 :
RELATIONAL DATABASE MANAGEMENT SYSTEM
(RDBMS)
Tujuan Instruksional Khusus :
• Mahasiswa dapat mengetahui perkembangan DB2
• Mahasiswa dapat menjelaskan objek-objek dan utilitas yang terdapat pada DB2
• Mahasiswa dapat mengetahui perkembangan Oracle
• Mahasiswa dapat menjelaskan perbedaan antara perintah SQL dengan SQL *Plus
Deskripsi Singkat :
Pada materi ini akan dibahas mengenai software-software database yang berbasiskan model data relasional. Software tersebut diantaranya DB2 dan Oracle. Pada materi ini akan dijelaskan mengenai perkembangan DB2, objek-objek serta utilitas yang terdapat pada DB2. Sedangkan Oracle yang akan dibahas disini adalah mengenai produk-produk Oracle, perintah SQL dan SQL *Plus.
Bahan Bacaan :
1. LePKom; DB2 Universal Database, 1998.
2. Martin, James; Chapman, Kathleen K; Leben, Joe; DB2 Concepts, Design, and Programming, Prentice Hall International Inc., 1989.
3. -------------- ; Introduction to Oracle 9i, Oracle Univeristy
RDBMS 1
Pengantar Basis Data
PENGENALAN DB2
Apakah DB2 itu ?
DB2 merupakan relational database management system (RDBMS) yang memungkinkan pemakai melakukan CREATE, UPDATE dan CONTROL terhadap basis data relasional dengan menggunakan Structured Query Language (SQL). DB2 didisain untuk memperoleh informasi yang dibutuhkan dalam bisnis berskala kecil maupun besar.
DB2 dapat dijalankan pada bermacam-macam platform termasuk sistem mainframe seperti MVS/ESA, VM, dan VSE; sistem midrange seperti OS/400, AIX, dan sistem yang berbasiskan UNIX lainnya; dan sistem tunggal atau yang berbasiskan LAN seperti OS/2, Windows, dan Linux
Data diatur oleh DB2 database server yang dapat diakses dan dimanipulasi oleh aplikasi pada PC workstations yang berjalan dalam sistem operasi terkenal seperti OS/2, DOS, Windows, Linux dan dengan aplikasi yang dikembangkan untuk UNIX workstations dari IBM, HP, dan SUN. Aplikasi tersebut untuk menunjang client dan server platform yang akan ditambahkan di masa yang akan datang.
DB2 merupakan suatu sistem terbuka. Selain untuk client platform yang disediakan oleh IBM, semua basis data yang ada dalam DB2 server dapat diakses dari beberapa produk yang menunjang protokol Distributed Relational Architecture (DRDA). Hal tersebut dimaksudkan untuk mengurangi kebutuhan komponen tambahan dan gateway yang mahal.
IBM juga menyediakan fasilitas untuk mengakses RDBMS lainnya yang menggunakan server aplikasi DRDA yang spesifik. Fasilitas ini disebut Distributed Database Connection Services (DDCS).
RDBMS 2
Pengantar Basis Data
Selain fungsi manejemen data, DB2 juga memiliki alat yang mengijinkan pemakai membuat bermacam-macam aplikasi untuk mengakses dan bekerja dengan data. Juga untuk mengembangkan aplikasi dari multimedia dan object-oriented.
Perkembangan Basis data IBM
Akhir th. 70-an
• System R : Riset IBM menyusun teknologi relasional
Th. 80-an
• Produk Relational DB untuk VM, VSE, MVS, AS/400, OS/2
• Riset selanjutnya : SQL Language, Performance, Distributed Data
Th. 90-an
• Distributed Relational Data Architecture (DRDA)
• DB2 untuk AIX, HP-UX, SOLARIS, NT, SINIX, Parallel Edition,...
• DataHub, DataPropagator, DataGuide, DataRefresher, DataJoiner,...
• Riset selanjutnya : Optimization, Parallelism, Object-Relational
Sekarang (’98)
• Pemasok DB utama dengan pendapatan $1 milyar dari DB Engine
• >2 PetaBytes Data yang dikelola oleh produk-produk IBM DBMS
• IBM mengangani lebih dari 96 hak paten teknologi Relational DB di dunia
• Pemimpin dalam pembuatan SQL pada DB2 Team
Mengapa DB2 banyak digunakan :
• Memenuhi kebutuhan bisnis untuk aplikasi-aplikasi baru
• Scalable across
• Menawarkan Open hardware dan system integration
• Integrated Tools dan Usability enhancements
DB2 Family
IBM DB2 Family dari database management systems menangani ruang lingkup hardware platform yang besar mulai dari mainframe sampai dengan mesin-mesin
RDBMS 3
Pengantar Basis Data
yang berbasiskan Intel, server IBM dan non IBM RISC serta workstation, massively parallel processors, Sistem mid range AS/400, dan sistem mainframe yang dijalankan dengan sistem operasi VM, VSE dan MVS. Dengan tambahan database engines yang dijalankan pada setiap platform tersebut. DB2 family termasuk solusi “middleware” untuk pengaksesan basis data yang heterogen, replikasi data dan database systems management yang berjalan di seluruh platform.
Produk-produk DB2 yang dijalankan pada OS/2 dan platform yang berhubungan dengan produk tersebut dikenal sebagai versi DB2 Common Server. Hal ini untuk membedakan bahwa produk-produk tersebut dapat dijalankan pada platform yang sejenis, yang berisikan fungsi produk yang serupa dan menggunakan bersama source code yang sama.
Produk-produk DB2 Common Server merupakan client/server RDBMS untuk server IBM dan server non IBM, dan workstation yang berisikan fungsi-fungsi dimana aplikasi dapat dijalankan pada lingkungan client yang luas, fungsi-fungsi untuk menyimpan dan mengelola data, dan gateway yang mengizinkan pengaksesan data dengan SQL pada lingkungan yang heterogen.
DB2 Common Server memegang peranan penting pada saat :
• Client/Server Up-sizing
PC dan workstation yang terintegrasi dengan LAN untuk menggunakan basis data secara bersamaan
• Host Right-sizing
Memindahkan aplikasi-aplikasi ke platform yang cocok untuk suatu pekerjaan. Sistem right-sizing dapat berisikan mesin-mesin dari semua ukuran, seperti :
- Komputer mainframe
- Komputer midrange
- Komputer mini
- Komputer personal
• Host Down-sizing
Memisahkan dan memindahkan aplikasi-aplikasi mainframe ke client workstation dan network server RDBMS 4
Pengantar Basis Data
• Access to Host Enterprise Data
Pengaksesan data untuk decision support processing (query, report, charting,…) yang membutuhkan integrasi dari sistem basis data yang berlainan untuk membentuk basis data yang memberikan informasi lebih luas.
• DB2 Host Application Development
Produk-produk DB2 Family sama dalam hal disain dan fungsi serta dapat digunakan untuk mengembangkan host applications pada workstation dan PC.
DB2 database server tersedia untuk sistem-sistem sebagai berikut : MVS/ESA, OS/400, VM, VSE, OS2, UNIX-based platform (AIX, HP-UX, SOLARIS), Windows, Linux.
Objek-Objek DB2
Kunci elemen pada Sistem Administrator DB2 adalah pengaturan obyek-obyek DB2 yang dibuat oleh software DB2. Obyek-obyek yang terdapat pada DB2 di antaranya : Tabel dan View yang digunakan oleh application programmer dan end user yang merupakan bagian dari pemrosesan aplikasi. Juga termasuk obyek-obyek yang biasanya tidak terlihat pada tingkatan aplikasi seperti table space, index, database, dan storage group.
RDBMS 5
Pengantar Basis Data
DATABASE 2, etc
VOLUME2
VOLUME2
VOLUME1
VIEW3, etc
VIEW2
VIEW1
INDEX1
INDEX2, etc
TABLE2, etc
TABLESPACE2, etc
TABLE1
TABLESPACE1
DATABASE 1
OTHER SYSTEM OBJECTS
DIRECTORY
CATALOG
DB2 SUBSYSTEM
STORAGE GROUP 1
STORAGE GROUP 2
Gambar 1. Objek-objek DB2
RDBMS 6
Pengantar Basis Data
Index
View
Dbm config file
TABLE2, etc
TABLE1
VIEW2
VIEW1
INDEX1
INDEX2, etc
TABLE2, etc
TABLE1
CATALOG
LOG
DB CONFIGURATION FILE
DB CONFIGURATION
FILE
DATABASE 2
LOG
CATALOG
DATABASE 1
INSTANCE 1
Gambar 2. Objek-objek Universal DB2
DB2 Database
DB2 Database berisikan sekumpulan tabel dan indeks-indeks yang berhubungan dengan tabel-tabel tersebut. Dengan mendefinisikan tabel-tabel dan indeks-indeks dapat membuat sebuah basis data yang khusus. Kita dapat memberikan sebuah nama pada basis data, tabel, dan indeks tersebut, dan dapat melakukan start dan stop sebuah basis data dalam sebuah operasi tunggal. Juga dapat memberikan hak akses ke seluruh obyek yang terdapat dalam basis data.
Table Space
Table Space merupakan area penyimpanan yang berisikan satu atau lebih tabel DB2. Secara fisik, sebuah table space berisikan 1 – 64 VSAM entry-sequenced data
RDBMS 7
Pengantar Basis Data
sets (ESDS) dan dapat berisikan lebih dari 64 gigabytes data. Sebuah table space dibagi dalam pages. Tiap-tiap page dapat dibaca atau ditulis pada sebuah direct-access storage device (DASD) dalam sebuah operasi tunggal.
Table space dapat berisikan simple, partition, atau segmented. Simple table space berisikan satu atau lebih tabel yang lengkap. Partition table space dibagi dalam unit-unit yang disebut partitions, setiap unit dapat berisikan sebagian tabel. Pembagian tabel ke dalam partisi-partisi berdasarkan atas pendefinisian clustering index untuk tabel tersebut. Hanya satu tabel saja yang dapat disimpan dalam partition table space. Segmented table space dibagi dalam ukuran segment yang sama. Segment yang diberikan berisikan baris-baris yang hanya berasal dari satu tabel saja. Segmented table space memberikan peningkatan kinerja melalui simple table space untuk menyimpan banyak tabel karena hanya segment-segment milik sebuah tabel saja yang perlu diproses pada saat tabel dibaca atau dikunci.
Sebuah table space menggambarkan bagian dasar dari DB2 database recovery. Jika sebuah table space berisikan banyak tabel, semuanya akan di-recover menjadi sebuah unit. Pada partition table space, setiap partisi dapat di-recover secara terpisah. Jika diinginkan, keseluruhan basis data dapat juga di-recover menjadi sebuah unit dengan menspesifikasikan nama basis data tersebut daripada menspesifikasikan nama table space selama proses recovery.
Indeks
Sebuah indeks berisikan sekumpulan pointer pada baris dalam sebuah tabel. Terdapat sebuah entry untuk setiap nilai dalam kolom dengan sebuah pointer yang disebut ‘RID’ (Record ID) untuk tiap baris yang berisikan nilai tersebut. Sebuah indeks yang didefinisikan pada sebuah tabel dapat digunakan untuk berbagai macam kebutuhan. Sebagai contoh : sebuah indeks dapat digunakan untuk melakukan pengaksesan data yang lebih efisien dengan mengizinkan individual atau multiple row yang diakses secara langsung bila dibandingkan dengan pembacaan data secara keseluruhan pada sebuah tabel.
RDBMS 8
Pengantar Basis Data
Unique index merupakan bentuk khusus dari indeks yang dapat digunakan untuk meyakinkan bahwa tidak terdapat dua baris pada sebuah tabel yang mempunyai nilai yang sama. Cluster index merupakan bentuk lain dari indeks yang dapat digunakan untuk mengontrol urutan pada seuah tabel dimana tabel tersebut disimpan. Cluster index juga dapat menentukan bagaimana baris-baris dibagi dalam partisi-partisi pada sebuah partition table space.
Setiap indeks disimpan pada sebuah area penyimpanan yang disebut index space. Sebuah index space berisikan 1 – 64 VSAM ESDS. Pada saat indeks didefinisikan, DB2 secara otomatis membuat dan mengurus indeks tersebut. Program aplikasi dan pemakai interaktif tidak perlu secara spesifik menentukan penggunaan indeks, kecuali jika ingin melihat perbedaan kinerjanya.
Storage Group
DB2 menggunakan storage group untuk mengawasi cara bagaimana data pada DB2 yang secara fisik disimpan pada volume DASD. Sebuah storage group berisikan kumpulan volume DASD yang semuanya harus terletak pada peralatan yang sama jenisnya. Setiap storage group mempunyai nama, dan nama tersebut digunakan untuk menunjuk sebuah table space ke sebuah storage group yang dipilih.
Sebuah simple table space harus disimpan pada sebuah storage group tunggal. Sedangkan partition table space, partisi-partisi yang berbeda dapat disimpan pada storage group yang berbeda. Sebuah index space juga dapat ditentukan pada storage group, dan index space bisa ditentukan pada storage group yang sama atau tidak sesuai dengan tabel yang berhubungan dengan indeks tersebut.
Storage group dibuat oleh system administrator DB2 dengan menggunakan perintah SQL, khususnya fasilitas interaktif seperti SPUFI atau QMF.
RDBMS 9
Pengantar Basis Data
View
View adalah pilihan data sebelum didefinisikan dimana sebuah aplikasi atau pemakai akan bekerja. Meskipun View digunakan sebagai “TABLE” oleh pemakai, data tetap terletak pada table aslinya.
Pada saat sebuah view mendefinisikan sebuah virtual table yang menggunakan data pada base table, CREATE VIEW tidak perlu menspesifikasikan basis data, storage group, atau pilihan-pilihan lainnya yang berhubungan dengan sebuah tabel fisik. Perintah ALTER tidak dapat digunakan untuk sebuah view; untuk merubah view, view tersebut harus dihapus dan dibuat kembali. Menghapus view hanya mempengaruhi terhadap program yang menggunakan view tersebut; merubah view tidak mempengaruhi tabel-tabel yang digunakan oleh view tersebut.
Kegunaan View
- Memudahkan pengkodean :
View mendefinisikan permintaan user
- Keamanan :
Penghapusan data dari view tidak dapat diakses oleh user
DB2 Catalog
• Sekumpulan tabel yang berisi informasi mengenai segala sesuatu yang didefinisikan dalam sistem
• Digunakan oleh DB2 untuk menentukan jalur akses dan mengatur sumber-sumber
• Struktur tabel catalog dibedakan oleh platform
DB2 catalog terdiri dari sekumpulan tabel yang berisikan informasi mengenai seluruh obyek DB2 yang telah didefinisikan. Catalog juga berisikan informasi mengenai otorisasi, recovery, dan keterhubungan yang ada di antara tabel catalog yang berbeda.
RDBMS 10
Pengantar Basis Data
DB2/* Utilities
DB2 Utilities digunakan untuk menjalankan fungsi-fungsi sistem administrasi yang berbeda-beda, seperti loading tables, recover, repairing data, serta monitoring dan tuning sistem DB2.
Utilitas terbagi dalam 3 kategori :
1. Utilitas setup atau move LOAD dan UNLOAD
2. Utilitas maintenance REORGANIZE dan UPDATE STATISTIC
3. Utilitas recovery BACKUP dan RECOVER
RDBMS 11
Pengantar Basis Data
PENGENALAN ORACLE 9i
Oracle9i menawarkan sebuah infrastruktur kinerja yang tinggi untuk e-bisnis. Pada Oracle9i terdapat semua yang diperlukan untuk mengembangkan dan mengatur aplikasi-aplikasi internet.
Ada 2 produk Oracle9i : Oracle9i Applications Server dan Oracle9i Database, yang menyediakan infrastruktur yang lengkap dan mudah untuk aplikasi-aplikasi internet.
Oracle9i Application Server
Oracle9i Appplication Server (Oracle 9iAS) menjalankan seluruh aplikasi. Oracle Database menyimpan seluruh data. Oracle9i Application Server merupakan satu-satunya application server yang memasukkan layanan untuk seluruh aplikasi-aplikasi server yang ingin anda gunakan Oracle 9iAS dapat menjalankan:
• Portal atau situs web
• Aplikasi transaksi Java
• Aplikasi intelijen bisnis
Oracle 9iAS juga menyediakan integrasi antar pemakai, aplikasi, dan data melalui organisasi anda.
Oracle9i Database
Oracle9i Database mengatur seluruh data. Oracle9i database tidak hanya mengatur object relational data, tetapi juga data yang tidak terstruktur seperti :
• Spreadsheets
• Dokumen word
• Presentasi PowerPoint
• XML
• Tipe data multimedia seperti MP3, grafik, video, dll
RDBMS 12
Pengantar Basis Data
Data tidak harus disimpan di dalam database. Oracle9i Database mempunyai layanan dimana anda dapat menyimpan metadata mengenai informasi yang disimpan di dalam sistem file. Anda dapat menggunakan database server untuk mengatur dan melayani informasi dimana informasi itu berada.
Perintah-Perintah SQL pada Oracle9I
SELECT
Data Retrieval
INSERT
UPDATE
DELETE
MERGE
Data Manipulation Language (DML)
CREATE
ALTER
DROP
RENAME
TRUNCATE
Data Definition Language (DDL)
COMMIT
ROLLBACK
SAVEPOINT
Transaction Control
GRANT
REVOKE
Data Control Language (DCL)
PL/SQL
• PL/SQL merupakan perluasan SQL dengan keistimewaan disain dari bahasa pemrograman
• Perintah DML dan query dimasukkan ke dalam kode unit-unit prosedural
RDBMS 13
Pengantar Basis Data
Interaksi SQL dengan SQL *Plus
Formatted Report
Query Results
SQL *Plus Commands
Server
SQL Statements
SQL Statements
Buffer
SQL *Plus
Perbedaan Perintah SQL dengan SQL *Plus
SQL
SQL *Plus
• Sebuah bahasa
• Sebuah lingkungan
• Standard ANSI
• Milik Oracle
• Keyword tidak dapat disingkat
• Keyword dapat disingkat
• Perintah-perintah memanipulasi data dan mendefinisikannya di dalam database
• Perintah-perintah tidak dapat memanipulasi data di dalam database
SQL
buffer
SQL *Plus
buffer
Perintah SQL
Perintah SQL *Plus
RDBMS 14
Model Entity Relationship Halaman 1 dari 16
MODEL ENTITY-RELATIONSHIP
Model Entity Relationship Adalah suatu penyajian data
dengan menggunakan Entity dan Relationship
Entity
Entity adalah obyek yang dapat dibedakan dalam dunia
nyata
Entity set adalah kumpulan dari entity yang sejenis
Entity set dapat berupa :
– Obyek secara fisik : Rumah, Kendaraan, Peralatan
– Obyek secara konsep : Pekerjaan , Perusahaan,
Rencana
Relationship
Relationship adalah hubungan yang terjadi antara satu
atau lebih entity.
Relationship set adalah kumpulan relationship yang
sejenis.
PEGAWAI KERJA PROYEK
Model Entity Relationship Halaman 2 dari 16
ATRIBUT
Atribut adalah karakteristik dari entity atau relationship,
yang menyediakan penjelasan detail tentang entity atau
relationship tersebut.
Nilai Atribut merupakan suatu data aktual atau informasi
yang disimpan pada suatu atribut di dalam suatu entity
atau relationship.
Jenis-jenis atribut :
Key
Atribut yang digunakan untuk menentukan suatu entity
secara unik.
Atribut Simple
Atribut yang bernilai tunggal.
Atribut Multivalue
Atribut yang memiliki sekelompok nilai untuk setiap instan
entity.
TglLahir Ge
NIP Nama
PEGAWAI
Gelar
Model Entity Relationship Halaman 3 dari 16
Atribut Composite
Suatu atribut yang terdiri dari beberapa atribut yang lebih
kecil yang mempunyai arti tertentu.
Atribut Derivatif
Suatu atribut yang dihasilkan dari atribut yang lain.
Nama
Depan
Nama
Tengah Nama
Belakang
NAMA
PEGAWAI
TglLahir Umur
PEGAWAI
Model Entity Relationship Halaman 4 dari 16
Derajat dari relationship
Menjelaskan jumlah entity yang berpartisipasi dalam
suatu relationship
LAPOR
PEGAWAI KERJA PROYEK
PEGAWAI
PEGAWAI
KERJA
DEPARTEMEN
Unary Degree (Derajat Satu)
Binary Degree (Derajat Dua)
Ternary Degree (Derajat Tiga)
KOTA
Model Entity Relationship Halaman 5 dari 16
Cardinality Ratio Constraint
Menjelaskan batasan jumlah keterhubungan satu entity
dengan entity lainnya.
Jenis Cardinality Ratio
1 : 1
Pegawai Milik Kendaraan
r1 P1 k1
r2
p2 k2
r3
p3 k3
. . .
1
PEGAWAI MILIK KENDARAAN
1
Model Entity Relationship Halaman 6 dari 16
1 : N / N : 1
Pegawai Kerja Departemen
r1 P1 d1
r2
p2 d2
r3
p3 d3
r4
p4 .
. .
N 1
M : N
Pegawai Kerja Proyek
r1 P1 pr1
r2
p2 pr2
r3
p3 pr3
r4
.
. .
M N
PEGAWAI KERJA
DEPARTEMEN
PEGAWAI KERJA PROYEK
Model Entity Relationship Halaman 7 dari 16
Participation Constraint
Menjelaskan apakah keberadaan suatu entity tergantung
pada hubungannya dengan entity lain .
Terdapat 2 macam Participation Constraint :
Total Participation
Keberadaan suatu entity tergantung pada hubungannya
dengan entity lain.
N 1
PEGAWAI PUNYA BAGIAN
Partial Participation
Keberadaan suatu entity tidak tergantung pada
hubungannya dengan entity lain.
N 1
PEGAWAI KERJA PROYEK
Model Entity Relationship Halaman 8 dari 16
Weak entity
Weak Entity adalah suatu Entity dimana keberadaan dari
entity tersebut tergantung dari keberadaan entity lain.
Entity yang merupakan induknya disebut Identifying
Owner dan relationshipnya disebut Identifying
Relationship.
Weak Entity selalu mempunyai Total Participation
constraint dengan Identifying Owner.
NOPEG
PEGAWAI TANGGUNGAN
………. NAMA ………
MILIK
Model Entity Relationship Halaman 9 dari 16
Simbol-simbol ER-Diagram
Notasi Arti
1. 1. Entity
2. 2. Weak Entity
3. 3. Relationship
4. 4. Identifying Relationship
5. 5. Atribut
6. 6. Atribut Primary Key
7. 7. Atribut Multivalue
8. 8. Atribut Composite
9. 9. Atribut Derivatif
Model Entity Relationship Halaman 10 dari 16
Contoh Penggambaran Diagram ER
NOPEG NAPEG ALAMAT NABAG LOKASI
PEGAWAI
TGLLAH ANGGOTA
BAGIAN
UMUR
KERJA
NOBAG
PUNYA
JAM
1
M
N
N 1
1
P R O Y E K
NOPRO
NAPRO
ALM1 KDPOS
LOKAPR
TANGGUNGAN
NAMA JNKELT HUBUNGAN
N
PUNYA
KONTROL
PIMPIN
1 1
1 N
Model Entity Relationship Halaman 11 dari 16
Transformasi dari ERD ke Database Relasional
1. Setiap tipe Entity dibuat suatu relasi yang memuat semua
atribut simple, sedangkan untuk atribut composite hanya
dimuat komponen-komponennya saja.
NOPEG ALM1 KDPOS
PEGAWAI ALAMAT
PEGAWAI (NOPEG, ALM1, KDPOS, …….)
2. Setiap relasi yang mempunyai atribut multivalue, buatlah
relasi baru dimana Primary Keynya merupakan gabungan
dari Primary Key dari relasi tersebut dengan atribut
multivalue.
LOKPR(NOPRO, LOKASI)
3. Setiap Unary Relationship 1:N, pada relasi perlu
ditambahkan suatu foreign key yang menunjuk ke nilai
primary keynya.
NOPEG …….
1
N
PEGAWAI (NOPEG, ….., SUPERVISOR-ID)
PROYEK
NOPRO .... LOKASI
PEGAWAI KONTROL
Model Entity Relationship Halaman 12 dari 16
4. Setiap Unary Relationship M:N, buatlah relasi baru
dimana primary keynya merupakan gabungan dari dua
atribut dimana keduanya menunjuk ke primary key relasi
awal dengan penamaan yang berbeda.
NOBAR …….
M
BARANG TERDIRI JUMLAH
N
KOMBAR (NOBAR, NOKOMP , JUMLAH)
5. Setiap Binary Relationship 1:1, dimana Participation
Constraint keduanya total, buatlah suatu relasi gabungan
dimana Primary Keynya dapat dipilih salah satu.
1 1
PEGAWAI (NOPEG, ... , NOPRO, ...).
6. Setiap Binary Relationship 1:1 dan salah satu
Participation Constraintnya Total, maka Primary Key pada
relasi yang Participation Constraintnya Partial menjadi
Foreign Key pada relasi yang lainnya.
1 1
BAGIAN (NOBAG, ... , MANAGER)
PEGAWAI KERJA PROYEK
NOPEG NOPRO
1
PEGAWAI PIMPIN BAGIAN
NOPEG NOBAG
Model Entity Relationship Halaman 13 dari 16
7. Setiap Binary Relationship 1:1, dimana kedua
Participation Constraintnya partial, maka selain kedua
relasi perlu dibuat relasi baru yang berisi Primary Key
gabungan dari Primary Key kedua tipe Entity yang
berelasi.
1 1
PEKERJAAN ( NOPEG, NOPRO, …)
8. Setiap Binary Relationship 1 : N, dimana tipe Entity yang
bersisi N mempunyai Participation Constraint Total, maka
Primary Key pada relasi yang bersisi 1 dijadikan Foreign
Key pada relasi yang bersisi N.
N
PROYEK (NOPRO, ... , NOBAG)
PEGAWAI
PROYEK
KERJA
NOPEG NOPRO
BAGIAN PUNYA PROYEK
NOBAG ………. NOPRO
1
Model Entity Relationship Halaman 14 dari 16
9. Setiap Binary Relationship 1 : N, dimana tipe Entity yang
bersisi N mempunyai Participation Constraint partial,
buatlah relasi baru dimana Primary Keynya merupakan
gabungan dari Primary Key kedua tipe Entity yang
berelasi.
N 1
PEKERJAAN (NOPEG, NOPRO, ……)
10. Setiap Binary Relationship M:N, buatlah relasi baru
dimana Primary Keynya merupakan gabungan dari
Primary Key kedua tipe Entity yang berelasi.
M N
PEKERJAAN (NOPEG, NOPRO, …..)
PEGAWAI
PROYEK
KERJA
NOPRO
NOPEG ………
PEGAWAI
PROYEK
KERJA
NOPRO
NOPEG …… ..
Model Entity Relationship Halaman 15 dari 16
11. Setiap Ternary Relationship, buatlah relasi baru dimana
Primary Keynya merupakan gabungan dari Primary Key
ketiga tipe Entity yang berelasi.
KOTA
NOKOT
PEKERJAAN ( NOPEG, NOPRO , NOKOT)
12. Setiap tipe Weak Entity, dibuat suatu relasi yang
memuat semua atributnya dimana Primary Keynya
adalah gabungan dari Partial Key dan Primary Key dari
relasi induknya (identifying owner).
NOPEG
1 N
PUNYA
TANGGUNGAN (NOPEG, NAMA, ….)
PEGAWAI
PROYEK
KERJA
NOPRO
NOPEG
PEGAWAI TANGGUNGAN
……… NAMA
…….
Model Entity Relationship Halaman 16 dari 16
Hasil Transformasi dari Diagram ER ke database
relasional :
Skema Database
PEGAWAI (NOPEG, NAPEG, ALM1, KDPOS,TGLLAH,
UMUR, SUPERVISOR-ID, NOBAG)
BAGIAN (NOBAG, NABAG, LOKASI, MANAGER)
PROYEK (NOPRO, NAPRO, NOBAG)
LOKPR (NOPRO, LOKAPR)
PEKERJAAN (NOPEG, NOPRO, JAM)
TANGGUNGAN (NOPEG, NAMA, JNKELT,HUBUNGAN)
Normalisasi Hal 1 dari 11 hal
NORMALISASI
Definisi
Normalisasi adalah suatu teknik untuk mengorganisasi data ke
dalam tabel-tabel untuk memenuhi kebutuhan pemakai di
dalam suatu organisasi.
Tujuan dari normalisasi
Untuk menghilangkan kerangkapan data
Untuk mengurangi kompleksitas
Untuk mempermudah pemodifikasian data
Proses Normalisasi
Data diuraikan dalam bentuk tabel, selanjutnya dianalisis
berdasarkan persyaratan tertentu ke beberapa tingkat.
Apabila tabel yang diuji belum memenuhi persyaratan tertentu,
maka tabel tersebut perlu dipecah menjadi beberapa tabel yang
lebih sederhana sampai memenuhi bentuk yang optimal.
Normalisasi Hal 2 dari 11 hal
Tahapan Normalisasi
Bentuk Tidak Normal
Menghilangkan perulangan group
Bentuk Normal Pertama (1NF)
Menghilangkan ketergantungan sebagian
Bentuk Normal Kedua (2NF)
Menghilangkan ketergantungan transitif
Bentuk Normal Ketiga (3NF)
Menghilangkan anomali-anomali hasil dari
ketergantungan fungsional
Bentuk Normal Boyce-Codd (BCNF)
Menghilangkan Ketergantungan Multivalue
Bentuk Normal Keempat (4NF)
Menghilangkan anomali-anomali yang tersisa
Bentuk Normal Kelima
Normalisasi Hal 3 dari 11 hal
Ketergantungan Fungsional
Definisi :
Atribut Y pada relasi R dikatakan tergantung fungsional pada
atribut X (R.X ---> R.Y), jika dan hanya jika setiap nilai X pada
relasi R mempunyai tepat satu nilai Y pada R.
Misal, terdapat skema database Pemasok-barang :
Pemasok (No-pem, Na-pem)
Tabel PEMASOK-BARANG
No-pem Na-pem
P01 Baharu
P02 Sinar
P03 Harapan
Ketergantungan fungsional dari tabel PEMASOK-BARANG adalah :
No-pem ---> Na-pem
Ketergantungan Fungsional Penuh
Normalisasi Hal 4 dari 11 hal
Definisi :
Atribut Y pada relasi R dikatakan tergantung fungsional penuh
pada atribut X pada relasi R, jika Y tidak tergantung pada
subset dari X ( bila X adalah key gabungan)
Contoh :
KIRIM-BARANG( No-pem, Na-pem, No-bar, Jumlah)
No-pem Na-pem No-bar Jumlah
P01 Baharu B01 1000
P01 Baharu B02 1500
P01 Baharu B03 2000
P02 Sinar B03 1000
P03 Harapan B02 2000
Ketergantungan fungsional :
No-pem --> Na-pem
No-bar, No-pem --> Jumlah (Tergantung penuh thd keynya)
Ketergantungan Transitif
Normalisasi Hal 5 dari 11 hal
Definisi :
Atribut Z pada relasi R dikatakan tergantung transitif pada
atribut X , jika atribut Y tergantung pada atribut X pada relasi
R dan atribut Z tergantung pada atribut Y pada relasi R. (
X Y, Y Z , maka X Z )
Contoh :
No-pem Kode-kota Kota No-bar Jumlah
P01 1 Jakarta B01 1000
P01 1 Jakarta B02 1500
P01 1 Jakarta B03 2000
P02 3 Bandung B03 1000
P03 2 Surabaya B02 2000
Ketergantungan transitif :
No-pem Kode-kota
Kode-kota Kota , maka
No-pem Kota
Bentuk Normal Kesatu (1NF)
Normalisasi Hal 6 dari 11 hal
Suatu relasi dikatakan sudah memenuhi Bentuk Normal
Kesatu bila setiap data bersifat atomik yaitu setiap irisan
baris dan kolom hanya mempunyai satu nilai data
Tabel KIRIM-1 (Unnormal)
No-pem Kode-kota Kota No-bar Jumlah
P01 1 Jakarta B01 1000
B02 1500
B03 2000
P02 3 Bandung B03 1000
P03 2 Surabaya B02 2000
Tabel KIRIM-2 (1NF)
No-pem Kode-kota Kota No-bar Jumlah
P01 1 Jakarta B01 1000
P01 1 Jakarta B02 1500
P01 1 Jakarta B03 2000
P02 3 Bandung B03 1000
P03 2 Surabaya B02 2000
Diagram Ketergantungan Fungsional
Normalisasi Hal 7 dari 11 hal
Kode-kota
No-pem
Kota
Jumlah
No-bar
Bentuk Normal Kedua (2NF)
Suatu relasi dikatakan sudah memenuhi Bentuk Normal
Kedua bila relasi tersebut sudah memenuhi bentuk Normal
kesatu, dan atribut yang bukan key sudah tergantung penuh
terhadap keynya.
Tabel PEMASOK-1 (2NF)
No-pem Kode-kota Kota
P01 1 Jakarta
P02 3 Bandung
P03 2 Surabaya
Bentuk Normal Ketiga (3NF)
Normalisasi Hal 8 dari 11 hal
Suatu relasi dikatakan sudah memenuhi Bentuk Normal ketiga
bila relasi tersebut sudah memenuhi bentuk Normal kedua
dan atribut yang bukan key tidak tergantung transitif terhadap
keynya.
Tabel KIRIM-3 (3NF)
No-pem No-bar Jumlah
P01 B01 1000
P01 B02 1500
P01 B03 2000
P02 B03 1000
P03 B02 2000
Tabel PEMASOK-2 (3NF) Tabel PEMASOK-3 (3NF)
No-pem Kode-kota Kode-kota Kota
P01 1 1 Jakarta
P02 3 2 Surabaya
P03 2 3 Bandung
Normalisasi pada database perkuliahan
Asumsi :
Normalisasi Hal 9 dari 11 hal
Seorang mahasiswa dapat mengambil beberapa mata kuliah
Satu mata kuliah dapat diambil oleh lebih dari satu mahasiswa
Satu mata kuliah hanya diajarkan oleh satu dosen
Satu dosen dapat mengajar beberapa mata kuliah
Seorang mahasiswa pada mata kuliah tertentu hanya
mempunyai satu nilai
Tabel MAHASISWA-1 ( Unnormal )
No-Mhs Nama
- Mhs
Jurusan Kode-
MK
Nama-MK Kode-Dosen Nama-
Dosen
Nilai
2683 Welli MI MI350 Manajamen DB B104 Ati A
MI465 Analsis Prc. Sistem B317 Dita B
5432 Bakri Ak. MI350 Manajemen DB B104 Ati C
AKN201 Akuntansi Keuangan D310 Lia B
MKT300 Dasar Pemasaran B212 Lola A
Tabel MAHASISWA-2 ( 1NF )
No-Mhs Nama-
Mhs
Jurusan Kode-MK Nama-MK Kode-Dosen Nama-
Dosen
Nilai
2683 Welli MI MI350 Manajamen DB B104 Ati A
2683 Welli MI MI465 Analsis Prc. Sistem B317 Dita B
5432 Bakri Ak. MI350 Manajemen DB B104 Ati C
5432 Bakri Ak. AKN201 Akuntansi Keuangan D310 Lia B
5432 Bakri Ak. MKT300 Dasar Pemasaran B212 Lola A
Normalisasi Hal 10 dari 11 hal
Diagram Ketergantungan Fungsional
Nama_Mhs
No-Mhs Jurusan
Nilai
Nama-MK
Kode-MK Kode-Dosen
Nama-Dosen
Tabel KULIAH (2NF)
Kode-MK Nama-MK Kode-Dosen Nama-Dosen
MI350 Manajamen DB B104 Ati
MI465 Analsis Prc. Sistem B317 Dita
AKN201 Akuntansi Keuangan D310 Lia
MKT300 Dasar Pemasaran B212 Lola
Tabel MAHASISWA-3 (3NF)
No-Mhs Nama-Mhs Jurusan
2683 Welli MI
5432 Bakri Ak.
Normalisasi Hal 11 dari 11 hal
Tabel NILAI (3NF)
No-Mhs Kode MK Nilai
2683 MI350 A
2683 MI465 B
5432 MI350 C
5432 AKN201 B
5432 MKT300 A
Tabel MATAKULIAH (3NF)
Kode-MK Nama-MK Kode-Dosen
MI350 Manajamen DB B104
MI465 Analsis Prc. Sistem B317
AKN201 Akuntansi Keuangan D310
MKT300 DasarPemasaran B212
Tabel DOSEN (3NF)
Kode- Dosen Nama-Dosen
B104 Ati
B317 Dita
B310 Lia
B212 Lola
Senin, Juni 28, 2010
Langganan:
Postingan (Atom)