NORMALISASI DATABASE
NORMALISASI DATABASE
Normalisasi merupakan 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), dibawah ini merupakan 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
Sebagai tambahan normal dalam suatu database sejatinya mencapai bentuk normal tertinggi dan bergerak dari bentuk normal 1 dan seterusnya untuk setiap kali membatasi hanya satu jenis redudansi. 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.
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 anda.
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.
Tahapan Normalisasi
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
Tugas4 sriulandari
MODEL DATA PADA DATABASE
Model data adalah sekumpulan konsep yang terintegrasi untuk Mendiskripsikan data, Hubungan data dan batas-batasanya dalam suatu organisasi. Model data merepresentasikan suatu organisasi. Model data harus menyediakan konsep dasar dan notaries yang memungkinkan perancang basis data dan pemakai untuk dapat mengkomunikasikan pemahamannya mengenai organisasi data.
Komponen Model Data
Komponen model data dapat dikategorikan menjadi 3 (tiga) bagian yang meliputi:
1.Bagian struktural, memuat sekumpulan aturan untuk melakukan konstruksi basis
data(database).
2.Bagian manipulasi, melakukan definisi tipe operasi yang diijinkan pada data, termasuk operasi yang digunakan untuk melakukan perubahan (update), atau membaca data (retrieve) dari basis data dan untuk melakukan perubahan struktur basis data.
3.Sekumpulan aturan mengenai integritas, yang akan menjaga keakuratan dari data
dalam basis data (database).
Kelompok Model Data
Terdapat 3 (tiga) kelompok model data, yaitu model data berbasis objek, model data berbasis record dan model data fisikal.
A. Model data berbasis objek.
Pada model ini menjelaskan data pada tingkat konsepsi dan view. Pada model ini terdapat beberapa macam model, yaitu:
-ER model (Entity relationship Model).
-OO model (Objek Oriented Model).
-Binary Model.
-Model data semantik.
-Model data infologikal, dan.
·Model data fungsional.
B. Model data berbasis record.
Pada model ini menjelaskan data pada tingkat konsepsi dan view, memakai
seluruh struktur lojik basis data dan menyediakan uraian tingkat tinggi dari
implementasi. Terdiri dari sejumlah fixed format record dengan berbagai tipe.
Pada model ini teradapat 3 (tiga) macam tipe,yaitu :
-Model data relational.
-Model data nerwork, dan
- Model data hirarki.
B.1. Model relational.
Pada model ini menggambarkan data dan relationship diantara data oleh suatu koleksi tabel, contoh nya:
tugas4 Tinggalkan Komentar...
Tugas 3
1) Pengertian Date Definition Language (DDL)
Statement DDL adalah perintah-perintah yang digunakan untuk menjelaskan objek dari database. Dengan kata lain DDL digunakan untuk mendefinisikan kerangka database.
Statement DDL :
Create database drop database
Create table drop table alter table
Create index drop index
Create view drop view
Contoh Penerapan :
Create database : untuk membuat database.
Syntax : CREATE DATABASE nama_db;
Contoh : CREATE DATABASE Perkuliahan;
Create table : untuk membuat table.
Syntax : CREATE TABLE nama_tabel
(nama_kolom1, type_kolom1,
nama_kolom2, type_kolom2,…);
Contoh : CREATE TABLE MHS
(NPM char(8) not null,Nama char(25) not null,Alamat char(30) not null);
Ket : Not null bersifat optional.
Create index : untuk membuat index.
Syntax : CREATE [UNIQUE] INDEX nama_index ON
nama_tabel (nama_kolom);
Contoh : CREATE INDEX KRSx ON KRS(Kd_mk);
Ket : Spesifikasi unique akan menolak key yang sama dalam file.
Create view : untuk membuat view.
Syntax : CREATE VIEW view_name [(column1, column2,… )]
AS SELECT statement FROM table_name
[WITH CHECK OPTION];
Contoh : CREATE VIEW MHSv AS SELECT * FROM MHS;
Ket : View_name : nama view yang akan dibuat.
Column : nama atribut untuk view.
Statement : atribut yang akan dipilih dari table basis data.
Table_name : nama table basis data.
Drop database : untuk menghapus database
Syntax : Drop database nama_db;
Contoh : Drop database Perkuliahan;
Drop table : untuk menghapus tabel
Syntax : Drop table nama_table;
Contoh : Drop table MHS;
Drop index : untuk menghapus index
Syntax : Drop index nama_index;
Contoh : Drop index KRSx;
Drop view : untuk menghapus view
Syntax : Drop view nama_view;
Contoh : Drop view MHSv;
Alter table : untuk mengubah table
Syntax : ALTER TABLE nama_table
ADD (nama_kolom_baru type_kolom
[BEFORE nama_kolom])
MODIFY (nama_kolom_lama type_kolom)
DROP (nama_kolom_lama type_kolom);
Contoh : ALTER TABLE MHS ADD (JKEL char(1));
2) Pengertian Date Manipulation Language (DML)
Statement DML adalah perintah-perintah yang digunakan untuk mengoperasikan atau memanipulasi isi database. SQL menyediakan 4 perintah DML yaitu Select, insert, update, dan delete.
INSERT
Syntax : INSERT INTO nama_table [(nama_kolom,..)] VALUES
(data1,…);
Contoh : INSERT INTO MKUL VALUES (”KK222”,”BERKAS
Akses”,2);
Atau
INSERT INTO MKUL (KDMK,MTKUL,SKS) VALUES
(”KK222”,”BERKAS Akses”,2);
UPDATE
Syntax : UPDATE nama_tabel SET nama_kolom=ekspresi
WHERE kondisi;
Contoh :
1. Ubah alamat menjadi depok untuk mahasiswa yang memiliki NPM ”12100748”
UPDATE MHS SET Alamat=”Depok” WHERE
NPM=”12100748”;
2. Ubah nilai mid dengan menambahkan nilai 10 untuk kode
mata kuliah ”KK021”
UPDATE NILAI SET MID+10 WHERE KDMK=”KK021”;
DELETE
Syntax : DELETE FROM nama_table [WHERE kondisi];
Contoh : DELETE FROM NILAI WHERE NPM=”12100748” AND
KDMK=”KK021’;
SELECT
Syntax : SELECT [(DISTINCT)] nama_kolom
FROM nama_table
[WHERE kondisi]
[GROUP BY nama_kolom]
[HAVING kondisi]
[ORDER BY nama_kolom [ASC/DESC]];
Contoh:
Satu table (simple query)
a Tampilkan semua data mahasiswa
SELECT NPM,Nama,Alamat,Kota FROM MHS;
atau SELECT * FROM MHS;
b Tampilkan mata kuliah yang SKSnya 2
SELECT MTKUL FROM MKUL WHERE SKS=2;
c Tampilkan semua data nilai untuk yang memperoleh nilai mid sekurang-kurangnya 60 atau nilai final diatas 75
SELECT * FROM NILAI WHERE MID>=60 OR FINAL>75
d Tampilkan npm, kode mata kuliah dan nilai mid untuk nilai mid antara 70 sampai dengan 100
SELECT NPM,KDMK,MID FROM NILAI WHERE BETWEEN 70 AND 100
e Tampilkan nama mahasiswa yang diawali denga huruf ”P”
SELECT Nama FROM MHS WHERE Nama LIKE ”P%”;
f Tampilkan nama mahasiswa untuk nama mahasiswa yang tidak mengandung unsur huruf ”a”
SELECT Nama FROM MHS WHERE Nama NOT LIKE
”%a%”
g. Tampilkan nama mahasiswa untuk nama mahasiswa yang karakter keduanya huruf ”u”
SELECT Nama FROM MHS WHERE Nama LIKE ”_U%”;
h. Tampilkan alamat mahasiswa, dimana alamat yang sama hanya ditampilkan satu kali saja
SELECT DISTINCT Alamat FROM MHS;
i. Tampilkan semua data mahasiswa dengan nama terurut dari ”z” ke ”a”
SELECT * FROM MHS ORDER BY Nama DESC;
j. Tampilkan alamat dan jumlah mahasiswa yang bertempat tinggal dialamat tersebut
SELECT Alamat, COUNT(*) FROM MHS GROUP BY
Alamat;
k. Tampilkan alamat dan jumlah mahasiswa yang bertempat tinggal pada alamat yang jumlahnya lebih dari 1
SELECT Alamat, COUNT (*) FROM MHS GROUP BY
ALAMAT HAVING COUNT (*) > 1;
l. Tampilkan nilai mid tertinggi dan terendah untuk mata kuliah ”KD132”
SELECT MAX(MID), MIN(MID) FROM NILAI WHERE
KDMK=”KD132”;
m. Tampilkan rata-rata dan jumlah nilai final mata kuliah ”KD132”
SELECT AVG(FINAL), SUM(FINAL) FROM NILAI WHERE
KDMK=”KD132”;
Contoh lebih dari 1 tabel
1. Tampilkan nama mahasiswa yang mempunyai nilai mid < 60
SELECT NAMA FROM MHS WHERE NPM IN
(SELECT NPM FROM NILAI WHERE MID < 60);
JOIN : penggabungan kolom
SELECT NAMA FROM MHS, NILAI
WHERE MHS.NPM = NILAI.NPM AND NILAI.MID 75
SELECT NPM FROM MHS WHERE NAMA = ”BUDI”
UNION SELECT NPM FROM NILAI WHER FINAL > 75;
tugas 2
1) Apa yang dimaksut dengan seriar number ?
Serial Number adalah Sekumpulan karakter unik yang bisa terdiri atas kombinasi antara alfabet dan numerik (alfanumerik) yang biasanya menjadi penanda barang produksi serta dibuat selalu berbeda-beda meskipun jenis barangnya sama. Serial number juga umumnya digunakan sebagai kunci software berbayar dan bisa didapatkan pengguna setelah membeli software. terkadang hal ini dimanfaatkan oleh pihak tertentu yang dengan sengaja membuat program palsu untuk menjebak atau menipu pengguna lain. contoh nya adalah Fake Antivirus dan beberapa Rogue Software lainnya.
2) Data type pada Microsoft Acces 2007
Sebelum kita memulai membuat database sebaiknya kita perlu mengetahui type Data yang terdapat didalam tabel itu sendiri sehingga kita tahu peruntukannya untuk apa saja.
Untuk mengetahui type data tersebut sekarang kita buka aja dulu Ms. Acces 2007 kemudian create Database dan kita simpan dengan nama database1. Maka Secara Otomatis akan muncul worksheet acces dengan tampilan awal yaitu table1, kita save table tersebut dan diberinama table1.
Arahkan cursor ke table1 yang berada dibilah kiri, kemudian klik kanan dan pilih View - Design View dan ketika terbuka maka akan muncul Field Nama, Data Type dan Description.
Penjelasannya adalah sebagai berikut :
Field Name adalah untuk nama kolom dalam tabel yang akan kita buat misalkan Nomor urut, nama, tanggal, alamat, jumlah dan lain sebagainya.
Data type adalah jenis data yang disesuaikan fungsinya yang diberinama di Field name tersebut misalkan jika di Field Name kita beri judul Nomor Urut maka Type Datanya bisa dengan memilih Nomor yang muncul Secara Otomatis (maka pilih AutoNumber) atau manual dalam mengisinya (pilih Number).
Description adalah sebagai penjelasan terhadap kolom yang dibuat tadi.
Mengenal dan memahami Data type itu penting agar tidak salah dalam pembuatan tabel nantinya. Adapun Type Data yang disediakan di ms. Acces 2007 adalah sebagai berikut :
1. Text adalah type data berupa teks atau huruf, angka, spasi dan tanda baca lainnya yang mampu menampung karakter dari huruf dan angka tersebut sebanyak 255 karakter.
2. Memo adalah type data yang hampir sama dengan Text tetapi karakter yang mampu ditampungnya sangat besar yaitu sampai dengan 65535 karakter. Memo, adalah tipe data yang berisikan huruf atau kombinasi huruf dan angka.
3. Number adalah type data yang diperuntukan untuk angka saja.
4. Date/Time adalah type data yang diperuntukan untuk menampilkan tanggal dan waktu.
5. Currency adalah type data yang hampir sama dengan number tapi diperuntukan untuk format mata uang.
6. Yes/No adalah type data untuk sebuah logika Ya atau Tidak.
7. OLE Object adalah type data yang dipergunakan untuk menampung gambar atau obyek dengan ukuran tidak lebih dari 128 MB.
8. Hyperlink adalah type data untuk menmapilkan alamat hyperlink dengan batas maksimum penampungannya adalah 2048 karakter.
9. AutoNumber seperti yang telah dijelaskan diatas, adalah nilai angka atau variasi angka huruf (yang akan berubah hanya angka apabila formatnya perpaduan huruf dan angka) yang akan muncul Secara Otomatis ketika kita menginput data baru dan angka tersebut tidak bisa kita edit.
10. Lookup Wizard adalah type data untuk menampilkan data dari tabel atau record lainnya atau dengan akta lain data yang diulang.
11. Attachment adalah type data yang digunakan untuk menampung/menyimpan/menampilkan lampiran persis seperti dalam sebuah email dan semua type data bisa ditampung disini.
3) Type data pada MySQL
Seperti yang kita ketahui saat membuat field pada tabel di sebuah database, kita akan di minta untuk menentukan tipe data apa yang akan di gunakan sesuai dengan data yang akan di simpan pada database, berikut keterangan daripada tipe-tipe data di MySQL.
No |
Type |
Keterangan |
Panjang Karakter |
1. |
TINYINT |
Berarti integer dengan range yang sangat kecil yaitu –2 sampai 2 , -1 atau 0 sampai 2. -1 jika UNSIGNED. Atribut yang dibolehkan adalah AUTO_INCREMENT, UNSIGNED, dan ZEROFILL. Harga default adalah NULL jika bisa atau 0 jika NOT NULL dengan peyimpanan 1 byte. |
0 hingga 255 |
2. |
SMALLINT |
Berarti integer dengan range yang kecil yaitu –2 sampai 2, -1 atau 0 sampai 2. |
0 hinga 65535 |
3. |
MEDIUMINT |
Berarti integer dengan range yang sangat kecil yaitu –2 sampai 2, -1 atau 0 sampai 2. -1 jika UNSIGNED. Atribut yang dibolehkan adalah AUTO_INCREMENT, UNSIGNED, dan ZEROFILL. Harga default adalah NULL jika bisa atau 0 jika NOT NULL dengan peyimpanan 3 byte. |
0 hingga 16777215 |
4. |
INT |
Berarti integer dengan range yang normal yaitu –2 sampai 2, -1 atau 0 sampai 2. |
0 hingga 4294967295. |
5. |
BIGINT |
Berarti integer dengan range yang sangat kecil yaitu –2 sampai 2, -1 atau 0 sampai 2. -1 jika UNSIGNED. Atribut yang dibolehkan adalah AUTO_INCREMENT, UNSIGNED, dan ZEROFILL. Harga default adalah NULL jika bisa atau 0 jika NOT NULL dengan peyimpanan 8 byte. |
0 hingga 18446744073709551615 |
6. |
FLOAT |
Berarti floating-point dengan range kecil yaitu antara +1.175494351E-38 |
25 dan 53 |
7. |
DOUBLE |
Berarti floating-point dengan range besar yaitu antara +2.22507385072014E-308 sampai +1.7976931348623157E308 serta dengan double presisi. Atribut yang dibolehkan adalah ZEROFILL. Harga default NULL jika bisa atau 0 jika NOT NULL. Tempat penyimpanan 8 byte. |
0, dan 2.2250738585072014E-308 hingga 1.7976931348623157E+308 untuk nilai positif |
8. |
DECIMAL |
Berarti floating-point yang tersimpan sebagai string (1 byte untuk setiap digit, tanda desimal, atau tanda ’-‘). Range harga sama seperti .DOUBLE. Atribut yang dibolehkan adalah ZEROFILL. Tempat penyimpanan sebesar 9Mbyte. Jika D diisi 0 berarti tidak punya nilai desimal. |
99,99 |
9. |
CHAR(M) |
Karakter dengan panjang 0 sampai Mbyte. Atribut yang dibolehkan adalah BINARY. Harga default adalah NULL jika bisa atau “ “ jika NOT NULL. Tempat pemyimpanan Mbyte |
1 hingga 255 |
10. |
VARCHAR |
Variabel karakter dengan panjang 0 sampai Mbyte. Atribut yang dibolehkan adalah BINARY. Harga default adalah NULL jika bisa atau “ “ jika NOT NULL. Tempat pemyimpanan M+1 byte. |
1 hingga 255 |
11. |
TINYTEXT |
Teks berukuran kecil dengan panjang 0 sampai 2. -1 byte. Harga default adalah NULL jika bisa atau “ “ jika NOT NULL. Tempat penyimpanan sebanyak panjang harga plus 1 byte |
255 |
12. |
TEXT |
Teks yang normal dengan panjang 0 sampai 2. -1 byte. Harga default adalah NULL jika bisa atau “ “ jika NOT NULL. Tempat penyimpanan sebanyak panjang harga plus 2 byte. |
65535 |
13. |
MEDIUMTEXT |
Teks berukuran sedang dengan panjang 0 sampai 2. -1 byte. Harga default adalah NULL jika bisa atau “ “ jika NOT NULL. Tempat penyimpanan sebanyak panjang harga plus 3 byte. |
16777215 |