Normalisasi

Kegunaan normalisasi.

  • Masalah-masalah yang berhubungan dengan kerangkapan data
  • Identifikasi macam-macam anomali update seperti : penyisipan (insertion), penghapusan (deletion), dan perubahan yang anomali
  • Bagaimana mengenali kelayakan atau kualitas suatu rancangan relasi
  • Bagaimana ketergantungan fungsional (functional dependencies) dapat digunakan untuk mengelompokkan atribut kedalam relasi-relasi dalam bentuk normal
  • Bagaimana melakukan proses normalisasi
  • Bagaimana mengidentifikasi bentuk normal yang umum digunakan seperti : 1NF, 2NF, 3NF, dan Boyce–Codd normal form (BCNF)‏
  • Bagaimana mengidentifikasi bentuk normal empat (4NF) dan bentuk normal lima (5NF)

 

Tujuan utama dalam pengembangan model data logical pada sistem database relasional adalah untuk menciptakan representasi akurat suatu data, keterhubungannya dan batasan-batasannya.

  • Untuk mencapai tujuan ini, maka harus ditetapkan/diidentifikasi sekumpulan relasi.
  • Empat bentuk normal yang biasa digunakan yaitu, first normal form (1NF), second normal form  (2NF) dan third normal form (3NF), dan Boyce–Codd Normal Form (BCNF)
  • Terdapat bentuk fourth normal form (4NF) dan fifth normal form (5NF) untuk situasi yang jarang terjadi
  • Berdasarkan pada functional dependencies antar atribut dalam relasi
  • Sebuah relasi dapat dinormalisasi kedalam bentuk tertentu untuk mengatasi kemungkinan terjadinya pengulangan dari update yang tidak baik.
  • Normalisasi adalah suatu teknik untuk menghasilkan sekumpulan relasi dengan sifat-sifat (properties) yang diinginkan, memenuhi kebutuhan data pada enterprise.

Data Redudancy

  • Tujuan utama dari desain database relasional adalah untuk mengelompokkan atribut-atribut kedalam relasi-relasi sehingga meminimalisasi redundansi data dan mengurangi penggunaan tempat penyimpanan yang dibutuhkan oleh sebuah relasi dasar.
  • Masalah-masalah yang terkait dengan redundansi dapat dijelaskan dengan membandingkan relasi Staff dan Branch dengan relasi StaffBranch.
  • Relasi StaffBranch memiliki data redundan, yaitu detail dari branch dituliskan berulang-ulang untuk setiap staff.
  • Sebaliknya, informasi mengenai branch muncul hanya satu kali pada relasi Branch dan hanya branchNo saja yang diulang dalam relasi Staff, untuk merepresentasikan dimana setiap staff tersebut bekerja.
  • Relasi yang mengandung informasi yang redundan dapat diakibatkan oleh  update anomalies.
  • Beberapa tipe dari update anomalies, diantaranya           :
    • Insertion
    • Deletion
    • Modification
contoh MsStaff

contoh MsStaff

MsBranch

MsBranch

MsStaffBranch

MsStaffBranch

Terdapat dua sifat Decomposition  yaitu                :

  • Lossless-join

Memungkinkan untuk menemukan suatu instance relasi dasar dari instance koresponden dalam relasi yang lebih kecil.

  • Dependency Preservation Properties

Memungkinkan untuk memelihara/mengadakan batasan pada relasi dasar dengan melaksanakan beberapa batasan pada relasi yang lebih kecil.

Functional Depedency

  • Merupakan konsep inti yang terkait dengan normalisasi.
  • Functional Dependency

–      Menjelaskan relationship antar atribut-atribut dalam relasi.

–      Misalkan, jika A dan B adalah atribut dari suatu relasi R, B dikatakan Functionally Dependent pada A (dinotasikan A à B), jika setiap nilai A dihubungkan dengan tepat satu nilai B. ( A dan B masing-masing dapat terdiri atas satu atau lebih atribut)‏

–      Functional Dependency merupakan sifat dari arti semantik suatu atribut dalam sebuah relasi.

  • Karakteristik utama dari functional dependency yang digunakan dalam normalisasi :

–      Mempunyai relationship  1:1 antar atribut di sebelah kiri dan kanan dependency.

–      Saling terkait (Hold for all time)‏

Misal     :               staffNo à sName dan sName à staffNo

–      Nontrivial

  • Contoh : Mengidentifikasikan sekumpulan ketergantungan fungsional dari relasi StaffBranch

staffNo                 à sName, position, salary, branchNo, bAddress

branchNo            à bAddress

bAddress             à branchNo

branchNo, position à salary

bAddress, position à salary

  • Kumpulan lengkap dari sebuah functional dependency untuk suatu relasi bisa sangat besar.
  • Penting untuk menemukan pola pendekatan yang dapat mengurangi himpunan/kumpulan tersebut untuk mendapatkan ukuran yang lebih mudah diatur.
  • Perlu untuk mengidentifikasi himpunan functional dependency (direpresentasikan oleh X) untuk relasi yang lebih kecil daripada himpunan lengkap functional dependency (direpresentasikan oleh Y) untuk relasi tersebut dan memiliki sifat disetiap functional dependency pada Y dipenuhi dengan functional dependencies pada  X.
  • Himpunan dari seluruh functional dependency yang dipenuhi dengan himpunan yang diberikan dari functional dependencies X disebut closure  X (dituliskan, X+).
  • Himpunan inference rules, disebut Armstrong’s axioms, menetapkan bagaimana functional dependency yang baru dapat disimpulkan dari  functional dependency yang sudah ada.
  • Misalkan A, B, dan C merupakan subset dari atribut suatu relasi R. Maka Armstrong’s axiom-nya adalah :
    • Reflexivity, jika B merupakan subset dari A, then A à B
    • Augmentation, jika A à B, maka A,C à B, C
    • Transitivity,jika  A à B dan B à C, maka A à C

 

 

Sistem Basis Data Pertemuan 1 part 2

Database Definition Language (DDL)

DDL ->   Semua data yang berhubungan dengan seluruh database

Kegunaannya untuk menambah struktur, ex: nambah alamat.

DDL:

  • Create : menambah struktur; ex: menambahkan alamat.
  • Alter : merubah struktur; ex: nim berbentuk char diganti menjadi int.
  • Drop : menghilangkan dari struktur; ex: nim A namanya Budi, ternyata Budihartono.

Database Manipulation Language (DML)

DML -> Query untuk memanipulasi data di database

DML:

  • Select : menampilkan
  • Insert : menambah
  • Update : mengubah
  • Delete : menghapus

Control akses data

  • Security sistem (sesuai role)
  • Sistem integrasi, masing masing data ada yang diakses secara bersama sama; ex: data binus anggrek sama data yang di binus JWC beda
  • Concurrency control system, banyak akses : mengatur proses
  • Proses back-up restroreEx: back-up data dibinus tiap malem, karena ditakutkan database semua nilai mahasiswa hilang
  • Definisi user-accessible catalog

Views (virtual tabel)

  • Kegunaannya untuk menjawab masalah.
  • Data bisa diatur sesuai sistem; ex: bikin query beda antara dosen dan mahasiswa
  • Data lebih aman
  • Bisa diatur siapa yang boleh lihat, siapa yang tidak boleh lihat.

Keuntungan view

  • Mengurangi kompleksitas dari si programer
  • Customize data

Peran dalam lingkungan database

  • Data Administrator (insert data, update data)
  • Database Administrator (pengelolaan database)
  • Database Designers (butuh atribut apa)
  • Application Programmers (bikin aplikasi penghubung)
  • End User (naive and sophisticated) -> naive: user biasa, sophisticated: yang bikin database

Sejarah Database

  • Generasi satu -> Hirarki dan Jaringan
  • Generasi dua -> Penghubung
  • Generasi tiga -> Object-Relational & Object-Oriented

Keuntungan DBMS

  • Kontrol data redudancy (perulangan)
  • Konsistensi data
  • Informasi lebih dari jumlah data yang sama

3 level arsitektur objektif

  1. Semua user harus bisa akses data yang sama
  2. Semua mahasiswa masih bisa melihat data walaupun tabel nya sedang diperbaiki
  3. Bikin level, user bisa lihat sampai mana.

Contoh perbedaan:

  • DBA bisa ubah struktur data
  • Internal struktur database, user tidak merasakan apa apa padahal tabelnya sedang di otak atik
  • DBA harus mengganti konseptual (isinya objek objek, atribut atribut dan relasinya)

Data Independence

  • Physical melakukan perubahan internal ngaruh ke konseptual

Konstraint -> aturan

Database Language

  • DML
  • Procedural DML -> caranya bagaimana, gimana buat nampilin data
  • Non Procedural DML -> apa datanya, query minta nampilin data
  • Fourth Generation Language (4GLS) -> sama kaya procedural

Data Model

Data Model adalah sebuah konspe integrasi mengenai isinya database (ada data sama kontrain)
Data Model : Structural part DDL, Manipulation part DML

Tujuan data model untuk si User awal mengerti isi database nya apa
Dibagi 3 :

  • Objek
  • Record
  • Physical

Fungsi DBMS:

  • Data storage, retrieval, dan update
  • User dapat mengakses katalog
  • Untuk mendukung DML (transation support)
  • Layanan kontrol konkurensi
  • Recovery service
  • Utility services (import file)

Sistem Katalog (Data dari data)

  • Typically stores:
  • sysuser
  • sysobjek

Sistem Basis Data Pertemuan 1 part 1

Sistem Basis Data

Database atau basis data adalah kumpulan data yang disimpan secara sistematis di dalam komputer dan dapat diolah atau dimanipulasi menggunakan perangkat lunak (program aplikasi) untuk menghasilkan informasi.

Contoh contoh yang menggunakan database:

  • Transaksi di supermarket
  • Pembelian menggunakan kartu kredit
  • Pemesanan paket liburan di agen perjalanan
  • Meminjam buku di perpustakaan
  • Mengambil asuransi
  • Menyewa video
  • Menggunakan internet
  • Belajar di universitas

Sebelum ada database, semua data disimpan di file-based system

  • Data disimpan dan hanya report yang keluar, tidak ada maintenance.
  • Masing masing data mengatur datanya sendiri, contohnya misalkan ada calon mahasiswa baru, maka datanya akan disimpan di bagian marketing, nilai, dan penjadwalan. Jika calon mahasiswa baru tersebut ingin melakukan update misalnya merubah data alamat rumahnya maka yang data yang akan berubah dibagian nilai dan penjadwalan, karena apabila calo mahasiswa sudah resmi menjadi mahasiswa data dia tidak akan berhubungan lagi dengan bagian marketing.

Id unik -> primary key.

Database ada dua jenis:

  1. Basis data flat-file. Basis data flat-file ideal untuk data berukuran kecil dan dapat dirubah dengan mudah. Pada dasarnya, mereka tersusun dari sekumpulan string dalam satu atau lebih file yang dapat diurai untuk mendapatkan informasi yang disimpan. Basis data flat-file baik digunakan untuk menyimpan daftar atau data yang sederhana dan dalam jumlah kecil. Basis data flat-file akan menjadi sangat rumit apabila digunakan untuk menyimpan data dengan struktur kompleks walaupun dimungkinkan pula untuk menyimpan data semacam itu. Salah satu masalah menggunakan basis data jenis ini adalah rentan pada korupsi data karena tidak adanya penguncian yang melekat ketika data digunakan atau dimodifikasi.
  2. Basis data relasional. Basis data ini mempunyai struktur yang lebih logis terkait cara penyimpanan. Kata “relasional” berasal dari kenyataan bahwa tabel-tabel yang berada di basis data dapat dihubungkan satu dengan lainnya. Basis data relasional menggunakan sekumpulan tabel dua dimensi yang masing-masing tabel tersusun atas baris (tupel) dan kolom (atribut). Untuk membuat hubungan antara dua atau lebih tabel, digunakan key (atribut kunci) yaitu primary key di salah satu tabel dan foreign key di tabel yang lain. Saat ini, basis data relasional menjadi pilihan karena keunggulannya. Beberapa kelemahan yang mungkin dirasakan untuk basis data jenis ini adalah implementasi yang lebih sulit untuk  data dalam jumlah besar dengan tingkat kompleksitasnya yang tinggi dan proses pencarian informasi yang lebih lambat karena perlu menghubungkan tabel-tabel terlebih dahulu apabila datanya tersebar di beberapa tabel.

Misalnya membuat identitas, atribut, relasi dari penjadwalan

  • Mahasiswa         : nim, nama, tgllahir, jnkel, email, hp
  • Absen                   : kode, nama, tgllahir, jnkel, email, hp
  • Shift                      : kodeShift, jamAwal, jamAkhir
  • Ruang                   : idRuang, lantai
  • TrJadwal             : kelas, nim, kode, kodeShift, kodeMsk, kodeKampus, idRuang
  • Matakuliah         : kodeMtk, namaMtk, sks
  • Kampus                : kodeKampus, namaKampus

Gambaran IRT

gambar IRT dari penjadwalan

gambar IRT dari penjadwalan

 

Kekurangan file-based:

  • Datanya masing masing
  • Maintenance nya susah
  • Biaya yang dikeluarkan lebih banyak
  • Aplikasi tergantung file-based, query nempel di aplikasi

Alasan memakai database:

  • Data bisa diaplikasi program
  • Data tidak terpisah
  • Bisa diatur security nya
  • Mendukung proses manipulasi

Ex: Mahasiswa hanya bisa melihat kode dan nama matakuliah saja, tetapi dosen bisa melihat seluruh data mahasiswa.

Contoh DBMS (software yang bisa define, create &control) : mySQL, myAccess, oracle

Intinya database itu adalah sekumpulan data yang secara logikal yang disimpan sesuai dengan kebutuhan si organisasi.

Sistem Katalog

Sistem katalog adalah data dari data (kamus data)

Ex: User mau lihat keterangan tabel pada database; sysobjek(lihat di tabel)

Isi database: identitas, atribut, dan relasi.

Database: Gabungan data dari seluruh organisasi.

Lanjut ke part 2 ya…