Bazy danych. Plan wykładu. Zalenoci funkcyjne. Wykład 4: Relacyjny model danych - zalenoci funkcyjne. SQL - podzapytania A B

Podobne dokumenty
Bazy danych. Plan wykładu. Podzapytania - wskazówki. Podzapytania po FROM. Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych.

Bazy danych. Plan wykładu. Definicja zalenoci funkcyjnych. Zalenoci funkcyjne. Wykład 4: Relacyjny model danych - zalenoci funkcyjne.

Bazy danych. Plan wykáadu. Zale*noci funkcyjne. Wykáad 4: Relacyjny model danych - zale*noci funkcyjne. A B

Bazy danych. Plan wykáadu. Powtórzenie BCNF i 3NF. Nowa forma redundancji. Wykáad 6: Postaci normalne. SQL - zapytania záo*one.

Technologie baz danych

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

Bazy danych. Plan wykładu. Podstawy modeli relacyjnych. Diagramy ER. Wykład 3: Relacyjny model danych. SQL

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

Technologie baz danych

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

Bazy danych. Plan wykładu. Pierwsza posta normalna. Druga posta normalna. Wykład 7: Sprowadzanie do postaci normalnych. DDL, DML

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

Bazy danych. Plan wykładu. Operacje w algebrze relacji. Pojcie algebry relacji. Wykład 8: Algebra relacji. SQL - cd

3. Podzapytania, łączenie tabel i zapytań

Bazy danych. Plan wykładu. Dekompozycja relacji. Anomalie. Wykład 5: Projektowanie relacyjnych schematów baz danych. SQL - funkcje grupujce

Plan wykładu. Elementy ERD BAZY DANYCH. Proces modelowania i implementacji bazy danych. Diagramy związków encji. SQL podzapytania

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

PODZAPYTANIE (SUBSELECT)

Materiały szkoleniowe. Podstawy jzyka SQL. Prowadzcy Anna Pijanowska - Kunierz Paweł ołnierczyk

Plan wykładu. Problemy w bazie danych. Problemy w bazie danych BAZY DANYCH. Problemy w bazie danych Przykład sprowadzenia nieznormalizowanej SQL

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS.

Technologie baz danych

Bazy danych. Plan wykładu. Przetwarzanie zapyta. Etapy przetwarzania zapytania. Wykład 12: Optymalizacja zapyta. Etapy przetwarzanie zapytania

Bazy danych Podstawy teoretyczne

TECHNOLOGIE BAZ DANYCH

Bazy danych. Plan wykáadu. Proces modelowania i implementacji bazy danych. Elementy ERD

Bazy Danych i Usługi Sieciowe

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

BAZY DANYCH. Anomalie. Rozkład relacji i normalizacja. Wady redundancji

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

Bazy danych i usługi sieciowe

Bazy danych 6. Podzapytania i grupowanie. P. F. Góra

SQL (ang. Structured Query Language)

Plan wykładu. Reguły asocjacyjne. Przykłady asocjacji. Reguły asocjacyjne. Jeli warunki to efekty. warunki efekty

Bazy danych. Plan wykładu. Złczenia tabel. Perspektywy cd. Wykład 9: Programowanie aplikacji baz danych po stronie serwera. Sekwencje Wyzwalacze

Zadania SELECT do schematu EDS (EMP, DEPT, SALGRADE)

Materiały szkoleniowe. Podstawy języka SQL

Pojęcie zależności funkcyjnej

Bazy danych 8. Podzapytania i grupowanie. P. F. Góra

Bazy danych wykład trzeci. trzeci Modelowanie schematu bazy danych 1 / 40

Bazy danych SQL. Wstp. SQL (Structured( Query Language) strukturalny jzyk zapyta

Wprowadzenie do baz danych

Podstawowe zapytania SELECT (na jednej tabeli)

Konstruowanie Baz Danych Wprowadzenie do projektowania. Normalizacja

Normalizacja. Pojęcie klucza. Cel normalizacji

Grupowanie i funkcje agregacji

Wymagania: Konstrukcja prostych zapytań w języku SQL, umiejętność wykorzystania funkcji wierszowych i agregujących.

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

Bazy Danych egzamin poprawkowy, 2012 rozwiazania

Podstawy języka SQL cz. 2

Grupowanie i funkcje agregujące

KaŜdemu atrybutowi A przyporządkowana jest dziedzina Dom(A), czyli zbiór dopuszczalnych wartości.

Systemy GIS Tworzenie zapytań w bazach danych

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

Instrukcja obsługi programu Pilot PS 5rc

Plan wykładu. Problemy w bazie danych. Problemy w bazie danych BAZY DANYCH

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

Laboratorium Bazy danych SQL 3 1

Systemy baz danych. Notatki z wykładu

Bazy danych wykład trzeci. trzeci Przekształcenie modelu ER na model relacyjny 1 / 19

Plan wykładu: Relacyjny model danych: opis modelu, podstawowe pojęcia, ograniczenia, więzy.

Zależności funkcyjne

Paweł Rajba

Opera Wykorzystanie certyfikatów niekwalifikowanych w oprogramowaniu Opera wersja 1.1 UNIZETO TECHNOLOGIES SA

Egzamin z baz danych 3 lutego 2012 Zadania i omówienie rozwi za«

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

Cel normalizacji. Tadeusz Pankowski

Zasady transformacji modelu DOZ do projektu tabel bazy danych

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

Autor: Joanna Karwowska

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

Relacji między tabelami klucze obce. Schemat bazy danych, wczytanej z pliku create_tables.sql. Klucz obcy jako ograniczenie dla kolumny

Wybór EUROPEAN będzie rozpoznawał dzień przed miesiącem, natomiast US miesiąc przed dniem.

Bazy Danych i Usługi Sieciowe

Bazy danych. Plan wykładu. Przetwarzanie zapytań. Etapy przetwarzania zapytania. Translacja zapytań języka SQL do postaci wyrażeń algebry relacji

Wykład 8. SQL praca z tabelami 5

Projektowanie Systemów Informacyjnych

BAZY DANYCH model relacyjny. Opracował: dr inż. Piotr Suchomski

Wstp. Warto przepływu to

Przestrzenne bazy danych Podstawy języka SQL

Wprowadzenie do języka SQL

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

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

geometry a w przypadku istnienia notki na marginesie: 1 z 5

Wykład XII. optymalizacja w relacyjnych bazach danych

KLASYCZNE ZDANIA KATEGORYCZNE. ogólne - orzekaj co± o wszystkich desygnatach podmiotu szczegóªowe - orzekaj co± o niektórych desygnatach podmiotu

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

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

Bazy danych Teoria projektowania relacyjnych baz danych. Wykła. Wykład dla studentów matematyki

Bazy danych. Plan wykładu. Klucz wyszukiwania. Pojcie indeksu. Wykład 8: Indeksy. Pojcie indeksu - rodzaje indeksów

Ćwiczenie zapytań języka bazy danych PostgreSQL

Normalizacja relacyjnych baz danych. Sebastian Ernst

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Zależności funkcyjne c.d.

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

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

1) Grafy eulerowskie własnoci algorytmy. 2) Problem chiskiego listonosza

Transkrypt:

Plan wykładu Bazy danych Wykład 4: Relacyjny model danych - zalenoci funkcyjne. SQL - podzapytania Definicja zalenoci funkcyjnych Klucze relacji Reguły dotyczce zalenoci funkcyjnych Domknicie zbioru atrybutów SQL - podzapytania Małgorzata Krtowska Katedra Oprogramowania e-mail: mmac@ii.pb.bialystok.pl Bazy danych (studia zaoczne) 2 Definicja zalenoci funkcyjnych Zalenoci funkcyjne Zaleno funkcyjna: B Interpretacja: jeli dwie krotki relacji R s zgodne dla atrybutów,,.., A n (tzn. obie krotki maj takie same wartoci składowych dla wymienionych atrybutów), to musz by równie zgodne w pewnym innym atrybucie B. Odczyt zapisu:,,..., A n okrelaj funkcyjnie B Jeli zbiór atrybutów,,..., A n okrela funkcyjnie wicej ni jeden atrybut tzn. B 1 B 2 B 3 To taki zbiór zalenoci skrótowo przedstawiamy jako: B 1 B 2 B 3 Bazy danych (studia zaoczne) 3 x y A Jeli x i y s zgodne dla atrybutów A A B B To musz by zgodne równie dla atrybutów B Bazy danych (studia zaoczne) 4

Klucze relacji Atrybut lub zbiór atrybutów {,,..., A n } tworzy klucz relacji, jeli: wszystkie pozostałe atrybuty relacji s funkcyjnie zalene od tych atrybutów => nie moe by sytuacji, w której dwie róne krotki relacji R zgodne dla wszystkich atrybutów,,..., A n. Nie istnieje taki podzbiór właciwy zbioru {,,..., A n }, od którego pozostałe atrybuty relacji R s zalene funkcyjnie, tzn. klucz musi by minimalny Nadklucze Nadklucz - zbiór atrybutów, który zawiera klucz Kady klucz jest nadkluczem Klucze w diagramach E/R nie spełniaj wymagania (2) Bazy danych (studia zaoczne) 5 Bazy danych (studia zaoczne) 6 Reguły wykrywania kluczy w relacji Reguła 1 Jeli relacja pochodzi z przekształcenia zbioru encji, to jej kluczem s atrybuty kluczowe tego zbioru encji Reguła 2 (dotyczy zwizków binarnych) Jeli zwizek jest typu wiele do wiele, to klucze obu zbiorów encji objtych zwizkiem tworz zbiór atrybutów klucza R jeli zwizek ze zbioru encji E1 do zbioru encji E2 jest typu wiele do jeden, to atrybuty klucza E1 staj si kluczem R, ale atrybuty klucza E2 nie wchodz do klucza relacji R. Jeli zwizek jest typu jeden do jeden, to atrybuty klucza któregokolwiek ze zbiorów mog by kluczem R. W tej sytuacji nie ma tylko jednego klucza. Klucze relacyjne i E/R Klucze w ERD s atrybutami encji Klucze w relacjach s atrybutami krotek Zazwyczaj, jedna krotka odpowiada jednej encji, wówczas idea jest taka sama W niewłaciwie skonstruowanych relacjach, jedna encja moe by opisana przez kilka krotek, wówczas klucze w diagramach E/R i relacjach bd si róniły. Bazy danych (studia zaoczne) 7 Bazy danych (studia zaoczne) 8

Reguły dotyczce zalenoci funkcyjnych Zasady podziału i łczenia Zasady, które pozwalaj na zastpowanie zbioru zalenoci funkcyjnych zbiorami równowanymi lub na dołczanie do zbioru tych zalenoci, które wynikaj ze zbioru pocztkowego. Reguła podziału Zaleno funkcyjn B 1 B 2... B m moemy zastpi zbiorem zalenoci funkcyjnych B i, gdzie i=1,2,...,m Wyróniamy nastpujce reguły: reguła łczenia reguła podziału reguła przechodnioci Reguła łczenia Zbiór zalenoci funkcyjnych B i, gdzie i=1,2,...,m moemy zastpi pojedyncz zalenoci funkcyjn B 1 B 2... B m Bazy danych (studia zaoczne) 9 Bazy danych (studia zaoczne) 10 Zalenoci trywialne Domknicie zbioru atrybutów Zaleno funkcyjna B jest trywialna, jeli B jest równe któremu z A tytuł rok tytuł Mówimy, e zaleno B 1 B 2... B m jest: trywialna - jeli zbiór złoony z atrybutów typu B jest podzbiorem zbioru atrybutów typu A nietrywialna - jeli co najmniej jeden z atrybutów typu B znajduje si poród atrybutów A całkowicie nietrywialna - jeli aden z atrybutów typu B nie znajduje si poród atrybutów typu A Atrybuty, które wystpuj równoczenie z prawej i lewej strony zawsze mona pomin po prawej tronie, std prawdziwe jest twierdzenie (reguła zalenoci trywialnych) Zaleno funkcyjna B 1 B 2... B m jest równowana zalenoci C 1 C 2... C K, gdzie C s tymi elementami z B, które nie s równe A. Bazy danych (studia zaoczne) 11 Załoenia: {,,..., A n } - zbiór atrybutów S - zbiór zalenoci funkcyjnych Domkniciem zbioru {,,..., A n } nad zbiorem zalenoci S nazywamy taki zbiór atrybutów B, e jeli pewna relacja R spełnia wszystkie zalenoci ze zbioru S, to spełnia take zaleno... A n B, a zatem zaleno... A n B wynika z S. Domknicie zbioru atrybutów {,,..., A n } oznaczamy przez {,,..., A n } +. Bazy danych (studia zaoczne) 12

Algorytm obliczania domknicia zbioru atrybutów {,,..., A n } Przykład Niech X oznacza nazw zbioru domknicia. Na pocztku X= {,,..., A n }. Znajdujemy tez wszystkie zalenoci funkcyjne postaci B 1 B 2...B m C gdzie B 1 B 2...B m nale do zbioru X, a C nie naley. Wówczas dołczamy C do zbioru X. X + Y B Nowy X + Powtarzamy krok 2 tak długo, jak długo nie bdzie mona dołczy do X adnego nowego atrybutu. Jeli ju adnego atrybutu nie mona dołczy do X, to znaczy, e otrzymalimy domknicie zbioru {,,..., A n } + Bazy danych (studia zaoczne) 13 Bazy danych (studia zaoczne) 14 Cel Domknicie i klucze Majc dane domknicie zbioru atrybutów {,,..., A n } moemy sprawdzi, czy dana zaleno funkcyjna wynika ze zbioru zalenoci S. Jeli B naley do {,,..., A n } + to oznacza, e wynika z S. B Zbiór {,,..., A n } + zawiera wszystkie atrybuty relacji R wtedy i tylko wtedy, gdy elementy,,..., A n s nadkluczem w R. Stwierdzenie, czy atrybuty,,..., A n stanowi klucz relacji, moe polega na sprawdzeniu: czy wszystkie atrybuty R nale do zbioru {,,..., A n } + czy X + otrzymane z dowolnego X, który utworzymy przez usunicie choby jednego elementu sporód,,..., A n, nie zawiera wszystkich atrybutów R Przykład: Relacja Filmy(tytuł, rok, czas, rodzaj, nazwastudia, adresstudia) Uzasadni, e kluczem jest zbiór (tytuł, rok) tytuł rok nazwastudia nazwastudia adresstudia Bazy danych (studia zaoczne) 15 Bazy danych (studia zaoczne) 16

Reguła przechodnioci SQL Reguła przechodnioci umoliwia kaskadowe łczenie zalenoci: jeli w relacji R zachodz zalenoci B 1 B 2... B m oraz B 1 B 2... B m C 1 C 2...C k, to w relacji R zachodzi take zaleno C 1 C 2...C k. Złczenia tabel Podzapytania Podzapytania skorelowane Opearator EXISTS Uzasadnienienie powyszej reguły => wyliczenie domknicia {,,..., A n } +. Bazy danych (studia zaoczne) 17 Bazy danych (studia zaoczne) 18 Powtórzenie z grupowania danych Powizanie tabeli samej ze sob Czy ponisze zapytania s poprawne: select job, max(sal) from emp; Powizanie tabeli samej ze sob jest moliwe dziki zastosowaniu aliasu tabeli. Warunek łczenia odbywa si w taki sposób, jakby to były dwie oddzielne tabele: FROM tabela alias1 tabela alias2 select dname, avg (sal) from emp, dept where dept.deptno=emp.deptno group by dname, dept.deptno select deptno, job, avg(sal) where min(sal)>1000 group by deptno, job; Bazy danych (studia zaoczne) 19 Bazy danych (studia zaoczne) 20

Podzapytania Podzapytanie - polecenie SELECT zagniedone w innym poleceniu SELECT. Umoliwia konstruowanie zapytania odwołujcego si do wartoci wybranych przez inne polecenie SELECT. Przykład: SELECT kolumna1, kolumna2,... FROM tabela WHERE kolumna = (SELECT kolumna FROM tabela WHERE warunek) Uwagi WHERE (kolumna1, kolumna 2...) = (SELECT kol1, kol2...) kolumny w bloku zewntrznym powinny by ujte w nawiasy i oddzielone przecinkami powinna by zgodno co do liczby i typu kolumn wybieranych w bloku wewntrznym i kolumn bloku zewntrznego porównywanych z nimi Bazy danych (studia zaoczne) 21 Bazy danych (studia zaoczne) 22 Podzapytania skorelowane uwagi Kady wiersz proponowany przez zapytanie główne przechodzi prób warunku wyraonego za pomoc zapytania skorelowanego, w którym wystpuje odwołanie do wartoci kolumn tego wiersza. Operatory ANY i ALL Opearatory ANY i ALL mona stosowa w podzapytaniach zwracajcych wicej ni jeden wiersz. Wykorzystuje si je w klauzulach WHERE I HAVING łcznie z operatorami porównywania (=;!=; <; >; <=; >=) Wykonanie SELECT z podzapytaniem skorelowanym: pobranie wiersza przez zewntrzne zapytanie wykonanie wewntrzngo zapytania na podstawie wartoci z pobranego w pkt 1. Wiersza zaakceptowanie bd odrzucenie wiersza na podstawie wyniku zapytania z pkt 2. Powtórzenie akcji opisanych wyej, a do wyczerpania wszystkich wierszy proponowanych przez zapytanie zewntrzne. Bazy danych (studia zaoczne) 23 Operator ANY powoduje akceptacj (spełnienie warunku) po stwierdzeniu zgodnoci wyraenia z którkolwiek z wartoci zwracanych przez podzapytanie Operator ALL słuy do porównania z wszystkimi wartociami zwracanymi przez podzapytanie Przed operatorami ANY i ALL mona stosowa zaprzeczenie - NOT Bazy danych (studia zaoczne) 24

Podzapytania w klauzuli HAVING Wybra te departamenty, których rednie zarobki przekraczaj redni zarobek departamentu 30. Select deptno, avg(sal) from emp group by deptno having avg(sal) >(select avg(sal) from emp where deptno=30); Znale stanowisko pracy, na którym s najwysze rednie zarobki. Select job, avg(sal) from emp group by job having avg(sal) =(select max(avg(sal)) from emp group by job); Bazy danych (studia zaoczne) 25