1 / 29

Model Relasional

Model Relasional. Matakuliah Desain Basis Data Oleh Aziz Musthafa , S.Kom. Mengapa perlu mempelajari Model Relasional ?. Model basis data yang paling banyak digunakan : Vendors : IBM, Informix, Microsoft, Oracle, Sybase, dll .

ronnie
Download Presentation

Model Relasional

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Model Relasional MatakuliahDesain Basis Data Oleh Aziz Musthafa, S.Kom

  2. Mengapaperlumempelajari Model Relasional ? Model basis data yang paling banyakdigunakan: • Vendors : IBM, Informix, Microsoft, Oracle, Sybase, dll. • Yang menjadisainganberat akhir2 iniadalah model berorientasiobyek • ObjectStore, Versant, Ontos • Informix Unviersal Server, UniSQL, O2, Oracle, DB2

  3. Definisi : Basis Data Relasional • Basis Data Relasional : himpunanrelasi • Relasi : terdiri dari dua bagian : • Instance : table denganbarisdankolom #baris = kardinalitas, #kolom/fields = degree/arity • Skema : menentukannamarelasi, plus namadantipekolom • Misal Students(sid : string, name : string, login : string, age : integer, gpa : real). • Suaturelasiadalahhimpunankolomatautupel (semuabarisnyabersifat distinct/unik).

  4. Definisi : Basis Data Relasional • Contoh : Instance dari Relasi Students • Kardinalitas = 3, degree = 5, semuabarisbersifat distinct • Apakahsemuakolomdalam instance relasijugaharus distinct ?

  5. Bahasa Query Relasional (Relational Query Language) • Kekuatanutamadari model relasionaladalahkesederhanaannya, dankelebihannyaadalah dalam melakukan query atas data. • Query dapatditulissecaraintuitif, dan DBMS bertanggungjawabuntukmengevaluasinyasecaraefisien. • Kunci : semantic yang tepatuntuk relational query. • Mengijinkanpengoptimasiuntukmemperluasataumengaturkembalioperasinya, danmemastikanbahwahasil yang diperolehtidakberubah.

  6. SQL (Structured Query Language) • Dikembangkan oleh IBM (system R) pada tahun 70-an • Perludilakukanstandardisasisejakbanyakdipakaiolehbanyak vendor • Standart SQL : • SQL-86 • SQL-89 • SQL-92 • SQL-99

  7. SQL (Structured Query Language) • Untukmenemukanpelajarberusia 18 tahundari table, dapatditulisbahasa query : • SELECT * FROM Students S WHERE S.age=18 • Untukmenemukan field names dan logins, gantibarispertama query tersebutdengan : SELECT S.name, S.login

  8. MembuatRelasidalam SQL • Tabel Students dibuat model relasionalnyadengantipe domain padatiap field yang terspesifikasi : CREATE TABLE Students (sid : CHAR(20), name : CHAR(20), login : CHAR(10), age : INTEGER, gpa : REAL) • Contoh lain adalah table Enrolled yang berisi tentang informasi mata kuliah yang diambilolehStudents : CREATE TABLE Enrolled (sid : char(20), cid : char(20), grade : char(2))

  9. Melakukan Query padabeberapaTabel yang Berelasi • Bilaterdapat table Enrolled yang berelasidengan table Students sebelumnyadengankey field sid : • Dan diberikan query : SELECT S.name, E.cid FROM Students S, Enrolled E WHERE S.sid=E.sid and E.grade=”A” • Maka table yang dihasilkandari query tersebutadalah : • Yaitumencari data Students (nama Students danmatakuliah yang diikutinya) yang mendapatnilai “A”.

  10. MenghapussuatuRelasi • Perintahberikut : • DROP TABLE Students • MenghapusTabel Students. • Perintah Query berikut : • ALTER TABLE pelajar ADD COLUMN firstYearinteger • Menambahkansatu field baruyaitufirstYear; tiaptupledalam instance diperluasdenganpenambahannilainull pada field yang baru. • Satutupeltunggaldapatdisisipkandengancara : INSERT INTO Students(sid,name,login,age,gpa) VALUES (53688,’Smith’,’smith@ee’,18,3.2) • Semua tupel yang ada dapat di-delete dengan menggunakan beberapa kondisi tertentu (missal : menghapustupeldengan field name=Smith) DELETE FROM Students S WHERE S.name=’Smith’ MenambahdanMenghapusTuple

  11. BatasanIntegritas (Integrity Constraints) • BatasanIntegritasadalahsuatukondisi yang harusbernilaibenaruntuksuatu instance dalam basis data, missal : batasan domain • Dispesifikasisaatskemadidefinisikan • Diperiksapadasaatsuaturelasidimodifikasi • Instance darirelasidisebut legal jikabisamemenuhisemuabatasanintegritas (integrity constraints) yang telahdispesifikasi • DBMS tidakmenginginkansuatu instance yang tidak legal. • Jika DBMS memeriksaIntegrity Constraints , maka data yang disimpanlebihdapatmencerminkandunianyata (real-world meaning). • Juga sangat perlu dihindari kesalahan dari entry data

  12. BatasanKunci Primer (Primary Key Constraints) • Himpunansuatu fields merupakansuatu key darisuaturelasijika : 1.Tidak adaduatuple yang distinct yang mempunyainilai yang samauntuksemua key fields, dan 2. Key tersebuttidakmemiliki subset. • Pernyataan 2 salah ? bagaimanadengansuperkey • Jikaterdapatlebihdarisatu key untuksuaturelasi, makasalahsatudari key tersebutakandipiliholeh DBA untukmenjadi primary key. * Misal : sidadalah key untukrelasi Students. (Bagaimanadengan name), himpunan key (sid,gpa) adalahmerupakansuperkey.

  13. Primary dan Candidate Key dalam SQL • Dari kemungkinanbanyak candidate keys (dispesifikasidenganmenggunakan UNIQUE), salahsatunyadapatdipilihmenjadiprimary key. • SeorangStudents dapatmengambilsuatu course danhanyamenerimasatunilaiuntukgrade dari course yang diikutinya. CREATE TABLE Enrolled ( sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid)) CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid) UNIQUE(cid))

  14. Foreign Keys, Referential Integrity • Foreign key adalahhimpunan fields dalamsaturelasi yang digunakanuntukmelakukanreferensiketuplepadarelasi yang lain (Harusberkorespondensidenganprimary key padarelasi yang kedua). Berlakuseperti logical pointer • Misalsidadalah foreign key yang direferdarirelasi Students : • Enrolled(sid : string, cid : string, grade : string)

  15. Foreign Keys dalam SQL • HanyaStudents yang terdaftardalamrelasi Students yang diperbolehkanuntukmengikutisuatuperkuliahan (course). CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY(sid,cid), FOREIGN KEY(sid) REFERENCES Students)

  16. Mengusahakansuatu Referential Integrity • MisalpadarelasiStudents dan Enrolled; siddalam Enrolled adalah foreign key yang mereferensirelasiStudents • Apa yang harusdilakukanjikatupelEnrolled dengansuatu data Students yang tidakterdaftardalamrelasiStudents disisipkan ? (Hindarihalini). • Apa yang harusdilakukanjikatupelStudents di- hapus ? • HapusjugasemuatupelEnrolled yang mereferketupel Students yang dihapustersebut • Tidakmengijinkandilakukanpenghapusanjikatupeltersebutmereferketupelpadarelasi yang lain (alternatif lain dari yang pertama) • Ubahsiddalamtupel Enrolled menjadi default sid (alternatif yang lain lagi). • (Dalam SQL, juga dapat dilakukan setting pada tupel Enrolled yang direfer olehtupelStudents yang dihapustersebutdenganmemberikannilaikhususyaitunull, yang artinya ‘tidakdiketahui’ (unknown atau inapplicable) Samahalnyajika primary key daritupel Students dilakukanperubahan (update)..

  17. Referential Integrity dalam SQL/92 • 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 daritupelyangdireferensi). • Contoh : • 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)

  18. View • View hanyalahsebuahrelasi, yang jugabisamenyimpandefinisidarihimpunantuple. CREATE VIEW YoungActiveStudents(name,grade) AS SELECT S.name, E.grade FROM Students S, Enrolled E WHERE S.sid=E.sid and S.age<21 • View dapatdihapusdenganmenggunakanperintah DROP VIEW Perintah DROP TABLE dapatjugadigunakanjikaterdapat view pada table

  19. DesainLogika Basis Data : Dari ER keRelasional • Himpunanentitassuatu table basis data : CREATE TABLE Employees (ssnCHAR(11), name CHAR(20), lot INTEGER, PRIMARY KEY (ssn))

  20. HimpunanRelasikeTabel • Untukmelakukantranslasidarihimpunanrelasikerelasi, atributrelasiharustermasuk : • Key untuktiaphimpunan entity yang berpartisipasi (sebagai foreign key). • Himpunanbentukatributinimerupakansuperkeybagirelasi • Semuaatributdeskriptif CREATE TABLE Works_In( Ssn CHAR(1), Did INTEGER, Since DATE, PRIMARY KEY(ssn,did), FOREIGN KEY (ssn) REFERENCES Employees, FOREIGN KEY (did) REFERENCES Departements);

  21. Review : Key Constraints • Tiapdepartementkebanyakanmempunyaiseorang manager yang berhubungan • dengan key constraints padaManages ranslasike model relasional ?

  22. Translasi ER Diagram denganKey Constraints • Memetakan relasi ke dalam table : • Memisahkan table Employee dan Departments Jikatiap department memilikiseorang manager tertentu, makakitakombinasikanManages dan Departments.

  23. Review : Participation Constraints • Apakahtiapdepartementmemilikiseorang manager ? • Jikaya, makainidisebutdengan participation constraint : yaitupartisipasidariDepartments dalam Manages yang bisabersifat total (atausebagian). • Apakahnilaidari table Departments harustampakdalamkolompada table Manages (yang memilikinilaissnbukan null)

  24. Participation Constraint dalam SQL • Padasaatparticipation constraint yang ditangkapmelibatkansatuhimpunan entity dalamrelasi binary, tapitanpamelakukanpengurutanulanguntukmenguji constraint yang bersangkutan. CREATE TABLE Dept_Mgr(did INTEGER, dnameCHAR(20), budget REAL, ssnCHAR(11) NOT NULL, since DATE, PRIMARY KEY (did), FOREIGN KEY (ssn) REFERENCES Employees, ON DELETE NO ACTION)

  25. Review : EntitiLemah • Entitilemah (weak entity) dapatdiidentifikasisecaraunikhanyadenganmemperhatikan primary key dari entity yang lain (owner). • Himpunan entity owner danhimpunan entity lemahharusberpartisipasidalamrelasi one-to-many (1 owner, denganbanyak entity lemah) • Himpunan entity lemahharusmempunyaipartisipasi total dalammengidentifikasihimpunanrelasiini.

  26. TranslasiHimpunanEntitiLemah • Himpunan entity lemahdanhimpunanrelasi yang diidentifikasidapatditranslasikankedalam table tunggal. • Padasaat entity owner dihapus, semua entity lemahharusjugadihapus. CREATE TABLE Dep_Policy ( Pname CHAR(20), Age INTEGER, Cost REAL, Ssn CHAR(11) NOT NULL, PRIMARY KEY (pname,ssn), FOREIGN KEY (ssn) REFERENCES Employees, ON DELETE CASCADE)

  27. Review : Hirarki ISA • Sebagaimana dalam C++ maupun bahasa pemrograman yang lain, suatu atribut dapatditurunkan. • Jikakitadeklarasikan A ISA B, setiap entity A jugamerupakan entity B. • Overlap constraints : Bolehkan seorang pegawai berstatus pegawai perjam (Hourly_Emps) danpegawaikontrak (Contract_Emps) ? • Covering constraints : Apakahsetiap entity Employees jugamerupakanentity Hourly_EmpsdanContract_Emps ?

  28. Translasi Hirarki ISA ke Relasi : • Pendekatanumum : • Contoh : terdapattigarelasi yang terlibat : Employees, Hourly_EmpsdanContract_Emps. • Hourly_Emps : Tiap data employee disimpandalamEmployees. Untukpegawaidenganhitungangajiperjam, informasitambahandisimpandalamHourly_Emps (hourly_wages, hours_worked,ssn); TupelHourly_Empsharusdihapusjikatupel Employees yang berelasidengannyadihapus. • Alternatif lain : hanyaHourly_Emps dan Contract_Emps • Hourly_Emps : ssn, name, lot, hourly_wages, hours_worked • Tiap employee harusmenjadianggotasalahsatudari sub class ini

  29. Ringkasan : Model Relasional • Tabel yang merepresentasikan data • Model yang paling banyakdigunakan • Integrity Constraints dapat dispesifikasi oleh DBA, berdasarkan aplikasi semantic. DBMS memeriksakebenarannya. • Duahalpentingpadaintegrity constraint : primary dan foreign key. • Sebagai tambahan, selalu ada domain constraint • Memilikibanyakkelebihandansifatnyaalamidalammenyatakansuatu query • Aturanuntukmentranslasikan ER kedalam model relasional.

More Related