Normalisasi pada Database
Istilah Normalisasi berasal dari E. F.Codd, salah seorang perintis teknologi basis data. selain dipakai sebagai metodologi tersendiri untuk menciptakan struktur tabel 9relasi) dalam basis data (dengan tujuan utnuk mengurangi kemubaziran data) , normalisasi terkadang hanya diipakai sebagai perangkat verifikasi terhadap tabel-tabel yang dihasilkan oleh metodologi lain ( misalnya E-R). Normalisasi memberikan panduan yang sangat membantu bagi pengembang untuk mencegah penciptaan struktur tabel yang kurang fleksibel atau mengurangi keflekxibelan.
Kroenke mendefinisikan normalisasi sbagai proses untuk mengubah suatu relasi yang memiliki masalah tertentu ke dalam dua buah relasi atau lebih yang tida memiliki masalah tersebut. Masalah yang dimaksud olej kroenke ini sering disebut dengan istilah anomali.
( Pada beberapa literatur, istilah relasi yang digunakan pada bab ini terkadang digantikan dengan tabel. Istilah relasi digunakan pada bab ini dikarenakan definisi tentang normalisasi memang menggunakan istilah relasi).
Tuujuan normalisasi :
- Untuk menghilangkan kerangkapan data
- Untuk mengurangi kompleksitas
- Untuk mempermudah pemodifikasian data
Normalisasi bisa juga disebut Well Structure Relation atau proses pengelompokan atribut-atribu dari suatu relasi.
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 belum dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal.
Pada proses normalisasi terhadap tabel pada database dapat dilakukan dengan tiga tahap normalisasi antara lain :
1. Bentuk Normal ke Satu(1NF).
Syarat :
- Tidak ada set atribut yang berulang atau bernilai ganda.
- Telah ditentukannya primary key untuk tabel atau relasi.
- Tiap atribut hanya memiliki satu pengertian.
- Tiap atribut yang dapat memiiki banyak nilai sebenarnya menggambarkan entitas atau relasi yang terpisah.
2. Bentuk Normal ke Dua(2NF).
Syarat :
- Bentuk data telah memenuhi kriteria bentuk normal ke satu.
- Atribut bukan kunci(non-key attribute) haruslah memiliki ketergantungan fungsional sepenuhnya pada primary key
3. Bentuk Normal ke Tiga(3NF).
Syarat :
- Bentuk data telah memenuhi kriteria bentuk normal ke dua.
- Atribut bukan kunci(non-key attribute) tidak boleh memiliki ketergantungan fungsional terhadap atribut bukan kunci lainnya. Seluruh atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan fungsional terhadap primary key di relasi itu saja.
Referensi :
http://fairuzelsaid.wordpress.com/2010/01/24/sistem-basis-data-normalisasi/
http://haritsthinkso.blogspot.com/2009/12/pengertian-normalisasi-pada-database.html
Type-type database
Tipe data pada Microsoft Access 2010 antara lain :
- Text, yaitu data yang bisa diisi dengan nilai kombinasi antara text dan number, dengan maximum karakter sebanyak 255 karakter.
- Memo, sama saja dengan jenis Text, hanya saja memiliki jumlah karakter maksimum yang lebih banyak, yaitu 63,999 karakter.
- Number, yaitu data dengan jenis number (angka) yang digunakan untuk kalkulasi matematika dan keperluan lainnya. Umumnya number ini terdiri dari 1, 2, 4 dan 8 bytes data. Khusus untuk number jenis Replication ID mempunyai 16 bytes data.
- Date/Time, yaitu data dengan jenis tanggal, waktu atau penggabungan dari tanggal dan waktu.
- Currency, yaitu data dengan jenis number, hanya saja pada awal angka selalu disertakan symbol currency default sesuai dengan regional setting yang digunakan, misalnya Rp, $, dll. Currency dapat menggunakan angka dengan 15 digit dibelakang desimal dan 4 digit sesudah desimal.
- AutoNumber, yaitu data yang tidak dapat kita isi secara manual melainkan ia terisi secara otomatis oleh Access, baik secara menjumlah ataupun random (acak).
- Yes/No, yaitu data dengan jenis hanya 2 pillihan yaitu Yes (-1 atau True) atau No (0 atau False). Format yang tersedia adalah : Yes/No, True/False, dan On/Off.
- OLE Object, yaitu data yang diambil dari system OLE seperti Microsoft Excel spreadsheet, Microsoft Word document, graphics, sounds, atau data-data biner lainnya baik yang dilink ataupun dimasukkan secara permanen (embedded) kedalam table Microsoft Access.
- Hyperlink, yaitu type data yang digunakan untuk menyimpan alamat internet atau file yang ditunjukkan melalui alamat URL.
- Attachment, yaitu data type yang digunakan untuk menyimpan attachment file yang berformat apa saja (bebas, bisa file gambar, file suara, dll).
Selain 10 data type diatas, ada dua fasilitas tambahan khusus untuk field di dalam Microsoft Access, yakni:
- Calculated, yaitu fasilitas yang berguna untuk menghitung operasi matematika antara field yang satu dengan field yang lainnya. Misalnya, kita bisa menjumlahkan field A dengan field B, dll.
- Lookup Wizards, yaitu fasilitas combo box (list) yang dibuat secara wizard sehingga kita dapat memilih (lookup) suatu data dari daftar pada table lainnya.
Tipe data pada MySQL antara lain :
- Varchar, yaitu tipe data karakter yang panjangnya tidak tetap.
- Tinyint, yaitu tipe data bilangan bulat yang rentangnya -128 sampai 127 atau menggunakan atribut unsigned dari 0 hingga 255.
- Text, yaitu tipe data yang dapat menampung semua tipe data.
- Date, yaitu type data yang digunakan untuk mendiskripsikan tanggal.
- Smallint, yaitu tipe data bilangan bulat yang rentangnya –32768 sampai 32767. The unsigned range is 0 to 65535
- Mediumint, yaitu tipe data bilangan bulat yang rentangnya –8388608 to 8388607.unsigned range-nya 0 sampai 16777215
- Int, yaitu type data yang bernilai integer/bilangan bulat.
- Bigint, yaitu tipe data bil bulat 8 byte data dengan batasan nilai atau jangkauan antara -2^36 (-9,223,372,036,854,775,808) s/d 2^36-1 (-9,223,372,036,854,775,807).
- Float, yaitu type data yang bernilai desimal.
- Double, yaitu type data yang bernilai desimal yang memiliki rentang lebih panjang daripada float.
- Decimal, yaitu tipe data yang dapat menampung data pecahan.
- Datetime, yaitu merupakan tipe data tanggal dan jam (waktu) mulai 1 januari 1753 s/d 31 Desember 9999, dengan akurasi sampai 3,33 milidetik.
- Timestamp, yaitu perluasan dari tipe data DATE. TIMESTAMP menyimpan tahun, bulan dan hari dari tipe data DATE, ditambah dengan jam, menit dan detik sebagai nilai fractional second
- Time, yaitu tipe data waktu. Jangkauannya adalah '-838:59:59' hingga '838:59:59'. MySQL menampilkan TIME dalam format 'HH:MM:SS'.
- Year, yaitu angka tahun, dalam format 2- atau 4-digit (default adalah 4-digit). Nilai yang mungkin adalah 1901 hingga 2155, 0000 pada format 4-digit, dan 1970-2069 pada format 2-digit (70-69).
- Char, yaitu tipe data untuk menampung data yang bertipe karakter
- Tinyblob, yaitu type file pada mysql yang dapat digunakan untuk menyimpan file dalam database, dengan rentangmaksimum 255 (2^8 - 1) karakter.
- Tinytext, yaitu type data text yang menyimpan data dengan panjang maksimum 65535 (2^16 - 1) karakter.
- Blob, yaitu type file pada mysql yang dapat digunakan untuk menyimpan file dalam database,
20. - Mediumblob, yaitu type file pada mysql yang dapat digunakan untuk menyimpan file dalam database, dengan rentang maksimum 16777215 (2^24 - 1) karakter.
Beberapa tipe data yang dapat dipakai:
- Varchar2(ukuran). Tipe data karakter yang dapat menyesuaikan panjang dengan variabel yang ditentukan. Suatu ukuran maksimum harus ditentukan (secara default ukuran minimum adalah 1, maksimum adalah 4000)
- Char(ukuran). Tipe data karakter yang ukurannya tidak dapat berubah (fixed length). Secara default ukuran minimum adalah 1, maksimum adalah 2000.
- Number(p, s). Angka yang memiliki ukuran presisi p dan skala s.
- Date. Tipe data yang berupa tanggal dan waktu, dimulai dari 1 Januari 4712 SM hingga 31 Desember 9999
- Long. Tipe data karakter yang ukurannya dapat berubah sesuai variabel, hingga 2GB
- Clob. Tipe data karakter yang dapat berukuran hingga 4GB
- Raw(ukuran). Data biner raw yang memiliki ukuran tertentu. (Ukuran maksimum adalah 2000)
- Long raw. Data biner raw yang ukurannya berubah sesuai variabel (hingga 2GB)
- Blob. Data biner (hingga 4GB)
- Bfile. Data biner yang disimpan di file eksternal (hingga 4GB)
- Rowid. Sistem angka basis 64 yang berupa alamat unik dari tiap-tiap row dalam suatu tabel.
- Time. Ada beberapa macam tipe data untuk waktu:
- Timestamp: dapat menyimpan hingga ukuran sepersekian detik.
- Interval year to month: dapat menyimpan interval tahun dan bulan.
- Interval day to second: dapat menyimpan interval hari, jam, menit hingga detik.
Perintah-perintah SQL
Perintah-perintah SQL
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.
Banyak perintah dan fungsi SQL yang dapat digunakan untuk mendefenisikan maupun memanipulasi database. Suatu rangkaian aktivitas yang berhubungan dengan pemulihan dan pengoptimalan perintah query di dalam database pada SQL dapat dituliskan fasilitas yang memiliki antarmuka grafis yaitu Query Analyzer. Beberapa aktivitas yang dimaksud, antara lain :
- Melakukan query pada databese SQL dengan menggunakan perintah-perintah SQL untuk melihat teks atau grid.
- Melihat representasi grafik dari langkah-langkah untuk mengakses query
- Melakukan analisa kinerja indeks
- Menjalankan skrip Transact SQL dari prosedur tersimpan.
Dalam penggunaannya, perintah sql dikategorikan menjadi 3 sub perintah, yaitu :
1. Data Definition Language (DDL)
Merupakan sub bahasa SQL yang digunakan untuk membangun kerangka database. Ada tiga yang termasuk dalam DDL, yaitu :
- Crate : Perintah ini digunakan untuk membuat, termasuk diantaranya membuat database baru, tabel baru, view baru, dan kolom.
- Alter : Perintah ini digunkan untuk mengubah struktur tabel yang telah dibuat. Pekerjaannya mencakup mengganti nama tabel, menambah kolom, mengubah kolom, maupun memberikan atribut pada kolom.
- Drop : Perintah ini digunakan untuk menghapus databse dalam tabel
2. Data Manipulation Language (DML)
Merupakan sub bahasa SQL yang digunakan untuk memanipulasi data dalam database yang telah terbuat.
Perintah yang digunakan antara lain :
- Insert : Perintah ini digunakan untuk menyisipkan atau memasukkan data baru kedalam tabel. Penggunaanya setelah database dan tabel selesai dibuat.
- Select : Perintah ini digunakan untuk mengambil data atau menampilkan data dari satu tabel atau beberapa tabel dalam relasi. Data yang diambil dapat kita tampilkan pada layar prompt MySQL secara langsung maupun ditampilkan pada tampilan aplikasi.
- Update : Perintah ini digunakan untuk memperbarui data lama menjadi data terkini. Jika anda memiliki data yang salah atau kurang up to date dengan kondisi sekarang, maka dapat diubah isi datanya menggunakan perintah UPDATE.
- Delete : Perintah ini digunakan untuk menghapus data dari tabel. Biasanya data yang dihapus merupakan data yang sudah tidak diperlukan lagi. Pada saat menghapus data, perintah yang telah dijalankan tidak dapat digagalkan, sehingga data yang telah hilang tidak dapat dikembalikan lagi.
3. Data Control Language (DCL)
Merupakan sub bahasa SQL yang digunakan untuk melakukan pengontrolan data dan server databasenya.
Perintah DCL diantaranya :
- Grand : Perintah ini digunakan untuk memberikan hak/izin akses oleh administrator (pemilik utama) server kepada user (pengguna biasa). Hak akses tersebut berupa hak membuat (CRATE), mengambil (SELECT), menghapus (DELETE), mengubah (UPDATE), dan hak khusus berkenan dengan sistem databasenya.
- Revoke : Perintah ini memiliki kegunaan terbalik dengan GRAND, yaitu untuk menghilangkan atau mencabut hak akses yang telah diberikan kepada user oleh administrator.
Pengertian Database, Aplikasi Berbasis File, dan System Management Database
A. Pengertian DatabaseBasis data atau database, berasal dari kata 'basis' dan 'data'. Adapun pengertian dari kedua kata tersebut adalah sebagai berikut :
- Basis : Dapat diartikan sebagai markas atau gudang, tempat bersarang atau berkumpul.
- Data : Dapat diartikan sebagai representasi fakta dunia nyata yang mewakili suatu objek seperti manusia, barang, hewan, peristiwa, konsep, keadaan, dan sebagainya yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi, atau kombinasi.
Dari kedua pengertian tersebut, maka dapatditarik kesimpulan bahwa pengertian dari database adalah kumpulan informasi yang disimpan didalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut.
Pengertian database lainnya menurut para ahli yaitu :
- Gordon C. Everest
Database adalah koleksi atau kumpulan data yang mekanis, terbagi/shared, terdefinisi secara formal dan dikontrol terpusat pada organisasi. - C.J. Date
Database adalah koleksi "data operasional" yang tersimpan dan dipakai oleh sistem aplikasi dari suatu organisasi.
- Data input adalah data yang masuk dari luar sistem
- Data output adalah data yang dihasilkan sistem
- Data operasional adalah data yang tersimpan pada sistem
- Toni Fabbri
Database adalah sebuah sistem file-file yang terintegrasi yang mempunyai minimal primary key untuk pengulangan data. - S. Attre
Database adalah koleksi data-data yang saling berhubungan mengenai suatu organisasi/enterprise dengan macam-macam pemakaiannya.
B. Aplikasi Berbasis File
Aplikasi berbasis data merupakan sumber daya yang berharga, karena dapat digunakan untuk menghasilkan informasi. Pada kenyataannya basis data tidak diakses secara langsung, akan tetapi dilakukan dengan menggunakan aplikasi. Dengan kata lain aplikasi basis data merupakan pintu masuk ke dalam sumber daya basis data.
- Kelebihan Aplikasi Berbasis Data
- Keuntungan Sistem Basis Data
- Terkontrolnya kerangkapan data
- Terpeliharanya keselarasan (ke-konsistenan) data
- Data dapat dipakai secara bersama (shared)
- Dapat diterapkan standarisasi
- Keamanan data terjamin
- Terpeliharanya integritas data
- Terpeliharanya keseimbangan (keselarasan) antara kebutuhan data yang berbeda dalam setiap aplikasi
- Data independence (kemandirian data)
- Kelemahan Sistem Berbasis File
- Memerlukan tenaga spesialis
- Kompleks
- Memerlukan tempat yang besar
- Mahal
C. DBMS (DataBase Management System) adalah sistem yang secara khusus dibuat untuk memudahkan pemakai dalam mengelola basis data. Sistem ini dibuat untuk mengatasi kelemahan sistem pemrosesan yang berbasis berkas.Pada pendekatan yang berbasis berkas, umumnya perancangan sistem didasarkan pada kebutuhan individual pemakai, bukan berdasarkan kebutuhan sejumlah pemakai. Setiap kali terdapat kebutuhan baru dari seorang pemakai, kebutuhan segera diterjemahkan kedalam program komputer. Akibatnya, kemungkinan besar setiap program aplikasi menuliskan data tersendiri. Sementara itu ada kemungkinan data yang sama juga terdapat pada berkas-berkas lain yang digunakan oleh program aplikasi lain.
1. Microsoft Access
Microsoft Access adalah sebuah program basis data komputer relasional yang ditujukan untuk kalangan rumahan atau perusahaan kecil hingga menegah.
Aplikasi ini merupakan anggota dari beberapa aplikasi Microsoft Office, selain tentunya Microsoft Word, Microsoft Excel, Microsoft Power Point.
Aplikasi ini menggunakan mesin basis data Microsoft Jet Database Engine, dan juga merupakan tampilan grafis yang intuitif sehingga memudahkan pengguna.
2. MySQL
MySQL adalah DBMS yang Multi-thread dan Multi-User, dengan 6 juta installasi di seluruh dunia, MySQL dikembangkan di MySQLAB, dan ditawarkan secara gratis dalam GNU General Public Lisence, namun mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaanya tidak cocok dengan penggunaan GPL.
Kedua Orang Swedia dan satu orang Finlandia yang mendirikan MySQLAB adalah : David Axmark, Allan Larsson, dan Michael "Monty" Widenius.
3. Oracle
Basis data Oracle adalah basis data relasional yang terdiri dari kumpulan data dalam suatu sistem manajemen basis data RDBMS.
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).
Basis data Oracle ini pertama kali dikembangkan oleh Larry Ellison, Bob Miner dan Ed Oates lewat perusahaan konsultasinya bernama Software Development Laboratories (SDL).
Pada tahun 1983, perusahaan ini berubah nama menjadi Oracle Corporation sampai sekarang.
4. Postgre SQL
Postgre SQL adalah sebuah sistem basis data yang disebarluaskan secara bebas menurut Perjanjian lisensi BSD.
Peranti lunak merupakan salah satu basis data yang paling banyak digunakan saat ini, selain MySQL dan Oracle.
PostgreSQL menyediakan fitur yang berguna untuk replikasi basis data.
Fitur-fitur yang disediakan PostgreSQL antara lain DB Mirror, PGPool, Slony, PGCluster, dan lain-lain.
Awal tahun 1982 Michael Stonebraker dari University of California Barkeley membuat sebuah ORDBMS dan merupakan software open source yang gratis.
PostreSQL adalah sistem database yang kuat untuk urusan relasi.
5. MS SQL Server
MS SQL Server yang merupakan implementasi dari SQL standar ANSI/ISO yang digunakan oleh Microsoft dan Sybase. Umumnya SQL Server digunakan di dunia bisnis yang memiliki basis data berskala kecil sampai dengan menengah, tetapi kemudian berkembang dengan digunakannya SQL Server pada basis data besar.
<!--[if gte mso 9]>
pengertian database
database adalah :