BD - Normalisasi

51
MODUL IX BASIS DATA NORMALISASI Disadur Oleh: Prima Rosa Jurusan Teknik Informatika Universitas Sanata Dharma Referensi: Connoly, Thomas & Carolyn Begg, 2005, Database Systems: A Practical Approach to Design, Implementation, and Management, Chapter 13 1

description

BD - Normalisasi

Transcript of BD - Normalisasi

  • MODUL IX BASIS DATA

    NORMALISASI

    Disadur Oleh: Prima Rosa

    Jurusan Teknik Informatika

    Universitas Sanata Dharma

    Referensi: Connoly, Thomas & Carolyn Begg, 2005, Database

    Systems: A Practical Approach to Design,

    Implementation, and Management, Chapter 13

    1

  • KOMPETENSI

    Mahasiswa memahami:

    Tujuan normalisasi.

    Bagaimana normalisasi diterapkan dalam perancangan basisdata relasional

    Potensi masalah yang muncul terkait dengan data yang redundan

    Konsep ketergantungan fungsional (functional dependencies)

    Karakteristik ketergantungan fungsional yang digunakan dalam normalisasi.

    2

    Pearson Education Limited 1995, 2005

  • KOMPETENSI (lanjutan)

    Bagaimana mengiddentifikasi ketergantungan fungsional dalam suatu relasi

    Bagaimana ketergantungan fungsional mengidentifikasi kunci primer dalam suatu relasi.

    Proses normalisasi Bentuk normal yang umum dipakai, yaitu

    First Normal Form (1NF), Second Normal Form (2NF), dan Third Normal Form (3NF).

    3 Pearson Education Limited 1995, 2005

  • Tujuan Normalisasi

    Normalisasi adalah teknik untuk

    menghasilkan sekumpulan relasi yang

    sesuai dan mendukung kebutuhan

    data dalam organisasi.

    4 Pearson Education Limited 1995, 2005

  • Tujuan Normalisasi

    Karakteristik kumpulan relasi (tabel) yang sesuai dgn kebutuhan organisasi adlh sbb: Berisi jumlah minimal atribut yang

    diperlukan untuk mendukung kebutuhan data dari organisasi tsb;

    Atribut dengan hubungan logikal yang dekat berada dalam satu relasi

    Berisi redundansi yang minimal, dimana setiap atribut disimpan hanya sekali, kecuali atribut-atribut yang menjadi kunci tamu.

    5 Pearson Education Limited 1995, 2005

  • Manfaat dari basisdata yang berisi

    kumpulan relasi (tabel) yang sesuai

    dgn kebutuhan organisasi adlh sbb:

    Basisdata mudah diakses dan dirawat oleh pengguna

    Basisdata akan menghemat media simpanan.

    6 Pearson Education Limited 1995, 2005

    Tujuan Normalisasi

  • Bagaimana Normalisasi

    Mendukung Perancangan BD

    7 Pearson Education Limited 1995, 2005

  • Redundansi Data dan Anomali

    Update Tujuan utama dari perancangan

    basisdata adalah mengelompokkan

    atribut ke dalam relasi untuk

    meminimalkan redundansi

    (perulangan).

    8 Pearson Education Limited 1995, 2005

  • Redundansi Data dan Anomali

    Update Manfaat potensial dari implementasi

    basisdata adalah:

    Updates data dalam basisdata dapat dilakukan dengan sejumlah operasi yang

    minimal, sehingga mengurangi

    kemungkinan terjadinya inkonsistensi

    data

    Meminimalkan kebutuhan media simpanan sehingga dapat menghemat

    biaya

    9 Pearson Education Limited 1995, 2005

  • Redundansi Data dan Anomali

    Update Masalah terkait dengan redundansi

    data dapat digambarkan dengan

    membandingkan relasi Staff, Branch

    dan StaffBranch berikut.

    10 Pearson Education Limited 1995, 2005

  • Redundansi Data dan Anomali

    Update

    11 Pearson Education Limited 1995, 2005

  • Redundansi Data dan Anomali

    Update Relasi StaffBranch berisi data yang

    redundan: detil setiap branch diulang untuk setiap staff

    Bandingkan dengan relasi Staff yang hanya memuat branch number (branchNo) sehingga yang diulang cukup branchNo sementara detil dari setiap branch disimpan dalam relasi Branch.

    12

    Pearson Education Limited 1995, 2005

  • Redundansi Data dan Anomali

    Update Relasi yang memuat data yang

    redundan potensial untuk

    menyebabkan anomali update.

    Tipe anomali update adalah sbb:

    Penyisipan data (Insertion)

    Penghapusan data (Deletion)

    Modifikasi data (Modification)

    13 Pearson Education Limited 1995, 2005

  • Lossless-join dan Menjaga

    Sifat Ketergantungan Dua sifat (property) penting dari

    dekomposisi. Lossless-join property memungkinkan kita

    menemukan kejadian (instance) dalam relasi asal dari kejadian terkait dalam relasi yang lebih kecil .

    Dependency preservation property memungkinkan kita untuk memaksa (to enforce) suatu kendala (constraint) dalam relasi asal juga muncul dalam relasi yang lebih kecil.

    14 Pearson Education Limited 1995, 2005

  • Ketergantungan Fungsional

    Ketergantungan fungsional (functional dependency) adalah konsep penting dalam normalisasi .

    Ketergantungan fungsional menyatakan hubungan antar atribut

    Contoh, jika A dan B adalah atribut dari relasi R, B dikatakan tergantung fungsional pada A (dinyatakan dengan A B), jika setiap nilai dari A dalam R berhubungan/terkait dengan tepat satu nilai B dalam R.

    15 Pearson Education Limited 1995, 2005

  • Karakteristik Ketergantungan

    Fungsional Ketergantungan fungsional merupakan sifat

    semantik (makna) atribut-atribut dari suatu relasi.

    Representasi diagramatik

    Determinant dari suatu ketergantungan fungsioal adalah atribut atau sekelompok atribut di sisi kiri panah.

    16 Pearson Education Limited 1995, 2005

  • Contoh Ketergantungan

    Fungsional

    17 Pearson Education Limited 1995, 2005

  • Contoh Ketergantungan

    Fungsional yang Selalu Terjaga

    Perhatikan nilai-nilai atribut staffNo dan sName dalam relasi Staff di slide 12.

    Berdasar contoh data, ketergantungan fungsional berikut nampaknya selalu terjaga

    staffNo sName

    sName staffNo

    18 Pearson Education Limited 1995, 2005

  • Contoh Ketergantungan

    Fungsional yang Selalu Terjaga

    Namun demikian, ketergantungan

    fungsional yang sesungguhnya selalu

    benar untuk setiap kemungkinan nilai

    atribut staffNo dan sName dalam

    relasi Staff relation adalah:

    staffNo sName

    19 Pearson Education Limited 1995, 2005

  • Karakteristik Ketergantungan

    Fungsional Determinan harus memiliki jumlah

    atribut yang minimal untuk menjaga

    ketergantungan fungsional dengan

    atribut-atribut di sisi kanan.

    Hal ini disebut ketergantungan

    fungsional penuh (full functional

    dependency)

    20 Pearson Education Limited 1995, 2005

  • Karakteristik Ketergantungan

    Fungsional

    Ketergantungan fungsional penuh:

    Misal A dan B adalah atribut-atribut dalam suatu relasi. B tergantung fungsional

    penuh pada A, jika B tergantung

    fungsional pada A, tetapi tidak tergantung

    fungsional pada proper subset (himpunan

    wajar) dari A.

    21 Pearson Education Limited 1995, 2005

  • Contoh Ketergantungan

    Fungsional Penuh Terdapat dalam relasi Staff (Slide 12).

    staffNo, sName branchNo

    Benar setiap nilai dari (staffNo, sName)

    terkait dengan satu nilai tunggal dari branchNo.

    Namun, branchNo juga tergantung fungsional pada himpunan bagian dari (staffNo, sName), yaitu staffNo.

    Jadi contoh di atas adalah ketergantungan parsial (partial dependency), bukan ketergantungan fungsional penuh.

    22 Pearson Education Limited 1995, 2005

  • Karakteristik Ketergantungan

    Fungsional Karakteristik utama dari ketergantungan

    fungsional yang digunakan dalam normalisasi : Terdapat hubungan/relasi one-to-one antara

    atribut(atribut-atribut) pada sisi kiri panah (determinan) dan sisi kiri panah dalam suatu ketergantungan fungsional.

    Hubungan tersebut selalu terjaga (berlaku) dalam setiap waktu/situasi

    Determinan memiliki jumlah atribut yang minimal yang diperlukan untuk menjaga ketergantungan dengan atribut-atribut di sisi kanan.

    23 Pearson Education Limited 1995, 2005

  • Ketergantungan Transitif

    (Transitive Dependencies) Penting untuk mengenali ketergantungan

    transitif karena keberadaannya dalam relasi dapat menyebabkan anomali update.

    Ketergantungan transitif menyatakan kondisi dimana A, B, dan C adalah atribut-atribut dari suatu relasi, sedemikian hingga jika A B dan B C, maka C dikatakan tergantung transitif pada A melalui B (diandaikan A tidak tergantung fungsional pada B atau C).

    24 Pearson Education Limited 1995, 2005

  • Contoh Ketergantungan

    Transitif Perhatikan ketergantungan fungsional dalam

    relasi StaffBranch ( Slide 12).

    staffNo sName, position, salary, branchNo, bAddress

    branchNo bAddress Ketergantungan transitif staffNo bAddress

    terdapat pada staffNo melalui branchNo. Dengan kata lain, atribut staffNo secara fungsional menentukan bAddress melalui atribut branchNo; sedangkan branchNo maupun bAddress tidak menentukan staffNo secara fungsional.

    25 Pearson Education Limited 1995, 2005

  • Proses of Normalisasi

    Merupakan teknik formal untuk

    menganalisis suatu relasi berdasar kunci

    primernya dan ketergantungan fungsional

    antar atribut dalam relasi tersebut.

    Normalisasi dilakukan dalam beberapa

    tahap. Tiap tahap berkorespondensi

    dengan sebuah bentuk normal tertentu,

    yang memiliki karakteristik tertentu.

    26 Pearson Education Limited 1995, 2005

  • Mengidentifikasi Ketergantungan

    Fungsional Identifikasi semua ketergantungan

    fungsional dari sekumpulan atribut menjadi relatif sederhana jika makna dari setiap atribut dan hubungan antar atribut dipahami dengan baik.

    Informasi tentang makna tsb dapat diperoleh dari organisasi melalui diskusi dengan pengguna dan/atau dokumentasi yang ada seperti spesifikasi kebutuhan pengguna, contoh-contoh dokumen bisnis sehari-hari, dsb.

    27 Pearson Education Limited 1995, 2005

  • Mengidentifikasi Ketergantungan

    Fungsional

    Namun, jika pengguna tidak dapat

    dijumpai dan/atau dokumentasi tidak

    lengkap, maka tergantung pada

    perancangan basisdata untuk

    menggunakan common sense

    dan/atau pengalamannya untuk

    mendapatkan informasi yang hilang..

    28 Pearson Education Limited 1995, 2005

  • Contoh Mengidentifikasi sekumpulan ketergantungan fungsional dalam relasi

    StaffBranch relation

    Perhatikan makna dari atribut-atribut

    dalam relasi StaffBranch (slide 12).

    Andaikan posisi yang dipegang dan

    kantor cabang menentukan salary

    seorang staff.

    29 Pearson Education Limited 1995, 2005

  • Contoh Mengidentifikasi sekumpulan ketergantungan fungsional dalam relasi

    StaffBranch relation

    Dengan informasi yang cukup, identifikasi

    ketergantungan fungsional untuk relasi

    StaffBranch adalah sbb: staffNo sName, position, salary, branchNo,

    bAddress

    branchNo bAddress

    bAddress branchNo

    branchNo, position salary

    bAddress, position salary

    30 Pearson Education Limited 1995, 2005

  • Contoh Menggunakan data sampel untuk mengidentifikasi

    ketergantungan fungsional Perhatikan data untuk attibut A, B, C, D,

    dan E dalam relasi Sample (Slide 32).

    Asumsikan bahwa nilai data sampel yang ditunjukkan dalam relasi mewakili semua nilai yang mungkin dari atribut A, B, C, D, dan E, meskipun sampel data yang ditunjukkan dalam relasi sedikit.

    31 Pearson Education Limited 1995, 2005

  • Contoh Menggunakan data sampel untuk mengidentifikasi

    ketergantungan fungsional

    32 Pearson Education Limited 1995, 2005

  • Contoh Menggunakan data sampel untuk mengidentifikasi

    ketergantungan fungsional .

    Ketergantungan fungsional antar atribut A sampai E dalam relasi Sample adalah sbb:

    A C (fd1)

    C A (fd2)

    B D (fd3)

    A, B E (fd4)

    33 Pearson Education Limited 1995, 2005

  • Mengidentifikasi Kunci Primer dari

    Suatu Relasi menggunakan

    Ketergantungan Fungsional

    Tujuan utama dari mengidentifikasi

    ketergantungan fungsional dari suatu relasi

    adalah untuk menentukan himpunan

    kendala integritas yang harus dipenuhi

    dalam suatu relasi.

    Salah satu kendala integritas yang harus

    ditentukan pertama-tama adalah kunci

    primer: atribut mana yang akan dipilih

    menjadi kunci primer.

    34 Pearson Education Limited 1995, 2005

  • Contoh Identifikasi Kunci Primer Relasi StaffBranch Relasi StaffBranch memiliki 5 ketergantungan

    fungsional (lihat slide 30)

    Determinannya adalah staffNo, branchNo,

    bAddress, (branchNo, position), dan (bAddress,

    position).

    Untuk mengidentifikasi semua kunci kandidat,

    tentukan atribut (atau sekumpulan atribut) yang

    secara unik mengidentifikasi tiap tupel dalam relasi

    35 Pearson Education Limited 1995, 2005

  • Semua atribut yang tidak menjadi bagian

    dari kunci kandidat harus tergantung

    fungsional pada kunci tersebut.

    Kunci kandidat satu-satunya (dan pasti

    adalah kunci primer) untuk relasi

    StaffBranch, adalah staffNo, karena semua

    atribut yg lain dalam relasi tsb tergantung

    fungsional pada staffNo.

    36 Pearson Education Limited 1995, 2005

    Contoh Identifikasi Kunci Primer Relasi StaffBranch

  • Contoh Mengidentifikasi Kunci Primer dari Relasi Sample

    Relasi Sample memiliki 4 ketergantungan fungsional (lihat Slide 34).

    Determinan dari relasi Sample adalah A, B, C, dan (A, B). Namun, satu-satunya determinan yang secara fungsional menentukan atribut yang lain dalam relasi adalah (A, B).

    Jadi (A, B) diidentifikasi sebagai kunci primer dari relasi.

    37 Pearson Education Limited 1995, 2005

  • Proses Normalisasi

    Setelah normalisasi dilakukan, relasi

    menjadi jauh lebih ketat (kuat) dalam

    formatnya dan juga lebih tidak mudah

    goyah ketika ada anomali update.

    38 Pearson Education Limited 1995, 2005

  • Proses Normalisasi

    39 Pearson Education Limited 1995, 2005

  • Proses Normalisasi

    40

    Pearson Education Limited 1995, 2005

  • Unnormalized Form (UNF)

    Bentuk yang tidak ternormalisasi

    (unnormalized form):

    Berupa suatu tabel yang memuat satu atau lebih grup berulang (repeating groups)

    Untuk membuat bentuk tabel tidak

    ternormalisasi

    Ubahlah data dari sumber informasi (misal formulir) ke dalam format tabel dengan kolom

    dan baris

    41 Pearson Education Limited 1995, 2005

  • First Normal Form (1NF)

    Bentuk normal pertama (First Normal

    Form / 1NF):

    Merupakan suatu relasi dimana interseksi dari setiap baris dan kolom memuat tepat

    satu nilai.

    42 Pearson Education Limited 1995, 2005

  • Mengubah UNF Menjadi 1NF

    Calonkan suatu atribut atau

    sekelompok atribut untuk bertindak

    sebagai kunci dari tabel yang tidak

    ternormalisasi.

    Identifikasi grup berulang dalam tabel

    tidak ternormalisasi yang menyatakan

    perulangan untuk setiap atribut kunci.

    43 Pearson Education Limited 1995, 2005

  • Mengubah UNF Menjadi 1NF

    Hilangkan grup berulang dengan cara:

    Masukkan data yang sesuai ke dalam kolom atau baris yang kosong yang

    memuat data yang diulang tersebut

    (flattening the table)

    Atau dengan menempatkan data yang berulang bersama dengan copy dari

    atribut kunci asalnya ke dalam suatu

    relasi yang terpisah.

    44 Pearson Education Limited 1995, 2005

  • Second Normal Form (2NF)

    Berdasar pada konsep

    ketergantungan fungsional penuh.

    Ketergantungan fungsional penuh

    menunjukkan bahwa jika

    A dan B adalah atribut dari suatu relasi

    B tergantung penuh pada A jika B tergantung pada A tetapi tidak tergantung

    pada himpunan bagian yang wajar dari A.

    45 Pearson Education Limited 1995, 2005

  • Second Normal Form (2NF)

    Bentuk normal kedua (Second Normal

    Form / 2NF) adalah:

    Suatu relasi yang berada dalam bentuk 1NF DAN

    Setiap atribut bukan kunci primernya tergantung fungsional penuh pada kunci

    primer.

    46 Pearson Education Limited 1995, 2005

  • Mengubah 1NF Menjadi 2NF

    Identifikasi kunci primer dari relasi 1NF

    Identifikasi ketergantungan fungsional dalam relasi

    Jika terdapat ketergantungan parsial pada kunci primer, hilangkan dengan menempatkannya dalam sebuah relasi baru beserta salinan (copy) dari determinannya.

    47

    Pearson Education Limited 1995, 2005

  • Third Normal Form (3NF)

    Berdasar pada konsep ketergantungan transitif.

    Ketergantungan transitif adalah suatu kondisi dimana A, B dan C adalah atribut dari suatu relasi

    sedemikian hingga jika A B and B C, maka C tergantung transitif pada A melalui B. (Asumsi: A tidak tergantung fungsional pada B atau C).

    48 Pearson Education Limited 1995, 2005

  • Third Normal Form (3NF)

    Bentuk Normal ketiga (Third Normal

    Form / 3NF) adalah

    Suatu relasi yang berada dalam bentuk 1NF dan 2NF dan tidak ada atribut bukan

    kunci yang tergantung transitif pada kunci

    primer.

    49 Pearson Education Limited 1995, 2005

  • Mengubah 2NF menjadi 3NF

    Identifikasi kunci primer dari relasi 2NF

    Identifikasi ketergantungan fungsional dalam relasi.

    Jika terdapat ketergantungan transitif terhadap kunci primer, hilangkan dengan menempatkannya dalam relasi yang baru beserta copy (salinan) dari dominannya (sisi kiri panah).

    50

    Pearson Education Limited 1995, 2005

  • Definisi Umum dari 2NF dan 3NF

    Second normal form (2NF) Sebuah relasi yang berada dalam bentuk

    1NF dan setiap atribut bukan kunci primernya tergantung penuh pada sebarang kunci kandidat.

    Third normal form (3NF) Sebuah relasi yang berada dalam bentuk

    1NF dan 2NF dan tidak ada atribut bukan kunci primer yang tergantung transitif pada sebarang kunci kandidat

    51 Pearson Education Limited 1995, 2005