gd2203-bd-2010 ver 01

22
2/9/2010 1 GD 2203 GD 2203 – BASISDATA SPASIAL BASISDATA SPASIAL Semester II Semester II – 2009/2010 2009/2010 D. D. Muhally Muhally Hakim Hakim Albertus Albertus Deliar Deliar Research Division: Remote Sensing & Geographical Information Science Research Division: Remote Sensing & Geographical Information Science Fakultas Ilmu dan Teknologi Kebumian Fakultas Ilmu dan Teknologi Kebumian Institut Teknologi Bandung Institut Teknologi Bandung KETENTUAN DASAR KETENTUAN DASAR Waktu Kuliah Waktu Kuliah : Senin 11.00 Senin 11.00 – 12.00 (dialokasikan untuk Praktikum) 12.00 (dialokasikan untuk Praktikum) Selasa 13.00 Selasa 13.00 – 15.00 15.00 Sistem Penilaian Sistem Penilaian : UTS UTS – 40 % 40 % UAS UAS – 40 % 40 % Tugas, Quis & Praktikum Tugas, Quis & Praktikum – 20 % 20 % Tugas & Praktikum harus lengkap Tugas & Praktikum harus lengkap Kehadiran Kehadiran : Minimum 80 % ( Minimum 80 % (± 13 pertemuan termasuk UTS & UAS) 13 pertemuan termasuk UTS & UAS) Kehadiran pada kuliah Kehadiran pada kuliah harus tepat waktu harus tepat waktu K t K t B ki ih & b t B ki ih & b t ( dl ) Kostum Kostum : Berpakaian rapih & bersepatu Berpakaian rapih & bersepatu (sandal … no) Ketua kelas Ketua kelas : NIM Ganjil NIM Ganjil NIM Genap NIM Genap Buku referensi Buku referensi : Data Analysis for Data Base Design Data Analysis for Data Base Design – D.R. Howe D.R. Howe Sistem Manajemen Database Sistem Manajemen Database – Raghu Ramakrishnan Raghu Ramakrishnan WHY NOT THE BEST WHY NOT THE BEST DEFINISI DEFINISI Data Data Fakta, Fakta, teks, teks, hasil hasil pengukuran, pengukuran, gambar, gambar, suara, suara, dan dan video video yang yang bernilai bernilai informasi informasi. Informasi Informasi Data Data yang yang telah telah diproses diproses sebagai sebagai bahan bahan dalam dalam proses proses Data Data yang yang telah telah diproses diproses sebagai sebagai bahan bahan dalam dalam proses proses pengambilan pengambilan keputusan keputusan. Database Database Kumpulan Kumpulan data data yang yang terorganisir terorganisir berdasarkan berdasarkan suatu suatu struktur struktur hubungan hubungan. Metadata Metadata Data Data yang yang mendeskripsikan mendeskripsikan data data lain lain. INFORMASI INFORMASI Informasi Informasi dapat dimanfaatkan sebagai dasar untuk dapat dimanfaatkan sebagai dasar untuk pengambilan keputusan dan memahami permasalahan/situasi pengambilan keputusan dan memahami permasalahan/situasi BASISDATA DAN DBMS BASISDATA DAN DBMS Jumlah kumpulan data (datasets) pada suatu organisasi (enterprise) sangat mungkin volumenya besar sekali (huge); A database is a collection of nonredundant data shareable between different application systems Basis data adalah kumpulan data yang nonredundant 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 DBMS BASISDATA DAN DBMS Apa Apa yang dapat dilakukan oleh DBMS: yang dapat dilakukan oleh DBMS: o Menyimpan jumlah/volume data yang sangat besar Menyimpan jumlah/volume data yang sangat besar dalam jangka waktu dalam jangka waktu yang lama; yang lama; o Melakukan Melakukan query query dan dan update update data: data: Query: Query: Berapa nilai Nila untuk matakuliah IUT? Berapa nilai Nila untuk matakuliah IUT? Update Update: Meregistrasi nama Anita untuk kuliah Basisdata Meregistrasi nama Anita untuk kuliah Basisdata o Memproteksi terhadap akses ilegal: Memproteksi terhadap akses ilegal: Jangan sampai mahasiswa dapat merubah nilai sesuatu Jangan sampai mahasiswa dapat merubah nilai sesuatu matakuliah matakuliah o 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 on online line pada pada saat bersamaan; saat bersamaan; o Memproteksi terhadap adanya Memproteksi terhadap adanya system crashes: system crashes: Apabila salahsatu sistem gagal ( Apabila salahsatu sistem gagal (hard harddrive drive, network network, etc.) , etc.) basisdata mampu menjaga keutuhan data. basisdata mampu menjaga keutuhan data.

Upload: rivando-napitupulu

Post on 25-Jul-2015

61 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: GD2203-BD-2010 Ver 01

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.

Page 2: GD2203-BD-2010 Ver 01

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;

Page 3: GD2203-BD-2010 Ver 01

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

Page 4: GD2203-BD-2010 Ver 01

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" 

Page 5: GD2203-BD-2010 Ver 01

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

Page 6: GD2203-BD-2010 Ver 01

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..

Page 7: GD2203-BD-2010 Ver 01

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..

Page 8: GD2203-BD-2010 Ver 01

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). ). 

Page 9: GD2203-BD-2010 Ver 01

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

Page 10: GD2203-BD-2010 Ver 01

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))

Page 11: GD2203-BD-2010 Ver 01

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';

Page 12: GD2203-BD-2010 Ver 01

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.

Page 13: GD2203-BD-2010 Ver 01

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..

Page 14: GD2203-BD-2010 Ver 01

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)   

Page 15: GD2203-BD-2010 Ver 01

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).).

Page 16: GD2203-BD-2010 Ver 01

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

Page 17: GD2203-BD-2010 Ver 01

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 

Page 18: GD2203-BD-2010 Ver 01

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

Page 19: GD2203-BD-2010 Ver 01

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

Page 20: GD2203-BD-2010 Ver 01

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

Page 21: GD2203-BD-2010 Ver 01

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 _

Page 22: GD2203-BD-2010 Ver 01

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.