320 likes | 621 Views
Review Database Materi 1. Eko Prasetyo Teknik Informatika Universitas Bhayangkara Surabaya 2012. Sistem Manajemen Basis Data. Basis data. Kesuksesan suatu organisasi dalam hal pengolahan data bergantung pada kemampuannya menangkap data secara akurat dan tepat waktu .
E N D
Review DatabaseMateri 1 Eko Prasetyo TeknikInformatika UniversitasBhayangkara Surabaya 2012 SistemManajemen Basis Data
Basis data • Kesuksesan suatu organisasi dalam hal pengolahan data bergantung pada kemampuannyamenangkap data secaraakuratdantepatwaktu. • Kemampuanuntukmengatur/mengolahsejumlah data, dankecepatanuntukmencariinformasi yang relevan, adalahaset yang sangatpentingbagiorganisasi. • Mempunyai data denganukuran yang besar • User harusmemilikialatbantu (tools) yang akanmenyederhanakantugasmanajemen data danmengekstrakinformasiyang bergunasecaratepatwaktu. • Basis data adalahkumpulan data, yang dapatdigambarkansebagaiaktifitasdarisatuataulebihorganisasi yang berelasi. • Contoh, basis data universitasberisiinformasimengenai: • Entiti , semisalmahasiswa, fakultas, matakuliah, danruangkelas • Relasidiantaraentitas, sepertipengambilankuliah yang dilakukanolehmahasiswa, stafpengajardifakultas, danpenggunaanruangperkuliahan.
Database Management System (DBMS) • DBMS adalahperangkatlunak yang didesainuntukmembantudalamhalpemeliharaandanutilitaskumpulandata dalamjumlahbesar. • DBMS dapatmenjadialternatifpenggunaansecarakhususuntukaplikasi • semisalpenyimpanan data dalam file danmenuliskodeaplikasi yang spesifikuntukpengaturannya. • Mata kuliah basis data adalahuntukmemberikansuatupendahuluanmengenaisistemmanajemen basis data, denganpenekananpada • Bagaimanacaramengorganisasisuatuinformasidalam DBMS, • Memeliharainformasitersebutdanmelakukanpengambilaninformasisecaraefektif, • Bagaimanacara mendesainsuatubasis data dan menggunakansuatuDBMS secara efektif pula.
Entity Relationship Model • ER Model, gambarandunianyatadiistilahkandalamobyekdanrelasinya. • Biasadigunakanuntukmengembangkaninisialdaridesain basis data. • Menyediakansuatukonsep yang bermanfaat yang dapatmengubahdeskripsi informal dariapa yang diinginkanoleh user menjadihal yang lebih detail, presisi, dandeskripsidetail tersebutdapatdiimplementasikankedalam DBMS. • ER model jugadigunakandalamfasedesain basis data konseptual.
ENTITI, ATRIBUT, DAN HIMPUNAN ENTITI • Entitiadalahobyekdunianyata yang dapatdibedakandariobyek yang lain. • Entitidigambarkan(dalam basis data) denganmenggunakanhimpunanatribut. • Himpunan entity yang sejenisdisimpandalamhimpunanentiti. • Himpunan entity : Kumpulan entity yang sejenis. • Misal : himpunan data pegawai • Semuaentity dalamhimpunan entity memilikihimpunanatributyang sama • Tiaphimpunan entity memilikikunci (key) • Tiapatributmemilikidomain. EntitiPegawai (Employee)
RELASIDAN HIMPUNANRELASI • Relasiadalahasosiasidiantaraduaataulebih entity • Misal : AnibekerjadiDepartemenFarmasi • Himpunan Relasi : Himpunan dari relasi-relasi yang sejenis • Himpunanrelasi n-ary R berelasidengansejumlahhimpunan entity n E1 … En • Himpunan entity yang samadapatberpartisipasidalamhimpunanrelasi yang berbeda, atau mempunyai peran yang berbeda dalam suatu himpunan yang sama. Relasi binary antara 2 Entiti Self Relationship
Relasi ternary • Relasi Work_in2 antara entity: employee, departments, dan Locations
BatasanKunci (Key Constraints) • Contohkasus, seorangpegawaidapatbekerjapadabeberapa departments; sebuahdepartementmemilikibanyakpegawai • Sebaliknya, tiapdepartementhanyamemilikiseorang manager, yang berhubungandengan key constraint pada Manages. Contohrelasi Manage Contoh Key Constraint pada Manage
Key Constraint • One-to-one • Contoh: Department denganManajer • One-to-many • Contoh: Department denganKaryawan, PenulisUtamadenganBuku • Many-to-one • Contoh: Karyawandengan Department, BukudenganPenulisUtama • Many-to-many • Contoh: Mata KuliahdenganMahasiswa Macam-macam Key Constraint
BatasanPartisipasi (Participation Constraints) • Apakahsetiapdepartemenmempunyaiseorang manager ? • Jikasemuadepartemenpastimempunyai manager makapartisipasiDepartementsdalamManagesdapatdikatakantotal. • Sebaliknyajikatidaksemuadepartementmemiliki manager makapartisipasinyaadalahpartial. Contoh Participation Constraint
EntitiLemah (Weak Entity) • Entitilemahdapatdiidentifikasisecaraunikjikaterdapatperankunciutama (primary key) yang berasaldariataudimilikioleh entity yang lain (owner). • Himpunanentity owner dan entity lemahharusberpartisipasidalamhimpunanrelasi one-to-many (satu owner, banyak entity lemah). Contoh Weak Entity
Aggregasi • Aggregasidigunakanpadasaatkitaperlumemodelkanapasaja yang terlibatdalamsuatuhimpunanrelasi. • Aggregasimembolehkankitauntukmemperlakukansuatuhimpunanrelasisebagaihimpunan entity untuktujuanpartisipasidalamrelasi yang lain. • GambarberikutmenunjukkanbahwaMonitors adalahrelasi yang distinct dengandeskripsiatribut. • Jugadapatdikatakanbahwatiapsponsorship dimonitorolehseorangpegawai.
Model Relasional • Basis Data Relasional adalah himpunan relasi. • Suatu relasi adalah himpunan kolomatautupel (semuabarisnyabersifat distinct/unik). • Sedangkanrelasiterdiridariduabagianyaitu : • Instance: table denganbarisdankolom • Jumlahbaris= kardinalitas, Jumlahkolom/fields = degree/arity • Skema: menentukan nama relasi, plus nama dan tipe kolom • Contohrelasi: • Students (sid : string, name : string, login : string, age : integer, gpa : real). • Contohpembuatantabel: CREATE TABLE Students (sid CHAR(2), name CHAR(3), login CHAR(20), age INTEGER, gpa REAL)
Query Relasi • Memasukkan data kedalamtabel • INSERT INTO Students (sid, name, login, age, gpa) VALUES (‘53666’, ‘Jones’, ‘jones@cs’, 18, 3.4) • Menampilkanisitabel • SELECT sid, name FROM Students • SELECT s.sid, s.name FROM Students as s WHERE s.gpa < 3.5 • Menggantinilaidalamtabel • UPDATE Students as s SET s.age=20 WHERE s.sid=‘53666’ • Menghapusisidalamtabel • DELETE FROM Students as s WHERE s.sid=‘53688’ Contoh Instance dari Relasi Students
Relasi • Kekuatanutamadari model relasionaladalahkesederhanaannya, dankelebihannyaadalahdalammelakukan query atas data. • Kita dapatmelakukan query padabeberapa table yang salingberelasi. • Contohpadatable berikutjikaterdapat table Enrolled yang berelasidengan tableStudents sebelumnyadengan key field sid(gambarkananatas). • Query: SELECT S.name, E.cid FROM Students S, Enrolled E WHERE S.sid=E.sid and E.grade=”A” Contoh Instance Enrolled yang berrelasi dengan Students dan Course Contoh Instance dari Relasi Students Hasil query
BatasanIntegritas • BatasanIntegritasadalahsuatukondisi yang harusbernilaibenaruntuksuatu instance dalam basis data, misal : batasan domain • Dispesifikasisaatskemadidefinisikan • Diperiksa pada saat suatu relasi dimodifikasi • Instance darirelasidisebut legal jikabisamemenuhisemuabatasanintegritas (integrity constraints) yang telahdispesifikasi. • Batasanintegritasjugadigunakanuntukmenghindarikesalahandari entry data. • Cakupan: Primary Key, Foreign Key, Referential Integrity
BatasanKunci Primer (Primary Key Constraints) • Himpunansuatu fields merupakansuatu key darisuaturelasijika : • Tidakadaduatupel yang distinct yang mempunyainilai yang samauntuksemua key fields • Jikaterdapatlebihdarisatu key untuksuaturelasi, makasalahsatudari key tersebutakandipiliholehDBAmenjadiprimary key. • Primary dan Candidate Key dalam SQL : • Dari kemungkinanbanyak candidate keys (dispesifikasimenggunakan UNIQUE), salahsatunyadapatdipilihmenjadiprimary key. • SeorangStudents dapatmengambilsuatu course danhanyamenerimasatunilaiuntukgrade dari course yang diikutinya.
Contoh penggunaan batasan kunci primer CREATE TABLE Enrolled ( sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid)) CREATE TABLE Students ( sid CHAR(20), name CHAR(30), login CHAR(20), age INTEGER, gpa REAL, UNIQUE (name, age) PRIMARY KEY (sid`)) CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid) UNIQUE(cid,grade))
Foreign key • Foreign key adalahhimpunan fields dalamsaturelasi yang digunakanuntukmelakukanreferensiketupelpadarelasi yang lain • Harusberkorespondensidenganprimary key padarelasi yang kedua. • Berlakuseperti logical pointer • Misalsidadalah foreign key yang direferdarirelasi Students : • Enrolled(sid: string, cid : string, grade : string) • Foreign Keys dalam SQL : • HanyaStudents yang terdaftardalamrelasiStudents yang diperbolehkanuntukmengikutisuatuperkuliahan (course).
Contoh Foreign Key CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY(sid,cid), FOREIGN KEY(sid) REFERENCES Students)
Referential Integrity • MisalpadarelasiStudents dan Enrolled; siddalam Enrolled adalah foreign key yang mereferensirelasiStudents. • Apa yang harusdilakukanjikatupelEnrolled dengansuatu data Students yangtidakterdaftardalamrelasiStudents disisipkan? • Apa yang harusdilakukanjikatupelStudents di-hapus ? • HapusjugasemuatupelEnrolled yang mereferketupelStudents yangdihapustersebut CASCADE • Tidakmengijinkandilakukanpenghapusanjikatupeltersebutmereferketupelpadarelasi yang lain (alternatif lain dari yang pertama) NO ACTION • UbahsiddalamtupelEnrolled menjadi defaultsid(alternatif yang lain lagi) SET DEFAULT • Dalam SQL, juga dapat dilakukan setting pada tupel Enrolled yang direferolehtupelStudents yang dihapustersebutdenganmemberikannilaikhususyaitunull, yang artinya ‘tidakdiketahui’ (unknown atau inapplicable) SET NULL
Referential Integrity • Samahalnyajika primary key daritupel Students dilakukanperubahan (update). • SQL/92 mendukungpilihanberikutuntukperintah delete dan update : • Default-nyaadalahtidakdilakukanapa-apa (pembatalanperintah delete/update). • CASCADE (juga men-delete semuatupel yang mereferketupel yang didelete). • Set nilai NULL/DEFAULT (Set nilai foreign key daritupelyang direferensi).
ContohPembuatan Referential Integrity CREATE TABLE Enrolled (sid : CHAR(20), cid : CHAR(20), grade : CHAR(2), PRIMARY KEY(sid,cid), FOREIGN KEY(sid) REFERENCES Students ON DELETE CASCADE ON UPDATE SET DEFAULT) CREATE TABLE Enrolled (sid : CHAR(20), cid : CHAR(20), grade : CHAR(2), PRIMARY KEY(sid,cid), FOREIGN KEY(sid) REFERENCES Students ON DELETE NO ACTION ON UPDATE SET NULL) CREATE TABLE Enrolled (sid : CHAR(20), cid : CHAR(20), grade : CHAR(2), PRIMARY KEY(sid,cid), FOREIGN KEY(sid) REFERENCES Students ON DELETE CASCADE ON UPDATE CASCADE) CREATE TABLE Enrolled (sid : CHAR(20), cid : CHAR(20), grade : CHAR(2), PRIMARY KEY(sid,cid), FOREIGN KEY(sid) REFERENCES Students ON DELETE NO ACTION ON UPDATE SET DEFAULT)
STRUCTURED QUERY LANGUAGE • SQL adalahbahasa database relasional yang dibuatberdasarkansuatustandart. • Bentukdasardari SQL : SELECT [DISTINCT] select-list FROM from-list WHERE qualification • Klausa SELECT, menentukankolomyang akan ditampilkan pada hasil, • KlausaFROM yang menentukan cross product table. • Klausa optional WHERE menentukansyarat-syaratseleksipada table yang ditunjukkanolehFROM. • Sintaksisquery SQL dasar: • from list padaklausa FROM adalahdaftarnama table. Namatabeldapatdiikutiolehnama alias; nama alias bergunaketikanamatabel yang samamuncullebihdari sekali pada from list • select-list adalahdaftarnamakolom (termasukekspresinya) daritabel-tabel yang tercantumpada form list. Namakolomdapatdiawalidengannamaalias daritabel. • Kualifikasipadaklausa WHERE merupakankombinasibooleanataupernyataankatasambunglogikadarikondisi yang menggunakaneksepresiyang melibatkanoperator pembanding. Sedangkanekspresiitusendiridapatberupanama kolom, konstanta atau aritmatika dan string. • Kata kunci distinct bersifat pilihan yang menghapus duplikat dari hasil query.
Operasi lain yang didukung SQL • Hasiloperasi 2 query: UNION, INTERSECT dan EXCEPT. • Operasiset yang lain seperti : • IN (untukmemeriksaapakahelementelahberadapada set yang ditentukan), • ANY dan ALL (untukmembandingkansuatunilaidenganelemenpada set tertentu), • EXISTS (untukmemeriksaapakahsuatu set kosongatauisi). • Operator IN dan EXISTS dapatdiawalidengan NOT. • Fitur SQL yang lain yaitu NESTED QUERY • artinyaquery yang memilikiquery lain didalamnya, yang disebutdengansubquery. • Nested query digunakanjikaterdapatsuatunilai yang tidakdiketahui (unknown values).
FungsiAggregasi SQL • COUNT : untukmenghitungcacah • SUM : menghitungjumlahseluruhnilai • AVG: menghitung rata-rata nilai • MAX : mencarinilai paling besar • MIN : mencari nilai paling kecil. • Kadangkalaoperasiaggregatdiperlukanpadasekelompokgrupdaribarispadarelasi. • Untukmenulisquerysemacamitu, dibutuhkanklausaGROUPBY. • Dan penambahanklausa HAVING jikainginmenerapkansuatukondisiterhadapdata yang sudahdikelompokkandengan GROUP BY.
Normalisasi • Normalisasiadalahperbaikanskemadatabase. • Latarbelakangdiperlukannyanormalisasiadalahkarenaadanyapenyimpananinformasi yang redundan. • IstilahnormalisasiberasaldariE.F.codd, salahseorangperintisteknologibasis data. • Normalisasiadalahprosesuntukmengubahsuaturelasitertentukedalamduabuahrelasiataulebih. Bentuk Normal Pertama (1NF) Bentuk Normal Kedua (2NF) Bentuk Normal Ketiga (3NF)
Bentuk Normal Pertama (1NF) • Suaturelasidikatakandalambentuk normal pertamajikadanhanyajikasetiapatributbernilaitunggaluntuksetiapbaris sebelumbentuk normal pertama sudahdalambentuk normal pertama
Bentuk Normal Kedua (2NF) • Suaturelasidikatakandalambentuk normal keduajika: • Beradadalam normal pertama • Setiapatributbukankuncimemilikiketergantungansepenuhnyaterhadapkunci primer. sudah dalam bentuk normal kedua sebelumbentuk normal kedua
Bentuk Normal Ketiga (3NF) • Suaturelasidikatakandalambentuk normal ketigajika: • Beradadalam normal keduadan • Setiapatributbukankuncitidakmemilikiketergantungantransitifterhadapkunci primer sudah dalam bentuk normal ketiga sebelumbentuk normal ketiga
Tugas (kelompok) Gambarkan diagram ER untukkasusberikutini. • Sebuahpenerbitakanmenmbuatdesain database denganinformasisebagaiberikut: • Bukumempunyaiidentitas: ISBN, penulis, tahunterbit, harga • Penulismempunyaiidentitas: ID, nama, alamat, nomorrekening • Sebuahbukubisamempunyaibeberapapenulis, hanyasatupenulis yang menjadipenulisutama. Buatlah ER padakasussembarang yang andaketahui, danbuat pula database danisinya. • Minimal saturelasi binary (3 tabel) • Tidakbolehsamadengankelompok yang lain • Desaindigambardikertas Catatan: Tugas yang adabuat, akandilanjutkanpadatugasberikutnya!
Any Question ? To Be Continued … Materi 2