D B M ata ase anagement S ystem
D B M ata ase anagement S ystem MAGISTER TEKNIK INFORMATIKA MODEL RELASIONAL o o o o Struktur Model Relasional Aljabar Relasional Perluasan Operasi Aljabar Relasional Tupel Kalkulus Relasional Domain Kalkulus Relasional Modifikasi Database Views 1
OVERVIEW What is Relational Model o Biasa disebut dengan “Relational Data Model” Adalah suatu model data dimana data disimpan dalam bentuk relasi o Merupakan “Record-based Logical Models” User Customer User. ID First. Name Last. Name Cust. ID 100 Mary Abermany 100 Abermany 101 Jerry Caldera 335 -6421, 454 -9744 104 Alea Copley 101 215 -7789 Caldera 107 Murugan Jacksoni 107 299 -9090 Jacksoni Relational Model Phone Last. Name Non-Relational Model 2
OVERVIEW Why Study Relational Model o Most widely used model, DB implementations are based on it Vendors : IBM, Microsoft, Oracle, Sybase, Informix, etc. Legacy systems (Warisan sistem sebelumnya) o o Extremely simple: only one concept (the relation/table) o A good match for how we think about our data o Has an elegant mathematical design theory Goals : Mendapatkan struktur data, manipulasi data dan keutuhan data yang baik 3
Bagian 1 : Struktur Model Relasional Relasi (Relation) o o Definisi : Relasi adalah tabel data 2 dimensi dengan karakteristik tertentu. Tabel 2 dimensi –layaknya suatu matriks- mempunyai Baris (rows/records), dan Kolom (columns/attribute/field) Karakteristik Relasi : n Mempunyai nama yang unik. n Setiap nilai harus atomik (not multivalued, not composite) n Setiap baris harus unik (can’t have two rows with exactly the same values for all their fields) n n n Atribut pada tabel (columns) harus mempunyai nama yang unik Setiap nilai isian pada kolom harus berdomain sama Order (derajat) kolom atau baris tidak penting NOTE : 1. Istilah Relasi pada model relasional tidak sama dengan relasi E-R model 2. Digunakan hanya untuk struktur lojik DB dan bukan untuk struktur fisik 4
Bagian 1 : Struktur Model Relasional Apakah ini Relasi ? User. ID First. Name Last. Name Cust. ID 100 Mary Abermany 100 Abermany 101 Jerry Caldera 335 -6421, 454 -9744 104 Alea Copley 101 215 -7789 Caldera 107 Murugan Jacksoni 104 610 -9850 Copley 107 299 -9090 Jacksoni Ya, memenuhi syarat Relasi Cust. ID Bukan Relasi, ada sel bernilai ganda Bukan Relasi, ada 2 baris identik Phone Last. Name 100 335 -6421 Abermany 101 215 -7789 Caldera 104 610 -9850 Copley 100 335 -6421 Abermany 107 299 -9090 Jacksoni 5
Bagian 1 : Struktur Model Relasional Terminologi Model Relasional o Relasi o Atribut o Domain : Tabel yang memiliki baris dan kolom : Nama kolom pada relasi : Kumpulan nilai yang mungkin (legal) untuk satu atribut atau lebih o Tupel : Baris suatu relasi dan memuat hanya satu nilai per atribut o Degree : Jumlah atribut pada relasi (unary, binary, ternary, n-ary) o Kardinalitas : Jumlah tupel pada relasi NOTE : Domain Atribut = Atribut + Nama Domain + Deskripsi + Definisi Domain 6
Bagian 1 : Struktur Model Relasional Terminologi Model Relasional Sinonim Primary Key idstudio. Name STD 001 Fox STD 002 Disney STD 003 Paramount Atribut Primary Key Relasi Tupel Foreign Key Judul. Film idfilm title year length film. Type idstudio F 001 Star Wars 1977 124 color STD 001 F 002 Mighty Ducks 1991 104 color STD 003 F 003 Wayne’s World 1992 95 color STD 001 Degree=6 Kardinaiitas=3 Studio. Film 7
Bagian 1 : Struktur Model Relasional Terminologi Model Relasional Contoh : Domain Atribut Relasi Judul. Film Atribut Nama Domain Deskripsi Domain Definisi Domain idfilm Id. Films Identitas film Character, size 4, range : F 001 – F 999 title Titles Judul film Character, size 40 year Years Tahun pembuatan film Date, format : yyyy length Lengths Panjang film dalam satuan menit Integer, 3 digit film. Type Film. Types Jenis Fim Character, size 20 idstudio Id. Studios Kode Studio pembuat film Character, size 6, range : STD 001 – STD 999 8
Bagian 1 : Struktur Model Relasional Key Field (Field Kunci) o Keys : Field khusus yang digunakan untuk 2 tujuan : n Primary keys : are unique identifiers of the relation. This is how we can guarantee that all rows are unique. n Foreign keys : identifiers that enable a dependent relation (on the many side of a relationship) to refer to its parent relation (on the one side of the relationship) o Keys can be simple (a single field) or composite (more than one field) o Keys usually are used as indexes to speed up the response to user queries 9
Bagian 1 : Struktur Model Relasional Key Field (Field Kunci) Contoh Primary Key Foreign Key (implements 1: N relationship between customer and order) Combined, these are a composite primary key (uniquely identifies the order line)…individually they are foreign keys (implement M: N relationship between order and product) 10
Bagian 1 : Struktur Model Relasional Definisi Matematis Relasi o Produk Kartesius (Cartesian Product) Misal diketahui himpunan D 1 dan D 2, cartesian product D 1 x D 2 adalah himpunan semua pasangan (d 1, d 2) dimana d 1 adalah anggota D 1 dan d 2 adalah anggota D 2. D 1 x D 2 = {(d 1, d 2)| d 1 D 1, d 2 D 2} Contoh : D 1 = {1, 2} dan D 2 = {3, 4, 5, 6} maka D 1 x D 2 = {(1, 3), (1, 4), (1, 5), (1, 6), (2, 3), (2, 4), (2, 5), (2, 6)} o Relasi adalah sembarang subset (himpunan bagian) dari D 1 x D 2. Contoh : R = {(1, 2), (2, 4)} adalah relasi. Suatu relasi dapat ditulis menggunakan sifat-sifat hubungan tertentu. Misalnya untuk R tersebut, R = {(x, y)| x D 1, y D 2 dan y = 2 x} dan R D 1 x D 2 11
Bagian 1 : Struktur Model Relasional Definisi Matematis Relasi o Produk Kartesius (Cartesian Product) Misal diketahui himpunan D 1, D 2, D 3, …, Dn maka cartesian product D 1 x D 2 x D 3 x … Dn adalah himpunan semua pasangan (d 1, d 2, d 3, …, dn) dimana d 1 anggota D 1, d 2 adalah anggota D 2, d 3 anggota D 3, …, dn anggota Dn. D 1 x D 2 x D 3 x … Dn = {(d 1, d 2, d 3, …, dn) | d 1 d 3 D 3, …, dn D 1, d 2 D 2, Dn} = o Relasi adalah sembarang himpunan n-tupel yang merupakan subset dari cartesian product dari n himpunan. 12
Bagian 1 : Struktur Model Relasional Definisi Matematis Relasi Untuk menunjukkan keanggotaan tupel : Judul. Film idfilm title year length film. Type idstudio F 001 Star Wars 1977 124 color STD 001 F 002 Mighty Ducks 1991 104 color STD 003 F 003 Wayne’s World 1992 95 color STD 001 Misal D 1 = D 2 = D 3 = D 4 = D 5 = D 6 = {domain {domain idfilm}, title}, year}, length} film. Type}, idstudio} Jika tupel t berada pada relasi R, ditulis t R, Maka t 1[idfilm] diartikan sebagai atribut idfilm pada tupel 1 dan bernilai t 1[idfilm]=“F 001”. Dengan cara sama, maka : t 1[year]=1977, t 2[length]=104, t 3[idstudio]=“STD 001”, t 3[film. Type]=“color”, Dan seterusnya. Maka : Setiap baris pada Judul. Film memuat 5 -tupel yaitu (d 1, d 2, d 3, d 4, d 5) Dimana d 1 D 1, d 2 D 2, d 3 D 3, d 4 D 4, d 5 D 5 dan d 6 D 6. Secara umum : Judul. Film memuat subset dari himpunan yang beranggotakan semua baris yang mungkin. 13
Bagian 1 : Struktur Model Relasional Skema Database Relasional o Database Relasional n Database yang terdiri dari kumpulan relasi. n Dalam praktek, database relasional berisi relasi dengan duplikasi baris. o Relasi dapat dinyatakan menjadi 2 bentuk : n Instance Dalam bentuk tabel, dengan baris dan kolom beserta item datanya. n Schema Dalam bentuk skema lojik berisikan daftar atribut beserta domain yang sesuai. We will discuss relation schema for study relational model 14
Bagian 1 : Struktur Model Relasional Skema Database o Contoh : Relation Instance Students o Contoh : Relation Schema Students(sid, name, login, age, gpa) atau Students=(sid, name, login, age, gpa) atau dengan domainnya Student(sid: string, name: string, login: string, age: integer, gpa: real) 15
Bagian 2 : Aljabar Relasional Overview o Before …… Model relasional memberikan kemudahan dalam mendefinisikan struktur model data (DDL), khususnya menggunakan skema relasional dengan menyebutkan atribut dan domainnya. 1 st goals for relational database o Now …… How the relational model defines the means for Data Manipulation Language (DML). Need : Query Languages Most strategy : relational algebra and relational calculus. 16
Bagian 2 : Aljabar Relasional Query Languages o MS Access Examples Query languages adalah bahasa yang digunakan oleh user untuk memperoleh informasi dari database (manipulasi data). n Prosedural, user memberikan instruksi ke sistem untuk melakukan operasi pada database. Selain harus tahu data apa yang dibutuhkan, user juga harus tahu bagaimana data tersebut diperolehnya. Contoh : komersial dbase, foxbase, C++, dll model relational algebra relational n Non Prosedural, user secara khusus memberikan data apa yang dibutuhkan tanpa harus tahu bagaimana cara mendapatkannya. Contoh : komersial SQL, QBE, QUEL dll model relational tupel calculus relational 17
Bagian 2 : Aljabar Relasional Query Languages Bagian Bahasa Query : H Data Definition Language (DDL) Bahasa yg digunakan untuk menggambarkan basis data secara keseluruhan, Operasi yang dapat dijalankan adalah membuat tabel baru, membuat indeks, mengubah tabel, menentukan struktur. Hasil kompilasi dari DDL ini adalah Kamus Data (Data Dictionary) H Data Manipulation Language (DML) Bahasa untuk melakukan manipulasi dan pengambilan data pada suatu basis data, seperti : penyisipan, penghapusan dan update. 18
Bagian 2 : Aljabar Relasional o o o Merupakan Procedural Query language. Terdiri dari himpunan operasi menggunakan operator yang diterapkan pada relasi. Satu atau lebih relasi (sebagai input) dapat dimanipulasi menggunakan operator-operator untuk mendapatkan hasil/informasi yang diinginkan. Agak sulit diterapkan, salah satu alasannya adalah karena prosedural. Dimana kita harus tahu tidak hanya “Data Apa” yang diinginkan, tetapi juga harus tahu “Bagaimana Mendapatkan”. Tidak digunakan pada pemrosesan database komersial dan bahkan tidak ada produk DBMS komersial yang menyediakan fasilitas aljabar relational. Walaupun begitu, aljabar relasional sangat membantu memahami bagaimana manipulasi database relasional. Selain itu, aljabar relasional juga merupakan fundamental dalam mempelajari SQL. 19
Bagian 2 : Aljabar Relasional o Operator Dasar : Select ( ), Project( ), Cartesian (Cross) Product ( ), Set-Difference ( ), Union ( ) o Operator Tambahan : Intersection ( ), Join, Division ( ), Rename, Assignment o o Sifat Operasi : n Unary, hanya melibatkan satu relasi (Select, Project, Rename) n Binary, melibatkan 2 relasi (Cross Product, Union, Set Difference) Operasi dapat bersifat Komposit 20
Bagian 2 : Aljabar Relasional Select ( ) Operation o Select operation : melakukan seleksi terhadap tuple yang memenuhi predikat (persyaratan / kriteria) yang diinginkan. o Notasi : o p(R) ; p = selection predicate ; R = relasi Definisi : p(R) = {t | t R dan p(t)} o Predikat dapat bersifat logika, operator : V (atau), Λ (dan) atau (not). o Juga dapat bersifat pembanding, operator : >, <, , , =, 21
Bagian 2 : Aljabar Relasional Select ( ) Operation o Contoh : Students sid name login age gpa 53666 Jones jones@cs 18 3. 4 53668 Smith smith@eecs 18 3. 2 53650 Smith smith@math 19 2. 8 Tentukan tupel pada Students, yang namenya = Smith Tentukan tupel pada Students, yang agenya 18 dan gpa. 3. 0 • name=“Smith”(Students) • age 18 gpa>3. 0(Students) Students sid name 53668 Smith 53650 Smith Students login age gpa sid name login age gpa smith@eecs 18 3. 2 53666 Jones jones@cs 18 3. 4 smith@math 19 2. 8 53668 Smith smith@eecs 18 3. 2 22
Bagian 2 : Aljabar Relasional Project ( ) Operation o Project operation : memilih kolom/field/atribut tertentu dari relasi o Notasi : o o K(R) ; K = 1 atau lebih kolom yang dipilih ; R = relasi Definisi : K(R) = {t[K] | t R} Jika ada tupel yang nilainya sama, diambil hanya satu tupel Students sid name login age gpa 53666 Jones jones@cs 18 3. 4 53668 Smith smith@eecs 18 3. 2 53650 Smith smith@math 19 2. 8 • name(Students) Tampilkan kolom name pada relasi Students • name, age(Students) Tampilkan kolom name dan age pada relasi Students name Jones Smith name age Jones 18 Smith 19 23
Bagian 2 : Aljabar Relasional Operasi Majemuk o Hasil dari suatu operasi dapat menjadi input dari operasi lain Students sid name login age gpa 53666 Jones jones@cs 18 3. 4 53668 Smith smith@eecs 18 3. 2 53650 Smith smith@math 19 2. 8 • age 18 gpa>3. 0(Students) Students sid name login age gpa 53666 Jones jones@cs 18 3. 4 53668 Smith smith@eecs 18 3. 2 • sid, name( age 18 gpa>3. 0(Students)) Students sid name 53666 Jones 53668 Smith 24
Bagian 2 : Aljabar Relasional Cartesian Product ( ) Operation Cartesian Product relasi R 1 dan R 2, ditulis R 1 R 2, adalah relasi yang beranggotakan semua tupel (r 1, r 2) yang mungkin, dimana r 1 R 1 dan r 2 R 2 disebut kombinasi dari R 1 dan R 2 Notasi : R 1 R 2 = {(r 1, r 2)| r 1 R 1, r 2 R 2} Jika R 1 mempunyai n 1 tupel dan R 2 mempunyai n 2 tupel maka R 1 R 2 mempunyai (n 1. n 2) tupel o o o Students Consultant Students Consultant sid name age gpa cid cname 53666 Jones 18 3. 4 C 001 James 53668 Smith 18 3. 2 C 002 Schole 53666 Jones 18 3. 4 C 002 Schole 53650 Smith 19 2. 8 53668 Smith 18 3. 2 C 001 James 53668 Smith 18 3. 2 C 002 Schole 53650 Smith 19 2. 8 C 001 James 53650 Smith 19 2. 8 C 002 Schole 25
Bagian 2 : Aljabar Relasional Cartesian Product ( ) Operation Students Consultant sid name age gpa cid cname stat Stcon 53666 Jones 18 3. 4 C 001 James C 1 53666 53668 Smith 18 3. 2 C 002 Schole C 1 53668 C 003 Brown C 2 53666 C 005 Murphy C 2 53668 Ket : C 1 = Konsultan Utama C 2 = Asisten Konsultan Siapakah nama konsultan dari siswa yang bernama “Jones” ? 26
Bagian 2 : Aljabar Relasional Cartesian Product ( ) Operation • Step-1 Students Consultant Students sid name gpa cid cname stat stcon 53666 Jones 3. 4 C 001 James C 1 53666 sid name gpa 53666 Jones 3. 4 C 002 Schole C 1 53668 53666 Jones 3. 4 C 003 Brown C 2 53666 53668 Smith 3. 2 53666 Jones 3. 4 C 005 Murphy C 2 53668 Smith 3. 2 C 001 James C 1 53666 53668 Smith 3. 2 C 002 Schole C 1 53668 Smith 3. 2 C 003 Brown C 2 53666 53668 Smith 3. 2 C 005 Murphy C 2 53668 Consultant cid cname stat Stcon C 001 James C 1 53666 C 002 Schole C 1 53668 C 003 Brown C 2 53666 C 005 Murphy C 2 53668 Untuk memperoleh informasi nama konsultan seorang siswa maka perlu dioperasikan Cartesian Product. Tapi relasi yang diperoleh masih belum menjawab pertanyaan karena belum jelas siapa yang membimbing Jones 27
Bagian 2 : Aljabar Relasional Cartesian Product ( ) Operation • Step-2 Dari hasil tsb. , untuk mendapatkan konsultan dari siswa bernama “Jones”, digunakan operasi Select. name=“Jones”(Student Consultant), hasilnya adalah : sid name gpa cid cname stat stcon 53666 Jones 3. 4 C 001 James C 1 53666 Jones 3. 4 C 002 Schole C 1 53668 53666 Jones 3. 4 C 003 Brown C 2 53666 Jones 3. 4 C 005 Murphy C 2 53668 sid=stcon( name=“Jones”(Student sid name gpa cid cname stat stcon 53666 Jones 3. 4 C 001 James C 1 53666 Jones 3. 4 C 003 Brown C 2 53666 Sampai disini juga masih belum dapat dipastikan siapa konsultan Jones, sebab seorang siswa hanya dibimbing oleh sebanya-banyaknya 2 konsultan, yaitu konsultan utama dan asisten konsultan. Untuk memastikannya, digunakan operator Select dengan kondisi sid = stcon Consultant)), hasilnya adalah : 28
Bagian 2 : Aljabar Relasional Cartesian Product ( ) Operation • Step-3 Dari hasil tsb. , untuk menampilkan hanya nama konsultan dari siswa bernama “Jones” adalah : cname( sid=stcon( name=“Jones”(Student Consultant))) cname James Brown 29
Bagian 2 : Aljabar Relasional Union ( ) Operation o o o Union operation : menyatukan beberapa relasi sebagai satu relasi / menggabungkan hasil dari dua buah query Baris yang bernilai sama hanya diambil satu (tidak ada duplikasi) Notasi : R S Definisi : R S = {t | t R atau t S } Syarat : n Jumlah atribut R = Jumlah atribut S n Domain atribut ke-i dari R = Domain atribut ke-i dari S Consultant 1 Consultant 2 cname cid cname James C 001 James C 002 Schole C 003 Brown C 004 Muller C 005 Murphy cid C 001 Consultant 1 Consultant 2 cid cname C 001 James C 002 Schole C 003 Brown C 004 Muller C 005 Murphy 30
Bagian 2 : Aljabar Relasional Union ( ) Operation Contoh : Pinjam Loan# Cname Amount BCA Pemuda 170 Jony 1000000 BCA Majapahit 102 Hari 2000000 Bname Tabungan Loan# Cname Balance BCA Pemuda 102 Hari 400000 BCA Pemuda 204 Agus 700000 Bname Akan menampilkan semua nama nasabah yang mempunyai tabungan, pinjaman atau keduanya 31
Bagian 2 : Aljabar Relasional It’s the last slide …. Set-Difference ( ) Operation o o Set difference operation : menemukan tupel yang berada pada satu relasi tapi tidak berada pada relasi yang lain Notasi : R S Definisi : R S = {t | t R dan t S } Syarat : n Jumlah atribut R = Jumlah atribut S n Domain atribut ke-i dari R = Domain atribut ke-i dari S Consultant 1 Consultant 2 cid cname C 001 James C 002 Schole C 003 Brown C 004 Muller C 005 Murphy Siapa asisten konsultan yang tidak merangkap sebagai konsultan utama ? Consultant 2 – Consultant 1 cid cname C 003 Brown C 005 Murphy cname(Consultan 2 – Consultan 1) 32
Bagian 2 : Aljabar Relasional Set-Difference ( ) Operation Contoh : Pinjam Loan# Cname Amount BCA Pemuda 170 Jony 1000000 BCA Majapahit 102 Hari 2000000 Bname Tabungan Loan# Cname Balance BCA Pemuda 102 Hari 400000 BCA Pemuda 204 Agus 700000 Bname Akan menampilkan semua nama nasabah yang mempunyai simpanan tetapi tidak mempunyai pinjaman. 33
Sampai Disini Dulu end of this session 34
Evolution of DB Systems o o o o Flat files - 1960 s - 1980 s Hierarchical – 1970 s - 1990 s Record-based Network – 1970 s - 1990 s Logical Models Relational – 1980 s - present Object-oriented – 1990 s - present Object-relational – 1990 s - present Data warehousing – 1980 s - present Web-enabled – 1990 s - present Most widely used model, specially for commercial data processing applications 35
36
37
38
http: //coronet. iicm. edu/wbtmaster/allcoursescontent/netlib/library. htm Please visit … Network Database Model Example from CODASYL 39
Object Oriented Model (OO Model) OO vs. EER Data Modeling Object Oriented Class Object Association Inheritance of attributes Inheritance of behavior EER Entity type Entity instance Relationship Inheritance of attributes No representation of behavior Object-oriented modeling is frequently accomplished using the Unified Modeling Language (UML) 40
Example : Class Diagram and Object Diagram (a) Class diagram Closed diamond indicates composition. The room cannot exist without the building (b) Object diagram 41
Example : UML class diagram for a university database The following slides illustrate the ODL implementation of this UML diagram 42
Example : ODL Schema for university database 43
Example : Object Relational Model (OR Model) 44
Figure 1 -10 An enterprise data warehouse 45
- Slides: 45