Rabu, 28 November 2012

Dependency Dan Normalisasi


Functional Dependency
Disebut juga dengan Ketergantungan Fungsional. Suatu atribut dikatakan Functionally Dependent jika menggunakan harga atribut untuk menentukan harga atribut yang lain.

Misalnya :
notasi : A => B
A dan B adalah atribut dari sebuah tabel. (Dibaca, A secara fungsional menentukan nilai pada B atau B bergantung pada A)

Macam - Macam Dependency
Functional Dependency
  - Full Functional Dependency
  - Partially Dependency
  - Transitive Dependency

1. Full Dependency (Ketergantungan Penuh)
    Jika terdapatatribut A dan B suatu relasi, berarti :
  - B memiliki ketergantungan fungsional penuh terhadap A
  - B bukan memiliki dependensi terhadap A
2. Partially Dependency (Ketergantungan Parsial)
    Dimana beberapa atribut dapat dihilangkan dari A dengan ketergantungan tetap dipertahankan.
3. Transitive Dependency (Ketergantungan Transitif)
  Dimana kondisi A,B,C adalah atribut sebuah relasi A=>B dan B=>C .Maka C dikatakan sebagai   transitive dependency terhadap A melalui B.
    Jika C=>A asal melalui B



NORMALISASI
Merupakan suatu proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.

Alasan mengapa dilakukan normalisasi :
  - Optimalisasi struktur-struktur tabel
  - Meningkatkan kecepatan
  - Menghilangkan pemasukan data yang sama
  - Lebih efisien dalam penggunaan media penyimpanan
  - Mengurangi redundansi
  - Menghindari anomali (insertion anomalies, deletion anomalies, update anomalies)
  - Integritas data yang ditingkatkan

Bentuk normalisasi yang digunakan :
  - First normal form (INF)
  - Second normal form (2NF)
  - Third normal form (3NF)
  - Boyce-codd normal form (BCNF)
  - Four normal form (4NF)    
  - Five normal form (5NF)

Langkah-Langkah Normalisasi :

a. 1NF - Bentuk Normal Pertama
Suatu keadaan yang membuat setiap perpotongan baris dan kolom dalam relasi hanya berisi satu nilai. Tidak diperbolehkan ada atribut yang bernilai banyak (Multivalued Attribut), dan attribut komposit atau kombinas keduanya.

b. 2NF - Bentuk Normal Kedua
Bentuk normal ini terpenuhi jika memenuhi bentuk 1NF, dan semua atribut selain primary key, secara utuh memiliki Functional Dependency pada Primary Key. Dan sebuah tabel tidak memenuhi 2NF, jika ada atribut yang ketergantungan hanya bersifat parsial dari primary key. Kemudian jika tidak memiliki ketergantungan pada primary key, maka atribut harus dipindah atau dihilangkan.

c. 3NF - Bentuk Normal Ketiga
Terpenuhi jika :
  - Telah memenuhi bentuk 2NF
  - Tidak ada atribut non prmary key yang memiliki ketergantungan pada atribut non primary key yang lainya   (ketergantungan transitif)

Kamis, 22 November 2012

BAHASA QUERY


Bahasa QUERY adalah bahasa yang meminta suatu perintah yang melibatkan, suatu data dari sebuah database.

JENIS SQL
1. Interactive, langsung dapat dioperasikan
2. Embedded, disisipkan ke dalam sebuah program

PENGELOMPOKAN STATEMEN SQL
1. Data Definition Language (DDL)
CREATE DATABASE
CREATE TABEL
CREATE INDEX
CREATE VIEW
ALTER TABLE
DROP DATABASE
DROP TABEL
DROP INDEX
DROP VIEW

2. Data Manipulation Language
INSERT, SELECT, UPDATE, DELETE

3. Data Access
GRANT , REVOKE

4. Data Integrity
RECOVER TABLE

5. Auxiliary
UNLOAD, LOAD, RENAME COLUMN

PEMBUATAN DATABASE/TABLE,INDEX DAN VIEW
1. Pembuatan Database
Nama Database adalah berasal dari nama organisasi atau perusahaan.
Sintaks :
CREATE DATABASE (nama_db)
Contoh :
Buat database dengan nama organisasi UNNES maka CREATE DATABASE UNNES

2. Pembuatan Tabel
Sintaks :
CREATE TABLE nama_table (nama_kolom1 jenis_kolom1,nama_kolom2,jenis_kolom2,….)
Contoh :
Struktur database sebagai berikut :
MHS (NIM char(8), NAMA char(25), ALAMAT char(30))
CREATE TABLE MHS (NIM char(8) not null, NAMA char(25) notnull,
ALAMAT char(30) notnull)

3. Pembuatan Index
Sintaks :
CREATE [UNIQUE] INDEX nama_index ON nama_table (nama_kolom) ;
Contoh :
Buat index data mahasiswa berdasarkan NIM dengan nama MHSIN Dimana NIM tidak boleh sama CREATE UNIQUE INDEX MHSIN ON MHS(NIM)

4. Pembuatan View
Sintaks :
CREATE VIEW nama_view[(nama_kolom1,….)] AS SELECT statement [WITH CHECK OPTION] ;
Contoh :
Buat view dengan nama MHSVIEW yang berisi CREATE VIEW MHSVIEW AS SELECT * FROM MHS

MENGHAPUS DATABASE, TABLE, INDEX DAN VIEW
Sintaks : DROP DATABASE nama_db ;
DROP TABLE nama_table ;
DROP INDEX nama_index ;
DROP VIEW nama_view ;
Contoh : Hapus table mhs DROP TABLE MHS

MERUBAH STRUKTUR TABEL
Sintaks : ALTER TABLE nama_table ADD (nama_kolom, jenis_kolom [BEFORE nama_kolom])MODIFY (nama_kolom, jenis kolom) DROP (nama_kolom jenis kolom)
Contoh :
1. Tambahkan kolom JKEL dengan panjang 1 char pada table MHS ALTER TABLE MHS ADD (JKEL char(1));
2. Ubah panjang kolom MTKULIAH menjadi 30 char ALTER TABLE MKUL MODIFY (MTKULIAH char(30));
3. Hapus kolom JKEL dari data table MHS ALTER TABEL MHS DROP (JKEL char(1)); DATA MANIPULATION LANGUAGE (DML)

1. INSERT
Sintaks : INSERT INTO
Nama_table [(nama_kolom1,…)]
Contoh :
Masukan data matakuliah berkas akses dengan kode KK121 dan besarnya 2
INSERT INTO MKUL VALUES(“KK121”,”Berkas Akses”, 2);

2. UPDATE
Sintaks : UPDATE nama_table
SET nama_kolom = ekspresi
WHERE kondisi ;
Contoh :
Ubah alamat menjadi “CIlacap” untuk mahasiswa
yang memiliki NIM “5302411119”
UPDATE MHS
SET ALAMAT=”Cilacap”
WHERE NIM=”5302411119”;

Sabtu, 27 Oktober 2012

MODEL DATA RELATIONAL Lanjut


https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0JpM68LvCnb3-u_G5qwx1d9E9IoeO3YmF6cnMPcPDiBv6C6voHQVlVe7335cg5ol-uj-zvIjAbFZ_DXbnQNb9LUOJZRqZ8O6pzbpMHMKzPtJo8z0tl8UmnfRUuibwOFsJqEeuh-tHkvFk/s400/entitas+lemah+dan+kuat.PNG



 Varian Entitas
·        Entitas Kuat : himpunan entitas yang dilibatkan dalam ERD dan tidak memiliki ketergantungan dengan himpunan entitas lainnya.
·        Entitas Lemah : suatu entity yang mana keberadaannya tergantung dari keberadaan entity lain dan tidak memiliki attribute yang dapat berfungsi sebagai key attribute.
Agregasi
Menggambarkan sebuah himpunan relasi yang secara langsung menghubungkan entitas dengan sebuah himpunan relasi dalam ERD. Secara kronlogi mensyaratkan telah adanya relasi lain.
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgv2Lhia9-xpOKdtWhkvHZgAcfbPPUJFB6qmS1e_9YInJMbXvGRBalOFRYQA5JasXSWS2_L4NjKgfvpK8sq0ngtQI65SfQljGGemanwfRdC3jwc5lUkGp_9ynDT8BPEbqjfp4FyPigYxjJZ/s400/agregasi.PNG


TRANSFORMASI MODEL DATA KE BASIS DATA FISIK

ERD direpresentasikan menjadi sebuah basis data secara fisik. Komponen ERD ditransformasikan menjadi tabel yang merupakan komponen utama pembentuk basis data. Attribute yang melekat pada masing-masing himpunan entitas dan relasi akan dinyatakan sebagai field dari tabel yang sesuai.

Implementasi Himpunan Entitas Lemah dan Sub Entitas 
Penggunaan himpunan Entitas Lemah dan Sub Entitas dalam diagram ER diimplementasikan dalam bentuk tabel sebagaimana himpunan entitas kuat.
Bedamya, jika himpunan entitas kuat sudah dapat langsung menjadi sebuah tabel utuh walaupun tanpa melihat relasinya dengan himpunan entitas lain, maka himpunan entitas lemah hanya dapat ditransfoemasikan menjadi sebuah tabel dengan menyertakan pula attribute key dari hasil implementasi himpunan entitas lemah.
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6gEu-bxdKLlXokmqBK4WjVbnDZUi5T_dNgGm_yCjXCPuNn9UWlu1B9rfTBkerBZktXtENKiqRauTxA2PeKJ6-nfBtIUlYGhySCGb5_lXoJCx0DTZfc0zs9h-va-p00zWFfvvwkml3077c/s400/gambar+relasi+N-N.PNG

Rabu, 03 Oktober 2012

Model Data Relational


Model Data Relational

Model Data Relational adalah kumpulan tabel berdimensi dua dengan masing-masing relasi tersusun atas tuple (baris) dan atribut (kolom) pada suatu basis data.


Relational Data Model Terms

·         Relasi adalah tabel yang terdiri dari beberapa kolom dan beberapa baris.
  • ·         Attribute adalah kolom pada suatu relasi.
  • ·         Tuple adalah baris pada sebuah relasi atau kumpulan elemen-elemen yang     saling berkaitan  menginformasikan tentang suatu entitas secara lengkap.
  • ·         Domain adalah seluruh kemungkinan nilai yang dapat diberikan ke suatu attribut.
  • ·         Degree adalah jumlah attribut dalam suatu relasi.
  • ·         Cardinality adalah jumlah tuple dalam suatu relasi.
            Setiap relasi memiliki schema yang mendeskripsikan nama relasi dan atribut beserta tipenya.
contoh:
Mahasiswa = (nim: string, nama_mhs: string).
Keterangan:
Mahasiswa adalah nama relasi.
nim dan nama_mhs adalah nama atribut.
String adalah tipe atribut.


Mendefinisikan Domain

·         Memberi nama domain yang sesuai dengan nilai yang akan dimiliki domain tersebut.
·         Menentukan tipe data dari nilai yang akan membentuk domain.
·         Menentukan format dari domain.


Relational Key

Kunci Atribut dari Relasi
  • ·         Candidate Key adalah atribut yang digunakan untuk membedakan antara satu baris dengan baris yang lain.
  • ·          Primary Key adalah Candidate Key yang digunakan untuk mengidentifikasikan tuple yang unik pada suatu relasi.
  • ·         Alternate Key adalah Candidate Key yang tidak menjadi Primary Key.
  • ·         Foreign Key adalah atribut dlam suatu relasi yang merujuk ke Primary Key relasi lain.

Batasan-Batasan Integritas

  • ·         Suatu batasan-batasan yang diberikan terhadap suatu relasi.
  • ·          Ditetapkan ketika schema didefinisikan.
  • ·          Dicek ketika relasi-relasi dimodifikasi atau dimanipulasi (penambahan, pengubahan, penghapusan dan pencarian/ menampilkan data).


Relational Integrity Rules

·         Null
Nilai suatu atribut yang tidak diketahui dan tidak cocok untuk baris (tuple) tersebut.
Nilai (konstanta) Null digunakan untuk menyatakn / mengisi atribut-atribut yang nilainya belum siap/tidak ada.
·         Entity Integrity
Tidak ada satu komponen Primary Key yang bernilai Null.
·         Referential Integrity
Garis yang menghubungkan antara satu tabel dengan tabel lain.

Rabu, 26 September 2012

Entity Relationship Diagram (ERD)


Entity Relationship Model (ERM)
Model yang digunakan untuk menggambarkan data dalam bentuk entity, attribute dan relationship antar entitas.

Entity Relationship Diagram (ERD)
Diagram yang menggambarkan hubungan antar entitas.
Diagram dasar terdiri dari tiga bentuk :
1.       Persegi untuk mempresentasikan entitas.
2.       Elips untuk mempresentasikan attribute.
3.       Garis untuk mempresentasikan hubungan.

Entitas
Entitas adalah objek yang ada dan dapat dibedakan dari objek lain dalam dunia nyata.
Sebuah entitas memiliki attribute yang membedakannya dengan objek lain dan sering mempunyai hubungan dengan objek lain.
Entity sets adalah kumpulan entitas yang punya tipe sama.

Attribute
Attribute adalah property deskriptif yang dimiliki oleh semua anggota dari semua set entitas.
Value set (domain) dari attribute
Kumpulan nilai yang dapat dimasukkan pada setiap attribute, kumpulan nilai yang dapat dimiliki oleh attribute dari suatu entitas.

Jenis Attribute
1.       Attribute sederhana (atomic attribute) : attribute yang terdiri atas satu komponen tunggal dengan keberadaan yang independen, tidak bias diuraikan lagi.
2.       Attribute Komposit (composite attribute) : attribute yang terdiri dari beberapa attribute yang lebih mendasar.
3.       Attribute berharga tunggal (single valued attribute) : attribute yang hanya mempunyaisatu nilai untuk suatu entitas tertentu.
4.       Attibute berharga banyak (multi valued attribute) : attribute yang dapat terdiri dari sekumpulan nilai untuk suatu entitas tertentu.
5.       Attribute Derivatif (derived attribute) : atribut yang dihasilkan dari attribute lain yang tidak berasal dari satu entitas.

Relationship
Relationship adalah hubungan yang terjadi antara satu atau lebih entity.

Cardinality Ratio
Menjelaskan jumlah keterhubungan satu entity dengan entity yang lain.
Menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas yang lain.

Maximum Cardinality
1.       One to One
2.       One to Many or Many to One
3.       Many to Many

Tahap Pembuatan ERD
1.       Mengidentifikasikan dan menetapkan seluruh himpunan entity yang akan terlibat.
2.       Menentukan atribut-atribut dari setiap entity.
3.       Menentukan atribut primary key dari setiap entity.
4.       Menentukan relationship antar entity.
5.       Menentukan atribut-atribut dari relationship.
6.       Menentukan Cardinality Ratio.
7.       Menentukan Participation Constraint.