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



Podobne dokumenty
Technologie baz danych

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

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. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

Bazy danych i usługi sieciowe

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

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

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

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. Plan wykładu. Zalenoci funkcyjne. Wykład 4: Relacyjny model danych - zalenoci funkcyjne. SQL - podzapytania A B

PODZAPYTANIE (SUBSELECT)

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

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

3. Podzapytania, łączenie tabel i zapytań

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

TECHNOLOGIE BAZ DANYCH

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

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

Grupowanie i funkcje agregujące

Technologie baz danych

Autor: Joanna Karwowska

SQL (ang. Structured Query Language)

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

Autor: Joanna Karwowska

BAZY DANYCH model związków encji. Opracował: dr inż. Piotr Suchomski

Podstawowe zapytania SELECT (na jednej tabeli)

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

Laboratorium Bazy danych SQL 3 1

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

Wykład 8. SQL praca z tabelami 5

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

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

Bazy Danych egzamin poprawkowy, 2012 rozwiazania

Wprowadzenie do baz danych

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

1. Mapowanie diagramu klas na model relacyjny.

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

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

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

Materiały szkoleniowe. Podstawy języka SQL

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

Wprowadzenie do baz danych

Bazy Danych egzamin 9 luty, 2012 rozwiazania

Podstawy języka SQL cz. 2

Wykład 2. Relacyjny model danych

Projektowanie baz danych

Autor: Joanna Karwowska

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

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

Technologie baz danych WYKŁAD 7: Wyjątki

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Podzapytania. Podzapytania nieskorelowane i skorelowane

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING

Oracle11g: Wprowadzenie do SQL

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Modelowanie danych. Model związków-encji

PLAN WYKŁADU BAZY DANYCH GŁÓWNE ETAPY PROJEKTOWANIA BAZY MODELOWANIE LOGICZNE

Plan wykładu: Etapy projektowania bazy danych. Modelowanie danych za pomocą diagramów związków encji:

Przygotowanie do egzaminu. część I

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Wykład XII. optymalizacja w relacyjnych bazach danych

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Relacyjny model baz danych, model związków encji, normalizacje

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

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

Wykład II Encja, atrybuty, klucze Związki encji. Opracowano na podstawie: Podstawowy Wykład z Systemów Baz Danych, J.D.Ullman, J.

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

Grupowanie i funkcje agregacji

Teoretyczne podstawy informatyki

Paweł Rajba

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach

Bazy Danych i Usługi Sieciowe

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

Model relacyjny. Wykład II

Podzapytania do tabel W miejscu w którym możemy użyć nazwy tabeli, możemy użyć podzapytania

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

Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Bazy danych. Wykład 4: Model SERM. dr inż. Magdalena Krakowiak

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty

Bazy Danych i Usługi Sieciowe

Projektowanie relacyjnych baz danych model związków encji (Entity-Relationship, ER)

Oracle PL/SQL. Paweł Rajba.

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Zadania z SQLa (MS SQL Server)

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

Transformacja modelu ER do modelu relacyjnego

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

Autor: Joanna Karwowska

Baza danych sql. 1. Wprowadzenie

Projektowanie Systemów Informacyjnych

W tym modelu wszystkie dane przechowywane są w jednym arkuszu, tabeli, pliku.

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

Tworzenie projektu bazy danych z kreatorem odnośników - Filmoteka. Projekt tabel dla bazy Filmoteka

Wykład 5 Fizyczne projektowanie bazy danych (Paul Beynon-Davies, Systemy baz danych )

Technologia informacyjna

Transkrypt:

Plan wykładu 2 BAZY DANYCH Wykład 4: Diagramy związków encji (ERD). SQL podzapytania. Małgorzata Krętowska Wydział Informatyki Politechnika Białostocka Diagramy związków encji elementy ERD liczności związków podklasy klucze zbiory słabych encji SQL podzapytania 3 Proces modelowania i implementacji bazy danych Analiza informacji, które będą zawarte w bazie danych System zarządzania relacyjną bazą danych 4 Elementy ERD Diagram związków encji - Entity-Relationship Diagram E/R (ERD) Zbiory encji Encja - rozróżnialny obiekt Zbiór encji (typ encji) - zbiór podobnych encji Zbiór encji (typ encji) Diagram E/R Schemat bazy danych (Model relacyjny) Wykładowca Krętowska Małgorzata Oniśko Agnieszka Sosnowski Zenon... Encje (Instancje danego typu encji)

5 Elementy ERD Atrybuty - informacje opisujące encję Imię Nazwisko 6 Elementy diagramu E/R Związki - powiązania pomiędzy dwiema lub większą liczbą encji (zbiorów encji) PRACOWNIK Encja1 Nazwa związku Encja2 Id Przykład Baza danych filmów Przykład Baza danych filmów 7 8 Występuje Występuje Posiada Potop Żurek Kingsajz Kingsajz Seksmisja Daniel Olbrychski Katarzyna Figura Katarzyna Figura Jerzy Stuhr Jerzy Stuhr

Przykład Baza danych filmów Liczność związków encji 9 10 N:N Posiada Występuje 1:N Posiada Potop Żurek Kingsajz Seksmisja Studio1 Studio2 Studio1 Studio3 1:1 Kieruje Prezesi Związki wieloargumentowe Role w związkach 11 12 Przykład Studio, które podpisało kontrakt z aktorem może podpisać kontrakt z innym studiem po to, by umożliwić aktorowi udział w filmie. Reprezentacja związku: (studio1, studio2, aktor, film) Studio producenta Studio aktora Reprezentacja w postaci trzech wartości: (studio, aktor, film) Role studia: producent filmu właściciel aktora

Atrybuty związku 13 Gdzie umieścić wynagrodzenie aktora? 14 Przesunięcie atrybutu do zbioru encji wynagrodzenie wynagrodzenie Gaże Przekształcanie w związki binarne Podklasy w ERD 15 Związek kontrakty: (studio1, studio2, film, aktor) 16 Podklasa = specjalny przypadek = mniej encji = więcej własności Przykład: Kreskówki i kryminały to podklasy filmów Studio producenta Studio aktora do aktorów stworzenie dodatkowego zbioru encji, którego elementy traktuje się tak samo jak krotki zbioru związków dla związku wieloargumentowego (łączący zbiór encji) stworzenie związków wiele do jeden ze zbioru łączącego do poszczególnych zbiorów encji wchodzących w skład pierwotnego związku wieloargumentowego dubbinguje Kreskówki isa isa Kryminały broń

Podklasy i dziedziczenie w ERD Klucze 17 Zakładając, że C jest podklasą klasy D na diagramach E/R należy: wprowadzić pomiędzy zbiorami encji C i D specjalny typ związku isa ( an A is a B ) - wierzchołek trójkąta wskazuje klasę nadrzędną wszystkie atrybuty i związki, które odnoszą się wyłącznie do encji C są doczepione do prostokąta oznaczającego C atrybuty i związki, które opisują zarówno C jak i D są doczepione do prostokąta oznaczającego D. Dziedziczenie w ERD: encje można oglądać jako złożone ze składowych, które należą do różnych zbiorów encji, stanowiących części hierarchii isa składowe te są powiązane w całość związkiem isa encja ma te wszystkie atrybuty, które należą do którejkolwiek składowej oraz wchodzi we wszystkie związki, w które są włączone jej składowe 18 Klucze - atrybuty lub zbiory atrybutów, które jednoznacznie identyfikują encję wewnątrz zbioru encji. W zbiorze encji nie mogą występować dwie encje, które miałyby identyczne wartości atrybutów tworzących klucz. Atrybuty, które wchodzą w skład klucza na diagramach ER są podkreślone. W hierarchii isa, tylko zbiór encji z klasy nadrzędnej (korzeń drzewa) może zawierać klucz, który jednoznacznie identyfikuje encje również w podklasach. Każdy zbiór encji musi mieć zdefiniowany klucz. 19 Zbiory słabych encji Zbiory słabych encji - zbiory encji, dla których niektóre lub wszystkie atrybuty klucza wybiera się z innego zbioru encji. Przykład: Mamy dwa zbiory encji: Piłkarze (, wiek) oraz Drużyny (). Jak można zdefiniować klucz dla zbioru encji Piłkarze? Piłkarze wiek numer gra zbiór słabych encji - prostokąt o podwójnych krawędziach Drużyny związki łączące ten zbiór z innymi to związki wiele do jeden - romby o podwójnych krawędziach 20 Wymagania dla zbiorów słabych encji Jeżeli E jest zbiorem słabych encji, wów zbiór encji F, który dostarcza atrybutów klucza do E, musi pozostawać z E w pewnym związku R oraz Związek R musi być binarny, typu wiele do jeden z E do F Atrybuty wchodzące w skład klucza E a pochodzące z F muszą być częścią klucza w F Jeżeli zbiór F jest zbiorem słabym, to kluczowe atrybuty z F przekazywane do E mogą pochodzić z pewnego innego zbioru encji, z którym F jest powiązany poprzez związek typu wiele do jednego. Uogólniając: jeżeli zbiór encji jest oznaczony podwójną ramką, to musi być słaby. Jego klucz składa się z tych jego własnych atrybutów, które są podkreślone oraz atrybutów klucza tych zbiorów encji, z którymi zbiór słaby jest połączony przez związki typu wiele do jeden, a które oznaczono podwójnymi krawędziami.

SQL Podzapytania Podzapytania skorelowane Operator EXISTS Podzapytania Podzapytanie - polecenie SELECT zagnieżdżone w innym poleceniu SELECT. Umożliwia konstruowanie zapytania odwołującego się do wartości wybranych przez inne polecenie SELECT. 21 Przykład: SELECT kolumna1, kolumna2,... FROM tabela WHERE kolumna = (SELECT kolumna FROM tabela WHERE warunek) 22 Podzapytania zwracające jeden wiersz Wynikiem jest pojedynczy wiersz. Przykład: Znaleźć pracowników z pensją równą minimalnemu zarobkowi w firmie. Co należy robić po kolei? 1. Znajdujemy minimalną pensję: SQL> select min(pensja) from pracownik; MIN(PENSJA) ---------- 800 2. Znajdujemy pracowników o pensji równej wartości obliczonej w pierwszym ku: select, stanowisko, pensja from pracownik where pensja =<wynik poprzedniego zapytania> 23 Podzapytania zwracające jeden wiersz Wstawiając zapytanie 1 do 2, otrzymujemy: SQL> select, stanowisko, pensja from pracownik where pensja =(select min(pensja) from pracownik); stanowisko pensja ---------- --------- ---------- SMITH CLERK 800 Przebieg wykonania zapytania: realizacja zapytania wewnętrznego na podstawie wartości zwróconej przez blok wewnętrzny przetwarzany jest blok główny zapytania W przypadku zapytań zwracających jeden wiersz mogą być stosowane zwykłe operatory porównania: =, >, <=,... 24

Sygnalizacja błędów Operatory ANY i ALL Co się stanie, jeżeli podzapytanie zwraca więcej niż jeden wiersz a w warunku zostanie użyty operator do porównywania jednego wyniku? SQL> select, pensja, nr_departamentu from pracownik where pensja = (select min(pensja) from pracownik group by nr_departamentu); where pensja = (select min(pensja) from pracownik group by nr_departamentu) * BŁĄD w linii 2: ORA-01427: jednowierszowe podzapytanie zwraca więcej niż jeden wiersz Podobnie jeżeli podzapytanie nie zwróci żadnego Opearatory ANY i ALL można stosować w podzapytaniach zwracających więcej niż jeden wiersz. Wykorzystuje się je w klauzulach WHERE I HAVING łącznie z operatorami porównywania (=;!=; <; >; <=; >=) Operator ANY powoduje akceptację (spełnienie warunku) po stwierdzeniu zgodności wyrażenia z którąkolwiek z wartości zwracanych przez podzapytanie 25 26 wiersza. Podzapytania - wskazówki Wewnętrzne zapytanie musi być ujęte w nawiasy i musi występować po prawej stronie warunku W podzapytaniu nie wolno stosować klauzuli ORDER BY. Obowiązuje zasada jednej klauzuli ORDER BY dla całego polecenia SELECT. Jeśli jest potrzebna umieszczamy ją jako ostatnią Kolumny występujące na liście wyboru wewnętrznego zapytania muszą występować w kolejności zgodnej z kolejnością kolumn ujętych w nawiasy warunku zapytania głównego. Musi 27 również występować zgodność co do liczby i typu kolumn wybieranych w bloku wewnętrznym i kolumn Podzapytania zwracające wiele atrybutów Znaleźć pracowników o pensjach z listy najniższych zarobków osiąganych w departamentach. SQL> select, pensja, nr_departamentu from pracownik where pensja in (select min(pensja) from pracownik group by nr_departamentu); pensja nr_departamentu ---------- ---------- ---------- SMITH 800 20 JAMES 950 30 MILLER 1300 10 28

29 Podzapytania zwracające wiele atrybutów W jaki sposób można uzyskać informacje o pracownikach zarabiających najmniej w ich departamentach? (Metoda 1) SQL> select, pensja, nr_departamentu from pracownik where (pensja,nr_departamentu) in (select min(pensja), nr_departamentu from pracownik group by nr_departamentu); pensja nr_departamentu ---------- ---------- ---------- SMITH 800 20 JAMES 950 30 MILLER 1300 10 Uwagi WHERE (kolumna1, kolumna 2...) = (SELECT kol1, kol2...) kolumny w bloku zewnętrznym powinny być ujęte w nawiasy i oddzielone przecinkami powinna być zgodność co do liczby i typu kolumn wybieranych w bloku wewnętrznym i kolumn bloku zewnętrznego porównywanych z nimi 30 Podzapytania skorelowane W jaki sposób można uzyskać informacje o pracownikach zarabiających najmniej w ich departamentach? (Metoda 2) SQL> select, pensja, nr_departamentu from pracownik e where pensja = (select min(pensja) from pracownik where e.nr_departamentu=pracownik.nr_departamentu group by nr_departamentu); pensja nr_departamentu ---------- ---------- ---------- SMITH 800 20 JAMES 950 30 MILLER 1300 10 31 Podzapytania skorelowane uwagi Każdy wiersz proponowany przez zapytanie główne przechodzi próbę warunku wyrażonego za pomocą zapytania skorelowanego, w którym występuje odwołanie do wartości kolumn tego wiersza. Wykonanie SELECT z podzapytaniem skorelowanym: pobranie wiersza przez zewnętrzne zapytanie wykonanie wewnętrznego zapytania na podstawie 32 wartości z pobranego w pkt 1. Wiersza zaakceptowanie bądź odrzucenie wiersza na

Podzapytania w klauzuli HAVING Zagnieżdżanie zapytań Wybrać te departamenty, których średnie zarobki przekraczają średni zarobek departamentu 30. Select nr_departamentu, avg(pensja) from pracownik group by nr_departamentu having avg(pensja) >(select avg(pensja) from pracownik where nr_departamentu=30); Znaleźć stanowisko pracy, na którym są najwyższe średnie zarobki. 33 Select stanowisko, avg(pensja) from pracownik Znaleźć pracowników, których zarobki przekraczają najwyższą pensję z departamentu SALES. SQL> select, stanowisko, data_zatrudnienia, pensja from pracownik where pensja> (select max(pensja) from pracownik where nr_departamentu= stanowisko data_zatrudnienia pensja ---------- --------- -------- ---------- JONES MANAGER 81/04/02 2975 SCOTT ANALYST 87/04/19 3000 KING PRESIDENT 81/11/17 5000 FORD ANALYST 81/12/03 3000 (select nr_departamentu from departament where = SALES')); 34 Operator EXISTS W przypadku zapytań skorelowanych ami nie interesuje nas wynik zapytania, ale jedynie czy wiersz o zadanych przez nas warunkach istnieje. Wów wykorzystujemy operator EXISTS. EXISTS (podzapytanie) - zwraca true jeżeli podzapytanie zwróci przynajmniej jeden wiersz NOT EXISTS(podzapytanie) zwraca true jeżeli podzapytanie nie zwróci żadnego wiersza 35