Database Management System
Database Management System
PENGENALAN DBMS
PENGENALAN SISTEM DATABASE
Database:
Database adalah kumpulan data, biasanya menggambarkan
kegiatan dari satu atau lebih organisasi terkait.
DBMS:
Database Management System (DBMS), adalah software yang
dirancang untuk membantu dalam memelihara, memanfaatkan, dan
menggunakan sekumpulan data yang besar dan sangat berkembang
pesat
SEJARAH DBMS
Sejak awal adanya komputer, menyimpan dan memanipulasi data
telah menjadi fokus utama sebuah aplikasi.Awalnya DBMS yang
didesain oleh Charles Bachman di General Electric pada awal tahun
1960 disebut Integrated Data Store. Ini membentuk dasar untuk
model data jaringan, yang distandarisasi oleh Conference On Data
System Languages (CODASYL) dan sangat berarti bagi sistem
database pada tahun 1960-an. Bachman adalah penerima
penghargaan pertama dari ACM Turing Award (penghargaan ilmu
komputer setara hadiah Nobel) yang bekerja di bidang database
pada tahun 1973.
Definisi
• Data
Fakta, teks, hasil pengukuran, gambar, suara, dan video yang
bernilai informasi.
• Informasi
Data yang telah diproses sebagai bahan dalam proses pengambilan
keputusan.
• Database
Kumpulan data yang terorganisir berdasarkan suatu struktur
hubungan.
• Metadata
Data yang mendeskripsikan data lain.
4
Informasi
Informasi - dapat dimanfaatkan sebagai dasar untuk
pengambilan keputusan dan memahami
permasalahan/situasi
5
Metadata
Deskripsi tentang format dan karakteristik data, termasuk
tipenya, ukurannya, nilai-nilai yang absah, dan
dokumentasi lainnya.
6
Evolusi Teknologi Database
7
Database Flat File
Database flat file sama dengan file data pada spreadsheet
(misal MS Excel™), berupa satu file berisi baris-baris
dengan jumlah kolom tetap yang disimpan berurutan dalam
file.
NIP Nama Nama Depan Telp
123-45-6789 Malik Abdul 021-555-1234
987-65-4321 Silalahi Roy 022-543-9876
987-65-4321 Mariano Arie 021-234-5678
567-89-0123 Iskandar Dony 021-987-6431
8
Database Hierarchical
9
Database Network
10
Sistem Berbasis File
11
DBMS
Aplikasi
1
Aplikasi
2
12
Sistem File Versus DBMS
14
TINGKAT ABTRAKSI DALAM DBMS
1. Model Relasional
2. Tingkat Abstraksi dalam DBMS
3. Independensi Data
MODEL RELASIONAL
Logical Data
Independen
Conceptual Schema
Physical Data
Independen
Physical Schema
DISK
QUERY DALAM DBMS
• Query berfungsi untuk memudahkan mendapatkan
informasi dari database yang nantinya akan
digunakan untuk menentukan nilai informasi bagi
seorang pengguna
Lanjutan
• Queries: pertanyaan yang melibatkan data di dalam DBMS.
• Bahsa Query: bahasa khusus yang dapat digunakan untuk
menapilkan query yang diinginkan.
• Kalkulus relasional: adalah bahasa query formal berdasarkan
logika matematika, dan query yang ditampilkan dalam bahasa
ini memiliki arti dan maksud yang tepat.
• Aljabar relasional: merupakan bahasa query formal
berdasarkan kumpulan operator untuk memanipulasi relasi,
yang setara dengan kalkulus.
Independensi Data
• Indepedensi data adalah program aplikasi yang telah
terisolasi dari perubahan dalam struktur data yang
disimpan.
• Independensi data dicapai melalui penggunaan dari
tiga tingkat data abstraksi ; khususnya, skema
konseptual dan skema eksternal yang mempunyai
manfaat yang berbeda pada bidang ini.
Komponen Sistem Database
25
Model Data
• Model Data
Kumpulan konstruksi deskripsi data level tinggi yang
menyembunyikan banyak detail penyimpanan level rendah. DBMS
memungkinkan pengguna untuk menentukan data yang disimpan
dalam model data.
• Skema Logis
Mendeskripsikan data yang disimpan dalam model data DBMS
berupa semua relasi yang disimpan dalam database.
• Skema Fisik
Menentukan detail penyimpanan data berupa mendeskripsikan
bagaimana relasi dalam skema Logis disimpan pada alat
penyimpanan sekunder seperti disk atau tape.
26
Contoh Skema Logis
27
Contoh Skema Fisik
28
Tujuan
– Menjelaskan konsep model data Entity-Relationship
(ER)
– Menjelaskan peran model data ER sebagai tahap
awal proses perancangan basisdata
Topik
• Model Data
• Model Entity-Relationship
– Apa model ER
– Mengapa model ER
– Konsep model ER
– Skema dan Instance
– Skema model ER
– Diagram ER
– Notasi Diagram ER
– Contoh Diagram ER
– Komentar mengenai model ER
DESAIN DATABASE
Proses desain database dapat dibagi menjadi enam langkah
nama
ssn alamat
karyawan
Lanjutan
– attribute:
• Sifat-sifat yang dimiliki oleh entity
• Contoh: entity Karyawan, atribute: nama, alamat,
umur, ...
– relationship:
• Hubungan antar entitas melalui atribut pada suatu
entitas yang merujuk ke entitas lainnya
• Hubungan dapat dinyatakan secara implisit, atau
eksplisit
• Hubungan memiliki batasan-batasan, yaitu: rasio
hubungan, dan partisipasi hubungan
Model ER
• Schema, Instance
– Model data memisahkan deksripsi data dari datanya
sendiri
– Deskripsi data disebut skema (schema, intension)
– Data didalam basisdata pada suatu saat disebut
instance (extension)
– Data didalam basisdata dapat berubah setiap saat,
akan tetapi skema lebih bersifat statis
Model ER
• Contoh Schema, dan Instance
name dname
• Relationship Constraints
– Merupakan kendala yang membatasi kemungkinan
kombinasi entitas yang terlibat dalam relationship
instance
– Contoh: setiap pegawai hanya bekerja untuk satu
departemen
1:1
Model ER
M:1
Model ER
M:N
Lanjutan
• Attribute dari Relationship type
– Memiliki attribute yang menunjukkan sifat-sifat yang
dimiliki oleh relationship type
– Contoh :
• WORKS_ON
– Atrribute HOURS untuk menyimpan data
lamanya karyawan bekerja untuk suatu proyek
perminggu
• MANAGES
– Attribute STARTDATE untuk menyimpan data
kapan seorang employee menjadi manager
DIAGRAM ER
• DIAGRAM ER
– Merepresentasikan skema ER secara diagram
– Ada alat bantu untuk model ER (CASE TOOLS) :
• Analisa
• Menggambar
• Mapping ke data model lain
NOTASI DIAGRAM ER
Case study
CASE 1: Perancangan Basisdata COMPANY
-- 3 --
– Bagi setiap pegawai, database menyimpan nama,
ssn, alamat, gaji, jenis_kelamin, dan tanggal_lahir.
– Seorang pegawai ditugaskan pada sebuah
departemen, namun dapat bekerja untuk beberapa
proyek yang tidak selalu berada dibawah
pengawasan departemen yg sama.
– Database menyimpan data jumlah jam kerja per-
minggu setiap pegawai pada setiap proyek yang
dikerjakannya.
– Database menyimpan data atasan langsung setiap
pegawai
Case study…
-- 4 --
Untuk keperluan asuransi, database juga
menyimpan data tanggungan (dependents) setiap
pegawai
Atribut setiap tanggungan: Name, Sex, BirthDate,
Relationship
Case study…
Phase-2: Rancangan Konseptual Awal
Implicit relationship:
Atribut Manager (DEPARTMENT) menunjuk ke
Pegawai yang menjadi Manager suatu
departemen
Atribut ControllingDepartment (PROJECT)
menunjuk ke departemen yang mengawasi
proyek tsb
Atribut Supervisor(EMPLOYEE) menunjuk ke
pegawai yang menjadi pengawas pegawai tsb
Case study...
Penghalusan Rancangan Konseptual:
MANAGES:
Relasi antara EMPLOYEE dengan DEPARTMENT
Cardinality Ratio= 1:1
Partisipasi EMPLOYEE: parsial
Partisipasi DEPARTMENT: tidak dinyatakan secara jelas
oleh hasil dari Phase-1
Perlu ditanyakan kepada pemakai: adakah yang
menyatakan bahwa suatu departemen harus selalu
memiliki Manager
Tipe Relasi MANAGES memiliki atribut: StartDate
Case study...
WORKS_FOR:
Relasi antara DEPARTMENT dengan EMPLOYEE
Cardinality Ratio= 1:N
Partisipasi EMPLOYEE: total
Partisipasi DEPARTMENT: total
Case study...
CONTROLS:
Relasi antara DEPARTMENT dengan PROJECT
Cardinality Ratio= 1:N
Partisipasi DEPARTMENT: ditetapkan sebagai
parsial (sesudah konsultasi dengan para
pemakai)
Partisipasi PROJECT: total
Case study...
SUPERVISION:
Relasi antara EMPLOYEE (peran yang diawasi) dengan
EMPLOYEE (peran Supervisor)
Cardinality Ratio= 1:N
Partisipasi kedua EMPLOYEE: parsial
Hasil wawancara: Tidak semua pegawai adalah
Supervisor, dan tidak semua pegawai memiliki
Supervisor
Case study...
WORKS_ON:
Relasi antara EMPLOYEE dengan PROJECT
Cardinality Ratio= M:N
Partisipasi EMPLOYEE: total
Partisipasi PROJECT: total
Hasil wawancara: Sebuah proyek dapat memiliki
beberapa pegawai yang bekerja didalamnya.
Case study...
DEPENDENTS_OF:
Relasi antara EMPLOYEE dengan DEPENDENT
Cardinality Ratio= 1:N
DEPENDENT adalah sebuah weak entity
Partisipasi EMPLOYEE: parsial
Partisipasi DEPENDENT: total
Case study...
Case study...
• Diagram ER skema COMPANY (Alternatif)
PERTEMUAN 4
Model Data Relational
(Chap. 4 – Conoly)
Baris/Tuple:
Baris-baris yang ada didalam sebuah tabel yang
menyatakan isi dari tabel tersebut
Attribute:
Suatu dikaitkan adalah kolom bernama relasi.
lanjutan
Tupel adalah panah relasi.
Derajat relasi adalah jumlah atribut yang dikandungnya.
Kardinalitas relasi adalah jumlah tuple yang
dikandungnya.
Domain:
Kumpulan nilai-nilai yang berlaku untuk sebuah kolom
dari sebuah tabel
Setiap atribut dalam relasi didefinisikan pada
domain.
Setiap kolom mempunyai domain tertentu dan
beberapa kolom dapat mempunyai sebuah domain
yang sama. Contoh: telp_rumah, telp_kantor
Lanjutan
Relation instance:
Kumpulan baris-baris dari relasi yang masing-masing
terdiri dari nilai-nilai tertentu yang menyatakan nilai dari
informasi yang disimpan pada saat tertentu
Attribute
Key:
Superkey yang minimal (tidak ada atribut yang dapat
dihilangkan dari superkey yang membuat superkey
tetap unik)
Candidate key: Sebuah relasi mungkin mempunyai
lebih dari satu key. Masing-masing key disebut
candidate key
lanjutan
Primary key:
Candidate key yang dipilih untuk mengidentifikasi
tuple/baris pada suatu relasi
Nilai primary key tidak boleh mengandung NULL dan
harus unik.
Foreign key:
Satu/beberapa atribut yang merujuk pada relasi lain
yang merupakan primary key atrribute(s) di relasi lain
tsb dengan domain yang sama
Skema Model Relasional
EMPLOYEE
FNAME MINIT LNAME SSN BDATE ADDRESS SEX SALARY SUPERSSN DNO
DEPARTMENT DEPARTMENT
DNAME DNUMBER MGRSSN MGRSTARTDATE DNUMBER DLOCATIONS
PROJECT
WORKS_ON
PNAME PNUMBER PLOCATION DNUM
ESSN PNO HOURS
DEPENDENT
dom(DNAME) = Department-names
dom(DNUMBERS) = Department-numbers
Batasan Model Relasional
Batasan diperlukan agar basis data selalu berada pada
kondisi konsisten meski telah dilakukan pengubahan
terhadap basis data tsb
Batasan tsb disebut integrity constraint
Macam-macam batasan:
key constraint: nilai candidate key harus unik
entity integrity: nilai primary key tidak boleh null
Batasan Model Relasional
DEPARTMENT DEPT_LOCS
PROJECT WORKS_ON
DEPENDENT
p.k
p.k p.k
PROJECT WORKS_ON
p.k p.k
DEPENDENT
PartNo
PART
SUPPLIER
PROJECT
SNAME ...
PROJNAME ...
PART SUPPLY
Normalisasi Database
(Conoly-chap 14)
8
Normalisasi
• Normalisasi adalah proses pembentukan struktur basis
data sehingga sebagian besar ambiguity bisa
dihilangkan.
• Tahap Normalisasi dimulai dari tahap paling ringan
(1NF) hingga paling ketat (5NF)
• Biasanya hanya sampai pada tingkat 3NF atau BCNF
karena sudah cukup memadai untuk menghasilkan
tabel-tabel yang berkualitas baik.
Normalisasi
Sebuah tabel dikatakan baik (efisien) atau normal jika
memenuhi 3 kriteria sbb:
1. Jika ada dekomposisi (penguraian) tabel, maka
dekomposisinya harus dijamin aman (Lossless-Join
Decomposition). Artinya, setelah tabel tersebut diuraikan /
didekomposisi menjadi tabel-tabel baru, tabel-tabel baru
tersebut bisa menghasilkan tabel semula dengan sama
persis.
2. Terpeliharanya ketergantungan fungsional pada saat
perubahan data (Dependency Preservation).
3. Tidak melanggar Boyce-Code Normal Form (BCNF) (-akan
dijelaskan kemudian-)
Normalisasi
Jika kriteria ketiga (BCNF) tidak dapat
terpenuhi, maka paling tidak tabel tersebut
tidak melanggar Bentuk Normal tahap
ketiga (3rd Normal Form / 3NF).
Langkah – Langkah Normalisasi
Misalnya:
Tabel Universal
Functional Dependency
• Notasi: A B
A dan B adalah atribut dari sebuah tabel. Berarti secara
fungsional A menentukan B atau B tergantung pada A,
jika dan hanya jika ada 2 baris data dengan nilai A yang
sama, maka nilai B juga sama
• Notasi: A B atau A x B
Adalah kebalikan dari notasi sebelumnya.
Functional Dependency
Contoh tabel nilai
Functional Dependency
Functional Dependency dari tabel nilai
• Nrp namaMhs
Karena untuk setiap nilai nrp yang sama, maka nilai
namaMhs juga sama.
• {Namakul, nrp} NiHuruf
Karena attribut Nihuruf tergantung pada Namakul dan nrp secara
bersama-sama. Dalam arti lain untuk Namakul dan nrp yang sama,
maka NiHuruf juga sama, karena Namakul dan nrp merupakan key
(bersifat unik).
• NamaKul nrp
• Nrp NiHuruf
Bentuk-bentuk Normal
1. Bentuk Normal Tahap Pertama (1st Normal Form /
1NF)
2. Bentuk Normal Tahap Kedua (2nd Normal Form / 2NF)
3. Bentuk Normal Tahap (3rd Normal Form / 3NF)
4. Boyce-Code Normal Form (BCNF)
5. Bentuk Normal Tahap (4th Normal Form / 4NF)
6. Bentuk Normal Tahap (5th Normal Form / 5NF)
Bentuk Normal Tahap Pertama
(1st Normal Form / 1NF)
• Bentuk normal 1NF terpenuhi jika sebuah tabel tidak
memiliki atribut bernilai banyak (multivalued attribute),
atribut composite atau kombinasinya dalam domain data
yang sama.
Atau:
• Tabel Hobi
Contoh 2 (composite)
Jadwal Kuliah
Kodekul NamaKul Dosen Kelas Jadwal
karena masih terdapat atribut non primary key (yakni alm_kota dan
alm_Provinsi) yang memiliki ketergantungan terhadap atribut non
primary key yang lain (yakni alm_kodepos):
alm_kodepos {alm_Provinsi, alm_kota}
Sehingga tabel tersebut perlu didekomposisi menjadi:
Mahasiswa (Nrp, nama, alm_jalan, alm_kodepos)
Kodepos (alm_kodepos, alm_provinsi, alm_kota)
Boyce-Code Normal Form
(BCNF)
• Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk
setiap functional dependency terhadap setiap atribut
atau gabungan atribut dalam bentuk: X Y maka X
adalah super key
• tabel tersebut harus di-dekomposisi berdasarkan
functional dependency yang ada, sehingga X menjadi
super key dari tabel-tabel hasil dekomposisi
• Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi
setiap 3NF belum tentu termasuk BCNF .
Perbedaannya, untuk functional dependency X A,
BCNF tidak membolehkan A sebagai bagian dari primary
key.
Bentuk Normal Tahap Keempat
(4th Normal Form /4NF)
• Bentuk normal 4NF terpenuhi dalam sebuah tabel jika
telah memenuhi bentuk BCNF, dan tabel tersebut tidak
boleh memiliki lebih dari sebuah multivalued atribute
(Employee, Project)
(Employee, Skill)
Bentuk Normal Tahap Keempat
(5th Normal Form /5NF)
• Bentuk normal 5NF terpenuhi jika tidak dapat memiliki
sebuah lossless decomposition menjadi tabel-tabel yg
lebih kecil.
Penyempurnaan Skema
dan
Bentuk-bentuk Normal
Pokok Bahasan
• Persoalan-persoalan apa yang dapat ditimbulkan oleh adanya
redundansi penyimpanan informasi?
• Apa yang dimaksud dengan functional dependencies?
• Apa yang dimaksud dengan bentuk-bentuk normal (normal forms)
dan apa tujuannya?
• Apa manfaat dari BCNF dan 3NF?
• Apa pertimbangan dalam mendekomposisi relasi-relasi menjadi
bentuk-bentuk normal?
• Dimana proses normalisasi dapat digunakan dalam proses desain
basis data?
• Adakah bentuk kebergantungan (dependency) umum yang lebih
bermanfaat dalam desain basis data?
Pengantar Penyempurnaan Skema:
Persoalan yang Ditimbulkan oleh Redundansi
• Hal ini terutama dpt terjadi pada suatu relasi dengan jumlah attribut
yang besar dan jumlah baris yang juga besar, sehingga untuk kasus
tertentu dapat terjadi banyak nilai-nilai kolom yang tidak memenuhi
(not applicable) untuk sejumlah baris dalam relasi harus dibiarkan
bernilai null .
• Suatu FD disebut trivial jika sisi kanan dari FD hanya terdiri dari
attribut yang juga muncul di sisi kiri dari FD (akibat rumus
reflexivity). Selain trivial FDs, selebihnya disebut nontrivial FDs.
– Dengan menggunakan rumus reflexivity, semua trivial
dependencies dapat diturunkan.
• Jika suatu relasi skema sudah berada dalam salah satu NF, berarti
bhw beberapa jenis persoalan redundansi dapat
dihindari/diminimalkan.
• Jika R berada dlm BCNF, sudah tentu juga berada dlm 3NF
• Jika R berada dlm 3NF, beberapa redundansi masih mungkin
terjadi.
– Bentuk 3NF dapat dipakai sebagai bentuk yang kompromistis
dan digunakan bilamana BCNF tidak dapat diupayakan
(misalnya karena tidak ada dekomposisi yang “baik”, atau
karena alasan pertimbangan kinerja dari database)
Apa yang Dapat Dicapai oleh 3NF?
• Jika depedensi X A menyebabkan pelanggaran dari 3NF, maka
salah satu kasus di bawah ini akan terjadi:
– X adalah subset dari beberapa key K (partial dependency)
• Pasangan nilai (X, A) yang sama akan tersimpan secara
redundan
– X bukan subset dari sembarang key K (transitive dependency)
• Terdapat mata rantai FDs K X A, yang berarti bhw kita
tdk dpt mengasosiasikan sebuah nilai X dengan sebuah nilai
K kecuali kalau kita juga mengasosiasikan sebuah nilai A
dengan sebuah nilai X
• Informasi yang akan disimpan terdiri dari SNLRWH tuples. Jika kita
hanya menyimpan proyeksi dari tuples ini pada SNLRH dan RW,
adakah persoalan-persoalan potensial lain yang perlu
dipertimbangkan? (lihat slide berikutnya)
Persoalan-persoalan yang Dapat
Ditimbulkan oleh Dekomposisi
• Terdapat 3 persoalan potensial yang perlu diperhatikan:
– Beberapa queries menjadi lebih mahal.
• Contoh, Brp gaji yang diterima oleh Joe? (gaji = W*H)
– Untuk nilai-nilai relasi hasil dekomposisi, mungkin kita tidak
dapat merekonstruksi nilai-nilai relasi asal yang bersesuaian
(losless joins) !
• Kebetulan tidak terjadi pada contoh relasi SNLRWH
– Pengecekan beberapa dependensi bisa jadi membutuhkan
penggabungan (joining) nilai-nilai relasi hasil dekomposisi
(dependency preservation) !
• Kebetulan tidak terjadi pada contoh relasi SNLRWH
• Tahun 1970
EF Codd publikasi paper sejarah model relasional
• Tahun 1974
D. Chamberlin Sructured English Query Language
(SEQUEL)
• Tahun 1976
D. Chamberlin edisi revisi SEQUEL/2, kemudian
berubah menjadi SQL untuk alasan hukum
banyak orang masih mengucapkan SQL sebagai
"See-Quel", meskipun lafal resminya adalah "S-Q-L".
SEJARAH SQL
• 1976
IBM menghasilkan prototipe DBMS Sistem R
akar dari SQL ada di bahasa SQUARE (Specifying
Queries As Relational Expressions)
• 1981-1983
RDBMS komersial pertama SQL/DS, untuk DOS/VSE
dan VM/CMS, kemudian sebagai DB2 untuk MVS
• 1984
ANSI & ISO Relational Database Language (RDL)
• 1992
ISO SQL2 atau SQL-92 (ISO, 1992)
Sejarah SQL
• 1999
ISO SQL:1999 (ISO, 1999a)
• 2003
ISO SQL: 2003
• 2008
ISO SQL: 2008
MENULIS PERINTAH SQL
• Cara cepat :
SELECT *
FROM Staff;
CONTOH QUERY SEDERHANA
• Tabel Hasil
CONTOH QUERY SEDERHANA
Tabel Hasil
Menggunakan Fungsi Agregat SQL
Tabel Hasil
myCount mySum
2 54000.00
MENGGUNAKAN MIN, MAX, AVG
• TABEL Hasil
UPDATE Staff
SET salary = salary*1.03;
UPDATE Staff
SET salary = salary*1.05
WHERE position = ‘Manager’;
• Promosikan David Ford (staffNo = 'SGI4') untuk Manajer dan mengubah gajinya menjadi £18.000.
• UPDATE Staff
SET position = ‘Manager’, salary = 18000
WHERE staffNo = ‘SGI4’;
Menghapus Data dari Database (DELETE)
(Chap. 5 – Ramakrishnan)
Overview
Structure Query Language (SQL) adalah bahasa
database relasional komersial yang paling banyak
digunakan. SQL pada awalnya dikembangkan oleh
IBM dalam SEQUEL-XRM dan Proyek System-R
(1974-1977). Kemudian SQL berkembang
mengikuti standar ANSI/ISO untuk SQL, yang
disebut SQL-92.
Beberapa Aspek Bahasa SQL
Data Definition Language (DDL) : subset SQL yang mendukung
pembuatan, penghapusan, dan modifikasi struktur tabel beserta
tampilannya.
• FROM-list : Sebuah nama tabel dapat diikuti oleh berbagai variabel yang sangat berguna
ketika nama tabel yang sama muncul lebih dari sekali dalam daftar.
• Select-list : list dari (ekspresi yang melibatkan) nama kolom atau field dari tabel.
• Qualification : klausa WHERE kombinasi boolean (AND, OR, dan NOT) di dalam bentuk
ekspresi op ekspresi, dimana op adalah salah satu operator perbandingan {<, <=, =,< >,>=,
>}.
• DISTINCT : keyword yang opsional. Hal ini menunjukkan bahwa tabel yang dihitung sebagai
hasill dan tidak harus mengandung duplicate, yaitu dua baris data yang sama. Defaultnya
adalah duplicate yang tidak dihilangkan.
Contoh Basic SQL Query
SELECT S.sname
FROM Sailors S, Reserves R
WHERE S.sid=R.sid AND R.bid=103
sql
Ekspresi & String
SELECT S.age
FROM Sailors S
WHERE S.sname LIKE ’B_%B’
•
Union, Intersect & Except
UNION : dapat digunakan untuk menghitung union dari dua union-
compatible yang merupakan kumpulan record dari hasil dua queries.
Sebelumnya telah dibahas penggunaan EXIST, IN, dan UNIQUE. SQL juga
mendukung op ANY dan op ALL, dimana op adalah salah satu operator
perbandingan aritmatika {<, <=, =, <>,> =,>}. (SOME juga tersedia, tapi itu
hanya sinonim untuk ANY)
Contoh : Cari sailors yang mempunyai rating yang lebih besar dari sailors
Horatio
SELECT S.sid
FROM Sailors S
WHERE S.rating > ANY (SELECT S2.rating
FROM Sailors S2
WHERE S2.sname = 'Horatio')
Division dalam SQL
SELECT S.sname
FROM Sailors S
WHERE NOT EXISTS (( SELECT B.bid FROM Boats B )
EXCEPT
(SELECT R.bid FROM Reserves R
WHERE R.sid = S.sid ))
SELECT S.sname
FROM Sailors S
WHERE NOT EXISTS ( SELECT B.bid FROM Boats B
WHERE NOT EXISTS ( SELECT R.bid
FROM Reserves R
WHERE R.bid = B.bid AND
Cara yang lebih sulit
R.sidtanpa
= S.sidmenggunakan
)) ECXEPT :
sql
Operator Agregasi
SELECT COUNT (*) SELECT COUNT (DISTINCT S.sname)
FROM Sailors S FROM Sailors S
Sejauh ini telah dibahas penggunaan operasi agregasi untuk semua tuples
(yang memenuhi kualifikasi). Seringkali kita ingin menerapkan operasi
agregasi untuk sejumlah kelompok (groups) dari baris (tuples) dalam suatu
relasi.
Contoh : Cari usia sailors termuda untuk setiap tingkat rating yang ada.
SELECT MIN(S.age)
FROMSailors S
WHERE S.rating=i
Jika misalnya, kita ketahui bahwa nilai rating berada dalam range 1 s.d 10,
maka i pada pernyataan diatas = 1,2,3,...,10.
Queries dengan GROUP BY & HAVING
Contoh : Carilah usia sailors termuda yang memenuhi syarat (misalnya, setidaknya
>=18 tahun) untuk setiap tingkat rating dengan setidaknya terdiri dari dua sailors
untuk setiap tingkat ratingnya.
SELECT S.rating, MIN (S.age) AS minage
FROM Sailors S
WHERE S.age >=18
GROUP BY S.rating
HAVING COUNT (*) >1
sql
NULL VALUES
• Nilai-nilai fields dalam sebuah tuple kadang-kadang tidak diketahui
(unknown). Misalnya : sebuah nilai rating tidak diberikan atau tidak dapat
digunakan (inapplicable). Maka SQL menyediakan nilai kolom khusus yang
disebut null untuk digunakan dalam situasi tersebut.
NULL VALUES dan Operator Perbandingan serta Logical Connectives AND, OR,
NOT
• Persoalan lain adalah definisi SQL yang menyatakan bahwa dua baris
duplikat jika kolom yang sesuai adalah sama baik, atau keduanya bersifat
null. Dalam kenyataannya jika kita membandingkan dua nilai null
menggunakan =, hasilnya adalah unknown! Dalam konteks duplikat,
perbandingan ini secara implisit diperlakukan sebagai nilai true, yang
merupakan anomali.
• Beberapa varian menarik dari operasi join yang mengandalkan null values
disebut outer joins.
• Sebagai contoh, query berikut adalah daftar sid, pasangan sesuai dengan
pelaut dan mereka yang telah memesan perahu:
• Melarang nilai bersifat null dengan menetapkan NOT NULL sebagai bagian
dari definisi sebuah field, misalnya :
sname CHAR (20) NOT NULL
• Selain itu, field dalam PRIMARY KEY tidak diperbolehkan bernilai null.
Dengan demikian, ada kendala penggunaan NOT NULL secara implisit
untuk setiap field yang tercantum dalam PRIMARY KEY.
PERTEMUAN 12
Keamanan dan Administrasi Database
(Chap. 20 – Conolly)
Keamanan Database
Keamanan Database : Mekanisme yang
melindungi database terhadap ancaman disengaja atau tidak
disengaja.
Ancaman
• Ancaman : Setiap situasi atau peristiwa, baik disengaja atau tidak
disengaja, yang bisa mempengaruhi sistem dan
akibatnya organisasi.
TABEL Contoh ancaman.
Gambar Ringkasan potensi ancaman sistem komputer.
Penanggulangan-Komputer Berbasis Kontrol
6. RAID Teknologi.
RAID awalnya berdiri untuk Redundant Array of Independent Disk.
RAID bekerja pada sebuah array disk besar terdiri dari
susunan beberapa disk yang diselenggarakan untuk meningkatkan
kehandalan dan kinerja waktu pada tingkatan yang sama.
LANJUTAN
• Keistimewaan :
Beberapa contoh hak Oracle mencakup hak untuk : Terhubung
ke database (membuat sesi); Membuat tabel; Pilih baris dari
tabel pengguna lain.
Dalam Oracle, ada dua kategori yang berbeda dari hak istimewa : Sistem
hak istimewa; Obyek hak istimewa.
ARSITEKTUR
&
MODEL DATA MINING
bagan
lanjut
Keterangan :
1. Data cleaning (Pembersihan Data) : untuk membuang
data yang tidak konsisten dan noise)
2. Data integration : penggabungan data dari beberapa
sumber
3. Data Mining Engine : Mentranformasikan data menjadi
bentuk yang sesuai untuk di mining
4. Pattern evaluation : untuk menemukan yang bernilai
melalui knowledge base
5. Graphical User Interface (GUI) : untuk end user
Semua tahap bersifat interaktif di mana user terlibat
langsung atau dengan perantaraan knowledge base
Model Data Mining
- Prediction Methods
Menggunakan beberapa variabel untuk memprediksi
sesuatu atau suatu nilai yang akan datang.
- Description Methods
Mendapatkan pola penafsiran (humaninterpretable
patterns) untuk menjelaskan data.
Data Mining
Prediktif Deskriptif
• Klasifikasi • Klastering
• Decision tree • Summarization
• Analisis Time series • Aturan Asosiasi
• Regresi • (Assosiation Rule)
• Prediksi • Sequence Discovery
• Jaringan syaraf tiruan
• Data Mining
Klasifikasi
Indexing
• Indexing adalah struktur-struktur akses yang digunakan untuk
mempercepat respon dalam mendapatkan record-record pada
kondisi-kondisi pencarian tertentu.
• Indexing field adalah suatu struktur akses index yang biasanya
menjelaskan field tunggal dari suatu file.
• Indexing organization memberikan efisiensi akses ke record-record
secara berurut atau random.
Data Reduction
• Data reduction adalah transformasi suatu masalah ke masalah lain
dan dapat digunakan untuk mendefinisikan serangkaian masalah
yang kompleks.
DATA WAREHOUSE
Data Warehouse
Definisi :
• Data Warehouse adalah Pusat repositori informasi yang mampu
memberikan database berorientasi subyek untuk informasi yang
bersifat historis yang mendukung DSS (Decision Suport System)
dan EIS (Executive Information System).
• Salinan dari transaksi data yang terstruktur secara spesifik pada
query dan analisa.
• Salinan dari transaksi data yang terstruktur spesifik untuk query dan
laporan
Tujuan :
• Meningkatkan kualitas dan akurasi informasi bisnis dan
mengirimkan informasi ke pemakai dalam bentuk yang dimengerti
dan dapat diakses dengan mudah.
4 KARAKTERISTIK DATA WAREHOUSE
1. Subject oriented
• Data yang disusun menurut subyek berisi hanya informasi yang
penting bagi pemrosesan decision support.
• Data yang disusun menurut subyek berisi hanya informasi
yang penting bagi pemrosesan decision support.
• Database yang semua informasi yang tersimpan
dikelompokkan berdasarkan subyek tertentu misalnya :
pelanggan, gudang, pasar, dsb.
• Semua informasi tersebut disimpan dalam suatu system data
warehouse.
• Datadata disetiap subyek dirangkuman ke dalam dimensi,
misalnya: periode waktu, produk, wilayah, dsb, sehingga
dapat memberikan nilai sejarah untuk bahan analisa.
lanjut
2. Integrated
Jika data terletak pada berbagai aplikasi yang terpisah dalam suatu
lingkungan operasional, encoding data sering tidak seragam
sehingga bila data dipindahkan ke data warehouse maka coding
akan diasumsikan sama seperti lazimnya.
3. Time-variant
Data warehouse adalah tempat untuk storing data selama 5
sampai 10 tahun atau lebih, data digunakan untuk perbandingan
atau perkiraan dan data ini tidak dapat diperbaharui.
4. Non volatile
Data tidak dapat diperbaharui atau dirubah tetapi hanya dapat
ditambah dan dilihat.
MASALAH-MASALAH DALAM
MENERAPKAN DATA WAREHOUSE
• Dokumentasi dan pengelolaan metadata dari data warehouse.
• Penentuan aturan dalam proses transformasi untuk
menetapkan berbagai sumber legacy data yang akan
dimasukkan ke dalam data warehouse.
• Pencapaian proses pengembangan yang handal, baik dalam
membangun, mengimplementasikan, maupun memelihara
data warehouse.
KEUNTUNGAN DATAWAREHOUSE
1. Subject oriented
– Data yang disusun menurut subyek berisi hanya informasi yang
penting bagi pemprosesan decision support.
– Database yang semua informasi yang tersimpan di kelompokkan
berdasarkan subyek tertentu misalnya: pelanggan, gudang, pasar,
dsb.
– Semua Informasi tersebut disimpan dalam suatu sistem data
warehouse.
– Data-data di setiap subyek dirangkum ke dalam dimensi, misalnya :
periode waktu, produk, wilayah, dsb, sehingga dapat memberikan
nilai sejarah untuk bahan analisa.
Ciri-ciri Data Warehouse
2. Integrated
– Jika data terletak pada berbagai aplikasi yang terpisah dalam suatu
lingkungan operasional, encoding data sering tidak seragam
sehinggga bila data dipindahkan ke data warehouse maka coding
akan diasumsikan sama seperti lazimnya.
3. Time-variant
– Data warehouse adalah tempat untuk storing data selama 5 sampai
10 tahun atau lebih, data digunakan untuk perbandingan atau
perkiraan dan data ini tidak dapat diperbaharui.
4. Non volatile
– Data tidak dapat diperbaharui atau dirubah tetapi hanya dapat
ditambah dan dilihat.
Data Preprocessing
• Data preprocessing menerangkan tipe-tipe proses yang melaksanakan
data mentah untuk mempersiapkan proses prosedur yang lainnya.
• Dalam data mining menstrasformasi data ke suatu format yang prosesnya
lebih mudah dan efektif untuk kebutuhan pemakai, contohnya Neural
Network.
• Terdapat beberapa alat dan metode yang berbeda yang digunakan untuk
preprocessing seperti :
– Sampling : menyeleksi subset representatif dari populasi data yang
besar.
– Transformation : memanipulasi data mentah untuk menghasilkan input
tunggal.
– Denoising : menghilangkan noise dari data
– Normalization : mengorganisasi data untuk pengaksesan yang lebih
spesifik
–Feature extration : membuka spesifikasi data yang signifikan dalam
konteks tertentu.
KNOWLEDGE DISCOVERY IN DATABASE
(KDD)
1. Data Selection
– Menciptakan himpunan data target , pemilihan himpunan data, atau
memfokuskan pada subset variabel atau sampel data, dimana
penemuan (discovery) akan dilakukan.
– Pemilihan (seleksi) data dari sekumpulan data operasional perlu
dilakukan sebelum tahap penggalian informasi dalam KDD dimulai.
Data hasil seleksi yang akan digunakan untuk proses data mining,
disimpan dalam suatu berkas, terpisah dari basis data operasional.
lanjut
2. Pre-processing/ Cleaning
– Pemprosesan pendahuluan dan pembersihan data merupakan
operasi dasar seperti penghapusan noise dilakukan.
– Sebelum proses data mining dapat dilaksanakan, perlu dilakukan
proses cleaning pada data yang menjadi fokus KDD.
– Proses cleaning mencakup antara lain membuang duplikasi data,
memeriksa data yang inkonsisten, dan memperbaiki kesalahan
pada data, seperti kesalahan cetak (tipografi).
– Dilakukan proses enrichment, yaitu proses “memperkaya” data yang
sudah ada dengan data atau informasi lain yang relevan dan
diperlukan untuk KDD, seperti data atau informasi eksternal.
lanjut
3. Transformation
– Pencarian fitur-fitur yang berguna untuk
mempresentasikan data bergantung kepada goal yang
ingin dicapai.
– Merupakan proses transformasi pada data yang telah
dipilih, sehingga data tersebut sesuai untuk proses data
mining. Proses ini merupakan proses kreatif dan sangat
tergantung pada jenis atau pola informasi yang akan
dicari dalam basis data
lanjut
4. Data mining
– Pemilihan tugas data mining; pemilihan goal dari proses
KDD misalnya klasifikasi, regresi, clustering, dll.
– Pemilihan algoritma data mining untuk pencarian
(searching)
– Proses Data mining yaitu proses mencari pola atau
informasi menarik dalam data terpilih dengan
menggunakan teknik atau metode tertentu. Teknik,
metode, atau algoritma dalam data mining sangat
bervariasi. Pemilihan metode atau algoritma yang tepat
sangat bergantung pada tujuan dan proses KDD secara
keseluruhan.
lanjut
5. Interpretation/ Evaluation
– Penerjemahan pola-pola yang dihasilkan dari data
mining.
– Pola informasi yang dihasilkan dari proses data mining
perlu ditampilkan dalam bentuk yang mudah dimengerti
oleh pihak yang berkepentingan.
– Tahap ini merupakan bagian dari proses KDD yang
mencakup pemeriksaan apakah pola atau informasi
yang ditemukan bertentangan dengan fakta atau
hipotesa yang ada sebelumnya.