Relacyjny Model Danych

Slides:



Advertisements
Podobne prezentacje
Indeksy w bazie danych Oracle
Advertisements

Modelowanie logiczne (dla relacyjnych SZBD)
Procedury wyzwalane Procedura wyzwalana (ang. trigger) - stanowi kod użytkownika przechowywany wewnątrz bazy i uruchamiany w określonych sytuacjach np.
INDEKSY I SORTOWANIE ZEWNĘTRZNE
Relacyjny model danych
SQL – Strukturalny język zapytań
Relacyjny model danych
WPROWADZENIE DO BAZ DANYCH
MS Access 2000 Normalizacja Paweł Górczyński 2005.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 7: Relacje i ograniczenia integralnościowe Język definiowania danych - DDL (Data Definition.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 9: Język manipulowania danymi DML (Data Manipulation Language)
Bazy Danych Wprowadzenie
SQL – Structured Query Language (2)
Język definicji danych (Data Definition Language)
Język definicji danych (Data Definition Language)
SQL-owskie szlaki górskie
POWTÓRZENIE Metodologia : Pojęcia:
Wprowadzenie do systemów baz danych
Projektowanie fizycznej bazy danych
WYKONYWANIE ZAPYTAŃ Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka.
Modele baz danych - spojrzenie na poziom fizyczny
Bazy Danych Wykład 1 S. Kozielski.
Relacyjny model danych
Język SQL (Structured Query Language) DDL (Data Definition Language)
Projektowanie struktury logicznej (schematu) relacyjnych baz danych
Teoria relacyjnych baz danych
Bazy Danych II prowadzący: mgr inż. Leszek Siwik
OPERACJA DZIELENIA W SQL
SQL – zapytania posumowanie
DIAGRAMY ER 2 (ENTITY-RELATIONSHIP DIAGRAMS 2) Ćwiczenia 2.
SQL – Structured Query Language (3)
Bazy danych.
SQL – Structured Query Language (1)
dr hab. Ryszard Walkowiak prof. nadzw.
Andrzej Macioł Bazy danych – model relacyjny – cz. 1 Andrzej Macioł
SQL - Structured Query Language
Rozwiązanie zadań do zaliczenia I0G1S4 // indeks
Jak zacząć w MS SQL? USE master; GO IF DB_ID (Nbaza') IS NOT NULL DROP DATABASE baza; GO CREATE DATABASE baza; GO USE baza; GO.
Wybrane zagadnienia relacyjnych baz danych
Model relacyjny.
Bazy danych 1 Literatura: Paul Benon-Davies – Systemy baz danych
SQL – część II.
Projektowanie bazy danych
Łódź 2008 Banki danych WYKŁAD 2 dr Łukasz Murowaniecki T-109.
Temat 1: Strukturalny język zapytań SQL
1 SBD, L.Banachowski Podstawy SQL - języka relacyjnych i obiektowo-relacyjnych baz danych (SQL2, SQL'1999, Oracle) Powtórzenie wyk ł adu 3.
Systemy Baz Danych Wykład III
Temat 3: Integralność danych. Integralność danych, określana również mianem spójności danych, jest to funkcja SZBD, która gwarantuje, że dane nie zostaną.
Michał Krawczykowski kl. IIIB
Definiowanie kluczy w tabelach RBD
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
1 SBD, L.Banachowski Zaawansowane cechy SQL Powtórzenie wyk ł adu 5.
Autor: Damian Urbańczyk
Projektowanie relacyjnych baz danych – diagramy związków encji
1 SBD, L.Banachowski Oprogramowanie strony serwera cz. 1 Powtórzenie wyk ł adu 6.
Komendy SQL do pracy z danymi
Relacja (ang.relation) Po podzieleniu danych na tabele i zdefiniowaniu pól kluczy podstawowych trzeba wprowadzić do systemu bazy danych informacje na temat.
Wykład 3 Prowadzący: dr Paweł Drozda. Użytkownik bazy danych – osoba lub aplikacja, mająca dostęp do części danych zgromadzonych w bazie Uprawnienia –
Modelowanie model związków encji
Bazy Danych Wprowadzenie
BAZY DANYCH Microsoft Access Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i.
Temat: Tworzenie bazy danych
Transformacja modelu EER do modelu relacyjnego
Nieprawidłowo zaprojektowana tabela
Strukturalny język zapytań SQL - historia
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Technologie Informacyjne Bazy danych
Własności relacji: Baza danych jest zbiorem relacji, o następujących własnościach: każda relacja w bazie danych jest jednoznacznie określona przez swoją.
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

Relacyjny Model Danych Wykład 2 Prowadzący: dr Paweł Drozda

Definicja danych Relacja – dwuwymiarowa tabela, jedyna struktura danych w modelu relacyjnym Każda relacja posiada atrybuty – kolumny. Opisują dane umieszczane w relacji Schemat relacji – nazwa relacji wraz z atrybutami Przykład schematu: Miasto (id, nazwa, id_regionu) Krotki – wiersze relacji zawierające dane. Każdy atrybut ma swój odpowiednik w krotce dr P. Drozda

Cechy relacji jednoznaczna nazwa relacji jednoznaczne nazwy kolumn (atrybutów) relacji ten sam typ wartości w jednej kolumnie porządek kolumn w relacji nieistotny niedozwolone powtórzenia wierszy nieistotny porządek wierszy (krotek) wartości atomowe w polach relacji dr P. Drozda

Przykłady STUDENCI spełnia reguły ZALICZENIA nie spełnia reguł Nr_indeksu Nazwisko Imię Adres 1234 Kowalski Jan Akacjowa 8 2134 Nowak Piotr Dębowa 4 4321 Maliniak Stefan Bukowa 4 3298 Grabowska Janina Brzozowa 1 spełnia reguły ZALICZENIA Id_indeksu Ocena Przedmiot 1234 (1234), (3214) 5 Bazy danych 3211 (3211), (4327) b. dobry nie spełnia reguł dr P. Drozda

Definicja danych – klucze główne każda relacja musi posiadać klucz główny jedna lub więcej kolumn identyfikujących jednoznacznie każdy wiersz tabeli Klucz kandydujący – atrybut lub zbiór atrybutów identyfikujących wiersze tabeli (musi być jednoznaczny i nie zawierać wartości null) Klucz główny wybierany spośród kluczy kandydujących dr P. Drozda

Definicja danych Dziedzina – zbiór wszystkich możliwych wystąpień atrybutu (np. ocena_z_egzaminu wartości od 2 do 5 – dziedzina 2-5) – każdy atrybut posiada dziedzinę Klucz obcy – kolumna bądź kolumny będące kluczem głównym w innej tabeli, sposób łączenia tabel (np. numer studenta w tabeli Studenci i w tabeli Zaliczenia) Wartość null – nieznana informacja (np. brak numeru telefonu) dr P. Drozda

Definicja dziedziny i relacji – przykład(1) Domains Nazwa Modułów: Character Poziomy: {1,2,3} Kody Kursów: Character NryPrac: Integer Statusy: {L, SL, PL, Reader, Prof, HOD} NazwiskaPrac: Character Relation: Wykładowcy Attributes NrPrac: NryPrac NazwiskoPrac: NazwiskaPrac Status: Statusy Primary Key: NrPrac dr P. Drozda

Definicja dziedziny i relacji – przykład(2) Relation: Moduły Attributes NazwaModułu: NazwyModułów Poziom: Poziomy KodKursu: KodyKursów NrPrac: NryPrac Primary Key: NazwaModułu Foreign Key: NrPrac references dr P. Drozda

Przykład STUDENCI Klucz główny Klucz główny ZALICZENIA Klucz obcy Nr_indeksu Nazwisko Imię Adres 1234 Kowalski Jan Akacjowa 8 2134 Nowak Piotr Dębowa 4 4321 Maliniak Stefan Bukowa 4 3298 Grabowska Janina Brzozowa 1 Klucz główny Klucz główny ZALICZENIA Id_indeksu Ocena Przedmiot 1234 5 Bazy danych 3211 4 3 Matematyka Klucz obcy dr P. Drozda

Ćwiczenie Dla danej relacji określ: Atrybuty Krotki Nr_indeksu Nazwisko Imię Adres 1234 Kowalski Jan Akacjowa 8 2134 Nowak Piotr Dębowa 4 4321 Maliniak Stefan Bukowa 4 3298 Grabowska Janina Brzozowa 1 Dla danej relacji określ: Atrybuty Krotki Składowe jednej krotki Schemat relacji Dziedzina dla każdego atrybutu Inny równoważny sposób przedstawienia relacji dr P. Drozda

Operowanie danymi Algebra relacyjna – zbiór sześciu operatorów do wyszukiwania danych (selekcja, rzut, złączenie, suma, przecięcie, różnica) Operacje dynamiczne na relacjach INSERT – wstawianie DELETE – usuwanie UPDATE – modyfikowanie dr P. Drozda

Selekcja - ograniczenie Wydobywa wszystkie informacje z relacji z interesującymi użytkownika danymi – nie bierze pod uwagę wszystkich krotek Przykład: Restrict STUDENCI where imię = ‘JAN’ odpowiednik w SQL: SELECT * FROM STUDENCI where imię=‘Jan’; Wynikiem powyższych zapytań jest relacja Nr_indeksu Nazwisko Imię Adres 1234 Kowalski Jan Akacjowa 8 dr P. Drozda

Rzut – projekcja (1) ogranicza liczbę atrybutów Przykład: PRACOWNICY Pracownik Nazwisko Imię Płaca 1 Stefanek Michał 3000 zł 2 Dębek Jarosław 2340 zł 3 Kowalski Jan 4600 zł dr P. Drozda

Rzut (2) Wynik zapytania: PROJECT Pracownicy (Nazwisko, Płaca) SELECT Nazwisko, Płaca from Pracownicy jest następujący: Nazwisko Płaca Stefanek 3000 zł Dębek 2340 zł Kowalski 4600 zł dr P. Drozda

Operowanie danymi Złączenia – oparte na relacyjnym operatorze iloczynu kartezjańskiego Typy złączeń Iloczyn kartezjański Równozłączenie Złączenie naturalne Złączenia zewnętrzne Lewostronne złączenie zewnętrzne Prawostronne złączenie zewnętrzne Obustronne złączenie zewnętrzne dr P. Drozda

Iloczyn kartezjański Powstaje poprzez połączenie dwóch relacji w jedną zawierającą wszystkie możliwe kombinacje wierszy tabel wejściowych Przykład Nr_indeksu Nazwisko Imię 1234 Kowalski Jan 6587 Małek Michał 1243 Nowak Piotr nr_indeksu Ocena 3214 2 1234 5 dr P. Drozda

Iloczyn kartezjański Cd przykładu: relacja wynikowa Nr_indeksu Nazwisko Imię nr_indeksu Ocena 1234 Kowalski Jan 3214 2 6587 Małek Michał 1243 Nowak Piotr 5 dr P. Drozda

Równozłączenie Iloczyn kartezjański dla którego dokonana jest selekcja poprzez wybór wierszy dla których wartość kluczy podstawowego i obcego są takie same Przykład Nr_indeksu Nazwisko Imię 1234 Kowalski Jan 6587 Małek Michał 1243 Nowak Piotr nr_indeksu Przedmiot Ocena 6587 Bazy danych 2 1243 Filozofia 4 3 1234 Statystyka 5 dr P. Drozda

Równozłączenie cd przykładu: tabela wynikowa Nr_indeksu Nazwisko Imię Przedmiot Ocena 1234 Kowalski Jan Statystyka 5 6587 Małek Michał Bazy danych 2 1243 Nowak Piotr Filozofia 4 3 dr P. Drozda

Złączenie naturalne Podobne do równozłączenia – usuwa jedną z kolumn po której relacje są łączone Dla poprzedniego przykładu tabel wynikowa Nr_indeksu Nazwisko Imię Przedmiot Ocena 1234 Kowalski Jan Statystyka 5 6587 Małek Michał Bazy danych 2 1243 Nowak Piotr Filozofia 4 3 dr P. Drozda

Złączenia zewnętrzne Stosowane gdy zachowane mają zostać wszystkie wiersze jednej lub drugiej relacji (nawet gdy nie występują odpowiedniki w obu relacjach) Nr_prac Nazwisko Imię 1 Golał Jan 6 Resko Paweł 3 Janik Tadeusz 4 Ferel Michał IdPrzed Przedmiot Prowadzący 2 Bazy danych null 5 Filozofia 4 6 Analiza matematyczna 3 Statystyka dr P. Drozda

Złączenie lewostronne Zachowuje nie pasujące wiersze z relacji będącej pierwszym argumentem złączenia Wynik złączenia dla przykładu z poprzedniego slajdu Nr_prac Nazwisko Imię IdPrzed Przedmiot Prowadzący 1 Golał Jan null 6 Resko Paweł 3 Janik Tadeusz Analiza matematyczna Statystyka 4 Ferel Michał 5 Filozofia dr P. Drozda

Złączenie prawostronne Zachowuje nie pasujące wiersze z relacji będącej drugim argumentem złączenia Wynik złączenia Nr_prac Nazwisko Imię IdPrzed Przedmiot Prowadzący null 2 Bazy danych 3 Janik Tadeusz 6 Analiza matematyczna Statystyka 4 Ferel Michał 5 Filozofia dr P. Drozda

Złączenie obustronne Zachowuje nie pasujące wiersze z obydwu relacji Wynik złączenia Nr_prac Nazwisko Imię IdPrzed Przedmiot Prowadzący null 2 Bazy danych 3 Janik Tadeusz 6 Analiza matematyczna Statystyka 4 Ferel Michał 5 Filozofia 1 Golał Jan Resko Paweł dr P. Drozda

Pozostałe operatory stosowane dla zgodnych relacji - ta sama liczba argumentów w relacjach, ta sama dziedzina dla odpowiadających argumentów analogicznie do algebry zbiorów dr P. Drozda

Pozostałe operatory Przykład PRACOWNICY KIEROWNICY Nr_prac Nazwisko Imię 1 Golał Jan 2 Maser Paweł 3 Jawosz Magda 4 Ferel Michał Nr_prac Nazwisko Imię 1 Golał Jan 6 Resko Regina 7 Janik Tadeusz 9 Rewak Piotr dr P. Drozda

Pozostałe operatory Przecięcie Suma Nr_prac Nazwisko Imię 1 Golał Jan 2 Maser Paweł 3 Jawosz Magda 4 Ferel Michał 6 Resko Regina 7 Rewak Piotr 9 Janik Tadeusz Nr_prac Nazwisko Imię 1 Golał Jan dr P. Drozda

Pozostałe operatory Różnica A-B Różnica A-B Nr_prac Nazwisko Imię 2 Maser Paweł 3 Jawosz Magda 4 Ferel Michał Nr_prac Nazwisko Imię 6 Resko Regina 7 Rewak Piotr 9 Janik Tadeusz dr P. Drozda

Języki zapytań składanie operatorów w celu wydobycia informacji z bazy danych Przykład – znaleźć wszystkie przedmioty prowadzone przez Janika PRACOWNICY PRZEDMIOTY Nr_prac Nazwisko Imię 1 Golał Jan 6 Resko Paweł 3 Janik Tadeusz 4 Ferel Michał IdPrzed Przedmiot Prowadzący 2 Bazy danych null 5 Filozofia 4 6 Analiza matematyczna 3 Statystyka dr P. Drozda

Języki zapytań Przykład cd Proceduralny język zapytań Join PRACOWNICY with PRZEDMIOTY -> R1 SELECT R1 where Nazwisko=‘Janik’ -> R2 PROJECT R2(Przedmiot) ->R3 SQL select Przedmiot from PRACOWNICY inner join PRZEDMIOTY on PRACOWNICY.Nr_prac = PRZEDMIOTY.Prowadzacy where Nazwisko=‘Janik’; dr P. Drozda

Operacje dynamiczne INSERT (wart1, wart2, …) INTO tabela – wstawia do tabeli wartości wart1, wart2, … Przykład INSERT (10, ‘Banach’, ‘Jacek’) INTO PRACOWNICY spowoduje dodanie wiersza do relacji PRACOWNICY DELETE tabela WITH warunek – usuwa z tabeli krotki określone w warunku DELETE PRZEDMIOTY WITH Prowadzący = 3 – usunie krotki dotyczące analizy matematycznej i statystyki dr P. Drozda

Operacje dynamiczne UPDATE tabela WHERE warunek SET nazwaKolumny = wartosc – zmienia w krotkach określonych w warunku kolumnę nazwaKolumny na podaną wartość Przykład UPDATE PRZEDMIOTY WHERE prowadzący=3 SET prowadzący=1 – zmienia prowadzącego przedmiotów analiza matematyczna i statystyka dr P. Drozda

Integralność danych Integralność danych zapewnia dokładne odbicie rzeczywistości w bazie danych W modelu relacyjnym istnieją dwa rodzaje integralności wewnętrznej integralność encji integralność referencyjna dr P. Drozda

Integralność encji Dotyczy kluczy głównych PRACOWNICY Każda relacja musi mieć klucz główny Klucz główny musi być jednoznaczny i nie może zawierać wartości null (co skutkuje jednoznacznością krotek w relacji) Przykład kluczem głównym w tej relacji może być Nr_prac, nazwisko lub imię PRACOWNICY Nr_prac Nazwisko Imię 1 Golał Jan 2 Resko Paweł 3 Janik Tadeusz 4 Ferel Michał dr P. Drozda

Integralność referencyjna Dotyczy kluczy obcych dwie możliwości (w zależności od konkretnej bazy danych) - Wartość klucza obcego musi odwoływać się do wartości klucza głównego w tabeli w bazie danych - Wartość klucza obcego może być null - Wymuszenie istnienia odniesienia każdego wiersza – parametr not null dr P. Drozda

Integralność referencyjna Przykład Nr_prac Nazwisko Imię 1 Golał Jan 6 Resko Paweł 3 Janik Tadeusz 4 Ferel Michał IdPrzed Przedmiot Prowadzący 2 Bazy danych null 5 Filozofia 4 6 Analiza matematyczna 3 Statystyka Integralność referencyjna zachowana, jeśli są dopuszczane wartości null klucza obcego (klucze obce mogą należeć do zbioru {1,3,4,6}) dr P. Drozda

Zachowanie integralności referencyjnej Określenie więzów propagacji – określają co ma się stać z tabelą przy modyfikacji powiązanej tabeli Ograniczone usuwanie – usunięcie krotki z kluczem głównym możliwe w momencie, gdy klucz główny nie ma wystąpień jako klucz obcy Dla poprzedniego przykładu – z tabeli pracownicy można usunąć pracowników o numerach 1 i 6. Pozostali mogą zostać usunięci dopiero w momencie gdy zostaną usunięte odpowiednie krotki w powiązanej tabeli dr P. Drozda

Zachowanie integralności referencyjnej Kaskadowe usuwanie Przy usunięciu wiersza z kluczem głównym zostają usunięte wszystkie wiersze z tym kluczem z relacji powiązanej Jeśli usuniemy z tabeli PRACOWNICY pracownika o numerze 3 – zostaną usunięte Przedmioty o numerach 6 i 3 z tabeli PRZEDMIOTY Wstaw null – przy usunięciu krotki z kluczem głównym zostają wstawione wartości null zamiast klucza obcego Wstaw default – przy usuwaniu wstawia wartość domyślną dr P. Drozda

Integralność dodatkowa Definiowana przez użytkownika – specyficzna dla każdej bazy danych Przykład Możemy wymusić, że każdy pracownik musi prowadzić jakieś zajęcia CONSTRAINT (Project PRACOWNICY(Nr_prac)) – (Project PRZEDMIOTY(Prowadzący)) is empty dr P. Drozda