Post on 07-Jan-2023
Bambang Tri Hatmojo suami Mayangsari Mayangsari istri Bambang Tri Hatmojo Bambang Tri Hatmojo + Mayangsari mpy …. anak Anaknya bernama ………………… Tadi pagi Bambang Tri Hatmojo menceraikan
istrinya Data ???
James Martin (1975) A database may be defined as a collection of interrelated data stored together without harmful or unnecessary redundancy to serve one or more applications in an optimal fashion; the data are stored so that they are independent of programs with use the data; a common and controlled approach its used in adding new data and in modifying and retrieving existing data within the database
Pengertian BD
sekumpulan interrelated data disimpan scr bersama2 pd suatu media tanpa mengatap 1 sm lain a/ tdk perlu kerangkapan data (controlled redundancy))
disimpan dg cara2 ttt mudah digunakan a/ ditampilkan
dpt digunakan o/ 1/lbh program aplikasi scr optimal
disimpan tanpa tgt dg program yg menggunakan disimpan sdmkrp shg pe+, pengambilan & modifikasi dpt dilakukan dg mudah & terkontrol
Database processing data oriented & bkn program oriented dpt digunakan o/ pemakai yg berbeda2 a/
bbrp prog aplikasi tanpa mengubah BD data dlm BD dpt berkembang dg mudah
(volume – struktur) data yg ada dpt memenuhi kebutuhan
sistem2 baru scr mudah data dpt digunakan dg cr yg berbeda2 data redundancy minimal
File processing hny dpt digunakan o/ 1 program
aplikasi berhub dgn persoalan ttt u/ sist yg
direncanakan perkembangan data hny mgkn tjd pd
volume data hny dpt digunakan dgn 1 cr ttt saja kerangkapan data
Pengertian SBD
sekumpulan susbsistem yg tda BD para pemakai yg menggunakan BD scr
bersama2 personal2 yg merancang & mengelola
BD teknik2 u/ merancang & mengelola BD sist komputer
Elemen SBD BD Software
perancangan pengelolaan dBase III++, Foxbase, Foxpro, Visual Dbase, Visual Foxpro, Delphi,
Ms Access, MySQL Hardware Brainware
pemakai spesialis informasi
perancang pengelola
DBMS adalah SW U/ pengelolaan basis data
DDL DML DCL
Penyimpanan Pengaturan Mekanisme pengamanan data Pemakaian data scr bersama Pemaksaan akurasi data
DBMS terpisah dg aplikasi Aplikasi tidak berinteraksi lgs dg BD,
ttp mll DBMS sbg perantara. DBMS bisa melakukan aktifitas sendiri yg
bisa ditangkap o/ aplikasi Contoh DBMS : MS SQL Server, Oracle, CA-
OpenIngres, Sybase, Informix, IBM DB2 Cocok u/ aplikasi single-user / standalone,
yg ringan
AplikasiDBMS
BasisdataAplikasi
DBMS menyatu dg aplikasi Aplikasi BD yg dibuat menyatu dg DBMS pd
saat pemakaiannya Aplikasi BD berada ‘di bawah’ DBMS (sub-
ordinate) DBMS hrs diaktifkan dulu sgl menjalankan
aplikasi Contoh DBMS : dBase III+, FoxBase,
FoxPlus, CA-Clipper, MS-Access Cocok untuk aplikasi multi-user, yg berat
DBMS | Aplikasi Basis
DataDBMS |
Aplikasi
Arsitektur Aplikasi BD
Pertimbangan memilih arsitektur aplikasi BD:
Keunggulan teknologi Faktor biaya Sesuai dg kebutuhan pemakai
Centralized: Tda:
1 server se-jml terminal
2 macam: Thin client Fat client
Basis
data
Application server
Dumb terminal
Dumb terminal
Basis data
File server
workstations
workstations
Client server: U/ mengatasi kelemahan pd sistem centralized Tda:
Client aplikasi basis data Server DBMS + BD
2 macam : Arsitektur 2-tier Arsitektur 3-tier
Basis data
DBMS server
Client Client
workstation workstation workstation workstation
Arsitektur 3-tier:
Pertimbangan memilih SW u/ membangun aplikasi BD: Kecocokan DBMS & development tools
Sw yg dipilih hrs menjamin tersedianya fasilitas yg dp digunakan u/ berinteraksi dg DBMS scr penuh
Dukungan development tools thd arsitektur aplikasi BD Tdk semua development tools memberi dukungan yg baik thd arsitektur
client-server Independensi development tools & DBMS
Idealnya hny ada 1 macam DBMS yg dipilih u/ mengelola BD Perlu kompromi saat memilih development tools yg cocok u/ semua DBMS
Kemudahan pengembangan & migrasi aplikasi BD Development tools yg dipilih hrs mendukung pengembangan ke masa depan,
ex: web based kemudahan migrasi, ex: dari form-base mjd web based
Pertimbangan kinerja/kecepatan operasi ke BD ditentukan o/:
DBMS Arsitektur HW yg mjd platform Jml pemakai yg terlibat Volume data yg diolah Tingkat kompleksitas operasi BD Cara penulisan aplikasi BD
Pertimbangan dl penulisan aplikasi BD:1. Se-dpmgk memanfaatkan indeks primer / sekunder dl stp
proses query ke BD2. Menghindari pemakaian fungsi ato perhitungan pd query,
terlebih pd kriteria query3. Operasi join pd beberapa tabel dp digunakan u/
efisiensi perintah & banyaknya data yg hrs ditangani4. Pd sistem multi-user dg tk konkurensi tinggi, sesegara
mgk melepaskan penguncian tabel di akhir stp query5. Manfaatkan se-bykmgk fungsi yg tlh disediakan DBMS ato
development tools dl operasi BD6. Jk ada perintah looping dg penelusuran ke slrh BD pd
se-bh tabel, se-dpmgk menempatkan berbagai perintah yg tdk relevan di luar perulangan
Se-dpmgk memanfaatkan indeks primer / sekunder dl stp proses query ke BD:
Contoh: SELECT…. FROM pegawai WHERE idpegawai =
vidpegawai UPDATE pegawai SET …WHERE idpegawai = vidpegawai DELETE FROM pegawai WHERE idpegawai = vidpegawai
Menghindari pemakaian fungsi ato perhitungan pd query, terlebih pd kriteria query
Contoh:SELECT ‘01’+LEFT(nomhs,2) AS vthn FROM mahasiswa WHERE …Diganti menjadi :SELECT nomhs AS vnim FROM mahasiswa WHERE thn_masuk =
‘01’+left(vnim,2)Catatan:
Pd arsitektur cilent-server : Perintah awal: pencarian data & penerapan fungsi
dilakukan di server Perintah baru: dibuat fungsi & perhitungan bukan merup
bag perintah query, server hny melakukan pencarian data, sdg-kan pengerjaan fungsi dilakukan di client
Contoh: SELECT … FROM kuliah WHERE LEFT(kdmtk,3)=’TFD’
Diganti menjadiSELECT … FROM kuliah WHERE kdmtk LIKE ‘TFD%’
Catatan: Perintah awal: tdk menggunakan kunci primer Perintah baru: menggunakan indeks kunci primer
Operasi join pd beberapa tabel dp digunakan u/ efisiensi perintah & banyaknya data yg hrs ditangani
Contoh: Ada 2 perintah:
SELECT kdmtk AS vkdmtk, nilai AS vnilai FROM nilai WHERE nomhs=vnomhs
Select sks AS vsks FROM kuliah WHERE kdmtk=vkdmtk Dapat digabungkan mjd:
SELECT a.nilai AS vnilai, b.sks AS vsks FROM nilai a, kuliah b WHERE a.nomhs=vnomhs AND a.kdmtk=b.kdmtk
Pd sistem multi-user dg tk konkurensi tinggi, sesegara mgk melepaskan penguncian tabel di akhir stp query
Proses dilakukan dl 2 tahap menyimpan sementara di buffer memory menuliskan ke dl disk U/ membatalkan proses ada perintah rollback Contoh:
INSERT INTO nilai (nomhs, kdmtk) VALUES (vnomhs, vkdmtk) COMMIT
Catatan:Commit u/ merekam ke disk
Manfaatkan se-bykmgk fungsi yg tlh disediakan DBMS ato development tools dl operasi BD
Contoh:SELECT COUNT (*) AS vjumlah FROM mahasiswa WHERE nomhs=vnomhs
IF vjumlah=0 THEN ECHO “Tidak ketemu..”
ELSE SELECT nama AS vnama FROM mahasiswa WHERE nomhs=vnomhs
ENDIF
Akan lebih baik, jika diganti mjd:
SELECT nama AS vnama FROM mahasiswa WHERE nomhs=vnomhs Inquire_sql (jumlah=rowcount)IF vjumlah=0 THENECHO “Tidak ketemu…”ELSE ECHO “Nama : “;&vnamaENDIF
Jk ada perintah looping dg penelusuran ke slrh BD pd se-bh tabel, se-dpmgk menempatkan berbagai perintah yg tdk relevan di luar perulanganI=1
Buka tabel XWhile (row belum habis) do
Tampilkan pesan “Sedang diproses…”
Total=total+yRata=total/iI=i+1Ke row berikutnya
EndwhileTampilkan total dan rata
I=0Tampilkan pesan “Sedang diproses…”Buka tabel XWhile (row belum habis) do
Total=total+yI=i+1Ke row berikutnya
EndwhileRata=total/iTampilkan total dan rata
Algoritma di atas dapat diperbaiki
mjd:
Pemeliharaan Integritas BD dl Aplikasi BD
Sbg sarana u/ meyakinkan bhw nilai-2 data dl BD sll benar, konsisten, sll curent
Dp dilakukan dg cr: Memastikan bhw nilai-2 data adl benar sjk
dimasukkan pertama kali Membuat program u/ mengecek keabsahan data pd saat
dimasukkan ke komputer Penolakan / pembatalan aksi (cancelation) Pengisian nilai kosong pd field ttt (nullify) Penjalaran perubahan (cascade)
Integritas yg hrs dijaga: Keunikan data:
Definisi struktur tabel dg membuat indeks primer unik Pengkodean dl aplikasi BD pd saat
pemasukan/penambahan data lebih user-friendly
Kedua cara tsb diterapkan bersamaan Domain data:
Penetapan tipe data pd stp field dl tabel Pengisian validation rule dari DBMS
Referensial: Kesalahan referensial dp menimbulkan kesalahan baru Pengecekan pd INSERT, UPDATE, DELETE
Aturan nyata: Sangat kasuistis Tidak berlaku umum Pada kasus yg berbeda, aturannya akan berbeda pulaCatatan:Untuk mengakomodasi perbedaan business role , dp dilakukan dg menyiapkan tabel khusus yg menampung nilai-2 konstanta yg dibutuhkan aplikasi pd saat dijalankan yg mudah diubah tanpa mengakibatkan perubahan aplikasi ato struktur BD
Administrasi Dokumentasi
Model basis data Menentukan proses yg diperlukan u/ pembentukan & perawatan
file, & pemanggilan informasi Dokumen:
Schema Kerelasian antara relasi dl BD Definisi variabel yg dipakai
Manajemen Manajemen aktivitas BD Manajemen struktur BD Manajemen DBMS
Manajemen aktivitas BD Apabila slm penerapan ada perubahan BD, mk
perubahan & ujicoba dilakukan pd BD cadangan Manajemen aktifitas data merupakan tugas DBA
Tugas DBA lainnya: Menentukan standard, panduan, pengawasan prosedur, & membuat
dokumentasi u/ memastikan tdk tjd tumpang tindih dl pengaturan data Mengatur kepemilikan data, hak akses, & hak merubah data – terutama
jk bbrp pemakai mengakses data yg sama Who can do what to which data
Mengembangkan teknik & prosedur recovery akibat machine failure, media failure, communications failure, data user failure
Menyampaikan informasi ttg prosedur operasi & melakukan pelatihan pd user
Menerapkan kebijakan terkait dg aktifitas data, jk ada user yg melanggar, mk DBA berhak memberi hukuman
Ber-tgjwb u/ menyusun & merawat slrh dokumen sistem: Aktifitas data Database standards Data ownership Retrieval & access rights Recovery procedures Policy enforcement
Contoh Standard yg dimaksud: Stp field hrs mpy nama & format baku Stp record hrs mpy standard nama, format, metode akses
Stp file BD hrs mpy standard nama & relasi dg file lain
Hal-2 yg perlu dipantau dalam aktivitas BD : Statistik penggunaan HW
Merup % waktu aktifitas yg diperlukan u/ mengakses prosesor, channel, controller, disk
Digunakan u/ menentukan tk kesibukan kerja sistem Biasanya dilakukan o/ OS
Statistik penggunaan file Merup rasio penggunaan akses ke file fetch, get next,
update Dp disimpan dl log file
Statistik penggunaan record Frek pengaksesan record u/ dibaca ato di-update dp menjadi
bahan pertimbangan dl optimalisasi & pembuatan backup BD Tanggal & waktu akses dapat digunakan u/ menjaga
integritas BD Statistik penggunaan atribut
Frek penggunaan atribut, baik pd proses update, ato sbg kunci pd pencarian
Dp dilihat dari schema / kerelasian antar tabel
Manajemen struktur BD Tgjwb DBA:
Merancang skema DBA biasanya tdk terlibat dl peranc BD mulai awal OKI, stp perubahan struktur BD yg berpengaruh pd schema /
kerelasian hrs dicatat Mengawasi terjadinya redundancy
Redundancy dp tjd pd performance & data integrity DBA hrs menetapkan prosedur ttt u/ melaks rekonsiliasi data
u/ menghindari redundancy Melakukan pengawasan konfigurasi permintaan atas
perubahan struktur basisdata Menyusun laporan scr berkala mengenai pemakai yg aktif, file
& data yg dipakai, metode akses yg digunakan Catatan tjd-nya kesalahan U/ menentukan apk perlu
perubahan struktur BD u/ pe+ performance Menjadwalkan & mengadakan pertemuan apabila tjd perubahan
struktur BD Menerapkan perubahan shema
Perubahan hrs dilakukan pd BD ujicoba, agar user dp mengujinya sbl diterapkan pd
Merawat dokumentasi pemakai U/ mempero/ informasi ttg perubahan yg tlh dilakukan, bgmn,
kapan
Manajemen DBMS Tugas DBA:
Menyusun laporan ttg kinerja BD Dp diuji dg: menjalankan contoh program & mencatat waktu
proses pd kegiatan nyata Pengujian dp dilaks mll rutin program ato mll fasilitas dl
DBMS Melakukan investigasi atas keluhan pemakai Melakukan analisa atas laporan & keluhan Melakukan “tuning” atau “optimizing”
Ex: buffers size size of a transaction numbers of shared file
Jk mungkin “tuning” pd SW komunikasi & OS dg BD Ex: Mengatur agar program tersimpan resident di memoriMengatur alokasi SD HW & saluran komunikasi
Mengevaluasi & menerapkan fasilitas baru
Personil TugasDBA 1. Mengatur staf u/ memastikan pengembangan BD
berjalan lancar2. Merencanakan ke-bth BD di masa mendatang
Documentation & standards manager
1. Menciptakan & merawat dokumentasi BD & standard2. Menyebarluaskan informasi ttg standard3. Mengadakan pelatihan
User representatives
Mewakili user dl menentukan ke-bth BD & menyampaikannya pd DBA
Operations representatives
1. Mewakili bagian operasional yg berkaitan dg komputer2. Menetapkan ke-bth BD masa depan yg diperlukan dl keg operasional3. Memantau kinerja BD4. Melakukan “tuning” OS
DBMS configuration manager
1. Memahami DBMS & merawat konfigurasi pengawasan2. Melakukan pemantauan & “tuning” pd DBMS3. Menguji fasilitas baru pd DBMS
Performance monitor
1. Menyusun & menganalisa kinerja sistem2. Melakukan investigasi atas keluhan pemakai
Data dan Informasi Data :
Adalah fakta mengenai objek, orang dan lain-lain. Data dinyatakan dengan nilai (angka, deretan karakter, atau simbol).
Informasi : Adalah hasil analisis dan sintesis terhadap data.
Informasi dapat dikatakan sebagai data yang telah diorganisasikan ke dalam bentuk yang sesuai dengan kebutuhan seseorang, entah itu manajer, staff, ataupun orang lain di dalam suatu organisasi atau perusahaan
Basis Data Beberapa definisi basis data (database) :
Chou : mendefinisikan basis data sebagai kumpulan informasi bermanfaat yang diorganisasikan ke dalam tatacara yang khusus.
Fabbri dan Schwab : Basis data, adalah sistem berkas terpadu yang dirancang terutama untuk meminimalkan pengulangan data.
Date : Basis data dapat dianggap sebagai tempat untuk sekumpulan berkas data terkomputerisasi.
Basis Data (2) Basis data adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut.
Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data disebut sistem manajemen basis data (database management system, DBMS).
Basis Data (3)NIM NAMA ALAMAT
113060005 Anisa Jl. ABC No.10113070098 Andi Jl. Bunga No.4
113070100 Tono Jl Serang No.30
KodeMK NmMK SKS Fakultas
CS12345 Data Structures 2 CS
CS43235 Database 3 CSCS65634 Operating System 2 CS
Tabel Mahasiswa
Tabel Mata Kuliah
Column (field)
Row (record)
NIM KodeMK113060005 CS12345113060005 CS43235113070098 CS12345113070098 CS65634113070100 CS43235
Tabel Kartu Rencana
Studi
Basis Data (4) Basis data tidak hanya sekedar kumpulan berkas (tabel), tetapi juga mencakup hal-hal lain, seperti hubungan antar tabel, view (tabel yang bersifat logis, yang merupakan paduan sejumlah medan milik sejumlah tabel), dan bahkan kode yang disebut prosedur tersimpan.
Basis Data (5) Konsep dasar dari basis data adalah kumpulan dari catatan-catatan, atau potongan dari pengetahuan. Sebuah basis data memiliki penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya: penjelasan ini disebut skema.
Skema menggambarkan obyek yang diwakili suatu basis data, dan hubungan di antara obyek tersebut. Ada banyak cara untuk mengorganisasi skema, atau memodelkan struktur basis data, hal ini dikenal sebagai model basis data atau model data.
Basis Data (6) Ada banyak Model yang umum digunakan untuk memodelkan data. Diantaranya adalah model relasional, yang menurut istilah layman mewakili semua informasi dalam bentuk tabel-tabel yang saling berhubungan dimana setiap tabel terdiri dari baris dan kolom (definisi yang sebenarnya menggunakan terminologi matematika). Dalam model ini, hubungan antar tabel diwakili dengan menggunakan nilai yang sama antar tabel. Model yang lain seperti model hierarkis dan model jaringan menggunakan cara yang lebih eksplisit untuk mewakili hubungan antar tabel.
Tujuan Pemanfaatan Basis Tujuan Pemanfaatan Basis Data (1)Data (1)1. Kecepatan dan Kemudahan (Speed)Yakni agar pengguna basis data bisa:
-menyimpan data -melakukan perubahan/manipulasi terhadap data -menampilkan kembali data
dengan lebih cepat dan mudah dibandingkan dengan cara biasa (baik manual ataupun elektronis).
2. Efisiensi Ruang Penyimpanan (Space)Dengan basis data kita mampu melakukan penekanan jumlah redundansi (pengulangan) data, baik dengan menerapkan sejumlah pengkodean atau dengan membuat relasi-relasi antara kelompok data yang saling berhubungan.
Tujuan Pemanfaatan Basis Tujuan Pemanfaatan Basis Data (2)Data (2)3. Keakuratan (Accuracy)Agar data sesuai dengan aturan dan batasan
tertentu dengan cara memanfaatkan pengkodean atau pembentukan relasi antar data bersama dengan penerapan aturan/batasan (constraint) tipe data, domain data, keunikan data dsb.
4. Ketersediaan (Availability)Agar data bisa diakses oleh setiap pengguna yang
membutuhkan, dengan penerapan teknologi jaringan serta melakukan pemindahan/penghapusan data yang sudah tidak digunakan / kadaluwarsa untuk menghemat ruang penyimpanan.
Tujuan Pemanfaatan Basis Tujuan Pemanfaatan Basis Data (3)Data (3)5. Kelengkapan (Completeness)Agar data yang dikelola senantiasa lengkap baik
relatif terhadap kebutuhan pemakai maupun terhadap waktu, dengan melakukan penambahan baris-baris data ataupun melakukan perubahan struktur pada basis data; yakni dengan menambahkan field pada tabel atau menambah tabel baru. 6. Keamanan
(Security)Agar data yang bersifat rahasia atau proses yang vital tidak jatuh ke orang / pengguna yang tidak berhak, yakni dengan penggunaan account (username dan password) serta menerapkan pembedaan hak akses setiap pengguna terhadap data yang bisa dibaca atau proses yang bisa dilakukan.
Tujuan Pemanfaatan Basis Tujuan Pemanfaatan Basis Data (4)Data (4)6. Kebersamaan (Sharability)Agar data yang dikelola oleh sistem mendukung
lingkungan multiuser (banyak pemakai), dengan menjaga / menghindari munculnya problem baru seperti inkonsistensi data (karena terjadi perubahan data yang dilakukan oleh beberapa user dalam waktu yang bersamaan) atau kondisi deadlock (karena ada banyak pemakai yang saling menunggu untuk menggunakan data).
Keuntungan Pemakaian Sistem Basis Data
1. Mengurangi redundansiData yang sama pada beberapa aplikasi cukup disimpan sekali saja.
2. Menghindarkan inkonsistensiKarena redundansi berkurang, sehingga umumnya update hanya sekali saja.
3. Terpeliharanya integritas dataData tersimpan secara akurat.
4. Data dapat dipakai bersama-samaData yang sama dapat diakses oleh beberapa user pada saat bersamaan.
5. Memudahkan penerapan standarisasiMenyangkut keseragaman penyajian data.
6. Jaminan sekuritiData hanya dapat diakses oleh yang berhak.
7. Menyeimbangkan kebutuhanDapat ditentukan prioritas suatu operasi, misalnya antara update (mengubah data) dengan retrieval (menampilkan data) didahulukan update.
Kerugian Pemakaian Sistem Basis Data Mahal
Diperlukan hardware tambahan CPU yang lebih besar Terminal yang lebih banyak Alat untuk komunikasi
Biaya performance yang lebih besar Listrik Personil yang lebih tinggi klasifikasinya Biaya telekomunikasi yang antar lokasi / kota
Kompleks Prosedur backup & recovery sulit
Pemakai Basis Data (1)Pemakai Basis Data (1)Secara umum, seluruh sistem dalam kehidupan bisa menggunakan konsep basis data dalam pengelolaan informasi, karena semua sistem tersebut tak bisa lepas dari fakta.
Bidang-bidang fungsional yang memanfaatkan basis data dalam hal efisiensi, akurasi dan kecepatan operasi antara lain adalah:- Kepegawaian, untuk berbagai perusahaan yang memiliki banyak pegawai - Pergudangan (inventory), untuk perusahaan manufaktur (pabrik),
grosir (reseller), apotik dll - Akuntansi, untuk berbagai perusahaan
- Akuntansi, untuk berbagai perusahaan Layanan pelanggan (Customer care), untuk perusahaan yang berhubungan dengan banyak pelanggan (bank, konsultan dll)
Pemakai Basis Data (2)Pemakai Basis Data (2)Bentuk-bentuk Perusahaan yang memanfaatkan Basis Data:- Perbankan, dalam melakukan pengelolaan data nasabah, tabungan, pinjaman, pembuatan laporan akuntansi, pelayanan informasi pada nasabah dll - Pendidikan / sekolah, dalam melakukan pengelolaan data siswa, penjadwalan kegiatan, perkuliahan, nilai dll.- Rumah Sakit, dalam melakukan pengelolaan histori penyakit / pengobatan pasien, menangani pembayaran perawatan dll.- Telekomunikasi, dalam melakukan pengelolaan data administrasi kabel / data pelanggan, menangani gangguan dll.- Dan lain sebagainya
Komponen Basis Data DATA, data tersimpan secara terintegrasi dan dipakai secara bersama-sama
HARDWARE, perangkat keras yang digunakan dalam mengelola sistem database
SOFTWARE, perangkat lunak perantara antara pemakai dengan data fisik. perangkat lunak dapat berupa data base management system dan berbagai program aplikasi
USER, sebagai pemakai sistem
DataCiri-ciri data didalam database : Data disimpan secara terintegrasi (integrated)Database merupakan kumpulan dari berbagai macam file dari aplikasi-aplikasi yang berbeda, yang disusun dengan cara menghilangkan bagian-bagian yang rangkap (redundant)
Data dapat dipakai secara bersama-sama (shared)Masing-masing bagian dari database dapat diakses oleh pemakai dalam waktu yang bersamaan, untuk aplikasi yang berbeda
Hardware Terdiri dari semua peralatan perangkat keras komputer yang digunakan untuk pengelolaan sistem database berupa:Peralatan untuk penyimpanan database, yaitu secondary storage (harddisk, disket, flash disk, CD)
Peralatan input (keyboard, scanner, kamera digital) dan output (printer, layar monitor)
Peralatan komunikasi data (ethernet card, modem)
Software Berfungsi sebagai perantara (interface) antara pemakai dengan data physik pada database.
Software pada sistem database dapat berupa:Database Management System (DBMS), yang menangani akses terhadap database, sehingga pemakai tidak perlu memikirkan proses penyimpanan dan pengelolaan data secara detail
Program-program aplikasi dan prosedur-prosedur
User Pemakai database dibagi atas 3
klasifikasi, yaitu:1. Database Administrator (DBA), yaitu:
Orang/team yang bertugas mengelola sistem database secara keseluruhan
2. Programmer, yaitu: Orang/team yang bertugas membuat program
aplikasi yang mengakses database, dengan menggunakan bahasa pemrograman, seperti Clipper, VB, Oracle baik secara batch maupun online untuk berinteraksi dengan komputer
3. End-user, yaitu: Orang yang mengakses database melalui terminal,
dengan menggunakan query-language atau program aplikasi yang dibuatkan oleh programmer
Hirarki Data Data secara tradisional diorganisasikan ke dalam suatu hirarki yang terdiri dari elemen data (field), catatan (record), dan file. Elemen data, adalah unit yang terkecil, tidak dapat lagi dibagi menjadi unit yang lebih kecil. Misalnya nama, nomor pegawai, gaji, upah perjam dll.
Catatan, terdiri dari elemen data yang berhubungan dengan suatu objek atau kegiatan tertentu, misalnya catatan yang menjelaskan tiap jenis persediaan dan tiap penjualan.
File, adalah suatu kumpulan catatan data yang berhubungan dengan suatu subyek tertentu. Misalnya file pemesanan pembelian, file data pegawai, file penjualan.
Database Management System (DBMS)
Database Management System (DBMS) merupakan suatu atau sekumpulan program yang memungkinkan users untuk membuat, memanipulasi dan mengelola basis data (database) untuk mencapai suatu tujuan.
perangkat lunak yang menetapkan dan memelihara integrasi logis antar file, baik ekplisit maupun implisit
Database System
DATABASESYSTEM
Application Program / Queries
Stored Database
Definition (Meta-Data)
Stored Database
DBMSSOFTWARE
Users / Programmers
Software to Process Queries/Program
Software to Access Stored Data
Database System EnvironmentFundamental Of Database SystemsRamez ElmasriFigure 1.1
Keuntungan DBMS Mengurangi pengulangan data. Mencapai independensi data.
Spesifikasi data disimpan dalam tiap program aplikasi.
Perubahan dapat dibuat pada struktur data tanpa mempengaruhi program yang mengakses data.
Mengintegrasikan data dari beberapa file. Saat file dibentuk sehingga menyediakan kaitan logis, organisasi fisik tidak lagi menjadi kendala.
Mengambil data dan informasi secara cepat. Hubungan logis query language memungkinkan pemakai mengambil data dalam hitungan detik atau menit.
Keuntungan DBMS (2) Meningkatkan keamanan.
Baik DBMS mainframe maupun komputer mikro dapat menyertakan beberapa lapis keamanan seperti kata sandi, directori pemakai, dan bahasa sandi.
Meningkatkan presentasi kesiapan data (data availability) yang berarti tersedia pada waktu dibutuhkan.
Mempercepat penyimpanan dan pengambilan data.
Mempercepat dan mempermudah pemrosesan data
Mengurangi penyimpanan data yang rangkap Mempermudah pemrograman karena lebih fleksibel.
Kerugian DBMS Kurangnya ahli Data Base Biaya pemrosesan data sangat tinggi Kebutuhan software dan Hardware yang bertambah
Penggabungan dan pengamanan data mengikat pemakai untuk : Memperoleh perangkat lunak yang mahal Memperoleh konfigurasi perangkat keras yang besar
Mempekerjakan dan mempertahankan staf DBA
Komponen DBMS Secara sederhana, DBMS dapat dikatakan memiliki komponen-komponen :Perangkat keras (hardware)DataPerangkat lunak (software)Pengguna (user)
Komponen Fungsional DBMS Lebih terperinci lagi, sebuah DBMS (Database Management System) umumnya memiliki sejumlah komponen fungsional (modul) seperti :File Manager, Database Manager, Query Processor, DML Precompiler, DDL Compiler,
Komponen fungsional DBMS File Manager,
yang mengelola ruang dalam disk dan struktur data yang dipakai untuk merepresentasikan informasi yang tersimpan dalam disk.
Database Manager, yang menyediakan interface antara data low-level yang ada di basis data dengan program aplikasi dan query yang diberikan ke sistem.
Query Processor, yang menterjemahkan perintah-perintah dalam query language ke perintah low-level yang dapat dimengerti oleh database manager.
Komponen utama DBMS
DML Precompiler, yang mengkonversi perintah DML yang ditambahkan dalam sebuah program aplikasi ke pemanggil prosedur normal dalam bahasa induk.
DDL Compiler, yang mengkonversi perintah-perintah DDL ke dalam sekumpulan tabel yang mengandung metadata. Tabel-tabel ini kemudian disimpan dalam kamus data
Bahasa Basis Data Sebuah system basis data menyediakan dua tipe bahasa yaitu : DDL (Data-definition Language) tipe bahasa yang dipergunakan untuk menspesifikasikan skema basis data
DML (Data-manipulation Language) tipe bahasa yang dipergunakan untuk mengekspresikan queri atau update basis data.
Data-definition Language Skema basis data dispesifikasikan oleh sekumpulan definisi dengan sebuah bahasa khusus yang disebut data-definition language (DDL). Hasil kompilasi DDL berupa tabel-tabel yang disimpan dalam sebuah file, disebut data dictionary (kamus data) atau data directory. Kamus data adalah sebuah file yang berisi metadata. File ini yang dikonsultasi sebelum data yang sebenarnya dibaca atau dimodifikasi oleh system basis data.
Data-manipulation Language Adalah bahasa untuk memanipulasi data yaitu:
Pengambilan informasi yang disimpan dalam basis data
Penyisipan informasi baru ke basis data Penghapusan informasi dari basis data Modifikasi informasi yang disimpan dalam basis data
Query adalah statemen yang ditulis untuk mengambil informasi. Bagian dari DML yang menangani pengambilan informasi ini disebut bahasa query.
RDBMS Salah satu sistem yang paling banyak dikenal dan telah menjadi standar di dalam perancangan database dewasa ini adalah RDBMS atau Relational DataBase Management System.
RDBMSCiri-ciri RDBMS : Data direpresentasikan dalam bentuk tabel-tabel yang masing masing terdiri dari sejumlah baris dan kolom;
Baris pada tabel menggambarkan record sementara kolom menggambarkan field atau attribute; dan
Masing-masing data dalam struktur tabel dua dimensi ini kemudian saling dihubungkan dengan menggunakan berbagai tipe relasi yang ada sehingga membentuk sebuah struktur data multidimensional.
Sistem basis data lainnya : OODBMS (Object-Oriented DataBase Management
System), suatu sistem database berbasis objek yang terdiri dari enkapsulasi data dan prosedur
ORDBMS (Object-Relational DataBase Management System), suatu sistem database yang memadukan konsep berbasis objek dengan konsep berbasis relasional.
Abstraksi Data Kegunaan utama sistem basis data adalah agar pemakai mampu menyusun suatu pandangan abstraksi dari data. Bayangan mengenai data tidak lagi memperhatikan kondisi sesungguhnya bagaimana satu data masuk ke database disimpan dalam sektor mana, tetapi menyangkut secara menyeluruh bagaimana data tersebut dapat diabstraksikan mengenai kondisi yang dihadapi oleh pemakai sehari-hari. Sistem yang sesungguhnya, tentang teknis bagaimana data disimpan dan dipelihara seakan-akan disembunyikan kerumitannya dan kemudian diungkapkan dalam bahasa dan gambar yang mudah dimengerti oleh orang awam.
Abstraksi Data
Ada tiga kelompok pemakai dalam tingkatan abstraksi saat memandang suatu database, yang bisa juga disebut dengan level arsitektur basis data yaitu : Level Fisik (Physical level) :Level Konseptual (Conceptual level) :Level Pandangan Pemakai (View level) :
Abstraksi Data
Level Pandangan Pemakai (View level) : Level ini merupakan level abstraksi data tertinggi yang menggambarkan hanya sebagian saja yang dilihat dan dipakai dari keseluruhan database, hal ini disebabkan beberapa pemakai database tidak membutuhkan semua isi database.
Abstraksi Data Level Konseptual (Conceptual level) :
Level ini menggambarkan data apa yang disimpan dalam database dan hubungan relasi yang terjadi antara data dari keseluruhan database. Pemakai tidak memperdulikan kerumitan dalam struktur level fisik lagi, penggambaran cukup dengan memakai kotak, garis,dan hubungan secukupnya. mengambarkan data apa saja yang sebenarnya (secara fungsional) disimpan didalam basis data beserta relasi”nya didalam basis data, dimana administrator basis data (DBA) membangun dan mengolah basis data, contohnya: penguna akan mengetahui bahwa data penjualan disimpan didalam tabel” barang, produksi, keuangan, marketing
Abstraksi Data
Level Fisik (Physical level) : Level ini merupakan level abstraksi paling rendah karena menggambarkan bagaimana data disimpan dalam kondisi sebenarnya yang pada umumnya tidak terlihat oleh oleh pengguna atau programmer aplikasinya
DBMS adalah software yang menangani semua akses ke basis data. Secara konsep apa yang terjadi adalah sebagai berikut :1. user melakukan pengaksesan basis data untuk informasi yang diperlukannya menggunakan suatu bahasa manipulasi data, biasanya disebut SQL.
2. DBMS menerima request dari user & menganalisa request tersebut
3. DBMS memeriksa skema eksternal user, pemetaan eksternal/konseptual, skema konseptual, pemetaan konseptual/internal, & struktur penyimpanan.
4. DBMS mengeksekusi operasi-operasi yang diperlukan untuk memenuhi permintaan user.
Jenis Basis Data Jenis Database Menurut Pengaksesan Dapat dibedakan menjadi empat jenis : Basis Data Individual,Basis Data Perusahaan,Basis Data Terdistribusi, danBank Data Publik.
Model Basis Data Model database adalah suatu konsep yang terintegrasi dalam menggambarkan hubungan (relationships) antar data dan batasan-batasan (constraint) data dalam suatu sistem database.
Model data yang paling umum, berdasarkan pada bagaimana hubungan antar record dalam database (Record Based Data Models), terdapat tiga jenis, yaitu : Model database hirarki (Hierarchical Database
Model) Model database jaringan (Network Database Model) Model database relasi (Relational Database Model)
Model Relasional model relasional menggunakan kumpulan tabel-tabel untuk merepresentasikan data & relasi antar data-data tersebut. Setiap tabel terdiri atas kolom-kolom, dan setiap kolom mempunyai nama yang unik.
Sebuah database dalam model ini disusun dalam bentuk tabel dua dimensi yang terdiri dari baris (record) dan kolom (field), pertemuan antara baris dengan kolom disebut item data (data value), tabel-tabel yang ada di hubungkan (relationship) sedemikian rupa menggunakan field-field kunci (Key field) sehingga dapat meminimalkan duplikasi data.
Model Jaringan (Network Model )
Data dalam model jaringan direpresentasikan dengan sekumpulan record (Pascal), dan relasi antara data direpresentasikan oleh record & link. Link dipandang sebagai pointer. Record-record diorganisasikan sebagai graf.
Model Data Berbasis Record (5) Contoh Model Jaringan (Network Model )
MgrStartDate
MgrNameDNumberDNameDepartemen
AddressSSN BDateName
EmployeePlocationPNamePNum
Project
Name Relation
BDateSexssnDependent
SSNNameSupervisor
HourPNumSSNWorks_On
controlsWorks for
P_Works_onE_Works_on
manages
Is_a_supervisor
Supervisees
Dependent_of
Model Hirarki (Hirarchical Model)
Mirip dengan model jaringan.Data direpresentasikan dalam record dan link (pointer). Perbedaannya adalah, record-record diorganisasikan sebagai tree (pohon) dan masing-masing node pada tree tersebut merupakan record/grup data elemen.
Model relasional berbeda dengan model jaringan & hirarki, dalam hal penggunaan pointer atau link.
Model Hirarki (Hirarchical Model)
MgrStartDate
MgrNameDNumberDNameDepartemen
Address
SSN BDateNameEmployee
Plocation
PNamePNumProject
BDateSexDepNameDependent
SSNNameSupervisee
HourPNumSSNWorker
Level 0:
Level 1:
Level 2:
D
E P
T S W
Contoh Model Hirarki (Hirarchical Model)
Users(System Designer) Database Administrator (Administrator Basis Data) Administrator basis data adalah orang yang bertanggungjawab terhadap pemberian kuasa pengaksesan database, mengoordinasikan dan memonitor penggunaannya, serta menyediakankan hardware dan software yang dibutuhkan.
Bertanggung jawab terhadap strategi yang berhubungan dengan pengolahan data di suatu perusahaan atau organisasi. Selain hal tersebut, DBA adalah orang yang bertanggungjawab terhadap implementasi strategi tersebut secara teknis.
Users(System Designer)
mendefinisikan skema konseptual yaitu memutuskan informasi apa saja yang akan dihasilkan oleh suatu basis data. Dalam hal ini DBA bertugas mendefinisikan objek (entity) yang terlibat pada perancangan basis data. Proses ini disebut dengan Logical Database Design (kadang-kadang disebut Conceptual Database Design). Setelah DBA menentukan muatan dari basis data maka DBA akan menyusun skema konseptual menggunakan DDL (data definition language). Kemudian dengan DBMS, skema tersebut diimplementasikan.
mendefinisikan Skema Internal selain menentukan skema konseptual dari basis data, DBA juga bertanggung jawab terhadap desain penyimpanan data secara fisik.
Users(System Designer)
mensosialisasikan hasil rancangan baik konseptual & internal ke user
Dalam hal ini tugas DBA adalah menyakinkan user bahwa data-data yang mereka perlukan semua telah tersedia & membantu user untuk mengimplementasikan rancangan tersebut dalam DDL.
mendefinisikan aturan-aturan sekuriti & integritas data
mendefinisikan prosedur-prosedur back-up & recovery
memonitor performansi system & menangani perubahan-perubahan yang ada.
Users(System Builder) Database Programmers
Bertanggung jawab untuk membangun atau membuat suatu sistem basis data secara fisik sesuai dengan spesifikasi rancangan logik dari database designer (DBA).
Seorang spesialis di bidang teknologi dan bahasa basis data (databases languange and technology) yang membangun, memodifikasi, dan menguji struktur dan program basis data yang dipergunakan serta mengelolanya.
Database Design Process Proses perancangan basis data dilakukan dengan merancang struktur logik dan fisik (logical and physical structure) dari satu atau lebih basis data untuk mengakomodasi kebutuhan informasi dari pengguna didalam suatu organisasi.
Tahapan perancangan basis data Tahap pengumpulan requirement dan analisa
Tahap pembuatan conceptual database design
Tahap pemilihan DBMS Tahap Data model mapping / pembuatan
logical database design Tahap pembuatan physical database design Tahap implementasi sistem basis data
Ramez ElmasriFundamentals of Database Systems
Data Content and Structure Database Application
Phase 1 : Requirements Data Processing Collection Requirement Requirement and analysis
Phase 2 : Conceptual Conceptual Transaction and Database Schema Design Application Design Design (DBMS-independent) (DBMS-independent)
Phase 3 : Choice of DBMS
Phase 4 : Data Model Logical Schema frequencies Mapping and View Design performance (Logical Design) (DBMS-dependent) constraints
Phase 5 : Physical Internal Design Schema Design (DBMS-dependent)
Phase 6 : System DDL Statements Transaction and Implementation Application and Tuning Implementation
Tahap pengumpulan requirement dan analisa Mengidentifikasi kebutuhan-kebutuhan data
Mengumpulkan kebutuhan data dari sistem
Mendokumentasikan kebutuhan-kebutuhan
Menganalisa kebutuhan-kebutuhan
Tahap pembuatan conceptual database design
Membuat rancangan basis data secara konseptual menggunakan informasi dari tahap sebelumnya
Output conceptual database designERD (Entity relationship Diagram)
Contoh conceptual database diagram
ProyekPegawai
Departemen
mengepalai
kerja
memiliki
Kd_dep
Nm_dep
Kd_Pry
Nm_Pry
Lks_Pry
NIP
(1,1)
(1,1)
(1,n)
(1,n)
(0,n)
Tgl_kerja
Keluargamemiliki
Nm_kel status
(1,n)
(1,1)Pegawai
TetapPegawaiKontrak
Alm_Peg
Jabatan
Tgl_Lhr_PegKd_Peg
Nm_Peg
(1,1)
Masa_kontrak Nilai_kontrak
Tgl_awal Tgl_akhir
Tahap pemilihan DBMS Beberapa faktor dalam pemilihan DBMS :
Teknis Jenis DBMS Struktur penyimpanan Tipe bahasa query tingkat tinggi Alat bantu (tools) pengembangan yang tersedia SDM yang tersedia Arsitektur sistem
Tahap pemilihan DBMS (2) Biaya
Software acquisition cost : bahasa, interfaces, menu, GUI tools, recovery/backup, access methods, dll.
Biaya perawatan Hardware acquisition cost : memory, terminals, disk drives, dll.
Database creation and conversion cost : Personnel cost : Training cost : Operating cost :
Tahap Data model mapping / pembuatan logical database design Mentrasformasikan bentuk conceptual database design ke bentuk tabel-tabel.
NOPEG NOPRO JABATAN LKS_PRY
NOPRO LOKASI
NOBAR NOKOMP JUMLAH
Membuat DDL statements sesuai DBMS yang dipilihOutput Script
Tahap pembuatan physical database design
Proses pemilihan struktur penyimpanan dan jalur pengaksesan untuk database files bedasarkan : Response time Space utilization Transaction throughput
Perancangan fisik (hardware dan software yang akan dipergunakan)
Tahap implementasi sistem basis data Tahap pembuatan database berdasarkan conceptual database design dan physical database design.
Menggunakan cara :Compile scriptMembangun database menggunakan DBMS
Output database files
Normalisasi Proses normalisasi adalah proses menganalisa dan memperbaiki skema relasi menggunakan data atribut untuk memperoleh properti-properti skema relasi yang baik menjadi bentuk normal lebih tinggi sehingga dapat:Mengotimalisasi redundansiMenghilangkan anomali
Normalisasi (2) Suatu proses untuk mengurangi redundancy pada suatu tabel/obyek/entitas sehingga mudah dimodifikasi.
Biasanya melibatkan pembagian tabel menjadi dua atau lebih tabel dan menjelaskan hubungan diantara tabel.
Tujuannya adalah untuk mengisolasi data sehingga penambahan, pengurangan, dan modifikasi dari atribut dapat dilakukan pada satu tabel dan selanjutnya dikembangkan keseluruh database melalui relasi yang ada.
Redundancy Pengulangan/duplikasi data yang tidak perlu.
Redundansi tidak dapat dihilangkan sama sekali karena berguna untuk integritas referensial yang menghubungkan satu field pada suatu tabel dengan field lain pada tabel yang berbeda.
Contoh Redundansi
NIM Kode_MK Nama_MK Nilai200543423 PS-4533 Perancangan Sistem A200512345 PS-4533 Perancangan Sistem B200534632 PS-4533 Perancangan Sistem B200595732 PS-4533 Perancangan Sistem A200634123 BD-5452 Basis Data B200612367 BD-5452 Basis Data B200691245 BD-5452 Basis Data A200736512 PG-3465 Pemrograman B
Tabel KRS
Tabel diatas memiliki redundansi. Kolom Kode_MK dan Nama_MK memiliki data yang sama (berulang-ulang).
Anomali Anomali pada dasarnya adalah ketidak-konsistenan (inkonsistensi) data.
Anomali bisa terlihat pada saat melakukan perubahan, penghapusan dan penambahan data.
Contoh Anomali
NIM Kode_MK Nama_MK Nilai200543423 PS-4533 Perancangan Sistem A200512345 PS-4533 Perancangan Sistem B200534632 PS-4533 Perancangan Sistem B200534632 BD-5630 Sistem Basis Data A200634123 BD-5452 Basis Data B200612367 BD-5452 Basis Data B200691245 BD-5452 Basis Data A200691245 PG-3465 Pemrograman B
Tabel KRS
Misalkan pada tabel diatas dilakukan perubahan data pada record ke 5, data nama mata kuliah basis data diganti menjadi perancangan basis data.
Contoh Anomali (2)
NIM Kode_MK Nama_MK Nilai200543423 PS-4533 Perancangan Sistem A200512345 PS-4533 Perancangan Sistem B200534632 PS-4533 Perancangan Sistem B200534632 BD-5630 Sistem Basis Data A200634123 BD-5452 Perancangan Basis Data B200612367 BD-5452 Basis Data B200691245 BD-5452 Basis Data A200691245 PG-3465 Pemrograman B
Tabel KRS
Pada tabel diatas akan terjadi ketidak-konsistenan pada record 5, 6 dan 7. yaitu record Kode_MK = BD-5452 berelasi dengan dua Nama_MK yang berbeda (Perancangan basis data dengan Basis data).
Solusi NormalisasiMelakukan dekomposisi dengan menentukan ketergantungan fungsional (Functional dependency).
Dependensi : suatu hubungan dimana perubahan pada satu tabel akan mempengaruhi tabel yang lain, dimana salah satu tabel bergantung pada tabel yang lain.
Contoh ketergantungan fungsional : Ketergantungan fungsional pada tabel KRSKode_MK Nama_MKNim, Kode_MK Nilai
Dekomposisi
Kode_MK Nama_MKPS-4533 Perancangan SistemBD-5630 Sistem Basis DataBD-5452 Perancangan Basis
DataPG-3465 Pemrograman
Berdasarkan ketergantungan fungsional tersebut, maka tabel KRS dapat didekomposisi menjadi 2 tabel
NIM Kode_MK Nilai200543423 PS-4533 A200512345 PS-4533 B200534632 PS-4533 B200534632 BD-5630 A200634123 BD-5452 B200612367 BD-5452 B200691245 BD-5452 A200691245 PG-3465 B
Dekomposisi tabel dapat mengurangi redudansi yang ada dan menghilangkan anomali
Perancangan melalui proses normalisasi mempunyai keuntungan-keuntungan sebagai berikut : Meminimalkan ukuran penyimpanan yang diperlukan untuk penyimpanan data.
Meminimalkan resiko inkonsistensi data pada basis data.
Meminimalkan kemungkinan anomaly pembaruan. Memaksimalkan stabilitas struktur data.
Tujuan proses normalisasi adalah mengkonversi relasi menjadi bentuk normal lebih tinggi.
Terdapat beragam tingkat bentuk normal, yaitu:
1. Bentuk normal pertama (1NF)2. Bentuk normal kedua (2NF) 3. Bentuk normal ketiga (3NF)4. Bentuk normal Boyce-Codd (BCNF)5. Bentuk normal keempat (4NF)6. Bentuk normal kelima (5NF)
Bentuk normal pertama (1NF) untuk menghilangkan atribut bernilai jamak.
Bentuk normal kedua (2NF) untuk menghilangkan kebergantungan parsial.
Bentuk normal ketiga (3NF) untuk menghilangkan kebergantungan transitif.
Bentuk normal Boyce-Codd (BCNF) untuk menghilangkan anomaly tersisa disebabkan kebergantungan fungsional.
Bentuk normal keempat (4NF) untuk menghilangkan kebergantungan nilai jamak.
Bentuk normal kelima (5NF) untuk menghilangkan anomaly tersisa.
Tiga bentuk normal pertama berkaitan dengan kebergantungan fungsional. Sementara itu bentuk keempat dan kelima berkaitan dengan redundansi yang disebabkan kebergantungan banyak nilai (multi-valued dependencies).
1NF Syarat 1NF adalah :
setiap atribut harus bersifat atomik, artinya, setiap atribut merupakan unsur terkecil dari identitas entitas (tidak perlu dipecah-pecah lagi)
semua nilai atributnya adalah sederhana, bukan atribut komposit (composite) dan bukan atribut bernilai banyak (multi-valued).
Menghilangkan repeating group data (kelompok data yang berulang).
Contoh tabel yang termasuk dalam 1NF
Kombinasi NIM dan Kode_MK dapat dijadikan sebagai kunci primer untuk menentukan nilai (penanda)
NIM Kode_MK Nilai200543423 PS-4533 A200512345 PS-4533 B200534632 PS-4533 B200595732 BD-5630 A200634123 BD-5452 B200612367 BD-5452 B200691245 BD-5452 A200736512 PG-3465 B
Pada gambar disamping, atribut nilai bersifat tunggal untuk setiap kombinasi atribut NIM dan atribut Kode_MK tertentu.
Contoh lain 1NF
Misalkan salah satu isi atribut NAMA adalah “Tukul Rahwana,” jika nama itu selamanya akan digunakan demikian, maka atribut tersebut sudah atomik. Tetapi, jika nama itu suatu saat harus dicetak menjadi “Rahwana, Tukul,” maka atribut NAMA tersebut belum atomik. Bagaimana mencetak “Tukul Rahwana” menjadi “Rahwana Tukul” ?.
Jadi, jika di “negara barat,” biasanya atribut nama dipecah-pecah menjadi first name (FNAME), middle name (MNAME), dan last name (LNAME), karena memang nama mereka sering dibolak-balik.
Kode_Peg Nama Departemen
200512345 Tukul Rahwana
Marketing
200534632 Tri Wahyuni Marketing200595732 Dedi
GumilangIT
200634123 Benny Mulyadi
IT
Contoh : akan kita periksa atribut “NAMA,” apakah atribut tersebut sudah atomik ?
Kesimpulan contoh :Tabel Pegawai dapat dikatakan telah berada pada bentuk Normal ke 1, bila atribut nama akan tetap dipergunakan dalam bentuk seperti itu.
Apabila atribut (field) nama akan dipergunakan dengan membedakannya menjadi nama depan dan nama belakang, maka akan lebih baik jika field nama dijadikan dua field.
Contoh 1NF (2)
Tabel member list memiliki tipe atribut multi-valued Sehingga tabel member list harus didekomposisikan menjadi 2 tabel.
Antara tabel member dan database direlasikan menggunakan atribut MID yang merupakan primary-key pada tabel member dan foreign-key pada tabel database
2NF Syarat 2NF :
telah memenuhi 1NF, setiap atribut non key (bukan primary atau foreign
key) harus tergantung secara fungsional dengan atribut key-nya.
Relasi pada bentuk normal kedua harus tidak menyimpan fakta-fakta mengenai bagian kunci relasi. Bentuk normal kedua menghilangkan kebergantungan parsial dan masih memiliki anomali-anomali yang secara praktis tidak dapat diterima.
Apabila ketergantungan tersebut diganti menjadi NIM dengan Nilai saja, maka akan terdapat ketidakbenaran.
NIM Kode_MK Nilai200543423 PS-4533 A200512345 PS-4533 B200534632 PS-4533 B200534632 BD-5630 A200634123 BD-5452 B200612367 BD-5452 B200691245 BD-5452 A200691245 PG-3465 B
Pada gambar disamping, atribut Nilai memiliki ketergantungan fungsional dengan atribut NIM dan Kode_MK
Kesimpulan : kombinasi NIM dengan Kode_MK menentukan Nilai seorang mahasiswa dengan NIM untuk mata kuliah tertentu.
NIM Nilai200543423 A200512345 B200534632 B200534632 A200634123 B200612367 B200691245 A200691245 B
Dari gambar disamping terlihat bahwa Nilai tidak tergantung secara fungsional dengan NIM
Bagaimana bila terdapat tabel seperti diatas. Apakah sudah memenuhi syarat 2NF ?
NIM Kode_MK Nama_Mhs Nama_MK Nilai200543423 PS-4533 Juli Perancangan Sistem A200512345 PS-4533 Gogon Perancangan Sistem B200534632 PS-4533 Heru Perancangan Sistem B200595732 BD-5630 Heni Perancangan Basis
DataA
200634123 BD-5452 Yanita Basis Data B200612367 BD-5452 Linda Basis Data B200691245 BD-5452 Petruk Basis Data A200736512 PG-3465 Koko Pemrograman B
Pada tabel tersebut terdapat 2 atribut key : NIM dan Kode_MK
Atribut non key memiliki ketergantungan : Nama_mhs NIM Nama_Mk Kode_Mk Nilai NIM dan Kode_Mk
NIM Kode_MK Nama_Mhs Nama_MK Nilai200543423 PS-4533 Juli Perancangan Sistem A200512345 PS-4533 Gogon Perancangan Sistem B200534632 PS-4533 Heru Perancangan Sistem B200595732 BD-5630 Heni Perancangan Basis
DataA
200634123 BD-5452 Yanita Basis Data B200612367 BD-5452 Linda Basis Data B200691245 BD-5452 Petruk Basis Data A200736512 PG-3465 Koko Pemrograman B
NIM Nama_Mhs200543423
Juli
200512345
Gogon
200534632
Heru
200595732
Heni
200634123
Yanita
200612367
Linda
200691245
Petruk
200736512
Koko
Kode_MK Nama_MKPS-4533 Perancangan
SistemBD-5630 Perancangan
Basis DataBD-5452 Basis DataPG-3465 Pemrograman
Untuk memenuhi syarat 2NF, maka atribut non key harus memiliki ketergantungan fungsional dengan atribut key.
Tabel harus dipisah menjadi tiga tabel yang memiliki atribut key dan ketergantungan fungsional dengan atribut non key.
NIM Kode_MK Nilai
200543423
PS-4533 A
200512345
PS-4533 B
200534632
PS-4533 B
200595732
BD-5630 A
200634123
BD-5452 B
200612367
BD-5452 B
200691245
BD-5452 A
200736512
PG-3465 B
Contoh lain 2NF
Di master file (entity) KASIR, kunci utamanya : NOPEG (nomor pegawai) Di master file (entity) BARANG, kunci utamanya : KD_BRG (kode barang) Di transaction file (relationship) JUAL,
kunci utamanya : NO_KWI (nomor kwitansi) kunci tamunya : NOPEG dan KD_BRG
KASIR JUAL BARANG
*NOPEGNAMA
ALAMAT
*KD_BRG
NM_BRG
HARGA
STOKMEREK
JENIS
*NO_KWI
**NOPEG
**KD_BRG JML_BRG
TTL_BYR
MN
Contoh 2NF Didalam tabel database terdapat satu atribut non-key yaitu atribut database yang memiliki ketergantungan terhadap atribut DID dan MID.
Untuk memenuhi syarat 2NF, maka atribut database di set up sehingga tergantung dengan primary key yang sesuai yaitu atribut DID.
Contoh 2NF Untuk menghubungkan tabel database dengan tabel member, maka dibuat suatu tabel baru yang memiliki atribut dari kedua tabel utama.
3NF
Syarat 3NF :telah memenuhi 2NFsetiap atribut non key tidak boleh tergantung dengan atribut non key lainnya (tidak boleh terjadi ketergantungan transitif).
Pada tabel Member terdapat satu primary key yaitu MID.
Atribut non key lainnya yaitu Name, Company terhubung dengan primary key MID.
Atribut CompLoc sebagai atribut non-key tidak tergantung secara fungsional dengan primary key MID.
Atribut CompLoc (non-key) memiliki ketergantungan dengan atribut Company (non-key), ketergantungan antara non-key dengan non-key disebut ketergantungan transitif.
Untuk mengatasi masalah ini, dibuat tabel baru yaitu tabel Company.
Contoh lain 3NF
Tabel diatas memiliki primary key NIM. Atribut non key : Nama, Alamat, KodePos dan Kota
Atribut Kota memiliki ketergantungan dengan atribut Kode Pos, bukan dengan primary key.
NIM Nama Alamat KodePos Kota12345 Didi Jl. Mawar 23 65141 Malang34924 Amir Jl. Borobudur
1265151 Malang
42345 Melly Jl. Penggilingan 9
13460 Jakarta
54231 Tini Jl. Malaka 2 13460 Jakarta
Menurut aturan 3NF, atribut non key tidak boleh memiliki ketergantungan dengan atribut non key (tidak boleh ada ketergantungan transitif)
Untuk mengatasi masalah ini, harus dibuat tabel baru dengan atribut Kota. Sebagai primary key digunakan atribut Kode Pos.
NIM Nama Alamat
KodePos
12345 .… ……. 6514134924 …. ……. 6515142345 …. ……. 1346054231 …. ……. 13460
KodePos
Kota
65141 Malang65151 Malang13460 Jakart
a
Bentuk Normal Boyce-Codd (BCNF) BCNF memiliki ketentuan yaitu :
masing-masing atribut utama bergantung fungsional penuh pada masing-masing kunci dimana kunci tersebut bukan bagiannya.
Relasi adalah BCNF (optimal) jika setiap determinan atribut-atribut relasi adalah kunci relasi.
Relasi adalah BCNF (optimal) jika kapanpun fakta-fakta disimpan mengenai beberapa atribut, maka atribut-atribut ini merupakan satu kunci relasi.
BCNF dapat memiliki lebih dari satu kunci. Properti penting BCNF adalah relasi tidak memiliki informasi yang redundan.
BCNF sudah pasti 3NF, tetapi belum tentu sebaliknya.
Perbedaan BCNF dengan 3NF :Pada BCNF suatu atribut yang bergantung secara fungsional terhadap kunci primer, mungkin saja merupakan kunci primer bagi atribut yang lain (ketergantungan funsional Trivial).
Pada 3NF hal ini bisa saja terjadi dan tidak menjadi masalah.
Ada dua kasus yang membuat 3NF harus dijadikan BCNF :Dalam satu entity terdapat lebih dari satu atribut key, dan masing-masing dari key menentukan atributnya masing-masing.
Ketergantungan terjadi dari atribut non key ke atribut key, Atribut non key menentukan bagian dari atribut key.
Contoh BCNF Gambaran relasi yang termasuk 3NF tetapi tidak termasuk BCNF
Bagaimana dengan tabel disamping ini ?
A B C
Mahasiswa
Mata Kuliah
Pengajar
Samsul Basis Data Lukman
Merry Perancangan Sistem
Yenny
Andri Perancangan Sistem
Yenny
Rika Basis Data Lukman
Winda Pemrograman Billy Gatel
Contoh BCNF Tabel tersebut berada dalam 3NF. Pada tabel tersebut terdapat ketergantungan :
Mahasiswa, Mata kuliah pengajar Pengajar mata kuliah
Atribut non key (pengajar) bergantung secara fungsional terhadap kunci primer, tetapi atribut tersebut (pengajar) juga merupakan kunci primer bagi atribut yang lain (mata kuliah). Mahasisw
aMata Kuliah Pengajar
Samsul Basis Data LukmanMerry Perancangan
SistemYenny
Andri Perancangan Sistem
Yenny
Rika Basis Data LukmanWinda Pemrograman Billy
Gatel
Bisa dibuat beberapa kemungkinan :{Mahasiswa, pengajar} dan {mahasiswa, MK}
{MK, pengajar} dan {MK, mahasiswa}{Pengajar, MK} dan {pengajar, mahasiswa}
Contoh lain BCNF
Entity StudentConcentration termasuk dalam 3NF, tetapi selama ada ketergantungan antara FacultyName dengan MajorMinor, maka entity ini tidak berada dalam bentuk Boyce-Codd.
Untuk mengatasi masalah ini, maka Entity StudentConcentration dipecah menjadi entity StudentConcentration dan Faculty. Apabila belum terdapat entity Faculty maka dapat dibuat entity baru, tetapi bila sudah ada maka dapat dibuat relasi antara Faculty dengan StudentConcentration dengan tambahan atribut MajorMinor.(Pada gambar dibawah, MajorMinor diganti menjadi MajorArea)
4NF Relasi memenuhi syarat BCNF Tidak berisi kebergantungan banyak nilai.
Untuk menghilangkan kebergantungan banyak nilai dari satu relasi, kita membagi relasi menjadi dua relasi baru. Masing – masing relasi berisi dua atribut yang mempunyai hubungan banyak nilai.
Contoh lain 4NF Pada gambar berikut ini
terdapat relasi dimana seorang member bisa menguasai beberapa software, dan juga dapat memiliki referensi terhadap beberapa buku.
Relasi yang terjadi adalah many to many, dimana setiap relasi many to many harus dibuat entitas tambahan (dipisah).
Solusi yang Lebih TEPAT
MID BIDBill ERWin BibleJohn VB For DummiesJohn JavaFor DummiesSteve PowerBuilder Bible
MID SIDBill ERWinJohn VB.NetJohn JavaMary ERWin
5NF Bentuk normal kelima (5NF) berurusan dengan properti yang disebut join tanpa adanya kehilangan informasi (lossless join). Bentuk normal kelima (5NF) juga disebut PJNF (projection-join normal form). Kasus-kasus ini sangat jarang muncul dan sulit untuk dideteksi secara praktis.
Terdapat relasi seperti berikut dimana antara software dengan book terdapat hubungan.
Karena relasi bersifat many to many, maka harus dibuat suatu entitas tambahan (dipisah)
Solusi yang salah Apabila terdapat data software dan book tetapi tidak ada data member, maka MemberSoftwareBook tidak dapat menjelaskan siapa member yang terkait.
Solusi yang tepat Data Member, Software dan book disimpan secara terpisah.
Walaupun salah satu entitas tidak memiliki data yang dapat direlasikan dengan entitas yang lain, tidak akan mempengaruhi data di entitas lainnya.
Normalization
“All non-key attributes must depend on the entire primary key, and nothing but the primary key, so help me CODD.”
The three steps of data normalization are:
1NF - All repeating groups are removed
2NF - All Partial dependencies are removed
3NF - All Transitive dependencies are removed
Normalization – Un-normalized Data
UN-NORMALIZED DATAStudent NumberStudent NameMajorStatusCourse Number (1 – n)Course Title (1 – n)Term (1 – n)Professor Id (1 – n)Professor Department (1 – n)Grade (1 – n)
Normalization – 1NFUNORMALIZED DATA 1NF
Student Number STUDENTStudent Name Student Number (PK)Major Student NameStatus MajorCourse Number (1 – n) StatusCourse Title (1 – n) Term (1 – n) STUDENT - COURSEProfessor Id(1 – n) Student Number (FK,PK)Professor Department (1 – n) Course Number (PK)Grade (1 – n) Course Title Term Professor Id
Professor Department Grade
Normalization – 2NF1NF 2NF
STUDENT Student Number (PK) Student Name Major Status STUDENT - COURSE STUDENT - COURSEStudent Number (FK,PK) Student Number (FK,PK)Course Number (PK) Course Number (FK,PK)Course Title TermTerm Professor IdProfessor Id Professor DepartmentProfessor Department GradeGrade COURSE Course Number (PK) Course Title
Normalization – 3NF2NF 3NF
STUDENT - COURSE STUDENT - COURSEStudent Number (FK,PK) Student Number (FK,PK)Course Number (FK,PK) Course Number (FK,PK)Term Professor Id (FK)Professor Id TermProfessor Department GradeGrade COURSE Course Number (PK) Course Title PROFESSOR Professor Id (PK) Professor Department
Normalization Results SummaryUNORMALIZED DATA 1NF 2NF 3NF Normalized ERD
Student Number STUDENT STUDENT
Student Name Student Number (PK) Student Number (PK)
Major Student Name Student Name
Status Major Major
Course Number (1 – n) Status Status
Course Title (1 – n)
Term (1 – n) STUDENT - COURSE STUDENT - COURSE STUDENT - COURSE STUDENT - COURSE
Professor Id(1 – n) Student Number (FK,PK) Student Number (FK,PK) Student Number (FK,PK) Student Number (FK,PK)
Professor Department (1 – n) Course Number (PK) Course Number (FK,PK) Course Number (FK,PK) Course Number (FK,PK)
Grade (1 – n) Course Title Term Professor Id (FK) Professor Id (FK)
Term Professor Id Term Term
Professor Id Professor Department Grade Grade
Professor Department Grade
Grade
COURSE COURSE
Course Number (PK) Course Number
Course Title Course Title
PROFESSOR PROFESSOR
Professor Id (PK) Professor Id (PK)
Professor Department Professor Department