Ebook database

178
B a s i s d a t A

Transcript of Ebook database

B a s i s d a t A

basis data = basis + data

Sistem bilangan biner 0 1 10 11 100

basis ????

Sistem bilangan oktal 0 1 2 3 4 5 6 7 10 11 12

basis ????

Sistem bilangan decimal 0 1 2 3 4 5 6 7 8 9 10 11 12

basis ????

Sistem bilangan hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12

basis ????

basis masa PDIP basis masa PKB basis tukang ojek

basis ???

basis = ..........

SPP mahasiswa ISTA akan naik mulai semester ini SPP per bulan = 20.000.000

Data ???

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 ???

data = ……….

basis data = database

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

Hirarkhi DataSistem Basis Data

Basis Data

File

Record

Data item

Byte

Bit

Agregat Data

Data Model: OBDM

ERM Semantic Binary

RBDM Hierarchycal Network RBDM

PBDM UM FM

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

SW OS

MS DOS, PC DOS, Windows, Unix, Linux language software DBMS application software

HW I P O Memory

DBMS adalah SW U/ pengelolaan basis data

DDL DML DCL

Penyimpanan Pengaturan Mekanisme pengamanan data Pemakaian data scr bersama Pemaksaan akurasi data

AplikasiBasis Data

DBMS

BasisData

End-User

Naive-User

Hubungan DBMS & Aplikasi BD

Model hubungan DBMS & Aplikasi BD

DBMS terpisah dg aplikasi DBMS menyatu dg aplikasi

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

Jenis arsitektur aplikasi BD: stand alone centralized client-server

Stand alone: DBMS+BD+aplikasi ditempatkan pd 1 komp Hny dp dipakai o/ 1 pemakai pd saat ttt

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

Vice PresidentData

Processing

ManagerSystems

ManagerOperations

ManagerProgramming

DBA

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 Relasional

Contoh Model Relasional ( Relational Model)

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 Jaringan (Network Model )

R1

R4

R2

R3R5

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)

A

B C D

E F G H I

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

Contoh 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 Coba perhatikan tabel disamping ini. Apakah tabel ini sudah termasuk dalam 2NF ?

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 4NF

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).

Ini Adalah Solusi yang SALAH

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