Tuesday, November 3, 2009

Desain Data Base [Resume Pertemuan Kedua]

Proses Desain Data Base :
  • Analisis Persyaratan
  • Desain Data Base Konseptual
  • Desain Data Base Logika
  • Perbaikan Skema
  • Desain Data Base Fisik
  • Desain Aplikasi dan Keamanan
Analisis Persyaratan :
  • Memahami dan mengetahui data yang harus disimpan dalam database,
  • aplikasi apa yang harus dibangun di atasnya,
  • jenis operasi apa yang akan digunakan, dst.
Desain Database konseptual :
  • Informasi yang dikumpulkan pada tahap analisis persyaratan digunakan untuk mengembangkan deskripsi data tingkat tinggi.
  • Tahapan ini sering dilakukan dengan menggunakan model E-R.
  • Tujuannya adalah untuk menciptakan gambaran sederhana tentang data yang mirip dengan pemikiran pengguna / user.
Desain Database Logika :
  • Merubah skema E-R menjadi skema database relasional.
  • Tujuannya adalah memperoleh skema konseptual pada model data relasional yang sering dinamakan skema logika.
Perbaikan Skema :
  • Analisis sekumpulan relasi dalam skema database relasional untuk mengidentifikasi permasalahan yang muncul dan memperbaikinya.
Desain Data Base Fisik :
  • Tahapan ini mencakup pembuatan indeks pada beberapa tabel, mengelompokkan beberapa tabel atau melibatkan desain ulang yang substansial terhadap beberapa bagian skema database.
Desain Aplikasi dan Keamanan :
  • Semua proyek perangkat lunak yang melibatkan sebuah DBMS harus mempertimbangkan aspek aplikasi yang berada di luar database.
  • Enkripsi
  • Digital Signature
Entity-Relationship (E-R) :
  • Model data Entity-Relationship (E-R) terdiri dari sekumpulan obyek-obyek, yang disebut dengan entitas dan hubungan yang terjadi diantara obyek-obyek tersebut.
  • Model data E-R terbagi menjadi tiga konsep dasar, yaitu : himpunan entitas, himpunan relationship, dan atribut.
Entitas (Entity) dan Himpunan Entitas (Entity Set) :
  • Suatu entitas merupakan suatu obyek dasar atau individu yang mewakili sesuatu yang nyata eksistensinya dan dapat dibedakan dari obyek-obyek yang lain.
  • Suatu entitas mempunyai sekumpulan sifat, dan nilai dari beberapa sifat tersebut adalah unik yang dapat mengidentifikasi entitas tersebut.
Entitas :
  • Sebagai contoh : setiap mahasiswa pada suatu perguruan tinggi merupakan suatu entitas, dan NIM secara unik dapat menjadi identitas seorang mahasiswa.
Himpunan Entitas :
  • Sekumpulan entitas yang mempunyai tipe yang sama (sejenis) dan berada dalam lingkup yang sama membentuk suatu himpunan entitas
  • Sebagai contoh, sekumpulan orang yang menjadi mahasiswa pada suatu perguruan tinggi, dapat didefinisikan sebagai himpunan entitas mahasiswa. Sehingga dapat dikatakan bahwa entitas menunjuk pada individu suatu objek, sedangkan himpunan entitas menunjuk pada rumpun dari individu tersebut.
  • Suatu entitas memiliki atribut. Atribut merupakan sifat-sifat atau properti yang dimiliki oleh entitas. Atribut inilah yang membedakan antara entitas yang satu dengan entitas yang lain.
  • Sebagai contoh, entitas mahasiswa mempunyai atribut NIM, nama_mhs, alamat_mhs, tgl_lahir









Atribut dalam E-R :
  • Dikarakterisasikan dalam beberapa tipe :
-Atribut sederhana dan komposit
-Atribut bernilai tunggal dan banyak
-Atribut null
-Atribut turunan
Atribut Sederhana dan Komposit :
  • Atribut sederhana yaitu atribut yang tidak diuraikan menjadi sub atribut, atau tidak dapat diuraikan menjadi atribut yang lain.
  • Atribut komposit adalah atribut yang dapat diuraikan menjadi beberapa sub atribut.
  • Pada contoh di atas, nama_mhs merupakan atribut sederhana, sedangkan alamat_mhs merupakan atribut komposit karena dapat diuraikan menjadi beberapa sub atribut, yaitu alamat, nama_kota, kodepos.
Atribut bernilai tunggal dan banyak :
  • Atribut bernilai tunggal ditujukan pada atribut yang mempunyai paling banyak satu nilai untuk setiap baris data.
Contoh data mahasiswa di atas, semua atribut merupakan atribut bernilai tunggal.
  • Atribut bernilai banyak adalah atribut yang dapat berisi lebih dari satu nilai, tetapi mempunyai jenis yang sama.
Contoh atribut bernilai banyak adalah jika kita menambahkan atribut hobi pada data mahasiswa. Seorang mahasiswa dapat memiliki satu hobi atau lebih dari satu hobi, bahkan dapat juga tidak mempunyai hobi.
Atribut Null :
  • Nilai null digunakan ketika suatu entitas tidak mempunyai suatu nilai untuk suatu atribut. Null juga menandakan bahwa suatu nilai atribut tidak ada atau tidak diketahui.
  • Sebagai contoh, jika mahasiswa tidak mempunyai hobi, maka pada atribut hobi tidak ada nilainya.
Atribut Turunan :
  • Atribut turunan adalah atribut yang nilainya diperoleh dari pengolahan atau dapat diturunkan atribut atau tabel lain yang berhubungan.
  • Sebagai contoh adalah penambahan atribut angkatan pada tabel data mahasiswa. Nilai pada atribut angkatan dapat diketahui dari NIM mahasiswa.
Relasi dan Himpunan Relasi :
  • Relasi menunjukkan adanya hubungan di antara sejumlah entitas yang berasal dari sejumlah himpunan entitas yang berbeda.
  • Misalnya, seorang mahasiswa dengan NIM = ‘0700001’ dan nama_mhs = ‘Pascal’ (yang ada di himpunan entitas mahasiswa) mempunyai relasi dengan entitas mata kuliah dengan kode_mtkul = ‘CS3004’ dan nama_mtkul = ‘Analisa Algoritma’. Relasi dari kedua entitas tersebut mengandung arti bahwa mahasiswa tersebut sedang mengambil mata kuliah Analisa Algoritma.










Kardinalitas Relasi :
  • Kardinalitas merupakan jumlah maksimum entitas, dimana entitas tersebut dapat berelasi dengan entitas pada himpunan entitas yang lain.
Tipe – tipe Kardinalitas Relasi :
  • Satu – satu (One to One)
  • Satu – Banyak (One to Many)
  • Banyak – Satu (Many to One)
  • Banyak – Banyak (Many to Many)
Satu – satu (One to One) :
  • Suatu entitas di dalam himpunan entitas A dihubungkan dengan paling banyak satu entitas di dalam hinpunan entitas B, dan entitas di dalam himpunan entitas B dihubungkan dengan paling banyak satu entitas dalam himpunan entitas A.
Satu – satu (One to One) :











Satu – Banyak (One to Many) :
  • Suatu entitas di dalam himpunan entitas A dihubungkan dengan lebih dari satu entitas di dalam himpunan entitas B, dan entitas di dalam himpunan entitas B hanya dapat dihubungkan dengan paling banyak satu entitas dalam himpunan entitas A.
Satu – Banyak (One to Many) :











Banyak – Satu (Many to One) :
  • Suatu entitas di dalam himpunan entitas A dihubungkan dengan paling banyak satu entitas di dalam himpunan entitas B, dan entitas di dalam himpunan entitas B dapat dihubungkan dengan lebih dari satu entitas dalam himpunan entitas A.
Banyak – Satu (Many to One) :











Banyak-banyak (Many to Many) :
  • Suatu entitas di dalam himpunan entitas A dapat dihubungkan dengan lebih dari satu entitas di dalam himpunan entitas B, dan entitas di dalam himpunan entitas B dapat dihubungkan dengan lebih dari satu entitas dalam himpunan entitas A.











Kunci (Key) :
  • Kunci atau key merupakan satu atau gabungan dari beberapa atribut yang dapat membedakan semua baris data dengan unik.
  • Jika suatu atribut menjadi kunci, maka tidak boleh ada dua atau lebih baris data dengan nilai yang sama.
Macamnya :
  1. Super Key :
    Superkey, merupakan suatu himpunan yang terdiri dari satu atau lebih atribut yang dapat membedakan setiap baris data dengan unik dalam sebuah tabel.Sebagai contoh (NIM, nama_mhs, alamat_mhs, tgl_lahir), (NIM, nama_mhs, alamat_mhs), (NIM, nama_mhs), (nama_mhs), (NIM).
  2. Candidate Key :
    Candidate-key, merupakan himpunan atribut minimal yang dapat membedakan setiap baris data dengan unik dalam sebuah tabel.
    Sebagai contoh adalah (NIM), (nama_mhs).
  3. Primary Key :
    Primary key, merupakan kunci yang paling unik, lebih ringkas, lebih sering dijadikan acuan.
    Primary key dapat dipilih dari salah satu dari candidate key.
    Contoh primary key adalah (NIM).
Diagram Entity-Relationship (Diagram E-R) :
  • Suatu database, dapat digambarkan secara grafik dengan suatu diagram E-R.
Notasi E-R :
  • Persegi panjang, menggambarkan himpunan entitas.
  • Elips, menggambarkan atribut-atribut (atribut yang berfungsi sebagai kunci digarisbawahi).
  • Belah ketupat, menggambarkan himpunan relationship.
  • Garis, menggambarkan hubungan atribut ke entitas dan himpunan entitas ke himpunan relationship.
  • Kardinalitas relasi dapat digambarkan dengan banyaknya garis cabang atau dengan pemakaian angka, 1 untuk relasi satu, n untuk relasi banyak.










Tahapan Pembuatan Diagram E-R :
  • Mengidentifikasi dan menetapkan seluruh himpunan entitas yang akan terlibat
  • Menentukan atribut – atribut key dari masing-masing himpunan entitas
  • Mengidentifikasi dan menetapkan seluruh himpunan relasi diantara himpunan entitas yang ada beserta foreign key
  • Menentukan derajat kardinalitas untuk setiap himpunan relasi
  • Melengkapi himpunan entitas dan himpunan relasi dengan atribut deskriftif (non key)
Diagram E-R :
  • Contoh, relasi antara himpunan entitas Mahasiswa dengan himpunan Mata Kuliah. Himpunan relasinya disebut dengan “Belajar”.
  • Pada relasi ini, seorang mahasiwa bisa mengambil lebih dari satu mata kuliah. Setiap mata kuliah dapat diambil lebih dari satu mahasiswa.










Himpunan Entitas Lemah (Weak Entity Set) :
  • Himpunan entitas yang tidak memiliki atribut yang dapat berfungsi sebagai primary key.
  • Himpunan entitas lemah berisi entitas-entitas yang kemunculannya tergantung pada keberadaannya dalam sebuah relasi terhadap entitas lain (entitas kuat).
  • Sebagai contoh, pada tabel data Mahasiswa, dapat dilengkapi dengan entitas baru, yaitu hobi.







  • Data hobi dapat dikategorikan sebagai himpunan entitas lemah (digambarkan dengan kotak ganda), karena keberadaannya bergantung pada adanya relasi dengan entitas yang ada pada himpunan entitas mahasiswa
Spesialisasi dan Generalisasi :
  • Suatu himpunan entitas mungkin mempunyai sub kelompok entitas yang berbeda dari entitas yang lain pada himpunan entitas tersebut.
  • Suatu sub himpunan yang berada dalam himpunan entitas mungkin mempunyai atribut yang tidak dimiliki oleh semua entitas dalam himpunan entitas tersebut.
  • Himpunan entitas dosen dapat dibagi menjadi dua, yaitu dosen tetap dan dosen tidak tetap. Himpunan entitas dosen, bisa memiliki atribut nip, golongan, pangkat, tgl_masuk.
  • Sedangkan untuk dosen tidak tetap, atribut-atribut tersebut tidak diperlukan.
  • Adanya perbedaan tersebut menyebabkan entitas dosen tidak mungkin disatukan dalam sebuah himpunan entitas.
  • Dari suatu himpunan entitas, dapat dilakukan pengelompokan yang dapat membentuk suatu himpunan entitas baru atau proses top down disebut dengan proses spesialisasi












  • Kebalikan dari spesialisasi adalah generalisasi, yaitu proses bottom up.












Agregasi :
  • Satu keterbatasan dari model E-R adalah tidak mungkin untuk mengekspresikan suatu himpunan relasi yang secara langsung menghubungkan sebuah himpunan entitas dengan sebuah himpunan relasi. Untuk mengatasi hal tersebut, digunakan suatu notasi khusus yang dinamakan dengan agregasi.
  • Contoh, relasi antara himpunan entitas mahasiswa dengan himpunan entitas mata kuliah. Terdapat beberapa mata kuliah yang mengandung kegiatan praktikum. Himpunan relasi “Kegiatan” dalam diagram ER berikut ini menunjukkan entitas mahasiswa yang mengikuti kegiatan praktikum, karena sedang mengambil mata kuliah yang ada praktikumnya.


















Tuesday, October 27, 2009

Sistem Basis Data [Resume Pertemuan Pertama]

Basis Data

Basis data didefinisikan sebagai sekumpulan data yang saling berhubungan, disimpan dengan minimum redundansi ( kembar data ) untuk melayani banyak aplikasi secara optimal. Sekumpulan data pada umumnya mendeskripsikan aktivitas suatu organisasi yang saling berhubungan. Sebagai contoh basis data suatu universitas berisi tentang :
  • Entitas : mahasiswa, mata kuliah, fakultas, ruang kuliah, dosen, dsb
  • Hubungan antar entitas : registrasi mahasiswa untuk menganmbil mata kuliah, pemakaian ruang kuliah, jadwal kuliah, dsb
Sistem Managemen Basis Data ( SMBD )

Sistem Manajemen Basis Data (SMBD) merupakan suatu perangkat lunak yang terdiri atas sekumpulan program untuk mengelola dan memelihara data di dalam suatu struktur yang digunakan oleh banyak aplikasi, bebas (independence) terhadap media penyimpanan dan metoda akses. Contoh aplikasi yang sering kita dengar Oracle dan MySQL Server

Manfaat Sistem Manajemen Basis Data (SMBD)
  • Kemandirian data
Program aplikasi tidak diekspos pada detail representasi dan penyimpanannya, SMDB hanya menyediakan sebuah pandangan abstrak tentang data yang menyembunyikan detail data.
  • Akses Data efisien
SMBD memanfaatkan teknologi untuk menyimpan dan mengambil data secara efisien, dengan program Structured Query Language ( SQL ) yang sudah include dalam aplikasi basis data.
  • Integritas dan keamanan data
Tersedianya batasan integritas, batasan global di dalam basis data yang merupakan batasan untuk segala input yang ada dalam basis data. Tersedianya keamanan data, kontrol akses yang dapat menentukan apakah data dapat dilihat oleh kelas pengguna yang berbeda.
  • Administrasi data
Beberapa pengguna berbagi data, pemusatan administrasi data dapat memberikan perbaikan yang signifikan
  • Akses Konkruen dan Crash Recovery
SMBD menjadwalkan akses konkuren pada data sehingga pengguna dapat memandang data sebagai data yang sedang diakses oleh hanya satu pengguna pada satu waktu.
  • Waktu Pengembangan aplikasi terkurangi
SMBD mendukung fungsi-fungsi penting dari aplikasi untuk mengakses data dalam SMBD.
Sistem Basis Data

Sistem basis data dapat di definisikan sebagai suatu basis data yang berbasis komputer dibuat dan dipelihara oleh sekumpulan program aplikasi yang ditulis secara khusus untuk menyelesaikan masalah tertentu, atau dengan menggunakan suatu Sistem Manajemen Basis Data (Database Management System).




Komponen - komponen dalam Sistem Basis Data

  • Data
Data untuk suatu basis data mempunyai karakteristik terintegrasi dan pemakaian bersama. Pada aplikasi yang relatip besar data cenderung digunakan oleh sistem multi-user, sedangkan pada aplikasi relatip kecil data cenderung digunakan oleh sistem single-user.

Sistem multi-user ialah suatu sistem yang memungkinkan banyak pengguna (user) dapat mengakses basis data secara berbarengan (concurrent). Sistem single-user ialah suatu sistem dengan paling banyak satu pengguna dapat mengakses basis data pada sembarang waktu yang diberikan.
  • Hardware
Terdiri atas peralatan utama berupa penyimpanan bantu dan peralatan Input/Output (I/O), processor dan memory utama, serta peralatan pendukung (misalnya untuk peralatan jaringan atau peralatan komunikasi yang lain).
  • Software
Perangkat lunak untuk sistem basis data disebut SMBD ( Oracle, MySQL Server, dsb ), yang merupakan lapisan diantara basis data secara phisik dengan pemakai. Fungsi utama dari SMBD ialah untuk menjadi perisai bagi pengguna dari rincian perangkat keras, sehingga pengguna dengan pengetahuan minimum mengenai perangkat keras dapat menggunakan sistem basis data dengan mudah.
  • Pengguna ( user )
Pemrogram aplikasi, yaitu yang bertanggung jawab menulis program aplikasi yang menggunakan basis data atau bisa dikatakan sebagai programmer basis data.

Pengguna akhir, yaitu pengguna yang berinteraksi dengan sistem basis data secara on-line melalui workstation atau terminal. Antarmuka banyak digunakan untuk mempermudah interaksi. Sedang untuk pengguna tertentu menggunakan fasilitas update data secara interaktif dengan bahasa query ( SQL ), karena lebih luwes dalam memberikan fungsi yang tidak disediakan oleh antarmuka. Bahasa query ialah bahasa standar yang digunakan untuk mendefinisikan dan memanipulasi data di dalam basis data.

Administrator Basis Data (Database Administrator), yaitu seseorang yang menyusun strategi dan putusan kebijakan mengenai data, dan menyediakan kebutuhan dukungan teknik untuk mengimplementasikan putusan yang dipilih. Administrator basis data bertanggung jawab terhadap penggunaan kewenangan akses ke basis data, mengkoordinasikan dan memantau penggunaan basis data, dan untuk menyediakan sumber-sumber perangkat lunak dan perangkat keras sesuai kebutuhan. Dengan demikian administrator basis data bertanggung jawab untuk semua kontrol sistem pada tingkat teknik.

Model Data

Kumpulan tools yang secara konseptual untuk mendeskripsikan data, hubungan data, semantic data, dan konsistensi konstrain dan kumpulan konstruksi deskripsi data level tinggi yang menyembunyikan detail penyimpanan level rendah.

Jenis Model Data

  • Flat-file
Basis data flat-file terdiri dari satu atau lebih file yang dapat dibaca, yang secara normal berbentuk format file text. Informasi pada suatu file-file disimpan sebagai fields, dengan fields-nya memiliki panjang konstan atau panjang bervariasi yang dipisahkan beberapa karakter (delimeter).

Kelemahan Flat-file :
  • Flat-file tidak menggunakan struktur data yang dengan mudah dapat direlasikan
  • Sulit untuk mengatur data secara efisien dan menjamin akurasi
  • Lokasi fisik fields data dengan file harus diketahui
  • Program harus dikembangkan untuk mengatur data

  • Hirarki
Basis data Hirarki satu tingkat di atas basis data flat-file, dalam hal ini kaitanya dengan kemampuan untuk menemukan dan memelihara relasi antar kelompok data.
Arsitektur basis data hirarki berdasarkan konsep hubungan parent/child.
Pada basis data hirarki, suatu root table atau parent table berada pada struktur yang paling atas, terhubung ke child table yang dihubungkan dengan data.



Kelebihan basis data hirarki dibandingkan flat-file:
  • Data dapat dengan cepat dilakukan retrieve
  • Integritas data mudah dilakukan pengaturan
Kelemahan basis data hirarki dibandingkan flat-file:
  • Pengguna harus sangat familiar dengan struktur basis data
  • Terjadi redudansi data

  • Jaringan
Model basis data jaringan merupakan perbaikan dari model basis data hirarki, yaitu dengan menambahkan kemampuan root table untuk melakukan share relationships dengan child tables
Relasi antar tabel dalam basis data jaringan disebut set structure, yaitu satu tabel sebagai owner dan tabel yang lainnya sebagai member, dalam hal ini konsep dasarnya adalah sama dengan relasi parent/child yang diberikan pada sebelumnya. Set structure dapat direpresentasikan sebagai relasi one-to-many antar tabel.



Kelebihan basis data jaringan:
  • Data lebih cepat diakses
  • User dapat mengakses data dimulai dari beberapa tabel
  • Mudah untuk memodelkan basis data yang komplek
  • Mudah untuk membentuk query yang komplek dalam melakukan retrieve data.
Kelemahan basis data jaringan:
  • Struktur basis datanya tidak mudah untuk dilakukan modifikasi
  • Perubahan struktur basis data yang telah didefinisikan akan mempengaruhi program aplikasi yang mengakses basis data
  • User harus memahami struktur basis data

  • Relasional
Model basis data relasional merupakan model basis data yang paling populer banyak digunakan sekarang ini. Model basis data relasional memanfaatkan "key" sebagai penghubung antar 1 tabel dengan tabel yang lain. Dalam sebuah tabel di dalam basis data hanya mempunyai 1 primary key, peimary key merupakan kunci utama atau field dalam tabel yang dijadikan sebagi key/kunci yang berfungsi untuk menghubungkan 1 tabel dengan yang lainnya. Bila terjadi relasi tabel, primary key dari tabel tamu akan menjadi foreign key ke dalam tabel yang direalsikan. Bila dalam 1 tabel terdiri dair beberapa primary key maka tabel tersebut bisa disebut dengan composit key table, yaitu gabungan beberapa primary key ke dalam 1 tabel.



Keuntungan Model Basis Data Relasional :
  • Tabel terdiri baris dan kolom
baris adalah merepresentasikan tuple atau record pada tabel, dan kolom merepresentaksikan fields pada tabel
  • Tabel dapat berhubungan dengan tabel yang lain dengan menggunakan kunci
  • Data sangat cepat diakses
  • Struktur basis data mudah dilakukan perubahan
  • Data direpresentasikan secara logik, user tidak membutuhkan bagaimana data disimpan.
  • Mudah untuk membentuk query yang komplek dalam melakukan retrieve data
  • Mudah untuk mengimplementasikan integritas data
  • Data lebih akurat
  • Mudah untuk membangun dan memodifikasi program aplikasi
  • Telah dikembangkan Structure Query Language (SQL).
Kelemahan Model Basis Data Relasional :
  • Kelompok informasi / tables yang berbeda harus dilakukan joined untuk melakukan retrieve data
  • User harus familiar dengan relasi antar tabel
  • User harus belajar Structured Query Language (SQL).

  • Berorientasi Objek (Object Oriented (OO))
Model basis data berorientasi objek adalah suatu model basis data, dimana data didefinisikan, disimpan, dan diakses menggunakan pemrograman berorientasi objek. Basis data berorientasi objek didefinisikan dengan menggunakan bahasa pemrograman berorientasi objek, yaitu bahasa Java. Aplikasi End user juga di bangun dengan menggunakan bahasa berorientasi objek. Object database management system digunakan untuk membuat link antara basis data dan aplikasi.





Kelebihan Basis Data Berorientasi Objek (Object Oriented (OO)) :
  • Programmer hanya dibutuhkan memahami konsep berorientasi objek untuk mengkombinasikan konsep berorientasi objek dengan storage basis data relasional
  • Objek dapat dilakukan sifat pewarisan dari objek yang lain
  • Secara teoritis mudah untuk mengatur objek
  • Model data berorientasi objek lebih kompatibel dengan tools pemrograman berorientasi objek.
Kelemahan Basis Data Berorientasi Objek (Object Oriented (OO)) :
  • User harus memahami konsep berorientasi objek, karena basis data berorientasi objek tidak dapat bekerja dengan metoda pemrograman tradisiona.

  • Relasional Objek (Object Relational (OR))
Mengkombinasikan konsep model basis data relasional dengan style pemrograman berorientasi objek.




Kelebihan basis data relasional objek:
  • Tipe bentukan dapat dibuat
Kelemahan basis data relasional objek:
  • User harus memahami antara konsep berorientasi objek dengan relasional
  • Beberapa vendor mengimplementasikan konsep relasional objek tidak mendukung sifat pewarisan objek.

Referensi :

  • Raghu Ramakrishnan & Johannes Gehrke, 2003,”Database Managemen System”, Third Edition, Mc Graw Hill.
  • Elmasri & Navathe,2007, “Fundamentals of Database Systems”, Fifth Edition, Pearson International Edition.