BAB I
PENDAHULUAN
1.
Apa yang disebut dengan Sistem
Manajemen Basis Data (Database Management System) ?
ü
Himpunan data yang terintegrasi
ü
Model yang menggambarkan dunia
nyata
Entiti
(contoh : mahasiswa, mata kuliah)
Relasi
(contoh : Keanu mengambil mata kuliah dengan kode CS564)
ü
Sistem Manajemen Basis Data
adalah paket perangkat lunak yang didesain untuk melakukan penyimpanan dan
pengaturan basis data.
- Mengapa
menggunakan DBMS ?
ü Independensi (kemandirian) data dan akses yang efisien
ü Mereduksi waktu pengembangan aplikasi
ü Integritas dan keamanan data
ü Administrasi keseragaman data
ü Akses bersamaan dan perbaikan dari terjadinya crashes (tabrakan dari
proses serentak).
3.
Mengapa mempelajari Basis Data
?
ü Perpindahan dari komputasi ke informasi
ü Himpunan elemen data semakin banyak dan beragam
Perpustakaan digital, video
interaktif, Human genome project, EOS project
Kebutuhan untuk memperluas DBMS
ü DBMS mencakup bidang ilmu lain
Sistem
operasi, bahasa pemrograman, teori komputasi, AI, logika, multimedia
- Model
Data
ü Model data adalah himpunan konsep untuk menggambarkan suatu data
ü Skema adalah deskripsi umum dari himpunan data, dengan menggunakan
model data
ü Model relasional adalah model data yang paling banyak digunakan saat
ini.
Konsep utama : relasi, pada
dasarnya adalah sebuah table dengan baris dan kolom. Tiap relasi memiliki
skema, yang menggambarkan kolom atau fields
- Level
Abstraksi
ü Memiliki beberapa tinjauan (views), skema konseptual tunggal
(logical) dan skema fisik.
·
Menggambarkan bagaimana cara
user melihat data
·
Skema konseptual mendefinisikan
struktur logika
·
Skema fisikal menggambarkan
file dan indeks yang digunakan
ð Skema didefinisikan
menggunakan DDL (Data Definition Language), data dimodifikasi dengan
menggunakan DML (Data Management Language).
Contoh : Basis Data Universitas
ü
Skema Konseptual :
§
Students (sid: string, name :
string, login : string, age : integer, gpa : real)
§
Courses(cid : string, cname :
string, dredits : integer)
§
Enrolled(sid : string, cid :
string, grade : string)
ü
Skema Fisik
·
Relasi yang disimpan sebagai
file yang belum terurut
·
Indeks pada kolom pertama file
students
ü
Skema Eksternal
·
Course_info(cid : string,
enrollment : integer)
6.
Kebebasan Data
ü Aplikasi disekat dari bagaimana data disimpan dan distrukturkan
ü Kebebasan data secara logika : Perlindungan dari perubaha n struktur
logika suatu
ü data
ü Kebebasan data secara fisik : Perlindungan dari perubahan struktur
fisik suatu data
ð Kebebasan data adalah salah satu keuntungan utama dari penggunaan
DBMS
7.
Kontrol Proses Serentak
ü Eksekusi bersamaan dari beberapa user program, merupakan ukuran
performansi yang utama dari suatu DBMS.
·
Dikarenakan akses ke disk cukup
sering, dan relatif lebih lambat, maka perlu untuk menjaga waktu CPU pada
beberapa user program yang bekerja secara serentak.
·
Interleaving pada user program
yang berbeda dapat menyebabkan
ü ketidakonsistenan, misal : field check dihapus pada saat account
balance dihitung.
ü DBMS memastikan bahwa masalah seperti diatas tidak akan terjadi
seperti halnya sistem yang menggunakan single-user.
- Transaksi
: Eksekusi dari Program Basis Data
ü Konsep kuncinya adalah transaksi, merupakan urut-urutan atomic dari
aksi basis data (baca/tulis).
ü Tiap transaksi dijalankankan sampai selesai, dan basis data harus
tetap dijaga agar tetap dalam keadaan yang konsisten.
1.
User dapat menentukan beberapa
batasan integritas (integrity constraint) yang sederhana pada data, dan
kemudian DBMS akan mengusahakan batasan ini.
2.
Selain dari itu, DBMS tidak
benar-benar mengerti semantic dari data (contoh : tidak tahu cara menghitung
bunga bank, atau tidak tahu cara menetapkan nilai jual barang yang ada di
gudang … misalnya).
3.
Sehingga untuk memastikan
transaksi berlangsung secara konsisten, seluruhnya berada pada tanggung jawab
user.
9.
Penjadwalan dari
Transaksi yang berlangsung Serentak
ü DBMS memastikan bahwa eksekusi dari {T1, …, Tn} adalah sama dengan
eksekusi serial T1’ … Tn’
1.
Sebelum membaca/menulis obyek,
transaksi meminta lock pada obyek dan
menunggu sampai DBMS memberikan lock. Semua lock akan dilepas
(direlease) pada akhir dari transaksi
2.
Ide : Jika aksi dari T1 (missal menulis X)
menyebabkan kejadian Tj (missal membaca X), salah satu dari mereka , missal
akan T1, akan mendapatkan lock pada X pertama kali dan Tj akan menunggu sampai
aksi T1 diselesaikan.
3.
Apa yang terjadi jika TJ telah
memiliki lock kemudian setelah itu T1 meminta (request) lock Y ? (Deadlock akan
terjadi , maka T1 atau Tj harus di-abort atau di-restart).
10.
Memastikan sifat Atomik
ü DBMS memastikan sifat atomic (semuanya atau tidak ada property).
ü Ide : Simpan log (history) semua aksi yang dijalankan oleh DBMS pada
saat menjalankan himpunan aksi X.
1.
Sebelum perubahan dibuat
terhadap basis data, maka log entry harus berkorespondensi dengan lokasi yang
aman (system operasi seringkali tidak mendukung secara penuh hal seperti ini).
2.
Setelah terjadi crash
(tabrakan), akibatnya sebagian transaksi yang telah dieksekusi tidak lagi
dikerjakan dengan menggunakan log.
11.
Basis Data membuat
segalanya menjadi lebih mudah
ü Pemakai akhir dan vendor DBMS
ü Programmer aplikasi basis data
Misal : webmaster yang
canggih
ü Administrator Basis Data (Database Administrator)
1.
Desain skema Logikal/Fisikal
2.
Menangani pengamanan dan
kewenangan
3.
Ketersediaan data, perbaikan
crash
4.
Penyesuaian oleh Basis Data
Yang penting adalah mengerti bagaimana
cara DBMS mengerjakan semua itu
12.
Struktur DBMS
ü Biasanya DBMS memiliki arsitektur layer
ü Gambar diatas tidak menunjukkan kontrol proses serentak (concurrency
control) dan komponen perbaikan (recovery).
ü Gambar tersebut adalah salah satu dari beberapa kemungkinan
arsitektur : tiap system memiliki variasinya sendiri.
13.
Model DBMS (Database
Management Systems)
ü
Hirarkis (Hierarchical)
ü
Jaringan (Network)
ü
Relasional (Relational)
ü
Obyek (Object)
ü
Cerdas (Intelligency)
14.
Ringkasan
ü
DBMS digunakan untuk
pemeliharaan himpunan query yang sangat banyak.
ü
Keuntungan dari penggunaan DBMS
meliputi perbaikan dari system yang crash, akses serentak, pengembangan
aplikasi secara cepat, keamanan dan integritas data.
ü
Level abstraksi memberikan
kebebasan data.
ü
Umumnya DBMS memiliki
arsitektur per layer
DBMS adalah salah satu bidang yang
paling banyak diminati dalam ilmu
komputer.
BAB II
ABSTRAKSI
DATA
2.1. 3 Level arsitektur ANSI-SPARC
(American National Standards
Institute – Standards Planning and Requirements Committee)
1 Terminologi standar dan arsitektur umum untuk sistem database
diciptakan tahun 1971 oleh DBTG (Data Base Task Group) ditunjukkan oleh CODASYL
(Conference on Data Systems and Languages)
1 DBTG mengenal kebutuhan untuk pendekatan 2 level dengan
1.
system view è
schema
2.
user views è
subschemas
1 ANSI-SPARC tahun 1975, memperkenalkan kebutuhan terhadap pendekatan
3 level dengan suatu data dictionary.
1 Bentuk suatu arsitektur 3 level terdiri dari :
1. external level / view level
2. conceptual level
3.
internal level / physical level
|
|
User 1
|
|
User 2
|
|
User n
|
External
level
|
|
View 1
|
|
View
2
|
……
|
View n
|
|
|
|
|
|
|
|
Conceptual
level
|
|
|
|
Conceptual
schema
|
|
|
|
|
|
|
|
|
|
Internal
level
|
|
|
|
Internal
schema
|
|
|
|
|
|
|
|
|
|
Physical data organization
|
|
|
|
Database
|
|
|
External level
|
Pandangan
(view) pemakai terhadap database. Level ini menggambarkan bagian database
yang relevan untuk pemakai tertentu
|
-
External level berisi sejumlah
external view yang berbeda terhadap database.
-
Setiap user mempunyai suatu
pandangan dari ‘real world’ disajikan dalam bentuk yang familiar untuk user
tersebut.
Conceptual level
|
Komunitas view
dari database. Level ini menggambarkan data apa yang disimpan dalam
suatu database dan hubungan sejumlah data
|
-
Level menengah dalam arsitektur
3 leval adalah conceptual level.
-
Level ini berisi struktur
logikal dari database keseluruhan
-
Conceptual level menyajikan:
a.
semua entity, atribut dan
hubungannya
b.
batasan pada data
c.
informasi semantic tentang data
d.
informasi keamanan dan
integritas
-
Conceptual level mendukung
setiap external view
Internal
level
|
Representasi
fisik database pada suatu komputer. Level ini menggambarkan bagaimana
data disimpan dalam suatu database
|
-
Internal level meliputi
implementasi fisikal dari database untuk mencapai hasil run-time yang optimal
dan utility tempat penyimpanan.
-
Hal ini meliputi stuktur data
dan organisasi file yang digunakan untuk menyimpan data pada media penyimpanan.
-
Internal level dikonsentrasikan
pada:
a.
alokasi tempat penyimpanan
terhadap data dan index
b.
gambaran terhadap penyimpanan
record (ukuran untuk item data yang disimpan)
c.
penempatan record
d.
teknik kompresi data dan
enkripsi data
2.2 Schema, Mapping dan
Instances
1.
Schema
1 Gambaran kesluruhan dari
database disebut dengan database schema
1 Ada 3 jenis schema yang
berbeda dalam suatu database dan masing-masingnya didefinisikan menurut
arsitektur 3 level abstraksi tersebut.
o Level tertinggi mempunyai beberapa external schema (juga
subschema) yang berhubungan dengan view terhadap data yang berbeda-beda
o
Pada conceptual level, kita
mempunyai conceptual schema. Pada conceptual schema menggambarkan semua
item data dan hubungan antara item data bersama dengan batasan integritas. Dan
hanya ada satu conceptual schema per database.
o
Level terendah dari abstraksi,
kita mempunyai internal schema.
Internal schema merupakan uraian lengkap dari model internal, yang
berisi definisi terhadap record yang disimpan, metoda terhadap representasi,
data field, skema index dan hashing yang digunakan. Dan hanya ada satu internal
schema.
2.
Mapping
1 DBMS bertanggung jawab untuk
memetakan antara ketiga jenis schema tersebut.
1 Conceptual schema direlasikan ke internal schema melalui suatu conceptual
/internal mapping. Dalam hal ini memungkinkan DBMS dapat medapatkan record aktual
atau kombinasi record dalam penyimpanan fisik
1 Setiap external schema
direlasikan ke conceptual schema oleh external/conceptual mapping. Dalam
hal ini memungkinkan DBMS untuk memetakan nama dalam pandangan pemakai atas
bagian yang relevan dari conceptual schema.
External view 1
|
|
External view 2
|
NoBP
|
Nama
|
TglLahir
|
Alamat
|
|
NoBP
|
Nama
|
ProgStudi
|
|
|
|
|
|
|
|
|
Conceptual level
|
NoBP
|
Nama
|
TglLahir
|
Alamat
|
Agama
|
ProgStudi
|
Internal level
|
struct MHS {
int NoBP;
char Nama [25];
struct date Date_of_Birth;
char Alamat [30]
struct MHS *next;
};
index NoBP; index
ProgStudi
|
pointer ke record MHS berikutnya
mendefinisikan index MHS
|
3.
Instance
1 Data dala database pada
beberapa maksud dalam waktu tertentu disebut dengan database instance
Data Independence
1 Tujuan utama dari arsitektur
3 level tersebut adalah untuk menyediakan data independence, dimana level
diatasnya tidak berpengaruh oleh perubahan untuk level dibawahnya.
1 Ada 2 jenis data
independence:
1.
Logical data independence
2. Physical
data independence
Logical data independence
|
Logical data
independence menunjuk kepada kekebalan dari external schema untuk
perubahan-perubahan dalam conceptual schema
|
-
Perubahan conceptual schema,
seperti: memungkinkan penambahan atau penghapusan entiti, atribut atau
relationship (hubungan) tanpa harus mengganti external schema atau harus
menulis kembali program aplikasi yang sudah ada.
Physical data independence
|
Physical data
independence menunjuk kepada kekebalan dari conceptual schema untuk perubahan-perubahan
dalam internal schema
|
-
Perubahan internal schema,
seperti: penggunaan organisasi file atau struktur penyimpanan yang berbeda,
penggunaan media penyimpanan yang berbeda, perubahan algoritma indeks atau
hashing tanpa harus mengganti/merubah conceptual atau external schema.
|
|
External
schema
|
|
External
schema
|
|
External
schema
|
|
External/conceptual
mapping
|
|
|
|
|
|
Logical data
|
indepedence
|
|
|
|
|
Conceptual
schema
|
|
|
|
Conceptual/internal
mapping
|
|
|
|
|
|
Physical data
|
independence
|
|
|
|
|
Internal
schema
|
|
|
|
|
|
|
|
|
|
|
|
BAB II
PERANCANGAN
BASIS DATA
Gambar : Struktur Database Management System (DBMS)
3.1.
Perancangan Relational Database
·
Perancangan suatu database
dillakukan untuk menghidari
1. Pengulangan Informasi
2. Ketidak mampuan untuk merepresentasikan suatu informasi tertentu
3. Hilangnya informasi
·
Pendekatan yang dapat dilakukan
dalam mengurangi hal-hal di atas adalah dengan normalisasi
Normalisasi
Dasar-dasar normalisasi
·
Normal form (bentuk normal)
adalah suatu klas dari skema database relasi yang didefinisikan untuk memenuhi
tujuan dari tingginya integritas dan maintainability
·
Kreasi dari suatu bentuk normal
disebut normalisasi
·
Normalisasi dicapai dengan
penganalisaan ketergantungan diantara setiap individu attribut yang
diassosiasikan dengan relasinya
First normal form
·
Suatu relasi ada dalam kondisi
First Normal Form (1NF) jika dan hanya jika semua domain yang tercakup terdiri
hanya atomic value, misalnya tidak ada pengulangan group (domain-domain) dalam
suatu tuple
·
Keuntungan dari 1NF dibanding
Unnormalized relation (UNRs) adalah pada bentuk penyederhanaan representasi dan
kemudahan dalam pengembangan menggunakan suatu query language
·
Kekuranannnya adalah kebutuhan
terhadap duplikasi data
·
Sebagian besar sistem relasi
(tidak semua) membutuhkan suatu relasi dalam bentuk 1NF
·
contoh
paper-id
|
Inst-name
|
inst-addr
|
editor-id
|
|
4216
|
univ-mich
|
ann-arbor
|
woolf
|
5789
|
math-rev
|
providenc
|
bradlee
|
|
|
|
|
|
publ-id
|
Auth-id1
|
Auth-name1
|
Auht-addr1
|
|
14
|
7631
|
yang-d
|
peking-univ
|
|
53
|
1126
|
umar-a
|
bellcore
|
|
|
|
|
|
uth-id2
|
Auth-name2
|
Auth-addr2
|
Auth-id3
|
4419
|
mantei-m
|
univ-toron
|
2692
|
7384
|
fry-J
|
mitre
|
3633
|
|
|
|
|
|
|
|
|
|
|
|
|
Auth-name3
|
..........
|
koenig-i
|
|
bolton-d
|
|
|
|
Relasi
tampa normalisasi
paper-id
|
inst-name
|
inst-addr
|
editor-id
|
publ-id
|
auth-id
|
auth-name
|
auth-addr
|
4216
|
univ-mich
|
ann-arbor
|
woolf
|
14
|
7631
|
yang-d
|
peking-univ
|
4216
|
univ-mich
|
ann-arbor
|
woolf
|
14
|
4419
|
mantei-m
|
univ-toron
|
4216
|
univ-mich
|
ann-arbor
|
woolf
|
14
|
2692
|
koenig-j
|
math-rev
|
5789
|
math-rev
|
providen
|
bradlee
|
53
|
1126
|
umar-a
|
bellore
|
5789
|
math-rev
|
providen
|
bradlee
|
53
|
7384
|
fry-j
|
mitre
|
5789
|
math-rev
|
providen
|
bradlee
|
53
|
3633
|
bolton-d
|
math-rev
|
|
|
|
|
|
|
|
|
Relasi
dengan normalisasi pertama
Second Normal Form
·
Suatu superkey adalah suatu
himpunan dari satu atau lebih attribute, yang mana, dimana diambil secara
khusus yang memmungkinkan kita untuk mengidentifikasikan secara unik satu
entitas atau relasi
·
Suatu Candidate key adalah
suatu subset dari attribut-attribut pada superkey yang juga merupakan superkey
dan tidak reducible ke superkey yang lain
·
Suatu primary key dipilih dari
himpunan candidate key untuk digunakan pada suatu index untuk relasi yan
bersangkutan
·
Kepemilikan dari satu atau
beberapa attribute yang dapat didefinisikan secara unik dari nilai satu atau
beberapa attribute disebut functional dependency
·
Diberikan suatu relasi (R),
suatu himpunan (B) adalah functionally dependent pada himpunan attribut yang
lain(A) jika, pada satu waktu tertentu, setiap nilai A diassosiasikan dengan
satu nilai B, bentuk ini adalah suatu FD yang dinotasikan dengan A ® B
·
contoh
R : {paper-id,
inst-name, isnt-addr, editor-id, publ-id, auth-id, auth-name,
auth-addr}
Fds : paper-id, auth-id ® auth-name
paper-id,auth-id ® auth-addr
paper-id, auth-id ® inst-name
paper-id, auth-id ® inst-addr
auth-id ®
auth-name
auth-id ® auth-addr
inst-name ® inst-addr
paper-id ® editor-id
paper-id ® publ-id
bentuk sederhana
paper-id,
auth-id ® auth-name, auth-addr, inst-name,
inst-addr
auth-id ® auth-name, auth-addr
inst-name ® inst-addr
paper-id ® pub-id, editor-id
·
Suatu relasi adalah dalam
posisi second normal form (2NF) jika dan hanya jika relasi tersebut juga dalam
1NF dan setiap nonkey attribute tergantung penuh pada primary key-nya
·
2NF membutuhkan bahwa FD apapun
didalam relasi harus berisi semua komponen dari primary key sebagai
determinant, baik secara langsung atau transitif
·
contoh, primary key adalah
paper_id, auth_id. Bagaimanapun, terdapat Fds yang lain (auth_Id ® auth-name, auth-addr, and paper-id ® pub-id, editor-id) yang berisi satu komponen dari primary key,
tetapi tidak kedua-duanya.
·
Mengapa harus 2NF,
pertimbangkan keuntungan dari 1NF pada R. paper, pub-id dan editor-id dibuat
duplikat untuk setiap author dari paper. Jika editor dari publikasi untuk suatu
paper berubah, beberapa tuple harus pula di-update. Akhirnya, jika satu paper
di ambil, semua tupple yang diassosiasikan harus dihapus. Bentuk ini akan
memberikan efek samping pada penghapusan informasi yang mengassosiasikan suatu
auth-id dengan auth-name dan auth-addr.
·
Suatu cara yang dapat dilakukan
untuk hal tersebut adalah dengan mentransformasikan relasi kedalam dua atau
beberapa relasi 2NF
·
contoh
R1 : paper-id, auth-id ® inst-name, inst-addr
R2 : auth-id ® auth-name, auth-addr
R3 : paper-id ® pub-id, editor-id
Third Normal Form
·
Pada R1, inst_addr pasti
diduplikat untuk setiap kombinasi paper_author yang mejelaskan satu inst_name.
Juga, jika kita menghapus satu paper dari database, kita harus memberikan efek
samping penghapusan assosiasi antara inst_name dan inst_addr.
·
Suatu relasi dalam Third Normal
Form (3NF) jika dan hanya jika relasi tersebut dalam 2NF dan setiap non key
attribute adalah nontransitive dependent pada primary key
·
Contoh :
R11 : paper-id, auth-id ® inst-name
R12 : inst_name ® inst_addr
R2 : auth-id
® auth-name, auth-addr
R3 : paper-id
® pub-id, editor-id
Boyce-Codd Normal Form
·
Suatu Trivial FD adalah suatu
bentuk YZ ® Z
·
Suatu relasi R dalam kondisi
Boyce-Codd Normal Form (BCNF) jika untuk semua nontrivial FD X ® A, X adalah superkey
·
BCNF adalah suatu bentuk yang
lebih kuat dari normalisasi ke tiga. 3NF equivalent dengan perkataan bahwa
untuk setiap nontrivial FD X ® A,
dimana X dan A merupakan simple atau composite attribut, satu dari dua kondisi
harus dipenuhi.
X adalah superkey, atau
A adalah prime attribute
·
BCNF mengelimisasi kondisi
kedua dari 3NF
3.2.
ENTITY-RELATIONSHIP MODEL
·
Entity-Relationship data model
adalah didasarkan pada persepsi dari suatu dunia nyata yang terdiri dari
sekumpulan object dasar yang disebut entitas dan relasi antara object-object
tersebut
·
Entity-Relationship
dikembangkan dalam rangka untuk memberikan fasilitas dalam perancangan database
dengan memberikan kesempatan ... spesifikasi dari suatu enterprise scheme,
seperti suatu skema yang merepresentasikan keseluruhan struktur logika dari
database
Entitas dan Himpunan Entitas-entitas
·
Entitas adalah suatu object
yang ada dan dapat dibedakan dengan object-object yang lain
·
Suatu Entitas dapat nyata, misalnya seseorang, buku, dll
·
Suatu Entitas dapat berupa abstrak, misalnya suatu kosep, hari
libur, dll
·
Suatu huimpunan entitas (Entity Set) adalah suatu himpunan yang
memiliki tipe yang sama, contoh Himpunan orang
yang memiliki account pada sebuah
bank dapat didefinisikan sebagai customer
·
Himpunan entitas tidak perlu di
disjoint
·
Suatu Entitas direpresentasikan
oleh suatu himpunan attribut
·
Setiap attribut terdapat suatu
himpunan nilai yang dapat diberikan pada attribut tersebut yang dikatakan
sebagai domain dari suatu attribut
·
Secara formal, suatu attribut
adalah suatu fungsi yang memetakan dari suatu himpunan entitas kedalam suatu
domain
·
Setiap entitas dijabarkan
dengan suatu himpunan dari attribute dan nilai data, contoh suatu customer dijelaskan dengan himpunan {(name, Harris),(social-security, 890-12-3456),(street,
North),(city, Rye)}
·
Variabel dalam suatu bahasa
pemograman berkorespondensi dengan konsep dari suatu entitas pada E-R model
·
Pertimbangkan :
- branch, himpunan semua cabang dari suatu bank, setiap cabang
dijabarkan dengan attribut branch-name,
branch-city, dan assets
- customer, himpunan semua orang yang memiliki account pada bank, setiap
customer dijabarkan dengan attribute customer-name,
sosial-security, street, customer-city
- employee, himpunan semua orang yang berkerja pada sebuah bank, setiap
employee dijabarkan dengan attribut employee-name,
employee-number
- account, himpunan semua account yang berada dalam bank, setiap account
dijabarkan dengan attribut account-number,
balance
- transaction, himpunan semua transaksi akuntansi yang terjadi di bank,
setiap transaksi dijabarkan dengan attribut transaction-number, date,
amount
Relasi dan Himpunan Relasi-relasi
·
Suatu Relasi adalah suatu
assosiasi diantara beberapa entitas
·
Suatu himpunan relasi adalah
suatu himpunan relasi yang memiliki tipe yang sama
·
Jika E1, E2,
..... En adalah himpunan
entitas, maka suatu himpunan relasi R
adalah suatu subset dari
{(e1, e2, ... ,en)
| e1 Î E1, e2 Î E2, . . . ., en Î En}
dimana (e1, e2, ... ,en) adalah suatu relasi
·
Binary Relationship Set adalah relasi
antara dua himpunan entitas
·
Ternary Relationship Set adalah relasi
antara tiga himpunan entitas
·
N-ary
Relationship Set adalah relasi antara n
himpunan entitas
·
Suatu relasi dapat memiliki
attribut
Attribut-Attribut
·
Sekumpulan attribut-attribut
akan dapat menjelaskan suatu entitas
·
Pertimbangkan himpunan entitas
employee dengan attribut employee-name
dan phone-number, Sementara itu suatu telephone adalah suatu entitas yang
memiliki attribut phone-number dan location
Mapping
·
Mapping cardinality adalah suatu ekspresi
yang menyatakan jumlah entitas yang dapat diassisiasikan dengan entitas lain
pada suatu himpunan relasi.
One-to-one
One-to-many
Many-to-one
Many-to-many
Key (Kunci)
·
Superkey adalah suatu himpunan dari satu
atau beberapa attribut yang diambil secara kolektif, yang memberikan kesempatan
kepada kita untuk mengidentifikasikan suatu entitas secara unik dalam suatu
himpunan entitas
·
Candidate key adalah suatu super set
dari suatu super key
·
Primary key adalah suatu key dari
candidate key yang dipilih oleh user untuk mengidentifikasikan suatu entitas
dalam suatu data base
·
Weak entity set adalah suatu himpunan entitas yang tidak memiliki suatu attrtibut
yang dapat dijadikan key
·
Suatu himpunan entitas yang
memiliki primary key adalah disebut sebagai strong
entity set
·
Suatu weak entity dapat dibuat menjadi berarti dengan menggunakan
suatu relasi, dan harus dalam bentuk one-to-many
·
Discriminator dari suatu himpunan weak
entity adalah suatu himpunan attribut yang digunakan untuk membedakan entitas
tersebut
·
Primary key dari weak entity
didapatkan dengan membentuk primary key pada strong entity ditambah discriminator entity tersebut
·
Diperlukan suatu mekanisme yang
sama dengan entitas untuk suatu relasi
·
Attribut untuk suatu relasi
tampa attribut adalah
Primary-key(E1)
È Primary-key(E2) È ... È Primary-key(En)
·
Attribut untuk suatu relasi
dengan attribut {a1, a2, ... an}
Primary-key(E1)
È Primary-key(E2) È ... È Primary-key(En)
È {a1, a2,... an}
E-R
Diagram
Entity-Relationship Diagram
One-to-many Relationship
Many-to-one Relationship
One-to-one
Relationship
E-R
Diagram dengan indikator Role
E-R
Diagram dengan Weak Entity
E-R
Diagram dengan Ternary Relationship
Pengurangan E-R Diagram menjadi tabel
·
Setiap himpunan entitas dan
relasi dalam E-R Diagram terdapat suatu tabel yang unik yang ditandai dengan
nama yang berkorespondensi dengan himpunan entitas, atau himpuna relasi
·
Setiap tabel memiliki sejumlah
kolom yang ditandai dengan suatu nama yang unik
E-R
Diagram
Representasi dari suatu himpunan Strong Entity
·
E adalah suatu himpunan strong entity
dengan diskripsi serangkaian attribut a1,
a2, ... an, maka dapat
direpresentasikan dengan suatu tabel yang bernama E dengan n kolom dimana
setiap kolom berkoresponden dengan setiap attribut
·
Suatu tabel akan berisi cartesian product dari nilai yang
mungkin ada dalam attribut untuk suatu himpuna entitas
Account-number
|
balance
|
|
customer-name
|
social-seciruty
|
street
|
customer-city
|
245
|
1000
|
|
Oliver
|
458-14-756-14
|
Main
|
Harrison
|
458
|
2500
|
|
Harir
|
578-78-789-44
|
North
|
Rye
|
756
|
30000
|
|
Mary
|
758-25-468-11
|
Park
|
Harison
|
256
|
45000
|
|
Brill
|
354-87-156-78
|
Nassa
|
Princeton
|
Account
Table
|
|
Customer
Table
|
Account-number
|
transcation-number
|
date
|
amount
|
245
|
5
|
11 May 1990
|
50
|
465
|
11
|
17 June 1990
|
+70
|
748
|
103
|
28 December 1990
|
-100
|
Transaction table
|
social-security
|
account-number
|
date
|
458-14-756-14
|
245
|
11 May 1990
|
578-78-789-44
|
465
|
17 June 1990
|
758-25-468-11
|
748
|
28 December 1990
|
CustAcc Table
|
Representasi dari Weak-Entity
·
A adalah suatu himpunan weak-entity dengan attribut a1, a2, ..., an,
B adalah suatu himpunan strong entity
dimana A tergantung dengannya, dengan primary key b1, b2,
..., bn, maka untuk
meprepresentasikan himpunan entitas A
adalah dengan membentuk tabel dengan kolom-kolom yang berupa himpunan
{a1, a2, .... an)
È {b1, b2, ... , bn}
Representasi dari himpunan Relationship
·
R adalah suatu himpunan relasi yang
melibatkan himpunan entitas yang terdiri E1,
E2, ... E3 , Attribute(R) terdiri dari n attribut,
maka untuk merepresentasikan ini dibentuk suatu tabel dengan nama R dengan n kolom dimana setiap kolom berkorespondensi dengan setiap attribut
Generalisasi
·
Generalisasi digunakan untuk meng....
kesamaan tipe diantara entitas yang lebih rendah tingkatannya dan menyembunykan
perbedaannya.
·
Suatu yang nyata dibuat dengan
suatu pewarisan atau inheritance
·
Terdapat dua metode yang
berbeda untuk pentransformasian suatu E-R diagram yang menerapkan generalisasi
ke dalam bentuk tabular
- Buat suatu tabel untuk himpunan entitas yang memiliki level
lebih tinggi, untuk setiap himpunan entitas yang lebih rendah, buat suatu
tabel yang memuat suatu kolom untuk setiap attribut-attribut dari entitas
tersebut ditambah satu kolom untuk setiap primary key
Generalisasi
- Tidak membuat suatu tabel untuk himpunan entitas yang lebih
tinggi, melainkan, untuk setiap himpunan entitas yang lebih rendah, buat
suatu tabel dengan menyertakan suatu kolom untuk setiap attribut dari
entitas tersebut ditambah kolom untuk setiap attribut dari himpunan entitas
yang lebih tinggi
Aggregasi
·
Aggregasi adalah suatu abstraksi pada
relasi-relasi yang buat menjadi suatu entitas yang bertingkat tinggi
E-R
Diagram dengan kelebihan Relationship
E-R
Diagram dengan Aggregation
Perancangan dari suatu skema E-R Database
·
Hal-hal yang dapat diperhatikan
oleh seorang perangcang dalam merancang suatu skema database adalah :
- Penggunaan suatu ternary relationship dibanding sepasang binary
relationship
SQL
(Structured Query Language)
·
Pertama dibuat oleh IBM’s San
Jose Research Laboratory, sekarang berganti nama menjadi Almaden Research
Center
·
SQL memiliki beberapa bagian
yaitu
- Data
Definition Language
- Interactive
Data Manipulation Language
- Embedded
Data Manipulation Language
- View
Definition
- Authorization
- Integrity
- Transaction
Control
Struktur
Dasar SQL
·
Tiga clause yang menjadi dasar
dari SQL yaitu
·
Select, clause ini berkoresponden dangan
projection operation pada aljabar
relasi
·
From, clause ini berkorespondensi dengan
cartesian product pada aljabar relasi
·
Where, clause ini berkorespondensi
dengan selection predicate pada
aljabar relasi
·
Bentuk umum dari SQL query
adalah
select A1, A2, ... , A3
from r1, r2, ..., r3
where P
Operasi
Himpunan
·
Operasi himpunan yang ada pada
SQL meliputi operasi Union, Intersect, minus
select distinct customer-name
from deposit
where branch-name = “Perryridge”
Select distinct customer-name
from borrow
where branch-name = “Perryridge”
(select distinct customer-name
from deposit
where branch-name = “Perryridge”)
union
(Select distinct customer-name
from borrow
where branch-name = “Perryridge”)
(select distinct customer-name
from deposit
where branch-name = “Perryridge”)
intersect
(Select distinct customer-name
from borrow
where branch-name = “Perryridge”)
(select distinct customer-name
from deposit
where branch-name = “Perryridge”)
minus
(Select distinct customer-name
from borrow
where branch-name = “Perryridge”)
Predicate
dan Join
·
Pada aljabar relasi
Pcustomer-name,customer-city(borrow X customer)
·
Bentuk SQL
Select distinct customer.customer-name,customer-city
from borrow,customer
where borrow.customer-name = customer.customer-city
·
Predicate pada where clause dapat
diberikan logical conectivity (and, Or, Not) contoh
Select distinct customer.customer-name,customer-city
from borrow,customer
where borrow.customer-name = customer.customer-city and
branch-name
= “Perryridge”
·
Dalam predicate juga dapat
berisi serangkaian operasi aritmatika
·
SQL terdapat clause between,
contoh
select account-number
from deposit
where balance between 90000 and 100000
dibanding
select account-number
from deposit
where balance £ 10000 and balance
³ 90000
·
SQL juga menyertakan suatu
operator “string-matching” untuk
perbandingan pada character-string
·
Pola dijelaskan dengan
menggunakan dua karakter khusus
1.
percent ( % ), % digunakan untuk mencocokan substring tertentu
2.
underscore ( _ ), _ digunakan untuk mencocokan karakter tertentu
·
Contoh
1.
“Perry%” maka akan mencocokkan
dengan semua string yang memiliki substring depan adalah “Perry”, seperti
“Perryridge”
2.
“%idge%” maka akan mencocokan
dengan semua string yang memiliki substring “idge” di tengah-tengah string
tersebut, seperti “Perryridge”, “Rock Ridge”,
“Ridgeway”
3. “_ _ _” memcocokan string apa saja dengan 3 karakter
4. “_ _ _%” mencocokan string dengan setidak-tidaknya 3 karakter
·
Contoh pada SQL
Select customer-name
from customer
where street like
“%Main%”