Bazy danych 1 Literatura: Paul Benon-Davies – Systemy baz danych

Slides:



Advertisements
Podobne prezentacje
Teoretyczne podstawy tworzenia systemów relacyjnych baz danych
Advertisements

Modelowanie logiczne (dla relacyjnych SZBD)
Relacyjny model danych
Relacyjny model danych
Systemy do operowania dużymi i trwałymi zbiorami danych
Wykład (12 godz): Jan Aleksander Wierzbicki Ćwiczenia ( godz):
Inżynieria oprogramowania
BAZA DANYCH - RODZAJE.
WPROWADZENIE DO BAZ DANYCH
MS Access 2000 Normalizacja Paweł Górczyński 2005.
Wprowadzenie do baz danych.
POWTÓRZENIE Dane; Baza danych - BD;
POWTÓRZENIE Metodologia : Pojęcia:
Projektowanie relacyjnych baz danych
Projektowanie i programowanie obiektowe II - Wykład IV
Wstęp do interpretacji algorytmów
Modele baz danych - spojrzenie na poziom fizyczny
Projektowanie struktury logicznej (schematu) relacyjnych baz danych
Wykład 3 Analiza i projektowanie strukturalne
Teoria relacyjnych baz danych
Bazy Danych II prowadzący: mgr inż. Leszek Siwik
PROJEKTOWANIE TABEL W PROGRAMIE: ACCESS
Diagramy ER (Entity-relationship diagrams)
O relacjach i algorytmach
Bazy danych.
Bazy danych podstawowe pojęcia
Systemy baz danych Wykład 1
Temat 19: Organizacja informacji w bazie danych – część 1.
Budowanie tabel i relacji
Informatyka Relacyjne bazy danych.
Andrzej Macioł Bazy danych – model relacyjny – cz. 1 Andrzej Macioł
Rozwiązanie zadań do zaliczenia I0G1S4 // indeks
Wybrane zagadnienia relacyjnych baz danych
WPROWADZENIE DO BAZ DANYCH
Model relacyjny.
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
dr Łukasz Murowaniecki T-109
1 Każdy obiekt jest scharakteryzowany poprzez: tożsamość – daje się jednoznacznie wyróżnić; stan; zachowanie. W analizie obiektowej podstawową strukturą
Bazy danych Microsoft access 2007.
Projektowanie relacyjnych baz danych – postacie normalne
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
Interakcja człowiek – komputer Podstawy metod obiektowych mgr inż. Marek Malinowski Zakład Matematyki i Fizyki Wydz. BMiP PW Płock.
Projektowanie bazy danych
Łódź 2008 Banki danych WYKŁAD 2 dr Łukasz Murowaniecki T-109.
Wykład I Podstawy relacyjnych baz danych Powtórzenie wiadomości
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
Podstawowe informacje
Definiowanie kluczy w tabelach RBD
Model obiektowy bazy danych
Slajd 1© J.Rumiński Jacek Rumiński  Bazy danych Kontakt: Katedra Inżynierii Biomedycznej, pk. 106, tel.: , fax: ,
Systemy informatyczne
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Projektowanie relacyjnych baz danych – diagramy związków encji
Projektowanie bazy danych z użyciem diagramów UML Obiektowe projektowanie relacyjnej bazy danych Paweł Jarecki.
Bazy danych Podstawy relacyjnych baz danych Autor: Damian Urbańczyk.
Projektowanie postaci formularza:
BAZY DANYCH MS Access.
Modelowanie model związków encji
Bazy Danych Wprowadzenie
Elżbieta Mrówka - Matejewska Konsultacje środy godz. 15:00-16:00 oraz soboty zjazdów potoku II godz. 13:30 pokój 210, tel
Bazy danych. Baza danych (database) – magazyn danych – informacji powiązanych tematycznie, umożliwiający ich wyszukiwanie według zadanych kryteriów Baza.
Temat: Tworzenie bazy danych
Technologie informacyjne w administracji publicznej
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Technologie Informacyjne Bazy danych
Technologie informacyjne w administracji publicznej
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

Bazy danych 1 Literatura: Paul Benon-Davies – Systemy baz danych C. J. Date – Wprowadzenie do systemów baz danych Lech Banachowski, et. al. – Bazy danych, Wykłady i ćwiczenia

Baza danych Baza danych – kolekcja danych zapisanych zgodnie z określonymi regułami Bazę danych możemy uważać za zbiór danych, których zadaniem jest reprezentowanie pewnego obszaru analizy Dane to fakty Fakty same w sobie nie mają znaczenia Aby były użyteczne, muszą zostać zinterpretowane Zinterpretowane dane to informacje Informacje to dane z przypisaną im semantyką - znaczeniem

Krótka historia Ręczne zarządzanie zapisami (4000 p.n.e -1900 n.e.) Zarządzanie zapisami na kartach perforowanych (1900-1955) Programowane zarządzanie zapisami (1955-1970) Sieciowe zarządzanie danymi on-line (1965-1980) Relacyjne zarządzanie danymi (1980-1995) Multimedialne bazy danych (1995- )

Chronologia modeli danych Dedukcyjny Obiektowy Postrelacyjny Semantyczny Relacyjny Sieciowy Hierarchiczny 1960 1970 1980 1990

Obszar analizy: Baza faktów Zbiór danych, których zadaniem jest reprezentowanie pewnego obszaru analizy Trwałość Przez trwałość rozumiemy, że dane są przechowywane przez jakiś czas

Baza danych: Część intensjonalna Zbiór definicji, które opisują strukturę bazy danych – schemat bazy danych Część ekstensjonalna Łączny zbiór danych w bazie danych

Obszar analizy: Integralność Reguła, która określa, w jaki sposób baza danych ma pozostać dokładnym odzwierciedleniem swojego obszaru analizy Więzy integralności: połączenie trzech koncepcji: dokładność (ang. accuracy), prawdziwość (ang. correctness), aktualność (ang. validity) Redundancja (nadmiarowość)

Jakość schematu bazy danych Poprawność modelu – to co w modelu jest zgodne z rzeczywistością Istotność każdego elementu dla funkcjonowania firmy Pełność modelu – gwarancja, że żaden element modelu danych, istotny dla funkcjonowania firmy nie został pominięty

Konstruowanie baz danych Świat rzeczywisty Analiza wymagań Modelowanie perspektyw Modelowanie koncepcyjne Integracja perspektyw Analiza Ilościowa, użycia, integralności Modelowanie logiczne Modelowanie fizyczne Decyzje wdrożeniowe Baza danych

Właściwości baz danych Współdzielenie baz danych – baza danych może być użytkowana przez więcej niż jedną osobę Integracja danych – baza danych jest zbiorem danych nie mających cech redundancyjnych (atrybut ma dwie lub więcej dane identyczne lub wartość można usunąć bez straty informacji) Integralność danych – baza danych dokładnie odzwierciedla obszar analizy, którego ma być modelem

Właściwości baz danych cd. Bezpieczeństwo danych – ograniczenie dostępu, zabezpieczenie bazy danych Abstrakcja danych – informacje przechowywane w bazie danych są próba reprezentowania właściwości niektórych obiektów w świecie rzeczywistym Niezależność danych – dane są oddzielone od procesów, które używają tych danych

System Zarządzania Bazą Danych (SZBD) Zorganizowany zbiór narzędzi umożliwiający dostęp i zarządzanie jedną lub wieloma bazami danych Funkcje: Pielęgnacja danych Wyszukiwanie danych Kontrola danych

Poziomy relacyjnej bazy danych poziom fizyczny – zbiór plików z danymi i z indeksami poziom logiczny (koncepcyjny) – zbiór tabel, perspektyw i indeksów poziom użytkowy – widoki na dane, którymi posługuje się użytkownik indeks – to dodatkowa struktura danych, umożliwiająca szybki dostęp do wierszy tabeli na podstawie wartości w określonej kolumnie lub kolumnach, np. indeks zbudowany na kolumnie Nazwisko umożliwia szybkie wyszukanie danych wykładowcy w oparciu o jego nazwisko. Przypomina indeks (skorowidz) w książce.

Architektura klient-serwer Dwie części aplikacji bazodanowych: strona klienta – na stacji roboczej użytkownika strona serwera – na komputerze zawierającym serwer bazy danych, czyli bazę danych wraz z systemem zarządzania bazą danych (SZBD)

Architektura klient-serwer cd. Funkcje aplikacji po stronie serwera bazy danych przechowywanie i organizacja dostępu do danych wykonywanie instrukcji języka baz danych (SQL) sprawowanie kontroli nad spójnością danych zarządzanie zasobami bazy danych, w tym kontami użytkowników

Architektura klient-serwer cd. Funkcje aplikacji po stronie klienta kontakt z użytkownikiem (interfejs użytkownika) wyjaśnienie użytkownikowi stanu obliczeń, w tym błędów i sytuacji wyjątkowych przyjmowanie od niego zleceń na operacje, wykonywanie tych zleceń lub przesyłanie ich w postaci instrukcji języka SQL do serwera bazy danych

Modele danych: Diagramy związków encji, diagramy E-R (entity-relationship) Encja - reprezentacja wyobrażonego lub rzeczywistego obiektu (grupy obiektów) stosowana przy modelowaniu danych podczas analizy informatycznej. Formalnie jest to pojęcie niedefiniowalne, a podstawową cechą encji jest to, że jest rozróżnialna od innych encji. Przykłady encji (i atrybuty w encji): Osoba (imię, nazwisko, PESEL) Pojazd (wysokość, szerokość, długość, sposób poruszania się)

Modelowanie związków encji Modelowanie związków encji obejmuje identyfikowanie rzeczy ważnych w analizowanym przedsiębiorstwie encji, własności tych rzeczy (atrybutów) sposobów, jakimi te encje są ze sobą powiązane (związków)

Moduły i studenci są przykładami rzeczy istotnych dla uniwersytetu Moduły i studenci są przykładami rzeczy istotnych dla uniwersytetu. Takie istotne obiekty nazywamy klasami lub encjami Encje maja właściwości lub atrybuty, np. studenci mają nazwiska, adres, numery telefonów

Atrybuty encji Atrybut jest dowolnym szczegółem służącym do kwalifikowania, identyfikowania, klasyfikowania, określania ilości lub wyrażania stanu encji (atrybut jest dowolnym opisem mającym znaczenie dla encji) Atrybut musi opisywać encję, przy której występuje Nazwa atrybutu musi być podana w liczbie pojedynczej Każda encja musi być jednoznacznie zidentyfikowana przez kombinację atrybutów i/lub związków

Związek Związek jest nazwanym, istotnym powiązaniem istniejącym między dwiema encjami. • W szczególnym przypadku związek może być powiązaniem tej samej encji ze sobą • Każdy związek ma dwa końce, z których każdy ma przypisaną: nazwę stopień opcjonalność • Nazwy związku powinny być tak dobierane, aby możliwe było budowanie zdań w języku naturalnym, np. pracownik posiada samochód  

Relacyjny model danych Edgar Codd (1970) baza danych jest zbiorem relacji relacja: podzbiór iloczynu kartezjańskiego zbiorów wartości

Relacja Reprezentacją relacji jest dwuwymiarowa tabela złożona z kolumn i wierszy Każda relacja w bazie danych ma jednoznaczną nazwę Każda kolumna w relacji ma jednoznaczną nazwę w ramach jednej relacji Wszystkie wartości w kolumnie muszą być tego samego typu – są zdefiniowane w tej samej dziedzinie Porządek kolumn w relacji nie jest istotny Każdy wiersz w relacji musi być różny – nie są dozwolone powtórzenia Porządek wierszy nie jest istotny Każde pole leżące na przecięciu kolumna/wiersz w relacji powinno zawierać wartość atomową – zbiór wartości nie jest dozwolony na jednym polu relacji

Przykład: Tabela Wykładowy NrPrac Nazwisko Status 237 Kowalski L 247 Nowak SL 445 Malinowski PL Tabela Moduły NazwaModułu Poziom Kod NrPrac Systemy relacyjnych baz danych 1 CDS 244 Projektowanie systemów informacyjnych Technologie internetowe 4 445 Programowanie obiektowe Systemy decyzyjne 2 247

Czy to jest relacja? Podstawy księgowości KodKursu NazwaPrzedmiotu CSD Relacyjne bazy danych Projektowanie systemów informacyjnych Dedukcyjne bazy danych Obiektowe bazy danych Rozproszone bazy danych BSD Wprowadzenie do biznesu Podstawy księgowości kolumna NazwaPrzedmiotu zawiera klika wartości

Znaczenie NrPrac z relacji Moduły jego wartość NIE opisuje cechy wykładu reprezentuje związek przedmiotu z wykładowcą, o którym informacja znajduje się w innej tabeli istotne jest, aby ten identyfikator jednoznacznie określał danego wykładowcę NazwaModułu Poziom Kod NrPrac Systemy relacyjnych baz danych 1 CDS 244 Projektowanie systemów informacyjnych Technologie internetowe 4 445 Programowanie obiektowe Systemy decyzyjne 2 247

Klucz główny i jednoznaczny dla każdej tabeli musi być określony jednoznaczny identyfikator nazwany kluczem głównym – jedna lub więcej kolumn, w których wartości jednoznacznie identyfikują cały wiersz klucz kandydujący (alternatywny) ma tę samą właściwość co klucz główny, przy czym klucz główny jest tylko jeden, kluczy jednoznacznych w tabeli może być więcej niż jeden w tabeli Wykładowcy kluczem głównym jest NrPrac w tabeli Wykładowcy kluczem głównym jest IDWykładowcy. Nazwisko nie musi być kluczem

Klucz obcy Klucz obcy jest sposobem łączenia danych przechowywanych w różnych tabelach Klucz obcy jest to jedna lub więcej kolumn, których wartości występują jako wartości ustalonego klucza głównego lub kandydującego w tej lub innej tabeli i są interpretowane jako wskaźniki do wierszy w tej drugiej tabeli w tabeli Przedmioty kluczem obcym jest IDWykładowcy, którego wartości pochodzą z kolumny IdWykładowcy w tabeli Wykładowcy. Na przykład, wartość 1237 występująca w wierszu przedmiotu „Bazy danych” tabeli Przedmioty stanowi odwołanie do wiersza w tabeli Wykładowcy, w którym są zapisane informacje o wykładowcy o nazwisku „Kowalski”

NULL – „brak wartości” Dziedziny kolumn są rozszerzone o specjalny obiekt Null – oznaczający brak wartości chwilowy brak wynikający z istoty rzeczy Wszystkie porównania i operacje na danych, w argumentem jest Null, dają w wyniku Null (również Null = Null )

Logika trójwartościowa koniunkcja AND True False Null true false null alternatywa OR True False Null true false null negacja NOT True False Null false true null

Więzy spójności danych Warunki poprawności danych w relacjach dla pojedynczych wartości w wierszu np. 0<Wiek<140 dla kilku wartości w wierszu np. Data_urodzenia<Data_zatrudnienia Więzy klucza głównego, klucza kandydującego Więzy NOT NULL Więzy referencyjne (więzy spójności referencyjnej): wartość klucza obcego może być albo Null albo musi występować jako wartość powiązanego z nim klucza głównego inne

Utrzymywanie integralności referencyjnej Weźmy pod uwagę relację Wykładowcy Co się stanie z powiązanymi danymi, jeśli usuniemy jakiegoś wykładowcę: ograniczone usuwanie – zabraniamy usunąć wiersz wykładowcy dopóty, dopóki nie będą usunięte wszystkie wiersze jego modułów kaskadowe usuwanie – jeśli usuniemy wiersz wykładowcy, są jednocześnie usuwane wszystkie powiązane z nim moduły wstaw null przy usuwaniu – jeśli usuwamy wiersz wykładowcy, numery pracowników w powiązanych wierszach modułów ustawiamy na null

Diagramy związków encji – modelowanie danych Metoda „z góry na dół” analizy danych (odwrotnie niż przy normalizacji) Model rzeczy istotnych dla przedsiębiorstwa Model danych jest reprezentowany przy użyciu konstrukcji diagramu związków encji (E-R) Encja jest abstrakcją złożoności pewnej dziedziny!!!

Encje Związek Atrybuty Jeżeli trzeba przechowywać dane na temat wielu właściwości jakiejś rzeczy, to taka rzecz jest prawdopodobnie encją Związek jest powiązaniem między encjami Atrybuty Wartości przypisywanych atrybutom używamy, aby odróżnić jedna encję od drugiej encja jest scharakteryzowana pewną liczbą właściwości lub atrybutów

Metoda E-R Encje Związki Atrybuty Wykład Moduł Student Wykład Moduł NazwiskoStudenta DataUrStuenta NazwaModułu Poziom

Liczebność (stopień) związek jeden do jeden - 1:1 Konto bankowe należy najwyżej do jednego klient Klient może mieć najwyżej jedno konto bankowe Klient KontoBankowe

Liczebność cd. związek jeden do wiele - 1:M Klient ma wiele kont bankowych Konto bankowe należy najwyżej do jednego klienta Klient KontoBankowe

Liczebność cd. Związek wiele do wiele – M:N Klient ma wiele kont bankowych Konto bankowe może należeć do wielu klientów Klient KontoBankowe

Uczestnictwo (opcjonalność) Każdy wykładowca musi być zatrudniony na wydziale Wydział może istnieć bez żadnego wykładowcy Klient Klient KontoBankowe KontoBankowe

Związki rekurencyjne Związek jednoargumentowy Moduł może mieć określoną liczbę wymaganych (przed nim) modułów Moduł może stanowić wymaganie dotyczące innych modułów Wymaganie Moduł

Uproszczenie związków wiele do wiele dwa związki jeden do wiele NrStudenta NrStudenta Student Student NrStudenta Rejestracja Aby uprościć proces przekształcenia w schemat relacyjny, zaleca się zastąpienie w modelu danych każdego związku wiele do wiele dwoma związkami jeden do wilel Moduł Moduł NazwaModułu NazwaModułu NazwaModułu

Modelowanie czasu Kurs Student NrStudenta KodKursu Kurs Student Zapis KodKursu DataZapisu NrStudenta

Przekształcenie w schemat relacyjny Diagram E-R trzeba przekształcić w schemat relacyjny: Dla każdej encji tworzymy tabelę Identyfikujący atrybut encji staje się kluczem głównym tabeli Wszystkie inne atrybuty stają się niegłównymi atrybutami tabeli Dla każdego związku jeden do wiele wstawiamy klucz główny tabeli ze strony jeden linii związku do tabeli reprezentujących stronę wiele linii związku Opcjonalność mówi, czy klucz obcy może być null czy nie

Operowanie danymi Jak wstawiamy dane do relacji? Jak usuwamy dane z relacji? Jak poprawiamy dane w relacji? Jak wyszukujemy dane w relacji? Wyszukiwanie w relacyjnym modelu danych jest wykonywane przy użyciu operatorów znanych jako algebra relacyjna

Algebra relacyjna Zbiór ośmiu operatorów Każdy operator bierze jedną lub więcej relacji jako argument i produkuje jedną relację jako wynik Trzy główne operatory: restrykcja rzut złączenie

Algebra relacyjna cd. Dodatkowe operatory iloczyn suma przecięcie różnica iloraz Nie ma standardowej składni operatorów algebry relacyjnej. Przedstawiona poniżej ma na celu wyjaśnienie, a nie narzucenie standardu

Restrykcja (selekcja) jest operatorem, który bierze jedną relację jako argument i produkuje w wyniku jedną relację „pozioma maszyna do cięcia” – wydobywa z wejściowej relacji wiersze Składnia: RESTRICT <nazwa tabeli> [WHERE <warunek>] → <tabela wynikowa>

Restrykcja cd. RESTRICT Moduły WHERE Poziom=1 → R1 R1 NazwaModułu Kod NrPrac Systemy relacyjnych baz danych 1 CSD 1237 Projektowanie relacyjnych baz danych 3245

Rzut operator rzut (project) bierze jedną relację jako swój argument i produkuje jedną relację wynikową „pionowa maszyna do cięcia” – tworzy na wyjściu relację będącą podzbiorem kolumn z relacji wejściowej Składnia: PROJECT <nazwa tabeli> [<lista kolumn>] →<tabela wynikowa>

Rzut cd. Np. PROJECT Moduły(NazwaModułu) → →R1 NazwaModułu Rozproszone bazy danych Obiektowe bazy danych Dedukcyjne bazy danych Systemy relacyjnych baz danych Projektowanie relacyjnych baz danych

Iloczyn złączenia są oparte na relacyjnym operatorze kartezjańskim Brane są dwie relacje jako argumenty i produkowana jedna relacja wynikowa złożona ze wszystkich możliwych kombinacji wierszy z wejściowych tabel

Równozłączenie EQUINJOIN - jest iloczynem kartezjańskim, po którym wykonywana jest restrykcja Składnia EQUINJOIN <tabela 1> WITH <tabela 2> →<tabela wynikowa> łączymy dwie tabele, ale tylko dla wierszy, w których wartości w kolumnach są taki same. Zakładamy, że klucz główny jednej z tabel i klucz obcy drugie tabeli tworzą domyślnie kolumny złączenia

Równozłączenie cd. EQUINJOIN Wykładowcy WITH Moduły → R1 Nazwa przedmiotu Poziom Kod NrPrac NazwiskoPrac Status Systemy relacyjnych baz danych 1 CDS 244 Kowalski L Projektowanie systemów informacyjnych Technologie internetowe 4 445 Nowak PL Programowanie obiektowe Systemy decyzyjne 2 247 Malinowski SL Łączymy dwie tabele, ale tylko dla wierszy, w których wartości w kolumnach złączenia są takie same (nie są usuwane powtórzenia )

Złączenie naturalne usuwa jedną z powtarzających się kolumn złączenia JOIN <tabela 1> WITH <tabela 2> →<tabela wynikowa> JOIN Wykładowcy WITH Moduły → R1

Złączenie naturalne cd. Nazwa przedmiotu Poziom Kod NrPrac NazwiskoPrac Status Systemy relacyjnych baz danych 1 CDS 244 Kowalski L Projektowanie systemów informacyjnych Technologie internetowe 4 445 Nowak PL Programowanie obiektowe Systemy decyzyjne 2 247 Malinowski SL

Złączenie zewnętrzne Rozszerzamy zawartość bazy w oparciu o logikę trójwartościową Złączenie naturalne zdefiniowane jest tak, aby produkować wynik z dwóch wejściowych relacji R i S, złożony tylko z tych wierszy z R, które mają odpowiadające sobie wiersze w S i odwrotnie

Moduły Wykładowcy NazwaModułu Poziom Kod NrPrac Systemy relacyjnych baz danych 1 CDS 244 Projektowanie systemów informacyjnych Dedukcyjne bazy danych 4 445 Obiektowe bazy danych Rozproszone bazy danych 2 247 Opracowanie baz danych null Administrowanie danymi NrPrac Nazwisko Status 244 Kowalski L 247 Nowak SL 124 Wójcik 145 Gmoch 445 Malinowski PL Wykładowcy

Złączenie lewostronne – zachowuje nie pasujące wiersze z tabeli będącej pierwszym argumentem operatora złączenia NazwaModułu Poziom Kod NrPrac NazwiskoPrac Status Systemy relacyjnych baz danych 1 CDS 244 Kowalski L Projektowanie systemów informacyjnych Dedukcyjne bazy danych 4 445 Nowak PL Obiektowe bazy danych Rozproszone bazy danych 2 247 Malinowski SL Opracowanie baz danych null Administrowanie danymi

Złączenie prawostronne NazwaModułu Poziom Kod NrPrac NazwiskoPrac Status Systemy relacyjnych baz danych 1 CDS 244 Kowalski L Projektowanie systemów informacyjnych Dedukcyjne bazy danych 4 445 Nowak PL Obiektowe bazy danych Rozproszone bazy danych 2 247 Malinowski SL null 124 Wójcik 145 Gmoch

Dwustronne złączenie zewnętrzne Nazwa przedmiotu Poziom Kod NrPrac NazwiskoPrac Status Systemy relacyjnych baz danych 1 CDS 244 Kowalski L Projektowanie systemów informacyjnych Dedukcyjne bazy danych 4 445 Nowak PL Obiektowe bazy danych Rozproszone bazy danych 2 247 Malinowski SL null 124 Wójcik 145 Gmoch Opracowanie baz danych Administrowanie danymi

Suma operator, który bierze dwie zgodne relacje jako argumenty i produkuje jedną relację wynikową Zgodne relacje – tabele mają taką samą strukturę – te same kolumny określone są na tych samych dziedzinach <tabela 1> UNION <tabela 2> →<tabela wynikowa>

Suma cd. Wykładowcy UNION Administratorzy → R1 NrPrac Nazwisko Status 1001 Zieliński Urzędnik 1024 Suoski Starszy urzędnik 445 Kowalski PL Administratorzy Wykładowcy UNION Administratorzy → R1 NrPrac Nazwisko Status 1001 Zieliński Urzędnik 1024 Suoski Starszy urzędnik 445 Kowalski PL 247 Nowak SL 124 Wójcik L 145 Gmoch

Przecięcie działanie przeciwne do sumy (wiersze wspólne) <tabela 1> INTERSECTION <tabela 2> →<tabela wynikowa> Wykładowcy INTERSECTION Administratorzy →R1 Pracownicy, którzy są jednocześnie wykładowcami i administratorami NrPrac Nazwisko Status 445 Kowalski PL

Iloraz jedna z tabel musi być binarną (mieć dwie kolumny) druga tabela musi być unarna (jedna kolumna) Tabela unarna musi być zdefiniowana na tej samej dziedzinie co jedna z kolumn w tabeli binarnej

DniModułu DIVISION ParyModułu →R1 NazwaModułu Dzień Systemy relacyjnych baz danych 19/12/1998 Projektowanie systemów informacyjnych 12/12/1998 Obiektowe bazy danych 20/12/1998 DniModułu NazwaModułu Systemy relacyjnych baz danych Projektowanie systemów informacyjnych ParyModułu Chcemy znaleźć wspólny dzień, w którym wykładane są moduły Systemy relacyjnych baz danych oraz Projektowanie DniModułu DIVISION ParyModułu →R1 Dzień 19/12/1998 R1

Normalizacja Każdy fakt przechowywany w bazie danych powinien być wyrażalny w niej tylko na jeden sposób informacja o przedmiocie powinna być zapisana tylko w jednym miejscu (a nie przy każdym studencie, który uczęszcza na zajęcia z tego przedmiotu) jeżeli w bazie danych zapisujemy informacje o rodzicach każdej osoby, nie ma już potrzeby zapisywać informacji o dziadkach, gdyż ta informacja daje się wyprowadzić z informacji i rodzicach jeżeli w modelu firmy lotniczej Pasażer i Pracownik to dwie odrębne tabele, to jedna osoba może figurować w bazie danych – raz jako pasażer, a raz jako pracownik firmy lotniczej. Wówczas dane dotyczące takiej osoby będą zapisane w dwóch różnych miejscach

Normalizacja Zbierz zbiór danych Przekształć nieznormalizowany zbiór danych w tabele w pierwszej postaci normalnej Przekształć tabelę z pierwszej postaci normalnej w drugą postać normalną Przekształć tabelę z drugiej postaci normalnej w trzecią postać normalną

Notacja nawiasowa Moduły(NazwaModułu, NrPrac) Wykładowcy(NrPrac, NazwaPrac) Oceny(NazwaModułu, NrStudenta, typOceny, Ocena) Studenci(NrStudenta, Student)

Normalizacja Dostawcy(Nazwa_dostawcy, Adres, Nazwa_towaru, Cena) Kowalski Wiolinowa 7 Telewizor 1500 Radio 500 Jaworski Mozarta 5 1800 Komputer 5000 Baterie 5 Marciniak Warszawska 1 Magnetowid 1000 Redundancja: adres dostawcy powtarza się dla każdego dostarczonego towaru Anomalie przy modyfikacji: uaktualniony adres w jednym wierszu pozostaje niezmieniony w innych anomalie przy wstawianiu: trudno wstawić dostawcę bez towarów; towar wchodzi w skład klucza – nie może być null Anomalie przy usuwaniu: usuwając informacje o wszystkich towarach dostarczonych przez dostawcę (mógł zmienić profil), usuwamy informacje o samym dostawcy

Przyczyna: złączenie w jednej tabeli dwóch różnych obiektów Dostawcy(Nazwa_dostawcy, Adres) Towary(Nazwa_dostawcy, Nazwa_towaru, Cena)

Nieznormalizowany zbiór danych Moduły NazwaModułu NrPrac NazwiskoPrac Nr Studenta Student Ocena Typ-Oceny Systemy relacyjnych baz danych 234 Daniec 34698 Saniewski S. B3 cwk1 B2 cwk2 37798 Janosik S. B1 34888 Patel P. Projektowanie systemów informacyjnych Saniewski S Obiektowe bazy danych 345 Emski 34668 Saniewski J. A1 egz

Zależność/determinowanie Mówimy, że dwa elementy danych A i B są w związku zależności lub związku determinowania, jeżeli pewne wartości elementu danych B zawsze występują z pewnymi wartościami elementu danych A zależności funkcyjne (jednowartościowe) zależności wielofunkcyjne (wielowartościowe) Mówimy, ze element B jest funkcjonalnie zależny od elementu danych A, jeżeli dla każdej wartości A istnieje jedna, jednoznacznie określona wartość B W takim związku element danych A jest nazywany elementem determinującym, a element B determinowanym

Nieznormalizowany zbiór danych Moduły bez powtórzeń NazwaModułu NrPrac NazwiskoPrac NrStudenta Student Ocena Typ-Oceny Systemy relacyjnych baz danych 234 Daniec 34698 Saniewski S. B3 cwk1 B2 cwk2 37798 Janosik S. B1 34888 Patel P. Projektowanie systemów informacyjnych Obiektowe bazy danych 345 Emski 34668 Saniewski J. A1 egz

Pierwsza postać normalna Relacja jest w pierwszej postaci normalnej 1PN, wtedy i tylko wtedy, gdy każdy atrybut niekluczowy jest funkcjonalnie zależny od klucza głównego

Atrybuty NrStudenta, Student, Ocena i TypOceny nie są funkcyjnie zależne od wybranego przez nas klucza głównego NazwaModułu Artybuty NrPrac, NazwiskoPrac są funkcyjnie zależne od klucza głównego Tworzymy dwie tabele: jedną dla atrybutów funkcyjnie zależnych drugą dla niezależnych

Oceny 34698 B3 cwk1 B2 cwk2 37798 B1 34888 34668 A1 egz NazwaModułu NrStudenta Student Ocena Typ-Oceny Systemy relacyjnych baz danych 34698 Saniewski S. B3 cwk1 B2 cwk2 37798 Janosik S. B1 34888 Patel P. Projektowanie systemów informacyjnych Obiektowe bazy danych 34668 Saniewski J. A1 egz

Moduły 234 Daniec 345 Emski NazwaModułu NrPrac NazwiskoPrac Systemy relacyjnych baz danych 234 Daniec Projektowanie systemów informacyjnych Obiektowe bazy danych 345 Emski

Druga postać normalna Relacja jest w drugiej postaci normalnej (2PN) wtedy i tylko wtedy gdy jest w 1PN i każdy atrybut niekluczowy jest w pełni funkcyjnie zależny od klucza głównego usuwamy zależności od części klucza. Badamy te tabele, które mają klucze złożone, i dla każdego niekluczowego elementu danych tabeli – pytamy, czy ten element danych nie jest jednoznacznie identyfikowany przez część klucza złożonego usuwamy zależność od części klucza

Rozdzielamy determinujące i zależne elementy danych na osobne tabele Tabela Oceny: klucz złożony z trzech części NazwaModułu, NrStudenta i TypOceny NazwaModułu nie ma wpływu na Studenta NrStudenta sam definiuje Studenta (nazwisko) Rozdzielamy determinujące i zależne elementy danych na osobne tabele

Moduły 234 Daniec 345 Emski Studenci 34698 37798 34888 34668 NazwaModułu NrPrac NazwiskoPrac Systemy relacyjnych baz danych 234 Daniec Projektowanie systemów informacyjnych Obiektowe bazy danych 345 Emski Studenci NrStudenta Student 34698 Saniewski S. 37798 Janosik S. 34888 Patel P. 34668 Saniewski J.

Oceny 34698 B3 cwk1 B2 cwk2 37798 B1 34888 34668 A1 egz NazwaModułu NrStudenta Ocena Typ-Oceny Systemy relacyjnych baz danych 34698 B3 cwk1 B2 cwk2 37798 B1 34888 Projektowanie systemów informacyjnych Obiektowe bazy danych 34668 A1 egz

Trzecia postać normalna Relacja jest w trzeciej postaci normalnej wtedy i tylko wtedy, gdy jest w 2PN i każdy niekluczowy atrybut jest bezpośrednio zależny ( a nie przechodnio zależny) od klucza głównego usuwamy zależności przechodnie między danymi

Tabela Moduły: NrPrac determinuje NazwPrac NazwPrac nie jest przechodnio zależny od NazwaModułu

Moduły Wykładowcy Studenci NazwaModułu NrPrac Systemy relacyjnych baz danych 234 Projektowanie systemów informacyjnych Obiektowe bazy danych 345 Wykładowcy Studenci NrPrac NazwiskoPrac 234 Daniec 345 Emski NrStudenta Student 34698 Saniewski S. 37798 Janosik S. 34888 Patel P. 34668 Saniewski J.

Przysięga normalizacji Bez powtórzeń Pola zależą od klucza Od całego klucza I niczego innego, tylko klucza Tak mi dopomóż Codd.

The key, the whole key and nothing but the key. So help me Codd

Normalizacja Normalizacja - proces rozkładu odwracalnego, rozpoczyna się od jednej (uniwersalnej) relacji Anomalie są stopniowo usuwane za pomocą ciągu rzutów wymaga, aby cały zbiór danych był w pełni określony