Časť 1 Relačná algebra Slavomír Stramba 2003.

Slides:



Advertisements
Similar presentations
Relational Database Operators
Advertisements

พีชคณิตแบบสัมพันธ์ (Relational Algebra) บทที่ 3 อ. ดร. ชุรี เตชะวุฒิ CS (204)321 ระบบฐานข้อมูล 1 (Database System I)
Relational Algebra, Join and QBE Yong Choi School of Business CSUB, Bakersfield.
Paneurópsky prieskum verejnej mienky o ochrane zdravia a bezpečnosti pri práci Výsledky z celej Európy a Slovenska - Máj 2013 Reprezentatívne výsledky.
Relational Algebra Relational Calculus. Relational Algebra Operators Relational algebra defines the theoretical way of manipulating table contents using.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 6 The Relational Algebra and Relational Calculus.
Utility Service Database Design a database to keep track of service calls for a utility company: Customers call to report problems Call center manages.
Chapter 11.1 and 11.2 Data Manipulation: Relational Algebra and SQL Brian Cobarrubia Introduction to Database Management Systems October 4, 2007.
XML pre programátorov 7. víkend s Linuxom 5. – 6. október 2002 Žilina Stanislav Meduna ETM Aktiengesellschaft
Chapter 3 Section 3.4 Relational Database Operators
Copyright © Curt Hill The Relational Algebra What operations can be done?
Ján GENČI PDT 2009 Systém riadenia bázy dát (Database Management System)
M Taimoor Khan Course Objectives 1) Basic Concepts 2) Tools 3) Database architecture and design 4) Flow of data (DFDs)
Ján GENČI PDT 2009 Systém riadenia bázy dát (Database Management System)
CSE314 Database Systems The Relational Algebra and Relational Calculus Doç. Dr. Mehmet Göktürk src: Elmasri & Navanthe 6E Pearson Ed Slide Set.
Oracle DML Dr. Bernard Chen Ph.D. University of Central Arkansas.
Ján GENČI PDT 2009 Systém riadenia bázy dát (Database Management System)
RELATIONAL ALGEBRA CHAPTER 6 1. LECTURE OUTLINE  Unary Relational Operations: SELECT and PROJECT  Relational Algebra Operations from Set Theory  Binary.
1 SQL-3 Tarek El-Shishtawy Professor Ass. Of Computer Engineering.
Relational Algebra – Part 2
CSC271 Database Systems Lecture # 8. Summary: Previous Lecture  Relation algebra and operations  Selection (Restriction), projection  Union, set difference,
Object Query Language (OQL) Marián Kamenišťák MFF – UK Praha
1 CS 430 Database Theory Winter 2005 Lecture 5: Relational Algebra.
SqlExam1Review.ppt EXAM - 1. SQL stands for -- Structured Query Language Putting a manual database on a computer ensures? Data is more current Data is.
1 2 Concepts of Database Management, 4 th Edition, Pratt & Adamski Chapter 2 The Relational Model 1: Introduction, QBE, and Relational Algebra.
Riyadh Philanthropic Society For Science Prince Sultan College For Woman Dept. of Computer & Information Sciences CS 340 Introduction to Database Systems.
Bezpečnosť a ochrana zdravia pri práci sa týka každého z nás. Cenná pre Vás. Prínos pre firmu. Paneurópsky prieskum verejnej mienky o ochrane zdravia a.
CSE202 Database Management Systems
The Relational Algebra and Relational Calculus
Chapter (6) The Relational Algebra and Relational Calculus Objectives
Chapter # 6 The Relational Algebra and Calculus
Relational Algebra - Part 1
Query Processing and Optimization
An Overview of Query Optimization
Yahoo! Query Language (Web Service)
Dátové štruktúry pre analýzu obrazu
Chapter 6: Relational Algebra Fall 2015 Dr. Abdullah Almutairi
3. Algoritmy a programovanie v jazyku Pascal Syntax
Elmasri/Navathe, Fundamentals of Database Systems, 4th Edition
Objektové databázy PDT Genči.
Objektové databázy PDT Genči.
Sme produkty, musíme sa predať
Prednáška 8 podprogramy typy podprogramov lokálne a globálne objekty
Motivácia Ukážky vypracovaných projektov: Projekt 1 , Projekt 2 , Projekt 3 Opakovanie HTML Kaskádové štýly alebo CSS Java Script PHP SQL Značka pre telo.
Procedurálne programovanie: 2. prednáška
Typy informácií a ich prezentácia a spracovanie
RELAČNÝ DÁTOVÝ MODEL princíp relačného dátového modelu bol prvýkrát navrhnutý E.F.Coddom Základné pojmy: RM - databáza ako množina relácií každá.
Sieťový operačný systém
Človek vo sfére peňazí ročník.
TopX Rene Fischer.
Integritné obmedzenia v SQL
Systém riadenia bázy dát Database Management System
Navrhovanie experimentov – DOE (Design of Experiment) 2
Metódy kĺzavých priemerov (MA – moving averages) - Marcel Kocifaj
ROC - Receiver Operating Characteristic
The Relational Algebra and Relational Calculus
Dvojrozmerné polia Kód ITMS projektu:
INCITES: Journal Citation Reports
The Relational Algebra
Riadenie IT Prostredia
Patrik Ort Acount Executive , Stredná Európa
Instructor: Mohamed Eltabakh
ROVINNÉ (2D) SYMBOLY DWG
Spatial database Jakub Michalko.
Tabuľky.
Je modrá veľryba najväčšia vec na svete?
Je modrá veľryba najväčšia vec na svete?
The Relational Algebra
Chapter 4 Relational Algebra
Presentation transcript:

Časť 1 Relačná algebra Slavomír Stramba 2003

Čo je relačná algebra ? Relačná algebra reprezentuje manipulačnú súčasť relačného modelu. Na reprezentáciu relácií a manipuláciu s dátami relačná algebra obsahuje 8 operátorov : Selection (selekcia) Projection (projekcia) Product (karteziánsky súčin) Union (množinové zjednotenie) Difference (množinový rozdiel) Intersection (množinový prienik) Join (spojenie) Divide (podiel)   Tieto operácie pracujú s reláciami a ich výsledkom je taktiež relácia. Prvých 5 operácii sú základné operácie, ostatné môžu byť definované pomocou nich. Relačné operácie môžu byť kombinované a navzájom vnorené. Relačná algebra je vyššou symbolickou reprezentáciou. Znalosť relačnej algebry vedie k lepšiemu pochopeniu toho, čo vykoná SRBD, keď obdrží SQL požiadavku. Relačná algebra vysvetľuje, ako sú získavané dáta z jednotlivých tabuliek. To nám môže poslúžiť na zistenie najrýchlejšieho (najefektívnejšieho) spôsobu zadania požiadavky, čo nám môže pomôcť pri optimalizácii požiadaviek.

Selekcia (horizontálna reštrikcia) Význam: vyberie špecifikované riadky (tie, pre ktoré ma podmienka operácie hodnotu true)   Formát: SELECTION table WHERE rowcondition GIVING newtable rowcondition : jednoduchá alebo zložená podmienka môže obsahovať relačné (napr. =, >, >=) alebo logické operátory

Projekcia (vertikálna reštrikcia)   Význam : vyberie z tabuľky špecifikované stĺpce Formát : PROJECT table OVER (field-list) GIVING newtable    Príklad : PROJECT PART OVER (PARTNUMB, PARTDESC) GIVING ANSWER

Join (vertikálna rekonštrukcia) Používa sa na kombinovanie dvoch relácií na základe bežného atribútu obsahujucého rovnaké hodnoty.   Formát : JOIN table1 WITH table2 WHERE table1.field = table2.field GIVING newtab    Príklad : JOIN CUSTOMER WITH SLSREP WHERE CUSTOMER.SLSRNUMB = SLSREP.SLSRNUMB GIVING ANSWER Typy Join-u : Equijoin – obsahuje podmienku na rovnosť   Natural – obsahuje len jednu kópiu spoločného atribútu   Theta - operácia JOIN s všeobecnou podmienkou spájania Podmienka spájania má formu: <podmienka> AND <podmienka> AND ... AND <podmienka> kde každá podmienka má tvar Ai  Bj, Ai je atribútom R a Bj je atribútom S, Ai aj Bj majú rovnakú doménu a  je jeden z porovnávacích operátorov {=, <, , , ,  }.   Implementácia v SQL: THETA JOIN: SELECT * FROM <tabuľka1>, <tabuľka2> WHERE <obecná_podmienka> EQUIJOIN: SELECT * FROM <tabuľka1>,<tabuľka2> WHERE <podmienka na rovnosť> NATURAL JOIN: SELECT <zoznam atribútov> FROM <tabuľka1>,<tabuľka2> WHERE <podmienka na rovnosť>

Union (zjednotenie) Formát : UNION table1 WITH table2 GIVING newtable   Význam : vyberá všetky riadky z prvej a druhej tabuľky ( tabuky musia byť kompatibilné na túto operáciu – musia obsahovať rovnaký počet stĺpcov rovnakého dátového typu a dĺžky ) Formát : UNION table1 WITH table2 GIVING newtable Príklad : Partition CUSTOMERS into NORTHWEST and NORTHEAST, potom UNION NORTHWEST WITH NORTHEAST GIVING NORTH vráti všetkých zákazníkov zo severu

Intersection (prienik) Význam : vráti riadky, ktoré patria do obidvoch tabuliek   Formát : INTERSECT table1 WITH table2 GIVING newtable Príklad : INTERSECT TABLE1 WITH TABLE2 GIVING ANSWER

Difference (rozdiel) Význam : vráti riadky, ktoré patria do prvej tabuľky a nepatria do druhej tabuľky ( tabuľky musia byť union-kompatibilné)   Formát : SUBTRACT tableB FROM tableA GIVING newtable Príklad : SUBTRACT TABLE2 FROM TABLE1 GIVING ANSWER

Product (karteziánsky súčin)   Význam : spáruje každý riadok s prvej tabuľky s každým riadkom z druhej tabuľky (iný názov : Cartesian Product) Formát : PRODUCT table1 WITH table2 GIVING newtable Príklad : Ak computer má n riadkov a employee má m riadkov, potom PRODUCT computer WITH employee GIVING ANSWER bude mať n * m riadkov

Formát : DIVIDE table1 BY table2 GIVING newtable   Význam : z prvej tabuľky vyberie tie riadky, ktoré zodpovedajú všetkým riadkom v druhej tabuľke Formát : DIVIDE table1 BY table2 GIVING newtable

Ďalšie relačné operácie (1) Nektoré bežne používané dotazy nemôžu byť vyjadrené štandardnými operáciami relačnej algebry. Preto sa zavádzajú dodatočné operácie, ktoré zvyšujú vyjadrovaciu schopnosť relačnej algebry.    Agregačné funkcie Sú operácie, ktoré sa vykonávajú nad množinou záznamov vybraných z databázy. Medzi tieto funkcie patria: ·        SUM - súčet všetkých vybraných (selektovaných) hodnôt atribútu ·        AVERAGE - priemerná hodnota všetkých vybraných (selektovaných) hodnôt atribútu ·        MAXIMUM - maximálna hodnota atribútu zo všetkých vybraných (selektovaných) hodnôt ·        MINIMUM - minimálna hodnota atribútu zo všetkých vybraných (selektovaných) hodnôt ·        COUNT - počet vybraných (selektovaných) záznamov (n-tíc)   Ďalšou častou požiadavkou je združenie záznamov podľa hodnoty niektorých jeho atribútov a aplikovanie agregačných funkcií na nezávisle na každú skupinu Všeobecne operáciu s použitím funkcie môžeme zapísať: <atribúty pre združenie>  <zoznam funkcií> (<názov relácie>) Ak nie sú špecifikované žiadne atribúty združenia, potom je funkcia aplikovaná na hodnoty atribútu nad všetkými n-ticami.

Ďalšie relačné operácie (2) Je potrebné zdôrazniť, že výsledok aplikácie agregovanej funkcie je relácia a nie skalárna hodnota, a to dokonca i vtedy, keď má len jednu hodnotu !   Príklad: 1.       <ČÍSLO_KATEDRY  COUNT <EVC, AVERAGE <PLAT (<ZAMESTNANEC) 2.        COUNT <EVC, AVERAGE <PLAT (<ZAMESTNANEC) Výsledkom prvej operácie je množina n-tíc, z ktorých každá obsahuje počet pracovníkov a ich priemerný plat. Výsledkom druhej operácie je jediná n-tica, ktorá obsahuje celkový počet zamestnancov a ich priemerný plat. Príklad: Majme reláciu deti: Výsledky: Dotaz Výsledok č. 1 9 č. 2 10 OCR MENO PRIEZVISKO VEK 1 Jana Holá 4 Ján Holý 8 Jan 5 2 Jozef Černý 3 Pažinka 10 Danko 9 Peter Melánia Pažinková Lenka 6 OCR POCET_DETI   VEK 1 3 8 2 6 10 4 9 1 SELECT count(*) FROM deti 2 SELECT max(vek) FROM deti 3 SELECT ocr,count(*) AS pocet_deti FROM deti GROUP BY ocr 4 SELECT max(vek) FROM deti GROUP BY ocr

Príklady vyjadrenia SQL požiadaviek pomocou operácií relačnej algebry

Query processing architecture

Query optimizer Využíva heuristické algoritmy na ohodnotenie výrazov relačnej algebry. Zahŕňa : odhad ceny výrazu relačnej algebry transformovanie výrazu relačnej algebry na ekvivalentné výrazy voľbu prístupových ciest (index) na vyhodnocovanie podvýrazov neoptimalizuje, len sa snaží nájsť výhodné vyhodnocovacie stratégie nájdenie optimálneho plánu môže byť veľmi náročné

Transformačné pravidlá (1) rozbitie komplexných selekcií na jednoduché : Cond1Cond2 (R)  Cond1 (Cond2 (R) ) rozbitie projekcie na úrovne : attr (R)   attr ( attr (R)), AK attr  attr komutatívnosť selekcie a projekcie attr (Cond(R))  Cond ( attr (R)), ak attr  všetkých atribútov v Cond Join komutatívnosť: R S  S R Join asociatívnosť: R (S T)  (R S) T

Transformačné pravidlá (2) Cond (R  S)  R Cond S Cond relates attributes of both R and S Reduces size of intermediate relation since rows can be discarded sooner Cond (R  S)  Cond (R)  S Cond involves only the attributes of R Reduces size of intermediate relation since rows of R are discarded sooner attr(R  S)  attr(attr (R)  S), if attributes(R)  attr  attr reduces the size of an operand of product C1 C2 C3 (R  S)  C1 (C2 (C3 (R  S) ) )  C1 (C2 (R)  C3 (S) )  C2 (R) C1 C3 (S) assuming C2 involves only attributes of R, C3 involves only attributes of S, and C1 relates attributes of R and S

Koniec Viacej informácii o optimalizáciI a súvisiacich veciach sa môžete dozvedieť zo zdrojov uvedených na hlavnej stránke.