25 November, 2012

Dependency dan Normalisasi

Functional Dependency (ketergantungan fungsional) : menggambarkan hubungan, batasan, keterkaitan antara atribut-atribut dalam relasi. Suatu atribut dikatakan fuctional dependency pada yang lain jika kita menggunakan harga tersebut untuk menentukan harga atribut lain. Functional dependency dapat digambarkan dengan tanda panah. Contoh :
  
Contoh diatas : dibaca A menentukan B, atau B tergantung pada A.

Selanjutnya adalah Macam-macam Dependency :
  • Function Dependency
    • Full Dependency (ketergantungan penuh) : ini artinya B memiliki ketergantungan fungsional secara penuh pada A. B bukan memiliki dependency terhadap subset A.
                    Contoh : terdapat sebuah tabel seperti dibawah ini

 

                               {NIM, Nama} --> idRuang bukan merupakan Full Dependency. agar menjadi Full
            Dependency atribut Nama dihilangkan. Menjadi : NIM --> idRuang.
    • Partially Dependency (ketergantungan parsial) : B memiliki ketergantungan terhadap subset A. 
                    Contoh : terdapat sebuah tabel seperti dibawah ini

 

                              {NIM, Nama} --> idRuang merupakan partially dependency. Dimana jika salah 
                               satu atribut dihilangkan (Nama dihilangkan), maka ketergantungan masih tetap
                               ada.

    • Transitive Dependency : A menentukan B, B menentukan C. Jadi bisa dikatakan A menentukan C melalui B.
                    Contoh : terdapat sebuah tabel seperti dibawah ini

 

                           NIP --> kdCabang, kdCabang --> almCabang. Jadi NIP menentukan almCabang 
                           melalui kdCabang.

Sekarang kita berlanjut ke Normalisasi.. Masih bingung juga saya... Tapi ini sedikit materi yang bisa saya rangkum.

Normalisasi : adalah proses untuk mendapatkan struktur tabel atau relasi yang efisien dan bebas dari anomali. Sehingga sebagian ambiguitas dalam struktur data bisa dihilangkan.

Berikut ini ada beberapa alasan mengapa kita melakukan normalisasi :
  1. Optimalisasi struktur-struktur tabel
  2. Meningkatkan kecepatan
  3. Menghilangkan pemasukan data yang sama
  4. Lebih efisien dalam penggunaan media penyimpanan
  5. Mengurangi redudansi (penggandaan data)
  6. Mengindari anomali
  7. Integritas data yang ditingkatkan
Terdapat beberapa bentuk normalisasi yang biasa digunakan yaitu :
  1. First normal form (1NF)
  2. Second normal form (2NF)
  3. Third normal form (3NF)
  4. Boyce-codd normal form (BCNF)
  5. Four normal form (4NF)
  6. Five normal form (5NF)
Dari 6 bentuk normalisasi diatas, saya hanya akan menjelaskan poin 1 - 3. yang poin 4 - 6 insya alloh akan  saya jelaskan pada postingan berikutnya.

1NF (Bentuk normal Pertama)
adalah suatu keadaan yang membuat setiap perpotongan baris dan kolom dalam relasi hanya berisi satu nilai, atau tidak ada dua value dalam satu atribut.

2NF (Bentuk normal kedua)
Bentuk normal 2NF terpenuhi jika memenuhi 1NF, dan semua tribut selain primary key, secara utuh memiliki Functional Dependency pada primary key. Jika ada tribut yang tidak mempunyai ketergantungan pada primary key, maka dihapus.

3NF (Bentuk normal ketiga)
Bentuk normal 3NF terpenuhi jika memenuhi 2NF, dan juga tidak ada atribut non primary key yang tidak memiliki ketergantungan terhadap atribut non primary key yang lainnya ( ketergantungan transitif).

09 November, 2012

Query Language (Bahasa Query)


Query Language (Bahasa Query) merupakan bahasa yang meminta suatu perintah yang melibatkan suatu data dari sebuah database.

A.  Relational Query Languages

Alur dalam Relational Query Languages:
ERD --> Model Data Relational --> Query language
Penjelasan singkat alur, yaitu: pendesainan yang dilakukan dalam Relational Queries Language diawali dengan pembuatan ERD yang kemudian diubah menjadi tabel informasi terbatas dalam Model Data Relational baru kemudian diterjemahkan kedalam Query Language.

B.  Jenis Bahasa Query Languages
      1.  Prosedural
     --> user mengintruksikan ke sistem agar membentuk serangkaian operasi dalam basis data untuk mengeluarkan hasil yang diinginkan (Aljabar Relational). Bahasa Prosedural identik dengan aljabar  relational, berupa operasi dasar seperti select* dan beberapa operasi tambahan.
      2.  Non- prosedural
--> Aljabar Relational (Bahasa Query Prosedural) yang terdiri dari sekumpulan operasi dimana masukannya adalah satu atau dua relasi dan keluarannya adalah sebuah relasi baru sebagai hasil dari operasi tersebut. Bahasa non-prosedural identik dengan kalkulus relational, yaitu mendeskripsikan informasi tanpa memberi instruksi.

C.  Jenis Operasi
Operasi memiliki dua jenis, yaitu:
1.  Unary
     --> Unary terdiri dari Selection dan Projection, karena keduanya dapat digunakan hanya untuk satu relasi saja.
           >>  Selection
Merupakan operasi yang digunakan untuk menyeleksi tupel-tupel yang memenuhi suatu predikat yang dapat dikombinasikan menjadi predikat majemuk dengan penghubung AND (^) dan OR (v).
Contoh1 :
Ada beberapa data pada suatu table bernama dosen yang kemudian akan dipilh data tersebut berdasarkan tempat_lahir dengan ketentuan :
Artinya : menampilkan dosen dengan tempat lahir Jakarta atau bogor.
Tempat_lahir=’jakarta’   v   tempat_lahir=’bogor’ dari table dosen
Syntaq pada SQL : select * from dosen where tanggal_lahir=’jakarta’
Contoh2 :
Ada beberapa data pada suatu table bernama dosen yang kemudian akan dipilh data tersebut berdasarkan tempat_lahir dengan ketentuan :
Tempat_lahir=’jakarta’  ^  jenis_kelamin=’pria’ dari table dosen
Artinya : menampilkan dosen dengan tempat lahir Jakarta dan berjenis kelamin pria.
Syntaq pada SQL : select * from dosen where tanggal_lahir=’jakarta’ and jenis_kelamin=’pria’
           >>  Projection
Merupakan operasi yang digunakan untuk memperoleh kolom-kolom tertentu yang mengirim relasi argumen dengan kolom-kolom tertentu. Dalam projection ini, hasilnya adalah atribut-atribut yang ditampilkan beserta nilainya.

2.  Binary
Yang termasuk dalam jenis operasi Binary ini salah satu nya adalah Union dan Cartesian-Product.

22 October, 2012

Tranformasi Model Data


# Varian entitas
- entitas kuat
- entitas lemah
# Agregasi

# Entitas Kuat
- Himpunan entitas yang dilibatkan dalam ERD merupakan entitas kuat
- Tidak memiliki ketergantungan dengan himpunan entitas lainnya 

# Entitas Lemah
- Suatu entity yang mana keberadaannya tergantung dari keberadaan entity lain
- Tidak memiliki atribut yang dapat berfungsi sebagai key attribute

# Agregasi
- Menggambarkan sebuah himpunan realasi yang secara langsung menghubungkan sebuah himpunan entitas dengan sebuah himpunan relasi dalam ERD
- Secara kronologi mensyaratkan telah adanya relasi lain
- Relasi terbentuk tidak hanya dari entitas tapi juga mengandung unsur relasi lain

TRANSFORMASI MODEL DATA KE BASIS DATA FISIK
- ERD direpresentasikan menjadi sebuah basis data secara fisik
- Komponen ERD (himpunan entitas dan relasi) ditransromasikan menjadi tabel yang merupakan komponen utama pembentuk basis data
- Atribut yang melekat pada masing masing himpunan entitas dan elasi akan dinyatakan sebagai field dari tabel yang sesuai

# Transformasi Dasar
- Setiap himpunan entitias akan diemplementasikan sebagai sebuah tabel (file data)
- Relasi dengan derajat Relasi 1-1 yang menghubungkan 2 buah himpunan entitas yang direpresentasikan dalam bentuk penambahan/penyertaan atribut-atribut relasi ke tabel yang mewakili salah satu dari kedua himpunan entitas
- Relasi dengan derajat Relasi 1-N yang menghubungkan 2 buah himpunan entitas, juga akan direpresentasikan dalam bentuk pemberian/pencamtuman atribut key dari himpunan entitas berderajat 1 ke tabel yang mewakili himpunan entitas berderajat N
- Atribut key dari himpunan entitas berderajat 1 menjadi atribut tambahan bagi himpunan entitas berderajat N
- Relasi dengan derajat relasi N-N yang menghubungkan 2 buah himpunan entitas, diwujudkan dalam bentuk tabel khusus yang memiliki field (tepatnya foreign key) yang berasal dari key-key dari himpuanan Entitas yang dihubungkannya

# Implementasi Himpunan Entitas Lemah dan Sub Entitas
- Penggunaan himpuanan Entitas Lemah dan Sub Entitas dalam diagram ER diimplementasikan dalam bentuk tabel sebagaimana himpuanan entitas kuat
- Bedanya, juka himpuanan Entitas kuat sudah dapat langsung menjadi tabel utuh/sempurna walaupun tanpa melihat relasinya dengan  himpunan entitas lain, maka himpunan entitas lemah hanya dapat ditransformasikan menjadi subuah tabel dengan menyertekan pula atribut key dari hasil implementasi himpunan entitas lemah

03 October, 2012

Model Data Relational

Model Data Relational merupakan kumpulan tabel berdimensi dua dengan masing-masing relasi yang tersusun atas tuple (baris) dan attribute (kolom) pada suatu basis data.
Istilah-istilah dalam Model Data Relational:

  • Relasi : sebuah tabel yang terdiri dari beberapa kolom dan beberapa baris.
  • Attribut : kolom pada sebuah relasi.
  • Tuple : baris pada sebuah relasi, atau kumpulan elemen-elemen yang saling berkaitan menginformasikan tentang suatu entitas secara lengkap.
  • Domain : seluruh kemungkinan nilai yang dapat diberikan kepada suatu attribu.
  • Degree : jumlah attribute dalam sebuah relasi.
  • Cardinality : jumlah tuple dalam seuah relasi.
Adapun istilah alternatif yang perlu kita ketahui:

Macam-macam Relational Key
1.  Candidate Key
     Merupakan atribut yang digunakan untuk membedakan antara satu baris dan dengan baris yang lain.
2.  Primary Key
     Primary key ini merupakan sebuah candidate key yang digunakan untuk mengidentifikasikan tuple yang unik pada suatu relasi.
3. Alternate Key
    Alternate key juga merupakan candidate key yang tidak dijadikan sebagai primary key.
4. Foreign Key
    Merupakan sebuah atribut dalam suatu relasi yang merujuk ke primary key relasi lain.

Batasan-Batasan Integritas (Integrity Constraints)
Integrity Constraints merupakan suatu batasan-batasan yang diberikan terhadap suatu relasi. Integrity Constraints ini ditetapkan ketika schema didefinisikan. Dan dicek ketika relasi-relasi dimodifikasi atau dimanipulasi (tambah, ubah, hapus dan cari/tampilkan data).
  • Relational Integrity Rules
>> Null
     Merupakan nilai suatu atribut yang tidak diketahui dan tidak cocok untuk baris (tuple) tersebut. Nilai (koststa) Null digunakan untuk menyatakan / mengisi atribut-atribut yang nilainya memang belum siap atau tidak ada.
>> Entity Integrity
     Tidak ada satu komponen primary key yang bernilai null.
>> Referential Integrity
Adalah garis yang menghubungkan antara satu tabel dengan tabel yang lain.

26 September, 2012

E-R Diagram (Entity-Relationship Diagram)

1.  Entity – Relationship Model
Merupakan model yang digunakan untuk menggambarkan data dalam bentuk entity, attribute, dan relationship antar entitas.
2.  Entity – Relationship Diagram
Merupakan diagram yang menggambarkan hubungan antar entitas.
E-R Diagram mengekspresikan struktur logis sebuah basis data dengan simple dan jelas.


Bentuk dasar :


  • Persegi menggambarkan Entitas
  • Elips menggambarkan Attribute
  • Garis menggambarkan Hubungan
- Entitas -
adalah objek yang ada dan dapat dibedakan dari objek lain dalam dunia nyata. Sebuah entitas memiliki atribute yang membedakan dirinya dengan objek lain, dan seringkali mempunyai hubungan dengan objek lain.
Example :
- Manusia : MAHASISWA, PASIEN, PEGAWAI
- Tempat : TOKO, RUMAH
- Kejadian : kecalakaan, kebakaran
simbol :
nama_entity

 - Entity-Set Entitas -
adalah kumpulan entitas yang mempunyai tipe yang sama, contoh kumpulan entitas mahasiswa, kumpulan entitas pegawai, dll.
- Attribute -
Sebuah entitas direpresentasikan (dibedakan dengan entitas lain) oleh beberapa attribut.
Atribut adalah properti deskriptif yang dimiliki oleh semua anggota dari semua set entitas
Example :
- MAHASISWA : nim, nama, tgl_lahir, jns_klm
- PEGAWAI : jabatan, golongan
Setiap atribut pada entitas memiliki kunci atribut (key attribute) yang bersifat unik. Primary key
Example :
Entitas : MAHASISWA
Attribute : nim, nm_mhs
Primary key : nim

- Value Set (domain) dari Atribut -
Kumpulan nilai yang dapat dimasukkan pada setiap attribute, kumpulan nilai yang dapt dimiliki oleh atribut dari suatu entitas.
definisi domain dari suatu atribut akan mencakup :
* tipe data, panjang, format, nilai yang memungkinkan, keunikan dan kemungkinan data null.
example :
* atribut nama pada entitas mahasiswa domainnya nama orang
* atribut nama pada entitas barang domainnya nama barang

- Jenis Attribute -
* atribut sederhana - atomic attribute
--> atribut yang terdiri atas satu komponen tunggal dengan keberadaan yang independen, tidak bisa diuraikan lagi.
example :
atribut nim dalam entitas mahasiswa.
atribut komposit - composite attribute
--> atribut yang terdiri dari beberapa atribut yang lebih mendasar, bisa diuraikan.
example :
entity mahasiswa memiliki atribut alamat_mhs yang terdiri dari alamat, nama_kota, dan kode_pos.
* Attribut Berharga Tunggal - Singel-valued Attribute
atribut yang hanya mempunyai satu nilai untuk suatu entitas tertentu.
example : atribut jns_klm pada entity mahasiswa
* Attribut Berharga Banyak - Multi-valued Attribute
atribut yang dapat teridri dari sekumpulan nilai untuk suatu entitas tertentu.
example : atribut hobi pada entity mahasiswa
* Attribut Derivatif - Derived Attribute
suatu atribut yang dihasilkan dari atribut lain yang tidak berasal dari satu entitas
example : atribut umur yang dapat dihasilkan dari atribut tgl_lahir.

- Relationship - 
merupakan hubungan yang terjadi antara satu atau lebih entitas. Relationship ini dapat memiliki atribut, dimana terjadi adanya transaksi yang menghasilkan suatu nilai tertentu. Relationship ini disimbolkan seperti:
nm_relasi

- Cardinality Ratio - 
menjelaskan jumlah keterhubungan satu entitas dengan entitas yang lain. Cardinality Ratio menunjukkan jumlah maximum entitas yang dapat berelasi dengan entitas pada himpunan entitas lain.

- Maximal Cardinality -
terdiri dari:
* Cardinality Ratio - One to One (1 : 1)
suatu entitas pada entitas A berhubungan dengan paling banyak satu entitas pada entitas B dan juga sebaliknya.
* Cardinality Ratio - One to Many (1 : N / N : 1)
suatu entitas A dihubungkan dengan sejumlah entitas di B.
* Cardinality Ratio - Many to Many
setiap entitas A dapat berhubungan dengan banyak entitas B dan sebaliknya setiap entitas B juga dapat berhubungan dengan banyak entitas A.


Tahapan dalam membuat Entity Relationship Diagram (E-R Diagram), yaitu:
1.      Mengidentifikasi dan menetapkan seluruh himpunan entity yang akan terlibat.
2.      Menentukan atribut tiap entity nya.
3.      Menentukan primary key tiap entity.
4.      Menentukan relationship antar entity.
5.      Menentukan atribut pada relationshipnya.
6.      Menentukan cardinality ratio.
7.      Menentukan participation constraint nya (batasan-batasan).

Berikut simbol dan keterangan :

Silahkan isi Buku Tamu

Followers