Varian entitas terbagi mejadi dua bagian, yaitu entitas kuat dan entitas
lemah.
a.Entitas kuat adalah entitas yang dilibatkan dalam ERD tidak memiliki ketergantungan dengan
himpunan entitas lainya.
b.Entitas lemah adalah entity yang keberadaanya tergantung keberadaan entity lain. Entitas lemah
tidak memiliki atribut yang dapat berfungsi sebagai key attribut.
Berikut ini merupakan contoh entistas kuat dan lemah, yakni :
·Agregasi merupakan penggambaran himpunan relasi yang secara langsung menghubungkan
sebuah entitas dengan sebuah himpunan relasi dalam ERD.
·Transformasi model
data ke basis data fisik yaitu komponen ERD (himpunan
entitas dan relasi) ditransformasikan menjadi tabel . atribut yang melekat pada
masing-masing himpunan entitas dan relasi akan dinyatakan sebagai field dari
tabel yang sesuai.
·Relasi
berderajat relasi 1-1 yakni menghubungkan dua buah
himpunan entitas yang direpresentasikan dalam bentuk penambahan atau penyertaan
atribut relasi ke tabel yang mewakili salah satu dari himpunan entitas.
·Relasi
berderajat 1-N yaitu menghubungkan dua buah himpunan entitas
direpresentasikan dalam bentuk pemberian atau pencantuman atribut key dari
himpunan entitas berderajat 1 ke tabel yang mewakili himpunan entitas
berderajat N.
·Relasi
berderajat N-N yaitu menghubungkan dua buah himpunan entitas,
diwujudkan dalam bentuk tabel khusus yang memiliki field (foreign key) yang
berasal dari key-key dari himpunan entitas yang dihubungkan.
Subquery Subquery adalah statement SELECT yang dilampirkan
sebagai klausa dalam SQL Statement yang lain. Untuk penulisan subquery pada SQL (SELECT
select_list FROM table); Penggunaan Subquery
Subquery ini digunakan untuk menyelesaikan persoalan dimana terdapat suatu
nilai yang tidak diketahui. Subquery terdapat banyak kolom yang merupakan tiap
baris dari main query dibandingkan dengan nilai dari subquery multiple-row dan
multiple-column.
Tipe Perbandingan Pada Subquery:
a.Perbandingan Berpasangan
b.Perbandingan Tidak Berpasangan
Penggunaan Subquery dalam Klausa From
Query ini dikenal juga dengan istilah inline view, karena tidak membentuk
object database. Contoh penggunaan query pada from : (SELECT department_id, REDS(salary) salavg FROM employees GROUP BY
department_id)
Ekspresi Scalar Subquery
Ekspresi scalar subquery merupakan subquery yang mengembalikan hanya satu nilai
kolom dari satu baris. Contoh penggunaannya dengan ekspresi Case : (SELECT department_id FROM departments WHERE
location_id = 1800).
Contoh penggunaanya dengan
klausa ORDER BY : (SELECT department_name FROM departments
WHERE e.department_id = d.department_id);
Korelasi Subquery
Korelasi Subquery digunakan untuk pemrosesan baris per baris. Tiap-tiap
subquery dijalankan sekali untuk setiap baris dari outer query. Proses dari Korelasi
Proses dari korelasi itu sendiri bagaiman mengambil baris dari outer query
kemudian menjalankan inner query untuk quality atau disquality baris kandidat
selanjutnya menggunakan nilai dari inner querry quality atau disquality baris
kandidat dan kembali lagi ke awal. Cara
penulisan korelasi subquery : (SELECT
column1, column2 FROM table2 WHERE expr1 = expr2); Penggunaan Operator Exist Dan Non Exist
Operator EXISTS dan NOT EXIST digunakan untuk menguji keberadaan dari baris
dalam himpunan hasil dari subquery.
Penggunaan Klausa With
Dalam menggunakan klausa WITH, kita dapat menggunakan blok query yang sama
dalam statement SELECT pada saat terjadi lebih dari sekali dalam complex query.
Merupakan hubungan/relationalship antara atribut-atribut dalam relasi.
Suatu atribut dikatakan functionally dependent jika harga atribut tersebut
menentukan harga atribut lain. Disimbolkan dengan tanda panah dan dibaca “secara
fungsional menentukan”.
Notasi dari functional dependency adalah A -> B. Dibaca atribut A
menentukan atribut B.
Contoh:
Tabel pemasok barang
No_pemasok
Nama_pemasok
5
Dina
15
Zian
20
Esa
Ketergantungan pada tabel pemasok barang diatas adalah :
No_pemasok -> Nama_pemasok atau No_pemasok menentukan Nama_pemasok
Tabel Siswa
Matkul
Nim
Nama
Nilai
Psikopen
5302411033
Dina
A
Bahasa Inggris
5302411013
Yanuar
B
Teknik Digital
5302411008
Sigit
AB
Ketergantungan pada tabel siswa diatas adalah :
Nim -> Nama atau Nim menentukan Nama , karena untuk setiap nilai dengan
Nim yang sama maka nilai dengan nama juga akan sama.
{Matkul,Nim} -> Nilai
Matkul dan Nim dapat menentukan Nilai jika Matkul dan Nilai merupakan
gabungan.
Macam-Macam Functional Dependency
1.Full Functional Dependency
Menunjukkan suatu relasi jika terdapat atribut A dan B
dalam satu relasi, dimana atribut B memiliki ketergantungan fungsional secara
penuh pada atribut A dan atribut A ketergantungan pada atribut B. Full functional
dependency hanya terdiri dari satu atribut saja.
2.Partially Dependency
Merupakan ketergantungan fungsional dimana beberapa
atribut dapat dihilangkan dari A dengan ketergantungan tetap dipertahankan. Dan
B memiliki dependensi terhadap subset A. Pada partially dependency ini salah
satu dari atributnya harus primary key.
3.Transitive Dependency
Merupakan suatu ketergantungan fungsional dimana A, B,C
adalah atribut sebuah relasi dimana A -> B dan B -> C. Maka, C dikatakan
sebagai transitive dependency terhadap A melalui B
B. Normalisasi
Normalisasi merupakan suatu proses untuk mendapatkan struktur tabel
atau relasi yang efisien dan bebas dari anomali, dan mengacu pada cara
data item dikelompokkan ke dalam struktur record.
·Tujuan Normalisasi , adalah:
1.
Mengoptimalkan struktur-struktur tabel.
2.
Meningkatkan kecepatan.
3.
Menghilangkan pemasukan data yang sama.
4.
Lebih efisien dalam penggunaan media penyimpanan.
5.
Mengurangi redudansi yaitu adanya penggandaaan data.
6.
Menghindari anomali yaitu adanya keanehan-keanehan dari data.
7.
Menjaga integritas data.
Bentuk-bentuk Normalisasi :
1.First Normal Form (1NF)
Merupakan suatu keadaan dimana perpotongan baris dan
kolom pada relasi hanya berisi satu nilai. Pada bentuk ini tidak diperbolehkan
adanya atribut multivalue (atribut bernilai banyak) dan atribut komposit, atau
perpaduan di antara keduanya.
2.Second Normal Form (2NF)
Merupakan suatu tabel dikatakan 2NF jika 1NF sudah
terpenuhi dan semua atribut selain primary key secara utuh memiliki
ketergantungan fungsional pada primary key. Jika terdapat atribut yang tidak
memiliki ketergantungan terhadap primary key, maka atribut tersebut harus
dipindah atau dihilangkan.
3.Third Normal Form (3NF)
Merupakan suatu tabel dikatakan 3NF apabila 2NF sudah
terpenuhi dan tidak ada atribut non primary key yang memiliki ketergantungan
terhadap atribut non primary key yang lainnya (ketergantungan transitif).
4.Boyce-Codd Normal Form (BCNF)
Merupakan Semua anomali yang tersisa dari hasil penyempurnaan
kebergantungan fungsional di atas telah dihilangkan.
5.Four Normal Form (4NF)
Semua kebergantungan bernilai banyak (multivalued dependencies) telah
dihilangkan.
6.Five Normal Form (5NF)
Semua anomali yang tertinggal telah dihilangkan.
Langkah Normalisasi
Dimulai dari bentuk yang tidak normal -> bentuk 1NF (menghilangkan
atribut-atribut ganda) -> 2NF (menghilangkan dependensial partial) -> 3NF
(menghilangkan dependency transitive) -> BCNF (menghilangkan ketergantungan
penentunya bukan kunci candidate) -> 4NF (menghilangkan lebih dari satu
dependency yang bernilai ganda) -> 5NF (mengatasi dependency ganda).
(Bahasa yang meminta perintah dengan melibatkan data)
Relational Queries Language (RQL) :
ERD --> Model data Relational --> Query language
Relational Queries Language diawali dengan pembuatan ERD yang kemudian diubah menjadi model data relational berupa table informasi terbatas kemudian diterjemahkan ke Query Language.
Bahasa Query Language
Bahasa Prosedural
Bahasa yang identik dengan aljabar relational, berupa operasi dasar seperti select* dan beberapa operasi tambahan.
Bahasa non Prosedural
Bahasa yang identik dengan kalkulus relational, yaitu mendeskripsikan informasi tanpa memberi instruksi.
Query Unary
Yaitu query selection yang digunakan pada relasi binary,
Contoh1 :
Ada beberapa data pada suatu table bernama dosen yang kemudian akan dipilh data tersebut berdasarkan tempat_lahir dengan ketentuan :
Tempat_lahir=’jakarta’ v tempat_lahir=’bogor’ dari table dosen
Artinya : menampilkan dosen dengan tempat lahir Jakarta atau bogor.
Syntaq pada SQL : select * from dosen where tanggal_lahir=’jakarta’
Contoh2 :
Ada beberapa data pada suatu table bernama dosen yang kemudian akan dipilh data tersebut berdasarkan tempat_lahir dengan ketentuan :
Tempat_lahir=’jakarta’ ^ jenis_kelamin=’pria’ dari table dosen
Artinya : menampilkan dosen dengan tempat lahir Jakarta dan berjenis kelamin pria.
Syntaq pada SQL : select * from dosen where tanggal_lahir=’jakarta’ and jenis_kelamin=’pria’
Dalam contoh diatas terdapat tanda “v”, dan ada juga tanda “^” , perbedaan kedua tanda tersebut adalah :
Model Data Relational merupakan kumpulan tabel berdimensi
dua dengan masing-masing relasi(relations) tersusun atas tuple(baris) dan
attribut(kolom) pada suatu basis data.
Istilah – istilah dalam MDR
1. Relasi Sebuah tabel yang terdiri dari
beberapa kolom dan beberapa baris. 2. Atribut Kolom pada sebuah relasi
(field). 3. Tupel Baris pada sebuah relasi
(record). 4. Domain Kumpulan nilai yang valid
untuk satu atau lebih atribut. 5. Derajat (degree) Jumlah atribut dalam sebuah
relasi (jumlah field). 6. Cardinality Jumlah tupel dalam sebuah relasi (jumlah record).
Relasi Adalah penunjuk adanya hubungan diantara sejumlah entitas
yang berasal dari himpunan entitas yang berbeda. Relasi dapat juga disebut
dengan struktur data yang digunakan untuk menyimpan informasi. Setiap relasi
memiliki schema yang mendiskripsikan nama relasi dan attribut beserta tipenya.
Contoh : mahasiswa=(nim:string, nama_mhs:string).
Keterangan
mahasiswa adalah nama relasi, nim dan nama_mhs adalah nama attribut. String
adalah tipe dari attribut.
Basis data relational
Istilah yang terdapat basis data relational:
Baris
disebut tuple.
Kolom
disebut attribute.
Tabel
disebut relation.
Domain
disebut kumpulan dari harga atomik yang dapat dimiliki oleh suatu
kolom/attribut.
Adalah batasan yang diberikan untuk relasi. Jika Schema
didefinisiakn maka batasan-batasan tersebut ditetapkan. Ketika relasi-relasi
dimanipulasi atau dirubah maka harus dicek terlebih dahulu.
Relational
Key 1.Super key
Satu atribut/kumpulan atribut
yang secara unik mengidentifikasi sebuah tupel di dalam relasi (satu atau lebih
field yang dapat dipilih untuk membedakan antara 1 record dengan record
lainnya).
2.Candidate key Atribut di
dalam relasi yang biasanya mempunyai nilai unik
(super key dengan jumlah field yang paling sedikit). 3.Primary key
Candidate
key yang dipilih untuk mengidentifikasikan tupel secara unik dalam relasi.
4.Alternate key
Candidate key yang tidak
dipilih sebagai primary key.
5.Foreign key
Atribut
dengan domain yang sama yang menjadi kunci utama pada sebuah relasi tetapi pada
relasi lain atribut tersebut hanya sebagai atribut biasa.
Relational Integrity Rules 1. Null
Nilai suatu atribut yang tidak
diketahui dan tidak cocok untuk baris (tuple) tersebut.
2. Entity Integrity
Tidak ada satu komponen
primary key yang bernilai null.
3. Referential Integrity
Suatu domain dapat dipakai sebagai kunci primer bila
merupakan atribut tunggal pada domain yang bersangkutan.