-->

Basis data relasional

Written By Anisa film on Sabtu, 04 Mei 2013 | 5/04/2013 05:44:00 PM


DASAR-DASAR SISTEM BASIS DATA
1. Data, Basis Data dan Sistem Manajemen Basis Data
2. Entity-Relationship Diagram
3. Basis Data Relational

Model basis data relasional

Model basis data relasional diperkenalkan pertama kali oleh E.F. Codd pada tahun 1970. Model data ini didasarkan pada struktur matematis yang mudah dan alami, yaitu relation (tabel). Operasi-operasi manipulasi data semuanya berakar pada logika matematika. Hal ini menjadikan ekspresi-ekspresi pada tabel dapat dianalisis dan dioptimasi (Lewis et al., 2002).

Pembentuk utama dalam model data relasional adalah relation (tabel). Relation terdiri dari dua hal penting, yaitu: schema dan instance. Relation instance tidak lebih dari sebuah tabel dua dimensi dengan baris dan kolom. Baris (row) biasa disebut sebagai tuple, yang memiliki arti sama dengan record dalam suatu file. Tetapi berbeda dengan file record, semua tuple memiliki jumlah kolom yang sama dan tidak ada tuple dalam relation instance yang sama. Kolom dalam relation instance juga dikenal sebagai attribute atau column (Ramakrishnan and Gehrke, 2000; Lewis et al., 2002). Gambar 10.23. menunjukkan bagaimana hubungan tabel/file/relation, row/record/tuple, dan column/field/attribute. Gambar ini juga menunjukkan susunan dari hubungan tersebut.


Relation schema terdiri dari: nama dari relation, nama dari attribute yang ada pada suatu relation beserta nama domainnya, dan integrity constrains. Nama dari relation haruslah unik dalam suatu basis data, atau tidak boleh ada nama relation yang sama. Nama attribute adalah nama kolom dari relation dan tidak ada nama attribute yang sama pada suatu relation. Nama domain dari suatu attribute berhubungan dengan tipe data yang digunakan oleh attribute tersebut. Integrity constraints adalah batasan pada relational instances pada suatu schema (Ramakrishnan and Gehrke, 2000; Lewis et al., 2002)

Struktur basis data relasional

Seperti telah dijelaskan pada posting sebelumnya, yaitu sebuah tabel terdiri dari baris dan kolom.
  • Row/baris/tuple
    Row/baris/tuple adalah sekumpulan atribut yang saling berhubungan dalam satu baris (lihat gambar 10.23). Row ini akan selalu berulang dengan struktur yang sama, namun dengan isi data yang berbeda. Sebagai contoh, pada gambar 10.23, row pertama memiliki struktur yang sama dengan row yang ke 2 dan ke 3. Namun data pada masing-masing row berbeda. Kita dapat mengidentifikasi untuk pembeli dengan id_pembeli = 1, pasti memiliki nama = Cristiano Ronaldo dan untuk id_pembeli = 2, pasti memiliki nama = Ryan Giggs, demikian seterusnya.

  • Field/kolom/attributes
    Field/kolom/attributes menunjukkan struktur dari data dari baris-baris yang berulang. Pada gambar 10.23 terdapat 4 kolom, yaitu: id_pembeli, nama, alamat, dan telepon. Data pada kolom id_pembeli misalnya, akan memiliki struktur yang sama, yaitu dalam bentuk angka dan merupakan urutan id pembeli. Demikian juga pada kolom nama yang hanya berisi nama pembeli saja, tidak bercampur dengan data lain.
Sebuah kolom harus memiliki nama kolom dan tipe data untuk data yang berada dalam kolom tersebut (gambar 10.24). Selain itu, kadang-kadang juga ada pembatas (constraint) dan domain untuk data yang termasuk dalam kolom tersebut. Tipe data akan sangat bergantung pada atribut yang digunakan dan operasi-operasi yang akan dilakukan pada basis data ini. Domain data memiliki banyak kesamaaan pengertian dengan fungsi tipe data yang digunakan. Namun, tipe data lebih merujuk pada kemampuan penyimpanan data yang mungkin bagi suatu atribut secara fisik, tanpa melihat layak tidaknya data tersebut bila dilihat dari pemakaian di dunia nyata. Sementara, domain data lebih ditekankan pada batas-batas nilai yang diperbolehkan bagi suatu atribut, bila dilihat dari kenyataan pemakaiannya.


Pada gambar 10.24 terlihat nama-nama kolom pada sebuah tabel lengkap dengan tipe data dan constrainnya. Kolom ISBN misalnya bertipe data integer, artinya kolom ini hanya boleh diisi dengan bilangan integer. Selain itu kolom ini memiliki constrain no null, yang berarti ketika mengisikan data, kolom ini harus selalu terisi tidak boleh dikosongkan. Pada kolom Pages, tipe datanya adalah date, artinya hanya boleh berisi data berbentuk tanggal. Kolom Pages tidak memiliki constrain null, artinya kolom ini boleh diisi atau boleh tidak diisi.

Jenis-jenis tipe data tergantung pada dbms yang digunakan. Sebagai contoh, Mysql memberikan jenis-jenis tipe data yang lebih luas dari pada microsoft access. Pada mysql misalnya, kita akan menjumpai tipe data set, enum yang tidak dijumpai dalam microsoft access. Pemilihan tipe data yang tepat sangat penting karena mempengaruhi konsistensi data dan kinerja basis data.

Contoh domain adalah, apabila kita berhadapan dengan atribut/kolom tentang kelas pada sekolah dasar (sd). Kolom kelas ini hanya boleh diisi data angka 1 sampai dengan 6, karena tidak ada kelas 7 atau 4.5 di sekolah dasar. Artinya domain kolom kelas adalah bilangan integer (bulat dan tidak ada pecahan) antara 1 sampai dengan 6 saja. Contoh lainnya adalah kolom nilai ujian, kolom ini domainnya adalah bilangan asli (real dan boleh pecahan) antara 0 sampai dengan 100.

Ada beberapa tipe atribut, yaitu:
  • Atribut sederhana (simple attribute), yaitu atribut atomic yang tidak dapat dipecah lagi.


  • Atribut komposit (composit attribute), yaitu atribut yang masih dapat dipecah lagi menjadi sub-sub atribut yang masing-masing memiliki makna.


  • Atribut bernilai tunggal (single-valued attribute), yaitu atribut yang memiliki paling banyak satu nilai untuk setiap baris data.
  • Atribut bernilai banyak (multi-valued attribute), yaitu atribut yang dapat berisi lebih dari satu nilai tetapi dengan jenis yang sama.


  • Atribut turunan (derived attribute), yaitu atribut yang nilai-nilainya diperoleh dari hasil pengolahan atau dapat diturunkan dari atribut atau tabel lain yang berhubungan.

Relasi antar tabel

Keistimewaan utama basis data relasional dibandingkan model basis data lainnya adalah kemudahan dalam membangun hubungan antar tabel dalam bentuk yang masuk akal atau dapat dimengerti. Relasi antar tabel dapat kita turunkan langsung ataupun tidak langsung dari ER-Diagram yang telah dibahas sebelumnya. Entitas yang ada pada ER-Diagram biasanya merupakan kandidat dari suatu tabel pada basis data relasional. Relasi antar tabel biasanya dapat di identifikasi dari relationship antar entitas pada ER-Diagram.

Untuk memperjelas bagaimana basis data relasional menangani hubungan antar tabel, kita akan menggunakan tabel-tabel berikut ini.

Tabel pertama adalah pengarang. Tabel ini terdiri dari 3 kolom, yaitu: id_pengarang, pengarang, dan tahun_lahir (gambar 10.28). Pada tabel ini id_pengarang merupakan primary key.


Tabel kedua adalah Penerbit. Tabel ini mempunyai 6 kolom, yaitu: id_penerbit, nama, nama_perusahaan, alamat, kota, dan telepon (gambar 10.29). Primary key pada tabel ini adalah id_penerbit.


Tabel ketiga adalah Buku. Tabel ini mempunyai 6 kolom, yaitu: judul, tahun_terbit, ISBN, id_penerbit, deskripsi, dan kelompok (gambar 10.30). Primary key pada tabel ini adalah ISBN. Ada yang sedikit aneh pada tabel ini, yaitu kolom id_penerbit yang merupakan salah satu kolom pada tabel Penerbit, dimasukkan dalam tabel ini. Sebenarnya ini bukan keanehan atau kesalahan, tetapi memang beginilah salah satu cara basis data relasional menangani hubungan antar tabel.


Dalam dunia nyata, kita akan menjumpai bahwa satu penerbit tidak hanya menghasilkan satu judul buku saja, tetapi ratusan bahkan mungkin jutaan judul buku. Sehingga secara formal hubungan antara penerbit dengan buku dapat dinyatakan sebagai hubungan dengan kardinalitas one-to-many. Jika digambarkan dalam bentuk ER-Diagram, akan tampak seperti gambar 10.31. Satu penerbit dapat menerbitkan banyak judul buku dan satu judul buku hanya diterbitkan oleh satu penerbit. Untuk lebih memperjelas perhatikan gambar 10.31. Penerbit dengan id_penerbit = 13 (McGraw Hill), menerbitkan 6 buah buku. Sebaliknya buku dengan ISBN = 0-0702063-1-7 (guide to oracle) hanya diterbitkan oleh penerbit dengan id_penerbit = 13 (McGraw Hill). Sehingga, penempatan kolom id_penerbit pada tabel buku dimaksudkan untuk merepresentasikan hubungan Penerbit dengan buku. Kolom id_penerbit pada tabel buku biasa disebut sebagai foreign key.



Pada tabel-tabel yang telah dibuat di atas, kita belum melihat tabel yang menunjukkan seorang pengarang tertentu mengarang buku apa. Untuk membuat tabel yang berisi pengarang dan buku karangannya, kita dapat menggunakan hubungan antara tabel pengarang dengan tabel buku. Namun, sebelum itu kita harus melihat bagaimana hubungan antara pengarang dengan buku di dunia nyata. Seorang pengarang mungkin hanya mengarang satu judul buku, tetapi mungkin juga lebih. Sedangkan satu buku, mungkin ditulis hanya oleh satu orang pengarang, tetapi mungkin juga ditulis oleh dua, tiga atau lebih pengarang. Sehingga, kita bisa mengatakan kardinalitas hubungan pengarang dengan buku adalah many-to-many. Kita dapat menggambarkan ER-Diagram untuk kasus ini seperti pada gambar 10.33.


Pada kasus dengan kardinalitas many-to-many, kita tidak dapat langsung menyisipkan satu foreign key pada tabel lain. Kita harus membuat tabel baru agar kardinalitas antar tabel yang terlibat dapat diubah menjadi one-to-many. Tabel Pengarang_Buku merupakan tabel yang dibentuk untuk menangani hubungan tabel buku dengan tabel pengarang. Tabel ini hanya berisi dua atribut (kolom), yaitu: ISBN yang berasal dari tabel buku dan id_pengarang yang berasal dari tabel pengarang. Pada gambar 10.34, terlihat pada tabel Pengarang_Buku ada beberapa buku yang dikarang lebih dari satu pengarang.


0 komentar :

Posting Komentar

Terima kasih, atas saran atau usulan anda.

Translate

Menu Blog Ini

Buka Semua | Tutup Semua

 
SUPPORT: anisa indra - dmca
Copyright © 2011-2018. Citra teknologi - All Rights Reserved
Template Created by: Creating Website
Published by: Mas Template - Proudly powered by: Blogger