BAZY DANYCH Materiały y do wykład adów dr inż.. Janusz Kosiński ski
Wprowadzenie do tematyki baz danych 2
Typowy ręczny system ewidencjonowania. Kluczami ręcznej bazy danych są zapisy na papierze. 3
Komputerowa baza danych - zautomatyzowana wersja funkcji ewidencjonowania i wyszukiwania, stosowanych w systemach ręcznych. 4
Komputerowe bazy danych przechowują informacje w zdefiniowanych formatach i strukturach -od prostych linii tekstu (np. imię, adres), do złożonych struktur danych, zawierających obrazy, dźwięki czy filmy. 5
Przechowywanie danych w ściśle określonych formatach umożliwia systemowi zarządzania bazą danych (DBMS database management system) przemianę danych w informacje użyteczne raporty, odpowiedzi na pytania. 6
Baza danych narzędzie umożliwiające skuteczne i wydajne przechowywanie oraz manipulowanie informacjami - w tym rozumieniu, że dane są chronione przed przypadkowym uszkodzeniem lub zagubieniem, oraz że mogą być przeglądane w różny sposób, zależnie od przyjętych założeń i ograniczeń. Baza danych - fizyczna implementacja modelu relacyjnego opisującego pewne aspekty rzeczywistości zgodnie z regułami, zaproponowanymi przez E.F.Codd a w końcu lat 1960. 7
BAZA DANYCH (BD) jest modelem informacyjnym pewnego aspektu rzeczywistości (fizycznej lub / i wyobrażalnej) jest uporządkowanym zbiorem danych przechowywanych w pamięci komputera, których zadaniem jest reprezentowanie tej rzeczywistości. 8
Funkcje bazy danych: Wyszukiwanie (Zapytania) Aktualizacja Zapisywanie/Wprowadzanie Usuwanie NAJWAŻNIEJSZĄ i NAJCZĘŚCIEJ wykorzystywaną funkcją jest Wyszukiwanie (Zapytania) BD INTEGRUJE dane wielu użytkowników - każdy użytkownik zainteresowany jest tylko pewnym jej fragmentem (w tym sensie BD ma charakter zintegrowany) 9
BD MOŻNA PODZIELIĆ ze względu na sposób zarządzania na operacyjne bazy danych i analityczne bazy danych: * OPERACYJNE BD - znajdują zastosowanie w codziennym funkcjonowaniu organizacji przechowują dane dynamiczne * ANALITYCZNE BD -są wykorzystywane do przechowywania danych historycznych / statystycznych, które bardzo rzadko ulegają zmianom. 10
Model bazy danych - zbiór zasad, którymi należy się posługiwać podczas tworzenia bazy danych. - określa się reguły, zgodnie z którymi dane umieszcza się w strukturach. - określane są również dozwolone operacje. Definicja struktury danych - specyfikacja reprezentacji dozwolonych w modelu obiektów (encji) oraz ich związków. 11
W informatyce wyróżniamy główne modele baz danych: hierarchiczny model danych relacyjny model danych grafowy model danych obiektowy model danych sieci semantyczne strumieniowe bazy danych (nowe podejście) 12
Encja* Model danych Dostawca Wytwarza dane bazując na Wykorzystuje dane bazując na Klient Odnosi się do Pakiet wymiany Definiuje format wynikowy dla Odnosi się do Definiowa nie płatności pojęciowy opis w przestrzeni problemów - zawierający definicje encji i ich atrybutów (Klient, na przykład, jest encją, i może mieć atrybuty: Nazwisko i Adres), oraz ograniczeń Punkt zapytań Umożliwia dostęp do Dane* (np. Nazwisko_Klienta nie może być puste). opcjonalne * - wskazuje przejście do innego obszaru modelowania Model danych zawiera również opis relacji między encjami i dowolnymi ograniczeniami tych relacji (na przykład menedżerowie nie mogą posiadać więcej niż pięć osób składających im raporty) Model danych nie zawiera żadnych odwołań do fizycznego formatu systemu. 13
Model danych ID Budynek Wejście Ulica ID Lokalizacja ID Działka Data nabycia Encja Właściciel Adres Podatek Relacja Atrybut 14
Model danych (MD) Jest NARZĘDZIEM właściwej INTERPRETACJI DANYCH ZAWARTYCH w BD Jest ZBIOREM ABSTRAKCYJNYCH POJĘĆ umożliwiających ODWZOROWANIE (reprezentację) OKREŚLONYCH WŁASNOŚCI danej organizacji MD powinien być ADEKWATNY do MODELOWANEJ RZECZYWISTOŚCI każda BD i SZBD muszą stosować się do ZASAD określonego MD 15
Termin MODEL DANYCH (MD) jest najczęściej używany w znaczeniu: ARCHITEKTURA DANYCH oraz ZBIÓR WYMAGAŃ W odniesieniu do danych MD jako architektura tozbiór zasad: definiowania danych (zbiór reguł określających strukturę danych) operowania danymi (zbiór reguł określających jak operuje się danymi) integralności danych (zbiór reguł określających, które stany BD są poprawne) MD jako zbiór wymagań to zintegrowany, niezależny od implementacji zestaw wymagań dotyczący danych dla pewnej aplikacji (np. kartoteka_zatrudnionych, przetwarzanie _zamówień) 16
TYPY MODELI DANYCH: PROSTE MD (OBIEKTY REPREZENTOWANE SĄ PRZY POMOCY STRUKTURY REKORDÓW ZGRUPOWANYCH W STRUKTURACH PLIKÓW); 17
TYPY MODELI DANYCH: KLASYCZNE (HIERARCHICZNE, SIECIOWE I RELACYJNE); Relacja SSAN jest kluczem Kolumna SSAN Nazwisko DataUr Krotka 999-9 Borek 7/52 18
TYPY MODELI DANYCH: Mapa Semantyczna Użytkownik danych * Kim ja jestem? (użytkownik123) * Co ja chcę? (a, b, c) *Jakie jednostki są mi potrzebne? Zwracane wartości odpowiadające zapotrzebowanej liście elementów (a=10m, b=8kg, c=0,05kg) SEMANTYCZNE Usługa Dostępu do Danych (DOSTARCZAJĄ METODY REPREZENTOWANIA ZNACZENIA INFORMACJI): 1. Wysyła zapotrzebowania do Mapy Semantycznej 2. Pobiera informację z Mapy Semantycznej 3. Ustala adres źródła danych * wywołuje standard metody dostępu * wysyła listę elementów do pozyskania 4. Pobiera zwracane dane z adresu źródła danych * pobiera wartości źródłowe * pobiera jednostki źródłowe 5. Przemieszcza się do źródła skojarzeń * wywołuje standard metody skojarzeń * wysyła listę elementów do pozyskania 6. Pobiera zwracane dane z adresu skojarzeń * pobiera wymagane wartości * Pobiera wymagane jednostki Lista potrzeb * Kto potrzebuje? (użytkownicy123) * Co potrzebują? (a, b, c) Nazwane potrzeby z wartościami (a=10m, b=8kg, c=0,05kg) Zwracana lista * adres źródła metadanych (adres źródła: http://sourcemetadata.html) * nazwa elementu w źródle danych (lista źródeł: x, y, z) * adres metadanych skojarzeń (adres skojarzeń: http://assocmetadata.html) lista nazw źródłowych (x, y, z) Metoda Dostępu do Danych lista nazw źródłowych (x, y, z) z wartościami (x=10m, y=5kg, z=3kg) Skojarzenia a = x b = y + z c = 0,1*z Źródlo danych (nie koniecznie baza danych) * lista danych źrółowych z wartościami (x=10m, y=3kg, z=5kg) * lista zapotrzebowań (a, b, c) 19
TYPY MODELI DANYCH: Nadklasa obiektu OBIEKTOWE MD należy do (OBIEKTY I KLASY OBIEKTÓW POWIĄZANE MECHANIZMAMI ABSTRAKCJI) Ssak Atrybuty ma Klasa obiektu należy do jest częścią Obiekt Obiekt złożony -KolorOczu: int +getkoloroczu:int ma należy do Atrybuty Część obiektu Pies -czestszczek: int +szczek:void Kot -czestmiaucz: int +miaucz:void OwczarekNiem Pudel +jestniem:void +jestfranc:void 20
MODELE POJECIOWE (konceptualne) (Najbardziej zbliżone do sposobu analizy modelowanej rzeczywistości klasyfikacja obiektów i związków z punktu widzenia projektanta) Relacje między obiektami Plik jest jest Kontener Miejsce pracy Obszar pracy jest jest zawiera jest Dana jest Obiekt Urządzenie reprezentuje zawiera Elementy wizualne Ikona modyfikuje jest na jest Elementy widoczne Widok Okno zawiera zawiera jest na Wskaźnik jest jest w Sterowanie steruje jest na Kursor Ekran modyfikuje steruje Mechanizmy interakcji Wejście reprezentuje reprezentuje jest jest Mysz Klawiatura 21
MODELE IMPLEMENTACYJNE (Reprezentacja BD w konkretnym systemie, np. ACCESS, SYBASE, ORACLE, INFORMIX, DB2, INGRES, MS SQL) JDBC-database ResultSet interaction ResultSet Dyrektywa Aplikacja PreparedSet Połączenie ResultSet Dyrektywa wywoływalna Menedżer urządzeń Sterownik Oracle JDBC ODBC Most Sterownik Sybase BD Oracle Sterownik ODBC BD Sybase BD ODBC 22
MODELE FIZYCZNE (Sposób organizacji danych w pamięci pomocniczej, zewnętrznej) CPU CACHE PAMIĘĆ GŁÓWNA DYSK Składowanie podstawowe Składowanie drugoplanowe TAŚMA Składowanie trzecioplanowe Zapotrzebowanie na dane Dane odpowiadające zapotrzebowaniu 23
BD bez względu na zastosowany model danych, powinna być efektywnie zarządzana: PODSTAWOWE FUNKCJE ZARZĄDZANIA BD OPTYMALIZACJA ZAPYTAŃ (najkrótszy czas odpowiedzi) ZAPEWNIENIE INTEGRALNOŚCI BD (nie może być stanu BD, który nie istnieje w modelowanej rzeczywistości) ZARZĄDZANIE DOSTĘPEM WSPÓŁBIEŻNYM (użytkownik BD nie może odczuć obecności drugiego użytkownika) ODTWARZANIE POPRZEDNIEGO STANU BD (odporność na awarie) OCHRONA DANYCH (uniemożliwienie niepowołanego dostępu) 24
SYSTEM BAZY DANYCH (SBD) to BD i ŚRODKI PROGRAMOWE umożliwiające współbieżne operowanie na niej. SBD opisuje pewne aspekty rzeczywistości danej organizacji. FUNDAMENTALNĄ CECHĄ SBD jest zapewnienie UŻYTKOWNIKOM takiego poziomu ABSTRAKCJI WIDZENIA DANYCH, który przesłania szczegóły dotyczące ich struktury fizycznej. Uzyskuje się to dzięki oferowanym MODELOM DANYCH (MD) 25
ZINTEGROWANA BAZA DANYCH PrWs 1 PrWs 2...... PrWs n PROGRAMY WSADOWE SYSTEM BAZY DANYCH BEZPOŚREDNI UŻYTKOWNICY 26
UŻYTKOWNICY SCHEMAT ZEWNĘTRZNY 1..... SCHEMAT ZEWNĘTRZNY N POZIOM ZEWNĘTRZNY SCHEMAT POJĘCIOWY POZIOM POJĘCIOWY SCHEMAT IMPLEMENTACYJNY POZIOM IMPLEMENTACJI BD BD BD POZIOM FIZYCZNY TRÓJPOZIOMOWA ARCHITEKTURA SBD 27
JĘZYKI BAZ DANYCH: standard SQL 92 JĘZYK DEFINIOWANIA DANYCH (Data definition language DDL) umożliwia definiowanie struktury danych przechowywanych w BD, a więc tworzenie schematu implementacyjnego JĘZYK MANIPULOWANIA DANYMI (Data manipulation language DML) umożliwia wypełnianie BD nowymi danymi, ich aktualizację i usuwanie JĘZYK STEROWANIA DANYMI (Data control language DCL) - nadaje uprawnienia użytkownikowi BD JĘZYK ZAPYTAŃ (Query language) umożliwia pobieranie z BD informacji zgodnych z wyspecyfikowanymi warunkami 28
POWSZECHNYM STANDARDEM w dziedzinie języków baz danych oferowanym przez większość firm producentów jest SQL. UMOŻLIWIA ON ZARÓWNO DEFINIOWANIE JAK I MANIPULOWANIE DANYMI, A ZATEM ZAWIERA KOMPONENTY DDL I DML. 29
WŁAŚCIWOŚCI BAZY DANYCH: WSPÓŁDZIELENIE DANYCH (BD jest używana przez więcej niż jedną osobę) INTEGRACJA DANYCH (jeden logiczny element danych jest przechowywany tylko w jednym miejscu BD, nie ma niepotrzebnych lub powtarzających się danych) INTEGRALNOŚĆ DANYCH (BD powinna dokładnie odzwierciedlać obszar analizy, którego ma być modelem) NIEZALEŻNOŚĆ DANYCH: LOGICZNA (dane oddzielone są od procesów, które używają tych danych; organizacja danych jest niewidoczna dla użytkowników i programów użytkowych korzystających z danych) FIZYCZNA (rozszerzenie lub zmiana struktury fizycznej komputera nie wpływa na stan BD) 30
WŁAŚCIWOŚCI BAZY DANYCH: ABSTRAKCJA DANYCH (BD może być traktowana jako model informacyjny, odwzorowujący istotne właściwości rzeczywistości) RÓŻNORODNOŚĆ SPOSOBÓW WIDZENIA DANYCH (możliwość używania tzw. FILTRÓW PERSPEKTYW, które są nakładane na te same dane) ZASTOSOWANIE DEKLARATYWNYCH JĘZYKÓW PROGRAMOWANIA (co zrobić? a nie, jak zrobić?) BEZPIECZEŃSTWO DANYCH (zabezpieczenie BD przed utratą integralności) WIZUALIZACJA INTERFEJSÓW DO DANYCH (możliwość wyświetlania tych samych danych w różnych formatach) 31
KORZYŚCI WYNIKAJĄCE ZE STOSOWANIA BAZ DANYCH: ZMNIEJSZENIE NADMIAROWOŚCI (wykorzystywanie danych przez różnych użytkowników nie powoduje dublowania aplikacji) WSPÓŁDZIELENIE DANYCH (współbieżne wykorzystywanie danych przez różnych użytkowników i aplikacje) AUTORYZACJA DOSTĘPU DO DANYCH (ograniczenie dostępu do danych problem niepowołanych użytkowników) REPREZENTACJA ZŁOŻONYCH ZWIĄZKÓW MIEDZY DANYMI (związki intuicyjne, semantyczne) INTEGRALNOŚĆ DANYCH (zabezpieczenie przed definiowaniem niewłaściwych związków relacji i nadawaniem złych wartości) MOŻLIWOŚĆ OCHRONY PRZED AWARIAMI (odtwarzanie stanu BD sprzed awarii) 32
KIEDY NALEŻY ROZWAŻYĆ ZASADNOŚĆ STOSOWANIA BD: SEKWENCYJNE ŚCIŚLE SKORELOWANE, przetwarzanie danych przez jednego użytkownika NISKI STOPIEŃ wzajemnego powiązania danych MECHANIZMY w zakresie współbieżności dostępu, bezpieczeństwa danych, odtwarzania BD po awariach oraz definiowania ograniczeń integralności, planowanego do wdrożenia SZBD są nadmiarowe w stosunku do potrzeb OGRANICZENIA czasowe i finansowe 33
SYSTEM BAZY DANYCH Aplikacja zawiera formularze i raporty z którymi użytkownik wchodzi w interakcję Silnik bazy danych nie jest częścią bazy danych Baza danych zawiera fizyczną implementację schematu i danych Schemat bazy danych opisuje model danych w bazie Model danych jest pojęciowym opisem przestrzeni problemów Przestrzeń problemów jest dobrze zdefiniowaną częścią realnego świata 34
Formularze WWW WE / WY programów Interfejs SQL Polecenia SQL Przepływ poleceń Wykonanie projektu Obliczenia operatorowe Analizowanie składni Optymalizacja Interakcje Silnik Menedżer Transakcji Menedżer Zabezpieczeń Kontrola Współbieżności Pliki i metody dostępu Menedżer er buforów Menedżer przestrzeni dysku Menedżer odtwarzania stanu początkowego DBMS Pliki indeksów Pliki danych Katalog systemowy Odniesienia Baza Danych 35
Relacyjny model danych 36
37
1970r E. F. CODD, badacz zatrudniony przez firmę IBM, opublikował dzieło swojego życia pt. RELACYJNY MODEL LOGICZNY DLA DUŻYCH BANKÓW DANYCH Edgar F. Codd (1923-2003) powstają relacyjne bazy danych (RBD) oparte na dwóch gałęziach matematyki Teorii mnogości i rachunku predykatów pierwszego rzędu 38
1979r E. F. CODD publikuje na konferencji - AUSTRALIAN COMPUTER SOCIETY pracę pt. Extending the Relational Database Model to Capture More Meaning, w której przedstawił rozszerzoną wersję relacyjnego modelu danych RM/T 1985r E. F. CODD formułuje zasady dla RBD Zasady E.F. Codda, znane jako Twelve Principles of Relational Databases, dostarczają kryteriów do definiowania relacyjnych systemów baz danych: 39
Kryteria relacyjności baz danych 1. Informacje są reprezentowane logicznie w tabelach. 2. Dane są logicznie dostępne przez podanie nazwy tabeli, wartości klucza podstawowego i nazwy kolumny. 3. Wartości NULL są traktowane w jednolity sposób jako brakujące informacje. Nie mogą być traktowane jako puste łańcuchy znaków, puste miejsca czy zera. 4. Metadane (dane dotyczące bazy danych) są umieszczane w bazie danych dokładnie tak, jak zwykłe dane.. 5. Język (instrukcje) obsługi danych ma możliwość definiowania danych i perspektyw, więzów integralności, przeprowadzenia autoryzacji, obsługi transakcji i manipulacji danymi. 6. Perspektywy reagują na zmiany swoich tabel bazowych. Analogicznie zmiana w perspektywie powoduje automatycznie zmianę w tabeli bazowej. 7. Istnieją pojedyncze operacje pozwalające na wyszukiwanie, wstawianie, uaktualnianie i usuwanie danych. 8. Operacje użytkownika są logicznie oddzielone od fizycznych danych i metod dostępu. 9. Operacje użytkownika pozwalają na zmianę struktury bazy danych bez konieczności tworzenia od nowa bazy oraz aplikacji ją obsługującej. 10. Więzy integralności są umieszczone i dostępne w metadanych, a nie w programie obsługi baz danych. 11. Język manipulacji danymi powinien działać bez względu na to, jakie i jak są rozmieszczone fizyczne dane oraz nie powinien wymagać żadnych zmian, gdy fizyczne dane są centralizowane lub rozpraszane. 12. Operacje na pojedynczych rekordach przeprowadzane w systemie podlegają tym samym zasadom i więzom, co operacje na zbiorach danych. 40
RMD dostarcza tylko jednego sposobu reprezentowania jest nim dwuwymiarowa tabela nazwana relacją RBD jest zbiorem relacji Atrybut istotna (konieczna, nieodłączna) cecha obiektu encji. NRPRAC A1; NAZWISKOPRAC A2; STATUS A3; 41
POLA (ATRYBUTY, KOLUMNY) Nazwy pól sid nazwisko login wiek gpa 50000 Drabek dra@music 19 3.3 REKORDY (KROTKI, WIERSZE) 53666 Jurek jurek@tlen2 18 3.4 53688 Kowal kwl@cert 18 3.2 53650 Kowal kwl@edu 19 3.8 53831 Mizera mar@math 11 1.8 53832 Kwiatkowski kwiat@interia 12 2.0 42
ATRYBUTY WŁAŚCIWOŚCI: * * KLUCZOWE (jednoznacznie charakteryzują encję) * * NIEKLUCZOWE * * OBOWIĄZKOWE * * OPCJONALNE * * PUSTE (brak wartości, niepełna lub nieznana wartość NULL) * * WYLICZANE (wyprowadzenie wynik obliczeń lub konkatenacji innych atrybutów) * * JEDNO I WIELOWARTOŚCIOWE (wiele wartości tego samego typu) * * SEGMENTOWE (więcej niż jeden typ wartości). ATRYBUTY SŁUŻĄ DO NAZYWANIA KOLUMN RELACJI 43
DZIEDZINA (DOMENA) zbiór wszystkich możliwych wartości atrybutu A. NR_PRAC(zbiór liczb całkowitych) NAZWISKO_PRAC(łańcuch znaków) STATUS(łańcuch znaków) KAŻDY ATRYBUT relacji musi mieć określony typ atomowy, tzn. musi należeć do typów elementarnych (np. typ znakowy lub całkowity) WARTOŚĆ ATRYBUTU nie może być rekordem, listą lub tablicą, żadną inną strukturą, którą można podzielić na inne części SCHEMAT RELACJI to nazwa relacji oraz jej zbiór atrybutów (mimo, że atrybuty schematu relacji nie stanowią listy, bowiem są zbiorem, to często trzeba określić standardowy porządek atrybutów) 44
RELACJĄ /INSTANCJĄ R(A 1, A 2,... A n ) określoną na danym schemacie relacji R nazywamy skończony zbiór krotek takich, że: { a 1, a 2,... a n : a 1 dom(a 1 ),.., a n dom(a n ) } gdzie : R(A 1, A 2,... A n ) jest relacją określoną na schemacie relacji R(A 1, A 2,... A n ) 101 JANKOWSKI PROFESOR 102 FALCZAK ASYSTENT 103 KONIECZNY DOCENT SCHEMAT RELACJI jest w zasadzie niezmienny, INSTANCJA może często ulegać zmianom RELACJA jest TABELĄ, dla której spełniony jest zbiór zasad, przedstawiony na następnym slajdzie 45
Każda relacja w BD ma jednoznaczną nazwę (dwuwymiarowa tabela jest matematycznym zbiorem, a zbiory muszą być jednoznacznie nazwane) Każda kolumna w relacji ma jednoznaczną nazwę w ramach jednej relacji (kolumna też jest zbiorem) Wszystkie wartości w kolumnie muszą być tego samego typu Porządek kolumn w relacji nie jest istotny (schemat relacji lista nazw jej kolumn jest również zbiorem matematycznym) 46
Każdy wiersz w relacji musi być różny (powtórzenia wierszy nie są w relacji dozwolone) Porządek wierszy nie jest istotny (relacja jest zbiorem) Każde pole leżące na przecięciu kolumny i wiersza w relacji powinno zawierać wartość atomowa (zbiór wartości nie jest dozwolony na jednym polu relacji) PERSPEKTYWA Wirtualna tabela, składająca się z pól jednej lub większej liczby rzeczywistych tabel 47
PRZEDMIOTY NAZWA_PRZEDMIOTU POZIOM KOD_KURSU NR_PRAC SYSTEMY RELACYJNYCH BAZ DANYCH 1 SRD 234 PROJEKTOWANIE RELACYJNYCH BAZ DANYCH 1 PRD 234 DEDUKCYJNE BAZY DANYCH 3 DBD 345 OBIEKTOWE BAZY DANYCH 3 OBD 345 ROZPROSZONE BAZY DANYCH 2 RBD 237 WYKŁADOWCY NR_PRAC NAZWISKO_Prac Status Tabele 234 237 345 DOROSZ T JURCZAK S ELSNER R PZ PU AD PRZEDMIOTY i WYKŁADOWCY spełniaj niają podane reguły, a więc stanowią reprezentację relacji 48
KLUCZE RELACJI Mówimy, że atrybut, lub zbiór atrybutów {A 1, A 2,...,A n } tworzy klucz relacji, jeżeli: wszystkie pozostałe atrybuty relacji są funkcyjnie zależne od tych atrybutów (nie może się więc zdarzyć, aby dwie różne krotki relacji R, były zgodne dla wszystkich atrybutów A 1, A 2,...,A n ) nie istnieje taki podzbiór właściwy zbioru {A 1, A 2,...,A n }, od którego pozostałe atrybuty relacji R są funkcyjnie zależne, tzn. KLUCZ MUSI BYĆ MINIMALNY ZALEŻNOŚĆ FUNKCYJNA ATRYBUT B RLACJI JEST FUNKCYJNIE ZALEŻNY OD ATRYBUTU A TEJ RELACJI, JEŚLI ZAWSZE KAŻDEJ WARTOŚCI a ATRYBUTU A ODPOWIADA NIE WIĘCEJ NIŻ JEDNA WARTOŚĆ b ATRYBUTU B A B 49
KLUCZE GŁÓWNE jedna lub więcej kolumn (atrybutów) tabeli (relacji), których wartości jednoznacznie identyfikują każdy wiersz (krotkę) w tabeli (relacji,/instancji) KLUCZE KANDYDUJĄCE kolumna lub zbiór kolumn, które mogą występować jako jednoznaczny identyfikator. Każdy klucz kandydujący musi być jednoznaczny i nie może mieć wartości NULL. KLUCZE OBCE atrybuty, które są kluczowe w innym zbiorze encji (pozwalają tworzyć połączenia danych przechowywanych w różnych tabelach, tzn. RELACJE MIĘDZY TABELAMI NADKLUCZ zbiór atrybutów, który zawiera klucz 50
POWIĄZANIA (relacje) pomiędzy parą tabel istnieją wtedy, gdy dwie tabele są połączone przez klucz główny (podstawowy) i klucz obcy KAŻDA RELACJA jest opisywana przez: TYP RELACJI, TYP UCZESTNICTWA, jaki obie tabele mają w tej relacji oraz STOPIEŃ UCZESTNICTWA tych tabel 51
TYPY RELACJI: * * JEDEN DO JEDNEGO jeżeli pojedynczemu rekordowi w pierwszej tabeli przyporządkowany jest najwyżej jeden rekord z drugiej i odwrotnie, pojedynczemu rekordowi z drugiej tabeli może być przyporządkowany najwyżej jeden rekord z pierwszej * * JEDEN DO WIELU jeżeli pojedynczemu rekordowi z pierwszej tabeli może odpowiadać więcej rekordów z drugiej, podczas gdy pojedynczemu rekordowi z drugiej tabeli odpowiada najwyżej jeden rekord z pierwszej * * WIELE DO WIELU - jeżeli pojedynczemu rekordowi w pierwszej tabeli może odpowiadać jeden lub wiele rekordów z drugiej tabeli i odwrotnie, pojedynczy rekord z drugiej tabeli może być powiązany z jednym lub większa liczba rekordów z pierwszej 52
PRACOWNICY Id_prac Imie_prac 100 Stefan 101 Jerzy 102 Adam Nazwisko_prac Krawczyk Rojek Zdziarski JEDEN DO JEDNEGO WYNAGRODZENIA Id_prac Stawka_godz 100 25$ 101 18$ 102 32$ Premia 150$ 200$ 130$ 53
JEDEN DO WIELU STUDENCI Id_stud Imie_stud 601 Grzegorz 603 Kazimierz 608 Edward Nazwisko_stud Majek Sturski Zgorzelak W POLU ID_STUDENTA liczba 603 MOŻE SIĘ POJAWIĆ WIELE RAZY Id_instrumentu 10 17 23 35 Id_studenta 601 603 608 603 54
WIELE DO WIELU STUDENCI Id_stud Imie_stud 601 Grzegorz 603 Kazimierz 608 Edward Nazwisko_stud Majek Sturski Zgorzelak W POLU Id_studenta liczba 603 MOŻE SIĘ POJAWIĆ WIELE RAZY Zaś Id_instrumentu - liczba 17 - może się pojawić dla więcej niż jednego studenta Id_instrumentu 10 17 17 23 35 Id_studenta 601 603 608 608 603 55
TYPY UCZESTNICTWA * * OBOWIĄZKOWY jeżeli w tabeli A muszą znajdować się pewne rekordy zanim zabierzemy się do wprowadzania rekordów do tabeli B, wówczas mówimy, że uczestnictwo tabeli A jest obowiązkowe; * * OPCJONALNY - odwrotnie. STOPIEŃ UCZESTNICTWA określa minimalną i maksymalną liczbę rekordów w jednej tabeli, które można powiązać z pojedynczym rekordem drugiej tabeli 56
TYP UCZESTNICTWA POSREDNICY Id_posred Imie_posred 202 Agata 203 Mateusz 204 Waldemar Obowiązkowy Nazwisko_posred Mroczek Nawrot Szybki KLIENCI Id_klienta Id_posred Imie_klienta Nazwisko_klienta 95 202 Tadeusz Kowalczyk 96 203 Adam Cieciera 97 204 Józef Sztaba 57
DIAGRAMY ZWIĄZKÓW ENCJI MODELOWANIE SEMANTYCZNE (dane potrzebne do realizacji danej BD nie zawsze należą nieodwołalnie do jednej z trzech kategorii: ENCJI, ZWIĄZKU lub ATRYBUTU) PRZYKŁAD dane nt.ślubu: ENCJA SLUB, ATRYBUTY DATA,MIEJSCE,NAZWISKA PANNY i PANA MŁODEGO; ATRYBUT- STAN CYWILNY związany z encją OSOBA; ZWIĄZEK między encjami MEZCZYZNA i KOBIETA. PROJEKTANT POWINIEN PODJĄĆ DECYZJĘ, KTÓRY z w/w PUNKTÓW WIDZENIA JEST NAJWAŻNIEJSZY DLA BRANEJ POD UWAGĘ BD 58
PRZEKSZTAŁCANIE DIAGRAMU E R W SCHEMAT RELACYJNY DLA KAŻDEJ ENCJI TWORZYMY TABELĘ (nazwa tabel w liczbie mnogiej) IDENTYFIKUJĄCY ATRYBUT STAJE SIĘ KLUCZEM GŁÓWNYM; WSZYSTKIE INNE ATRYBUTY ENCJI STAJĄ SIĘ NIEGŁÓWNYMI ATRYBUTAMI TABELI DLA KAŻDEGO ZWIĄZKU JEDEN DO WIELU wstawiamy klucz główny tabeli ze strony jeden linii związku do tabeli reprezentującej stronę wiele linii związku OPCJONALNOŚĆ po stronie WIELE LINI ZWIĄZKU mówi nam, czy klucz obcy reprezentujący związek może być NULL, czy nie (jeśli strona wiele jest wymagana,to klucz obcy nie może być NULL) 59
DLA RBD nie istnieje uzgodniona składnia wyrażania struktury danych (ciąg szablonów złożonych z nazw, relacji, atrybutów i deklaracji kluczy głównych i obcych) OPEROWANIE DANYMI (Jak wstawiamy dane do relacji? Jak usuwamy dane z relacji? Jak wyszukujemy dane w relacji?) ALGEBRA RELACYJNA zbiór następujących operatorów: 60
SELEKCJA (OGRANICZENIE) operator, który bierze jedną relację jako swoją i produkuje w wyniku jedną relację (pozioma maszyna do cięcia wydobywa wiersze, które pasują do podanego warunku) [RESTRICT] RZUT - operator, który bierze jedną relację jako swój argument i produkuje w wyniku jedną relację (pionowa maszyna do cięcia wydobywa wiersze, ale uwzględnia w nich tylko wyspecyfikowane kolumny) [PROJECT] 61
62 Tabele poddawane działaniom algebry relacyjnej Wiek ocena snazwa sid 35,0 10 Robert 58 35,0 5 Grażyna 44 55,0 8 Lena 31 35,0 9 Jadwiga 28 S2 35,0 10 Robert 58 55,5 8 Lena 31 45,0 7 Dorota 22 wiek ocena sname sid S1 11/12/04 103 58 10/10/04 101 22 dzien bid sid R1
σ ocena>8 (S2) selekcja sid 28 snazwa Jadwiga ocena 9 Wiek 35,0 S2 58 Robert 10 35,0 sid snazwa ocena Wiek 28 Jadwiga 9 35,0 31 Lena 8 55,0 44 Grażyna 5 35,0 58 Robert 10 35,0 π wiek (S2) projekcja Wiek 35,0 55,0 63
π snazwa;ocena (S2) snazwa ocena projekcja Jadwiga Robert 9 10 Grażyna 5 S2 Robert 10 sid snazwa ocena Wiek 28 31 Jadwiga Lena 9 8 35,0 55,0 selekcja 44 Grażyna 5 35,0 58 Robert 10 35,0 π snazwa;ocena (σ ocena>8 (S2)) snazwa Jadwiga Robert 9 10 ocena 64
ILOCZYN KARTEZJAŃSKI - operator, który bierze dwie relacje jako swój argument i produkuje w wyniku jedną relację złożoną ze wszystkich możliwych kombinacji wierszy z wejściowych tabel (w praktyce rzadko stosowany) [PRODUCT] RÓWNOZŁĄCZENIE - Operator, który bierze dwie relacje jako swój argument i produkuje w wyniku jedną relację wynikową, składającą się z wierszy, w których wartości w kolumnach złączenia są takie same (iloczyn kartezjański, a następnie selekcja) [EQUIJOIN] 65
66 35,0 10 Robert 58 55,5 8 Lena 31 45,0 7 Dorota 22 wiek ocena sname sid S1 11/12/04 103 58 10/10/04 101 22 dzien bid sid R1 11/12/04 103 58 35,0 10 Robert 58 10/10/04 101 22 55,5 8 Lena 31 11/12/04 103 58 55,5 8 Lena 31 11/12/04 103 58 45,0 7 Dorota 22 22 22 sid 101 101 bid 35,0 45,0 wiek 10/10/04 10 Robert 58 10/10/04 7 Dorota 22 dzien ocena sname sid S1 % R1 iloczyn kartezjański
67 wiek ocena sname sid 35,5 10 Robert 58 55,5 8 Lena 31 45,0 7 Dorota 22 S1 11/12/04 103 58 10/10/04 101 22 dzien bid sid R1 103 101 bid 11/12/04 10/10/04 dzien 35,5 45,0 wiek S1Å R.sid=S.sid R1 ocena sname sid 10 Robert 58 7 Dorota 22 równozłączenie
ZŁĄCZENIE NATURALNE identyczne jak równozłączenie, ale bez powtarzających się kolumn złączenia (iloczyn kartezjański, selekcja, a następnie rzut, który nie bierze pod uwagę powtórzeń kolumn złączenia) [JOIN] ZŁĄCZENIE ZEWNĘTRZNE pozwala zachować wiersze z każdej lub z obydwu relacji wejściowych, bez względu na to, czy mają odpowiadające sobie wiersze w drugiej relacji: 68
LEWOSTRONNE ZŁĄCZENIE zachowuje nie pasujące wiersze z relacji będącej pierwszym argumentem operatora złączenia PRAWOSTRONNE ZŁĄCZENIE - zachowuje nie pasujące wiersze z relacji będącej drugim argumentem operatora złączenia OBUSTRONNE ZŁĄCZENIE - zachowuje nie pasujące wiersze z obydwu relacji będących argumentami operatora złączenia 69
SUMA operator, który bierze dwie zgodne relacje (mają taką samą strukturę te same kolumny określone na tych samych dziedzinach) i produkuje jedną relację wynikową [UNION] PRZECIĘCIE operator o działaniu przeciwnym do działania sumy (suma uwzględnia wszystkie wiersze z obu relacji, przecięcie natomiast uwzględnia tylko wiersze wspólne dla obu relacji) [INTERSECTION] 70
71 35,5 10 Robert 58 55,5 8 Lena 31 45,0 7 Dorota 22 wiek ocena sname sid S1 35,5 10 Robert 58 35,0 5 Grażyna 44 55,5 8 Lena 31 35,0 9 Jadwiga 28 wiek ocena sname sid S2 35,0 9 Jadwiga 28 45,0 7 Dorota 22 55,5 8 Lena 31 35,5 10 Robert 58 35,0 5 Grażyna 44 wiek ocena sname sid S1 4 S2 suma (union)
72 35,5 10 Robert 58 55,5 8 Lena 31 45,0 7 Dorota 22 wiek ocena sname sid S1 35,5 10 Robert 58 35,0 5 Grażyna 44 55,5 8 Lena 31 35,0 9 Jadwiga 28 wiek ocena sname sid S2 55,5 8 Lena 31 35,5 10 Robert 58 wiek ocena sname sid S1 3 S2 przecięcie
RÓŻNICA - operator, który bierze dwie relację jako swój argument i produkuje w wyniku jedną relację wynikową, składającą się z wierszy znajdujących się tylko w pierwszej relacji (pierwszy argument) i nie znajdujących w drugiej relacji (drugi argument) [DIFFERENCE] 73
74 wiek ocena sname sid 35,5 10 Robert 58 55,5 8 Lena 31 45,0 7 Dorota 22 S1 35,0 5 Grażyna 44 35,5 10 Robert 58 55,5 8 Lena 31 35,0 9 Jadwiga 28 wiek ocena sname sid S2 45,0 7 Dorota 22 wiek ocena sname sid S1 S2 różnica
Tabele używane do demonstrowania złączeń, prezentowanych na następnych slajdach. 75
Iloczyn kartezjański Kod SQL iloczynu 76
LEWE ZŁĄCZENIE [ ZEWNĘTRZNE ] Oznacza, że z tabeli podanej po lewej stronie instrukcji złączenia zwrócone zostaną wszystkie rekordy. Dotyczy to również rekordów z lewej tabeli, które nie mają odpowiadających im rekordów w tabeli prawej. Wtedy kolumny z prawej tabeli zwracają wartości NULL. Wielu profesjonalistów rekomenduje konfigurację złączeń zewnętrznych jako lewych złączeń dla zachowania konsekwencji 77
Lewe złączenie [zewnętrzne] Kod SQL lewego złączenia 78
PRAWE ZŁĄCZENIE [ ZEWNĘTRZNE ] Zwrócone zostaną wszystkie rekordy z tabeli podanej po prawej stronie instrukcji złączenia, nawet jeśli nie istnieją pasujące rekordy w lewej tabeli. Kolumny z lewej tabeli zwracają wartości NULL 79
Prawe złączenie [zewnętrzne] Kod SQL prawego złączenia 80
ZŁĄCZENIE WEWNĘTRZNE Oznacza, że nie pasujące wiersze z obu tabel zostaną opuszczone. Jeśli w zapisie ANSI nie zostanie jawnie zdefiniowany typ złączenia, jest to zachowanie domyślne. 81
Złączenie wewnętrzne Kod SQL złączenia wewnętrznego 82
Instrukcja UNION (nie będąca częścią standardu SQL92) tworzy sumę dwóch lub więcej tabel. Oto jej składnia: [TABLE] Query (UNION [ALL] [TABLE] Query),... Parametr Query reprezentuje instrukcję SELECT, nazwę procedury składowanej lub nazwę tabeli składowanej, poprzedzonej słowem kluczowym TABLE. Opcja ALL sprawia dodawanie wszystkich rekordów, jest więc zalecana nawet w przypadku braku powtarzających się wierszy. 83
Wszystkie kwerendy w operacji UNION muszą zwracać tę samą liczbę pól. Jednak pola te nie muszą mieć tego samego rozmiaru, ani typu danych Składanie kolumn odbywa się według ich porządku w klauzulach kwerend, nie według ich nazw W pierwszej instrukcji SELECT (jeżeli taka istnieje) można używać aliasów, aby zmienić nazwy zwracanych kolumn Klauzulę ORDER BY można zastosować na końcu ostatniej kwerendy, aby nadać określony porządek zwracanym danym. Należy używać nazw kolumn z pierwszej kwerendy. Klauzule GROUP BY i HAVING można użyć w każdym argumencie kwerendy w celu grupowania zwracanych danych Tablicy wynikowej UNION nie można aktualizować 84
Poniższa instrukcja tworzy sumę wszystkich wierszy tabeli BOOKS oraz wierszy tabeli LIBRARY_FLAT, zawierających cenę większą od 25,00 zł (Price > 25.00), sortując tabelę wynikową według kolumny Title: TABLE BOOKS UNION ALL SELECT * FROM LIBRARY_FLAT WHERE Price > 25.00 ORDER BY Title 85
Tabele używane do demonstrowania instrukcji UNION 86