MODUL PERKULIAHAN
SISTEM BASISDATA
Modul ini berisi ringkasan materi yang harus disampaikan pada setiap pertemuan.
Rincian materi diserahkan sepenuhnya kepada dosen pengajar.
PERTEMUAN 1.
PENGERTIAN SISTEM BASIS DATA
Basisdata (Database) adalah kumpulan data yang saling berhubungan. Data adalah
fakta-fakta yang diketahui yang dapat direkam dan memiliki arti implisit. Contoh
data: nama, nomor telepon, dan alamat orang yang Anda kenal.
Data ini bisa ditulis di notes atau direkam ke disket menggunakan komputer dengan
software DBASE, PARADOX, atau EXCEL.
Pengertian di atas masih sangat umum. Basisdata (Bd) memiliki sifat-sifat sebagai
berikut:
Bd menggambarkan aspek dari dunia nyata yang disebut sebagai dunia kecil (mini
world).
Bd dirancang, dibangun, dan diisi dengan data untuk kegunaan yang khusus.
DBMS adalah sistem software serba guna yang menyediakan fasilitas untuk proses
mendefinisikan, membuat, dan memanipulasi basisdata untuk berbagai aplikasi.
Mendefinisikan database meliputi proses menentukan type data, struktur, dan batasan
data yang diletakkan dalam database.
Membuat database meliputi proses peletakan data kedalam media penyimpanan yang
dikendalikan oleh DBMS.
SISTEM BASISDATA
Program/Query
DBMS Software
Software untuk memproses
queries/programs
Definisi Db
(meta-data)
( Database
MAHASISWA
MATAKULIAH
KELAS
SYARAT
KodeMK Syarat
COSC3380 COSC3320
COSC3380 MATH2410
COSC3320 COSC1310
Untuk mendefinisikan Db, harus ditentukan dahulu stuktur record dari setiap file
dengan menentukan type elemen data yang diletakkan di record.
Setiap record MAHASISWA tersusun dari data yang menyatakan nama mahasiswa,
nomor registrasi, kelas, dan jurusan.
Masing-masing file dalam Db UNIVERSITAS saling terkait satu sama lain yang
dapat menyediakan informasi tentang kegiatan akademik.
Field merupakan nama kolom dari file Db. Nama, NRP, Kelas, Jurusan adalah contoh
dari field.
Record merupakan kumpulan data untuk satu individu. Desy Ratnasari, 17, 1, COSC
merupakan contoh record.
Cara terbaru adalah memisahkan sistem database dengan program yang disebut
sebagai pendekatan database. Karakteristik cara terbaru dijelaskan sebagai berikut.
1. Info-Diri Sistem Database. Db tidak hanya berisi db itu sendiri tetapi juga berisi
definisi atau deskripsi komplit dari db. Definisi diletakkan di sistem katalog yang
berisi informasi seperti struktur setiap file, type dan format pernyimpanan dari
setiap item data, serta berbagai batasan data. Informasi yang diletakkan di katalog
disebut sebagai meta-data.
2. Pemisahan Program & Data, dan Abstraksi Data. Dengan pemisahan maka
jika ada perubahan struktur data tidak akan mengubah program secara total. Selain
itu operasi-operasi (fungsi) terhadap data juga dapat dimasukkan ke Db sehingga
Db bersifat bebas program-operasi. Sifat tersebut, yaitu bebas program-data dan
bebas program-operasi, disebut sebagai abstraksi data. Db yang demikian
diterapkan pada Db berorientasi obyek.
Contoh: Dosen ingin melihat kelas, jadwal dari matakuliah yang dia ajar.
Mahasiswa ingin melihat kelas, jadwal, dosen, nilai.
b. Naive atau parametric end users. Pengguna yang secara konstan melakukan
berbagai macam operasi terhadap db. Operasi yang dilakukan berdasar operasi
yang sudah disediakan dan diprogram dengan baik yang disebut sebagai
canned transactions. Contohnya adalah teller bank, kasir.
c. Sophisticated end users. Pengguna ini adalah orang yang mengetahui cara
kerja DBMS, contoh: perekayasa, saintis, penganalisa bisnis.
1. Pendesain & Pembuat DBMS. Orang2 ini adalah perancang & pembuat DBMS
sehingga menjadi sebuah software.
2. Pembuat Tool. Tools adalah paket software yang membantu perancangan dan
penggunaan db serta membantu dalam meningkatkan unjuk kerja db. Tools
3. Operator & Pemelihara. Mereka adalah anak buah dari sistem administrasi
yang bertanggungjawab terhadap pemeliharaan jalannya software & hardware
2. Membatasi Hak Akses. Pada penggunaan multi-user maka user tertentu tidak
boleh mengakses data milik user lain, misalnya bagian kepegawaian tidak boleh
mengakses data milik bagian keuangan. DBMS harus memiliki subsistem
keamanan dan otorisasi dengan membuat nama user beserta password dan hak
akses (read/write, atau read saja).
3. Keluwesan. Jika ada perubahan struktur misalnya penambahan file atau field,
tidak akan mengganggu data yang lama.
Yang dimaksud dengan struktur basisdata disini adalah type data, relasi, dan batasan
yang harus dipenuhi oleh data. Banyak model-model data yang juga memasukkan
operasi dasar yang dikhususkan untuk pengambilan dan update data. Selain itu juga
ada konsep behavior yang menunjuk pada satu set operasi buatan user.
Model data representational adalah salah satu model yang banyak digunakan dalam
DBMS komersial. Pada model ini data digambarkan dengan menggunakan struktur
record sehingga disebut sebagai model data basis-record.
Skema basis data ditentukan selama desain basis data dan diharapkan tidak sering
berubah. Skema basis data biasanya digambarkan dalam bentuk diagram yang disebut
diagram skema.
MAHASISWA
KULIAH
Data aktual dalam basis data bisa sering berubah. Data didalam basis data pada suatu
waktu disebut sebagai keadaan basis data (database state) atau satu set instances.
Perbedaan antara skema dan keadaan basis data sangat penting. Saat kita
mendefinisikan basis data baru, kita hanya membuat skema basis data ke DBMS.
Pada saat itu keadaan basis data adalah keadaan kosong tanpa data. Kita memperoleh
data awal saat data pertama disimpan.
DBMS bertanggung jawab untuk meyakinkan bahwa setiap keadaan dari basis data
adalah sah (valid), yaitu memenuhi struktur dan batasan yang dinyatakan dalam
skema.
Skema kadang-kadang disebut sebagai intesion dan keadaan basis data disebut
extension dari skema.
Tiga sifat penting dari pendekatan basis data adalah (a) pemisahan program dan data,
(b) mendukung pandangan multi-user, dan (c) menyimpan katalog basis data (skema).
Pada bagian ini kita bahas tentang arsitektur sistem basis data yang disebut sebagai
arsitektur tiga-skema.
ARSITEKTUR TIGA-SKEMA
Tujuan dari arsitektur tiga-skema adalah memisah aplikasi user dengan fisik basis data.
Pada arsitektur ini skema dapat didefinisikan pada tiga tingkat berikut.
External level atau view level melingkupi sejumlah skema external atau user views.
Setiap skema eksternal mendeskripsikan bagian basis data yang diperlukan oleh
sekelompok user dan menyembunyikan seluruh basis data dari kelompok user tersebut.
Model data tingkat tinggi digunakan disini.
Tiga skema di atas hanyalah deskripsi dari data; hanya data yang benar-benar ada dalam
tingkat fisikal. Dalam arsitektur ini setiap user merujuk hanya pada skema miliknya.
DBMS akan mengubah data yang diambil dari fisikal ke eksternal agar cocok dengan
yang diminta oleh user. Proses mengubah permintaan dan hasil antar level disebut
mappings (pemetaan).
PEMETAAN
EKSTERNAL/KONSEPTUAL
TINGKAT
SKEMA KONSEPTUAL
KONSEPTUAL
PEMETAAN
KONSEPTUAL/INTERNAL
PENYIMPANAN BASISDATA
KEBEBASAN DATA
Arsitektur tiga-skema dapat digunakan untuk mengkaji konsep kebebasan data, yaitu
kemampuan untuk mengubah skema pada satu level sistem basis data tanpa mengubah
skema pada level atasnya. Ada dua type kebebasan data.
Kebebasan data logikal adalah kemampuan untuk mengubah skema konseptual tanpa
mengubah skema eksternal atau program aplikasi.
Kebebasan data fisikal adalah kemampuan untuk mengubah skema internal tanpa
mengubah skema konseptual.
BAHASA BASISDATA
Saat rancangan basisdata lengkap dan DBMS untuk implementasi basisdata dipilih,
langkah pertama adalah menentukan skema konseptual dan internal dan mapping.
Pada DBMS dimana ada pemisahan secara jelas antara level konseptual dan internal,
DDL digunakan untuk membuat level konseptual saja. Bahasa lain, yaitu bahasa definisi
penyimpanan (storage definition language/SDL) digunakan untuk skema internal.
Mapping diantara dua skema bisa dilakukan pada salah satu dari kedua bahasa di atas.
Untuk penerapan lengkap dari arsitektur tiga-skema, diperlukan bahasa ketiga yaitu
bahasa definisi tampilan (view definition language/VDL) untuk menentukan pandangan
bagi user dan pemetaannya ke skema konseptual.
Setelah skema dicompile dan basisdata diisi dengan data, user harus memiliki kesamaan
cara memanipulasi data. Manipulasi yang umum adalah membaca, sisip, hapus, dan
perubahan basisdata. Untuk itu diperlukan bahasa manipulasi data (data manipulation
language/DML).
Ada dua jenis DML: (a) tingkat-tinggi atau nonprocedural DML yang digunakan untuk
menentukan operasi basisdata secara ringkas. Statemen2 tingkat-tinggi dapat
dimasukkan secara interaktif di terminal atau dengan menggabungnya dengan bahasa
pemrograman tingkat tinggi (Pascal, C).
(b) tingkat-bawah atau procedural DML harus digabung dengan bahasa pemrograman.
Umumnya type ini mengakses data per record. Oleh karena itu level ini disebut sebagai
DML satu-waktu-record (record-at-a-time).
Query dalam DML tingkat tinggi sering mengatakan data apa yang akan diakses
daripada bagaimana mengakses data. Perintah DML, baik tingkat tinggi atau bawah,
yang digabung dengan bahasa pemrograman disebut sebagai bahasa tuan rumah (host
language) sementara DML sendiri disebut sebagai bagian-bahasa data (data
sublanguage). DML tingkat tinggi yang digunakan secara stand-alone disebut sebagai
bahasa query (query language).
ANTARMUKA DBMS
Antarmuka berbasis-menu. Antarmuka ini berupa daftar pilihan yang disebut menu
yang menuntun user mengatur permintaan. Dengan menu maka user tidak perlu
menghafal perintah dan sintak dari bahasa query; query biasanya dilakukan dengan
mengambil pilihan dari daftar menu yang ditampilkan oleh system. Sering disebut
sebagai antarmuka browse yang mengijinkan user melihat isi basisdata secara tidak
terstruktur.
Antarmuka berbasis-form. Antarmuka berupa form yang dapat diisi dengan data.
Antarmuka ini biasanya untuk naïve user.
Antarmuka untuk Parametric Users. Parametric user, seperti teller bank, biasanya
memiliki satu himpunan operasi yang dilakukan secara terus menerus. Antarmuka
disusun sedemikian rupa sehingga meminimalkan penggunaan keyboard.
Antarmuka untuk AD. Beberapa DBMS memiliki perintah khusus yang hanya dapat
digunakan oleh staff AD. Perintah tersebut misalnya menciptakan akun (nama user dan
password), memberi hak akses (granting), mengubah skema, dan mengubah struktur
basisdata.
Miniworld
PENGUMPULAN
KEBUTUHAN DAN
ANALISA
ANALISA DESAIN
FUNGSIONAL KONSEPTUAL
Bebas DBMS
DESAIN LOGIKAL
DBMS tertentu
DESAIN FISIKAL
IMPLEMENTASI
Skema internal
TRANSAKSI
Program Aplikasi
Entitas adalah sesuatu dalam dunia nyata yang keberadaannnya bebas. Entitas bisa
berupa wujud fisik seperti seseorang, mobil, rumah, atau pegawai, atau berujud konsep
seperti perusahaan, pekerjaan, atau perkuliahan di universitas. Setiap entitas dijelaskan
melalui properti (sifat atau ciri) yang disebut atribut. Sebagai contoh, entitas pegawai
bisa dideskripsikan oleh nama, umur, alamat, gaji, dan pekerjaannya. Suatu entitas
memiliki nilai untuk setiap atribut. Nilai atribut inilah yang direkam kedalam
penyimpanan data dalam basisdata.
Sebagai contoh berikut ini adalah entitas pegawai dan nilai atributnya.
PEGAWAI
Nama Alamat Umur Telephone
Tessy Jl. Kembang 21, Jakarta 110000 55 031234123
Dessy Jl. Kerbau 456, Sukabumi 130987 30 029018736
JENIS-JENIS ATRIBUT
Atomik atau simple merupakan atribut yang bernilai tunggal dan tak dapat dipecah
lagi, contoh: atribut umur, tinggi badan.
Komposit (Composite) adalah atribut yang dapat dibagi dalam subbagian yang lebih
kecil, yaitu atribut atomik. Sebagai contoh atribut alamat seperti contoh di atas terdiri
dari nama jalan dan nomor rumah, nama kota, dan kode pos. Suatu atribut disebut
komposit atau atomik tergantung dari pengertian yang diinginkan terhadap atribut
tersebut. Sebagai contoh jika tidak diperlukan rujukan terhadap komponen individu
terhadap nama jalan, kota, dan kode pos maka atribut alamat di atas bisa dianggap
sebagai atomik. Tetapi jika kita menginginkan untuk merujuk pada kota dan kode pos
maka atribut alamat di atas merupakan atribut komposit. Atribut komposit biasanya
harus dipecah menjadi atribut-atribut yang lebih kecil sehingga untuk entitas pegawai
menjadi demikian.
PEGAWAI
Nama Alamat Kota Kode Pos TanggalLahir Telephone
Tessy Jl. Kembang Jakarta 110000 12/10/1975 031234123
21
Dessy Jl. Kerbau 456 Sukabumi 130987 30/01/1980 029018736
Nilaitunggal (Single valued) adalah atribut yang bernilai satu untuk satu entitas.
Contohnya adalah atribut tanggal lahir. Setiap entitas atau pegawai tanggal lahirnya
pasti satu.
Nilaijamak (Multivalued) adalah atribut yang nilainya lebih dari satu untuk satu entitas.
Contohnya adalah atribut pendidikan yang pernah ditempuh. Bagi mereka yang lulusan
Perguruan Tinggi paling tidak pernah menempuh pendidikan SD, SMP, SMU, dan
Sarjana, sehingga atribut ini memiliki nilai yang banyak.
Atribut Kunci (Key Attribute) merupakan atribut yang berfungsi sebagai pembeda antar
entitas satu dengan yang lain. Sebagai contoh atribut NIM merupakan atribut pembeda
antara mahasiswa yang satu dengan yang lain. Nilai atribut kunci harus unik tidak boleh
bernilai sama. Atribut kunci digunakan pula sebagai wakil suatu entitas saat direlasikan
dengan entitas lain. Atribut yang demikian dinamakan atribut utama (primary key).
Atribut lain adalah kunci parsial (partial key) yang dimiliki oleh entitas lemah.
KARDINALITAS/DERAJAD RELASI
Kardinalitas menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas
pada himpunan entitas yang lain. Hubungan antar entitas ada 3 macam, yaitu:
Cara menentukan kardinalitas adalah dengan melihat hubungan dari masing-masing sisi
dalam bentuk 1:X, dimana 1 ditinjau dari sisi tertentu dan X bisa bernilai 1 atau N yang
ditentukan berdasar deskripsi yang diberikan saat tahap pengumpulan kebutuhan
sistem. Setelah diperoleh nilai kardinalitas pada masing-masing sisi maka keduanya
digabung dengan ketentuan:
1. Jika pada sisi yang sama terdapat kardinalitas Satu dengan Satu maka cukup ditulis
1.
2. Jika pada sisi yang sama terdapat kardinalitas Banyak dengan Satu atau sebaliknya
maka yang ditulis adalah N atau M.
Contoh 1: jika ada pernyataan bahwa mahasiswa boleh mengambil matakuliah lebih
dari satu dan satu matakuliah boleh diambil beberapa mahasiswa maka:
Keduanya digabung:
Sehingga
Kardinalitas boleh juga dinyatakan dalam bentuk yang presisi dengan menuliskan
secara tepat nilai kardinalitasnya. Sebagai contoh jika ada pernyataan bahwa setiap
mahasiswa hanya boleh meminjam maksimal 3 buku di perpustakaan maka kardinalitas
BUKU dan MAHASISWA adalah 3:N.
Entitas
Relasi
Atribut
Identifikasi
Atribut dengan Relasi
key
Sambungan Partisipasi
Total
Atribut Multivalued
Entitas
lemah
Atribut komposit
Atribut derived
1 1
E1 R E2 Kardinalitas 1:1
E1 1 R N E2 Kardinalitas 1:N
N 1
E1 R E2 Kardinalitas N:1
E1 M R N E2 Kardinalitas M:N
Entitas lemah (Weak Entity) adalah entitas yang tidak memiliki primary key tetapi
memiliki partial key yang merupakan himpunan atribut yang secara unik menyatakan
hubungan antara entitas lemah dengan entitas pemilik. Entitas lemah biasanya bersifat
partisipasi total terhadap entitas pemiliknya yang berarti bahwa jika tuple (record) di
entitas pemilik dihapus maka record yang bersesuaian di entitas lemah ikut lenyap.
Penghubung antara entitas lemah dengan entitas pemiliknya dinamakan identifikasi
relasi (Weak Relationship). Contoh hubungan yang demikian adalah hubungan antara
entitas pegawai dan keluarganya. Entitas pegawai merupakan pemilik entitas keluarga
Tidak semua entitas yang bersifat partisipasi total adalah entitas lemah. Sebagai contoh
relasi antara penduduk dengan Surat Ijin Mengemudi (SIM). SIM bersifat partisipasi
total terhadap penduduk namun setiap SIM punya primary key Nomor SIM.
Derajad relasi adalah jumlah entitas yang berpartisipasi dalam relasi. Sebagai contoh
relasi MENGAMBIL yang merelasikan dua entitas yaitu MAHASISWA dan MATAKULIAH
pada gambar di bawah ini type derajad relasinya adalah binary.
Kode
NIM
Matakuliah
Model ER berikut ini adalah type relasi ternary (tiga entitas berelasi).
Kode Kode
Jumlah
Supplier Proyek
Kode
Barang
BARANG
Pada tahap ini pendesain basisdata memperoleh deskripsi dari “miniworld” sebagai
dasar pembentukan basisdata. Pengumpulan kebutuhan sistem bisa diperoleh melalui
wawancara atau form-form yang dipunyai oleh Perusahaan atau sumber lainnya.
Deskripsi haruslah disusun sedemikian rupa sehingga untuk satu item deskripsi hanya
menyangkut satu pengertian atau satu pokok pikiran yang penting.
1. Perusahaan dibagi menjadi divisi-divisi. Setiap divisi memiliki nama yang unik,
nomor yang unik, dan satu pegawai tertentu yang diangkat sebagai pimpinan divisi.
Kita juga mencatat sejak kapan pimpinan mulai bekerja pada divisi tersebut. Satu
divisi bisa memiliki beberapa lokasi.
2. Sebuah divisi mengendalikan sejumlah proyek. Masing-masing proyek memiliki
nama unik, nomor unik, dan satu lokasi dimana proyek dikerjakan. Setiap proyek
dikendalikan oleh satu divisi dan satu divisi bisa menangani beberapa proyek.
3. Data-data pegawai yang direkam adalah nama, NIP, alamat, tanggal lahir, jenis
kelamin, dan gaji. Setiap pegawai menjadi anggota pada satu divisi tetapi bisa
bekerja pada berbagai proyek. Setiap pegawai yang bekerja pada proyek dicatat jam
kerjanya. Setiap pegawai memiliki pembimbing yang juga pegawai.
4. Keluarga pegawai juga dicatat untuk keperluan asuransi. Data keluarga yang dicatat
adalah nama, jenis kelamin, tanggal lahir, dan hubungan.
2. Analisa domain
Pada tahap ini pendesain basisdata melakukan analisa untuk mengelompokkan data-
data berdasar deskripsi dalam kelompok-kelompok (domain) yang berkaitan. Pada
tahap ini harus mulai dikenali obyek mana yang bertindak sebagai entitas, relasi, dan
atribut. Entitas biasanya merupakan kata benda dan atribut merupakan penjelasan dari
kata benda yang terkait. Relasi biasanya berupa kata kerja yang mengkaitkan dua buah
entitas.
Untuk memudahkan analisa maka deskripsi di atas bisa diberi coretan pada kata-kata
yang termasuk pada salah satu kategori obyek model ER. Bila sebuah kata adalah entitas
maka diberi garis bawah dua, dan atribut diberi garis bawah satu. Relasi diberi garis
bawah bergelombang. Contoh: Pegawai, nama pegawai, dan pegawai bekerja pada divisi
tertentu. Dengan cara ini maka deskripsi di atas menjadi demikian.
1. Perusahaan dibagi menjadi divisi-divisi. Setiap divisi memiliki nama yang unik,
nomor yang unik, dan satu pegawai tertentu yang diangkat sebagai pimpinan divisi.
Kita juga mencatat sejak kapan pimpinan mulai bekerja pada divisi tersebut. Satu
divisi bisa memiliki beberapa lokasi.
2. Sebuah divisi mengendalikan sejumlah proyek. Masing-masing proyek memiliki
nama unik, nomor unik, dan satu lokasi dimana proyek dikerjakan. Setiap proyek
dikendalikan oleh satu divisi dan satu divisi bisa menangani beberapa proyek.
3. Data-data pegawai yang direkam adalah nama, NIP, alamat, tanggal lahir, jenis
kelamin, dan gaji. Setiap pegawai menjadi anggota pada satu divisi tetapi bisa
bekerja pada berbagai proyek. Setiap pegawai yang bekerja pada proyek dicatat jam
kerjanya. Setiap pegawai memiliki pembimbing yang juga pegawai.
4. Keluarga pegawai juga dicatat untuk keperluan asuransi. Data keluarga yang
dicatat adalah nama, jenis kelamin, tanggal lahir, dan hubungan dengan pegawai.
Dari coretan di atas maka kita peroleh domain entitas dan relasi sebagai berikut setelah
menyesuaikan atribut.
3. Analisa Atribut
Dari analisa maka atribut Lokasi Divisi merupakan atribut Multivalued dan atribut lain
adalah atribut atomik. Sedangkan atribut yang bertindak sebagai primary key adalah
atribut yang diberi garis bawah seperti terlihat pada bagan di bawah ini. Pada tahap
penentuan atribut kunci dimungkinkan pula untuk memunculkan atribut baru yang
bertindak sebagai atribut kunci. Atribut Nama Keluarga merupakan atribut kunci
parsial.
Pada tahap ini entitas atau relasi ditinjau kembali sehingga tidak ada relasi yang
redundan. Analisa terhadap Relasi MENGENDALIKAN dan MENANGANI ternyata
keduanya adalah hal yang sama sehingga relasi ini bisa diambil salah satu. Kita putuskan
mengambil relasi dengan nama MENGENDALIKAN.
Pada tahap ini dibuat model ER tanpa perlu menuliskan entitas atau hubungan lemah.
Model ini sebenarnya sudah cukup digunakan sebagai model basisdata Perusahaan dan
sebagai dasar pembuatan skema basisdata. Pemetaan dari model ER ke skema basisdata
akan dibahas pada bagian tersendiri.
Tahap ini merupakan tahap akhir desain dengan mengikutsertakan atribut weak, seperti
entitas dan relasi lemah, dan partisipasi total. Tahap ini bersifat opsional dan boleh
tidak dilakukan. Tahap ini dilakukan untuk lebih memperhalus model ER sehingga
diperoleh model yang mampu menjelaskan partisipasi masing-masing entitas dalam
suatu relasi.
Meskipun telah diperoleh model ER yang sudah lengkap dan mampu menggambarkan
relasi antar entitas namun analisa lebih lanjut harus dilakukan dengan
mengkonsultasikan model ini dengan user. Jika ini dilakukan dan user sudah merasa
puas dan membenarkan model ini maka langkah selanjutnya adalah membuat skema
basisdata.
Tanggal
Alamat
Nama Lahir Nomor Nama Tanggal
pegawai Divisi Divisi Mulai Kerja
Jenis
Kelamin
NIP
N 1
ANGGOTA
Lokasi
PEGAWAI DIVISI
Divisi
Gaji
PIMPINAN
1 1
MENGENDALIKAN
1 N
PEMBIMBING
1
N
M BEKERJA
HUBUNGAN PROYEK
PADA
KELUARGA
Hubungan
Nama
Keluarga
Jenis Tanggal
Kelamin Lahir
Tanggal
Alamat
Nama Lahir Nomor Nama Tanggal
pegawai Divisi Divisi Mulai Kerja
Jenis
Kelamin
NIP
N 1
ANGGOTA
Lokasi
PEGAWAI DIVISI
Divisi
Gaji
PIMPINAN
1 1
MENGENDALIKAN
1 N
PEMBIMBING
1
N
M BEKERJA
HUBUNGAN PROYEK
PADA
KELUARGA
KELUARGA
Hubungan
Nama Tanggal
Keluarga Jenis Lahir
Kelamin
Partisipasi total DIVISI dan PEGAWAI pada relasi ANGGOTA mengisyaratkan bahwa
setiap pegawai harus menjadi anggota suatu divisi, demikian pula sebaliknya jika ada
divisi baru maka harus ada pegawai yang bekerja pada divisi itu. Hal ini muncul dari
ketentuan dari perusahaan bahwa jika suatu divisi dibubarkan, misalnya ada
rasionalisasi, maka secara otomatis pegawai pada divisi tersebut akan dirumahkan
sehingga datanya dalam entitas PEGAWAI dihapus. Juga ketentuan perusahaan yang
menyatakan bahwa setiap pegawai sepanjang waktu dipekerjakan pada Divisi-divisi
yang telah ditentukan.
Partisipasi total lain adalah DIVISI dalam relasi PIMPINAN yang diperoleh dari
kenyataan bahwa setiap DIVISI harus memiliki pimpinan sepanjang waktu. Dalam relasi
ini pegawai tidak berpartisipasi secara total karena tidak setiap pegawai harus menjadi
pimpinan dalam satu waktu.
Cobalah menganalisa partisipasi lain yang terdapat dalam model ER Perusahaan di atas.
Setelah memperoleh model ER yang sudah solid maka proses selanjutnya membuat
skema basisdata berdasar model yang telah dibuat. Berikut ini petunjuk yang bisa
digunakan untuk memetakan model ER ke skema basisdata berupa tabel-tabel yang
saling berelasi.
Langkah 1: Untuk setiap entitas reguler E (non-weak), buatlah skema tabel yang
mengikutkan semua atribut atomik dari E. Untuk atribut komposit maka pecahlah
atribut ini menjadi sub-atribut sehingga tercipta atribut yang atomik. Contoh atribut
alamat bisa dipecah menjadi atribut Alamat, Kota, dan Kode Pos. Pilih salah satu atribut
dari E sebagai primary key dari skema tabel. Jika kunci yang dipilih ternyata atribut
komposit maka himpunan atribut atomik yang membentuk atribut komposit tersebut
bersama-sama menjadi primary key dari skema tabel. Atribut multivalued dan turunan
tidak dituliskan dalam skema tabel. Untuk model ER non-weak maka semua entitas
dianggap entitas kuat sehingga semua entitas diubah ke skema basisdata.
Contoh:
Untuk entitas E adalah PEGAWAI dan skema tabel juga diberi nama PEGAWAI
(umumnya nama skema tabel sama dengan nama entitas E dalam model ER) maka
diperoleh skema basisdata sebagai berikut.
PEGAWAI
DIVISI
PROYEK
Nomor
Nama Proyek Lokasi
Proyek
Langkah 2: Untuk setiap entitas lemah W dalam model ER dengan pemilik adalah
entitas E, ciptakan skema tabel dengan memasukkan semua atribut atomik dari W
sebagai atribut skema tabel. Selanjutnya masukkan primary key dari E sebagai kunci
tamu di skema tabel. Kunci tamu ini bertindak sebagai pengidentifikasi relasi. Langkah
ini tidak dilakukan untuk model ER non-weak.
KELUARGA
Sekarang primary key dari KELUARGA adalah kombinasi dari {NIP, Nama Keluarga}.
Catatan yang harus diberikan disini adalah bahwa Nama keluarga untuk satu pegawai
tidak boleh sama. Kunci tamu diberi garis bawah ganda.
Langkah 3: Untuk setiap kardinalitas 1:1 dalam model ER tentukan entitas mana yang
berpartisipasi total dan jadikan primary key dari entitas yang tidak berpartisipasi total
menjadi foreign key (kunci tamu) dalam entitas yang berpartisipasi total. Untuk model
ER non-weak maka analisanya sama, yaitu carilah salah satu entitas yang sangat
bergantung (berpartisipasi total) terhadap relasi.
Pada model ER kita terdapat kardinalitas 1:1 pada relasi PIMPINAN yang
menghubungkan entitas PEGAWAI dengan DIVISI. Karena entitas DIVISI berpartisipasi
total maka primary key PEGAWAI menjadi kunci tamu bagi entitas DIVISI. Skema relasi
DIVISI setelah menyesuaikan nama kunci tamu menjadi NIP Pimpinan adalah sebagai
berikut.
DIVISI
Langkah 4: Untuk relasi kuat dengan kardinalitas 1:N, maka primary key entitas dari
sisi 1 menjadi kunci tamu bagi entitas sisi N.
PEGAWAI
NIP Nama Pegawai Alamat Tanggal Lahir Jenis Kelamin Gaji Nomor Divisi NIP Pembimbing
PROYEK
Nomor
Nama Proyek Lokasi Nomor Divisi
Proyek
Langkah 5: Untuk setiap relasi yang memiliki kardinalitas M:N maka diciptakan skema
tabel yang baru S dan semua primary key dari entitas yang berpartisipasi merupakan
kunci tamu di S. Masukkan juga atribut atomik yang merupakan atribut relasi jika ada.
BEKERJA PADA
Primary key dari skema BEKERJA PADA sekarang adalah kombinasi foreign key {NIP,
Nomor Proyek}.
Langkah 6: Untuk setiap atribut multivalued, ciptakan skema tabel baru dengan atribut
adalah atribut multivalued tersebut dengan primary key dari entitas dimana atribut
multivalued ini berasal.
LOKASI DIVISI
Sekarang kita telah memiliki skema basisdata yang komplit yang merupakan skema
konseptual yang nantinya dipetakan kedalam skema internal melalui DBMS tertentu.
Untuk pemetaan ini diperlukan Kamus Data yang akan menjelaskan secara rinci type
data dari masing-masing atribut. Pada bagian ini disajikan kembali skema basisdata
perusahaan.
PEGAWAI
NIP Alamat
Nama Pegawai Tanggal Lahir Jenis Kelamin Gaji Nomor Divisi NIP Pembimbing
DIVISI
Nomor Divisi Nama Divisi NIP Pimpinan Tanggal Mulai Kerja
LOKASI DIVISI
Nomor Divisi Lokasi Divisi
PROYEK
Nomor
Nama Proyek Lokasi Nomor Divisi
Proyek
BEKERJA PADA
NIP Nomor Proyek Jam Kerja
KELUARGA
NIP Nama Keluarga Jenis Kelamin Tanggal Lahir Hubungan
Pada saat skema ini diimplementasikan ke suatu DBMS maka bisa terjadi penyesuaian
sesuai dengan karakteristik DBMS. Sebagai contoh pada skema BEKERJA PADA yang
memiliki primary key komposit berupa gabungan dari atribut NIP dan NomorProyek
tidak dapat dilakukan pada MsAccess karena MSAccess hanya mengenal primary key
atomic. Untuk itu perlu diciptakan atribut atomic baru yang berfungsi sebagai primary
key pengganti sehingga skema untuk table BEKERJA PADA bisa diganti dengan skema
berikut ini.
BEKERJA PADA
Nomor
ID NIP Jam Kerja
Proyek
Atribut primary key ID berfungsi sebagai pengganti primary key komposit NIP dan
NomorProyek.