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



Podobne dokumenty
Technologie baz danych

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

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. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

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

Technologie baz danych

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

Technologie baz danych

Relacyjne bazy danych. Podstawy SQL

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

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

Systemy GIS Tworzenie zapytań w bazach danych

Oracle11g: Wprowadzenie do SQL

Przestrzenne bazy danych Podstawy języka SQL

Wprowadzenie do baz danych

Oracle PL/SQL. Paweł Rajba.

BAZY DANYCH. Wykład 1: Wprowadzenie do baz danych. Marcin Czajkowski. Przygotowanie wykładu: Małgorzata Krętowska

P o d s t a w y j ę z y k a S Q L

Relacyjne bazy danych. Podstawy SQL

Paweł Rajba

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

Grupowanie i funkcje agregujące

SQL (ang. Structured Query Language)

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

Wykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach

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

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

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

Wykład 8. SQL praca z tabelami 5

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

Wykład 05 Bazy danych

Bazy danych. Dr inż. Paweł Kasprowski

Bazy Danych i Usługi Sieciowe

Oracle PL/SQL. Paweł Rajba.

Wykład 5. SQL praca z tabelami 2

Bazy danych 10. SQL Widoki

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Utwórz klucz podstawowy relacji na podstawie unikalnego identyfikatora encji. podstawie kluczy podstawowych wiązanych relacji.

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Laboratorium Bazy danych SQL 3 1

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

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

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

Transformacja modelu EER do postaci relacyjnego modelu danych. Zbyszko Królikowski

Wykład 2. Relacyjny model danych

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

Język SQL. Rozdział 8. Język manipulowania danymi DML

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

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

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

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

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

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

3. Podzapytania, łączenie tabel i zapytań

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

Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu

Transformacja modelu ER do modelu relacyjnego

Zaawansowane bazy danych i hurtownie danych studia zaoczne II stopnia, sem. I

Model relacyjny. Wykład II

Autor: Joanna Karwowska

Zadania z SQLa (MS SQL Server)

Bazy danych i usługi sieciowe

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

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

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

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Sylabus do programu kształcenia obowiązującego od roku akademickiego 2014/15

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

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

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia

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

Szkolenie Oracle SQL podstawy. Terminy lutego 2010 First Minute! 1100zł!

TECHNOLOGIE BAZ DANYCH

1 Wstęp do modelu relacyjnego

Microsoft SQL Server Podstawy T-SQL

Jerzy Nawrocki, Wprowadzenie do informatyki

Bazy danych i usługi sieciowe

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

Przykładowa baza danych BIBLIOTEKA

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

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

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

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

Widok Connections po utworzeniu połączenia. Obszar roboczy

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

SZKOLENIE: Administrator baz danych. Cel szkolenia

Zaawansowane bazy danych i hurtownie danych semestr I

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

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

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

Transkrypt:

Plan wykładu Bazy danych Wykład 9: Przechodzenie od diagramów E/R do modelu relacyjnego. Definiowanie perspektyw. Diagramy E/R - powtórzenie Relacyjne bazy danych Od diagramów E/R do relacji SQL - perspektywy Małgorzata Krętowska Wydział Informatyki Politechnika Białostocka 2 Diagramy ER Podstawowe elementy ERD zbiory encji encje atrybuty związki Reprezentacja danych: dwuwymiarowa tabela, zwana relacją : Atrybuty Krotki Liczności Klucze Podklasy Zbiory słabych encji Tytuł Rok Czas Rodzaj Żurek 2003 95 Kolor Kingsajz 1987 100 Kolor Seksmisja 1985 110 Kolor 3 4 Schemat relacji - nazwa relacji oraz jej zbiór atrybutów Film (,, czas, rodzaj) W modelu relacyjnym projekt składa się z jednego lub kilku schematów relacji. Zbiór schematów relacji jest określany schematem relacyjnym bazy danych lub schematem bazy danych. Krotki - wiersze relacji, poza wierszem nagłówka, zawierającym atrybuty relacji W krotce każdy atrybut ma swój odpowiednik w postaci składowej krotki : (Gwiezdne wojny, 1977, 124, kolor) Jedna krotka nie może wystąpić w relacji więcej niż jeden raz. Dziedziny -pewien określony typ elementarny, powiązany z każdym atrybutem relacji W modelu relacyjnym każda składowa każdej relacji musi mieć określony typ atomowy (elementarny) np. typ całkowity, znakowy. Wartość atrybutu nie może być ani rekordem, ani listą, ani zbiorem... : Film (,, czas, rodzaj) 5 6

Równoważne sposoby reprezentowania relacji Formalny zapis krotki Instancje Schematy i krotki relacji są zbiorami, stąd porządek w jakim je przedstawimy nie ma znaczenia. Tytuł Rok Czas Rodzaj Żurek 2003 95 Kolor Kingsajz 1987 100 Kolor Seksmisja 1985 110 Kolor Krotka - funkcja przeprowadzająca atrybuty ze schematu relacji do ich zbiorów wartości - do składowych tych krotek: -> Żurek -> 2003 czas -> 95 rodzaj -> Kolor (Żurek, 2003, 95, kolor) Rodzaj Tytuł Rok Czas Kolor Żurek 2003 95 Kolor Kingsajz 1987 100 Kolor Seksmisja 1985 110 Instancja relacji - zbiór krotek danej relacji Instancja bieżąca - zbiór krotek, które są w relacji teraz (Kolor, Żurek, 2003, 95) 7 8 Proces modelowania i implementacji bazy danych Od diagramów ERD do relacji Analiza informacji, które będą zawarte w bazie danych Diagram E/R System zarządzania relacyjną bazą danych Schemat bazy danych (Model relacyjny) Zbiory encji przekształcamy w relację z takim samym zbiorem atrybutów Związki z diagramów encji przyjmują postać relacji. Relacja danego związku R ma następujące atrybuty: dla każdego zbioru encji uczestniczącego w R umieszczamy w schemacie relacji odpowiadającej R klucze tych zbiorów jako atrybuty tej relacji jeśli związek ma własny klucz, to też dołączamy jego atrybuty do zbioru atrybutów relacji Uwaga: w przypadku powtarzania się nazw atrybutów należy zmienić ich nazwy 9 10 Związki wieloargumentowe Złożenie relacji Kontrakty Aktorzy Dopuszcza się możliwość złożenia dwóch relacji: relacji związanej z danym zbiorem encji E z relacją powstałą ze związku R wiele do jeden z E do innego zbioru encji. Studio producenta Studio aktora nazwa Studia Posiada Studia Tabela kontrakty: Klucz dla zbioru :, Klucz dla zbioru Aktorzy: nazwiskoaktora Klucz dla Studia producenta: studioproducenta Klucz dla Studia aktora: studioaktora czas rodzaj (,, czas, rodzaj) Studia (nazwa, adres) Posiada (,, nazwa) adres (,, czas, rodzaj, nazwast) Studia (nazwa, adres) 11 12

Zbiory słabych encji Relacja odpowiadająca słabemu zbiorowi encji E powinna zawierać wszystkie atrybuty, które wchodzą w skład klucza tego zbioru (tj. atrybuty ze zbioru słabego, jak też atrybuty z innych wspomagających zbiorów encji) oraz pozostałe atrybuty zbioru słabego. nazwisko Piłkarze wiek numer gra nazwa Drużyny Związki oznaczone podwójnym rombem nie tworzą oddzielnych relacji. Piłkarze (numer, nazwisko,nazwadrużyny, wiek) Drużyny (nazwadrużyny) Gra (numer, nazwadrużyny, nazwadrużyny1) Wskazują na jedną nazwę Gra jest częścią relacji Piłkarze 13 14 Trzy podejścia: Reprezentacja związków w modelu relacyjnym - podejście zorientowane obiektowo czas rodzaj zorientowane obiektowo - każda krotka należy tylko do jednej klasy; tworzenie relacji dla każdej klasy biorąc pod uwagę wszystkie jej atrybuty styl E/R - relacje są tworzone dla każdej podklasy; zawierają atrybuty kluczowe i te atrybuty, które sa powiązane z podklasą Wykorzystując NULL - należy utworzyć tylko jedną relacje; encje przyjmują wartości NULL dla tych atrybutów, które nie wchodzą w skład danego zbioru encji 15 (czas,,, rodzaj) (,, czas, rodzaj, ) (,, czas, rodzaj) -(,, czas, rodzaj, ) Dubbinguje (nazwiskoaktora,, ) Czy możemy łączyć relacje? 16 - styl E/R - wykorzystanie NULL czas rodzaj czas rodzaj (czas,,, rodzaj) (,, ) (, ) Dubbinguje (nazwiskoaktora,, ) Czy potrzebna jest relacja? Film(,, długość, rodzaj, ) (Bolek i Lolek, 1985, 10, Kolor, NULL) Dubbinguje (,, nazwiskoaktora) 17 18

Porównanie metod Tworzenie perspektyw Zapytania: Koszt zapytań związanych z wieloma relacjami jest duży, stąd podejście wykorzystujące NULL jest lepsze. Podejscie zorientowane obiektowo jest lepsze dla zapytań typu jaka jest wykorzystywana w kreskówkach trwających dłużej niż 150 minut Styl E/R jest lepszy dla zapytań typu jakie filmy z u 1999 trwały dłużej niż 150 minut Preferuje się schematy z możliwie małą liczbą relacji (E/R - 1 relacja na 1 zbiór encji; o-o - mając korzeń i n podklas otrzymujemy 2 n klas) Minimalizacja zajętości dysku: najlepsza metoda o-o; metoda NULL - w zależności od liczby elementów brakujących może być lepsza lub gorsza od metody E/R. CREATE [ OR REPLACE] VIEW nazwa_perspektywy [(kolumna1, kolumna2,...)] SELECT... Kolumna1 kolumna2... - to nazwy kolumn perspektywy, które muszą odpowiadać pozycjom z listy SELECT... Jeżeli perspektywa o takiej nazwie już istnieje, a chcemy tylko zmienić treść jej zapytania, musimy wcześniej usunąć poprzednią perspektywę lub użyć opcji OR REPLACE; w definicji perspektywy nie może wystąpić klauzula ORDER BY 19 20 Utworzyć perspektywą D10EMP zawierającą niektóre dane o pracownikach zatrudnionych w departamencie 10. Tworzenie perspektywy zawierającej funkcje grupowe i wybierającej dane z dwóch tabel: CREATE VIEW D10PRACOWNIK select id_pracownika, nazwisko, pensja where nr_departamentu=10; Odwołanie się do perspektywy jest analogiczne jak odwołanie się do zwykłej tabeli: select * from d10 pracownik order by nazwisko; CREATE VIEW dept_summary (nazwa, minpensja, maxpensja, avgpensjal) as select nazwa, min(pensja), max(pensja), avg(pensja), departament where pracownik.nr_departamentu=departament.nr_departamentu group by nazwa; nazwy kolumn w perspektywach można definiować również za pomocą aliasów w zapytaniu SELECT 21 22 Operacje DML na perspektywach Ograniczenie dostępu Perspektywy mogą służyć nie tylko do wybierania wartości, ale również do ich modyfikacji opcja WITH CHECK OPTION - pozwala na modyfikację danych przez perspektywę,ale tylko w ograniczonym zakresie. Można dodawać i modyfikować tylko takie wiersze, które następnie będą wybrane przez tą perspektywę. CREATE VIEW D10pracownik select id_pracownika, nazwisko, pensja where nr_departamentu=10; CREATE VIEW D10pracownik select id_pracownika, nazwisko, pensja where nr_departamentu=10 with check option; Aby ograniczyć użytkownikowi dostęp do jego danych pracowniczych i tylko w godzinach urzędowania firmy, można napć: CREATE VIEW pracownik_szczegoly select id_pracownika, nazwisko, stanowisko, nr_departamentu where nazwisko=user and to_char(sysdate, hh24 ) between 9 and 17 and to_char(sysdate, d ) between 2 and 6 with check option; 23 24

Ograniczenia operacji DML Usuwanie perspektywy Operacja DELETE nie jest dozwolona, jeżeli perspektywa zawiera jedno z: złączenie tabel funkcje grupowe klauzulę GROUP BY kwalifikator DISTINCT pseudokolumnę ROWNUM skorelowane podzapytanie Operacji UPDATE nie jest dozwolona, gdy: nie jest dozwolona operacja DELETE perspektywa zawiera kolumnę wyrażoną za pomocą wyrażenia (np. Sal*2) DROP VIEW nazwa_perspektywy rozkaz ten powoduje usunięcie definicji perspektywy z bazy danych nie narusza wierszy i kolumn bo są one trzymane w tabelach, na których perspektywa była oparta pozostawienie innych perspektyw i aplikacji bazujących na usuniętej perspektywie powoduje błąd perspektywa może być usunięta przez swojego właściciela lub administratora Operacja INSERT nie jest dozwolona, gdy: kolumna obowiązkowa ( NOT NULL) nie jest wybierana przez perspektywę. 25 26 Perspektywy w zapytaniach Dla każdego departamentu podać nazwiska tych pracowników, którzy zarabiają mniej niż średnia wartość pensji w ich departamencie. Tworzymy perspektywę: Create view avg_pensja as select nr_departamentu, avg(pensja) srednia group by nr_departamentu; Zapytanie główne: select nazwisko, avg_pensja where pracownik.nr_departamentu=avg_pensja.nr_departamentu and pensja<srednia; 27