DIAGRAM ENTITAS RELASI "HOTEL"
PERANCANGAN SISTEM DATABASE PADA BISNIS PERHOTELAN
Dalam perkembangan bisnis di Indonesia, persaingan dalam bisnis perhotelan sangat meningkat. Hotel merupakan salah satu bidang usaha yan termasuk dalam kategori Hospital service industry, yaitu salah satu bidang usaha yang bertujuan menyediakan fasilitas penginapan atau kamar sebagai tempat untuk menyelenggarakan suatu event tertentu bagi masyarakat yang membutuhkan.
Semakin banyak Hotel semakin ketat persaingan yang ada. Pengelolaan data dan informasi merupakan hal penting bagi jalan nya suatu kegiatan perhotelan. Dalam pemrosesan data dan informasi, butuh ketelitian dan kecepatan sehingga diperlukan peran teknologi agar arus data dan informasi dapat diketahui dan dikontrol dengan tujuan dapat menjadi alternatif dalam mengatasi masalah yang ada.
ü Entitas Sebuah Hotel Dalam Basis Data
- Tamu
- Pegawai
- Transaksi_Inap
- Transaksi GohomeKamarFasilitasHarga
ü Identifikasi seluruh Relasi
1. Tamu melakukan Transaksi Inap
2. Pegawai melayani transaksi Inap
3. Transaksi Inap pasti Tansaksi-Gohome
4. Transaksi inap Untuk Harga
5. Kamar Memiliki Fasilitas
6. Fasilitas Mempunyai Harga
ü Atribut dari diagram entitas relasi Hotel ini adalah seluruh komponen yang melekat pada Entitas nya.
ü Varian Entitas
Entitas Lemah (Weak Entity)
entitas yang kemunculannya tergantung pada eksistensinya dalam sebuah relasi.
Entitas kuat (Strong Entity)
Entitas yang berdiri sendiri, keberadaannya tidak tergantung dengan entitas lain.
Contoh :
Tamu Melakukan Transaksi_inap
Keterangan :
- Tamu Entitas Kuat
- Transaksi Inap Entitas Lemah
ü Cardinalitas Relasi
1. One to One : Hubungan satu ke satu.
- Transaksi inap Pasti Transaksi Gohome
- Transaksi Inap Untuk Harga
2. One to Many : Hubungan satu ke banyak
- Pegawai Melayani Transaksi Inap
- Fasilitas Mempunyai Harga
3. Many to Many : Hubungan banyak ke banyak
- Tamu melakukan Transaksi inap
- Kamar Memiliki Fasilitas
ü Jenis-Jenis Attribut
1. Atribut Key Adalah Atribut yang digunakan untuk membedakan data secara umum.
Atribut Key dari Entitas sebuah hotel adalah sbb:
- Tamu : Id Tamu
- Pegawai : Nip
- Transaksi_Inap : Id transaksi Inap
- Transaksi Gohome : Id transaksi_Gohome
- Kamar : Id type Kamar
- Fasilitas : Id Fasilitas
- Harga : Id Harga
2. Atribut Compositeadalah atribut yang masih dapat diuraikan lagi.3. Atribut Miltivalue adalah atribut yang memiliki sekelompok Nilai yang banyak.
Contohnya :
Entitas Pegawai : Jabatan4. Atribut Simpleadalah atribut yang bernilai tunggal. Seperti nama.5. Atribut derifatifadalah Atribut yang di hasilkan dari turunan atribut lain:
Entitas Pegawai : Umur
SYNTRAX SQL
LEVEL DATABASE Membuat database Untuk membuat database baru, sehingga tidak berlaku jika database sudah ada atau anda tidak memiliki privilege. Sintaksnya : CREATE DATABASE nama_db
Menghapus database Untuk menghapus database beserta seluruh table di dalamnya. Perintah ini tidak berlaku jika database tidak ada atau anda tidak memiliki privilege. Sintaksnya : DROP DATABASE nama_db
Menggunakan database Untuk menjadikan database menjadi default dan referensi dari table yang nantinya anda gunakan. Perintah ini tidak berlaku jika database tidak ada atau anda tidak memiliki privilege. Sintaksnya : USE nama_db
Menampilkan database Untuk menampilkan daftar yang ada dalam system saat itu. Sintaksnya : SHOW DATABASES
LEVEL TABEL Membuat table Untuk membuat table minimal anda harus menentukan namanya dan tipe kolom yang anda inginkan. Sintaks yang paling sederhana (tanpa ada definisi lain) adalah :
CREATE TABLE nama_tbl (kolom1 tipekolom1(),kolom2 tipekolom2(), …)
Contoh : Anda ingin membuat table dengan nama profil yang memiliki kolom nama (bertipe char, lebar 20), kolom umur (bertipe integer), kolom jenis_kelamin (bertipe enum, berisi M dan F). Sintaksnya : REATE TABLE profil (nama CHAR(20), umur INT NOT NULL, jenis_kelamin ENUM(‘F’,’M’) )
Sedangkan perintah yang agak lengkap dalam membuat sebuah table adalah dengan menyertakan definisi tertentu. Misalnya perintah seperti ini : CREATE TABLE peserta ( No SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, Nama CHAR(30) NOT NULL, BidangStudi ENUM(‘TS’,’WD’) NOT NULL, PRIMARY KEY (No), INDEX (Nama, BidangStudi) )
Perintah di atas berarti membuat table peserta dengan kolom No sebagai PRIMARY KEY yaitu indeks table yang unik yang tidak bisa diduplikat dengan atribut AUTO_INCREMENT yaitu kolom yang otomatis dapat mengurutkan angka yang diisikan padanya. Sedangkan kolom Nama dan BidangStudi dijadikan indeks biasa.
Membuat indeks pada table Menambahkan indeks pada table yang sudah ada baik yang unik ataupun yang biasa. Sintaksnya : CREATE INDEX nama_index ON nama_tbl (nama_kolom) CREATE UNIQUE INDEX nama_index ON nama_tbl (nama_kolom)
Menghapus table Untuk menghapus table dalam database tertentu. Jika dilakukan maka semua isi, indeks dan atribut lain akan terhapus. Sintaksnya : DROP TABLE nama_tbl
Menghapus indeks Untuk menghapus indeks pada suatu table. Sintaksnya : DROP INDEX nama-index ON nama_tbl
Melihat informasi table Untuk melihat table apa saja yang ada di database tertentu. Sintaksnya : SHOW TABLES FROM nama_db
Sedangkan untuk melihat deskripsi table atau informasi tentang kolom gunakan sintaks : DESC nama_tbl nama_kolom atau SHOW COLUMNS FROM nama_tbl FROM nama_db
Mendapatkan atau menampilkan informasi dari table Untuk menampilkan isi table dengan option-option tertentu. Misalnya untuk menampilkan seluruh isi table digunakan : SELECT * FROM nama_tbl
Untuk menampilkan kolom-kolom tertentu saja : SELECT kolom1,kolom2,… FROM nama_tbl
Untuk menampilkan isi suatu kolom dengan kondisi tertentu SELECT kolom1 FROM nama_tbl WHERE kolom2=isikolom Modifikasi struktur table Dapat digunakan untuk mengganti nama table atau mengubah strukturnya seperti manambah kolom atau indeks, menghapus kolom atau indeks, mengubah tipe kolom dsb. Sintaks umum : ALTER TABLE nama_tbl action
Untuk menambah kolom baru di tempat tertentu dapat menggunakan : ALTER TABLE nama_tbl ADD kolom_baru type() definisi
Untuk menambah kolom_baru bertipe integer setelah kolom1 digunakan : ALTER TABLE nama_tbl ADD kolom_baru INT NOT NULL AFTER kolom1
Untuk menambah indeks baru pada table tertentu baik yang unik ataupun yang biasa: ALTER TABLE nama_tbl ADD INDEX nama_index (nama_kolom) ALTER TABLE nama_tbl ADD UNIQUE nama_indeks (nama_kolom) ALTER TABLE nama_tbl ADD PRIMARY KEY nama_indeks (nama_kolom)
Untuk mengubah nama kolom dan definisinya, misalnya mengubah nama kolom_baru dengan tipe integer menjadi new_kolom dengan tipe char dengan lebar 30 digunakan: ALTER TABLE nama_tbl CHANGE kolom_baru new_kolom CHAR(30) NOT NULL
Untuk menghapus suatu kolom dan seluruh atributnya, misal menghapus kolom1 : ALTER TABLE nama_tbl DROP kolom1
Untuk menghapus indeks baik yang unik ataupun yang biasa digunakan : ALTER TABLE nama_tbl DROP nama_index ALTER TABLE nama_tbl DROP PRIMARY KEY
Modifikasi informasi dalam table. Untuk menambah record atau baris baru dalam table, sintaksnya : INSERT INTO nama_tbl (nama_kolom) VALUES (isi_kolom) atau INSERT INTO nama_tbl SET nama_kolom=isi_kolom
Misalnya untuk menambah dua baris pada table profil dengan isi nama = deden & ujang dan isi umur = 17 & 18 adalah : INSERT INTO profil (nama,umur) VALUES (deden,17), (ujang,18) atau INSERT INTO profil SET nama=deden, umur=17 INSERT INTO profil SET nama=ujang, umur=18
Untuk memodifikasi record atau baris yang sudah ada yang bersesuaian dengan suatu kolom. Misalnya untuk mengubah umur deden menjadi 18 pada contoh di atas dapat digunakan sintaks : UPDATE profil SET umur=18 WHERE nama=qalit
Untuk menghapus record atau baris tertentu dalam suatu table. Misalnya untuk menghapus baris yang ada nama ujang digunakan
sintaks : DELETE FROM profil WHERE nama=ujang
Jika WHERE tidak disertakan maka semua isi dalam table profil akan terhapus.
SQL adalah kependekan dari Structured Query Language, merupakan sebuah bahasa yang digunakan untuk mengakses data dalam basis data (database) relasional. SQL banyak diterapkan pada pemrograman berbasis client-server seperti PHP, ASP, Java J2EE, dan sebagainya. Contoh software SQL yang terkenal adalah MySQL, MsSQL (Microsoft), Oracle SQL, Postgre SQL (open source). Masing-masing software mempunyai keunggulan sendiri-sendiri, sejauh yang saya tahu Oracle SQL handal dalam hal keamanan dan ukuran database yang bisa mencapai tera byte, sedang MsSQL lebih banyak bermain di Memory untuk processing. Dari ketiga software ini, Oracle SQl bisa dikatakan sebagai pemegang pertama. Perintah dasar SQL pada dasarnya hampir sama baik MySQL, Postgre SQL, MsSQL atau Oracle SQL.
Membuat Database Baru di SQL
DDL (Data Definition Language) digunakan untuk mendefinisikan, mengubah, serta menghapus database dan objek-objek yang diperlukan. Membuat basis data di SQL cukup mudah, syntaxnya sebagai berikut.
1
CREATE DATABASE nama_db;
Membuat Tabel di SQL
1
CREATE TABLE nama_tabel;
Sedangkan untuk membuat tabel lengkap dengan fieldnya, perhatikan contoh di bawah ini:
1 2 3 4
CREATE TABLE user ( user_name VARCHAR(30) CONSTRAINT PRIMARY KEY, password VARCHAR(20) NOT NULL, date_of_birth DATETIME );
DML (Data Manipulation Language), digunakan untuk memanipulasi data dalam tabel. Perintahnya adalah:
SELECT untuk menampilkan dataINSERT untuk menambahkan data baruUPDATE untuk mengubah data yang sudah adaDELETE untuk menghapus data
Menampilkan Seluruh Data
1
SELECT * FROM user;
Menyimpan Data ke Tabel SQL
1
INSERT INTO user (user_name, password, date_of_birth) VALUES ('ALIYA HASSAN', 'Cengkareng', 'qwe');
Menghapus Data di Tabel
1
DELETE FROM user WHERE nama='ALIYA HASSAN';
Catatan: Setiap syntax pada SQL selalu diakhiri dengan tanda semicolon atau titik koma (;), abaikan kode ini jika kamu menggunakan PHPMyAdmin untuk mengakses database. Tapi jika kamu menggunakan terminal, ssh, cmd, atau program remote server lainnya perintah ini wajib diperhatikan. Selalu gunakan tanda bintang (*) untuk melihat isi tabel, tanda ini akan membaca baris (row). Pada dasarnya, perintah dasar mysql sama dengan postgre sql maupun oracle sql.
Perintah SQL dan Pengunaannya - SQL (Structured Query Language) adalah sebuah bahasa yang digunakan untuk mengakses data dalam basis data relasional. Bahasa ini secara de facto merupakan bahasa standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir semua server basis data yang ada mendukung bahasa ini untuk melakukan manajemen datanya.
Berikut perintah-perintah dari sql beserta contoh penggunaanya : 1. Create Database : Create database berguna untuk membuat database baru. Syntax dasar:
CREATE DATABASE database_nama
Contoh:
CREATE DATABASE databaseku
2. Create Table : Berguna untuk membuat tabel data baru dalam sebuah database. Syntax dasar:
CREATE TABLE ( Column_name1 table_nama data_type Column_name2 table_nama data_type Column_name3 table_nama data_type )
Contoh menggunakan perintah create table :
CREATE TABLE registrasi ( Id int, Nama varchar (255), Email varchar(50), Kota varchar(255) )
3. Select : Digunakan untuk memilih data dari table database. Syntax dasar :
SELECT column_name(s) FROM table_name
Atau
SELECT * FROM table_name
Contoh 1 :
SELECT nama,email FROM registrasi
Contoh 2 :
SELECT * FROM registrasi
4. Select Distinct : Digunakan untuk memilih data-data yang berbeda (menghilangkan duplikasi) dari sebuah table database. Syntax dasar :
SELECT DISTINCT column_name(s) FROM table_name
Contoh :
SELECT DISTINCT kota FROM registrasi
5. Where : Digunakan untuk memfilter data pada perintah Select Syntax dasar :
SELECT column name(s) FROM table_name WHERE column_name operator value
Contoh :
SELECT * FROM registrasi WHERE nama=’KONOE’
6. Order By : Digunakan untuk mengurutkan data berdasarkan kolom (field) tertentu. Secara default, urutan tersusun secara ascending (urut kecil ke besar). Anda dapat mengubahnya menjadi descending (urut besar ke kecil) dengan menambahkan perintah DESC. Syntax dasar :
SELECT column_name(s) FROM table_name ORDER BY column_name(s) ASC|DESC
Contoh 1 :
SELECT * FROMregistrasi ORDER BY email
Contoh 2 :
SELECT * FROM registrasi ORDER BY id DESC
8. Like : Digunakan bersama dengan perintah Where, untuk proses pencarian data dengan spesifikasi tertentu. Syntax dasar :
SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern
Contoh 1 :
SELECT * FROM registrasi WHERE nama LIKE ‘b%’
Keteranan Contoh di atas digunakan untuk pencarian berdasarkan kolom nama yang berhuruf depan “b”. Contoh 2 :
SELECT * FROM WHERE nama LIKE ‘b%’
Keterangan : Contoh di atas digunakan untuk pencarian berdasarkan kolom nama yang berhuruf belakang “b”. 9. In : Digunakan untuk pencarian data menggunakan lebih dari satu filter pada perintah Where. Syntax dasar :
SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2, . . .)
Contoh :
SELECT * FROM registrasi WHERE kota IN (‘Medan’,’Siantar’)
10. Between : Digunakan untuk menentukan jangkauan pencarian. Syntax dasar :
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2
Contoh :
SELECT * FROM registrasi WHERE id BETWEEN 5 and 15
Keterangan : Contoh di atas digunakan untuk mencari data yang memiliki nomor id antara 5 dan 15. 11. Insert Into : Digunakan untuk menambahkan data baru di tabel database. Syntax dasar :
INSERT INTO table_name VALUES (value1,value2,value3, . . .)
Atau
INSERT INTO table_name (column1,column2,column3, . . .) VALUES (value1,value2,value3, . . .)
Contoh 1 :
INSERT INTO registrasi VALUES (1,’konoe’,’konoe@gmail.com’,’Medan’)
Contoh 2 :
INSERT INTO registrasi (id,nama,email,kota) VALUES (1,'konoe','konoe@gmail.com','Medan')
12. Update : Digunakan untuk mengubah/memperbarui data di tabel database. Syntax dasar:
UPDATE table_name SET column1=value,column2=value, . . . WHERE some_column=some_value
Contoh :
UPDATE registrasi SET email=’konoe@yahoo.com’, kota=’Medan’ WHERE
13. Delete : Digunakan untuk menghapus data di table database. Tambahkan perintah Where untuk memfilter data-data tertentu yang akan dihapus. Jika tanpa perintah Where, maka seluruh data dalam tabel akan terhapus. Syntax dasar :
DELETE FROM table_name WHERE some_column=some_value
Contoh :
NORMALISASI DATABASE
Normalisasi data merupakan suatu proses untuk mendapatkan struktur tabel atau relasi yang efisien dan bebas dari anomali, dan mengacu pada cara data item dikelompokkan ke dalam struktur record. Anomali merupakan efek samping yang tidak diharapkan, yang ditimbulkan dari suatu proses.
Terdapat tiga macam anomali, ialah:
a. Anomali Peremajaan, yang terjadi apabila dilakukan pengubahan data yang mengakibatkan pengubahan data lain yang tidak mempunyai hubungan secara logika.
b. Anomali Penyisipan, yang terjadi apabila dilakukan penambahan atau penyisipan data yang mengakibatkan perlunya penambahan atau penyisipan data lain yang tidak mempunyai hubungan secara logika.
c. Anomali Penghapusan, yang terjadi apabila dilakukan penghapusan data yang mengakibatkan hilangnya data lain yang tidak mempunyai hubungan secara logika.
Anomali dapat dieliminasi dengan mengganti format dari relasi, seringkali dengan memecah relasi menjadi dua atau lebih relasi baru yang dibentuk dari relasi semula. Pengubahan tersebut dilakukan didalam suatu proses yang disebut dengan proses normalisasi. Untuk memahami proses normalisasi, perlu diketahui dua terminologi yang terkait ialah: ketergantungan fungsional (functional dependencies) dan kunci.
Ketergantungan Fungsional
Suatu ketergantungan fungsional ialah suatu relationship diantara atribut. Dengan ketergantungan fungsional, jika diberikan nilai suatu atribut maka akan dapat diperoleh atau dicari nilai dari atribut lain. Atau secara lebih formal ketergantungan fungsional didefinisikan sebagai berikut:
R suatu relasi, x dan y himpunan bagian dari himpunan atribut R.
y mempunyai ketergantungan fungsional (KF) pada x, atau x ïƒ y
jika dan hanya jika setiap nilai x di dalam R mempunyai asosiasi dengan tepat satu nilai y di dalam R. x disebut determinant, yaitu sebagai atribut penentu dan y disebut dependent, yaitu sebagai atribut yang bergantung.
Tujuan dari normalisasi
ï± Untuk menghilangkan kerangkapan data
ï± Untuk mengurangi kompleksitas
ï± Untuk mempermudah pemodifikasian data
Proses Normalisasi
ï± Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu ke beberapa tingkat.
ï± Apabila tabel yang diuji belum memenuhi persyaratan tertentu, maka tabel tersebut perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal.
Bentuk Normalisasi
Suatu relasi dikatakan di dalam bentuk normal, jika memenuhi sejumlah kriteria tertentu yang sudah ditentukan.
Macam bentuk normal suatu relasi ialah:
a. Unnormalized (bentuk belum normal).
b. Bentuk Normal Pertama (First Normal Form/1 NF).
c. Bentuk Normal Kedua (Second Normal Form/2 NF).
d. Bentuk Normal Ketiga (Third Normal Form/3 NF).
e. Boyce/Codd Normal Form (BCNF).
f. Bentuk Normal Keempat (Fourth Normal Form/4 NF).
g. Bentuk Normal Kelima (Fifth Normal Form/5 NF).
Unnormalized
Unnormalized ialah suatu relasi yang mengandung atribut dengan nilai non-atomic, dan atau mempunyai group atribut berulang. Nilai atribut atomic ialah nilai suatu atribut yang tidak dapat dibagi menjadi komponen-komponen yang lebih kecil. Sehingga nilai atribut composite dan nilai atribut multivalued tidak diijinkan disini.
Contoh data unnormalized:
Bentuk Normal Kesatu (1NF)
Suatu relasi di dalam 1NF jika dan hanya jika semua domain yang mendasari hanya berisi nilai scalar, dengan demikian tidak mengandung group berulang.
Contoh bentuk 1NF :
Tabel KIRIM-1 (Unnormal)
No-pem Kode-kota Kota No-bar Jumlah
P01 1 Jakarta B01 1000
B02 1500
B03 2000
P02 3 Bandung B03 1000
P03 2 Surabaya B02 2000
Tabel KIRIM-2 (1NF)
No-pem Kode-kota Kota No-bar Jumlah
P01 1 Jakarta B01 1000
P01 1 Jakarta B02 1500
P01 1 Jakarta B03 2000
P02 3 Bandung B03 1000
P03 2 Surabaya B02 2000
Diagram Ketergantungan Fungsional
Kode-kota
No-pem
Kota
Jumlah
No-bar
Bentuk Normal Kedua (2NF)
Suatu relasi di dalam 2NF jika dan hanya jika:
• Memenuhi 1NF
• Setiap atribut bukan kunci bergantung penuh secara fungsional pada kunci utama.
Jika suatu relasi memenuhi 1-NF dan relasi tersebut memiliki tepat satu atribut yang membentuk kunci utama, maka relasi tersebut memenuhi 2-NF.
Rasionalisasi 2-NF :
a. Memiliki semantik yang lebih eksplisit dari 1-NF.
b. Mencegah beberapa kondisi anomali dalam update data.
Atribut bukan kunci ialah atribut yang tidak membentuk bagian kunci utama.
Contoh bentuk 2NF:
Tabel PEMASOK-1 (2NF)
No-pem Kode-kota Kota
P01 1 Jakarta
P02 3 Bandung
P03 2 Surabaya
Ketergantungan Fungsional
Definisi :
Atribut Y pada relasi R dikatakan tergantung fungsional pada atribut X (R.X —> R.Y), jika dan hanya jika setiap nilai X pada relasi R mempunyai tepat satu nilai Y pada R.
Misal, terdapat skema database Pemasok-barang :
Pemasok (No-pem, Na-pem)
Tabel PEMASOK-BARANG
No-pem Na-pem
P01 Baharu
P02 Sinar
P03 Harapan
Ketergantungan fungsional dari tabel PEMASOK-BARANG adalah :
No-pem —> Na-pem
Ketergantungan Fungsional Penuh
Definisi :
Atribut Y pada relasi R dikatakan tergantung fungsional penuh pada atribut X pada relasi R, jika Y tidak tergantung pada subset dari X ( bila X adalah key gabungan)
Contoh :
KIRIM-BARANG( No-pem, Na-pem, No-bar, Jumlah)
No-pem Na-pem No-bar Jumlah
P01 Baharu B01 1000
P01 Baharu B02 1500
P01 Baharu B03 2000
P02 Sinar B03 1000
P03 Harapan B02 2000
Ketergantungan fungsional :
No-pem –> Na-pem
No-bar, No-pem –> Jumlah (Tergantung penuh thd keynya)
Bentuk Normal Ketiga (3NF)
Suatu relasi di dalam 3NF jika dan hanya jika:
• Memenuhi 2NF
• Setiap atribut bukan kunci tergantung non-transitive pada kunci utama.
Atribut bukan kunci merupakan sembarang atribut yang tidak berpartisipasi di dalam kunci utama dari relasi terkait. Sedangkan ketergantungan transitive terjadi apabila satu atribut bukan kunci tergantung pada satu atau lebih atribut bukan kunci yang lain. contoh :
Tabel KIRIM-3 (3NF)
No-pem No-bar Jumlah
P01 B01 1000
P01 B02 1500
P01 B03 2000
P02 B03 1000
P03 B02 2000
Tabel PEMASOK-2 (3NF) Tabel PEMASOK-3 (3NF)
No-pem Kode-kota Kode-kota Kota
P01 1 1 Jakarta
P02 3 2 Surabaya
P03 2 3 Bandung
Bentuk-bentuk Normal
Relasi di dalam bentuk normal ketiga (3NF) sudah cukup untuk banyak perancangan basis data praktis. Akan tetapi 3NF tidak menjamin semua anomali telah dihilangkan (McFadden, 1988). Sehingga untuk menghilangkan anomali yang masih ada diperlukan penambahan proses normalisasi yang lebih tinggi. Pada prakteknya sangat sedikit orang perlu memikirkan penormalisasian di atas bentuk normal ketiga (Whitehorn, 2003).
Bentuk-bentuk normal yang lebih tinggi dari 3NF antara lain ialah:
a. Boyce-Codd Normal Form (BCNF)
Jika suatu relasi mempunyai lebih dari satu kunci kandidat yang overlapping, terdapat kemungkinan masih dijumpainya anomali (meskipun relasi sudah memenuhi 3NF). R. F. Boyce dan E. F. Codd mengusulkan pemecahannya dengan mengenalkan suatu bentuk normalisasi yang didefinisikan lebih kuat dari 3NF. Bentuk tersebut yang kemudian disebut dengan nama Boyce Codd Normal Form (BCNF). Suatu relasi di dalam BCNF jika dan hanya jika, hanya determinant yang menjadi kunci kandidat.
b. Bentuk Normal Keempat
Meskipun suatu relasi sudah memenuhi BCNF, terdapat kemungkinan relasi tersebut masih menghasilkan anomali peremajaan. Untuk menghilangkan anomali tersebut perlu dilakukan proses normalisasi untuk mendapatkan 4NF. Di dalam membentuk relasi menjadi 4NF, akan terkait dengan suatu bentuk hubungan antar atribut yang disebut dengan: Multi Valued Dependence (MVD).
c. Bentuk Normal Kelima
Sebelum bicara tentang relasi dengan bentuk normal yang lebih tinggi dari 4NF, perlu dikenalkan dahulu tentang Joint-Dependency (JD).
Efek-efek normalisasi
Akibat yang muncul dalam proses normalisasi:
a. Masalah kekangan dalam basis data.
• Duplikasi rinci data
• Adanya integritas referensi yang harus terjaga dan nilai-nilai pada AK tidak boleh null maka proses dekomposisi akan menghasilkan suatu set yang inheren pada batasan integritas referensial.
b. Ketidakefisienan dalam menampilkan kembali data tersebut.
PERINTAH/BAHASA BASIS DATA
1. Bahasa Definisi Data (Data Definition Language/ DDL)
DDL adalah perintah-perintah yang biasa digunakan oleh administrator basis data (DBA) utnuk mendefinisikan skema ke DBMS. Skema adalah deskripsi lengkap tentang struktur medan, rekaman, dan hubungan data pada basis data
Index merupakan suatu mekanisme yang lazim digunakan pada basis data, yang memungkinkan pengambilan data dapat dilakukan dengan cepat.
DDL Digunakan untuk mespesifikasikan struktur/skema basis data yang menggambarkan/mewakili desain basis data secara keseluruhan.
Hasil kompilasi perintah DDL adalah kamus data (File yang berisi metadata (data yang mendeskripsikan data sesungguhnya).
Struktur penyimpan dan metode akses yang digunakan oleh sistem basis data disebut dengan data storage and definition language.
Perintah-perintah yang termasuk dalam data Definition Language/ DDL):
•CREATE (untuk membentuk basis data, table atau index)•• DROP (untuk mengubah struktur table)
• ALTER (untuk menghapus basis data, table atau index)
• SELECT – mengambil data
• DELETE – menghapus data
• INSERT – menyisipkan data
• UPDATE – mengubah data
Data Manipulation laguage (DML)
DML adalah perintah-perintah yang digunakan untuk mengubah, manipulasi dan mengambil data pada basis data. Tindakan seperti menghapus, mengubah, dan mengambil data menjadi bagian dari DML.
DML pada dasarnya dibagi menjadi dua :
Prosedural, yang menuntut pengguna menentukan data apa saja yang diperlukan dan bagaimana cara mendapatkannya.
- Nonprosedural, yang menuntut pengguna menentukan data apa saja yang diperlukan, tetapi tidak perlu menyebutkan cara mendapatkannya.
Perintah-perintah yang termasuk dalam data manipulation language adalah :
a) Insert: Merupakan perintah yang dilakukan untuk melakukan penyisipan. Umunya penyisipan dilakukan langsung ke base table yaitu tabel utama,tabel dasar atau fisik. Ada dua jenis penyisipan yaitu :
- Menambah anggota relasi langsung lewat base tables
- Menambah suatu relasi melalui suatu views sehingga mungkin menghasilkan penambahan lebih dari satu baris pada base tables
b) Update Merupakan perintah yang digunakan untukmengubah data yang memenuhikondisitertentu yang dideskripsikandengan where.Adaduajenis update yaitu :
- Memodifikasianggotalangsungdari base tables.
- Memodifikasianggotarelasimelaluisuatu views.
c) Delete: Merupakanperintah yang digunakan untuk menghapus data yang memenuhi kondisi tertentu yang dideskripsikan dengan:
- Menghapus anggota langsung dari base tables.
- Menghapus anggota relasi melalui suatu views.
d) Select: Merupakan perintah yang digunakan untuk melakukan operasi seleksi yang dinyatakan dalam bentuk suatu query dalam bahasa tertentu dengan operasi model data relasional.
e) Views: Merupakan perintah yang digunakan untuk memudahkan proses untuk dapat membuat tabel virtual ataumaya yang dapat merupakan kombinasi berbagai base tables yang dihubungkan dengan kesamaan kondisi tertentu.View adalah tabel semu yang berarti secara fisik data tidak tersimpan dalam basis data,tetapi secara lojik dapat berfungsi seolah-olah tabel.Pada dasarnya tabel virtual adalah :
- Merupakan hasil proses seleksi yang mewakili kacamata user tertentu.
- Dapat digunakan untuk melakukan retrieval,insert,delete dan update
- Data Control Language
Data Control Language (DCL)
Data Control Language (DCL) merupakan sub bahasa SQL yang digunakan untuk melakukan pengontrolan data dan server databasenya.
Perintah-perintah yang termasukdalam data control language adalah :
a) Commit: Merupakan perintah yang digunakan untuk memindahkan transaksi dari memory pemrosesan ke database atau menyimpan secara permanen perubahan-perubahan kedalam database.
b) Rollback: Merupakan perintah yang digunakan untuk membatalkan transaksi yang belum di commit atau membatalkan perubahan-perubahan terakhir dari perintah commit/rollback terakhir.
c) Grand: Perintah ini digunakan untuk memberikan hak/ijin akses oleh administrator (pemilik utama) server kepada user (pengguna biasa). Hak akses tersebut berupa hak membuat (CREATE), mengambil (SELECT), menghapus (DELETE), mengubah (UPDATE), dan hak khusus berkenaan dengan sistem databasenya.
d) Revoke : Perintah ini memiliki kegunaan terbalik dengan GRAND, yaitu untuk menghilangkan atau mencabut hak akses yang telah diberikan kepada user oleh administrator.
DQL ( Data Query Language)
Query sesungguhnya berarti pertanyaan atau permintaan. Istilah ini tetap dipertahankan dalam bentuk asli, karena telah populer di kalangan pengguna DBMS di Indonesia.
TIPE DATA PADA DBMS
TIPE – TIPE DATA PADA DATABASE MANAJEMENT SYSTEM
1. Character (Visual dBASE) Visual dBase adalah salah satu bahasa pemrograman database dibawah sistim operasi Windows. dBase diciptakan pada tahun 1995 oleh Borland International, Inc. untuk menggantikan bahasa pemrograman dBase yang sudah terkenal sejak 1984. MENJALANKAN VISUAL dBASE 5.5 Setelah Visual dBase selesai Anda install ke dalam komputer Anda, selanjutnya cara menjalankan Visual dBase adalah sebagai berikut (Windows XP): 1. Klik Start, kemudian sorot All Programs. 2. Keluar seluruh program yang ada dalam Windows Anda, sorot Visual dBase. 3. Keluar dua belas buah pilihan, klik Visual dBase. 4. Sekarang Anda sudah siap bekerja dengan Visual dBase Dengan cara yang sama, demikian juga menjalankan Visual dBase jika Anda menggunakan Windows 2000 atau Windows 98. KOMPONEN-KOMPONEN VISUAL dBASE Visual dBase 5.5 terdiri dari beberapa komponen, antara lain: Title (Judul), Menu Bar (baris menu), Icon, Jendela Navigator dan Jendela Command.
2. PostgreSQL adalah sebuah object-relational database management system (ORDBMS) yang bersifat open source. PostgreSQL adalah database yang powerful dan tidak kalah dengan database komersil sekelasnya Oracle, Sybase maupun Informix. PostgreSQL yang mendukung standar SQL92 dan SQL99 ini juga mendukung bahasa pemrograman C, C++, Java, Tcl, Perl, Python, PHP, dst.
3. Database relasional dapat menangani semua jenis data.Sebuah toko program database dan informasi mengambil. Sebuah sistem manajemen database relasional (RDBMS) menunjukkan struktur dan organisasi data dalam database. Industri menemukan database relasional menarik karena kesederhanaan dalam pemrograman, akses dan pemeliharaan. Penciptaan database relasional jenis, struktur dan sistem pada tahun 1970 membuka pintu untuk pengembangan penyimpanan, pencarian dan aplikasi data untuk semua jenis aplikasi komputer.
4. Oracle 11g Tersedia dalam tiga edisi kompatibel-perusahaan, standar dan express-Oracle 11g menyediakan kemampuan database yang berjalan di Windows, Linux dan sistem operasi UNIX. Fitur khusus termasuk pemrosesan transaksi, intelijen bisnis dan aplikasi manajemen konten. Oracle 11g memberikan perlindungan dari kegagalan server, mengamankan enkripsi data dan recall total data, dan mudah mengelola terbesar dari database. Edisi Enterprise menawarkan berbagai pilihan yang mencakup data mining, data warehouse, OLAP, keamanan canggih dan manajemen. Pilihan lain adalah aplikasi pengujian nyata dan kompresi canggih. Oracle mempromosikan aplikasi database dengan menawarkan database gratis starter di Oracle Database 10g Express Edition yang pengguna bebas untuk men-download, mendistribusikan, mengembangkan dan menyebarkan.