Senin, 12 November 2012

BAB I
1.1.Latar belakang
Pada masa sekarang ini peran basis data sangat menonjol. Basis Data menjadi perangkat andalan. Kehadirannya sangat diperlukan oleh berbagai institusi dan perusahaan. Hal ini terjadi karena Basis Data tidak hanya mempercepat perolehan informasi. Basis data diartikan sebagai sistem berkas terpadu yang dirancang terutama untuk meminimalkan pengulangan data. Pengguna Sistem Basis Data bisa melakukan berbagai operasi terhadap berkas yang ada di dalam sistem tersebut. Operasi itu antara lain mengosongkan berkas, menyisipkan data, mengambil data, menghapus data dan dapat juga menyajikan informasi yang diambil dari sejumlah berkas yang ada dalam sistem tersebut. Terkadang masih ada tiap institusi atau perusahaan yang masih menggunakan sistem berkas manual.
Berdasarkan uraian di atas disusunlah tugas akhir saya dengan mengambil judul : PERANCANGAN BASIS DATA “”. Dalam perancangan sistem aplikasi ini, penulis menggunakan aplikasi Visual Basic 6.0 sebagai bahasa pemrogramannya dan Microsoft Access sebagai databasenya.
1.2.Rumusan masalah
berdasarkan latar belakang di atas penulis dapat merumuskan beberapa masalah ,di antaranya adalah sebagai berikut:
Apa yang di maksud dengan perancangan basis data
1.3.Tujuan:
Adapun tujuan dari penulisa dari makalah ini adalah sebagai berikut:
1.         memenuhi tugas yang di bebankan oleh dosen pengasuh kepada penulis.
2.         untuk menambah wawasan dan pengatahuan pada pembaca pada umumnya dan penulis khususnya tentang perancangan basis data.
3.         sebagai latihan penulis  dala pembuatan karya tulis di masa yang akan datang.
BAB I1
Integritas Entitas
2.1.Pengertian Integritas Entitas
Integritas entitas adalah sebuah konsep konsistensi tindakan, nilai-nilai, metode, langkah-langkah, prinsip, harapan, dan hasil. Dalam etika, integritas dianggap sebagai kejujuran dan kebenaran yang merupakan kata kerja atau akurasi dari tindakan seseorang. Integritas dapat dianggap sebagai kebalikan dari kemunafikan,  dalam yang menganggap konsistensi internal sebagai suatu kebajikan, dan menyarankan bahwa pihak-pihak yang memegang nilai-nilai yang tampaknya bertentangan harus account untuk perbedaan atau mengubah keyakinan mereka.
Kata “integritas” berasal dari kata sifat Latin integer (utuh, lengkap) Dalam konteks ini, integritas adalah rasa batin “keutuhan” yang berasal dari kualitas seperti kejujuran dan konsistensi karakter.. Dengan demikian, seseorang dapat menghakimi bahwa orang lain “memiliki integritas” sejauh bahwa mereka bertindak sesuai dengan, nilai dan prinsip keyakinan mereka mengklaim memegang.
2.2.Integritas Data
Informasi yang disimpan pada basisdata hanya bagus jika DBMS membantu mencegah pemasukan informasi yang tidak benar. Konstrain integritas adalah syarat yang dispesifikasikan pada skema basisdata dan mebatasi data yang dapat disimpan dalam basisdata. Jika basisdata memenuhi semua konstrain integritas yang dispesifikasikan pada skema basisdata maka basis data adalah legal. DBMS memaksakan konstrain integritas sehingga hanya mengijinkan basisdata legal yang akan disimpan oleh DBMS. Konstrain integritas menjamin bahwa perubahan – perubahan yang dilakukan orang yang diotorisasi tidak menghasilkan pelanggarakan konsistensi data.
Integritas data mengacu ke konsistensi dan akurasi data yang disimpan dalam basisdata. Konstrain integritas dispesifikasikan dan dipaksakan pada waktu yang berbeda, yaitu:
  1. Ketika DBA mendefinisikan skema basisdata (lewat DDL), DBA menspesifikasikan konstrain integritas yang harus selalu dipenuhi basisdata.
  2. Ketika aplikasi basisdata dijalankan, DBMS melakukan Pemeriksaan untuk mencegah terjadinya pelanggaran dan mencegah perubahan – perubahan yang melanggar konstrain integritas. Pada beberapa situasi, DBMS tidak melarang suatu aksi yang dapat menimbulkan pelanggaran namun kemudian DBMS membuast tindakan – tindakan otomatis untuk memenuhi konstrain integritas. Dengan demikian dijamin perubahan – perubahan pada basisdata tidak menghasilkan baisdata yang melanggar konstrain integritas.
2.3.Jenis konstrain integritas
Integritas dapat dikelompokkan menjadi 2 (dua), yaitu integritas didalam relasi yaitu aturan integritas entitas dan aturan integritas domain dan integritas dengan luar relasi yaitu aturan integritas referensial.
Selain itu terdapat aturan integritas untuk memenuhi aturan – aturan yang berlaku di perusahaan yang disebut aturan integritas perusahaan atau aturan bisnis yang harus dipenuhi oleh basisdata. Dengan demikian, dapat diringkaskan integritas data di model relasional, meliputi:
  1. Aturan integritas domain.
  2. Aturan integritas entitas.
  3. Aturan integritas referensial.
  4. Aturan integritas perusahaan (didefiniskan pemakai).



BAB III
Itengritas Refensial
3.1.Pengertian Itengritas Refensial
Integritas referensial merupakan cara untuk menjaga agar Kunci Asing (Foreign Key) suatu tabel dan Kunci Primer (Primary Key) milik tabel yang direferensi oleh Kunci Asing selalu konsisten. Untuk memperjelas hal ini, perhatikan hubungan antara tabel BUKU, JENIS, PENERBIT, dan PENULIS. (Keempat tabel ini telah saya tunjukkan pada tutorial-tutorial sebelumnya).
Apabila kita melihat deskripsi dari tabel BUKU dengan perintah SQL Berikut :
DESCRIBE buku;
Tampak dengan jelas bahwa pada tabel BUKU terdapat 3 field (Kolom) yaitu, kd_jenis, kd_penulis, dan kd_penerbit yang sebenarnya ditujukan untuk mereferensi ke Kunci Primer milik tabel JENIS (kd_jenis), PENULIS (kd_penulis), PENERBIT (kd_penerbit). Agar hubungan antar Kunci Asing pada tabel BUKU dan Kunci Primer pada tabel JENIS, PENULIS, PENERBIT terjaga integritasnya, hubungan tersebut perlu menyertakan Integritas Referensial.
Dengan menggunakan Integritas Referensial akan ada jaminan bahwa nilai dalam suatu tabel yang merujuk ke tabel lain benar-benar nilai yang memang terdapat apda tabel yang dirujuk. Sebagai contoh, bila suatu nilai yang dimasukkanke dalam kd_jenis pada tabel BUKU tidak terdapat pada kd_jenis pada tabel JENIS, nilai tersebut akan ditolak.
Integritas Referensial antara tabel BUKU, JENIS, PENULIS, PENERBIT dapat dibentuk melalui perintah seperti berikut :
create table if not exists buku (
no_buku int(5) unsigned zerofill not null auto_increment,isbn char(15) not null,
kd_jenis char(4) not null,
judul varchar(50) not null,
kd_penulis char(5) not null,
kd_penerbit char(5) not null,
thn_terbit char(4) not null,
jml_buku int(5) not null,
rak_buku varchar(10) not null,
tgl_entry date not null,
foreign key (kd_jenis) references jenis(kd_jenis),
foreign key (kd_penulis) references penulis(kd_penulis),
foreign key (kd_penerbit) references penerbit(kd_penerbit),
primary key (no_buku)
);
Perhatikan bahwa kd_jenis, kd_penulis, kd_penerbit pada tabel BUKU berkedudukan sebagai kunci asing yang mereferensi ke kd_jenis yang terdapat pada tabel JENIS, kd_penulis yang terdapat pada tabel PENULIS, kd_penerbit yang terdapat pada PENERBIT, yang dinyatakan melalui:
foreign key (kd_jenis) references jenis(kd_jenis)
foreign key (kd_penulis) references penulis(kd_penulis)
foreign key (kd_penerbit) references penerbit(kd_penerbit)
Dengan cara seperti itu nilai yang diisikan pada kd_jenis, kd_penulis, kd_penerbit pada tabel BUKU harus berupa nilai yang terdapat pada kd_jenis, kd_penulis, kd_penerbit pada tabel JENIS, PENULIS, dan PENERBIT.
SQL juga menyediakan fitur yang dapat diatur pemakai sekiranya suatu baris pada tabel induk direferensi oleh suatu kunci asing dihapus atau diubah. Tindakan-tindakan yang dapat diatur oleh pemakai ini biasa disebut tindakan referensial. Penentuak tindakan ini berbentuk :
[ON UPDATE {RESTRICT | CASCADE | SET NULL}]
[ON DELETE {RESTRICT | CASCADE | SET NULL}]
Yang terdapat dalam tanda [] berarti opsional, sedangkan yang terletak dalam tanda {} berarti harus dipilih salah satu di antara pilihan-pilihan yang dipisahkan oleh tanda |.
Penjelasan :
1.       UPDATE : menyatakan tindakan kalau pada tabel induk terjadi perubahan nilai.
  1. DELETE : menyatakan tindakan kalau pada tabel induk terjadi penghapusan baris.
Adapun tindakan yang dapat didefinisikan pada tabel ON UPDATE maupun ON DELETE berserta penjelasannya sebagai berikut :
1.       RESTRICT : menyatakan bahwa pengubahan atau penghapusan ditolak.
  1. CASCADE : jika nilai kunci primer pada tabel induk berubah (UPDATE) maka kunci asing pada tabel yang mereferensi akan disesuaikan dengan nilai pada kunci primer tabel induk, sedangkan apabila terjadi proses DELETE semua kunci asing yang cocok dengan kunci primer pada tabel induk milik record yang dihapus akan ikut dihapus.
  2. SET NULL : Menyatakan kunci asing akan diisi dengan NULL kalau kunci primer pada tabel induk yang nilainya sama dengan nilai pada kunci asing tersebut diubah atau dihapus.
Contoh berikut menunjukkan penggunaan tindakan referensial :
create table if not exists buku (
no_buku int(5) unsigned zerofill not null auto_increment,isbn char(15) not null,
kd_jenis char(4) not null,
judul varchar(50) not null,
kd_penulis char(5) not null,
kd_penerbit char(5) not null,
thn_terbit char(4) not null,
jml_buku int(5) not null,
rak_buku varchar(10) not null,
tgl_entry date not null,
foreign key (kd_jenis) references jenis(kd_jenis) on update cascade on delete restrict,
foreign key (kd_penulis) references penulis(kd_penulis) on update cascade on delete restrict,
foreign key (kd_penerbit) references penerbit(kd_penerbit) on update cascade on delete restrict,
primary key (no_buku)
Perintah diatas menyatakan bahwa :
1.       Kalau nilai pada kunci primer dalam tabel JENIS, PENULIS, dan PENERBIT diubah, nilai pada kd_jenis, kd_penulis, kd_penerbit pada tabel BUKU ikut dibuah (Efek ON UPDATE CASCADE)
  1. Kalau suatu record dalam tabel JENIS, PENULIS, dan PENERBIT dihapus, semua record pada tabel BUKU yang nilai pada kd_jenis, kd_penulis dan kd_penerbit nya sama dnegan nilai pada kd_jenis tabel JENIS, kd_penulis tabel PENULIS, kd_penerbit tabel PENERBIT yang dihapus akan ditolak (Efek ON UPDATE RESTRICT)

3.2.Aturan-aturan pada Integritas Referensial :
Aturan-aturan pada integritas referensial yang digunakan pada sebagian besar RDBMS adalah bervariasi, dan di bawah ini terdapat aturan-aturan umum dan mendasar yang bisa digunakan untuk menjaga integritas referensial pada data :
a. Aturan Penyisipan
Aturan penyisipan menentukan kondisi valid saat penyisipan pada entiti anak, apakah terdapat larangan saat menyisipkan pada entiti anak terhadap persekutuan dengan entiti induknya.

Klasifikasi paksaan penyisipan mempunyai 6 tipe :

Ketergantungan(dependent) : penyisipan pada entiti anak akan diijinkan jika telah cocok (matching) dan nilai data terdapat pada nilai induk.
1.       Otomatis : penyisipan pada entiti anak selalu diijinkan, seandainya tidak ada yang cocok dengan entiti induk maka secara otomatis akan diciptakan penyisipan pada entiti induk.
2.       Kosong (nulify) : penyisipan pada entiti anak selalu diijinkan, seandainya tidak ada yang cocok dengan entiti induk, maka kunci tamu pada entiti induk akan dikosongkan atau diisi dengan null.
3.       Default : penyisipan pada entiti anak selalu diijinkan, seandainya tidak ada yang cocok dengan entiti induk maka kunci tamu pada entiti induk diisi dengan suatu nilai default.
4.       Customized : penyisipan pada entiti anak terjadi hanya jika ada paksaan validasi yang telah dibuat.
5.       Tidak berefek (no effect): penyisipan pada entiti anak selalu diijinkan tanpa perlu ada yang cocok pada entiti induk, jadi tidak diperlukan validasi pengujian.
b. Aturan Penghapusan
Aturan penghapusaan menentukan kondisi valid dimana dapat menghapus entiti induk, apakah terdapat larangan saat menghapus pada entiti induk terhadap persekutuan dengan entiti anaknya.
Klasifikasi paksaan dari penghapusan mempunyai enam tipe :
1         Larangan (restrict) : penghapusan pada entiti induk diijinkan jika tidak ada yang cocok (matching) dengan entiti anak, jika hal ini dilanggar maka akan mengakibatkan yang disebut dengan ‘orphaned’ record pada entiti anak, dimana terdapat record pada entiti anak yang kehilangan relasi terhadap entiti induknya.
2         Bertingkat (cascade) : penghapusan pada entiti induk selalu diijinkan dan secara bertingkat akan melakukan penghapusan pada entiti anak yang cocok dengan yang dihapus pada entiti induk.
3         Kosong (nulify) : penghapusan pada entiti induk selalu diijinkan dan kunci tamu pada entiti anak yang cocok dengan yang dihapus akan diisi dengan null.
4         Default : penghapusan pada entiti induk selalu diijinkan dan kunci tamu pada entiti anak yang cocok dengan yang dihapus akan diisi dengan suatu nilai default.
5         Customized : penghapusan pada entiti induk terjadi hanya jika paksaan validasi yang telah dibuat.
6         Tak berubah (no effect), penghapusan pada entiti induk selalu diijinkan dan tidak diperlukan pengujian validasi pada entiti anak.

c. Hal-hal lain yang berkaitan dengan integritas referensial
Pada bagian sebelumnya telah dibahas tentang dua buah aturan yang berhubungan dengan integritas referensial, tetapi ada beberapa hal yang perlu diperhatikan seperti : 
1.       Hindarilah menggunakan penyisipan dan penghapusan menggunakan aturan kosong(nulify), sebaiknya gunakanlah sebuah tanda dengan memakai aturan default. Nilai null adalah nilai khusus yang menunjukkan “nilai tidak diketahui” atau “tidak dapat dipakai”. Nilai NULL tidak sama dengan nilai nol atau blank. Kode instruktur yang yang berisi NULL tidak sama dengan kode instruktur yang berisi nol (kode instruktur = 0). Kode instruktur yang berisi null mungkin berarti kode tersebut tidak teridentifikasi.
2.       Jangan pernah mendefinisikan satu aturan penyisipan dan penghapusan yang kosong (nulify) bila kunci tamu juga menjadi bagian dari kunci primer pada entiti anak. Pada keadaan khusus aturan ini terjadi pada subtipe, dimana kunci primer dan kunci tamu adalah satu dan sama.
3.       Selalu definisikan aturan penyisipan untuk satu supertipe dan subtipe relationship sebagai satu versi aturan otomatis atau tergantung (dependent).
4.       Definisikan aturan penghapusan untuk relationship sebagai bertingkat (cascade).
5.       Integritas yang didefinisikan sendiri oleh user mengijinkan user untuk mendefinisikan business rules spesifik yang digunakan untuk mendukung ketiga aturan integritas data sebelumnya.
 
Tahapan penting dalam perancangan tabel adalah menentukan bagaimana membangun integritas data dengan menjaga konsistensi data dan mengorganisasikan dengan benar penyimpanan data dalam database, dengan :
a.  Melakukan validasi terhadap nilai data yang tersimpan pada sebuah field
b. Melakukan verifikasi terhadap nilai data berkaitan dengan nilai data yang lain pada sebuah file
c.  Melakukan validasi terhadap data dalam sebuah file yang berelasi dengan nilai data pada file atau tabel yang lain, dan
d.                Memastikan bahwa setiap transaksi yang terjadi akan berhasil mengupdate database dengan akurat.



BAB IV
Kekangan Operasional
4.1.Kekangan Dalam Basis Data
Di dalam perancangan dan penyusunan basis data ada beberapa aturan yang harus dipatuhi. Kekangan/batasan itu diperlukan agar file-file basis data yang disusun bisa memenuhi kriteria sesuai dengan definisi basis data. Terdapat beberapa kekangan yang harus dipatuhi pada file basis data agar dapat memenuhi kriteria sebagai suatu basis data. Beberapa aturan itu berhubungan dengan masalah kerangkapan data, inkonsistensi data, data terisolasi, keamanan data, dan integritas data.
1.    Kerangkapan Data, yaitu munculnya data-data yang sama secara berulang ulang pada file basis data yang semestinya tidak diperlukan. 

2.    Inkonsistensi Data, yaitu munculnya data yang tidak konsisten pada medan yang sama untuk beberapa file dengan kunci yang sama. Ketidak-konsistenan data biasanya terjadi akibat kesalahan dalam pemasukan data (data entry) atau update anomaly, yaitu suatu proses untuk meng-update data, tetapi mengakibatkan munculnya data yang tuda kkonsisten atau kehilangan informasi tentang objek yang ditinjau

3.    Data Terisolasi, disebabkan oleh pemakaian beberapa file basis data dimana program aplikasi tidak dapat mengakses data-data dari file tertentu sehingga seolah-olah ada file yang terpisah/terisolasi terhadap file yang lain dalam basis data. Data terisolasi harus dihindari karena akan berakibat pada tidak lengkapnya informasi yang dihasilkan dari dari pengolahan data dalam basis data.

4.    Security Problem, berhubungan dengan masalah keamanan data dalam sistem basis data. Pada prinsipnya file basis data hanya boleh digunakan oleh pemakai tertentu yang mempunyai wewenang untuk mengaksesnya.

5.    Integrity Problem, berhubungan dengan unjuk kerja sistem agar dapat melakukan kendali/kontrol pada semua bagian sistem sehingga sistem selalu beroperasi dalam pengendalian yang penuh.
4.2.Kekangan Dalam Database
a. Data Redundancy
Pada file manual sering terjadi penyimpanan data yang sama pada lokasi yang terpisah (cross location) tidak dapat dihubungkan, kalaupun dapat hanya dihubungkan dengan petunjuk silang (cross reference). Data yang terpisah selain memakan banyak tempat, juga sukar diremajakan (up-date) sekaligus secara bersamaan. Permasalahan yang timbul dapat dilihat pada kasus berikut.
b. Data Inconsistency.
Duplikasi data akan mengakibatkan data menjadi tidak konsisten. Inkonsistensi data (data tidak konsisten) terjadi dikarenakan bila terjadi perubahan terhadap data maka data harus dirubah dibeberapa tempat, hal ini tentunya tidak efisien.
c. Data Terisolir (Isolation Data)
Karena data tersebar dalam berbagai file, dan file-file mungkin dalam format format yang berbeda, akan sulit menuliskan program aplikasi baru untuk mengambil data yang sesuai.
d. Data Integrity
Basis data berisi file yang saling berhubungan, masalah utama adalah bagaimana kaitan antar file tersebut terjadi meski diketahui bahwa file A terkait dengan file B, namun secara teknis ada field yang mengaitkan kedua file tersebut oleh karena itu field kunci tidak dapat diabaikan dalam merancang suatu basis data.
Aturan keintegritasan data :
1.      Entity integrity
Nilai atribut primary key tidak boleh null (tidak dikenal)
Contoh:
PEGAWAI(NIP,Nama,Alm,Gaji,KdDiv)
NIP sebagai primary key tidak boleh bernilai null atau kosong atau tidak dikenal.
2.      Referential integrity
Nilai atribut foreign key harus sssuai dengan nilai atribut rujukan (primary key) pada relasi lain. Contoh:
PEGAWAI(NIP,Nama,Alm,Gaji,KdDiv)
DIVISI(KdDiv,Ket,Lokasi)
Atribut KdDiv sebagai foreign key pada relasi PEGAWAI Harus mempunyai nilai yang sesuai dengan rujukannya atribut KdDiv pada DIVISI.
3.      Entity participation
Keharusan/ketidakharusan adanya keanggotaan dari suatu relationship, pada saat perancangan database.
4.      Domain constraint
Domain merupakan sekumpulan nilai yang diizinkan untuk satu atau lebih dari satu atribut.
5.      Enterprise constraint
Aturan yang dispesifikasikan oleh DBA atau pemakai.
e. Data Security
Yang dimasud dengan data security adalah suatu cara pengaman data bari berbagai gangguan, seperti pencurian data, perubahan data, pengerusakan data, dll.
Berikut ini adalah beberapa cara pengaman data dari sekian banyak cara pengaman data yang bisa dilakukan. Pada contoh dibawah ini akan diberikan contoh pengaman data pada Oracle, yaitu :
Grant security (system privilege dan object privilege) Oracle grant security terdiri dari system privilege dan object privilege. System privilege memberikan hak akses kepada user untuk mengatur dan mengelola sistem database Oracle. Terdapat sekitar 80 system privilege yang ada di Oracle.
contoh :
sql> grant create any cluster to customer_role;
sql> grant select any table to fred;
sql> grant create any table to public;
sql> grant create tablespace to dba_role;
Object privilege merupakan hak akses yang diberikan kepada user untuk melakukan beberapa operasi pada beberapa objek database seperti; tabel, view, sequence, atau procedure.
contoh :
sql> grant select, insert on customer to fred, mary, joe;
sql> grant insert on order_table to update_role;
sql> grant all on customer to fred;
sql> grant select on customer_view to mary;
Role-based grant security
Role-based grant security pada dasarnya adalah kumpulan dari beberapa privilege yang dikumpulkan menjadi satu. Ini merupakan salah satu cara untuk memudahkan dalam pemberian hak akses kepada user
contoh :
sql> create role system_admin;
sql> grant select, update on customer to system_admin;
sql> grant select on item_table to system_admin;
sql> grant system_admin to user 1, user 2, user 3;
Grant execute security
Oracle menyediakan kemampuan untuk membuat hak akses dengan menciptakan suatu program tertentu melalui store procedure dan bahasa PL/SQL. Secara spesifik sdministrator dapat berkreasi dalam membuat hak akses user. Secara keseluruhan grant execute security memiliki cukup perbedaan dengan traditional grant security yang telah dibahas sebelumnya.




BAB V
PENUTUP
5.1.Kesimpulan
                Dari definisi yang ditemukan, kesimpulan dari tulisan yang dibaca sebelumnya begitu dekat dengan definisi ketaatan pada prinsip-prinsip moral dan etika; kesatuan dari karakter moral; kejujuran. Dengan demikian dapat dimengerti bahwa suatu bidang pekerjaan memiliki komponen penting yang salah satunya yaitu pemenuhan tanggung jawab serta kewajiban akan pekerjaan tersebut haruslah dilakukan dengan berpegang pada prinsip moral dan etika yang berlaku. Hal ini akan mengakibatkan orang yang melakukan pekerjaan mampu secara utuh memenuhi tanggung jawab dan kewajibannya selama ia berpegang pada komponen integritas tersebut.
                Kesimpulan yang dapat ditarik ialah seseorang perlu melaksanakan kewajiban serta tanggung jawabnya dengan penuh integritas. Integritas itu sendiri memiliki makna utama yaitu keutuhan. Kaitannya dengan profesi dan pekerjaan adalah pemenuhan tanggung jawab dan kewajiban yang harus dilakukan secara utuh dengan ketaatan pada prinsip-prinsip moral dan etika yang berlaku pada profesi tersebut. Semoga semakin banyak orang-orang yang memiliki integritas disetiap profesi dan pekerjaan yang dilakukannya.



Tidak ada komentar:

Posting Komentar