NORMALISASI DATA

20 November 2012 23:18:11 Dibaca : 4488

Definisi/Pengertian Normalisasi

Normalisasi merupakan teknik analisis data yang mengorganisasikan atribut-atribut data dengan cara mengelompokkan sehingga terbentuk entitas yang non-redundant, stabil, dan fleksible. Hal yang dapat dilakukan dalam normalisasi data adalah insert,update,delete, dan modifikasi pada satu atau beberapa atribut tanpa mempengaruhi integritas data dalam relasi tersebut. Normalisasi dilakukan sebagai uji coba pada suatu relasi secara berkelanjutan untuk menentukan apakah relasi itu sudah baik, yaitu dapat dilakukan proses insert,update,delete, dan modifikasi pada satu atau beberapa atribut tanpa mempengaruhi integritas data dalam relasi tersebut.

Normalisasi merupakan sebuah teknik dalam logical desain sebuah basis data yang mengelompokkan atribut dari suatu relasi sehingga membentuk struktur relasi yang baik (tanpa redudansi). Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.

Syarat perlunyya 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.

Kapan tidak memakai normalisasi

·         ketika kita ingin mempertahankan kesederhanaan database, sehingga user dapat melakukan query sendiri.

·         jika tidak ingin melakukan query yang rumit. normalisasi biasanya akan membuat rumit query karena melibatkan banyak tabel.

·         tidak selamanya normalisasi membuat baik, malah akan menyebabkan database semakin buruk

Tujuan Normalisasi

          Untuk menghilang kerangkapan data

          Untuk mengurangi kompleksitas

          Untuk mempermudah pemodifikasian data

 

Definisi/Pengertian Normalisasi Data

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.

The goal of a relational database design is to generate a set of relation scheme that allow us to store informastion easily. One approach is to design scheme that are in an appropriate normal form (silberschatz, H., 1991).”

Proses Normalisasi

Data diuraikan dalam bentuk tabel, selanjutnya dianalisisberdasarkan persyaratan tertentu ke beberapa tingkat. Apabila tabel yang diuji belum memenuhi persyaratan tertentu,maka tabel tersebut perlu dipecah menjadi beberapa tabel yanglebih sederhana sampai memenuhi bentuk yang optimal.

Kriteria Tabel efisien

Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria sbb:

  1. Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya  harus dijamin aman (Lossless-Join Decomposition). Artinya, setelah tabel tersebut diuraikan / didekomposisi menjadi tabel-tabel baru, tabel-tabel baru tersebut bisa menghasilkan tabel semula dengan sama persis.
  2. Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation).
  3. Tidak melanggar Boyce-Code Normal Form (BCNF) (-akan dijelaskan kemudian-)

 

Tahapan Normalisasi

Tahap Normalisasi dimulai dari tahap paling ringan (1NF) hingga paling ketat (5NF) . Biasanya hanya sampai pada tingkat 3NF atau BCNF karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas baik. Urutan: 1NF, 2NF, 3NF, BCNF, 4NF, 5NF.

 

       Bentuk Tidak Normal

                                Menghilangkan perulangan group

       Bentuk Normal Pertama (1NF)

                                Menghilangkan ketergantungan sebagian

       Bentuk Normal Kedua (2NF)

                                Menghilangkan ketergantungan transitif

       Bentuk Normal Ketiga (3NF)

                                Menghilangkan anomali-anomali hasil dari ketergantungan          fungsional

       Bentuk Normal Boyce-Codd (BCNF)

                                Menghilangkan Ketergantungan Multivalue

       Bentuk Normal Keempat (4NF)

Menghilangkan anomali-anomali yang tersisa

       Bentuk Normal Kelima

 

Normal Pertama (1st Normal Form)

          Aturan :

ü  Tidak adanya atribut multi-value, atribut komposit atau kombinasinya.

ü  Mendefinisikan atribut kunci.

ü  Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi)

Contoh: Misal data mahasiswa sbb:

Normalisasi Kedua (2nd Normal Form)

          Aturan :

ü  Sudah memenuhi dalam bentuk normal

                kesatu (1NF)

ü  Semua atribut bukan kunci hanya boleh tergantung (functional dependency) pada atribut kunci

ü  Jika ada ketergantungan  parsial maka atribut tersebut harus dipisah pada tabel yang lain

ü  Perlu ada tabel penghubung ataupun kehadiran foreign key bagi atribut-atribut yang telah dipisah tadi 

Contoh: Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:

Mhs_nrp 

mhs_nama 

mhs_alamat 

mk_kode 

mk_nama

mk_sks 

nihuruf

 

Normalisasi Ketiga (3rd Normal Form)

          Aturan :

ü    Sudah berada dalam bentuk normal  kedua (2NF)

ü   Tidak ada ketergantungan transitif (dimana atribut bukan kunci tergantung pada atribut bukan kunci lainnya).

Contoh: Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:

Nrp

Nama

Alm_Jalan

Alm_Kota

Alm_Provinsi

Alm_Kodepos

 

Tabel-tabel yang memenuhi kriteria normalisasi ketiga, sudah siap diimplementasikan. Sebenarnya masih ada lagi bentuk normalisasi yang lain; Normalisasi Boyce-Codd, 4NF, 5NF, hanya saja jarang dipakai. Pada kebanyakan kasus, normalisasi hanya sampai ketiga.

BAHASA PADA SQL

03 October 2012 21:36:29 Dibaca : 335

Secara umum, SQL terdiri dari dua bahasa, yaitu Data Definition Language (DDL) dan Data Manipulation Language (DML). Implementasi DDL dan DML berbeda untuk tiap sistem manajemen basis data (SMBD), namun secara umum implementasi tiap bahasa ini memiliki bentuk standar yang ditetapkan ANSI

1. Data Definition Language

DDL digunakan untuk mendefinisikan, mengubah, serta menghapus basis data dan objek-objek yang diperlukan dalam basis data, misalnya tabelviewuser, dan sebagainya. Secara umum, DDL yang digunakan adalah CREATE untuk membuat objek baru, USE untuk menggunakan objek, ALTER untuk mengubah objek yang sudah ada, dan DROP untuk menghapus objek. DDL biasanya digunakan oleh administrator basis data dalam pembuatan sebuah aplikasi basis data.

Berikut adalah contoh perintah DDL yang digunakan pada MySQL. Klik pada link untuk melihat rincian penggunaan dari perintah tersebut.

·     Pembuatan (CREATE)

o  CREATE DATABASE

o  CREATE FUNCTION

o  CREATE INDEX

o  CREATE PROCEDURE

o  CREATE TABLE

o  CREATE TRIGGER

o  CREATE VIEW

·     Perubahan (ALTER & RENAME)

o  ALTER DATABASE

o  ALTER FUNCTION

o  ALTER PROCEDURE

o  ALTER TABLE

o  ALTER VIEW

o  RENAME TABLE

·     Penghapusan (DROP)

o  DROP DATABASE

o  DROP FUNCTION

o  DROP INDEX

o  DROP PROCEDURE

o  DROP TABLE

o  DROP TRIGGER

 

2. Data Manipulation Language

DML digunakan untuk memanipulasi data yang ada dalam suatu tabel. Perintah yang umum dilakukan adalah:

§  SELECT untuk menampilkan data

§  INSERT untuk menambahkan data baru

§  UPDATE untuk mengubah data yang sudah ada

§  DELETE untuk menghapus data

 

SELECT 

SELECT adalah perintah yang paling sering digunakan pada SQL, sehingga kadang-kadang istilah query dirujukkan pada perintah SELECT. SELECT digunakan untuk menampilkan data dari satu atau lebih tabel, biasanya dalam sebuah basis data yang sama. Secara umum, perintah SELECT memiliki bentuk lengkap: ( QUERY BUDIN ) Cilegon.

 

INSERT

Untuk menyimpan data dalam tabel digunakan sintaks. Contoh: INSERT INTO TEST (NAMA, ALAMAT, PASSWORD) VALUES ('test', 'alamat', 'pass')

 

UPDATE

Untuk mengubah data menggunakan sintax. Contoh:UPDATE Msuser set password="123456" where username="abc".

 

DELETE

Untuk menghapus data dipergunakan sintaks. Contoh: DELETE FROM [nama_table] Where [KONDISI].

 

3. DCL dan Join Pada SQL  

DCL atau Data Control Language 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 : Perintah ini digunakan untuk memberikan hak / izin akses oleh administrator (pemilik utama) server kepada user (pengguna biasa). Hak akses tersebut berupa hak membuat (CREATE), mengambil (SELECT), menghapsu (DELETE), mengubah (UPDATE) dan hak khusus berkenaan dengan sistem databasenya.

SINTAKS : GRANT privileges ON tbname TO user

CONTOH : grant select, update, insert, delete on perpustakaan.buku to 'ali'@'localhost';

REVOKE : perintah ini memiliki kegunaan terbalik dengan GRAND, yaitu untuk menghilangkan atau mencabut hak akses yang telah diberikan kepada user oleh administrator.

SINTAKS : REVOKE privileges ON tbname FROM user

CONTOH : revoke select, update, insert, delete on perpustakaan.buku from 'ali'@'localhost';

* JENIS JENIS JOIN SQL:

1. INNER JOIN : hanya akan menampilkan baris untuk data yang memiliki nilai yang sama pada field kunci dengan tabel yang berelasi

2. LEFT JOIN : hanya menampilkan data dengan mengacu pada tabel yang ada disebelah kiri.

3. RIGHT JOIN : hanya menampilkan data dengan mengacu pada tabel yang ada disebelah kanan.

4. FULL JOIN : merupakan gabungan dari LEFT JOIN dan RIGHT JOIN.

 

 

tipe data pada database

19 September 2012 09:12:45 Dibaca : 694

A.       Tipe Data pada MySQL

 

·    Numerik, yaitu MySQL dapat menerima masukan berupa angka-angka yang dibagi atas integer (angka tanpa pecahan) dan floating-point (angka dengan pecahan). MySQL juga mengerti notasi scientific yaitu integer atau floating-point yang diikuti tanda ‘e’ atau ‘E’, tanda ‘+’ atau ‘-‘. Misalnya angka 1.34E+12 atau 3.23e-5.

·      String/Karakter, merupakan deretan huruf yang membentuk kata yang diapit oleh tanda petik (‘’) atau tanda petik ganda (“”).

·     Waktu, merupakan data yang berisi tanggal (date) dan jam (time) misalnya “2001-10-15” untuk tanggal dengan format YYYY-MM-DD dan “12:45:15” untuk jam dengan format hh:mm:ss.

 

B. Tipe Data pada FIREBIRD

 

1). Backup Database

Perintah yang digunakan yaitu : gbak.exe -v -user <nama_user> -password <pass_user> <nama_db.fdb> <nama_db_backup.fbk>. Contoh :

1

gbak -v -user SYSDBA -password masterkey d:\database\dbsis.fdb d:\database\backup\dbsis.fbkhttp://coding4ever.files.wordpress.com/2010/12/09122010-2.jpg?w=300&h=124

 

 

Kalo databasenya ada di komputer lain gimana? Apakah tetap bisa menggunakan tool ini ? Ya jelas bisa kita tinggal tambahkan aja alamat komputernya didepan penulisan nama databasenya. Contoh :

1

gbak -v -user SYSDBA -password masterkey 192.168.0.1:d:\database\dbsis.fdb d:\database_lokal\backup\dbsis.fbk

Dengan asumsi 192.168.0.1 adalah nama komputer target, yang perlu diperhatikan disini adalah penulisan nama folder jika menggunakan spasi harus diapit tanda petik dua (“). Contoh :

1

gbak -v -user SYSDBA -password masterkey "d:\database sekolah\dbsis.fdb"d:\database\backup\dbsis.fbk

atau

1

gbak -v -user SYSDBA -password masterkey 192.168.0.1:"d:\database sekolah\dbsis.fdb"d:\database_lokal\backup\dbsis.fbk

 

2. Restore Database

Untuk proses restore perintah yang digunakan yaitu : gbak.exe -v -c -r -rep -user <nama_user> -password <pass_user> <nama_db_backup.fbk> <nama_db_restore.fdb>. Contoh :

1

gbak.exe -v -c -r -rep -user SYSDBA -password masterkey d:\database\backup\dbsis.fbk d:\database\dbsis.fdb

Perintah diatas akan mereplace database lama (untuk contoh disini DBSIS.FDB) dengan syarat tidak ada koneksi aktif ke database tersebut.

 

Nah untuk mengekstrak struktur database firebird kita akan menggunakan tool lainnya yaitu isql. Adapun perintah yang digunakan yaitu :
isql -ex <nama_db_.fdb> -d <nama_db_.fdb> -o <nama_file_backup.sql> -user <nama_user> -pass <pass_user>, contoh :

1

isql -ex d:\database\dbsis.fdb -d d:\database\dbsis.fdb -o d:\database\backup\dbsis.sql -user SYSDBA -pass masterkey

jika berhasil kita akan mendapatkan file dbsis.sql di folder d:\database\backup, yang bersisi struktur lengkap database dbsis.fdb

Tapi isql masih mempunyai kekurangan yaitu hanya mengekstrak struktur databasenya saja, untuk datanya akan kita ekstrak secara manual dari aplikasi yang insya Allah kita bahas pada artikel berikutnya.

 

3. Tipe data pada Oracle

·     VARCHAR2(size), untuk menampung string/karakter dengan panjang bervariasi (tidak harus sepanjang saat didefinisikan). Ukuran maksimum 4000.

·        NVARCHAR2(size), untuk menampung string/karakter dengan panjang bervariasi (tidak harus sepanjang saat didefinisikan). Ukuran maksimum 4000, tergantung dari karakter nasional yang dipakai dalam database.

·    NUMBER(precision, scale), untuk kolom yang menampung data angka yang memiliki total panjang sebanyak precision dan angka di belakang koma sebanyak scale. precision mulai dari 1-38 sedangkan scale mulai dari -84 sampai 127.

·         LONG, yaitu data karakter dengan ukuran maksimum 2GB.

·         DATE, yaitu tanggal mulai dari 1 Januari 4712 SM sampai 31 Desember 9999.

·         BINARY_FLOAT, yaitu 32 bit floating-point.

·         BINARY_DOUBLE yaitu 64 bit floating-point.

·         TIMESTAMP(precision), yaitu tanggal + waktu, dimana precision adalah jumlah digit detik (mulai 0-9, default 6).

·         TIMESTAMP(precision) WITH TIME ZONE, yaitu jumlah digit detik (mulai 0-9, default 6).

·         TIMESTAMP(precision) WITH LOCAL TIME ZONE. TIMESTAMP yang merujuk kepada local time (waktu di komputer kita).

·         INTERVAL YEAR(precision) TO MONTH yaitu waktu dalam bentuk tahun dan bulan, dimana precision adalah digit dari tahun yang digunakan (mulai 0-9, default 2).

·         INTERVAL DAY(day_precision) TO SECOND(second_precision) yaitu waktu dalam bentuk hari, jam, menit, dan detik. Dimana day_precision jumlah digit dari DAY (mulai 0-9, default 2) dan second_precision merupakan jumlah digit detik (mulai 0-9, default 6).

·         RAW(size) yaitu, data biner dalam format RAW, size dalam ukuran byte, maksimum size adalah 2000 byte.

·         LONG RAW yaitu data biner dalam format RAW, sama seperti LONG

·         ROWID yaitu string basis 64 yang merepresentasi alamat unik tiap baris dalam tabel.

·         UROWID(size) yaitu string basis 64 yang merepresentasi alamat unik tiap baris dalam tabel yang terindex, ukuran maksimumnya 4000 byte.

·         CHAR(size) untuk menyimpan string/karakter dengan panjang tetap, maksimum panjangnya 2000, defaultnya 1 byte dan akan dimampatkan di sebelah kanan sampai panjang terpenuhi dengan memakai spasi.

·         NCHAR(size). Yaitu versi CHAR dengan multibyte karakter.

·         CLOB dapat menampung sampai lebar 4GB.

·         NCLOB sama seperti CLOB, tetapi dia mengandung karakter Unicode.

·         BLOB yaitu Binary Large Object sampai 4GB, menyimpan data dalam bentuk binernya.

·         BFILE merupakan reference kepada file biner dari sistem operasi

>  Pengertian DataBase Management System

Database (basis data) adalah kumpulan informasi yang disimpan didalam komputer secara sistematis sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari database tersebut.  Perangkat lunak untuk memanggil dan mengelola dan memanggil query database disebut Sistem Manajemen DataBase (database management system/DBMS). Database Manajement System (DBMS) merupakan software yang digunakan untuk membangun sebuah sistem basis data yang berbasis komputerisasi. Software yang dimaksud yaitu berupa suatu perangkat lunak yang diperlukan untuk  memanipulasi data sehingga mendapatkan informasi yang berguna. 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.

> Aplikasi yang dipakai untuk mengelola DataBase

Berikut ini beberapa aplikasi database, yaitu:

1. Komersial (Berbayar)

- DB2

 

- Sybase

 

- Teradata

- Microsoft SQL Server 2000 adalah perangkat lunak relational database management system (RDBMS) yang didesain untuk melakukan proses manipulasi database berukuran besar dengan berbagai fasilitas. Microsoft SQL Server 2000 merupakan produk andalan Microsoft untuk database server. Kemampuannya dalam manajemen data dan kemudahan dalam pengoperasiannya membuat RDBMS ini menjadi pilihan para database administrator.

- Oracle adalah relational database management system (RDBMS) untuk mengelola informasi secara terbuka, komprehensif dan terintegrasi. Oracle Server menyediakan solusi yang efisien dan efektif karena kemampuannya dalam hal sebagai berikut:

 

  • Dapat bekerja di lingkungan client/server (pemrosesan tersebar)
  • Menangani manajemen space dan basis data yang besar
  • Mendukung akses data secara simultan
  • Performansi pemrosesan transaksi yang tinggi
  • Menjamin ketersediaan yang terkontrol
  • Lingkungan yang terreplikasi

2. Free (Gratis)

 

- PostgreSQL

- Firebird adalah salah satu aplikasi RDBMS (Relational Database Management System) yang bersifat open source.

- MySQL merupakan sebuah perangkat lunak system manajemen basis data SQL (bahasa inggris : data management system) atau DNMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis di bawah lisensi GNU General Public Licenci (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL .

Demikian itulah Pengertian DataBase Management System dan Aplikasi yang dipakai untuk mengelola DataBase :)

Pengertian Database

12 September 2012 09:37:52 Dibaca : 137

Database adalah kumpulan data sistematis yang disediakan/disiapkan oleh komputer yang dapat digunakan oleh suatu program komputer. untuk memperoleh data yang , untuk mengelola atau memanggil data (quary) disebut dengan sistem manajemen basis data(database management system).