Normalisasi pada Database
Normalisasi pada Database
A. Apa itu Normalisasi Database
Normalisasi dalam Database’. Normalisasi itu teknik untuk mengelompokkan atribut dari suatu relasi sehingga membentuk struktur relasi yang baik(tanpa adanya redudansi). Normalisasi dalam suatu database biasanya hanya mencapai N3(Normalisasi Ketiga), berikut adalah urutan Normalisasi :
1. N1(Normalisasi Pertama) Mempunyai aturan
• Mendefinisikan primary key
• Tidak ada grup yang berulang
• Semua non-primary key bergantung pada primary key
2. N2(Normalisasi Kedua) Mempunyai aturan
• Memenuhi aturan N1
• Tidak ada ketergantungan parsial
3. N3(Normalisasi Ketiga) Mempunyai aturan
• Memenuhi aturan N2
• Tidak ada ketergantungan transitif
Normalisasi bisa juga disebut Well Structure Relation atau proses pengelompokan atribut-atribut dari suatu relasi. Ada beberapa bentuk dalam normalisasi, yaitu Unnormalized Form, First Normal Form (1NF), Second Normal Form (2NF), Third Normal Form (3NF) dan Boyce-Codd Normal Form (BNF).
Bentuk Unnormalized Form =
1.Value pada kolom Kode_Matkul lebih dari 1, itulah mengapa masih disebut Unnormalized.
2.Value pada masing-masing kolom hanya ada Satu
Jumlah normalisasi seluruhnya ada 5(Lima) dimana 3 bentuk normal pertama menekankan redudansi yang muncul dari Function Dependencies sedangkan N4 dan N5 menekankan redudansi yang muncul dari kasus Multi Valued Dependencies.
B. Syarat perlunya normalisasi:
• Fleksibilitas
Struktur database harus menunjang semua cara untuk menampilan data, sehingga ketika user menjalankan aplikasi dan meminta sesuatu dalam datbase, database harus dapat berjlan memenuhi permintaan user.
• Integritas data
Semua data dalam database yang berkaitan harus terhubung dalam suatu relationship. Sehingga ketika suatu data berubah,maka semua data yang berkaitan dengan data tersebut harus dapat berubah secara otomatis.
• Efficiency
Pada database, ukuran suatu database merupakan hal yang penting. Maka dalam database, kita harus mengurangi redudansi data yang bisa menyebabkan ukuran databse membengkak.
• Menghindari modification anomaly
Desain database yang baik menyajikan suatu keyakinan bahwa ketika user melakukan perubahan dalam database, maka tidak terjadi hal yang tidak diinginkan.
C. Berikut adalah cara singkat melakukan normalisasi :
1. Normalisasi Pertama a.k.a N1
Hilangkan duplikasi dengan mencari ketergantungan parsial
2. Normalisasi Kedua a.k.a N2
Field-field yang tergantung pada satu field harus dipisah dengan tepat
3. Normalisasi Ketiga a.k.a N3
Cari hubungan transitif (transitive relation) dimana field non key tergantung pada field non key lainnya.
Tabel yang sudah mencapai N3 sudah siap untuk diimplementasikan dalam sebuah proyek, sebenarnya masih ada bentuk normalisasi yang lain yaitu Normalisasi Boyce-Codd dan N4. Jadi sebelum membuat suatu project normalisasikanlah database-mu.
Sintax SQL, Inner Join, Left Join, Right Join, and Full Join.
SINTAX SQL, INNER JOIN, LEFT JOIN, RIGHT JOIN, AND FULL JOIN
Syntax dasar dalam SQL ( Structured Query Language )
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 UI QUE 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=18Untuk 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.
Structured Query Language )
MySQL=> DDL, DML, DCL
SQL merupakan singkatan dari Structured Query Language. SQL atau juga sering disebut sebagai query merupakan suatu bahasa (language) yang digunakan untuk mengakses database. SQL dikenalkan pertama kali dalam IBM pada tahun 1970 dan sebuah standar ISO dan ANSII ditetapkan untuk SQL. Standar ini tidak tergantung pada mesin yang digunakan (IBM, Microsoft atau Oracle). Hampir semua software database mengenal atau mengerti SQL. Jadi, perintah SQL pada semua software database hampir sama.
Terdapat 3 (dua) jenis perintah SQL, yaitu DDL, DML dan DCL.
1. DDL atau Data Definition Language
DDL merupakan perintah SQL yang berhubungan dengan pendefinisian suatu struktur database, dalam hal ini database dan table. Beberapa perintah dasar yang termasuk DDL ini antara lain :
- CREATE
- ALTER
- RENAME
- DROP
2. DML atau Data Manipulation Language
DML merupakan perintah SQL yang berhubungan dengan manipulasi atau pengolahan data atau record dalam table. Perintah SQL yang termasuk dalam DML antara lain :
- SELECT
- INSERT
- UPDATE
- DELETE
3. DCL atau Data Control Language
DCL (bukan BCL) merupakan perintah SQL yang berhubungan dengan pengaturan hak akses user MySQL, baik terhadap server, database, tabel maupun field. Perintah SQL yang termasuk dalam DCL antara lain :
- GRANT
- REVOKE
Tipe data pada DBMS
Tipe data pada DBMS
Banyak program basis data yang sudah di gunakan, misalnya : Ms Access, My SQL, Oracle, SQL Server, Postgre, Fire Bird, Paradok, Interbase. Dan contoh yang lainnya adalah Sybase, DB2, Informix, FoxPro, Clipper, dan lain-lain.
Berikut fiktur dan standarisasi yang digunakan pada beberapa contoh DBMS:
• Ms. Access.
Aplikasi ini menggunakan mesin basis data Microsoft Jet Database Engine, dan juga menggunakan tampilan grafis yang intuitif sehingga memudahkan pengguna. Versi terakhir adalah Microsoft Office Access 2007 yang termasuk ke dalam Microsoft Office System 2007. Microsoft Access dapat menggunakan data yang disimpan di dalam format Microsoft Access, Microsoft Jet Database Engine, Microsoft SQL Server, Oracle Database, atau semua kontainer basis data yang mendukung standar ODBC.
• Versi Ms Access
Tanggal Nama versi Nomor versi Sistem operasi yang didukung Versi Microsoft Office 1992
Microsoft Access 1.1 1 Microsoft Windows T/A 1993
Microsoft Access 2.0 2 Microsoft Windows Microsoft Office 4.3 Professional 1995
Microsoft Access for Windows 95 7 Microsoft Windows 95 dan Windows NT 3.51
Microsoft Office 95 Professional 1997
Microsoft Access 97 8 Microsoft Windows 95/98 dan Windows NT 3.51/NT 4.0
Microsoft Office 97 Professional 1999
Microsoft Access 2000 9 Microsoft Windows 98/Me, Windows NT 4.0/2000
Microsoft Office 2000 Premium dan Office 2000 Professional 2001
Microsoft Access 2002 10
Microsoft Windows 98/Me, Windows NT/2000/XP
Microsoft Office XP Professional 2003
Microsoft Access 2003 11 Microsoft Windows 2000 (Service Pack 3 ke atas)/XP (Service Pack 1 ke atas)/Server 2003
Microsoft Office System 2003 2007
Microsoft Office Access 2007 12 Microsoft Windows XP (Service Pack 2)/Server 2003/Vista/Server 2008 (Beta 2 ke atas)
Microsoft Office System 2007
Meskipun demikian, tampilan muka Access (form, report, query, dan kode Visual Basic) yang dimilikinya dapat digunakan untuk menangani basis data yang sebenarnya diproses oleh sistem manajemen basis data lainnya, seperti halnya Microsoft Jet Database Engine (yang secara default digunakan oleh Microsoft Access), Microsoft SQL Server, Oracle Database, dan beberapa produk lainnya yang mendukung ODBC.
• Fitur-fitur dari Ms Acccess
Salah satu keunggulan Microsoft Access dilihat dari perspektif programmer adalah kompatibilitasnya dengan bahasa pemrograman Structured Query Language (SQL); query dapat dilihat dan disunting sebagai statemen-statemen SQL, dan statemen SQL dapat digunakan secara langsung di dalam Macro dan VBA Module untuk secara langsung memanipulasi tabel data dalam Access.
Para pengguna dapat mencampurkan dan menggunakan kedua jenis bahasa tersebut (VBA dan Macro) untuk memprogram form dan logika dan juga untuk mengaplikasikan konsep berorientasi objek. Microsoft SQL Server Desktop Engine (MSDE) 2000, yang merupakan sebuah versi mini dari Microsoft SQL Server 2000, dimasukkan ke dalam Office XP Developer Edition dan dapat digunakan oleh Microsoft Access sebagai alternatif dari Microsoft Jet Database Engine
• My SQL
MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia.
MySQL adalah Relational Database Management System (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Dimana setiap orang bebas untuk menggunakan MySQL, namun tidak boleh dijadikan produk turunan yang bersifat closed source atau komersial.
MySQL sebenarnya merupakan turunan salah satu konsep utama dalam database sejak lama, yaitu SQL (Structured Query Language).
Selain itu MySQL juga memiliki beberapa keistimewaan, antara lain : 1. Portability 2. Open Source 3. Multiuser 4. Performance tuning. 5. Column types 6. Command dan functions 7. Security 8. Scaability dan limits 9. Connectivity 10. Localisation 11. Interface
• Oracle.
Perusahaan perangkat lunak Oracle memasarkan jenis basis data ini untuk bermacam-macam aplikasi yang bisa berjalan pada banyak jenis dan merk perangkat keras komputer (platform).
Jenis perangkat keras (platform) yang dipakai sebagai server (host): Apple Mac OS X Server: PowerPC§ HP HP-UX: PA-RISC, Itanium§ HP Tru64 UNIX: Alpha§ HP OpenVMS: Alpha, Itanium§ IBM AIX5L: POWER§ IBM z/OS: zSeries§ Linux: x86, x86-64, PowerPC, zSeries, Itanium§ Microsoft Windows: x86, x86-64, Itanium§ Sun Solaris: SPARC, x86, x86-64
• SQL Server
Microsoft. Sebagai pengembangan dari versi dan edisi sebelumnya (SQL Server 7.0 dan SQL Server 2000), Microsoft telah memperkenalkan produk:
SQL Server 2005 perbandingan fitur edisi Enterprise (x86, x64, dan IA64)§ edisi Developer (x86, x64, dan IA64)§ edisi Standard (x86, x64, dan IA64)§ edisi Workgroup (hanya x86)§ edisi Express (x86 yang bisa di-download gratis untuk keperluan belajar dan pengenalan)§ edisi Mobile§ edisi Compact§
SQL Server 2008
SQL Server 2008 yang akan dipasarkan pada tahun 2008. Produk pendukung : SQL Server Integration Services§ SQL Server Analysis Services§ SQL Server Reporting Services§ SQL Server Notification Services§ SQL Server Management Studio§
• Postgre SQL
Perjanjian lisensi BSD.. PostgreSQL menyediakan fitur yang berguna untuk replikasi basis data. Fitur-fitur yang disediakan PostgreSQL antara lain DB Mirror, PGPool, Slony, PGCluster.
• Fire Bird Firebird (juga disebut FirebirdSQL) adalah sistem manajemen basisdata relasional yang menawarkan fitur-fitur yang terdapat dalam standar ANSI SQL-99 dan SQL-2003. RDBMS ini berjalan baik di Linux, Windows, maupun pada sejumlah platform Unix.
DataBase Management System
Database Manajement System (DBMS) merupakan software yang digunakan untuk membangun sebuah sistem basis data yang berbasis komputerisasi. DBMS membantu dalam pemeliharaan dan pengolahan kumpulan data dalam jumlah besar. Sehingga dengan menggunakan DBMS tidak menimbulkan kekacauan dan dapat digunakan oleh pengguna sesuai dengan kebutuhan.
DBMS merupakan perantara bagi pemakai dengan basis data. Untuk merinteraksi dengan DBMS (basis data) menggunakan bahasa basis data yang telah ditentukan oleh perusahaan DBMS. Bahasa basis data biasanya terdiri atas perintah-perintah yang di formulasikan sehingga perintah tersebut akan diproses olah DBMS. Perintah-perintah biasanya ditentukan oleh user. Ada 2 bahasa basis data:
Jadi DBMS adalah system perangkat lunak yang dibuat untuk memudahkan dalam memakai dan mengelolah basis data, serta dirancang untuk menjalankan operasi basis data yang diminta, melakukan ultilisasi, dan memanipulasi basis data agar lebih muda.
Contoh dari DBMS seperti Oracle, SQL server 2000/2003, MS Access, MySQL dan sebagainya.
Fungsi DBMS adalah sebagai berikut :
1. Data Definition
DBMS harus dapat mengolah pendefinisian data
2. Data Manipulation
DBMS harus dapat menangani permintaan-permintaan dari pemakai untuk mengakses data
3. Data Security & Integrity
DBMS harus dapat memeriksa security dan integrity data yang didefinisikan oleh DBA
4. Data Recovery & Concurency
- DBMS harus dapat menangani kegagalan-kegagalan pengaksesan database yang dapat disebabkan oleh kesalahan sistem, kerusakan disk, dsb.
- DBMS harus dapat mengontrol pengaksesan data yang konkuren yaitu bila satu data diakses secara bersama-sama oleh lebih dari satu pemakai pada saat yang bersamaan.
5. Data Dictionary
DBMS harus menyediakan data dictionary
6. Performance
DBMS harus menangani unjuk kerja dari semua fungsi seefisien mungkin.