aps10 Normalisasi

download aps10 Normalisasi

of 11

Transcript of aps10 Normalisasi

  • 7/24/2019 aps10 Normalisasi

    1/11

    Unit 10

    Normalisasi

    Kasus Pembuka

    Perhatikan dialog antara Ketua Jurusan dengan Database

    Manajer yang baru menduduki jabatanya seminggu lalu.

    Ketua Jurusan : .. Kenapa IP mahasiswa yang terantum

    dalam transkrip akademik tidak terkoreksi seara

    otomatis! pada hal pegawai telah memeasukan

    perubahan nilai yang baru diterima dari dosen! ."

    Database Manajer : .. #" ok pak nanti saya periksa .

    $sisten Data Manajer berbisik kepada Data Manajer : .

    IP nya belum di update pak

    Data Manajer : %o IP kan berasal dari nilai! nilai kan sudah

    diubah &"

    $sisten Data Manajer : 'ilai memang sudah tapi IP kan

    belum

    Data Manajer : (ekarang kamu update itu IP

    $sistem Data Manajer : (aya tak bisa pak! itu dulu

    dikerjakan sendiri oleh Pak $nu .. Data manajer yang

    lalu

    Pertanyaan Diskusi:Permasalahan apakah yang terdapat pada database akademis

    diatas#

    Pengantar

    Sebagaimana sudah dibicarakan sebelumnya strutur tabel dapat

    menimbulkan masalah dalam mengambil dan mengperbarui data; sebagai

    contoh kalau kita harus mengupdate banyak record hanya untuk merobah

    data yang persis sama misalnya Supplier X pindah alamat. Alamat suplier

    terdapat pada banyak record maka kita harus mengupdate kesemuanya.Jika kita telah merancang tabel sedemikian rupa masalah ini akan

    sendirinya hilang.

    Selain menggunakan entity modelling tabel-tabel normal dapat diperoleh

    melalui normalisasi. Normalisasi adalah proses untuk mengubah struktur

    tabel dari pandangan user menadi tabel dengan struktur yang diingini

    sehingga! tidak ada atribute yang mempunyai nilai ganda "atau repeating

    groups#! dalam keadaan $ull determinacy dan tidak menyimpan data yang

    dapat dihitung dari data lain

    %%

  • 7/24/2019 aps10 Normalisasi

    2/11

    Identifier dan Determinan

    Identifier

    &denti$ier adalah sebuah atribut atau gabungan atribut yang dapat menadi identi$ikasi unik

    setiap occurancesuatu entiti. Setiap entiti memerlukan identi$ier! sehingga kalau tidak ada

    calon identi$ier yang memuaskan maka kita hendaknya merancang kode yang akan menadi

    identi$ier entiti tersebut.

    Semua atribut atau kelompok atribut yang unik sebagai identitas suatu

    entiti disebut sebagai calon identi$ier. Untuk memilih calon identi$ier

    sebagi identi$ier perlu dipenuhi kriteria! identi$ier tersebut tidak boleh

    kosong! identi$er harus selalu berisi. Alasan tidak bolehnya entiti

    identi$ier bernilai kosong! karena nilai kosong mengandung banyak arti!apakah ini berarti tidak diketahui! atau sama dengan nol atau hanya

    karena kita lupa mengsikan nilainya.

    'riteria lain dalam pemilihan identi$ier adalah minimal su))iieny.

    (engan kembali menggunakan contoh entiti )ahasis*a nomor buku

    popok merupakan identi$ier karena dia unik! akan tetapi gabungan dari

    nomor mahasis*a! nama mahasis*a! dan alamat! uga unik untuk entiti

    mahasis*a! sehingga gabungan atribut tersebut dikatakan su$$icien!

    tetapi tidak minimal! karena dengan dibuangnya dua atribut lainnya!nama dan alamat keunikannya masih dapat dipertahankan. Jika nama

    saa diadikan identi$ier! tidak memenuhi persyaratan su$$icient karena

    tidak unik. 'elompok atribut yang yang memenuhi kreteria minimal

    su$$iency disebut sebagai Non redundant identi$ier. Nomor mahasis*a

    sendiri bukanlah identi$ier asli! tetapi adalah atribut yang sengaa dibuat!

    karena tidak adanya atrubut tunggal yang bersi$at unik.

    Determinant

    (eterminant adalah atribut atau kelompok atribut yang menentukan nilai

    atributlain. (engan kata lain ika kita menemukan nilai dari atribut A

    selalu muncul berpasangan dengan nilai atribut +. )aka Nilai atribut +

    ditentukan oleh atribut A! maka A adalah determinan dari +! dan nilai

    atribut + ditentukan oleh nilai atribut A.

    ,ontoh

    )enggunakan contoh table (osen diatas! setiap kita menemukan N&

    11//// maka Nama dari (osen yang bersangkutan adalah Amsal

    %

  • 7/24/2019 aps10 Normalisasi

    3/11

    (unid! maka N& adalah determinant dari Nama (osen. Selanutnya

    setiap kita menemukan Nomor'ode)' 0001 maka selalu diikuti nama

    mata kuliah Akuntansi! disini Nomor'ode)' adalah determinan dari

    Nama)'.

    Akan tetapi setiap kita menemui nama dosen Amsal (unid belum tentu kita uga akan

    menemukan N& 11////! karena mungkin saa ada dosen yang mempunyai nama yang sama!

    sedangkan N& tidak mungkin sama karena orang yang berbeda akan diberi N& yang berbeda

    pula. )aka Nama bukanlah determinant dari N&.

    (eterminant setiap tabel database harus selalu $ulldetermiann! ika tidak

    akan menyebabkan anomali.

    Full Determinant. Yaitu bila nilai dari setiap atribut hanya ditentukan oleh determinannyasecara penuh dan langsung. Seperti contoh diatas nama secara penuh dan langsungditentukan oleh NIP maka ini merupakan full determinant, yang secara grafik dapatditunjukkan sebagai berikut.

    A +

    N& secara langsung menentukan Nama (osen! dan pada entiti

    matakuliah Nomor'ode)' langsung menentukan Nama matakuliah.

    Transitive DeterminantBila terdapat nilai suatu atribut yang tidak secara langsung ditentukanoleh determinan, tetapi ditentukan oleh atribut lain yang nilainya direntukan olehdeterminan maka ini maka ini disebut transitie determinant

    ,ontoh

    Jika atribut A menentukan nilai dari atribut + dan selanutnya +

    nenentukan atribut ,! maka A secara tidak langsung menentukan nilai

    atribut ,. Secara gra$is akan terlihat sebagai berikut.

    A + ,

    A dikatakan sebagai transiti2e determinant dari ,. Untuk menormalisir

    suatu entiti transiti2e determinant harus dihilangkan. Sehingggambarnya akan menadi.

    A +

    + ,

    ,ontoh

    'ita misalkan ada dua buah entiti yaitu entiti roek dan 3ntiti ega*ai.

    Atribut dari masing-masing entiti adalah sebagai berikut.3ntiti4 roect 3ntiti4 ega*ai

    0

  • 7/24/2019 aps10 Normalisasi

    4/11

    Atribut4 Atribut4

    55 Nomor,ode roect 55 N

    Nama roect Nama

    6gl )ulai 6gl 7ahit

    6gl (iharapkan Selesai 6gl )asuk5 N)anaer 5Nomor,ode(ep

    Nama )anaer dst

    Nomorcode(ep)anaer

    dst

    55 8 &denti$ier

    5 8 9oreign &tenti$ier

    (engan menganalisa contoh diatas! diketahui bah*a Nomor,ode

    roect menentukan nama proect! tgl mulai! tgl diharapkan selesai!Nmanaer! Nama )anager! Nomorcode (ep )anaer. 6etapi Nama

    )anaer dan Nomorcode (ep )anaer uga ditentukan oleh

    N)anaer. Jelas ini merupakan penyimpanan data yang tupang tindih!

    yang tentu harus dihindarkan dalam perancangan database.

    Partial Determinant !ika calon identifier mempunyai banyak atribut "composite atribut#sedangkan atribut lainnya hanya ditentukan oleh sebagian dari atribut pada calon identifiertersebut, maka disini kita mengalami masalah yang dikenal denganpartial determinancy.$asalah

    ini harus dihindarkan.

    )isalnya seperti gambar diba*ah ini! A dan + adalah merupakan

    determinant bersama dari ,. Sedangkan A sendiri menentukan nilai dari

    (.

    A (

    ,

    +

    )asalah ini harus diatasi cara berikut

    A

    1

  • 7/24/2019 aps10 Normalisasi

    5/11

    , A (

    +

    ,ontoh dalam bentuk table dari partial determinant adalah4

    Nomor ersediaan pada $ile persediaan terdiri dari dua komponen yangterdiri dari 'elompok persediaan dan nomor barang. &ni berarti nomor

    barang dapat berulang kali! tetapi untuk kelompok persediaan yang

    berbeda. 7ihat table berikut

    'elompok Nomorbarang 'etNomor+rg 'eterangan 'elompok

    "A# "+# ",# "(#

    A 100 akaian Anak 'atun

    A :00 akaian emaa 'atun

    + 100 akaian

  • 7/24/2019 aps10 Normalisasi

    6/11

    3mpat langkah normalisasi tersebut adalah ;

    7angkah 14 >ilangkan repeating groups

    7angkah :4 >ilangkan transiti2e detrminancy

    7angkah 4 >ilangkan partial determinancy7angkah /4 >ilangkan ?irtual 9ields

    Setelah repeating group dihilangkan diperoleh 1N9 atau :N9 atau N9

    bahkan sudah dapat langsung ke bentuk =ptimal N9! demikian uga

    dengan langkah : dan ! sehingga tidak semua langkah ini harus dilalui

    untuk sampai pada =ptimal N9

    Jika kita merancang database menggunakan model entiti dengan penuh

    sebenarnya tabel-tabel database yang kita hasilkan secara otomatis sudah

    akan berada pada bentuk normal ketiga.

    Menghilangkan Repeating Groups

    +erdasarkan 7aporan peminaman buku perpustakaan dirancang entiti

    beserta atributnya seperti termuat dalam da$tar diba*ah ini.3ntiti4inaman+ukuerpustakaan

    6abel tidak normal

    6abel bentuk normal pertama

    >ilangkan repeating group

    6abel bentuk normal kedua

    6abel bentuk normal ketiga

    6abel bentuk normal keempat

    >ilangkan partial dependency

    >ilangkan transiti2e dependency

    >ilangkan 2irtual data

    @ambar No. 11.1

  • 7/24/2019 aps10 Normalisasi

    7/11

    Atribut4

    55 NomorAnggota

    Nama

    Alamat

    Jenis55 Nomorbuku

    katalog

    Judul

    enerbit

    halaman

    6glpinaman

    6gl'embali

    Jumlah dipinam

    (isini terlihat pengulangan data anggotan yang tidak perlu "redundan#!

    untuk menghindari pengulangan ini kita pisahkan anggota menadi

    tersendiri

    (engan atribut masing-masing sebagai berikut4

    3ntiti 4 Anggota

    Atribut 4

    55 NomorAnggota

    Nama

    Alamat

    Jenis

    Jumlahpinaman

    (an pinaman buku beserta atributnya menadi sbb.

    3ntiti4 inaman+ukuerpustakaan

    Atribut4

    55 NomorAnggota

    55 Nomorbuku

    'atalog

    Judul

    enerbit >alaman

    6glpinam

    6gl'embali

    6abel ni berada pada 1N9

    Menghilang partial dependency

    Jika kita perhatikan da$tar atribut diatas tidaklah semua atributesepenuhnya ditentukan oleh identi$ier NomorbukuNomoranggota. Nomor

    /

  • 7/24/2019 aps10 Normalisasi

    8/11

    katalog !Judul buku! penerbit! umlah halaman tidak ditentukan secara

    langsung oleh Nomoranggota. 6api ditentukan oleh Nomor buku! sekarang

    katalog kita keluarkan menadi entiti tersendiri Sehingga kita punya tiga

    entiti dengan atribut maing-masing seperti berikut

    3ntiti 4 AnggotaAtribut 4

    55 NomorAnggota

    Nama

    Alamat

    Jenis

    Jumlah pinaman

    3ntiti 4 katalog

    Atribut

    5 'atalog Judul

    enerbit

    >alaman

    (an pinaman buku beserta atributnya menadi sbb.

    3ntiti4 inaman+ukuerpustakaan

    Atribut4

    55 NomorAnggota

    55 Nomorbuku

    'atalog

    6glpinam

    6gl'embali

    6abel ni berada pada :N9

    Menghilangkan transitive determinancey (dependency)

    Nomoranggota menentukan nomor buku dan nomor buku menentuka

    nomorkatalog! nomorkatalog secara tidak langsung ditentukan oleh nomor

    anggota. &ni uga diatasi dengan memisahkan entiti buku sehingga kita

    sekarang memiliki / entiti dengan aatribut masing-masingnya sebagai

    berikut.

    3ntiti 4 Anggota

    Atribut 4

    55 NomorAnggota

    Nama

    Alamat

    JenisJumlah pinaman

    B

  • 7/24/2019 aps10 Normalisasi

    9/11

    3ntiti 4 katalog

    Atribut

    5 'atalog

    Judul enerbit

    >alaman

    3ntiti 4 +uku

    5 Nomorbuku

    'atalog

    (an pinaman buku beserta atributnya menadi sbb.

    3ntiti4 inaman+ukuerpustakaan

    Atribut4

    55 NomorAnggota

    55 Nomorbuku

    6glpinam

    6gl'embali

    6abel ini berada pada N9

    ,oba perhatikan dengan saksama! bah*a hanya tanggal peminaman dan

    tanggal pengembalian yang rele2an dengan NomorbukuNomoranggota

    ini! kedua tanggal ini memang secara langsung ditentukan oleh

    Nomoranggota dan Nomorbuku. Sehingga tabel ini memenuhi syarat $ull

    determinancy dan tidak ada repeatinggroup. secara traditional dikatakan

    bah*a table ini sudah berada pada N9.

    'arena pada kenyataannya tidak banyak bedanya antara transiti2e

    determinancy dan partial determinancy! maka orang sering langsung saapada N9. Caitu apabila semua table sudah berada pada $ull determinancy.

    Menghilangkan irtual !ields ("P#IM$% &N!#

    ?irtual $ield adalah sesuatu yang rele2an dengan suatu entiti! akan tetapi

    nilainya dapat ditentukan atau dihitung melalui atribut lain! sehingga tidak

    harus disimpan secara tersendiri. Sebagai misal! perhatikan entiti anggota

    umlah buku yang dipinam "umlah pinaman#! umlah buku yang

    dipinam dapat dihitung dari buku yang dipinam untuk masing-masinganggota.

    D

  • 7/24/2019 aps10 Normalisasi

    10/11

    Secara tradisional dikatakan bah*a suatu entiti akan berada pada =ptimal

    N9 apabila tidak ada lagi 2irtual atribut. 6abel entiti anggota akan berada

    dalam bentuk optimal N9 bila memiliki atribut4

    3ntiti 4 AnggotaAtribut 4

    55 Nomoranggota

    Nama

    alamat

    enis

    (alam praktek 2irtual $ields mungkin dipertahankan Suatu alasan untuk

    mempertahankan 2irtual $ieds adalah pertimbangan e$$esiency dan

    e$$ecti2itas dalam menghitung nilai dari atribut tersebut! terutama kalaudata yang ada pada 2irtual $ield "atribut# tersebut bersi$at permanet artinya

    tida akan mengalami perubahan dikemudian hari. )isal untuk

    memudahkan mengetahui umlah total harga dalam masing-masing $aktur

    disimpan pada tabel $aktur sungguhpun umlah ini dapat dihitung dari

    pengalian harga per unit dengan kuantiti yang ada pada tabel rincian

    $aktur. 'asus ini berbeda dengan contoh diatas umlah pinaman akan

    berubah terus sedangkan total harga pada $aktur tidak akan pernah

    berubah.

    Pertanyaan 'langan

    1. Jelaskan pengertian normalisasi E

    :. Sebutkanlah langkah-langkah normalisasi secara umumE

    . +agaimana langkah normalisasi E

    /. +uatlah contoh menghilangkan repeating groups E

    B. +uatlah contoh memastikan $ull determinancyE

    D. +uatlah contoh 2irtual $ields "optimal n$# F

    Pertanyaan iskusiKasus

    erlaari tabel rekening bank berikut

    ,abang No

    ekening

    Nasabah Jenis

    ekening

    Saldo 'epala

    ,abang

    A 1111 AA 6 100 Ali

    A :::: ++ ( :00 Ali

    + AA 6 1B0 +udi, //// ,, @ B0 Ali

    G

  • 7/24/2019 aps10 Normalisasi

    11/11

    'asir 6gl No ekening (' Jumlah

    111 1-1-:001 1111 ' :00

    111 1-1-:001 :::: ' :00

    ::: :-1-:001 1111 ( 100

    (iskusikan 4

    1. (ari mana datang angka saldo E

    :. Sempurnakan tabel diatas dengan memecah menadi berapa tabel sehingga

    semua tabel adi normal

    . (engan menggunakan pendekatan entity modeling identi$ikasi entiti yang

    rele2an buat 3- )odel! ubah adi )odel rancangan isik (atabase dan

    kembangkan tabel

    /. Apakah dihasilkan tabel-tabel yang sama antara pendekatan : dan ! danmanakah dari kedua pendekatan tersebut yang lebih baik E

    B. Apakah atribut saldo saudara pertahankanE Apa alasanya E

    %