gd2203-bd-2010 ver 01
TRANSCRIPT
2/9/2010
1
GD 2203 GD 2203 –– BASISDATA SPASIALBASISDATA SPASIALSemester II Semester II –– 2009/20102009/2010
D. D. MuhallyMuhally HakimHakimAlbertusAlbertus DeliarDeliar
Research Division: Remote Sensing & Geographical Information ScienceResearch Division: Remote Sensing & Geographical Information ScienceFakultas Ilmu dan Teknologi KebumianFakultas Ilmu dan Teknologi Kebumian
Institut Teknologi BandungInstitut Teknologi Bandung
KETENTUAN DASARKETENTUAN DASARWaktu KuliahWaktu Kuliah : : Senin 11.00 Senin 11.00 –– 12.00 (dialokasikan untuk Praktikum)12.00 (dialokasikan untuk Praktikum)
Selasa 13.00 Selasa 13.00 –– 15.0015.00
Sistem PenilaianSistem Penilaian : : UTS UTS –– 40 %40 %
UAS UAS –– 40 %40 %
Tugas, Quis & Praktikum Tugas, Quis & Praktikum –– 20 %20 %
Tugas & Praktikum harus lengkapTugas & Praktikum harus lengkap
KehadiranKehadiran : : Minimum 80 % (Minimum 80 % (±± 13 pertemuan termasuk UTS & UAS)13 pertemuan termasuk UTS & UAS)
Kehadiran pada kuliah Kehadiran pada kuliah harus tepat waktuharus tepat waktu
K tK t B k i ih & b tB k i ih & b t ( d l )KostumKostum : Berpakaian rapih & bersepatu Berpakaian rapih & bersepatu (sandal … no)
Ketua kelasKetua kelas : : NIM Ganjil NIM Ganjil ‐‐
NIM GenapNIM Genap ‐‐
Buku referensiBuku referensi : : Data Analysis for Data Base DesignData Analysis for Data Base Design –– D.R. HoweD.R. Howe
Sistem Manajemen Database Sistem Manajemen Database –– Raghu RamakrishnanRaghu Ramakrishnan
WHY NOT THE BESTWHY NOT THE BEST
DEFINISIDEFINISI
•• DataData
Fakta,Fakta, teks,teks, hasilhasil pengukuran,pengukuran, gambar,gambar, suara,suara, dandan videovideo yangyangbernilaibernilai informasiinformasi..
•• InformasiInformasi
DataData yangyang telahtelah diprosesdiproses sebagaisebagai bahanbahan dalamdalam prosesprosesDataData yangyang telahtelah diprosesdiproses sebagaisebagai bahanbahan dalamdalam prosesprosespengambilanpengambilan keputusankeputusan..
•• DatabaseDatabase
KumpulanKumpulan datadata yangyang terorganisirterorganisir berdasarkanberdasarkan suatusuatu strukturstrukturhubunganhubungan..
•• MetadataMetadata
DataData yangyang mendeskripsikanmendeskripsikan datadata lainlain..
INFORMASIINFORMASI
Informasi Informasi ‐‐ dapat dimanfaatkan sebagai dasar untuk dapat dimanfaatkan sebagai dasar untuk pengambilan keputusan dan memahami permasalahan/situasipengambilan keputusan dan memahami permasalahan/situasi
BASISDATA DAN DBMSBASISDATA DAN DBMS
• Jumlah kumpulan data (datasets) pada suatu organisasi (enterprise) sangat mungkin volumenya besar sekali (huge);
• A database is a collection of non‐redundant data shareable between different application systems ‐ Basis data adalah kumpulan data yang non‐redundant yang berbagi pakai diantara berbagai sistem aplikasi;
• Misalkan kita ingin membangun basisdata suatu Program Studi. Harus disimpan sejumlah data/informasi yang terkait dengan (model real world):
o Entitas: Mahasiswa, Dosen, Matakuliah, dan Ruangan
o Relationships: Dosen mengajar matakuliah apa? Dosen mengajar mahasiswa mana? Mahasiswa mengambil matakuliah apa saja? Dosen mengajar di ruang mana?
BASISDATA DAN DBMSBASISDATA DAN DBMS
•• Apa Apa yang dapat dilakukan oleh DBMS: yang dapat dilakukan oleh DBMS: oo Menyimpan jumlah/volume data yang sangat besar Menyimpan jumlah/volume data yang sangat besar dalam jangka waktu dalam jangka waktu
yang lama;yang lama;oo Melakukan Melakukan queryquery dan dan updateupdate data:data:
‐‐ Query: Query: Berapa nilai Nila untuk matakuliah IUT?Berapa nilai Nila untuk matakuliah IUT?‐‐ UpdateUpdate:: Meregistrasi nama Anita untuk kuliah BasisdataMeregistrasi nama Anita untuk kuliah Basisdata
oo Memproteksi terhadap akses ilegal:Memproteksi terhadap akses ilegal:‐‐ Jangan sampai mahasiswa dapat merubah nilai sesuatu Jangan sampai mahasiswa dapat merubah nilai sesuatu
matakuliahmatakuliah
oo Menangani dengan baik akses secara bersamaan oleh banyak pengguna:Menangani dengan baik akses secara bersamaan oleh banyak pengguna:‐‐ 1000 mahasiswa mengakses sistem registrasi 1000 mahasiswa mengakses sistem registrasi onon‐‐lineline padapada
saat bersamaan;saat bersamaan;
oo Memproteksi terhadap adanyaMemproteksi terhadap adanya system crashes:system crashes:‐‐ Apabila salahsatu sistem gagal (Apabila salahsatu sistem gagal (hardhard‐‐drivedrive, , networknetwork, etc.), etc.)basisdata mampu menjaga keutuhan data.basisdata mampu menjaga keutuhan data.
2/9/2010
2
•• Data disimpan dalam bentuk Data disimpan dalam bentuk banyak banyak filefile dalam suatu dalam suatu operating operating systemssystems;;
•• Aplikasi yang ada harus berkaitan antara lain dengan dengan halAplikasi yang ada harus berkaitan antara lain dengan dengan hal‐‐hal berikut:hal berikut:
oo Jumlah/Volume data yang sangat besar sehingga perlu Jumlah/Volume data yang sangat besar sehingga perlu penanganan khusus (optimasi);penanganan khusus (optimasi);
oo MenulisMenulis specialspecial sourcesource--codecode untuk melayani/menanganiuntuk melayani/menangani
ALTERNATIF SELAIN DBMSALTERNATIF SELAIN DBMS
oo Menulis Menulis special special sourcesource codecode untuk melayani/menangani untuk melayani/menangani berbagai berbagai queries;queries;
oo Menulis Menulis special special sourcesource--codecode untuk melindungi data karena untuk melindungi data karena adanya akses yang bersamaan oleh pengguna yang berbedaadanya akses yang bersamaan oleh pengguna yang berbeda‐‐beda; beda;
oo Optimisasi aplikasi untuk akses dan Optimisasi aplikasi untuk akses dan query query yang efisien;yang efisien;oo Kemungkinan akan sering menulis ulang Kemungkinan akan sering menulis ulang sourcesource‐‐codecode untuk untuk berbagai aplikasi.berbagai aplikasi.
•• Lebih gampang membeli suatu DBMS ketimbang harus Lebih gampang membeli suatu DBMS ketimbang harus menangani masalahmenangani masalah‐‐masalah di atas. masalah di atas.
PROGRAM KETERGANTUNGAN AKAN DATAPROGRAM KETERGANTUNGAN AKAN DATATiga sistem Tiga sistem filefile processing pada suatu Perusahaanprocessing pada suatu Perusahaan
•• FileFile yang diperlukan disimpan di masingyang diperlukan disimpan di masing‐‐masing aplikasi yang dapat diakses secara masing aplikasi yang dapat diakses secara terpisah oleh masingterpisah oleh masing‐‐masing sistem aplikasi yang ada;masing sistem aplikasi yang ada;
••Ada beberapa Ada beberapa filefile yang sama yang diperlukan/ada oleh/pada sistem aplikasi yang yang sama yang diperlukan/ada oleh/pada sistem aplikasi yang berbeda;berbeda;
•• Setiap perubahan struktur pada setiap Setiap perubahan struktur pada setiap filefile yang ada pada setiap aplikasi harus juga yang ada pada setiap aplikasi harus juga dilakukan hal yang sanma pada sistem aplikasi lainnya.dilakukan hal yang sanma pada sistem aplikasi lainnya.
MENGAPA PERLU MEMAHAMI DBMSMENGAPA PERLU MEMAHAMI DBMS
•• Sekarang ini dipakai dimanaSekarang ini dipakai dimana‐‐mana. mana. oo PendidikanPendidikanoo Rumah SakitRumah Sakitoo Online stores, real storesOnline stores, real storesoo Banks, credit card companiesBanks, credit card companiesoo Passport controlPassport controloo Police (criminal records)Police (criminal records)oo Airlines and hotels (reservations)Airlines and hotels (reservations)oo MilitaryMilitaryoo Dll.Dll.
•• Vendor DBMS & produkVendor DBMS & produk–– Oracle, Microsoft (Access and SQL server), IBM (DB2), Oracle, Microsoft (Access and SQL server), IBM (DB2), Sybase, … Sybase, …
MENGAPA PERLU MEMAHAMI DBMSMENGAPA PERLU MEMAHAMI DBMS
•• Sekarang ini Sekarang ini PetaPeta ((Data GeospasialData Geospasial) baik topografi ) baik topografi maupun tematik dalam bentuk model yang disajikan di maupun tematik dalam bentuk model yang disajikan di atas kertas (atas kertas (peta cetakpeta cetak) dapat dikonversi ke dalam sistem ) dapat dikonversi ke dalam sistem digital (komputer), dan dikenal sebagai digital (komputer), dan dikenal sebagai Peta DigitalPeta Digital;;
•• Peta Digital tiada lain adalah sistem pemetaan dengan Peta Digital tiada lain adalah sistem pemetaan dengan penyimpanan data (spasial & nonpenyimpanan data (spasial & non‐‐spasial) dalam bentuk spasial) dalam bentuk p y p ( pp y p ( p p )p )basisdata, dikenal sebagai basisdata, dikenal sebagai Basisdata Spasial;Basisdata Spasial;
•• Sistem Informasi Geografis (SIG) Sistem Informasi Geografis (SIG) atauatau Geographical Geographical Information SystemsInformation Systems (GIS) (GIS) berbasiskan berbasiskan Peta Digital Peta Digital (Basisdat Spasial).(Basisdat Spasial).
PERJALANAN PENGEMBANGANPERJALANAN PENGEMBANGAN•• Awal 1960Awal 1960‐‐anan
oo Penyimpanan data terintegrasi, DBMS pertama yang sifatnya Penyimpanan data terintegrasi, DBMS pertama yang sifatnya multiguna didisain oleh Charles Bachman untuk GE;multiguna didisain oleh Charles Bachman untuk GE;
oo Bentuk dasar model basisdata Bentuk dasar model basisdata networknetwork;;
oo Charles Bachman menerima Turing Award Charles Bachman menerima Turing Award –– thn. 1973 dalam bidang thn. 1973 dalam bidang database areadatabase area..
•• Akhir 1960Akhir 1960‐‐ananAkhir 1960Akhir 1960 anan
oo IBM mengembangkan IBM mengembangkan Information Management System Information Management System (IMS), (IMS), bahkan sekarang ini masih banyak dipakai;bahkan sekarang ini masih banyak dipakai;
oo IMS merupakan bentuk dasar model basisdata hirarkikal IMS merupakan bentuk dasar model basisdata hirarkikal ((hierarchical hierarchical ))
oo American Airlines American Airlines & IBM bekerjasama dalam mengembangkan & IBM bekerjasama dalam mengembangkan SABRE untuk keperluan sistem reservasi penerbangan;SABRE untuk keperluan sistem reservasi penerbangan;
oo SABRE saat ini masih digunakan antara lain untuk layanan perjalanan SABRE saat ini masih digunakan antara lain untuk layanan perjalanan berbasis Web berbasis Web
PERJALANAN PENGEMBANGANPERJALANAN PENGEMBANGAN
•• 19801980‐‐anan
oo Model basisdata Relasional memposisikan diri sebagai DBMS Model basisdata Relasional memposisikan diri sebagai DBMS yang dominan dan sistem ini digunakan secara meluas sampai yang dominan dan sistem ini digunakan secara meluas sampai saat ini;saat ini;
oo SQL (SQL (Simple Query LanguageSimple Query Language) merupakan suatu ) merupakan suatu queryquerylanguagelanguage yang dikembangkan sebagai bagian dari Proyekyang dikembangkan sebagai bagian dari Proyeklanguagelanguage yang dikembangkan sebagai bagian dari Proyek yang dikembangkan sebagai bagian dari Proyek Sistem RSistem R‐‐nya IBM. Sekarang ini merupakan sistem nya IBM. Sekarang ini merupakan sistem query query languagelanguage yang dijadikan standard;yang dijadikan standard;
oo SQL distandarisasi akhir 1980SQL distandarisasi akhir 1980‐‐an, dan standard yang berlaku an, dan standard yang berlaku sekarang ini yaitu sekarang ini yaitu standard SQLstandard SQL:1999 yang kemudian diadopsi :1999 yang kemudian diadopsi dan dikembangkan oleh ANSI & ISO;dan dikembangkan oleh ANSI & ISO;
2/9/2010
3
•• Akhir 1980Akhir 1980‐‐an sampai 1990an sampai 1990‐‐an:an:
oo Penelitian yang ektensif yang terkait dengan pengembangan Penelitian yang ektensif yang terkait dengan pengembangan query languagequery language yang lebih yang lebih powerfullpowerfull dan model data yang lebih dan model data yang lebih prima dengan penekanan terhadap dukungan yang terkait prima dengan penekanan terhadap dukungan yang terkait dengan masalah enterprise yang makin kompleks;dengan masalah enterprise yang makin kompleks;
oo Beberapa vendor, e.g., IBM’s DB2, Oracle 8, Informix UDS, Beberapa vendor, e.g., IBM’s DB2, Oracle 8, Informix UDS,
PERJALANAN PENGEMBANGANPERJALANAN PENGEMBANGAN
mengembangkan sistem mereka untuk dapat menangani masalah mengembangkan sistem mereka untuk dapat menangani masalah penyimpanan jenis data baru antara lain data spasial, dan penyimpanan jenis data baru antara lain data spasial, dan melayani melayani queriesqueries yang lebih kompleks;yang lebih kompleks;
oo Data warehousesData warehouses telah dikemangkan sejumlah vendor untuk telah dikemangkan sejumlah vendor untuk mengkonsolidasi dan mengintegrasikan beberapa jenis basisdata, mengkonsolidasi dan mengintegrasikan beberapa jenis basisdata, dan untuk pencapaian dalam hal penanganan analisis khusus mis. dan untuk pencapaian dalam hal penanganan analisis khusus mis. analisis spasial.analisis spasial.
EVOLUSI TEKNOLOGI BASISDATAEVOLUSI TEKNOLOGI BASISDATA
•• FlatFlat FileFile 19601960anan ‐‐ 19801980anan
•• HierarchicalHierarchical 19701970anan ‐‐ 19901990anan
•• NetworkNetwork 19701970anan ‐‐ 19901990anan
•• RelationalRelational 19801980anan ‐‐ sekarangsekarang•• RelationalRelational 19801980anan ‐‐ sekarangsekarang
•• ObjectObject‐‐orientedoriented 19901990anan ‐‐ sekarangsekarang
•• ObjectObject‐‐relationalrelational 19901990anan ‐‐ sekarangsekarang
DATABASE DATABASE FLAT FILEFLAT FILE
DatabaseDatabase flatflat filefile samasama dengandengan filefile datadata padapada spreadsheetspreadsheet (misal(misal MSMSExcel™),Excel™), berupaberupa satusatu filefile berisiberisi barisbaris‐‐barisbaris dengandengan jumlahjumlah kolomkolom tetaptetap yangyangdisimpandisimpan berurutanberurutan dalamdalam filefile..
NIP Nama Nama Depan Telp123123 4545 67896789 S tS t HH 021021 316316 12341234123123‐‐4545‐‐67896789 SantosoSantoso HeruHeru 021021‐‐316316‐‐12341234987987‐‐6565‐‐43214321 PurnamaPurnama WidyaWidya 022022‐‐543543‐‐98769876987987‐‐6565‐‐43214321 JacksonJackson MichaelMichael 021021‐‐234234‐‐56785678567567‐‐8989‐‐01230123 IskandarIskandar DodiDodi 021021‐‐987987‐‐64316431
•• Relational ModelRelational Model: proposed in 1970 by E.F. Codd (IBM), first : proposed in 1970 by E.F. Codd (IBM), first commercial system in 1981commercial system in 1981‐‐82. Now in several commercial products 82. Now in several commercial products (DB2, ORACLE, SQL Server, SYBASE, INFORMIX).(DB2, ORACLE, SQL Server, SYBASE, INFORMIX).
•• Network ModelNetwork Model: the first one to be implemented by Honeywell in : the first one to be implemented by Honeywell in 19641964‐‐65 (IDS System). Adopted heavily due to the support by 65 (IDS System). Adopted heavily due to the support by CODASYL (CODASYL CODASYL (CODASYL ‐‐ DBTG report of 1971). Later implemented in a DBTG report of 1971). Later implemented in a
HISTORY OF DATA MODELS HISTORY OF DATA MODELS
large variety of systems large variety of systems ‐‐ IDMS (Cullinet IDMS (Cullinet ‐‐ now CA), DMS 1100 now CA), DMS 1100 (Unisys), IMAGE (H.P.), VAX (Unisys), IMAGE (H.P.), VAX ‐‐DBMS (Digital Equipment Corp.).DBMS (Digital Equipment Corp.).
•• Hierarchical Data ModelHierarchical Data Model: implemented in a joint effort by IBM and : implemented in a joint effort by IBM and North American Rockwell around 1965. Resulted in the IMS family North American Rockwell around 1965. Resulted in the IMS family of systems. The most popular model. Other system based on this of systems. The most popular model. Other system based on this model: System 2k (SAS inc.)model: System 2k (SAS inc.)
•• ObjectObject‐‐oriented Data Model(s)oriented Data Model(s): several models have been : several models have been proposed for implementing in a database system. One set proposed for implementing in a database system. One set comprises models of persistent Ocomprises models of persistent O‐‐O Programming Languages O Programming Languages such as C++ (e.g., in OBJECTSTORE or VERSANT), and Smalltalk such as C++ (e.g., in OBJECTSTORE or VERSANT), and Smalltalk (e.g., in GEMSTONE). Additionally, systems like O(e.g., in GEMSTONE). Additionally, systems like O2, 2, ORION (at ORION (at MCCMCC ‐‐ then ITASCA), IRIS (at H.P.then ITASCA), IRIS (at H.P.‐‐ used in Open OODB).used in Open OODB).
HISTORY OF DATA MODELS HISTORY OF DATA MODELS
MCC MCC then ITASCA), IRIS (at H.P.then ITASCA), IRIS (at H.P. used in Open OODB). used in Open OODB).
•• ObjectObject‐‐Relational ModelsRelational Models: Most Recent Trend. Started with : Most Recent Trend. Started with Informix Universal Server. Exemplified in the latest versions of Informix Universal Server. Exemplified in the latest versions of OracleOracle‐‐10i, DB2, and SQL Server etc. systems. 10i, DB2, and SQL Server etc. systems.
BASISDATA BASISDATA HIERARCHICALHIERARCHICAL
2/9/2010
4
HIERARCHICAL MODELHIERARCHICAL MODEL
12345671234567
Sandiego, CarmenSandiego, Carmen 123 Main Street123 Main Street
HIERARCHICAL DATABASESHIERARCHICAL DATABASES
LabsLabs
Chem7Chem7
Na136Na136 K 4.3K 4.3
Chem7Chem7
Na142Na142 K 3.9K 3.9
12345671234567
AdmissionsAdmissions
Admission 1Admission 1
HIERARCHICAL CHAOSHIERARCHICAL CHAOS
Admit Date:Admit Date:2/2/022/2/02
Primary DX:Primary DX:CHFCHF
Other DXOther DX
AODMAODM
Flag: SFlag: S
A FibA Fib
Flag: PFlag: P
^EMR(1234567)=“Sandiego, Carmen”^EMR(1234567)=“Sandiego, Carmen”
^EMR(1234567, “Address”)=“123 Main Street”^EMR(1234567, “Address”)=“123 Main Street”
^EMR(1234567, “Chem7”, “2/2/02”, “Na”)=136^EMR(1234567, “Chem7”, “2/2/02”, “Na”)=136
^EMR(1234567 “Chem7” “2/2/02” “K”) 4 3^EMR(1234567 “Chem7” “2/2/02” “K”) 4 3
HIERARCHICAL DATABASESHIERARCHICAL DATABASES
^EMR(1234567, “Chem7”, “2/2/02”, “K”)=4.3^EMR(1234567, “Chem7”, “2/2/02”, “K”)=4.3
^EMR(1234567, “Chem7”, “2/3/02”, “Na”)=142^EMR(1234567, “Chem7”, “2/3/02”, “Na”)=142
^EMR(1234567, “Chem7”, “2/3/02”, “K”)=3.9^EMR(1234567, “Chem7”, “2/3/02”, “K”)=3.9
•• Easy to useEasy to use
•• Efficient storageEfficient storage
•• “Tree walking” is fast“Tree walking” is fast
•• Queries across trees are slowQueries across trees are slow
Fl iblFl ibl
HIERARCHICAL DATABASESHIERARCHICAL DATABASES
•• FlexibleFlexible
•• Too flexible: chaos is allowedToo flexible: chaos is allowed
•• Too easy to modifyToo easy to modify
•• Difficult to document complex structuresDifficult to document complex structures
•• ADVANTAGESADVANTAGES::••Hierarchical Model is simple to construct and operate onHierarchical Model is simple to construct and operate on•• Corresponds to a number of natural hierarchically organized Corresponds to a number of natural hierarchically organized domains domains ‐‐ e.g., assemblies in manufacturing, personnel e.g., assemblies in manufacturing, personnel organization in companies organization in companies
•• Language is simple; uses constructs like GET, GET UNIQUE, GET Language is simple; uses constructs like GET, GET UNIQUE, GET
HIERARCHICAL MODELHIERARCHICAL MODEL
g g p ; , Q ,g g p ; , Q ,NEXT, GET NEXT WITHIN PARENT etc.NEXT, GET NEXT WITHIN PARENT etc.
•• DISADVANTAGESDISADVANTAGES::••Navigational and procedural nature of processingNavigational and procedural nature of processing••Database is visualized as a linear arrangement of recordsDatabase is visualized as a linear arrangement of records•• Little scope for "query optimization" Little scope for "query optimization"
2/9/2010
5
BASISDATA BASISDATA NETWORKNETWORK NETWORK MODELNETWORK MODEL
12345671234567
SandiegoSandiego
Gyn ClinicGyn Clinic
SecretarySecretary
2 Main St.2 Main St.
305305‐‐25002500
NETWORK DATABASESNETWORK DATABASES
Gyn ClinicGyn Clinic
PapPap
Dr. JonesDr. JonesGyn VisitGyn Visit
305305‐‐10001000 ServiceService
Ms SmithMs Smith
Beeper 34Beeper 34
8AM8AM‐‐5PM5PM
•• ADVANTAGESADVANTAGES::•• Network Model is able to model complex relationships and Network Model is able to model complex relationships and represents semantics of add/delete on the relationships.represents semantics of add/delete on the relationships.
•• Can handle most situations for modeling using record types and Can handle most situations for modeling using record types and relationship types.relationship types.
•• Language is navigational; uses constructs like FIND, FIND Language is navigational; uses constructs like FIND, FIND member FIND owner FIND NEXT within set GET etcmember FIND owner FIND NEXT within set GET etc
NETWORK MODELNETWORK MODEL
member, FIND owner, FIND NEXT within set, GET etc. member, FIND owner, FIND NEXT within set, GET etc. Programmers can do optimal navigation through the database.Programmers can do optimal navigation through the database.
•• DISADVANTAGESDISADVANTAGES::•• Navigational and procedural nature of processingNavigational and procedural nature of processing•• Database contains a complex array of pointers that thread Database contains a complex array of pointers that thread through a set of records. through a set of records. Little scope for automated "query optimization”Little scope for automated "query optimization”
DBMS DAN APLIKASIDBMS DAN APLIKASI
•• PendefinisianPendefinisian data: data: Data Definition Data Definition LanguageLanguage (DDL)(DDL)
•• AksesAkses dandan operasioperasi terhadapterhadap data: data: Data Manipulation LanguageData Manipulation Language(DML)(DML)
oo Query languageQuery language
ApplicationsApplications
Abstraction & InterfaceAbstraction & Interfaceoo Query languageQuery language
•• ManajemenManajemen penyimpananpenyimpanan•• ManajemenManajemen transaksitransaksi::
oo Concurrency controlConcurrency controloo Crash recoveryCrash recovery
•• Provide good security, efficiency, Provide good security, efficiency, and scalabilityand scalability
SystemSystem(DBM
S)(DBM
S)
((Database languageDatabase language: SQL): SQL)
Perform dirty work that you Perform dirty work that you don’t want applications to dodon’t want applications to do
MENGAPA BASISDATAMENGAPA BASISDATA
•• TrjadiTrjadi pergeseranpergeseran daridari computationcomputation keke informationinformation
–– padapada low endlow end: : orangorang berlombaberlomba‐‐lombalombamemanfaatkanmemanfaatkan webspacewebspace;;
–– PadaPada high endhigh end: : aplikasiaplikasi keilmuankeilmuan
•• DatasetDataset meningkatmeningkat dalamdalam diversitidiversiti & volume& volume
?
Dataset Dataset meningkatmeningkat dalamdalam diversitidiversiti & volume. & volume.
–– Digital librariesDigital libraries, , interactive videointeractive video, , Human Genome Human Genome projectproject, , EOS projectEOS project
–– ... ... memerlukanmemerlukan adanyaadanya peningkatanpeningkatan DBMS DBMS
•• DBMS DBMS encompasses most of CSencompasses most of CS
–– OS, OS, languageslanguages, , theorytheory, multimedia, , multimedia, logiclogic
2/9/2010
6
MODEL DATAMODEL DATA
•• SuatuSuatu model datamodel data adalah kumpulan (adalah kumpulan (collectioncollection) konsep untuk ) konsep untuk mengdeskripsikan tentang data:mengdeskripsikan tentang data:
oo Model relasional/normalisasi;Model relasional/normalisasi;
oo Model ER (Model ER (EntityEntity‐‐relationrelation););
•• Suatu Suatu skema skema ((schemaschema) adalah deskripsi tentang sustu data ) adalah deskripsi tentang sustu data berdasarkan model data yang dibuat;berdasarkan model data yang dibuat;berdasarkan model data yang dibuat;berdasarkan model data yang dibuat;
•• Model relasionalModel relasional banyak digunakan dalam hal pemodelan data:banyak digunakan dalam hal pemodelan data:
oo Suatu relasiSuatu relasi ((relationrelation) secara mendasar adalah satu tabel ) secara mendasar adalah satu tabel yang terdiri dari baris dan kolom yang terkait dengan yang terdiri dari baris dan kolom yang terkait dengan recordrecord; ;
oo Setiap relasi akan memiliki satu Setiap relasi akan memiliki satu skemaskema yang mendeskripyang mendeskrip‐‐sikan kolomsikan kolom‐‐kolom atau kolom atau fieldsfields..
DaftarDaftarMahasiswaMahasiswa ProdiProdi GeodesiGeodesi & & GeomatikaGeomatikaYang Yang MengambilMengambil BeasiswaBeasiswa PrestasiPrestasi ‐‐ TahunTahun 19931993
DanDan HumapituHumapitu0909
PemPem DelanoyDelanoy0808
RitaasmaraRitaasmara RiniRini0707
TeoTeo TimurTimur JayaJaya0505
KanuKanu SubrataSubrata0303
DedeDede TupamahuTupamahu0202
AbdullahAbdullah AmirAmir0101
NIMNIMNamaNamaNoNo
2828--0606--19741974
3030--0202--19761976
2424--0808--19751975
1414--0909--19731973
3030--1212--19731973
3030--0101--19741974
3030--0202--19721972
Tgl_LahirTgl_Lahir
2121--0404--19751975
1519301015193010
1519300715193007
1519300615193006
1519300415193004
1519200615192006
1519200415192004
1519108015191080
1519200815192008JohanJohan AfandiAfandi0404
IPKIPK
JlJl.. GajahGajah MadaMada 11
JlJl.. MerdekaMerdeka 1212
JlJl.. RiauRiau 1111
JlJl.. CicashoCicasho 3333
JlJl.. GempolGempol 3434
JlJl.. TamansariTamansari 1212
JlJl.. DagoDago 4545
AlamatAlamat
JlJl.. CC.. WanaraWanara 2727
3,53,5
3,73,7
3,43,4
3,23,2
3,53,5
4,04,0
3,63,63,93,9
JoniJoni JoniJoni JohnJohn0606
OrtuOrtu
AliAli HumapituHumapitu
SamSam PurnajayaPurnajaya
RenoReno MuranoMurano
JayanegaraJayanegara TT..
IhsanIhsan SaniSani
MohMoh.. AmirudinAmirudin
HH.. AbdAbd.. KadirKadir
RudiRudi SS.. AfandiAfandi
JohnJohn AbdusalamAbdusalam2121--0303--197119711519300515193005 JlJl.. DagoDago 45453,73,7
⇒⇒ Entitas (EntityEntitas (Entity))Yang Yang MengambilMengambil BeasiswaBeasiswa PrestasiPrestasiTahunTahun 19931993
MahasiswaMahasiswa ProdiProdi GeodesiGeodesi & & GeomatikaGeomatika
SkemaSkema daridari MahasiswaMahasiswa adalahadalah JudulJudul KolomKolom::
MahasiswaMahasiswa(No: Integer, (No: Integer, NamaNama: String, NIM: Integer, IPK: Real, : String, NIM: Integer, IPK: Real, Tgl_LahirTgl_Lahir: Integer, : Integer, AlamatAlamat: String, : String, OrtuOrtu: String): String)
JoniJoni JoniJoni JohnJohn0606 JohnJohn AbdusalamAbdusalam2121--0303--198119811519300515193005 JlJl.. DagoDago 45453,73,7 SatuSatu recordrecord lengkaplengkap
NIMNIMNamaNama
NoNo
Tgl_LahirTgl_LahirIPKIPK
AlamatAlamatOrtuOrtu
⇒⇒ Item/FieldItem/Field//AtributAtribut
Kumpulan Kumpulan record record lengkaplengkap ((padapada tabeltabel didi atasatas adaada 9 9 record) record) ⇒⇒ FileFile
DatabaseDatabase
FileFile
RecordRecord
FieldField
Course Course FileFile
FinancialFinancialFileFile
Personal Personal FileFile
ByteByte
BitBit
PENGERTIAN TABELPENGERTIAN TABEL
••MateriMateri::
oo PengertianPengertian dandan bentukbentuk tabeltabel;;
oo PersyaratanPersyaratan sebuahsebuah tabeltabel bentukbentuk normal;normal;
oo NilaiNilai kosongkosong ((null valuenull value) )
oo PengertianPengertian filefile
TabelTabel MahasiswaMahasiswa
Jenis (nama) kolomJenis (nama) kolom/ / itemitem//fieldfield//atributatribut
Nama tabelNama tabel
BENTUK TABELBENTUK TABEL•• Terdiri atas baris dan kolom.Terdiri atas baris dan kolom.
•• Perpotongan baris dan kolom memiliki nilai data/nilai atribut.Perpotongan baris dan kolom memiliki nilai data/nilai atribut.
•• Dapat ditulis: Mahasiswa (NIM, Nama_Mhs, Alamat, Kota)Dapat ditulis: Mahasiswa (NIM, Nama_Mhs, Alamat, Kota)
Baris/ Baris/ recordrecord
Nilai data/ Nilai data/ atributatribut
NIMNIM
1519300415193004
1519300515193005
1519300615193006
……
1519309815193098
Nama_MhsNama_Mhs
Teo Timur JayaTeo Timur Jaya
Joni Joni JohnJoni Joni John
Ritaasmara Rini Ritaasmara Rini
……
Doni SaputraDoni Saputra
AlamatAlamat
Cicasho 33Cicasho 33
Fatahillah 122Fatahillah 122
Majapahit 213Majapahit 213
……
Moh. Toha 156Moh. Toha 156
KotaKota
BandungBandung
JakartaJakarta
SurabayaSurabaya
……
TanggerangTanggerang
SYARAT TABELSYARAT TABEL
1.1. UrutanUrutan barisbaris bolehboleh sembarangsembarang dandan dapatdapatdipertukarkandipertukarkan tanpatanpa mempengaruhimempengaruhi nilainilai informasiinformasitabeltabel..
2.2. UrutanUrutan kolomkolom bolehboleh sembarangsembarang dandan tiaptiap kolomkolommemilikimemiliki namanama//jenisjenis atributatribut ((item nameitem name) yang ) yang //jj (( ) y g) y gberbedaberbeda ((unikunik).).
3.3. PerpotonganPerpotongan barisbaris dandan kolomkolom berisikanberisikan hanyahanya satusatunilainilai atributatribut/data. /data. BanyakBanyak nilainilai padapada perpotonganperpotonganbarisbaris//kolomkolom tidaktidak diperbolehkandiperbolehkan..
4.4. PenampilanPenampilan tiaptiap barisbaris dalamdalam satusatu tabeltabel harusharusberbedaberbeda, , tidaktidak bolehboleh persispersis samasama..
2/9/2010
7
URUTAN KOLOM DAN BARIS URUTAN KOLOM DAN BARIS DAPAT DIPERTUKARKANDAPAT DIPERTUKARKAN
TabelTabel MahasiswaMahasiswaNIMNIM AlamatAlamat Nama_MhsNama_MhsKotaKota
1519309815193098 Moh. Toha 156Moh. Toha 156 Doni SaputraDoni SaputraTanggerangTanggerang
akan
akan
1519300515193005
1519300615193006
……
Fatahillah 122Fatahillah 122
Majapahit 213Majapahit 213
……
Joni Joni JohnJoni Joni John
Ritaasmara Rini Ritaasmara Rini
……
JakartaJakarta
SurabayaSurabaya
……
1519300415193004 Cicasho 33Cicasho 33 Teo Timur JayaTeo Timur JayaBandungBandung
Kolom dipertukakanKolom dipertukakan
Baris dipe
rtuka
Baris dipe
rtuka
URUTAN KOLOM DAN BARIS URUTAN KOLOM DAN BARIS DAPAT DIPERTUKARKANDAPAT DIPERTUKARKAN
TabelTabel MahasiswaMahasiswaNIMNIM AlamatAlamat Nama_MhsNama_MhsKotaKota
1519309815193098 Moh. Toha 156Moh. Toha 156 Doni SaputraDoni SaputraTanggerangTanggerang
akan
akan
1519300515193005
1519300615193006
……
Fatahillah 122Fatahillah 122
Majapahit 213Majapahit 213
……
Joni Joni JohnJoni Joni John
Ritaasmara Rini Ritaasmara Rini
……
JakartaJakarta
SurabayaSurabaya
……
1519300415193004 Cicasho 33Cicasho 33 Teo Timur JayaTeo Timur JayaBandungBandung
Kolom dipertukakanKolom dipertukakan
Baris dipe
rtuka
Baris dipe
rtuka
NULL VALUENULL VALUE
•• Nilai atribut bisa jadi ‘Nilai atribut bisa jadi ‘tidak adatidak ada’, karena ’, karena memang tidak diketahui atau karena memang tidak diketahui atau karena memang betulmemang betul‐‐betul tidak ada. betul tidak ada.
•• Contoh: telur ayam tidak diketahui berapa Contoh: telur ayam tidak diketahui berapa jumlahnya meskipun hewan ini pada jumlahnya meskipun hewan ini pada kenyataannya memiliki telur, sedangkan kenyataannya memiliki telur, sedangkan
TelurTelurKhewanKhewan
GajahGajahAyamAyam
AngsaAngsa 44
??gajah betulgajah betul‐‐betul tidak memiliki telur.betul tidak memiliki telur.
•• Untuk setiap nilai yang ‘Untuk setiap nilai yang ‘tidak adatidak ada’ dapat ’ dapat ditampilkan (meskipun tidak selalu) ditampilkan (meskipun tidak selalu) dengan ‘nilai’ kosong (dengan ‘nilai’ kosong (blankblank).).
Diskusi:Diskusi:Apa bedanya antara Apa bedanya antara nullnull dengan nol?dengan nol?
AyamAyam
BebekBebek
SapiSapi
??
33
TABEL NORMALTABEL NORMAL•• Tabel yang sudah memenuhi 4 syarat tabel.Tabel yang sudah memenuhi 4 syarat tabel.
•• Umumnya kesalahan terjadi karena tidak dipenuhinya syarat Umumnya kesalahan terjadi karena tidak dipenuhinya syarat nomor 3 (tabel belum normal).nomor 3 (tabel belum normal).
•• Tabel yang sudah memenuhi pengujian dari proses tertentu Tabel yang sudah memenuhi pengujian dari proses tertentu disebut tabel normal penuh (disebut tabel normal penuh (fully normalized tablefully normalized table), bukan hanya ), bukan hanya Tabel NormalTabel Normal..
TabelTabel MahasiswaMahasiswa
Diskusi: Diskusi: Manakah yang sudah berupa Tabel Normal?Manakah yang sudah berupa Tabel Normal?
NIMNIM
1519300415193004
1519300515193005
1519300615193006
……
1519309815193098
AlamatAlamat
Cicasho 33Cicasho 33
Fatahillah 122, Nangka 33Fatahillah 122, Nangka 33
Majapahit 213Majapahit 213
……
Moh. Toha 156Moh. Toha 156
TabelTabel MahasiswaMahasiswa NIMNIM
1519300415193004
1519300515193005
1519300615193006
……
1519309815193098
AlamatAlamat
Cicasho 33Cicasho 33
Fatahillah 122Fatahillah 122
Majapahit 213Majapahit 213
……
Moh. Toha 156Moh. Toha 156
1519300515193005 Nangka 33Nangka 33
TeoTeo TimurTimur JayaJaya0505
KanuKanu SubrataSubrata0303
DedeDede TupamahuTupamahu0202
AbdullahAbdullah AmirAmir0101
NIMNIMNamaNamaNoNo
1414--0909--19731973
3030--1212--19731973
3030--0101--19741974
3030--0202--19721972
Tgl_LahirTgl_Lahir
2121--0404--19751975
1519300415193004
1519200615192006
1519200415192004
1519108015191080
1519200815192008JohanJohan AfandiAfandi0404
IPKIPK
JlJl.. CicashoCicasho 3333
JlJl.. GempolGempol 3434
JlJl.. TamansariTamansari 1212
JlJl.. DagoDago 4545
AlamatAlamat
JlJl.. CC.. WanaraWanara 2727
3,53,5
3,73,7
3,43,4
3,23,2
3,53,5
JoniJoni JoniJoni JohnJohn0606
OrtuOrtu
JayanegaraJayanegara TT..
IhsanIhsan SaniSani
MohMoh.. AmirudinAmirudin
HH.. AbdAbd.. KadirKadir
RudiRudi SS.. AfandiAfandi
JohnJohn AbdusalamAbdusalam2121 0303 197119711519300515193005 JlJl DagoDago 45453 73 7
DaftarDaftar MahasiswaMahasiswa ProdiProdi GeodesiGeodesi & & GeomatikaGeomatikaYang Yang MengambilMengambil BeasiswaBeasiswa PrestasiPrestasi ‐‐ TahunTahun 19931993
CARA PENYIMPANAN TABELCARA PENYIMPANAN TABEL
DanDan HumapituHumapitu0909
PemPem DelanoyDelanoy0808
RitaasmaraRitaasmara RiniRini0707
2828--0606--19741974
3030--0202--19761976
2424--0808--19751975
1519301015193010
1519300715193007
1519300615193006
JlJl.. GajahGajah MadaMada 11
JlJl.. MerdekaMerdeka 1212
JlJl.. RiauRiau 11114,04,0
3,63,63,93,9
JoniJoni JoniJoni JohnJohn0606
AliAli HumapituHumapitu
SamSam PurnajayaPurnajaya
RenoReno MuranoMurano
JohnJohn AbdusalamAbdusalam2121--0303--197119711519300515193005 JlJl.. DagoDago 45453,73,7
•• Disimpan dalam sistem Disimpan dalam sistem FileFile, atau , atau •• Disimpan dalam sistem Basisdata menggunakan DBMSDisimpan dalam sistem Basisdata menggunakan DBMS
SISTEM SISTEM FILEFILETigaTiga sistemsistem filefile processing processing padapada suatusuatu PerusahaanPerusahaan
••FileFile yang diperlukan disimpan di masingyang diperlukan disimpan di masing‐‐masing aplikasi yang dapat diakses masing aplikasi yang dapat diakses secara terpisah oleh masingsecara terpisah oleh masing‐‐masing sistem aplikasi yang ada;masing sistem aplikasi yang ada;
••Ada beberapa Ada beberapa filefile yang sama yang diperlukan/ada oleh/pada sistem yang sama yang diperlukan/ada oleh/pada sistem aplikasi yang berbeda;aplikasi yang berbeda;
••Setiap perubahan struktur pada setiap Setiap perubahan struktur pada setiap filefile yang ada pada setiap aplikasi yang ada pada setiap aplikasi harus juga dilakukan hal yang sanma pada sistem aplikasi lainnya;harus juga dilakukan hal yang sanma pada sistem aplikasi lainnya;
••Akan timbul ktergantungan akan dataAkan timbul ktergantungan akan data..
2/9/2010
8
•• FileFile atauatau berkasberkas ialahialah sekumpulansekumpulan record record yang yang berhububerhubu‐‐nganngan ((collection of related recordscollection of related records).).
•• DalamDalam kontekskonteks iniini berupaberupa TabelTabel..
SISTEM SISTEM FILEFILE
File File NilaiNilai MahasiswaMahasiswa
FileFileMata Mata KuliahKuliah
SISTEM SISTEM FILEFILE SEDERHANASEDERHANA
•• SetiapSetiap penggunapengguna dapatdapat memilikimemiliki beberapabeberapa file;file;
•• AdaAda beberapabeberapa data yang data yang samasama dandan disimpandisimpan oleholeh setiapsetiappenggunapengguna didi filefile yang yang berbedaberbeda..
Data Data namanamapegawaipegawai
SISTEM SISTEM FILEFILE SEDERHANASEDERHANA
•• SetiapSetiap penggunapengguna dapatdapat memilikimemiliki beberapabeberapa file;file;
•• AdaAda beberapabeberapa data yang data yang samasama dandan disimpandisimpan oleholeh setiapsetiappenggunapengguna didi filefile yang yang berbedaberbeda..
KRITIK SISTEM KRITIK SISTEM FILEFILE
•• Adanya data yang Adanya data yang berlebihan (berlebihan (redundantredundant)) sehingga sehingga membutuhkan tempat penyimpanan yang besar (2x membutuhkan tempat penyimpanan yang besar (2x untuk item yang sama).untuk item yang sama).
Div. Marketing Div. Marketing Div. Gudang Div. Gudang
FileFile stockstock barang:barang:kodekode, , namanama, , jumlahjumlah, , tgl_datangtgl_datang
FileFile harga barang:harga barang:kodekode, , namanama, harga, , harga, jumlahjumlah
Ada data yang sama namun disimpan ditempat yang berbeda oleh Ada data yang sama namun disimpan ditempat yang berbeda oleh pengguna yang berbeda jugapengguna yang berbeda juga
KRITIK SISTEM KRITIK SISTEM FILEFILE•• KetidakKetidak‐‐konsistenan data (konsistenan data (inconsistencyinconsistency).).
FileFile stockstock barangbarang::kodekode, , namanama, , jumlahjumlah tgl datangtgl datang
Div. Div. GudangGudang Div. Marketing Div. Marketing
FileFile hargaharga barangbarang::kodekode, , namanama, , jumlahjumlah, , hargahargajumlahjumlah, , tgl_datangtgl_datang
Data awal:001, kursi, 20, 30-02-2009
Terjadi perubahan data:001, kursi, 40, 05‐03‐2009
hargaharga
Data awal:001, kursi, 20, IDR 100.000
Tidak ada perubahan data:001, kursi, 20, IDR 100.000
KENAPA BASISDATAKENAPA BASISDATA
Untuk memahami kebutuhan akan DBMS, perhatikan suatu skenario Untuk memahami kebutuhan akan DBMS, perhatikan suatu skenario berikut: berikut:
•• Perusahaan mempunyai basisdata berukuran besar, katakanlah Perusahaan mempunyai basisdata berukuran besar, katakanlah sebesar 500 GB, untuk menyimpan dan memelihara sebesar 500 GB, untuk menyimpan dan memelihara data data karyawan, departemen, produk, penjualan, dllkaryawan, departemen, produk, penjualan, dll.; .;
•• Data tsb harus dapat diakses secara serentak (Data tsb harus dapat diakses secara serentak (concurrentconcurrent) oleh ) oleh b b kb b kbeberapa karyawan; beberapa karyawan;
•• Pertanyaan (Pertanyaan (queriesqueries) mengenai data harus dapat dijawab secara ) mengenai data harus dapat dijawab secara cepat; cepat;
•• PerubahanPerubahan‐‐perubahan terhadap data oleh sejumlah pengguna perubahan terhadap data oleh sejumlah pengguna yang berbeda harus dapat dilakukan secara konsisten; yang berbeda harus dapat dilakukan secara konsisten;
•• Akses ke bagianAkses ke bagian‐‐bagian tertentu dari data (misalnya, data gaji) bagian tertentu dari data (misalnya, data gaji) harus dibatasi (harus dibatasi (restrictedrestricted). ).
2/9/2010
9
KONSEP SISTEM BASIS DATAKONSEP SISTEM BASIS DATA
•• DefinisiDefinisi basisdatabasisdata::‐‐ Common poolCommon pool‐‐ NonNon‐‐redundantredundant
‐‐ ShareableShareable
KONSEP SISTEM BASIS DATAKONSEP SISTEM BASIS DATA
KONSEP SISTEM BASIS DATAKONSEP SISTEM BASIS DATA
View View dari Progr. Perubahandari Progr. Perubahan StokStok
JUML_STOKJUML_STOKNO_PRODNO_PROD
View View dari Progr. Laporan Pemesenandari Progr. Laporan Pemesenan
JUML_STOKJUML_STOK LEV_ORDERLEV_ORDERDES_PRODES_PRONO_PRODNO_PROD
View View dari Progr. Perubahan Produkdari Progr. Perubahan Produk
HARGAHARGA JUML_STOKJUML_STOK LEV_ORDERLEV_ORDERNO_PRODNO_PROD
DBMS sebagai DBMS sebagai interface interface antara antara View View Basis Data Global Basis Data Global dengan Program Aplikasidengan Program Aplikasi
__ __DD
View View dari Progr. Perubahandari Progr. Perubahan HargaHarga
HARGAHARGANO_PRODNO_PROD
View View dari Progr. Print katalogdari Progr. Print katalog
HARGAHARGADES_PRODDES_PRODNO_PRODNO_PROD
HARGAHARGA JUML_STOKJUML_STOK LEV_ORDERLEV_ORDERDES_PRODDES_PRODNO_PRODNO_PROD
Basis Data GlobalBasis Data Global
D B M SD B M S
PANDANGAN TERHADAP DATAPANDANGAN TERHADAP DATA•Basis data memisahkan antara
pandangan program‐program aplikasi (local view) dengan
pandangan terhadap data yang disimpan (global view)
•Program aplikasi dapat mengakses data tersebut melalui DBMS
view 1view 1
view nview n
view 2view 2
…
Local viewLocal view
DBMS
Global viewGlobal view
File CFile B
File A
File D
DBMSDBMS Basis dataBasis data
AplikasiAplikasi11
AplikasiAplikasi22
DBMSDBMS
DBMS mengelola sumber daya DBMS mengelola sumber daya data sebagaimana data sebagaimana operating operating systemsystem (OS) mengelola sumber (OS) mengelola sumber daya perangkat kerasdaya perangkat keras
DBMSDBMS sebagai pusat sebagai pusat data organisasidata organisasi
22
AplikasiAplikasi33
2/9/2010
10
ARSITEKTUR (LEVEL ABSTRAKSI) DALAM DBMSARSITEKTUR (LEVEL ABSTRAKSI) DALAM DBMS
•• TerdiriTerdiri daridari BANYAKBANYAK viewviewss, , SATUSATUskemaskema konseptualkonseptual ((logikallogikal), ), dandanSATUSATU skemaskema fisikalfisikal
•• Views (Views (SkemaSkema eksternaleksternal))menjelaskanmenjelaskan bagaimanabagaimanapenggunapengguna melihatmelihat data data
•• SkemaSkema konseptualkonseptual
View 1View 1 View 2View 2 View 3View 3
Skema KonseptualSkema Konseptual
Aplikasi 2Aplikasi 1
ppmendefinisikanmendefinisikan strukturstruktur logikallogikal–– TabelTabel RelasionalRelasional
•• SkemaSkema fisikalfisikal menjelaskanmenjelaskan detildetilpenyimpananpenyimpanan data (data (misalnyamisalnya, , filesfiles dandan indexesindexes))‐‐ file file fisikfisik dalamdalam diskdisk‐‐ sorted file with B+ tree sorted file with B+ tree indexindex
Skema FisikSkema Fisik
• Skema didefinisikan menggunakan DDL;
• data di-modifikasi/query menggunakan DML.
TINGKATAN SKEMATINGKATAN SKEMA
CONTOH SKEMA LOGIKALCONTOH SKEMA LOGIKAL CONTOH SKEMA FISIKALCONTOH SKEMA FISIKAL
BASISDATA UNIVERSITASBASISDATA UNIVERSITAS
SkemaSkema KonseptualKonseptual ((sebagiansebagian)): : •• Student(Student(sidsid: string, name: string, login: string, : string, name: string, login: string, age: integer, age: integer, gpagpa: real) : real)
•• Faculty(fid: Faculty(fid: sttringsttring, , fnamefname: string, : string, salsal: real) : real) •• Courses(cid: string, Courses(cid: string, cnamecname: string, credits: integer): string, credits: integer)•• Enrolled(Enrolled(sidsid: string cid: string grade: string): string cid: string grade: string)•• Enrolled(Enrolled(sidsid: string, cid: string, grade: string) : string, cid: string, grade: string) SkemaSkema FisikalFisikal: : •• RelasiRelasi disimpandisimpan dalamdalam bentukbentuk ““unordered filesunordered files”.”.•• IndexIndex padapada kolomkolom pertamapertama daridari relasirelasi StudentsStudents..SkemaSkema EksternalEksternal ((ViewView)): : •• Course_infoCourse_info(cid: string, enrollment: integer)(cid: string, enrollment: integer)
••branchbranch = (= (branch_namebranch_name, , branch_citybranch_city, , assetsassets))
••customercustomer = (= (customer_idcustomer_id, , customer_namecustomer_name, , customer_streetcustomer_street, , customer_citycustomer_city))
•• loanloan = (= (loan_numberloan_number, , amountamount))••accountaccount = (= (account_numberaccount_number, , balancebalance))
••employeeemployee = (= (employee_idemployee_id. . employee_nameemployee_name, , telephone_numbertelephone_number, , start_datestart_date))••dependent_namedependent_name = (= (employee_idemployee_id, , dnamedname))
••account_branchaccount_branch = (= (account_numberaccount_number, , branch_namebranch_name))
THE BANKING SCHEMATHE BANKING SCHEMA
•• loan_branchloan_branch = (= (loan_numberloan_number, , branch_namebranch_name))••borrowerborrower = (= (customer_idcustomer_id, , loan_numberloan_number))
••depositordepositor = (= (customer_idcustomer_id, , account_numberaccount_number))••cust_bankercust_banker = (= (customer_idcustomer_id, , employee_idemployee_id, , typetype))
••works_forworks_for = (= (worker_employee_idworker_employee_id, , manager_employee_idmanager_employee_id))
••paymentpayment = (= (loan_numberloan_number, , payment_numberpayment_number, , payment_datepayment_date, , payment_amountpayment_amount))••savings_accountsavings_account = (= (account_numberaccount_number, , interest_rateinterest_rate))
••checking_accountchecking_account = (= (account_numberaccount_number, , overdraft_amountoverdraft_amount))
2/9/2010
11
DATA INDEPENDENCEDATA INDEPENDENCE((KEMANDIRIAN DATAKEMANDIRIAN DATA))
View 1View 1 View 2View 2 View 3View 3
Skema KonseptualSkema Konseptual
Aplikasi 2Aplikasi 1•• ProgramProgram‐‐program program aplikasiaplikasi““diisolasidiisolasi” ” terhadapterhadap perubahanperubahan‐‐perubahanperubahan yang yang dilakukandilakukanterhadapterhadap bagaimanabagaimana data data disusundisusun dandan disimpandisimpan
•• Logical data independenceLogical data independence::
Skema FisikSkema Fisik
Logical data independenceLogical data independence: : ProteksiProteksi skemaskema eksternaleksternalterhadapterhadap perubahanperubahan‐‐perubahanperubahandalamdalam strukturstruktur logikallogikal daridaridata. data.
•• Physical data independencePhysical data independence: : ProteksiProteksi skemaskema konseptualkonseptualterhadapterhadap perubahanperubahan‐‐perubahanperubahan dalamdalam strukturstruktur fisikfisik daridari data.data.
•• Abstraksi tiga level Abstraksi tiga level menjamin kemandirian menjamin kemandirian data.data.oo Perubahan dalam satu Perubahan dalam satu layer hanya akanlayer hanya akan View 1View 1 View 2View 2 View 3View 3
Aplikasi 2Aplikasi 1
DATA INDEPENDENCEDATA INDEPENDENCE((KEMANDIRIAN DATAKEMANDIRIAN DATA))
layer hanya akan layer hanya akan mempengaruhi satu layer mempengaruhi satu layer di atasnya.di atasnya.
oo Mis. aplikasi tidak akan Mis. aplikasi tidak akan terpengaruh oleh adanya terpengaruh oleh adanya perubahan pada skema perubahan pada skema Konseptual & FisikalKonseptual & Fisikal
Skema KonseptualSkema Konseptual
Skema FisikSkema Fisik
QUERIES QUERIES DALAM DBMS DALAM DBMS QueryQuery adalah pertanyaan yang melibatkan data yang disimpan dalam adalah pertanyaan yang melibatkan data yang disimpan dalam suatu DBMS. Contoh suatu DBMS. Contoh queriesqueries untuk basisdata universitas:untuk basisdata universitas:
–– Siapa nama mahasiswa dengan NIM 15193005? Siapa nama mahasiswa dengan NIM 15193005? –– Berapa jumlah mahasiswa yang mendaftar GD2203Berapa jumlah mahasiswa yang mendaftar GD2203
Query LanguageQuery Language adalah bahasa khusus yang disediakan oleh DBMS adalah bahasa khusus yang disediakan oleh DBMS untuk mendefiniskan untuk mendefiniskan queryquery
–– Relational AlgebraRelational Algebra adalah formal adalah formal query languagequery language yang didasarkan pada yang didasarkan pada sekumpulan “operators” utk memanipulasi data sekumpulan “operators” utk memanipulasi data Relational CalculusRelational Calculus formalformal query languagequery language yang didasarkan pada logikayang didasarkan pada logika–– Relational CalculusRelational Calculus formal formal query languagequery language yang didasarkan pada logika yang didasarkan pada logika matematika matematika
DMLDML ((Data Manipulation LanguageData Manipulation Language) adalah bahasa khusus dalam ) adalah bahasa khusus dalam DBMS yang memungkinkan penggunanya untuk membuat data, DBMS yang memungkinkan penggunanya untuk membuat data, memodifikasi data, dan melakukan memodifikasi data, dan melakukan queryquery terhadap data. terhadap data.
–– Query language adalah subset dari DML Query language adalah subset dari DML –– DML dan DDL (DML dan DDL (Data Definition LanguageData Definition Language) secara kolektif dapat dianggap sebagai ) secara kolektif dapat dianggap sebagai data data sublanguagesublanguage bilamana dijadikan satu (bilamana dijadikan satu (embeddedembedded) dalam suatu ) dalam suatu host host languagelanguage (seperti, C, Java, dll.)(seperti, C, Java, dll.)
HOW THE PROFRAMMER SEES THE DBMSHOW THE PROFRAMMER SEES THE DBMS
•• Start with SQL DDL to Start with SQL DDL to create tablescreate tables::
CREATE TABLE Students (Name CHAR(30)SSN CHAR(9) PRIMARY KEY NOT NULL,Category CHAR(20)
•• Continue with SQL to Continue with SQL to populate tables:populate tables:
Category CHAR(20));
INSERT INTO StudentsVALUES('Hillary', '123456789', 'undergraduate');
Students:Students:
Courses:Courses:
Takes:Takes:SSN Name Category 123-45-6789 Hillary undergrad 234-56-7890 Barak grad … …
CID CName
SSN CID semester 123-45-6789 C20.0046 Spring,
2004 123-45-6789 C20.0056 Spring,
2004 234-56-7890 C20.0046 Fall, 2003 …
HOW THE PROFRAMMER SEES THE DBMSHOW THE PROFRAMMER SEES THE DBMS
•• Ultimately files, but complexUltimately files, but complex
C20.0046 Databases C20.0056 Advanced Software
QUERYING: QUERYING: Structured Query LanguageStructured Query Language
•• Find all the students who have taken C20.0046:Find all the students who have taken C20.0046:
•• Find all the students who C20.0046 previously:Find all the students who C20.0046 previously:
SELECT SSN FROM TakesWHERE CID='C20.0046';
SELECT SSN FROM Takes
•• Find the students’ names:Find the students’ names:
SELECT SSN FROM TakesWHERE CID='C20.0046' AND Semester='Fall, 2005';
SELECT Name FROM Students, TakesWHERE Students.SSN=Takes.SSN AND CID='C20.0046' AND Semester='Fall, 2005';
2/9/2010
12
WHAT: DATABASE SYSTEM TODAYWHAT: DATABASE SYSTEM TODAY WHAT: DATABASE SYSTEM TODAYWHAT: DATABASE SYSTEM TODAY
WHAT: DATABASE SYSTEM TODAYWHAT: DATABASE SYSTEM TODAY WHAT: DATABASE SYSTEM TODAYWHAT: DATABASE SYSTEM TODAY
ORANGORANG‐‐ORANG YANG BEKERJA DENGAN BASISDATAORANG YANG BEKERJA DENGAN BASISDATA
•• End usersEnd users & DBMS & DBMS vendors vendors •• Database application programmers Database application programmers •• Database administrator (DBA)Database administrator (DBA): :
––MendesainMendesain logical & physical schemas logical & physical schemas ––MenanganiMenangani sekuritassekuritas dandan otorisasiotorisasi––BertanggungBertanggung jawabjawab terhadapterhadap ketersediaanketersediaan data data dandanpemulihanpemulihan kembalikembali daridari terjadinyaterjadinya kegagalankegagalan sistemsistem((crash recoverycrash recovery) )
––MelakukanMelakukan “tuning” basis data “tuning” basis data sesuaisesuai dengandenganperkembanganperkembangan yang yang terjaditerjadi
––Must understand how a DBMS works!Must understand how a DBMS works!
ORANGORANG‐‐ORANG YANG BEKERJA ORANG YANG BEKERJA DENGAN BASISDATADENGAN BASISDATA
End UsersEnd Users•• Casual usersCasual usersThese are people who use the database occasionally.These are people who use the database occasionally.
•• Naive usersNaive usersThese are users who constantly querying and updating the These are users who constantly querying and updating the database.database.Eg. Reservation Clerks of Airline, Railway, Hotel, etc.Eg. Reservation Clerks of Airline, Railway, Hotel, etc.Clerks at receiving station of Courier service, Insurance agencies, Clerks at receiving station of Courier service, Insurance agencies, etc. etc.
•• Sophisticated UsersSophisticated UsersPeople who use for their complex requirements.People who use for their complex requirements.Eg. Engineers, Scientists, Business analysts… Eg. Engineers, Scientists, Business analysts…
•• Standalone UsersStandalone UsersWho maintain database for personal use.Who maintain database for personal use.
2/9/2010
13
DATABASE SYSTEM ENVIRONMENTDATABASE SYSTEM ENVIRONMENT DATABASE LANGUAGESDATABASE LANGUAGES
•• DDL DDL –– Data Definition LanguageData Definition Language
•• SDL SDL –– Storage Definition LanguageStorage Definition Language
•• VDL VDL –– View Definition LanguageView Definition Language
•• DMLDML Data Manipulation LanguageData Manipulation Language•• DML DML –– Data Manipulation LanguageData Manipulation Language
(For data manipulations like insertion, (For data manipulations like insertion,
deletion, update, retrieval, etc.)deletion, update, retrieval, etc.)
DATA DEFINITION LANGUAGE DATA DEFINITION LANGUAGE (DDL)(DDL)•• Specification notation for defining the database schemaSpecification notation for defining the database schema
–– E.g. E.g. create table create table accountaccount ((
accountaccount‐‐numbernumber charchar(10),(10),balancebalance integerinteger))
•• DDL compiler generates a set of tables stored in a DDL compiler generates a set of tables stored in a data dictionarydata dictionary
D t di ti t i t d t (i d t b t d t )D t di ti t i t d t (i d t b t d t )•• Data dictionary contains metadata (i.e., data about data)Data dictionary contains metadata (i.e., data about data)
–– database schema database schema
–– Data Data storage and definitionstorage and definition language language
•• language in which the storage structure and access methods language in which the storage structure and access methods used by the database system are specifiedused by the database system are specified
•• Usually an extension of the data definition languageUsually an extension of the data definition language
DATA MANIPULATION LANGUAGE DATA MANIPULATION LANGUAGE (DML)(DML)
•• Language for accessing and manipulating the data Language for accessing and manipulating the data organized by the appropriate data modelorganized by the appropriate data model
––DML also known as query languageDML also known as query language
•• Two classes of languages Two classes of languages
P d lP d l ifi h t d t i i d difi h t d t i i d d––Procedural Procedural –– user specifies what data is required and user specifies what data is required and how to get those data how to get those data
––Nonprocedural Nonprocedural –– user specifies what data is required user specifies what data is required without specifying how to get those datawithout specifying how to get those data
•• SQL is the most widely used query languageSQL is the most widely used query language
SQLSQL•• SQL: widely used nonSQL: widely used non‐‐procedural languageprocedural language
–– E.g. find the name of the customer with customerE.g. find the name of the customer with customer‐‐id 192id 192‐‐8383‐‐74657465select select customer.customercustomer.customer‐‐namenamefrom from customercustomerwhere where customer.customercustomer.customer‐‐idid = ‘192= ‘192‐‐8383‐‐7465’7465’
–– E.g. find the balances of all accounts held by the customer with E.g. find the balances of all accounts held by the customer with customercustomer‐‐id 192id 192‐‐8383‐‐74657465
selectselect account.balanceaccount.balanceselect select account.balanceaccount.balancefrom from depositordepositor, , accountaccountwhere where depositor.customerdepositor.customer‐‐idid = ‘192= ‘192‐‐8383‐‐7465’ and7465’ and
depositor.accountdepositor.account‐‐number = number = account.accountaccount.account‐‐numbernumber
•• Application programs generally access databases through one ofApplication programs generally access databases through one of
–– Language extensions to allow embedded SQLLanguage extensions to allow embedded SQL
–– Application program interface (e.g. ODBC/JDBC) which allow SQL Application program interface (e.g. ODBC/JDBC) which allow SQL queries to be sent to a databasequeries to be sent to a database
DATA MODELSDATA MODELS
•• Data Model: A set of concepts to describe the Data Model: A set of concepts to describe the structurestructure of a database,of a database, and certainand certain constraintsconstraintsthat the database should obey.that the database should obey.
•• Data Model Operations: Operations forData Model Operations: Operations forData Model Operations: Operations for Data Model Operations: Operations for specifying database retrievals and updates by specifying database retrievals and updates by referring to the concepts of the data model. referring to the concepts of the data model. Operations on the data model may include Operations on the data model may include basic basic operationsoperations and and useruser‐‐defined operationsdefined operations..
2/9/2010
14
CATEGORIES OF DATA MODELSCATEGORIES OF DATA MODELS
•• Conceptual Conceptual (high(high‐‐level, semantic) data models: Provide level, semantic) data models: Provide concepts that are close to the way many users concepts that are close to the way many users perceiveperceivedata. (Also called entitydata. (Also called entity‐‐based or objectbased or object‐‐based data based data models.)models.)
•• Physical Physical (low(low‐‐level, internal) data models: Provide level, internal) data models: Provide concepts that describe details of how data is stored in concepts that describe details of how data is stored in the computer.the computer.
•• Implementation Implementation (representational) data models: (representational) data models: Provide concepts that fall between the above two, Provide concepts that fall between the above two, balancing user views with some computer storage balancing user views with some computer storage details.details.
• Logical Data Independence: The capacity to change the conceptual schema without having to change the external schemas and their application programs.
• Physical Data Independence: The capacity to change the internal schema without having to change the conceptual schema.
DATA INDEPENDENCEINDEPENDENCE
•• When a schema at a lower level is changed, only the When a schema at a lower level is changed, only the mappings between this schema and highermappings between this schema and higher‐‐level schemas level schemas need to be changed in a DBMS that fully supports data need to be changed in a DBMS that fully supports data independence. The higherindependence. The higher‐‐level schemas themselves are level schemas themselves are unchangedunchanged. Hence, the application programs need not be . Hence, the application programs need not be changed since they refer to the external schemas.changed since they refer to the external schemas.
DBMS LANGUAGESDBMS LANGUAGES•• Data Definition LanguageData Definition Language (DDL)(DDL): Used by the DBA and database : Used by the DBA and database designers to specify the designers to specify the conceptual schemaconceptual schema of a database. In of a database. In many DBMSs, the DDL is also used to define internal and many DBMSs, the DDL is also used to define internal and external schemas (views). In some DBMSs, separate external schemas (views). In some DBMSs, separate storage storage definition language (SDL)definition language (SDL) and and view definition language (VDL)view definition language (VDL) are are used to define internal and external schemas.used to define internal and external schemas.
•• Data Manipulation Language (DML)Data Manipulation Language (DML): Used to specify database : Used to specify database retrievals and updates.retrievals and updates.
•• DML commands (data sublanguage) can be DML commands (data sublanguage) can be embeddedembedded in a in a generalgeneral‐‐purpose programming language (host language), purpose programming language (host language), such as COBOL, C or an Assembly Language.such as COBOL, C or an Assembly Language.
•• Alternatively, Alternatively, standstand‐‐alonealone DML commands can be applied DML commands can be applied directly (query language).directly (query language).
•• High Level or NonHigh Level or Non‐‐procedural Languagesprocedural Languages: e.g., SQL, are : e.g., SQL, are setset‐‐oriented oriented and specify what data to retrieve than and specify what data to retrieve than how to retrieve. Also called how to retrieve. Also called declarativedeclarative languages.languages.
•• Low Level or Procedural LanguagesLow Level or Procedural Languages: record: record‐‐atat‐‐aa‐‐time; time;
DBMS LANGUAGESDBMS LANGUAGES
g gg g ;;they specify they specify howhow to retrieve data and include to retrieve data and include constructs such as looping.constructs such as looping.
DATABSE SYSTEM UTILITIESDATABSE SYSTEM UTILITIES
•• To perform certain functions such asTo perform certain functions such as::•• LoadingLoading data stored in files into a database. Includes data data stored in files into a database. Includes data conversion tools.conversion tools.
•• Backing upBacking up the database periodically on tape.the database periodically on tape.
i ii i d b fild b fil•• ReorganizingReorganizing database file structures.database file structures.
•• Report generationReport generation utilities.utilities.
•• Performance monitoringPerformance monitoring utilities.utilities.
••Other functions, such as Other functions, such as sortingsorting, , user monitoringuser monitoring, , data data compressioncompression, etc., etc.
OTHERS TOOLSOTHERS TOOLS
•• Data dictionary / repository:Data dictionary / repository:•• Used to store schema descriptions and other information such as Used to store schema descriptions and other information such as design decisions, application program descriptions, user design decisions, application program descriptions, user information, usage standards, etc.information, usage standards, etc.
•• ActiveActive data dictionary is accessed by DBMS software and data dictionary is accessed by DBMS software and users/DBAusers/DBAusers/DBA.users/DBA.
•• PassivePassive data dictionary is accessed by users/DBA only.data dictionary is accessed by users/DBA only.
•• Application Development Environments and CASE Application Development Environments and CASE (computer(computer‐‐aided software engineering) tools:aided software engineering) tools:
•• Examples Examples –– Power builder (Sybase), Builder (Borland) Power builder (Sybase), Builder (Borland)
2/9/2010
15
IN THE BEGINNING IN THE BEGINNING –– PUNCH CARDSPUNCH CARDS
1234567 NAME SANDIEGO, CARMEN0001
1234567 ADDR 123 MAIN STREET 0002
1234567 DOB 02/01/1948 0003
1234567SANDIEGO,CARMEN123MAIN020148
1-7 8-22 23-30 31-36
SEQUENTIAL FILESSEQUENTIAL FILES
•• Stored on magnetic tapeStored on magnetic tape
•• Longer (or shorter) than 80 charactersLonger (or shorter) than 80 characters
•• 88‐‐bit characters (256 characters)bit characters (256 characters)
•• VariableVariable‐‐length recordslength records
Len=21 Data Len=16 DataLen=21 Data Len=16 Data
0211234567SandiegoCarmen0161234568CiminoJim0211234567SandiegoCarmen0161234568CiminoJim
•• Random access possibleRandom access possible
•• Slowwwwww…..Slowwwwww…..
ID Loc ID LocID Loc ID Loc1234567890123456789012312345678901234567890123
SandiegoCarmenCiminoJimSandiegoCarmenCiminoJim12345670001123456800151234567000112345680015
•• Disk storage with moving headsDisk storage with moving heads•• Larger capacity (MB!)Larger capacity (MB!)•• Addressable records and fields using pointersAddressable records and fields using pointers•• Indexes created as lists of pointersIndexes created as lists of pointers
RANDOM ACCESS FILESRANDOM ACCESS FILES
•• Indexes created as lists of pointersIndexes created as lists of pointers•• Separation of physical and logical modelsSeparation of physical and logical models•• Can be difficult to recover if index corruptedCan be difficult to recover if index corrupted
0000: Name1000Addr2000DOB 60000000: Name1000Addr2000DOB 6000
1000: Sandiego, Carmen1000: Sandiego, Carmen
2000: 123 Main Street2000: 123 Main Street} } } } } }
RANDOM ACCESS FILESRANDOM ACCESS FILES
3000: 3000:
4000:4000:
5000:5000:
6000: Feb 1, 19486000: Feb 1, 1948
INEXED FILESINEXED FILES
0000: 00000000: 0000
0004: 40000004: 4000
0008: 20000008: 2000
0000: Cimino, James0000: Cimino, James
1000:1000:
2000: Norton, Cathy2000: Norton, Cathy
3000: 3000:
4000: Lindberg, Don4000: Lindberg, Don
DESAIN MODEL KONSEPTUALDESAIN MODEL KONSEPTUAL
•• Dalam membangun basis data, yang penting Dalam membangun basis data, yang penting dilakukan adalah merancang model konseptualdilakukan adalah merancang model konseptual‐‐nya.nya.
•• Perancangan model konseptual dapat dilakukan Perancangan model konseptual dapat dilakukan dengan cara:dengan cara:
–– Proses normalisasiProses normalisasi
–– Proses hubungan antar entitasProses hubungan antar entitas
•• Hasil model konseptual ini ialah terbentuknya Hasil model konseptual ini ialah terbentuknya struktur tabel yang sudah ternormalisasi secara struktur tabel yang sudah ternormalisasi secara
penuh (penuh (normal penuhnormal penuh//fully normalized tablefully normalized table).).
2/9/2010
16
DESAIN MODEL KONSEPTUALDESAIN MODEL KONSEPTUAL•• Perancangan model konseptual, untuk mendapatkan Perancangan model konseptual, untuk mendapatkan model dengan struktur tabel ternormalisasi secara penuh model dengan struktur tabel ternormalisasi secara penuh ((normal penuh/normal penuh/fully normalized tablefully normalized table):):
1.1. Proses normalisasiProses normalisasi
Dikenal sebagai proses Bottom‐Up dengan cara memecah tabel berdasarkan hubungan antar attribut (kolom/item)tabel berdasarkan hubungan antar attribut (kolom/item) menjadi tabel‐tabel (set tabel) normal penuh.
2.2. Proses mencari hubungan antar entitas (Entity Relationship Proses mencari hubungan antar entitas (Entity Relationship ––ER)ER)
Dikenal sebagai proses Dikenal sebagai proses TopTop‐‐DownDown dengan cara mencari dengan cara mencari hubungan antar entitas untuk mendapatkan tabelhubungan antar entitas untuk mendapatkan tabel‐‐tabel (set tabel (set tabel) normal penuhtabel) normal penuh
PROSES NORMALISASIPROSES NORMALISASI
•• Materi:Materi:
–– Konsep Proses NormalisasiKonsep Proses Normalisasi
–– Bentuk Normal 1 (Repeating Group)Bentuk Normal 1 (Repeating Group)
–– Bentuk Normal 2 :Bentuk Normal 2 :
Duplikasi dataDuplikasi data
Redundant dataRedundant dataRedundant dataRedundant data
DeterminanDeterminan
IdentifierIdentifier
–– Bentuk Normal 3 (BoyceBentuk Normal 3 (Boyce‐‐Codd)Codd)
–– Bentuk Normal 4 (Bentuk Normal 4 (multimulti‐‐valued determinanciesvalued determinancies))
–– Bentuk Normal 5 (Bentuk Normal 5 (join depedenciesjoin depedencies))
TAHAPAN PROSES NORMALISASITAHAPAN PROSES NORMALISASI
TabelTabel BelumBelum normal (normal (unnormalisedunnormalised tabletable))TabelTabel BentukBentuk Normal 1Normal 1
Tabel Bentuk Normal 2Tabel Bentuk Normal 2
Tabel Bentuk Normal 3Tabel Bentuk Normal 3
11stst NF: NF: Repeating groupRepeating group
22ndnd NF:NF:KetergantunganKetergantunganatributatribut
33rdrd NF:NF:Ketergantungan Ketergantungan transitiftransitif
Tabel Bentuk Normal 4Tabel Bentuk Normal 4
TabelTabel BentukBentuk Normal 5Normal 5
44thth NF:NF:Determinan Determinan multimulti‐‐valuedvalued
55thth NF:NF:Join depedencyJoin depedency
FLAT TABLEFLAT TABLE & DUPLIKASI DATA& DUPLIKASI DATA
•• Terjadi jika terdapat nilai data yang sama di dalam satu atau lebih Terjadi jika terdapat nilai data yang sama di dalam satu atau lebih kolom/item.kolom/item.
1510001015100010 0202--0303--20012001Abd. Manaf HasimAbd. Manaf Hasim 130796150130796150 Saidi Pranoto W.Saidi Pranoto W.NIMNIM Nama_MhsNama_Mhs Nama_DsnNama_DsnNIPNIP Tgl_TemuTgl_Temu
1510001215100012 0202--0303--20012001Abd. Jalil RizadiAbd. Jalil Rizadi 130796150130796150 Saidi Pranoto W.Saidi Pranoto W.
Tabel KonsultasiTabel Konsultasi
1510001415100014 0202--0303--20012001Abd. Kosim AshariAbd. Kosim Ashari 130811225130811225 Candra Setia EdiCandra Setia Edi1510001515100015 0404--0303--20012001Abd. Kosim AshariAbd. Kosim Ashari 130811225130811225 Candra Setia EdiCandra Setia Edi1510001715100017 0909--0303--20012001Nita Maemunah R.Nita Maemunah R. 130811225130811225 Candra Setia EdiCandra Setia Edi1510001815100018 0404--0303--20012001Julia Fransisca K.Julia Fransisca K. 131766480131766480 Moh. Ramdan K.Moh. Ramdan K.1510002115100021 0404--0303--20012001Seto Riadi TumpalSeto Riadi Tumpal 131766480131766480 Moh. Ramdan K.Moh. Ramdan K.1510002515100025 0909--0303--20012001Jeqlin Diana BaritaJeqlin Diana Barita 131766480131766480 Moh. Ramdan K.Moh. Ramdan K.
•• Tabel di atas dikenal sebagai Tabel di atas dikenal sebagai Flat TableFlat Table..
DUPLIKASI DATADUPLIKASI DATA
•• Terjadi jika terdapat nilai data yang sama di dalam satu atau lebih Terjadi jika terdapat nilai data yang sama di dalam satu atau lebih kolom/item.kolom/item.
Tabel WaliTabel WaliNIMNIM Nama_MhsNama_Mhs Nama_DsnNama_DsnNIPNIP
15100010151000101510001215100012
Abd. Manaf H.Abd. Manaf H.Abd. Jalil R.Abd. Jalil R.
130796150130796150130796150130796150
Saidi P. W.Saidi P. W.Saidi P. W.Saidi P. W.
Alamat_MhsAlamat_Mhs
Jl. Trotoar Datar 122Jl. Trotoar Datar 122Jl. Esteka 256Jl. Esteka 256
151000141510001415100015151000151510001715100017151000181510001815100021151000211510002515100025
Abd. Kosim A.Abd. Kosim A.
Nita M. RikaNita M. RikaJ. Fransisca K.J. Fransisca K.Seto Riadi T.Seto Riadi T.
130811225130811225130811225130811225130811225130811225131766480131766480131766480131766480131766480131766480
Candra S. EdiCandra S. EdiCandra S. EdiCandra S. EdiCandra S. EdiCandra S. EdiMoh. R. KadiMoh. R. KadiMoh. R. KadiMoh. R. KadiMoh. R. KadiMoh. R. Kadi
Jl. Pemdig 150Jl. Pemdig 150
Jl. Pager Gunung 39Jl. Pager Gunung 39Jl. Dago Atas 136Jl. Dago Atas 136
Jeqlin Diana B.Jeqlin Diana B.
Abd. Kosim A.Abd. Kosim A.Jl. Kebon Kangkung 9Jl. Kebon Kangkung 9
Jl. Dago Atas 136Jl. Dago Atas 136
Jl. Esteka 256Jl. Esteka 256
REDUNDANT DATAREDUNDANT DATA•• Data disebut Data disebut berlebihan (berlebihan (redundantredundant)) jika data duplikasi dapat dihapus jika data duplikasi dapat dihapus tanpa kehilangan informasitanpa kehilangan informasi atau atau secara pastisecara pasti masih dapat diketahui dari masih dapat diketahui dari kolom lainnya (duplikasi yang tidak perlu).kolom lainnya (duplikasi yang tidak perlu).
Tabel WaliTabel WaliNIMNIM Nama_MhsNama_Mhs Nama_DsnNama_DsnNIPNIP
15100010151000101510001215100012
Abd. Manaf H.Abd. Manaf H.Abd. Jalil R.Abd. Jalil R.
130796150130796150130796150130796150
Saidi P. W.Saidi P. W.Saidi P. W.Saidi P. W.
Alamat_MhsAlamat_Mhs
Jl. Trotoar Datar 122Jl. Trotoar Datar 122Jl. Esteka 256Jl. Esteka 256
151000141510001415100015151000151510001715100017151000181510001815100021151000211510002515100025
Abd. Kosim A.Abd. Kosim A.
Nita M. RikaNita M. RikaJ. Fransisca K.J. Fransisca K.Seto Riadi T.Seto Riadi T.
130811225130811225130811225130811225130811225130811225131766480131766480131766480131766480131766480131766480
Candra S. EdiCandra S. EdiCandra S. EdiCandra S. EdiCandra S. EdiCandra S. EdiMoh. R. KadiMoh. R. KadiMoh. R. KadiMoh. R. KadiMoh. R. KadiMoh. R. Kadi
Jl. Pemdig 150Jl. Pemdig 150
Jl. Pager Gunung 39Jl. Pager Gunung 39Jl. Dago Atas 136Jl. Dago Atas 136
Jeqlin Diana B.Jeqlin Diana B.
Abd. Kosim A.Abd. Kosim A.Jl. Kebon Kangkung 9Jl. Kebon Kangkung 9
Jl. Dago Atas 136Jl. Dago Atas 136
Jl. Esteka 256Jl. Esteka 256
2/9/2010
17
REDUNDANT DATAREDUNDANT DATA•• Data disebut Data disebut berlebihan (berlebihan (redundantredundant)) jika data duplikasi dapat dihapus jika data duplikasi dapat dihapus tanpa kehilangan informasitanpa kehilangan informasi atau atau secara pastisecara pasti masih dapat diketahui dari masih dapat diketahui dari kolom lainnya (duplikasi yang tidak perlu).kolom lainnya (duplikasi yang tidak perlu).
Tabel WaliTabel WaliNIMNIM Nama_MhsNama_Mhs Nama_DsnNama_DsnNIPNIP
15100010151000101510001215100012
Abd. Manaf H.Abd. Manaf H.Abd. Jalil R.Abd. Jalil R.
130796150130796150130796150130796150
??Saidi P. W.Saidi P. W.
Alamat_MhsAlamat_Mhs
Jl. Trotoar Datar 122Jl. Trotoar Datar 122??
Duplikasi & Duplikasi & NonNon--RedundantRedundant
151000141510001415100015151000151510001715100017151000181510001815100021151000211510002515100025
??
Nita M. RikaNita M. RikaJ. Fransisca K.J. Fransisca K.Seto Riadi T.Seto Riadi T.
130811225130811225130811225130811225130811225130811225
??131766480131766480131766480131766480
Candra S. EdiCandra S. Edi??
Candra S. EdiCandra S. EdiMoh. R. KadiMoh. R. KadiMoh. R. KadiMoh. R. Kadi
??
Jl. Pemdig 150Jl. Pemdig 150
Jl. Pager Gunung 39Jl. Pager Gunung 39??
Jeqlin Diana B.Jeqlin Diana B.
Abd. Kosim A.Abd. Kosim A.Jl. Kebon Kangkung 9Jl. Kebon Kangkung 9
Jl. Dago Atas 136Jl. Dago Atas 136
Jl. Esteka 256Jl. Esteka 256
Duplikasi & Duplikasi & RedundantRedundant
NIMNIM Nama_MhsNama_Mhs Nama_DsnNama_DsnNIPNIP151000101510001015100012151000121510001415100014
Abd. Manaf H.Abd. Manaf H.Abd. Jalil R.Abd. Jalil R.Abd K i AAbd K i A
130796150130796150130796150130796150130811225130811225
Saidi P. W.Saidi P. W.Saidi P. W.Saidi P. W.C d S EdiC d S Edi
Tabel WaliTabel WaliAlamat_MhsAlamat_Mhs
Jl. Trotoar Datar 122Jl. Trotoar Datar 122Jl P di 150Jl P di 150
Jl. Esteka 256Jl. Esteka 256
ELIMINASI DATA ELIMINASI DATA REDUNDANT REDUNDANT ‐‐ 11
•• Tentukan data yang duplikat pada tabelTentukan data yang duplikat pada tabel
151000141510001415100015151000151510001715100017151000181510001815100021151000211510002515100025
Abd. Kosim A.Abd. Kosim A.Abd. Kosim A.Abd. Kosim A.Nita M. RikaNita M. RikaJ. Fransisca K.J. Fransisca K.Seto Riadi T.Seto Riadi T.Jeqlin Diana B.Jeqlin Diana B.
130811225130811225130811225130811225130811225130811225131766480131766480131766480131766480131766480131766480
Candra S. EdiCandra S. EdiCandra S. EdiCandra S. EdiCandra S. EdiCandra S. EdiMoh. R. KadiMoh. R. KadiMoh. R. KadiMoh. R. KadiMoh. R. KadiMoh. R. Kadi
Jl. Pemdig 150Jl. Pemdig 150Jl. Esteka 256Jl. Esteka 256Jl. Kebon Kangkung 9Jl. Kebon Kangkung 9
Jl. Pager Gunung 39Jl. Pager Gunung 39Jl. Dago Atas 136Jl. Dago Atas 136
Jl. Dago Atas 136Jl. Dago Atas 136
ELIMINASI DATA ELIMINASI DATA REDUNDANT REDUNDANT ‐‐ 22•• Tentukan data yang redundant pada tabel dengan cara mencari Tentukan data yang redundant pada tabel dengan cara mencari informasi nilai data dari kolom lain apabila data tsb. dihilangkaninformasi nilai data dari kolom lain apabila data tsb. dihilangkan
NIMNIM Nama_MhsNama_Mhs Nama_DsnNama_DsnNIPNIP15100010151000101510001215100012
Abd. Manaf H.Abd. Manaf H.Abd. Jalil R.Abd. Jalil R.
130796150130796150130796150130796150
Saidi P. W.Saidi P. W.Saidi P. W.Saidi P. W.
Tabel WaliTabel WaliAlamat_MhsAlamat_Mhs
Jl. Trotoar Datar 122Jl. Trotoar Datar 122Jl. Esteka 256Jl. Esteka 256
151000141510001415100015151000151510001715100017151000181510001815100021151000211510002515100025
Abd. Kosim A.Abd. Kosim A.Abd. Kosim A.Abd. Kosim A.Nita M. RikaNita M. RikaJ. Fransisca K.J. Fransisca K.Seto Riadi T.Seto Riadi T.Jeqlin Diana B.Jeqlin Diana B.
130811225130811225130811225130811225130811225130811225131766480131766480131766480131766480131766480131766480
Candra S. EdiCandra S. EdiCandra S. EdiCandra S. EdiCandra S. EdiCandra S. EdiMoh. R. KadiMoh. R. KadiMoh. R. KadiMoh. R. KadiMoh. R. KadiMoh. R. Kadi
Jl. Pemdig 150Jl. Pemdig 150Jl. Esteka 256Jl. Esteka 256Jl. Kebon Kangkung 9Jl. Kebon Kangkung 9
Jl. Pager Gunung 39Jl. Pager Gunung 39Jl. Dago Atas 136Jl. Dago Atas 136
Jl. Dago Atas 136Jl. Dago Atas 136
Duplikasi & Duplikasi & NonNon--RedundantRedundant Duplikasi & Duplikasi & RedundantRedundant
ELIMINASI DATA ELIMINASI DATA REDUNDANT REDUNDANT ‐‐ 33•• Tentukan ketergantungan kolom yang berisi data Tentukan ketergantungan kolom yang berisi data redundantredundantdengan kolom lainnya.dengan kolom lainnya.
NIMNIM Nama_MhsNama_Mhs Nama_DsnNama_DsnNIPNIP151000101510001015100012151000121510001415100014
Abd. Manaf H.Abd. Manaf H.Abd. Jalil R.Abd. Jalil R.Abd. Kosim A.Abd. Kosim A.
130796150130796150130796150130796150130811225130811225
Saidi P. W.Saidi P. W.Saidi P. W.Saidi P. W.Candra S. EdiCandra S. Edi
Tabel WaliTabel WaliAlamat_MhsAlamat_Mhs
Jl. Trotoar Datar 122Jl. Trotoar Datar 122Jl. Pemdig 150Jl. Pemdig 150
Jl. Esteka 256Jl. Esteka 256
15100015151000151510001715100017151000181510001815100021151000211510002515100025
Abd. Kosim A.Abd. Kosim A.Nita M. RikaNita M. RikaJ. Fransisca K.J. Fransisca K.Seto Riadi T.Seto Riadi T.Jeqlin Diana B.Jeqlin Diana B.
130811225130811225130811225130811225131766480131766480131766480131766480131766480131766480
Candra S. EdiCandra S. EdiCandra S. EdiCandra S. EdiMoh. R. KadiMoh. R. KadiMoh. R. KadiMoh. R. KadiMoh. R. KadiMoh. R. Kadi
ggJl. Esteka 256Jl. Esteka 256Jl. Kebon Kangkung 9Jl. Kebon Kangkung 9
Jl. Pager Gunung 39Jl. Pager Gunung 39Jl. Dago Atas 136Jl. Dago Atas 136
Jl. Dago Atas 136Jl. Dago Atas 136
•• Kolom: Kolom: Nama_MhsNama_Mhs,, Alamat_MhsAlamat_Mhs,, dandan NIP NIP dengan dengan NIMNIM•• Kolom: Kolom: Nama_Dsn Nama_Dsn dengan dengan NIPNIP
ELIMINASI DATA ELIMINASI DATA REDUNDANT REDUNDANT ‐‐ 44•• Pisahkan tabel sesuai ketergantungan kolom tersebut menjadi Pisahkan tabel sesuai ketergantungan kolom tersebut menjadi beberapa tabel (2 tabel).beberapa tabel (2 tabel).
Tabel MahasiswaTabel MahasiswaNIMNIM Nama_MhsNama_Mhs NIPNIPAlamat_MhsAlamat_Mhs NIPNIP Nama_DsnNama_Dsn
Tabel DosenTabel Dosen
1.1. Tabel mahasiswa (NIM, Nama_Mhs, Alamat_Mhs, NIP)Tabel mahasiswa (NIM, Nama_Mhs, Alamat_Mhs, NIP)2.2. Tabel Dosen (NIP, Tabel Dosen (NIP, Nama_Dsn)Nama_Dsn)
1510001015100010
1510001215100012
1510001415100014
1510001515100015
1510001715100017
1510001815100018
1510002115100021
1510002515100025
Abd. Manaf H.Abd. Manaf H.
Abd. Jalil R.Abd. Jalil R.
Abd. Kosim A.Abd. Kosim A.
Abd. Kosim A.Abd. Kosim A.
Nita M. RikaNita M. Rika
J. Fransisca K.J. Fransisca K.
Seto Riadi T.Seto Riadi T.
Jeqlin Diana B.Jeqlin Diana B.
130796150130796150
130796150130796150
130811225130811225
130811225130811225
130811225130811225
131766480131766480
131766480131766480
131766480131766480
Jl. Trotoar Datar 122Jl. Trotoar Datar 122
Jl. Pemdig 150Jl. Pemdig 150
Jl. Esteka 256Jl. Esteka 256
Jl. Esteka 256Jl. Esteka 256
Jl. Kebon Kangkung 9Jl. Kebon Kangkung 9
Jl. Pager Gunung 39Jl. Pager Gunung 39
Jl. Dago Atas 136Jl. Dago Atas 136
Jl. Dago Atas 136Jl. Dago Atas 136
130796150130796150
130811225130811225
131766480131766480
Saidi P. W.Saidi P. W.
Candra S. EdiCandra S. Edi
Moh. R. KadiMoh. R. Kadi
Apakah kedua Apakah kedua tabel sudah tabel sudah normal ?normal ?
Bank Employee TableBank Employee Table
ELIMINASI DATA ELIMINASI DATA REDUNDANT REDUNDANT
2/9/2010
18
ELIMINASI DATA ELIMINASI DATA REDUNDANT REDUNDANT PEMUNCULAN YANG MENYESATKANPEMUNCULAN YANG MENYESATKANPemasok 1Pemasok 1
DtrDtr--002002
DtrDtr--007007
DtrDtr--005005
DtrDtr--002002
pemas#pemas# komp#komp# des_kompdes_komp
KmpKmp--0101
KmpKmp--0606
KmpKmp--0404
KmpKmp--0101
BautBaut
BautBaut
MurMur
BautBaut
Dua distributor mensuplay dua Dua distributor mensuplay dua kk
Komponen 1Komponen 1des_kompdes_kompkomp#komp#
KmpKmp--0101
KmpKmp--0606
KmpKmp--0404
KmpKmp--0101
BautBaut
BautBaut
MurMur
BautBaut
Pemasok 1Pemasok 1
DtrDtr--002002
DtrDtr--007007
DtrDtr--005005
DtrDtr--002002
pemas#pemas# komp#komp#KmpKmp--0101
KmpKmp--0606
KmpKmp--0404
KmpKmp--0101
Dua tabel yang terpisah yang sudah tidak Dua tabel yang terpisah yang sudah tidak d d t d d td d t d d tkomponen yang samakomponen yang sama
DtrDtr--002002
DtrDtr--007007DtrDtr--002002
pemas#pemas# komp#komp# des_kompdes_komp
KmpKmp--0101
KmpKmp--0606
KmpKmp--0404
BautBaut
BautBaut
MurMur
Pemasok 2Pemasok 2
Tidak ada distributor yang Tidak ada distributor yang mensuplay dua komponen yang mensuplay dua komponen yang
samasama
Pemasok 3Pemasok 3
DtrDtr--002002
DtrDtr--007007DtrDtr--002002
pemas#pemas# komp#komp# des_kompdes_komp
KmpKmp--0101
KmpKmp--0606
KmpKmp--0404
BautBaut
BautBaut
MurMurDtrDtr--005005 KmpKmp--0101 BautBautDtrDtr--003003 KmpKmp--0404 KerahKerah
komp#komp# tidak tidak secara konsisten secara konsisten memiliki memiliki des_kompdes_komp yang yang tetap, akibatnya tetap, akibatnya pada tabel pada tabel PemasokPemasok tidak tidak ada data yang ada data yang redundantredundant
mengandung data redundantmengandung data redundant
ATRIBUT YANG TERPISAHATRIBUT YANG TERPISAH
nopen#nopen# nama_famnama_fam nama_dep_1nama_dep_1P112345P112345
P236678P236678
BrataBrata
NenggalaNenggala
nama_dep_2nama_dep_2HadiHadi
MarulianaMarulianaSutarnaSutarna
PendudukPenduduk‐‐11
PendudukPenduduk--1 (nopen#, nama_fam, nama_dep_1, nama_dep_2) 1 (nopen#, nama_fam, nama_dep_1, nama_dep_2)
P236678P236678
P887656P887656P445679P445679
P887222P887222P445111P445111
NenggalaNenggala
ManafManaf
AsnawiAsnawiBadawiBadawi
NawawiNawawi
MarulianaMaruliana
Marselina Marselina
HasimHasimRezaRezaJonijonJonijon
SrikandiSrikandi
BantarnusaBantarnusa
DavidDavid
ATRIBUT YANG TERPISAHATRIBUT YANG TERPISAH
nopen#nopen# nam_famnam_fam nam_depnam_depP112345P112345
P2366 8P2366 8
BrataBrata
N lN l
urtn_nam_depurtn_nam_depHadiHadi
M liM li
SutarnaSutarnaBrataBrataP112345P112345
11
11
22
PendudukPenduduk‐‐22
PendudukPenduduk--1 (nopen#, nama_fam, nama_dep, urtn_nam_dep) 1 (nopen#, nama_fam, nama_dep, urtn_nam_dep)
P236678P236678
P887656P887656
P445679P445679
P887222P887222P445111P445111
NenggalaNenggala
ManafManaf
AsnawiAsnawi
BadawiBadawi
NawawiNawawi
MarulianaMaruliana
Marselina Marselina
HasimHasim
RezaReza
JonijonJonijon
SrikandiSrikandi
BantarnusaBantarnusa
DavidDavid
P445679P445679 ManafManaf
P887656P887656 AsnawiAsnawi
P887222P887222 NawawiNawawi
11
1 1
11
11
11
22
22
22
ATRIBUT YANG TERPISAHATRIBUT YANG TERPISAH
nopen#nopen# nam_famnam_famP112345P112345
P236678P236678
P445679P445679
BrataBrata
NenggalaNenggala
ManafManaf
PendudukPenduduk‐‐NamafamNamafam
nopen#nopen# nam_depnam_depP112345P112345
P236678P236678
urtn_nam_depurtn_nam_depHadiHadi
MarulianaMaruliana
SutarnaSutarnaP112345P112345
11
1122
PendudukPenduduk‐‐NamadepNamadep
P887656P887656
P887222P887222P445111P445111
AsnawiAsnawi
BadawiBadawi
NawawiNawawi P887656P887656
P445679P445679
P887222P887222P445111P445111
Marselina Marselina
HasimHasim
RezaReza
JonijonJonijon
SrikandiSrikandi
BantarnusaBantarnusa
DavidDavid
P445679P445679
P887656P887656
P887222P887222
1 1
11
1111
22
22
22
BRANCH TABLE IS NOT IN 1NFBRANCH TABLE IS NOT IN 1NF
2/9/2010
19
CONVERTING BRANCH TABLE TO 1NFCONVERTING BRANCH TABLE TO 1NF TEMP STAFF ALLOCATION TABLE IS NOT IN 2NFTEMP STAFF ALLOCATION TABLE IS NOT IN 2NF
CONVERTING TEMP STAFF ALLOCATION TABLE TO 2NFCONVERTING TEMP STAFF ALLOCATION TABLE TO 2NF STAFF BRANCH TABLE IS NOT IN 3NFSTAFF BRANCH TABLE IS NOT IN 3NF
CONVERING STAFF BRANCH TABLE IS TO 3NFCONVERING STAFF BRANCH TABLE IS TO 3NFTHE DATA DICTIONARY/CATALOGTHE DATA DICTIONARY/CATALOG
•• Data dictionary Data dictionary
–– Provides detailed accounting of all tables found within Provides detailed accounting of all tables found within the user/designerthe user/designer‐‐created databasecreated database
–– Contains (at least) all the attribute names and Contains (at least) all the attribute names and characteristics for each table in the systemcharacteristics for each table in the system
–– Contains metadataContains metadata——data about datadata about data
–– Sometimes described as “the database designer’s Sometimes described as “the database designer’s database” because it records the design decisions about database” because it records the design decisions about tables and their structurestables and their structures
•• Terms “system catalog” and “data dictionary” are often used Terms “system catalog” and “data dictionary” are often used interchangeablyinterchangeably
2/9/2010
20
A SAMPLE A SAMPLE DATA DICTIONARYDATA DICTIONARY ENTERPRISE ENTERPRISE
•• Bagian dari Bagian dari real worldreal world yang dimodelkan oleh basis data. yang dimodelkan oleh basis data. Pemodelan bisa jadi menyangkut seluruh organisasi (mis. Pemodelan bisa jadi menyangkut seluruh organisasi (mis. perusahaan, universitas, rumah sakit, dll.), sebagian dari perusahaan, universitas, rumah sakit, dll.), sebagian dari organisasi, atau salah satu proses atau sistem yang ada organisasi, atau salah satu proses atau sistem yang ada pada organisasi tersebut;pada organisasi tersebut;
•• Yang perlu diketahui terlebih dahulu untuk merancangYang perlu diketahui terlebih dahulu untuk merancangYang perlu diketahui terlebih dahulu untuk merancang Yang perlu diketahui terlebih dahulu untuk merancang basis data adalah ‘ketentuan apa yang ada untuk mengatur basis data adalah ‘ketentuan apa yang ada untuk mengatur segala sesuatu tentang data’;segala sesuatu tentang data’;
•• Ketentuan apa saja (tentang data/informasi) yang ada yang Ketentuan apa saja (tentang data/informasi) yang ada yang (akan) diterapkan pada model untuk suatu enterprise, (akan) diterapkan pada model untuk suatu enterprise, disebut sebagai disebut sebagai enterprise rulesenterprise rules..
ENTERPRISE RULESENTERPRISE RULES•• Aturan yang diperlukan untuk mendefinisikan secara jelas dan Aturan yang diperlukan untuk mendefinisikan secara jelas dan tegas tentang transaksi, entitas dan keterkaitan antar entitas tegas tentang transaksi, entitas dan keterkaitan antar entitas ((entity relationshipentity relationship).).
ContohContoh suatusuatu enterprise rules:enterprise rules:–– NilaiNilai yang yang adaada untukuntuk kompkomp# # hanyahanyabolehboleh memilikimemiliki satusatu kaitankaitan dengandengannilainilai des_kompdes_komp;;
Pemasok 1APemasok 1A
DtrDtr--002002
DtrDtr--007007DtrDtr--002002
pemaspemas## komp#komp# des_kompdes_komp
KmpKmp--0101
KmpKmp--0606
KmpKmp--0404
BautBaut
BautBaut
MurMur–– NilaiNilai yang yang adaada untukuntuk des_kompdes_kompbolehboleh memilikimemiliki kaitankaitan dengandenganbanyakbanyak nilainilai kompkomp;;
–– pemaspemas# # bolehboleh memilikimemiliki kaitankaitandengandengan banyakbanyak nilainilai kompkomp##;;
–– NilaiNilai yang yang adaada untukuntuk kompkomp# # bolehbolehmemilikimemiliki kaitankaitan dengandengan banyakbanyak nilainilaipemaspemas##..
DtrDtr--005005
DtrDtr 002002 KmpKmp 0404
KmpKmp--0101
MurMur
BautBaut
Pemasok 1BPemasok 1B
DtrDtr--002002
DtrDtr--007007
DtrDtr--005005
DtrDtr--002002
pemas#pemas# komp#komp# des_kompdes_komp
KmpKmp--0101
KmpKmp--0606
KmpKmp--0404
KmpKmp--0404
BautBaut
BautBaut
MurMur
KerahKerah
ENTERPRISE RULESENTERPRISE RULES
PemasokPemasok 1A1A
DtrDtr--002002
DtrDtr--007007
DtrDtr--005005
DtrDtr--002002
pemaspemas## komp#komp#KmpKmp--0101
KmpKmp--0606
KmpKmp--0404
KmpKmp--0101
ContohContoh suatusuatu enterprise rules:enterprise rules:
–– NilaiNilai yang yang adaada untukuntukkompkomp# # hanyahanya bolehbolehmemilikimemiliki satusatu kaitankaitandengandengan nilainilai des_kompdes_komp;;
–– NilaiNilai yang yang adaada untukuntukdes kompdes komp bolehboleh memilikimemiliki
komp#komp# des_kompdes_komp
KmpKmp--0101
KmpKmp--0606
KmpKmp--0404
BautBaut
BautBaut
MurMur
KomponenKomponen 1A1A
DtrDtr--005005 KmpKmp--0101des_kompdes_komp bolehboleh memilikimemilikikaitankaitan dengandengan banyakbanyak nilainilaikompkomp;;
–– pemaspemas# # bolehboleh memilikimemilikikaitankaitan dengandengan banyakbanyak nilainilaikompkomp##;;
–– NilaiNilai yang yang adaada untukuntukkompkomp# # bolehboleh memilikimemilikikaitankaitan dengandengan banyakbanyak nilainilaipemaspemas##..
DtrDtr--002002
DtrDtr--007007
DtrDtr--005005
DtrDtr--002002
pemaspemas## komp#komp#KmpKmp--0101
KmpKmp--0606
KmpKmp--0404
KmpKmp--0404
komp#komp# des_kompdes_komp
KmpKmp--0101
KmpKmp--0606
KmpKmp--0404
BautBaut
BautBaut
MurMurKmpKmp--0404 KerahKerah
PemasokPemasok 1B1B KomponenKomponen 1B1B
DETERMINAN DETERMINAN ‐‐ 11
•• Berdasarkan Berdasarkan enterprise rule,enterprise rule, ditentukan bahwa pada suatu tabel, ditentukan bahwa pada suatu tabel, nilainilai‐‐nilai yang nilai yang duplikasi dari atribut Aduplikasi dari atribut A selalu selalu berkaitan/berasosiasi dengan nilai item yang sama dari atribut Bberkaitan/berasosiasi dengan nilai item yang sama dari atribut B(melalui berbagai tampilan tabel), maka (melalui berbagai tampilan tabel), maka A dikatakan sebagai A dikatakan sebagai determinan (penentu) dari Bdeterminan (penentu) dari B..
TabelTabel AbcAbc
•• Duplikasi nilai Duplikasi nilai a2a2 pada atribut A selalu berhubungan dengan nilai pada atribut A selalu berhubungan dengan nilai yang sama dari atibut B yaitu yang sama dari atibut B yaitu b1b1..
a1a1a2a2
a3a3a2a2
AA BB CC
b1b1b1b1b1b1b2b2
c1c1c1c1c3c3c3c3
•• Apabila nilai item a1 dan a2 (tidak Apabila nilai item a1 dan a2 (tidak duplikasi) untuk A, keduanya duplikasi) untuk A, keduanya
berasosiasi dengan nilai item yang berasosiasi dengan nilai item yang sama atau nilai item yang berbeda sama atau nilai item yang berbeda
(berarti berasosiasi satu(berarti berasosiasi satu‐‐satu) dari B, satu) dari B, maka A determinan dari B; maka A determinan dari B;
selanjutnya dapat dikatakan bahwa selanjutnya dapat dikatakan bahwa
DETERMINAN DETERMINAN ‐‐ 22
Tabel AbcTabel Abc--11
a1a1a2a2
a3a3a2a2
AA BB CC
b1b1b1b1b1b1b2b2
c1c1c1c1c3c3c3c3j y pj y p
A ‘menentukan’ B, dan B A ‘menentukan’ B, dan B ‘ditentukan’ oleh (atau tegantung ‘ditentukan’ oleh (atau tegantung
pada ) A.pada ) A.
•• Lebih tegas lagi apabila duplikasi Lebih tegas lagi apabila duplikasi tidak boleh muncul pada atribut A, tidak boleh muncul pada atribut A,
maka A (dapat dipastikan) maka A (dapat dipastikan) determinan dari B determinan dari B
Tabel AbcTabel Abc--22
a1a1a2a2
a3a3a4a4
AA BB CC
b1b1b2b2b1b1b2b2
c1c1c1c1c3c3c3c3
2/9/2010
21
CONTOH DETERMINANCONTOH DETERMINAN
•• Tentukan atribut yang menjadi determinan?Tentukan atribut yang menjadi determinan?
StokStok
P002P002
P001P001P003P003
komp#komp# des_kompdes_komp
MurMur
BautBaut
RingRing
juml_stokjuml_stok5.0005.000
8.3008.300
9 7509 750
•• komp# determinan dari des_kompkomp# determinan dari des_komp
•• komp# determinan dari juml_stokkomp# determinan dari juml_stok
•• des_komp bukan determinan dari komp#, mengapa?des_komp bukan determinan dari komp#, mengapa?
•• bagaimana juml_stok terhadap komp#?bagaimana juml_stok terhadap komp#?
P004P004
P003P003 RingRing
MurMur
9.7509.750
2.3262.326
CONTOH DETERMINANCONTOH DETERMINAN
•• Tentukan atribut yang menjadi determinan?Tentukan atribut yang menjadi determinan?
StokStok--11
P002P002
P001P001P003P003
komp#komp# des_kompdes_komp
MurMur
BautBaut
RingRing
juml_stokjuml_stok5.0005.000
8.3008.300
9 7509 750
StokStok--22
P002P002
P001P001P003P003
komp#komp# des_kompdes_komp
MurMur
BautBaut
RingRing
juml_stokjuml_stok5.0005.000
8.3008.300
9 7509 750
P004P004
P003P003 RingRing
MurMur
9.7509.750
2.3262.326
P002P002 MurMur 2.5002.500P004P004
P003P003 RingRing
MurMur
9.7509.750
2.3262.326
•• Bagaimana Bagaimana komp#komp#masih determinan dari masih determinan dari des_kompdes_komp??
•• Mengapa?Mengapa?
•• Bagaimana Bagaimana komp#komp#masih determinan dari masih determinan dari des_kompdes_komp??
•• Mengapa?Mengapa?
P002P002 RingRing 2.5002.500
DETERMINAN KOMPOSITDETERMINAN KOMPOSIT
•• Manakah atribut yang menjadi determinan?Manakah atribut yang menjadi determinan?
StokStok--22
P001P001
P001P001P002P002
komp#komp# des_kompdes_komp
MurMur
BautBaut
BautBaut
juml_stokjuml_stok5.0005.000
8.5008.500
8.5008.500
•• Atribut gabungan Atribut gabungan {komp#, des_komp}{komp#, des_komp} merupakan merupakan determinan komposit dari atribut determinan komposit dari atribut juml_stokjuml_stok
P003P003
0000 BautBaut
BautBaut 9.7509.750
P003P003 ObengObeng 2.3262.326
ATRIBUT ATRIBUT SUPERFLUOUSSUPERFLUOUS
•• Dikatakan berlebihan jika ternyata suatu determinan tidak Dikatakan berlebihan jika ternyata suatu determinan tidak akan berisikan atribut yang ‘berlebihan’.akan berisikan atribut yang ‘berlebihan’.
StokStok
P002P002
P001P001
komp#komp# des_kompdes_komp
MurMur
BautBaut
juml_stokjuml_stok5.0005.000
8.3008.300
•• Dapatkah atribut komposit {komp#, desk_komp} menjadi Dapatkah atribut komposit {komp#, desk_komp} menjadi determinan terhadap atribut juml_stok?determinan terhadap atribut juml_stok?
•• Baikkah determinan tersebut?Baikkah determinan tersebut?
P004P004
P003P003 RingRing
MurMur
9.7509.750
2.3262.326
DIAGRAM DETERMINANDIAGRAM DETERMINAN
•• Diagram determinansi membantu dalam melihat adanya Diagram determinansi membantu dalam melihat adanya determinan dan atributdeterminan dan atribut‐‐atribut yang dideterminansi.atribut yang dideterminansi.
Atribut A determinan dari atribut BAtribut A determinan dari atribut BA B
•• Diagram determinansi dapat digunakan untuk menyatakan Diagram determinansi dapat digunakan untuk menyatakan dengan lebih baik tentang ketentuan yang ada pada dengan lebih baik tentang ketentuan yang ada pada enterprise enterprise rulesrules..
Atribut A determinan dari atribut B, dan Atribut A determinan dari atribut B, dan atribut B determinan dari atribut Aatribut B determinan dari atribut AA B
CONTOH DIAGRAM DETERMINAN CONTOH DIAGRAM DETERMINAN ‐‐11
StokStok
P002P002
P001P001P003P003
komp#komp# des_kompdes_komp
MurMur
BautBaut
RingRing
juml_stokjuml_stok5.0005.000
8.5008.500
9 7509 750
komp#
juml stok
des_komp
•• setiap satu nilai item yang ada pada komp# hanya setiap satu nilai item yang ada pada komp# hanya berasosiasi dengan satu nilai item pada des_komp dan berasosiasi dengan satu nilai item pada des_komp dan satu nilai item pada juml_stok.satu nilai item pada juml_stok.
P004P004
P003P003 RingRing
MurMur
9.7509.750
2.3262.326
j _
2/9/2010
22
CONTOH DIAGRAM DETERMINAN CONTOH DIAGRAM DETERMINAN ‐‐22
PemasokPemasok
P001P001
P006P006
P001P001
P004P004
komp#komp#nama_pemasnama_pemas
S02S02
S07S07
S02S02
S05S05
kemasankemasan1010
2525
4040
2020
pemas#pemas#JoniJoni
SimiSimi
JoniJoni
JoniJoni
•• Enterprise rule:Enterprise rule:1.1. Seorang pemasok diidentifikasi dengan satu nilai pemas#, dan satu Seorang pemasok diidentifikasi dengan satu nilai pemas#, dan satu
komponen diidentifikasi oleh satu nilai komp#;komponen diidentifikasi oleh satu nilai komp#;2.2. Setiap pemasok hanya memiliki satu nama, tetapi diantara para pemasok Setiap pemasok hanya memiliki satu nama, tetapi diantara para pemasok
mungkin memiliki nama yang sama;mungkin memiliki nama yang sama;3.3. Seorang pemasok dapat memasok banyak jenis komponen dalam Seorang pemasok dapat memasok banyak jenis komponen dalam
bentuk/ukuran kemasan yang berbeda;bentuk/ukuran kemasan yang berbeda;4.4. Satu jenis komponen dapat dipasok oleh lebih dari satu pemasok dalam Satu jenis komponen dapat dipasok oleh lebih dari satu pemasok dalam
bentuk/ukuran kemasan yang berbeda;bentuk/ukuran kemasan yang berbeda;5.5. Satu pemasok yang ditentukan memasok satu komponen yang ditentukan Satu pemasok yang ditentukan memasok satu komponen yang ditentukan
hanya dalam satu bentuk/ukuran kemasan.hanya dalam satu bentuk/ukuran kemasan.