RBD Relacyjne Bazy Danych



Podobne dokumenty
Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Algebra relacji. nazywamy każdy podzbiór iloczynu karteziańskiego D 1 D 2 D n.

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Autor: Joanna Karwowska

RBD Relacyjne Bazy Danych Więzy realcji

1 Wstęp do modelu relacyjnego

Model relacyjny. Wykład II

Model relacyjny. Wykład II

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Teoretyczne podstawy informatyki

BAZY DANYCH algebra relacyjna. Opracował: dr inż. Piotr Suchomski

Tadeusz Pankowski Relacyjne bazy danych. są podstawą zachodniej cywilizacji

Technologie baz danych

Bazy danych. Dr inż. Paweł Kasprowski

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe

Wykład 6. SQL praca z tabelami 3

Bazy danych Algebra relacji Wykład dla studentów matematyki

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA

3. Podzapytania, łączenie tabel i zapytań

Bazy danych wykład drugi. Konrad Zdanowski

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

Technologie baz danych

Bazy danych wykład dwunasty. dwunasty Wykonywanie i optymalizacja zapytań SQL 1 / 36

Plan wykładu: Operacje relacji: suma, przekrój, różnica, złączenia proste, iloczyn kartezjański, złączenia teta.

SQL Structured Query Language

Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

Rozpatrzymy bardzo uproszczoną bazę danych o schemacie

Wykład XII. optymalizacja w relacyjnych bazach danych

Bazy danych. Algebra relacji

Przestrzenne bazy danych Podstawy języka SQL

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

Podstawowe zapytania SELECT (na jednej tabeli)

Operacja Teta-złączenia. v1 v1 Θ v2

Relacyjny model danych

Bazy Danych egzamin 9 luty, 2012 rozwiazania

Podstawy języka SQL cz. 2

Systemy GIS Tworzenie zapytań w bazach danych

Systemy baz danych. Notatki z wykładu

Bazy danych. Informacje podstawowe

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Złaczenia tablic: FROM, WHERE, JOIN

Wprowadzenie do języka SQL

Wprowadzenie do baz danych

TEORETYCZNE PODSTAWY INFORMATYKI

Algebra relacji - rozwiązania zadań. Zadania

Bazy Danych. SQL Podstawy języka II: zapytania. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

TEORETYCZNE PODSTAWY INFORMATYKI

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel

Obliczenia arytmetyczne. Konkatenacja pól. Aliasy kolumn. Aliasy tabel. Co dalej? Rozdział 4. Korzystanie z funkcji. Zastosowanie funkcji

Aliasy Select p.first_name, p.salary, j.job_title from employees p, jobs j where p.job_id=j.job_id;

PLAN WYKŁADU BAZY DANYCH ETAPY PRZETWARZANIA ZAPYTANIA OPTYMALIZACJA ZAPYTAŃ

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Semantyka rachunku predykatów

Bazy danych i usługi sieciowe

Wykład 5. SQL praca z tabelami 2

Rachunki relacji. Rachunki relacji. RRK Relacyjny Rachunek Krotek

Grupowanie i funkcje agregacji

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

Złączenie CROSS JOIN jest to tzw. złączenie krzyżowe, którego ogólna postać wygląda następująco:

Bazy Danych. Model Relacyjny. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Automatyzacja Ćwicz. 2 Teoria mnogości i algebra logiki Akademia Morska w Szczecinie - Wydział Inżynieryjno-Ekonomiczny Transportu

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Optymalizacja w relacyjnych bazach danych - wybór wydajnej strategii obliczania wyrażenia relacyjnego.

- Dla danego zbioru S zbiór wszystkich jego podzbiorów oznaczany symbolem 2 S.

SQL (ang. Structured Query Language)

Autor: Joanna Karwowska

Optymalizacja zapytań. Proces przetwarzania i obliczania wyniku zapytania (wyrażenia algebry relacji) w SZBD

Systemy algebraiczne. Materiały pomocnicze do wykładu. przedmiot: Matematyka Dyskretna 1 wykładowca: dr Magdalena Kacprzak

SZKOLENIE: Administrator baz danych. Cel szkolenia

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Podzapytania. SELECT atrybut_1, atrybut_2,... FROM relacja WHERE atrybut_n operator (SELECT atrybut_1, FROM relacja WHERE warunek

Relacyjny model danych

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

Oracle11g: Wprowadzenie do SQL

Wypisujemy nazwiska pracowników o numerach równych 100 lub 500. SELECT DISTINCT Nazwisko FROM Pracownik WHERE NrPrac IN (100,500);

Fazy przetwarzania zapytania zapytanie SQL. Optymalizacja zapytań. Klasyfikacja technik optymalizacji zapytań. Proces optymalizacji zapytań.

Projektowanie relacyjnych baz danych

Bazy danych 2. Wykład 4 Structured Query Language (SQL)

Metalogika (1) Jerzy Pogonowski. Uniwersytet Opolski. Zakład Logiki Stosowanej UAM

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa. Studia Podyplomowe dla Nauczycieli

Wykład 2. Relacyjny model danych

Autor: Joanna Karwowska

Relacyjne bazy danych. Podstawy SQL

050 SQL ELEMENTY ZAAWANSOWANE. Prof. dr hab. Marek Wisła

Podstawowy kurs z systemów baz danych / Jeffrey D. Ullman, Jennifer Widom. - wyd Gliwice, cop Spis treści.

Bazy Danych i Usługi Sieciowe

Relacyjne bazy danych. Podstawy SQL

Microsoft SQL Server Podstawy T-SQL

Wstęp do programowania 2

Transkrypt:

Wykład 7 RBD Relacyjne Bazy Danych Bazy Danych - A. Dawid 2011 1

Selekcja σ C (R) W wyniku zastosowania operatora selekcji do relacji R powstaje nowa relacja T do której należy pewien podzbiór krotek relacji R. Operator selekcji wybiera krotki do relacji wynikowej według kryterium okreslonego przez pewien warunek C narzucony na atrybuty relacji R. Warunek C określa zależność wyboru między atrybutem a elementem należącym do dziedziny tego atrybutu. (<,>,=,<=,>=,<>) Warunek selekcji C może być złożony z kilku warunków połączonych operatorami logicznymi. C=C1 AND C2 C=C1 OR C2 Bazy Danych - A. Dawid 2011 2

Selekcja MySQL mysql> select * from osoba; +----+----------+-------------+------+ Nr Imie Nazwisko wiek +----+----------+-------------+------+ 7 Tomasz Kowalski 24 8 Jan Nowak 24 9 Anna Znicz 28 10 Marta Kowalska 24 11 Tomasz Mazuriewicz 32 12 Waldemar Nawrot 41 +----+----------+-------------+------+ mysql> select * from osoba where Imie='Tomasz'; +----+--------+-------------+------+ Nr Imie Nazwisko wiek +----+--------+-------------+------+ 7 Tomasz Kowalski 24 11 Tomasz Mazuriewicz 32 +----+--------+-------------+------+ mysql> select * from osoba where Imie='Tomasz' AND wiek=24; +----+--------+----------+------+ Nr Imie Nazwisko wiek +----+--------+----------+------+ 7 Tomasz Kowalski 24 +----+--------+----------+------+ Bazy Danych - A. Dawid 2011 3

Selekcja MySQL mysql> select * from osoba where Nazwisko='Kowalski' OR Nazwisko='Kowalska'; +----+--------+----------+------+ Nr Imie Nazwisko wiek +----+--------+----------+------+ 7 Tomasz Kowalski 24 10 Marta Kowalska 24 +----+--------+----------+------+ mysql> select * from osoba where NOT (Nazwisko='Kowalski' OR Nazwisko='Kowalska' ); +----+----------+-------------+------+ Nr Imie Nazwisko wiek +----+----------+-------------+------+ 8 Jan Nowak 24 9 Anna Znicz 28 11 Tomasz Mazuriewicz 32 12 Waldemar Nawrot 41 +----+----------+-------------+------+ Bazy Danych - A. Dawid 2011 4

Złączenia Połączenie realcji R i S przez tworzenie par krotek, które w jakiś sposób odpowiadją sobie. Złączenia są podzbiorem iloczynu kartezjańskiego R x S. Typy złączeń: 1)Naturalne 2)Wewnętrzne 3)Zewnętrzne Bazy Danych - A. Dawid 2011 5

Złączenie naturalne Jeżeli relacja R i S mają identycznie nazwaną część atrybutów to do nich stosuje się złaczenie naturalne N(R)={A1,A2,...,An,B1,B2,...,Bk} N(S)={B1,B2,...,Bk,C1,C2,...,Cm} N(R >< S)={A1,A2,...,An,B1,B2,...,Bk,C1,C2,...,Cm} Zostają tylko te krotki dla których spełniony jest warunek równozłączenia r R s S Dla i : r(bi)=s(bi) przy i: 1 i k Wówczas t R S : t( A, A2,..., An, B1, B2,..., Bk, C1, C2,..., C 1 m ) Bazy Danych - A. Dawid 2011 6

MySQL naturalne złączenie mysql> select * from R; A1 B1 B2 a1 b1 b1 a1 b1 b2 a2 b2 b1 mysql> select * from S; B1 B2 C1 b1 b1 c1 b1 b2 c1 b2 b2 c2 b2 b1 c3 mysql> select * from R natural join S; ------+ B1 B2 A1 C1 ------+ b1 b1 a1 c1 b1 b2 a1 c1 b2 b1 a2 c3 ------+ mysql> select * from S natural join R; ------+ B1 B2 C1 A1 ------+ b1 b1 c1 a1 b1 b2 c1 a1 b2 b1 c3 a2 ------+ Bazy Danych - A. Dawid 2011 7

Złączenie naturalne Dzielą się na lewostronne i prawostronne. W standardzie SQL realizowane są przez instrukcje natural left join oraz natural right join. Brak odpowiedniego przypisania wynikającego ze części wspólnej skutkuje pojawieniem się wartości NULL, czyli pustego elementu. Bazy Danych - A. Dawid 2011 8

MySQL naturalne złączenie lewo i prawostronne mysql> select * from R; A1 B1 B2 a1 b1 b1 a1 b1 b2 a2 b2 b1 mysql> select * from R natural left join S; ------+ B1 B2 A1 C1 ------+ b1 b1 a1 c1 b1 b2 a1 c1 b2 b1 a2 c3 ------+ mysql> select * from S; B1 B2 C1 b1 b1 c1 b1 b2 c1 b2 b2 c2 b2 b1 c3 mysql> select * from R natural right join S; ------+ B1 B2 C1 A1 ------+ b1 b1 c1 a1 b1 b2 c1 a1 b2 b2 c2 NULL b2 b1 c3 a2 ------+ Bazy Danych - A. Dawid 2011 9

MySQL naturalne złączenie obustronne mysql> select * from R; A1 B1 B2 a1 b1 b1 a1 b1 b2 a2 b2 b1 mysql> select * from S; B1 B2 C1 b1 b1 c1 b1 b2 c1 b2 b2 c2 b2 b1 c3 mysql> select * from R full join S; ------+------+------+ A1 B1 B2 B1 B2 C1 ------+------+------+ a1 b1 b1 b1 b1 c1 a1 b1 b2 b1 b1 c1 a2 b2 b1 b1 b1 c1 a1 b1 b1 b1 b2 c1 a1 b1 b2 b1 b2 c1 a2 b2 b1 b1 b2 c1 a1 b1 b1 b2 b2 c2 a1 b1 b2 b2 b2 c2 a2 b2 b1 b2 b2 c2 a1 b1 b1 b2 b1 c3 a1 b1 b2 b2 b1 c3 a2 b2 b1 b2 b1 c3 ------+------+------+ Bazy Danych - A. Dawid 2011 10

Dzielenie Niech relacje R i S mają nagłowki odpowiednio N(R)={A 1,A 2,...A k-1,a k,a k+1,...,an} N(S)={A k-1,a k,a k+1 } N( S) N( R) Relacja T=R S o nagłówku N(T)=N(R)-N(S) jest rezultatem dzielenia R przez S, jeżeli T zawiera dokładnie te krotki t, dla których spelniony jest warunek: R[A k-1,a k,a k+1 ]=S[A k-1,a k,a k+1 ] Oraz warunek rzutowania π N(T) (R) Bazy Danych - A. Dawid 2011 11

Dzielenie R A B C 1 aa 3 2 ab 2 3 ab 2 1 ba 2 S1 C 2 R S1 A B 2 ab 3 ab 1 ba 2 ab 3 S1 R S1 C A B 2 2 ab 3 3 ab 1 aa 1 ba Bazy Danych - A. Dawid 2011 12

Operacje zależne Przecięcie R S = R ( R S) Złączenia warunkowe R C S = σ C ( R S) Złączenia naturalne R S przy warunku C: = π N ( R) ( σ C ( R S)) R.A1=S.A1 AND R.A2=S.A2 AND... AND R.An=S.An Bazy Danych - A. Dawid 2011 13

Logika relacji Zapytania do baz danych można opisywać obok formalizmu algebraicznego także za pomocą formalizmu logiki (1977) Datalog (database logic) (David Maier) Składa się z reguł jeśli - to s W datalogu relacje zapisuje się w postaci symboli zwanych predykatami Zapis w którym występuje nazwa predykatu oraz jego argumenty nazywa się atomem. Funkcja logiczna P( x, x2,..., x 1 n ) Bazy Danych - A. Dawid 2011 14

Logika relacji Przykład A B 2 a 3 a 1 b Predykat R(1,b) = TRUE R(2,a) = TRUE R(1,a) = FALSE s Argumentami predykatu mogą być zarówno stałe, jak i zmienne. Przy zmiennych argumentach wartość funkcji logicznej wyliczna jest kaskadowo. Funkcja R(x,y) należy do relacji R gdy spełnia warunek (A=1 AND B= a ) OR (A=3 AND B= a ) OR (A=1 AND B= b ) Bazy Danych - A. Dawid 2011 15

Logika relacji Atomy arytmetyczne Atomy w których występuje porównanie dwóch wyrażeń arytmetycznych nazywamu atomami arytmetycznymi Przykład x + 1 y + 2 s z Operacje w Datalogu, których wynik jest taki sam jak wynik odpowiedniej operacji w algebrze relacji, są przedstawiane w postaci reguł Bazy Danych - A. Dawid 2011 16

Reguły składają się z: 1. Atomu relacji 2. Symbolu 3. Treści s Przykład reguły z datalogu Logika relacji StaraOsoba(I,N) osoba(imie,nazwisko,wiek,nr) AND wiek > 65 StaraOsoba(I, N) jest PRAWDĄ tylko wtedy, gdy w relacji osoba występuje taka krotka, że a) Jej pierwsze dwie składowe (dla atrybutów Imie i Nazwisko) są równe odpowiednio I oraz N b) Trzecia składowa jest mniejsza od 65 c) Pozostałe skladowe maja dowolne wartości StaraOsoba=π Imie,Nazwisko (σ wiek>65 (osoba)) Bazy Danych - A. Dawid 2011 17

Logika relacji Odpowiednik z algebry realcji StaraOsoba=π Imie,Nazwisko (σ wiek>65 (osoba)) W formalizmie Datalogu zapytanie jest zbiorem złożonym z jednej lub więcej reguł. s Działanie wszystkich operatorów algebry relacji można przedstawić równoważnie w postaci jednej lub kilku reguł Datalogu. Bazy Danych - A. Dawid 2011 18

Logika relacji Przecięcie Przecięcie dwóch relacji można przedstawić jako regułę, w ktorej występują podzadania odpowiadające relacjom z tymi samymi zmiennymi jako argumentami. T(r,i,n,w) R(r,i,n,w) AND S(r,i,n,w) Suma s Suma dwóch relacji opisywana jest przez dwie reguły T(r,i,n,w) R(r,i,n,w) T(r,i,n,w) S(r,i,n,w) Bazy Danych - A. Dawid 2011 19

Logika relacji Różnica Róznicę w Datalogu zapisujemy w postaci jednej reguły z jednym negowanym podzadaniem. T(r,i,n,w) R(r,i,n,w) AND NOT S(r,i,n,w) s Rzutowanie T(i,n) R(r,i,n,w) Selekcja T(r,i,n,w) R(r,i,n,w) AND w>10 AND i= Tomek Bazy Danych - A. Dawid 2011 20

Logika relacji Iloczyn kartezjański Iloczyn kartezjański dwoch relacji R x S można wyrazić przez jedną regułę w notacji Datalogu P(a,b,c,d,w,x,y,z) R(a,b,c,d) AND S(w,x,y,z) s Złączenie naturalne J(a,b,c,d) R(a,b) AND S(b,c,d) Bazy Danych - A. Dawid 2011 21