Dzielenie relacyjne / Relational Division

Slides:



Advertisements
Podobne prezentacje
G.Broda Helsinki 20-22, September 2010
Advertisements

Paweł Solon PRESENTS Jagiellonian Uniwersity Jagiellonian university Jagiellonian university in Krakow was the second university to be founded in Central.
Projekt Do kariery na skrzydłach – studiuj Aviation Management Projekt współfinansowany ze ś rodków Europejskiego Funduszu Społecznego. Biuro projektu:
Usługi sieciowe Wykład 9 VPN
Statistics – what is that? Statystyka dla gimnazjalistów.
Projekt Do kariery na skrzydłach – studiuj Aviation Management Projekt współfinansowany ze ś rodków Europejskiego Funduszu Społecznego. Biuro projektu:
Projekt Do kariery na skrzydłach – studiuj Aviation Management Projekt współfinansowany ze ś rodków Europejskiego Funduszu Społecznego. Biuro projektu:
Projekt Do kariery na skrzydłach – studiuj Aviation Management Projekt współfinansowany ze ś rodków Europejskiego Funduszu Społecznego. Biuro projektu:
Projekt Do kariery na skrzydłach – studiuj Aviation Management Projekt współfinansowany ze ś rodków Europejskiego Funduszu Społecznego. Biuro projektu:
Projekt Do kariery na skrzydłach – studiuj Aviation Management Projekt współfinansowany ze ś rodków Europejskiego Funduszu Społecznego. Biuro projektu:
Sun altitude Made by: Patryk Cichy Patryk Cichy Mateusz Dąbrowicz Mateusz Dąbrowicz Mariusz Król Mariusz Król Mariusz Dyrda Mariusz Dyrda Group leader:
Wstęp do geofizycznej dynamiki płynów. Semestr VI. Wykład
Grupowanie wielowymiarowe w MS SQL
Legal Clinics in Poland Summary of the academic year 2004/2005 activity.
Copyright for librarians - a presentation of new education offer for librarians Agenda: The idea of the project Course content How to use an e-learning.
YOUTH in Gdynia. YOUTH: step 1 – Recruitment (December 2007) Szkoła Podstawowa nr 21 Szkoła Podstawowa nr 6 Szkoła Podstawowa nr 12 Gimnazjum nr 15 Towarzystwo.
In Katowice Providence Project meeting Poland, Katowice, 8th of June 2010.
Software Engineering 0. Information on the Course Leszek J Chmielewski Faculty of Applied Informatics and Mathematics (WZIM) Warsaw University of Life.
Team Building Copyright, 2003 © Jerzy R. Nawrocki Requirements Engineering Lecture.
SEED MONEY FACILITY Strategia UE dla regionu Morza Bałtyckiego IV posiedzenie Zespołu roboczego ds. koordynacji wdrażania Strategii UE dla regionu Morza.
JET PUMPS introduction POMPY STRUMIENIOWE wstęp
Ministerstwo Gospodarki Poland'sexperience Waldemar Pawlak Deputy Prime Minister, Minister of Economy March 2010.
Język definicji danych (Data Definition Language)
Język definicji danych (Data Definition Language)
Polaryzacja światła.
Creating Public Value Lazarski School of Commerce and Law May, 2011 Edward T. Jennings, Jr. University of Kentucky Martin School of Public Policy and Administration.
„Tworzenie aplikacji sieciowych w języku Java”
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Threads Prezentacja.
POLSKA SZKOŁA PODSTAWOWA IM. LECHA BĄDKOWSKIEGO W LUZINIE
MS SQL SERVER udział w rynku. Source: Gartner Dataquest (May 2006) Company Market Share (%) Market Share (%) Growth (%) Oracle6, ,
The school volunteer club 1 / 19 Wolontariat XII 2006r. Gimnazjum im. Ks. W. Rabczyńskiego w Wasilkowie
Projekt "Zagraniczna mobilność szkolnej kadry edukacyjnej w ramach projektów indywidualnych współfinansowany przez Unię Europejską w ramach środków Europejskiego.
Volleyball Polish national sport.
XXVII Liceum Ogólnokształcące im. Tadeusza Czackiego w Warszawie easy - creative - effective ICT in Czacki | Marcin Stanowski | XXVII LO im T. Czackiego.
1 Office for supporting social initiatives BORIS.
Granty i Fundacje w Polsce. Granty naukowe Unii Europejskiej.
Contents About Kujawiak dance About Kuyavia S. Strzeleckis Kujawiak notes Kuyavias coat of arms Song Quiz.
Rozproszone transakcje z wykorzystaniem usługi Service Broker w SQL Server 2008 R2 Andrzej Ptasznik.
Kosmologia realistyczna Marek Kutschera 05 V 2009 IPJ.
MARCIN JAKUBOWSKI.
______________________________________ TARGU-JIU 2010.
Theory of Computer Science - Basic information
Comenius The Great Wonders of Europe The Polish school is called … is called …
- For students (12 questions) - For parents (6 questions) - For grandparents (6 questions)
TVP SA Odział w Łodzi Łódź ul. Narutowicza 13 TVP Łódź the Year of anniversary – it is already 55 years together.
BLOOD DONATION.
Język SQL – przypomnienie
The educational project: „ HIGH SCHOOL EXAM - WE WILL BE ABLE!”
POLAND. we will take you on a journey during which you will learn something about us.
Wacław Sierpiński.
Stakeholder Analysis Lazarski University May, 2011 Edward T. Jennings, Jr. University of Kentucky Martin School of Public Policy and Administration.
Uczenie w sieciach Bayesa
I L.O. im. Mikołaja Kopernika in Bielsko-Biała The following presentation has been created within the confines of Socrates- Comenius Programme Teaching.
Teksty prymarne (original texts) to teksty autentyczne, nie są przeznaczone dla celów dydaktycznych; teksty adaptowane (simplified/adapted texts)są przystosowane.
NEW MODEL OF SCHOOL HEADS PREPARATION, INDUCTION AND CONTINUING PROFESSIONAL DEVELOPMENT IN POLAND Roman Dorczak, Grzegorz Mazurkiewicz   Jagiellonian.
I am sorry, but I can’t go out with you
A presentation made by Nicole Moulds form class 6B.
legend
The legend of amber Reda, Poland 2010.
INSTYTUT METEOROLOGII I GOSPODARKI WODNEJ INSTITUTE OF METEOROLOGY AND WATER MANAGEMENT THE USE OF COSMO LM MODEL FOR AVIATION METEOROLOGICAL SERVICE IN.
Struktura przedsiębiorstwa SAP Best Practices. ©2014 SAP SE or an SAP affiliate company. All rights reserved.2 Obszar rachunku kosztów 1000 Dane te są.
POLISH FOR BEGINNERS.
2 Review What is bionomial nomenclature Explain What is a genus
Wydział Elektroniki Kierunek: AiR Zaawansowane metody programowania Wykład 6.
Running Dictation Activity to Engage Students in Reading, Writing, Listening, and Speaking.
EMPOWEREMENT IN ICT SKILLS. I CREATED MY WEBSITE TO USE IT FOR TEACHING.
CSIC 5011 Mini-Project 1:Principle Component Analysis on Finance Data
Connecticut Core Standards for English Language Arts & Literacy
Previously discusses: different kinds of variables
1.2.4 Hess’s Law.
Zapis prezentacji:

Dzielenie relacyjne / Relational Division Bazy i hurtownie danych TWO1 2009/2010 https://ophelia.cs.put.poznan.pl/webdav/ dbdw/students/dbdw-winter_2009-10/ Based on: V.M. Matos, R. Grasser, Assessing performance of the relational division operator. Data Base Management

Bazy i hurtownie danych Relational Division The basic operators of the relational algebra: Union (UNION) Difference (MINUS) Cartesian product Projection & selection (SELECT ... FROM...) Additional operators added to the relational algebra: Join  most popular in practice Rename (renaming fields) Intersection Division 7/11/2009 Bazy i hurtownie danych

Bazy i hurtownie danych Relational Division The division operator is less common than select-project-join queries, however, it is applicable to many common queries: Find students who have taken all the core source courses Find customers who have ordered all items from a given line of products The division operator can be also employed in data mining algorithms (e.g., generation of association rules) 7/11/2009 Bazy i hurtownie danych

Bazy i hurtownie danych Informal Definition The division operator allows verifying whether or not a candidate subject is related to each of the values held in the base set. The base set is called the divisor (or denominator T2[B]), and the table holding the subject’s data is called the dividend (or nominator T1[A, B]). The expression T1[A, B]/T2[B] selects the A values from the dividend table T1[A, B], whose B values are a superset of those B values held in the divisor table T2[B]. 7/11/2009 Bazy i hurtownie danych

Bazy i hurtownie danych Informal Definition 7/11/2009 Bazy i hurtownie danych

Formal Definition: Relational Algebra Let’s assume that the numerator table T1 always consists of two columns A and B, and the denominator has only one B attribute. Then, the expression T1[A, B]/T2[B] is semantically equivalent to: T1[A, B]/T2[B] = T1[A] – ((T1[A] × T2[B]) – T1[A, B])[A] 7/11/2009 Bazy i hurtownie danych

Formal Definition: Relational Algebra 7/11/2009 Bazy i hurtownie danych

Formal Definition: Tuple-calculus Using relational tuple-calculus language, the division operator can be rephrased as follows: T1[A, B]/T2[B] = { t1[A] / t1  T1 and for-all t2 (t2  T2  exists t3 (t3  T1 and (t1[A] = t3[A]) and (t2[B] = t3[B]))) } 7/11/2009 Bazy i hurtownie danych

Bazy i hurtownie danych SQL Implementation: Q0 SELECT A FROM T1 WHERE B IN (SELECT B FROM T2) GROUP BY A HAVING COUNT(*) = (SELECT COUNT(*) FROM T2) 7/11/2009 Bazy i hurtownie danych

Bazy i hurtownie danych SQL Implementation: Q1 Byzanthyne approach Based on the formal predicate calculus definition modified to fit SQL: The universal quantifier for-all x (f(x)) replaced by not exists x (not f(x)) The implication X  Y replaced by (not(X) or Y) T1[A, B]/T2[B] = { t1[A] / t1  T1 and not exists t2 (not(not( t2  T2) or (exists t3 (t3  T1 and (t1[A] = t3[A]) and (t2[B] = t3[B]))))) } 7/11/2009 Bazy i hurtownie danych

Bazy i hurtownie danych SQL Implementation: Q1 Previous definition is equivalent (De Morgan’s law) to: T1[A, B]/T2[B] = { t1[A] / t1  T1 and not exists t2 (( t2  T2) and (not exists t3 (t3  T1 and (t1[A] = t3[A]) and (t2[B] = t3[B])))) } 7/11/2009 Bazy i hurtownie danych

Bazy i hurtownie danych SQL Implementation: Q1 SELECT DISTINCT x.A FROM T1 AS x WHERE NOT EXISTS (SELECT * FROM T2 y FROM T1 AS z WHERE (z.A=x.A) AND (z.B=y.B))) 7/11/2009 Bazy i hurtownie danych

Bazy i hurtownie danych SQL Implementation: Q2 Based on the algebraic definition of the division operator and broken into two steps: SELECT DISTINCT y.A, z.B INTO T3 FROM T1 AS y, T2 AS z WHERE NOT EXISTS (SELECT * FROM T1 WHERE (T1.A = y.A) AND (T1.B=z.B)) SELECT DISTINCT A FROM T3 WHERE (T3.A=T1.A)) 7/11/2009 Bazy i hurtownie danych

Bazy i hurtownie danych SQL Implementation: Q3 Similar to Q0, with GROUP BY and HAVING replaced by join: SELECT DISTINCT x.A FROM T1 AS x WHERE (SELECT COUNT(*) FROM T2) = (SELECT COUNT(*) FROM T1, T2 WHERE (T1.A=x.A) AND (T1.B=T2.B)) 7/11/2009 Bazy i hurtownie danych

Bazy i hurtownie danych Zero Division The divide operator is defined in such a way that T1[A,B]\T2[B] produces exactly all A values in T1 each time that T2[B] is either empty or has a zero selectivity with respect to T1[A,B]. An empty set would be a more appropriate answer  this is how Q0 works. 7/11/2009 Bazy i hurtownie danych

Bazy i hurtownie danych Experiment Conduct an experiment with the following settings: number of A-values in T1 = 10 000, number of B-values in T1 = 100, number of B-values in T2 = 20, 40, 60, 80, 100. Create appropriate script generating data samples, implement the four queries (Q0…Q3) and test their performance (execution time). Collect the observations in a tabular and graphical form and describe the results. 7/11/2009 Bazy i hurtownie danych

Checking Execution Time Turn SET STATISTICS TIME on (Tools  Options) 7/11/2009 Bazy i hurtownie danych

Generacja zbiorów danych (1) CREATE PROCEDURE [dbo].[FILL_TABLES] @B_COUNT int AS BEGIN BEGIN TRY BEGIN TRANSACTION DELETE FROM T1 DELETE FROM T2 DECLARE @A int DECLARE @B int SET @A = 1 WHILE @A <= 10000 SET @B = 1 WHILE @B <= 100 INSERT INTO T1 VALUES( 'a' + CAST(@A AS varchar(10)), 'b' + CAST(@B AS varchar(10))) SET @B = @B + 1 END SET @A = @A +1 Procedura wypełniająca danymi tablice T1 i T2. Procedura zakłada, że kolumny A i B w obu tablicach są typu VARCHAR. Jedynym parametrem procedury jest liczba rekordów w tablicy T2. W tej wersji wykorzystano jawną obsłguę transakcji (BEGIN ... COMMIT ... ROLLBACK TRANSACTION) wraz z obsługą wyjątków (TRY ... CATCH ...). Nie jest to konieczne dla poprawnego działania procedury, ale poprawia jej efektywność. CREATE PROCEDURE [dbo].[FILL_TABLES] @B_COUNT int AS BEGIN BEGIN TRY BEGIN TRANSACTION DELETE FROM T1 DELETE FROM T2 DECLARE @A int DECLARE @B int SET @A = 1 WHILE @A <= 10000 SET @B = 1 WHILE @B <= 100 INSERT INTO T1 VALUES( 'a' + CAST(@A AS varchar(10)), 'b' + CAST(@B AS varchar(10))) SET @B = @B + 1 END SET @A = @A +1 WHILE @B <= @B_COUNT INSERT INTO T2 VALUES('b' + CAST(@B AS varchar(10))) COMMIT TRANSACTION END TRY BEGIN CATCH IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION END CATCH SET STATISTICS TIME ON SET STATISTICS IO ON 7/11/2009 Bazy i hurtownie danych

Generacja zbiorów danych (2) SET @B = 1 WHILE @B <= @B_COUNT BEGIN INSERT INTO T2 VALUES('b' + CAST(@B AS varchar(10))) SET @B = @B + 1 END COMMIT TRANSACTION END TRY BEGIN CATCH IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION END CATCH SET STATISTICS TIME ON SET STATISTICS IO ON 7/11/2009 Bazy i hurtownie danych

Poprawianie efektywności procedury Po dyskusji na temat sensowności wykorzystania BEGIN ... COMMIT TRANSACTION, która miała miejsce na ostatnich zajęciach, sprawdziłem ich wpływ na efektywność procedury (czas jej wykonania). Sprawdziłem 2 warianty procedury – z BEGIN... COMMIT TRANSACTION (wariant 1) i bez (wariant 2). Każdy wariant uruchomiłem 10 razy i sprawdzałem czasy wykonania. Wyniki (wartość średnia i odchylenie standardowe w sekundach) podane są w poniższej tabeli. Wariant 1 Wariant 2 CPU TIME ELAPSED TIME AVERAGE 41.1 43.5 107.4 446.3 STDEV 11.9 12.0 1.6 20.8 Na podstawie tych wyników wydaje się więc, że warto zastosować BEGIN ... END TRANSACTION – łączny czas wykonania procedury (ELAPSED TIME) skraca sie 10-krotnie. 7/11/2009 Bazy i hurtownie danych