RELATIONAL MODEL (FORMAL QUERY LANGUAGE)

Slides:



Advertisements
Presentasi serupa
Aljabar Relasional Materi pertemuan.
Advertisements

SQL.
BAHASA QUERY TERAPAN Sub Materi : Structured Query Language
Bahasa Pada Model Data Relasional
SQL ADVANCEADVANCE. SQL Data Type MySQL Text Type : 9/7/2014By : Suwondo, S.Kom2.
ALJABAR RELASIONAL (RELATIONAL ALGEBRA)
ALJABAR RELASIONAL Mata Kuliah : Database 1 Dosen : Tessy Badriyah.
Model & Aljabar Relasional
SQL.
Aljabar Relasional Materi pertemuan.
PENGANTAR BASIS DATA (3 SKS) GANJIL 2008 KP FTI – UNIVERSITAS BUDI LUHUR CHAPTER 7 DML ( DATA MANIPULATION LANGUAGE) DALAM SQL.
PRAKTIKUM BASIS DATA (4) TEKNIK INFORMATIKA UNIVERSITAS MERCU BUANA
SQL Part 3 Latar Belakang Desain Tabel Normalisasi Aljabar relasional
Aljabar Relasional Materi pertemuan 21.
PERTEMUAN 13 Sistem Basis Data Presented by :
SQL 2. Database TRANSACTION Tabel yang terlibat : Customer berisi data pelanggan (nama, alamat, dll) OderInfo berisi info pemesanan oleh pelanggan (tgl.
Modul 03 Relational Model
Oleh: Henry Primandari,S.Kom STMIK-MDP Palembang
Sesi V Aljabar & Kalkulus Relasional
Data Definition Language dan Data Manipulation Language
SQL (Structured Query Language) Materi Pertemuan
P E R T E M U A N 12 SISTEM BASIS DATA.
SQL-Aggregate dengan Fungsi GROUP, HAVING dan subQuery
SQL: DML (2) Basis Data Pertemuan 07.
BAHASA QUERY TERAPAN OLEH : HARSITI, ST.
Review. Fakultas Ilmu Komputer UI 2 Database Introduction Database vs File Processing Database Actors DBA, Database Designers, Database users, Application.
ALJABAR RELATIONAL.
ALJABAR DAN KALKULUS RELASIONAL
Aljabar Relasional Materi pertemuan.
PRAKTIKUM BASIS DATA (4) TEKNIK INFORMATIKA UNIVERSITAS MERCU BUANA
SQL (Structured Query Language)
Basis Data Bab VIII Bahasa Kueri Presented by Mulyono, S.Si, M.Kom
9.3 Geometric Sequences and Series. Objective To find specified terms and the common ratio in a geometric sequence. To find the partial sum of a geometric.
Dasar query basis data dengan SQLite
Pertemuan 6 Aljabar Relational (2) Betha Nurina Sari,M.Kom.
Pertemuan Ke-6 Aljabar Relasional
Aljabar Relasi SBD.
Structure Query Language
Aljabar Relasional (Relational Algebra)
ALJABAR RELASIONAL Mata Kuliah : Database 1 Dosen : Tessy Badriyah.
Operasi Relasional Basis Data
ALJABAR RELASIONAL BASIS DATA I/2009-GENAP
Database Management Systems Bab 4 – Bagian B Kalkulus Relasional (Chap
- Modul 5 - Query Lanjut 2/20/2018 7:46 PM
IK203 Sistem Basis Data Suryo Widiantoro, ST, MMSI, M.Com(IS)
Normalisasi PERTEMUAN KE-7.
ALJABAR RELASIONAL DAN KALKULUS RELASIONAL
Aljabar Relational (Relational Algebra) MEETING 6
Sistem Basis Data Konsep Database Relasional
Model Relational DATABASE
Presented by Team Basis Data
Operasi Relasional Basis Data
Aljabar Dan Kalkulus Relasional
Materi Pendukung Pertemuan <<7>> Logika Operasi Relasi
Pertemuan ke-11 Bahasa Query Formal.
Aljabar Relational (Relational Algebra) MEETING 6
Aljabar Relational.
Aljabar Relational IK203 Sistem Basis Data Pertemuan #4
MODEL DATA RELASIONAL (1)
Aljabar Relasional (Relational Algebra)
Basis Data - Udinus Semarang
Basis Data Bab 3 Structured Query Language (SQL).
MODEL RELASIONAL BASIS DATA I/2011-GANJIL
KULIAH “PRAKTIKUM BASIS DATA“ TEKNIK INFORMATIKA UNIVERSITAS MERCU BUANA Oleh : AFIYATI S.KOM, MT.
MODEL RELASIONAL BASIS DATA I/2011-GANJIL
Operasi Matriks Dani Suandi, M.Si..
Basis Data Bahasa Kueri Basis Data
Model dan Aljabar Relasional
ALJABAR RELASIONAL (LANJUTAN)
Basis Data Bahasa Kueri Basis Data
Transcript presentasi:

RELATIONAL MODEL (FORMAL QUERY LANGUAGE) CHAPTER 5 RELATIONAL MODEL (FORMAL QUERY LANGUAGE)

Relational Model Structure of Relational Databases (Struktur Basis Data) Fundamental (Dasar) Relational-Algebra-Operations Additional (Tambahan) Relational-Algebra-Operations Extended (Lanjutan) Relational-Algebra-Operations Null Values (Nilai Kosong) Modification of the Database (Modifikasi basis data)

Contoh sebuah Relasi

Struktur Dasar Secara formal, himpunan D1, D2, …. Dn sebuah relasi r adalah sebuah bagian dari himpunan D1 x D2 x … x Dn Sehingga, sebuah relasi adalah sebuah himpunan dari n-tuples(row) (a1, a2, …, an) dimana setiap ai  Di Contoh: Jika customer_name = {Agus,Budi,Cecep} customer_street = {Jl. Cildug, Jl. Joglo, Jl. Ciputat} customer_city = {Jaksel, Jakbar, Jaksel} Maka r = { (Agus, Jl.Ciledug, Jaksel), (Budi, Jl. Joglo, Jakbar), (Cecep, Jl. Ciputat, Jaksel)} adalah sebuah relasi yang berasal dari customer_name x customer_street x customer_city

Tipe Atribut Setiap atribut dari sebuah relasi mempunyai sebuah nama Setiap himpunan yang berisi nilai untuk setiap atribut disebut domain dari atribut Secara normal, nilai atribut yang diperlukan haruslah atomic; artinya, indivisible Catt: nilai multivalued attribute tidak atomic Catt: nilai composite attribute tidak atomic Setiap nilai null khusus adalah anggota dari setiap domain Setiap nilai null menyebabkan komplikasi dalam pendefinisian pada banyak operations Kita akan mengabaikan penyebab dari nilai null dalam presentasi ini dan mempertimbangkan penyebabnya di lain kali

Skema Relasi A1, A2, …, An adalah atribut-atribut R = (A1, A2, …, An ) adalah sebuah relation schema (skema relasi) Contoh: Customer_schema = (customer_name, customer_street, customer_city) r(R) adalah sebuah relation (relasi) pada relation schema R customer (Customer_schema)

Instance Relasi Nilai yang ada sekarang (relation instance) dari sebuah relasi dinyatakan dalam sebuah tabel Sebuah elemen t dari r adalah sebuah tuple, dinyatakan sebagai sebuah row (baris) dalam sebuah tabel attributes (or columns) customer_name customer_street customer_city Jones Smith Curry Lindsay Main North Park Harrison Rye Pittsfield tuples (or rows) customer

Relasi-relasi yang tidak urut Pengurutan tuple-tuple adalah irrelevant Tuple-tuple bisa disimpan dalam sebuah arbitrary order Contoh: relasi account dengan unordered tuples

Properti suatu relasi Tidak ada duplikat tuple Dalam suatu relasi tidak akan ada 2 tuple atau lebih yang nilai-nilainya tepat sama Tuple tidak mempunyai urutan Tuple dapat diletakkan pada sembarang baris dari atas ke bawah Atribut tidak mempunyai urutan Setiap atribut dapat diletakkan pada sembarang posisi dari kiri ke kanan Semua nilai atribut bersifat “atomic” Nilai atribut harus tunggal Tidak diperbolehkan adanya “repeating group”

Database (Basis Data) Sebuah basis data terdiri dari multiple relations (banyak relasi) Informasi tentang sebuah perusahaan dipecah menjadi beberapa bagian, setiap relasi menyimpan satu bagian informasi account : stores information about accounts depositor : stores information about which customer owns which account customer : stores information about customers Menyimpan semua informasi sebagai sebuah relasi tunggal sama seperti bank(account_number, balance, customer_name, ..) menghasilkan pengulangan informasi (cth., dua customer mempunyai sebuah account) kebutuhan untuk nilai null (cth., menyatakan sebuah customer tanpa sebuah account) Teori Normalisasi akan menerangkan bagaimana mendisain skema relasi yang baik

Relasi customer

Relasi depositor

Query Languages Bahasa yang informasinya diminta (request) user dari database. Kategori dari bahasa Procedural Non-procedural, atau declarative “Pure” languages: Relational algebra Tuple relational calculus Domain relational calculus Pure languages form menjadi basis utama dari query languages yang digunakan orang.

Relational Algebra Procedural language 6 basic operators select:  project:  union:  set difference: – Cartesian product: x rename:  Operator mengambil 1 atau 2 relasi sebagai input dan menghasilkan sebuah relasi.

Select A=B ^ D > 5 (r) Relasi r A B C D     1 5 12 23 7 3 10 A

Select Notasi:  p(r) p disebut selection predicate Didefinisikan sebagai: p(r) = {t | t  r and p(t)} Dimana p adalah sebuah formula dalam propositional calculus yang terdiri dari terms yang dihubungkan oleh :  (and),  (or),  (not) Setiap term berisi: <attribute> op <attribute> or <constant> dimana op berisi: =, , >, . <.  Contoh selection:  branch_name=“Meanus”(account)

Project Relasi r: A,C (r) A B C   10 20 30 40 1 2 A C A C   1 2  =

Project Notasi: dimana A1, A2 adalah nama atributnya dan r adalah sebuah nama relasi. Setiap hasil didefinisikan sebagai relasi dari kolom k sehingga kolom yang dihapus tidak ditampilkan. Hasilnya: baris yang isi relasi himpunannya sama dihapus Contoh: Untuk mengeliminasi atribut branch_name dari account account_number, balance (account)

Union Relations r, s: A B A B   1 2   2 3 s r A B r  s:   1 2 3

Union Notasi: r  s Didefinisikan dengan: r  s = {t | t  r or t  s} Untuk r  s harus valid. 1. r, s harus mempunyai arity yang sama(attributes yang sama) 2. domain dari attribute harus compatible (contoh: ke dua kolom pada r dan s mempunyai type yang sama)

Set Difference Relasi r, s: A B A B   1 2   2 3 s r r – s: A B  

Set Difference Notasi r – s Didefinisikan sebagai: r – s = {t | t  r and t  s} Set differences harus diambil dari relasi compatible. r dan s harus mempunyai arity yang sama attribute domains dari r dan s harus kompatibel

Cartesian-Product A B C D E A B C D E Relasi r, s:   1 2    10 20 r x s:

Cartesian-Product Notasi r x s Didefinisikan sebagai: r x s = {t q | t  r and q  s} Diasumsikan bahwa atribut-atribut dari r(R) dan s(S) adalah disjoint. (Yaitu, R  S = ). Jika atribut-atribut dari r(R) dan s(S) tidak disjoint, maka nama atribut harus diganti.

Composition Dapat membuat expressions menggunakan multiple operations Contoh: A=C(r x s) r x s A B C D E A B C D E A=C(r x s)     10 20 a b   1 2      10 20 a b 1 2

Operasi Tambahan Operasi tambahan yang didefinisikan tidak menambah kelebihan dari relational algebra, membuat sederhana query-query yang umum. Set intersection Natural join Division Assignment

Set-Intersection Notasi: r  s Didefinisikan: r  s = { t | t  r and t  s } Assume: r, s have the same arity attribute dari r dan s compatible Note: r  s = r – (r – s)

Contoh Set-Intersection Relation r, s: r  s A B A B   1 2   2 3 r s A B  2

Natural-Join Notation: r s Let r and s be relations on schemas R and S respectively. Then, r s is a relation on schema R  S obtained as follows: Consider each pair of tuples tr from r and ts from s. If tr and ts have the same value on each of the attributes in R  S, add a tuple t to the result, where t has the same value as tr on r t has the same value as ts on s

Natural-Join Example: R = (A, B, C, D) S = (E, B, D) Result schema = (A, B, C, D, E) r s didefinisikan: r.A, r.B, r.C, r.D, s.E (r.B = s.B  r.D = s.D (r x s))

Contoh Natural Join Relasi r, s: A B C D B D E     1 2 4    a b 3 2 a b      r s r s A B C D E   1 2    a b   

Division Notation: r  s memisahkan r dan s pada relasi dalam schema R dan S secara berturut-turut diaman R = (A1, …, Am , B1, …, Bn ) S = (B1, …, Bn) hasil r  s adalah selasi dalam schema R – S = (A1, …, Am) r  s = { t | t   R-S (r)   u  s ( tu  r ) } Tu merupakan rentetan tuple t dan u untuk menghasilkan tuple tunggal.

Division A B Relations r, s: B      1 2 3 4 6 1 2 s r  s: A  

Division A B C D E D E Relations r, s:    a    a b 1 3 a b 1 s

Division Property Let q = r  s Then q is the largest relation satisfying q x s  r Definition in terms of the basic algebra operation Let r(R) and s(S) be relations, and let S  R r  s = R-S (r ) – R-S ( ( R-S (r ) x s ) – R-S,S(r )) To see why R-S,S (r) simply reorders attributes of r R-S (R-S (r ) x s ) – R-S,S(r) ) gives those tuples t in R-S (r ) such that for some tuple u  s, tu  r.

Aggregate Functions and Operations Aggregation function takes a collection of values and returns a single value as a result. avg: average value min: minimum value max: maximum value sum: sum of values count: number of values Aggregate operation in relational algebra E is any relational-algebra expression G1, G2 …, Gn is a list of attributes on which to group (can be empty) Each Fi is an aggregate function Each Ai is an attribute name

Aggregate Operation – Example Relation r: A B C     7 3 10 g sum(c) (r) sum(c ) 27

Aggregate Operation – Example Relation account grouped by branch-name: branch_name account_number balance Perryridge Brighton Redwood A-102 A-201 A-217 A-215 A-222 400 900 750 700 branch_name g sum(balance) (account) branch_name sum(balance) Perryridge Brighton Redwood 1300 1500 700

Aggregate Functions (Cont.) Result of aggregation does not have a name Can use rename operation to give it a name For convenience, we permit renaming as part of aggregate operation branch_name g sum(balance) as sum_balance (account)