Kamis, 19 November 2009

Basis Data

BAB I
ARSITEKTUR SISTEM BASIS DATA
Arsitektur system basis data memberikan kerangka kerja bagi pembangunan basis data.
1.1 LEVEL ARSITEKTUR BASIS DATA
Menurut ANSI/SPARC, arsitektur basis data terbagi atas tiga level yaitu :
Internal/Physical Level:
berhubungan dengan bagaimana data disimpan secara fisik (physical
storage)
External /View Level
berhubungan dengan bagaimana data di representasikan dari sisi setiap
user.
Conceptual/Logical Level
yang menghubungkan antara internal & external level
Berikut adalah gambar tiga level arsitektur system basis data :
Gambar I.1 Tiga level arsitektur system basis data
Contoh dalam sebuah basis data pegawai, ketiga level digambarkan sebagai berikut :
- Pada level konseptual, basis data mengandung informasi tenteang sebuah entity
yang disebut EMPLOYEE. Setiap EMPLOYEE mempunyai sebuah
EMP_NUMBER (6 karakter), DEP_NUMBER(4 karakter) & SALARY (5
digit desimal).
- Pada level internal, para pegawai direpresentasikan oleh STRORED_EMP,
panjang 20 byte. STORED_EMP terdiri atas 4 field yaitu flag/pointer, 6
byte, tiga field untuk atribut pegawai.
- User yang menggunakan PL/I mempunyai sisi pandang level eksternal dimana
pegawai direpresentasikan dalam sebuah record yang ditulis dengan sintaks PL/I
- Demikianlah pula user yang menggunakan COBOL mempunyai sisi pandang
level eksternal dimana pegawai direpresentasikan dalam sebuah record yang
ditulis dengan sintaks COBOL.
1.1.1 External Level /View Level
Adalah level user. Yang dimaksud dengan user adalah programmer, end user atau DBA.
Setiap user mempunyai ‘bahasa’ yang sesuai dengan kebutuhannya.
- programmer : bahasa yang digunakan adalah bahasa pemrograman seperti C,
COBOL, atau PL/I
- end user : bahasa yang digunakan adalah bahasa query atau menggunakan
fasilitas yang tersedia pada program aplikasi
pada level eksternal ini, user dibatasi pada kemampuan perangkat keras dan perangkat
lunak yang digunakan aplikasi basis data. Didefinisikan sebagai sebuah Skema Eksternal.
1.1.2 Conceptual Level / Logical level
Conceptual level adalah sebuah representasi seluruh muatan informasi yang dikandung
oleh basis data. Tidak seperti level eksternal maka pada level conceptual, keberadaannya
tidak memperhitungkan kekurangan perangkat keras maupun perangkat lunak
pembangun aplikasi basis data. Didefinisikan sebagai sebuah Skema Konseptual
1.1.3 Internal/Physical Level
Adalah level terendah untuk merepresentasikan basis data. Record disimpan dalam media
penyimpanan dalam format byte. Didefinisikan sebagai sebuah Skema Internal.
1.2 PEMETAAN
1.2.1 Conceptual/internal Mapping :
Yaitu pemetaan yang mendefinisikan hubungan antara level konseptual dan level
internal. Pemetaan ini menjelaskan bagaimana record & field pada level konseptual
direpresentasikan pada level internal.
1.2.2 External/Conceptual Mapping :
Yaitu pemetaan yang mendefinisikan hubungan antara level eksternal dan
level konseptual. Contoh : beberapa field dapat mempunyai tipe yang
berbeda, field dan nama field dapat berubah, bebeapa field pada level
konseptual dapat dikombinasikan ke dalam satu field external.
1.3 MODEL-MODEL DATA
Yang dimaksud dengan model data adalah sekumpulan tool konseptual untuk
mendeskripsikan data, relasi-relasi antar data, semantic data & konsistensi konstrain.
Bermacam-macam model data terbagi dalam tiga kelompok besar yaitu :
Object-based logical models, record-based logical models, & physical models.
1. Object-based logical Models
Yang termasuk dalam kelompok ini adalah :
- Entity-relationship model
- Object-oriented model
- Semantic data model
- Functional data model
Dua dari model di atas yaitu : entity-relationship model & object-oriented model akan
dijelaskan lebih detil.
a. Entity-relationship Model
E-R model didasarkan atas persepsi terhadap dunia nyata yanga terdiri dari
sekumpulan objek, disebut entity dan hubungan antar objek tersebut, disebut
relationship. Entity adalah objek di dunia yang bersifat unik. Setiap entity
mempunyai atribut yang membedakannya dengan entity lainnya. Contoh :
entity Mahasiswa, mempunyai atribut nama, umur, alamat no. ktm.
Pemodelan data dengan model E-R menggunakan diagram E-R. Diagram E-R
terdiri dari :
! Kotak persegi panjang, menggambarkan himpunan entity
! Elip, menggambarkan atribut-atribut entity
! Diamon, menggambarkan hubungan antara himpunan entity
! Garis, yang menghubungkan antar objek dalam diagram E-R
b. Object-Oriented Model
Model berorientasi objek berbasiskan kumpulan objek. Setiap objek berisi :
1. Nilai yang disimpan dalam variable instant, dimana variable tersebut
“melekat” dengan objek itu sendiri.
2. Metoda : operasi yang berlaku pada objek yang bersangkutan
3. Objek-objek yang memiliki tipe nilai & metode yang sama
dikelompokkan dalam satu kelas. Kelas disini mirip dengan tipe data
abstrak pada bahasa pemrograman.
4. Sending a message : sebuah objek dapat mengakses data sebuah objek
yang lain hanya dengan memanggil metode dari objek tersebut.
c. Model-model lojik berbasis record
Terdapat beberapa model dalam kelompok ini :
c.1. Model Relasional ( Relational Model)
model relasional menggunakan kumpulan tabel-tabel untuk merepresentasikan data
& relasi antar data-data tersebut. Setiap tabel terdiri atas kolom-kolom, dan setiap
kolom mempunyai nama yang unik.
Contoh :
NIM NAMA ALAMAT DOSEN WALI
113940005 Ani Ambar Jl. PGA No.1 WNS
113950098 Andi Ari Jl. ABC No.6 TBH
113950100 Tuti Jl. AA No.78 WNS
DOSEN WALI ALAMAT
WNS KOPO PERMAI
TBH BALE ENDAH
c.2 Model Jaringan (Network Model )
Data dalam model jaringan direpresentasikan dengan sekumpulan record
(Pascal), dan relasi antara data direpresentasikan oleh record & link. Link dipandang
sebagai pointer. Record-record diorganisasikan sebagai graf. Contoh, model
relasional di atas direpresentasikan dalam model jaringan.
NIM NAMA ALAMAT DOSEN WALI
113940005 Ani Ambar Jl. PGA No.1 WNS
113950098 Andi Ari Jl. ABC No.6 TBH
113950100 Tuti Jl. AA No.78 WNS
DOSEN WALI ALAMAT
WNS KOPO PERMAI
TBH BALE ENDAH
c.3 Model Hirarki (Hirarchical Model)
Mirip dengan model jaringan.Data direpresentasikan dalam record
dan link. Perbedaannya adalah, record-record diorganisasikan sebagai tree
(pohon) daripada graf. Model relasional berbeda dengan model jaringan &
hirarki, dalam hal penggunaan pointer atau link.
1.4 BAHASA YANG DISEDIAKAN OLEH SISTEM BASIS DATA
Sebuah system basis data menyediakan dua tipe bahasa yaitu : tipe
untuk menspesifikasikan skema basis data, disebut DDL, dan tipe untuk
mengekspresikan queri atau update basis data, disebut MDL.
1.4.1 Data-definition Language
Skema basis data dispesifikasikan oleh sekumpulan definisi dengan sebuah bahasa khusus yang disebut data-definition language
(DDL). Hasil kompilasi DDL berupa tabel-tabel yang disimpan dalam sebuah file, disebut data dictionary (kamus data) atau data
directory. Kamus data adalah sebuah file yang berisi metadata. File ini yang dikonsultasi sebelum data yang sebenarnya dibaca
atau dimodifikasi oleh system basis data.
1.4.2 Data-manipulation Language
Adalah bahasa untuk memanipulasi data yaitu :
o Pengambilan informasi yang disimpan dalam basis data
o Penyisipan informasi baru ke basis data
o Penghapusan informasi dari basis data
o Modifikasi informasi yang disimpan dalam basis data
Query adalah statemen yang ditulis untuk mengambil informasi. Bagian dari DML
yang menangani pengambilan informasi ini disebut bahasa query.
1.5 DATABASE ADMINISTRATOR (ADMINISTRATOR BASIS DATA)
Administrator basis data adalah orang yang bertanggungjawab terhadap strategi
yang berhubungan dengan pengolahan data di suatu perusahaan. Selain hal tersebut,
DBA adalah orang yang bertanggungjawab terhadap implementasi strategi tersebut
secara teknis. Berikut dijelaskan bebrapa fungsi DBA secara detil :
- mendefinisikan skema konseptual
yaitu memutuskan informasi apa saja yang akan dihasilkan oleh sutu basis data.
Dalam hal ini DBA bertugas mendefinisikan entity-entiti yang terlibat pada
perancangan basis data. Proses ini disebut dengan Logical Database Design
(kadang-kadang disebut Conceptual Database Design). Setelah DBA menentukan
muatan dari basis data maka DBA akan menyusun skema konseptual
menggunakan DDL (data definition language). Kemudian dengan DBMS, skema
tersebut diimplementasikan.
- mendefinisikan Skema Internal
selain menentukan skema konseptual dari basis data, DBA juga bertanggung
jawab terhadap desain penyimpanan data secara fisik.
- mensosialisasikan hasil rancangan baik konseptual & internal ke user
Dalam hal ini tugas DBA adalah menyakinkan user bahwa data-data yang mereka
perlukan semua telah tersedia & membantu user untuk
mengimplementasikanrancangan tersebut dalam DDL.
- mendefinisikan aturan-aturan sekuriti & integritas data
- mendefinisikan prosedur-prosedur back-up & recovery
- memonitor performansi system & menangani perubahan-perubahan yang
ada.
1.6 DATABASE MANAGEMENT SYSTEM (SISTEM MANAJEMEN BASIS DATA)
DBMS adalah software yang menangani semua akses ke basis data. Secara konsep apa
yang terjadi adalah sebagai berikut :
1. user melakukan pengaksesan basis data untuk informasi yang diperlukannya
menggunakan suatu bahasa manipulasi data, biasanya disebut SQL.
2. DBMS menerima request dari user & menganalisa request tersebut
3. DBMS memeriksa skema eksternal user, pemetaan eksternal/konseptual, skema
konseptual, pemetaan konseptual/internal, & struktur penyimpanan.
4. DBMS mengeksekusi operasi-operasi yang diperlukan untuk memnuhi
permintaan user.

BAB II
MODEL ENTITY-RELATIONSHIP
Model E-R didasarkan pada persepsi dari sebuah dunia nyata yang terdiri dari
sekumpulan objek, disebut entiti & relasi diantar objek-objek tersebut.
2.1 Konsep Dasar
Terdapat tiga notasi dasar yang bekerja pada model E-R yaitu : entity sets, relationship
sets, & attributes.
a. Entity Sets
Sebuah entiti adalah sebuah “benda” (thing) atau “objek”(object) di dunia nyata yang
dapat dibedakan dari semua objek lainnya. Entity sets adalah sekumpulan entiti yang
mempunyai tipe yang sama. Kesamaan tipe ini dapat dilihat dari atribut/property yang
dimiliki oleh setiap entiti. Misal kumpulan orang yang menyimpan uang pada suatu
bank dapat didefinisikan sebagai entiti set nasabah.
b. Relationship Sets
Relationship adalah hubungan diantara beberapa entiti. Misal relasi yang
menghubungkan antar Toni dengan rek. 142-099999. Relasi ini menunjukkan bahwa
Toni adalah nasabah yang mempunyai nomor rekening 142-099999. Relationship set
adalah sekumpulan relasi yang mempunyai tipe yang sama
c. Kunci Relasi (Relation Keys)
Nilai dari kunci relasi harus mengidentifikasikan sebuah baris yang unik didalam
sebuah relasi. Kunci relasi terdiri dari satu atau lebih atribut-atribut relasi. Atributatribut
dalam kunci relasi harus memiliki sifat sebagai berikut :
- untuk satu nilai hanya mengindentifikasikan satu baris dalam satu relasi
- tidak memiliki subset yang juga merupakan kunci relasi
- tidak dapat bernilai null
contoh TABEL PERSON berikut :
PERSON
Person_Id Date_Of_birth Name
P1 7 July 49 Joe
P2 3 June 61 Mary
P3 11 Feb 65 Andrew
P4 22 April 64 Joe
P5 17 May 66 Jill
Person_Id adalah kunci relasi dari relasi PERSON. Dalam relasi tersebut, maksmimal
hanya satu baris untuk setiap nilai Person_Id yang diberikan. Sebagai contoh, hanya satu
baris dengan Person_Id = ‘P3’. Name tidak dapat dijadikan kunci relasi karena dapat
lebih dari satu orang yang mempunyai nama yang sama.
Relasi Person di atas memiliki kunci yang hanya terdiri dari satu atribut. Sangat
dimungkinkan kunci relasi terdiri dari banyak atribut. Contoh relasi Work pada gambar di
bawah mempunyai kunci relasi yang terdiri dari dua atribut yaitu :
Person_Id & Proj_No
Person _Id Proj_No Total_Time_Spent_By_Person_On_Project
P1 Proj1 20
P3 Proj1 16
P2 Proj2 35
P2 Proj3 42
P3 Proj2 17
P2 Proj1 83
P4 Proj3 41
Nilai kedua atribut, Person_Id & Proj_No diperlukan untuk menentukan satu baris yang
unik. Karena untuk menentukan satu baris yang unik tidak cukup dengan Person_Id saja
atau hanya dengan Proj_No.
d. Foreign Key(FK)
Term FK juga banyak digunakan dalam perancangan. Sebuah FK adalah sekumpulan
atribut dalam suatu relasi (misal A) sedemikian sehingga kumpulan atribut ini bukan
kunci relasi A tetapi merupakan kunci dari relasi lain.
Kardinalitas Pemetaan
Kardinalitas pemetaan atau rasio kardinalitas menunjukkan jumlah entity yang dapat
dihubungkan ke satu entity lain dengan suatu relationship sets.
Kardinalitas pemetaan meliputi :
1. Hubungan satu ke satu (one to one).
Yaitu satu entity dalam A dihubungkan dengan maksimum satu entity dalam
2. Hubungan satu ke banyak (one to many)
Yaitu satu entity dalam A dihubungkan dengan sejumlah entity dalam B. Satu
entity dalam B dihubungkan dengan maksimum satu entity dalam A.
3. Hubungan banyak ke satu (many to one)
Yaitu satu entity dalam A dihubungkan dengan maksimum satu entity dalam
B. Satu entity dalam B dapat dihubungkan dengan sejumlah entity dalam A.
4. Hubungan banyak k banyak (many to many).
Satu entity dalam A dihubungkan dengan sejumlah entity dalam B, & satu
entity dalam B dihubungkan dengan sejumlah entity dalam A.
Gambar Kardinalitas Pemetaan :
a1
a2
a3
a4
b1
b2
b3
b4
a1
a2
a3
b1
b2
b3
b4
b5
(1) Satu ke satu (2) Satu ke banyak
a1
a2
a3
b1
b2
b3
a4
a5
a1
a2
a3
a4
b1
b2
b3
b4
(3) Banyak ke satu (4) Banyak ke banyak
Diagram Entity-Relationship
Komponen E-R diagram adalah :
- Persegi panjang (rectangles) : merepresentasikan entity sets
- Elip (ellipses) : merepresentasikan atribut entity
- Wajik(diamonds) : merepresentasikan relationship sets
- Lines (garis) : merepresentasikan hubungan atribut ke entity sets & entity sets
ke relatioship sets
Contoh :
Diagram E-R dibawah terdiri dari 2 entity sets, customer & loan, & satu relationship set
borrower. Atribut dari customer adalah nama, ktp, jalan, kota. Atribut untuk loan adalah
no_pinjaman, jml_pinjaman. Hubungan entity customer ke loan adalah banyak ke
banyak.
Customer Borrower Loan
jalan KTP nama
kota
no_pinj jum_pinj
Entity Sets Lemah
Adalah entity set yang tidak mempunyai primary key. Entity sets yang mempunyai
primary key disebut entity sets kuat.
Contoh entity lemah :
Loan
loan-number amount
payment-date
payment-number payment-amount
loan-payment payment
Spesialisasi
Proses mendesain subgrup di dalam suatu entity disebut dengan specialisasi. Suatu
himpunan entity bisa memiliki suatu subgrup yang berbeda diantara entiti-entiti lain
dalam himpunan tersebut. Misalnya suatu sub himpunan entity dalam suatu himpunan
entity bisa memiliki atribut yang berbeda dari entity-entiti lain. Model E-R memiliki
fasilitas untuk perbedaan ini.
Contoh : himpunan entity account memiliki atribut account-number dan balance. Suatu
account dapat diklasifikasikan lagi menjadi salah satu dari :
- savings-account
- checking-account
(lihat gambar dibawah)
setiap tipe account ini diterangkan dengan himpunan atribut yang termasuk dalam
atribut-atribut dari entity set account ditambah dengan atribut tambahan. Contoh entity
saving-account diterangkan dengan atribut interest-rate, dan checking-account
diterangkan dengan overdraft-amount.
Proses spesialisasi mengijinkan pembedaan account berdasarkan tipe account. Account
juga dapat dibedakan dengan cara lain, misalkan berdasarkan tipe kepemilikkan menjadi
commercial-account dan personal-account. Ketika dalam suatu entity dibentuk lebih dari
satu proses spesialisasi, maka suatu entity menjadi milik dua spesialisasi tersebut. Misal
suatu account bisa merupakan suatu personal account dan suatu checking account.
Dalam diagram E-R, spesialisasi dilambangkan dengan komponen segitiga bertuliskan
ISA. ISA juga melambangkan hubungan antara superclass-subclass. Entity yang dengan
kedudukkan lebih rendah/tinggi memiliki lambing sama.
Generalisasi
Disamping proses desain top-down (dari inisial entity ke level lebih rendah (subgrup)),
desain juga dapat dilakukan dengan proses bottom-up, yaitu banyak entiti disintesiskan
menjadi entity yang lebih tinggi berdasarkan kesamaan feature-nya.
Desainer basis data mungkin mengidentifikasi terlebih dulu entity
checking-account dengan atribut account-number, balance dan overdraftamount.
Ditemukan juga entity set saving-account dengan atribut
account-number, balance dan interest-rate.
Terdapat kesamaan antara entity set checking-account dengan entity set
saving-account, yaitu keduanya memiliki beberapa atribut yang sama.
Persamaan ini dapat diekspresikan dengan generalisasi.
account-number balance
account
savings-account checking-account
interrest-rate ISA overdraft-amount
ISA
standard gold senior
num-checks interest-payment min-balance date-of-birth

BAB III
MODEL RELATIONAL
3.1 PENDAHULUAN
Model relasi pertama kali dikenalkan oleh Codd, pada tahun 1971. Sejak itu model
relasi memainkan peranan yang sangat penting dalam berbagai perancangan basis data.
Ada tiga alas an mengapa model relasi mempunyai peranan penting dalam perancangan
basis data yaitu :
• mempunyai piranti komunikasi yang baik antara user & designer
artinya relasi merepresentasikan struktur data yang dapat dimengerti oleh user
maupun designer.
• model relasional mendefinisikan salah satu kriteria perancangan basis data yang
penting yaitu relasi bentuk normal.
• Struktur data yang direpresentasikan oleh relasi dapat segera dikonversikan &
diimplementasikan ke RDBMS.
3.2 APA YANG DISEBUT DENGAN RELASI
Relasi pertama kali didefinisikan menggunakan teori himpunan. Cara termudah untuk mendefinisikan sebuah relasi adalah
sebagai sebuah tabel dimana data-datanya disimpan dalam baris tabel.
Contoh Table : Tabel Work dibawah ini
Terdiri dari tiga kolom, yaitu Person_Id, Proj_No dan Total_Time.
Tabel ini menyimpan waktu yang dihabiskan oleh person pada proyek
tersebut. Selain tabel Work terdapat juga relasi Persons. Relasi ini
menyimpan secara detail tentang person yang bekerja pada proyek
dimaksud.
WORK
Person_Id Proj_No Total_Time
P1 PROJ1 20
P3 PROJ1 16
P2 PROJ2 35
P2 PROJ3 42
P3 PROJ2 17
P3 PROJ1 83
P4 PROJ3 41
PERSON
Person_Id Date_Of_birth Name
P1 JAN 62 JOE
P4 FEB 65 MARY
P3 AUG 33 ANDREW
P2 JUL 48 JOE
3.3 TERMINOLOGI
- Relasi = Tabel
- Atribut relasi = Kolom tabel
- Tuple = Baris
Domain
Part_Id Deskripsi Warna Berat
Dimensi (tipe : alpha) (tipe : string) (tipe : numeric) (tipe : numeric)
PARTS
Part_No Part_Name Warna Berat Max_Dim
P1 Gergaji Hitam 12 25
P2 Palu Coklat 20 19
P3 Bor Abu-abu 88 45
3.4 STRUKTUR LOJIK & FISIK
Relasi adalah sebuah representasi data lojik bukan fisik. Relasi menggambarkan
struktur data tanpa memperhatikan bagaimana data disimpan atau diakses.
Representasi lojik berarti bahwa sebuah relasi harus :
- tidak terdapat duplikasi baris
- urutan baris tidak diperhatikan
- setiap kolom dalam suatu relasi mempunyai sebuah nama yang unik
struktur fisik diperlukan selama implementasi fisik yaitu pada saat menentukan layout
data & indeks yang digunakan untuk mengakses data dalam suatu relasi. Hal penting
lainnya yang harus diperhatikan dalam merancang relasi adalah bahwa nama-nama
atribut relasi harus menggambarkan sumber data berasal.
3.5 REDUNDANSI & DUPLIKASI
3.5.1 Redundansi
Salah satu dari perancangan lojik basis data adalah meniadakan
redundansi. Redundansi terjadi jika fakta yang sama disimpan lebih dari sekali.
Contoh redundansi adalah relasi Project_Data berikut : dalam relasi Project_Data,
Project_Budget dari sebuah proyek disimpan lebih dari sekali. Yaitu sebanyak
orang yang bekerja pada proyek tersebut. Hal ini tidak diinginkan karena
menyebabkan banyak kerugian sebagai berikut :
o Jika Project_Budget untuk Proj_No berubah maka harus dilakukan
perubahan lebih dari satu baris dalam relasi tersebut.
o Setiap kali penambahan orang baru untuk suatu proyek maka harus
dimasukkan pula budget untuk proyek tersebut.
o Sebuah proyek yang tidak ada orangnya, seperti PROJ4, akan hanya
mempunyai sebuah nilai Project_Budget tetapi tidak punya nilai untuk
atribut lainnya. Ini berarti bahwa operasi-operasi terhadap relasi tersbut
harus disesuaikan dengan keadaan struktur basis data saat itu.
PROJECT_DATA
Person_Id Proj_No Project_Budget Total_Time
P1 PROJ1 20 20
P3 PROJ1 20 16
P2 PROJ2 17 35
P2 PROJ3 84 42
P3 PROJ2 17 17
P3 PROJ1 20 83
P4 PROJ3 84 41
- PROJ4 90 -
3.5.2 Duplikasi
Duplikasi berbeda dengan redundansi. Kadang-kadang duplikasi diperlukan
dalam basis data sementara redundansi harus dihindari.
Contoh duplikasi adalah relasi USE dibawah ini. Relasi USE memiliki lebih dari satu
baris yang mempunyai nilai yang sama untuk atribut Project_Id, yaitu Proj1. Demikian
juga untuk Proj2. Nilai-nilai ini harus disimpan lebih dari sekali karena menggambarkan
fakta yang berbeda.
USE
Proj_Id Part_No Qty_Used
Proj1 P1 17
Proj2 P2 85
Proj1 P3 73
Proj2 P2 80
ASSIGNMENTS
Person_Id Dept Date_Of_Birth Date_Started Date_Finished
P1 Sales 1 June 53 2 June 80 5 Aug 83
P2 Sales 3 July 51 5 Aug 81 9 Dec 82
P3 Accounting 8 Aug 60 3 Feb 79 17 Jul 82
P1 Production 1 June 53 11 Mar 82 3 Feb 85
Sedangkan dalam relasi Assigment, satu nilai atribut Date_Of_Birth, yaitu 1 June 1953,
dapat juga muncul lebih dari sekali. Berbeda dengan Proj1 & Proj2 di atas, 1 June 53
menunjukkan fakta yang sama yaitu menunjukkan orang yang sama. Hal ini
menyebabkan terjadinya redundansi dalam relasi Assignment.
3.6 MENGHILANGKAN REDUNDANSI
Salah satu cara untuk menghilangkan redundansi adalah dengan dekomposisi.
Sbuah relasi yang menyimpan sebuah fakta lebih dari sekali dapat didekomposisi ke
dalam relasi-relasi yang hanya menyimpan sebuh fakta sekali.
Contoh relasi Project_Data di atas dapat didekomposisi menjadi relasi Projects dan Work
di bawah ini .
PROJECT
Proj_No Project_Budget
Proj1 20
Proj2 17
Proj3 84
Proj4 90
WORK
Person_Id Proj_No Total_Time_Spent_By_
Person_On_Project
P1 Proj1 20
P3 Proj1 16
P2 Proj2 35
P2 Proj3 42
P3 Proj2 17
P3 Proj1 83
P4 Proj3 41
3.7 QUERY LANGUAGE
Query language adalah suatu bahasa yang menyediakan fasilitas bagi user untuk
mengakses informasi dari basis data. Pada umumnya level bahasa ini lebih tinggi dari
bahasa pemrograman standar. Bahasa query dapat dikategorikan sebagai prosedural &
non-prosedural.
Dalam bahsa prosedural, user menginstruksikan ke sistem agar membentuk
serangkaian operasi dalam basis data untuk mengeluarkan hasil yang diinginkan. Dalam
bahasa non-prosedural, user mendeskripsikan informasi yang diinginkan tanpa
memberikan prosedur detail untuk menghasilkan informasi tersebut.
Sebagian besar system basis data relasional yang beredar dipasaran menawarkan bahasa
query dengan pendekatan prosedural & non-prosedural.
Bebrapa bahasa query yang murni adalah : aljabar relasional (relational
algebra) merupakan bahasa query prosedural, sedangkan kalkulus relasional tuple
(tuple relational calculus) & kalkulus relasional domain(domain relational calculus)
adalah non-prosedural. Berikut hanya akan dibahas bahasa query bukan bahasa datamanipulation
yang lengkap, yaitu bahasa yang tidak hanya terdiri dari bahas query tetapi
juga bahasa untuk memodifikasi basis data, seperti perintah insert dan delete tuple.
3.7.1 Aljabar Relasional ( Relational Algebra)
Aljabar relasional adalah sebuah bahasa query prosedural yang terdiri dari
sekumpulan operasi dimana masukkannya adalah satu atau dua relasi dan keluarannya
adalah sebuah relasi baru sebagai hasil dari operasi tersebut. Operasi-operasi dasar dalam
aljabar relasional adalah : select, project, union, set difference, Cartesian product dan
rename. Disamping operasi-operasi dasar terdapat beberapa operasi lainnya seperti set
intersection, natural join, division dan assignment. Operasi-operasi ini akan
didefinisikan dalam terminology operasi dasar.
3.7.1.1 Operasi-operasi Dasar
Operasi-operasi select, project dan rename disebut operasi unary, karena operasioperasi
tersebut hanya memerlukan satu relasi. Tiga operasi lainnya memerlukan
sepasang relasi, disebut operasi binary.
a. Operasi Select
Operasi select menyeleksi tuple-tuple yang memenuhi predikat yang diberikan.
Digunakan symbol sigma (σ) untuk menunjukkan operasi select. Predikat muncul
sebagai subcript dari σ. Argumen relasi diberikan dalam kurung yang mengikuti σ.
Jadi untuk menyeleksi tuple-tuple dari relasi loan dimana branch-name-nya adalah
“Perryridge”, ditulis :
σbranch-name = “Perrydge”(loan)
Jika relasi Loan adalah :
Brach-name Loan-number Ammount
Downtown L-17 1000
Redwood L-23 2000
Perryridge L-15 1500
Downtown L-14 1500
Mianus L-93 500
Round Hill L-11 900
Perryridge L-16 1300
Maka hasil dari query di atas adalah :
Brach-name Loan-number Ammount
Perryridge L-15 1500
Perryridge L-16 1300
Contoh-contoh query lain dengan operasi select adalah : σamount>1200(loan), untuk
menemukan tuple dengan nilai amount lebih dari 1200, σbrach-name = “Perryridge” and
amount >1200 (loan), untuk menemukan tuple dengan branch-name = “Perryridge”
dimana nilai amountnya lebih dari 1200.
b. Operasi Project
Seandainya diinginkan semua daftar loan-number dan amount, tanpa branchname.
Dengan operasi project dapat dihasilkan relasi ini. Operasi project disimbolkan
dengan symbol phi (π). Nama-nama atribut yang diinginkan tampil ditulias sebagai
subcrip π.
Contoh : πloan-number,amount(loan), adalah operasi untuk menampilkan seluruh
loan-number & amount tanpa branch-name.
Hasil operasi tersebut adalah :
Loan-number Amount
L-17 1000
L-23 2000
L-15 1500
L-14 1500
L-93 500
L-11 900
L-16 1300
c. Komposisi Operasi-operasi relasional
Berikut contoh query yang lebih kompleks : “ Temukan kastemer-kastemer yang
tinggal di Horison “. Maka query-nya ditulis :
πcustomer-name(σcustomer-city=”Horison”(customer))
perhatikan bahwa sebagai argumen dari operasi project adalah sebuah ekspresi untuk
suatu relasi. Oleh karenanya, operasi-operasi aljabar relasional dapat digabung
dengan suatu ekspresi aljabar relasional.
d. Operasi Union
Operasi union dalam aljabar relasional sama halnya dengan operasi union pada
aritmatika. Misal user menginginkan nama-nama semua nasabah bank yang memiliki
sebuah account atau sebuah loan atau keduanya. Perhatikan bahwa relasi customer
tidak mengandung informasi tersebut. Untuk menjawab query ini diperlukan
informasi dari relasi Depositor dan relasi Borrower. Dengan operasi union informasi
yang diinginkan dapat diperoleh dengan menulis query sebagai berikut :
πcustomer-name(borrower)∪ πcustomer-name(depositor)
DEPOSITOR
Customer-name Account-number
Johnson A-101
Smith A-215
Hayes A-102
Turner A-305
Johnson A-201
Jones A-217
Lindsay A-222
BORROWER
Customer-name Loan-number
Jones L-17
Smith L-23
Hayes L-15
Jackson L-14
Curry L-93
Smith L-11
Williams L-17
Adams L-16
Hasil query yang union di atas adalah :
Customer-name
Johnson
Smith
Hayes
Turner
Jones
Lindsay
Jackson
Curry
Williams
Adams
Operasi union r∪s bernilai benar jika kedua relasi memenuhi dua kondisi berikut :
1. Relasi r & s harus mempunyai jumlah atribut yang sama
2. Domain dati atribut ke-I di relasi r dan domain dari atribut ke-I dari s harus sama
untuk semua i.
e. Operasi Pengurangan Himpunan ( Set Difference)
Disimbolkan dengan tanda “-“. Operasi ini untuk menemukan tuple-tuple yang
berada pada satu relasi tetapi tidak berada pada relasi yang lainnya. Contoh untuk
menemukan semua nasabah bank yang mempunyai account tetapi tidak mempunyai
loan, ditulis :
πcustomer-name(depositor) - πcustomer-name(borrower)
hasil query di atas :
Customer-name
Johnson
Turner
Lindsay
f. Operasi Cartesian –product
Operasi Cartesian-product disimbolkan dengan “x”. Dengan operasi ini dapat
dihasilkan informasi yang merupakan kombinasi dari dua relasi.
Secara garis besar, jika dipunyai relasi r1(R1) dan r2(R2), maka r1 x r2 adalah
relasi yang skemanya merupakan gabungan dari R1 ( atribut-atribut relasi r1) dan
R2 (atribut-atribut r2). Relasi R mengandung semua tuple t dimana terdapat sebuah
tuple t1 dalam r1 dan t2 dalam r2 sedemikian sehingga t[R1] = t1[R1] dan
t[R2]=t2[R2].
Contoh : Jika diinginkan nama-nama dari semua nasabah yang mempunyai
pinjaman (loan) di bank cabang Perryridge. Maka query-nya ditulis :
σbranch-name=”Perryridge”(borrower x loan)
Relasi yang dihasilkan :
Customer-name Loan-number Branch-name Loan-number Amount
Jones L-17 Perryridge L-15 1500
Jones L-17 Perryridge L-16 1300
Smith L-23 Perryridge L-15 1500
Smith L-23 Perryridge L-16 1300
Hayes L-15 Perryridge L-15 1500
Hayes L-15 Perryridge L-16 1300
Jackson L-14 Perryridge L-15 1500
Jackson L-14 Perryridge L-16 1300
Curry L-93 Perryridge L-15 1500
Curry L-93 Perryridge L-16 1300
Smith L-11 Perryridge L-15 1500
Smith L-11 Perryridge L-16 1300
Williams L-17 Perryridge L-15 1500
Williams L-17 Perryridge L-16 1300
Adams L-16 Perryridge L-15 1500
Adams L-16 Perryridge L-16 1300
g. Operasi Rename
Dilambangkan dengan symbol rho (ρ). Sintaks penulisan rename : ρx(E).
Operasi rename mengeluarkan hasil ekspresi E dengan nama x.
Contoh :
πaccount.balance(σaccount.balance3.7.1.2 Definisi Aljabar relasional
Jika E1 & E2 adalah ekspresi aljabar-relasional, maka berikut ini adlah semua ekspresi
aljabar-relasional :
- E1 ∪ E2
- E1 – E2
- E1 x E2
- σp(E1), dimana p adalah sebuah predikat untuk atribut-atribut dalam E1
- πs(E1), dimana s adalah daftar yang terdiri dari bebrapa atribut dalam E1
- ρx(E1), dimana x adalah nama baru untuk hasil E1
3.7.2 Kalkulus relasional Tuple ( Tuple Relational Calculus)
Tuple relational calculus adalah query yang non-prosedural. Tuple relational
calculus menggambarkan informasi yang diinginkan tanpa memberi prosedurnya secara
detil untuk mendapatkan informasi tersebut.
Sebuah query dalam tuple relational calculus ditulis :
{t|P(t)}
yaitu : semua tuple t sedemikian sehingga predikat P adalah benar untuk t. dengan
mengikuti notasi terdahulu, digunakan t[A] untuk menyatakan nilai tuple t pada
atribut A, dan t∈r untuk menyatakan bahwa tuple t berada dalam relasi r.
Contoh Query :
Misal diinginkan informasi branch-name, loan-number dan amount untuk pinjaman di
atas $1200. Maka query-nya adalah : {t|t∈loan ∧t[amount]>1200}. Andai hanya
diinginkan atribut loan-number dari relasi loan. Untuk mengekspresikan permintaan ini,
diperlukan notasi “terdapatlah (there exists)” dengan notasi :
∃ t ∈ r (Q(t))
dibaca “ terdapatlah sebuah tuple t dalam relasi sedemikian sehingga bahwa
predikat Q(t) adalah benar”.
Dengan menggunakan notasi ini maka dapat ditulis query “Tampilkan loan number untuk
setiap pinjaman yang lebih dari $1200” sebagai
{t|∃ s ∈loan (t[loan-number]=s[loan-number]∧s[amount]>1200}
3.7.3 Kalkulus Relasional Domain ( The Domain Relational Calculus)
Bentuk kalkulus relasional ini menggunakan variabel domain yang mengambil
sebuah nilai dari domain atribut, bukan dari nilai seluruh tuple.
Contoh query :
- Tampilkan nama cabang, loan number dan jumlah pinjaman yang lebih dari
$1200, dengan kalkulus relasional domain, query-nya ditulis :
{|∃∈ loan ∧a>1200}
- Tampilkan semua loan-number untuk jumlah pinjaman yang lebih dari $1200,
dengan kalkulus relasional domain, query-nya ditulis :
{|∃ b,a(∈ loan ∧ >1200)}
- Tampilkan nama-nama semua customer yang mempunyai pinjaman di cabang
Perryridge beserta loan-number-nya.
{| ∃ (∈ borrower ∧∃ b ( ∈ loan ∧ b = “Perryridge”))}
- Tampilkan nama-nama semua customer yang mempunyai pinjaman, rekening,
atau keduanya pada cabang Perryridge :
{| ∃ l (∈ borrower ∧∃ b,a ( ∈ loan ∧ b =
“Perryridge”))
∨ ∃ b,n ( ∈ account ∧ b = “Perryridge”))}
- Tampilkan semua nama-nama customer yang mempunyai rekening pada
semua cabang-cabang yang berlokasi di Brooklyn :
{| ∀ x,y,z ( ∈ branch) ∧ y = “Brooklyn”⇒
∃ a,b( ∈ account ∧ ∈ depositor )}
3.7.4 Modifikasi Dalam Basis Data
1. Penghapusan (Deletion)
Dalam aljabar relasional, operasi deletion diekspresikan dengan :
r ! r-E, dimana r adalah relasi dan E adalah sebuah query aljabar
relasional.
Berikut beberapa contoh dari perintah delete dengan aljabar relasional adalah :
- Hapus semua rekening atas nama Smith
account ! account - σ customer-name = “Smith” (account)
- Hapus semua pinjaman dengan jumlah diantara 0 s/d 50
loan ! loan - σamount > = 0 and amount <=50 (loan)
- Hapus semua account pada cabang-cabang yang berlokasi di Needham
r1 ! σ branch –city = “Needham” (account x branch)
r2 ! π branch-name, account-number, balance (r1)
account ! account – r2
2. Penyisipan (Insertion)
Untuk menyisipkan data ke dalam suatu relasi, dapat dilakukan dengan dua cara
yaitu menentukan tuple-tuple yang akan disisipkan. Dalam relasional aljabar,
penyisipan diekspresikan dengan : r ! r ∪ E, dimana r adalah relasi dan E adalah
sebuah ekspresi relasional aljabar.
Contoh : seandainya akan disisipkan fakta bahwa Smith mempunyai $1200 dalam
rekening A-973 pada cabang Perryridge. Query-nya ditulis :
account ! account ∪ {(“Perryridge”, A-973,1200)}
depositor ! depositor ∪ {(“Smith”, A-973)}
Contoh lain :
r1 ! (σbranch-name = “Perryridge” (borrower x loan))
r2 ! π branch-name, loan-number (r1)
account ! account ∪ (r2 x {(200)})
depositor ! depositor ∪ π customer-name, loan-number (r1)
3. Updating
Dapat digunakan operator proyeksi secara umum sebagai berikut :
r ! π F1,F2,… Fn (r)
Contoh : seandainya akan dibuat bunga tabungan sebesar 5% ditulis query
:
account ! πbranch-name,account-number,balance!balance*1.05 (account)
4. View
View didefinisikan dengan statement create view. Untuk mendefinisikan sebuah view
maka view tersebut harus diberi nama dan query untuk menghasilkan view tersebut.
Format statement create view sebagai berikut :
Create view v as
Dimana ekspresi query adalah sebuah ekspresi query relation-algebra yang sah dan
nama view direpresentasikan dengan v.
Contoh : untuk membuat view yang terdiri dari semua cabang bank dan
pelanggannya
Create view all-customer as
π branch-name, customer-name (depositor x account)
∪ π branch-name, customer-name (borrower x loan)
BAB IV
PERANCANGAN BASIS DATA RELASIONAL
1.1 KETERGANTUNGAN FUNGSIONAL & MULTI NILAI
1.1.1 Ketergantungan Fungsional (Functional Dependency (FD))
Adalah ketergantungan nilai-nilai dari satu atau beberapa atribut terhadap satu atribut
atau himpunan atribut lainnya.
Notasi : Y ➔ X
Biasa digunakan untuk menunjukkan bahwa X tergantung secara fungsional terhadap
Y. Atribut Y dikenal sebagai determinant dari FD Y ➔ X
Contoh : Person_ID, Project ➔ Time_Spent_By, Person_On_Project
Notasi X ↔ Y berarti X ➔ Y dan Y ➔ X
Contoh diagram functional dependency :
Person-ID
Project
Time_spent_By_
person_on_project
Project Project Budget
1.1.2 Functional Dependency Penuh
Atau Full Functional Dependency, biasa digunakan untuk mengindikasikan himpunan
atribut minimum dalam sebuah determinant dari satu FD.
Himpunan atribut x akan bergantung secara fungsional penuh (fully functionally
dependent) pada himpunan atribut y jika :
1. x bergantung secara fungsional pada y
2. x tidak bergantung secara fungsional pada suatu sub-himpunan dari y.
contoh :
- Person_ID, Project, Project_budget ➔Time_spent_By_Person_on_Project
➔ Bukan suatu FD penuh
- Person_ID, Project ➔ Time_spent_by_Person_on_Project
➔ suatu FD penuh
karena :
Person_ID ➔ Time_spent_By_Person_on_Project maupun
Project ➔ Time_spent_By_Person_on_Project,
Tidak memenuhi syarat sebagai FD penuh.
Contoh diagram FD yang lebih kompleks :
Manager_Name
Warehouse_address warehouse_name
part_no
inventory_date
QTY_delivered
QTY_in_store_on_date
supplier_name delivery_number
Sifat-sifat FD :
1. Redundan FD
Sebuah FD dalam himpunan FD dikatakan redundan jika FD tersebut dapat
diturunkan dari FD lainnya dalam himpunan FD.
Cara untuk mendeteksi sebuah FD redundan dengan langkah-langkah sebagai
berikut :
1. tentukan S sebagai himpunan dari FD.
2. hapus satu FD misal f dan susun himpunan FD S’ = S – f
3. test apakah f dapat diturunkan dari DS-FD dalam S’ dengan
menggunakan himpunan rule
4. jika f dapat diturunkan, berarti f redundan, ➔ S = S’. Jika tidak,
masukkan f ke dalam himpunan S’ sedemikian sehingga S = S’ + f.
5. ulangi langkah ke-2 sampai 4 semua FD dalam S.
himpunan rule-relu digunakan untuk menghindari looping pada langkah ke-3.
Himpunan rule-rule (set of rule) (Amstrong,1974 & Beeri at.al 1978) terdiri dari :
- jika Y ⊆ X, maka X  Y (refleksi)
- jika Z ⊆ W, dan X  Y, maka XW  YZ ( augmentasi)
- jika X  Y dan Y  Z, maka X  Z (transitive)
Dalam prakteknya, terdapat aturan-aturan tambahan yaitu :
- jika X  Y dan YW  Z, maka XW  Z (pseudotransitive)
- jika X  Z dan X  YZ (union)
- jika X  YZ, maka X  Y dan Y  Z ( dekomposisi)
contoh :
Himpunan FD : { Z  A, B  X, AX Y, ZB  Y}
Akan ditunjukkan bahwa ZB  Y adalah redundan.
1. Z A dengan augmentasi menghasilkan ZB AB
2. B  X dan AX Y dengan pseudotransitive menghasilkan AB  Y
3. ZB  AB dengan transitive menghasilkan ZB  Y
1.1.3 Algoritma Keanggotaan
Digunakan untuk menentukan apakah suatu FD, f(A  B), dapat diturunkan dari satu
himpunan FD, sbb :
1. T = A, T adalah variable yang mengandung satu himpunan atribut-atribut A
adalah determinant dari f.
2. lihat FD yang lain untuk melihat apakah sebuah FD X Y ditemukan, tambahkan
atribut-atribut dalam pada himpuanan atribut-atribut dalam T ( aturan union &
transitive)
3. Ulangi langkah-langkah setiap kali T dirubah hingga tidak ada lagi atribut-atribut
yang dapat ditambahkan pada T.
4. Jika pada akhir algoritma B berada dalam T, maka A  B dapat diturunkan dari
FD lain dalam S ( aturan dekomposisi).
Contoh :
Himpunan FD : { Z  A, B  X, AX Y, ZB  Y}
1. T = ZB
2. T = ZB + A = ZBA, karena Z  A berada dalam sisa himpunan FD dan Z⊆T.
T = ZBA + X = ZBAX, karena B  X berada dalam sisa himpunan FD dan
B⊆T.
T = ZBAX + Y = ZBAXY karena AX  Y berada dalam sisa himpuanan FD
dan AX ⊆ T.
4.1.4 Closure
Sebuah closure mendefinisikan semua fungsional dependency yang dapat diturunkan
dari satu himpunan FD yang diberikan.
Notasi F+ digunakan untuk menunjukkan closure dari himpuanan dependensi.
Contoh :
F = { X  Y, Y  Z, YZ  W, WX  Y}
Dari himpunan FD di atas diturunkan FD yang lain, seperti :
X  Z dengan transitive dari X  Y dan Y  Z
Atau
XZ  W dengan pseudotransitive dari X  W dan YZ  W
Untuk memastikan /menentukan apakah semua FD yang mungkin diturunkan dari
satu himpunan FD dapat digunakan algoritma sebagai berikut :
T = A
While (changes to T) do
For each functional dependency
X  Y in F do
Begin
If X is in T then
Add Y to T
End
Contoh :
1. T = x
2. kemudian tambahkan Y ke T karena X  Y berada dalam himpunan FD.
3. tambahkan Z ke T, karena Y Z berada dalam himpunan FD dan sekarang T =
XYZ.
4. tambahkan W ke T, karena YZ  W
jadi F+ untuk X :
X  X, X  Y, X  Z, X  W,
X YZ, X  YW, X  ZW,
X  YWZ
Untuk melihat F+ dan Y, algoritma dapat diulang dengan memulai T =Y demikian
seterusnya.
1.2 NORMALISASI (1..3)
Untuk menentukan apakah suatu relasi tertentu sudah dalam bentuk normal, harus
diuji FD antara atribut-atribut dalam relasi.
Dalam definisi relasi yang diusulkan oleh C. Beeri dan Cowokers (1978), bahwa
relasi terdiri dari dua komponen yaitu : atribut-atribut dan FD antara atribut-atribut
tersebut.
Sebuah relasi mempunyai bentuk :
R1 = ({X,Y,Z}, {X  Y, X  Z})
Atribut FD
Contoh :
Relasi ASSIGN
{ Person_ID, PROJECT, PROJECT_BUDGET, Time_Spent_By_Person_On_Project}
 atribut-atribut
{Person_ID, Project  Time_Spent_By_Person_On_Project, Project  Project_Budget}
 FD
Functional Dependencies dapat digunakan dalam mendesain suatu basis data
relasional untuk menghilangkan property-properti yang tidak diinginkan sehingga
didapatkan desain yang baik yang disebut dalam bentuk normal. Terdapat sejumlah
bentuk normal dimana yang dikenal (sangat popular) sebanyak 3 macam bentuk
normal, yaitu : bentuk normal pertama, kedua dan ketiga.
Bentuk Normal Pertama
Sebuah relasi berada dalam bentuk normal pertama jika semua domaun adalah simple
Contoh :
Relasi : LIVED_IN
Person Residence
Jack
Martha
City Date_Move_In
New York
Boston
Washington
030371
070780
080889
City
Boston
Philadelphia
Chicago
Date_Moved_In
040573
070675
080877
Gambar Relasi yang tidak normal
Relasi-relasi yang tidak/belum mempunyai domain yang simple (tidak berada dalam
bentuk normal pertama) disebut relasi tidak normal (unnormalized relations).
Bentuk normal dari relasi LIVED_IN sebagai berikut :
Relasi : LIVED_IN
Bentuk Normal Kedua :
Sebuah relasi R berada dalam bentuk normal kedua jika setiap atribut dari R
Functional Depencies (FD) penuh pada setiap kunci (key) relasi.
Dengan kata lain ada atribut yang bergantung pada subset kunci. Contoh relasi
ASSIGN.
Bentuk Normal Ketiga
Suatu relasi berada dalam bentuk normal ketiga jika :
1. relasi tersebut berada dalam bentuk normal kedua.
2. tidak terdapat atribut-atribut bukan kunci yang saling tergantung.
Contoh :
Relasi : PROJECT
Project Project-Budget Department Department Address
P1 32 Construct 20 Main
P2 40 Construct 20 Main
P3 27 Construct 20 Main
P4 17 Build 8 Fifth
Person City Date_Moved_In
Jack New York 030381
Jack Boston 070780
Jack Washington 080881
Martha Boston 040583
Martha Philadelphia 070685
Martha Chicago 080887
FD pada relasi PROJECT :
Project
Project_Budget
Department
Department_Address
Relasi project masih belum berada dalam bentuk normal ketiga karena ada
atribut bukan kunci (Department _Address) bergantung pada atribut
Department.
Relasi PROJECT dapat menjadi bentuk normal ke-3 dengan memecah relasi
Project dalam dua relasi yaitu :
PROJECT
Projects Project_Budget Department
P1 32 Construct
P2 40 Construct
P3 27 Construct
P4 17 Build
DEPARTMENT
Department Dep. Address
Construct 20 Main
Build 8 Fifth
1.3 METODOLOGI PERANCANGAN DIAGRAM E-R
Definisi basis data relasional adalah kumpulan relasi-relasi yang mengandung
semua informasi yang akan disimpan dalam basis data.
Tiap relasi dalam basis data disimpan dalam sebuah file tersendiri. Struktur file
yang digunakan untuk menyimpan relasi cukup sederhana, karena tiap record dalam file
memiliki format yang sama.
Perancangan basis data merupakan salah satu bagian terpenting dalam proses
pengembangan sistem. Perancangan basis data mempunyai beberapa tujuan yaitu :
1. menghilangkan redundansi data
2. meminimumkan jumlah relasi di dalam basis data
3. membuat relasi berada dalam bentuk normal, sehingga dapat
meminimumkan permasalahan berkenaan dengan penambahan,
pembaharuan dan penghapusan.
Teknik perancangan yang dilakukan dapat dilihat pada gambar berikut :

Tidak ada komentar: