Dr inż. Andrzej Macioł http://amber.zarz.agh.edu.pl/amaciol/ Bazy danych dr inż. Andrzej Macioł http://amber.zarz.agh.edu.pl/amaciol/

Slides:



Advertisements
Podobne prezentacje
S – student, P – przedmiot, W – wykładowca
Advertisements

Relacyjny model danych
Relacyjny model danych
Komponenty bazy danych Baza danych Jest to uporządkowany zbiór powiązanych ze sobą danych charakterystycznych dla pewnej klasy obiektów lub zdarzeń,
WPROWADZENIE DO BAZ DANYCH
MS Access 2000 Normalizacja Paweł Górczyński 2005.
Inteligentne Systemy Informacyjne
Normalizacja : Głównym celem projektowania bazy przeznaczonej dla systemu relacyjnego jest właściwa reprezentacja danych, związków i więzów. W identyfikowaniu.
Projektowanie relacyjnych baz danych
Projektowanie i programowanie obiektowe II - Wykład IV
Projektowanie i programowanie obiektowe II - Wykład II
Modele baz danych - spojrzenie na poziom fizyczny
Bazy danych dr inż. Andrzej Macioł
Bazy danych – model relacyjny
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
Zależności funkcyjne.
PROJEKTOWANIE TABEL W PROGRAMIE: ACCESS
Podstawy programowania
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.
Bazy danych 1 Literatura: Paul Benon-Davies – Systemy baz danych
Programowanie obiektowe 2013/2014
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Bazy danych – model relacyjny – cz. 2
1 Każdy obiekt jest scharakteryzowany poprzez: tożsamość – daje się jednoznacznie wyróżnić; stan; zachowanie. W analizie obiektowej podstawową strukturą
Bazy danych - podstawowe pojęcia
Normalizacja.
Modelowanie obiektowe Diagramy klas
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
Definiowanie kluczy w tabelach RBD
Programowanie strukturalne i obiektowe C++
Model obiektowy bazy danych
Slajd 1© J.Rumiński Jacek Rumiński  Bazy danych Kontakt: Katedra Inżynierii Biomedycznej, pk. 106, tel.: , fax: ,
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Projektowanie relacyjnych baz danych – diagramy związków encji
Dr inż. Andrzej Macioł Bazy danych dr inż. Andrzej Macioł
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
Prezentacja programu PowerPoint
Temat: Tworzenie bazy danych
Indeksy.
Nieprawidłowo zaprojektowana tabela
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Czym są i jak służą społeczeństwu?
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

dr inż. Andrzej Macioł http://amber.zarz.agh.edu.pl/amaciol/ Bazy danych dr inż. Andrzej Macioł http://amber.zarz.agh.edu.pl/amaciol/

Ontologia Dziedzina metafizyki, która para się badaniem i wyjaśnianiem natury jak i kluczowych właściwości oraz relacji rządzących wszelakimi bytami bądź głównymi zasadami i przyczynami bytu jak można wszystko poklasyfikować?, jakie klasy bytów są niezbędne do opisu i wnioskowania na temat zachodzących procesów? jakie klasy bytu pozwalają wnioskować o prawdzie? na podstawie jakich klas bytu można wnioskować o przyszłości?

Byt Wszystko co jest może być bytem: kot Mruczek, Andrzej Macioł, towar w sklepie, indeks studenta itd. Konstruując ontologię formułujemy zestaw komunikatów, którymi możemy opisać byty, np.: kot Mruczek ma cztery łapy

Kategoryzacja Umiejętność zaliczania obiektów do pewnych klas (kategorii, pojęć) Kot Mruczek ma cztery łapy, sierść, ogon itd. ale takie same cechy mają kot Pimpuś, Gienek itd. Wystarczy przyjąć, że istnieje pojęcie (kategoria) kot charakteryzująca się tym, że obiekty do niej należące mają cztery łapy, sierść i ogon itd.

Trójkąt znaczeniowy www.jfsowa.com/ontology/ontometa.htm

Hierarchizacja Koty rodzą się żywe i piją mleko matki ale to samo dotyczy np. psów, które kotami nie są Możemy wprowadzić pojęcie ssaki, które obejmuje zarówno koty jak i psy Wystarczy wówczas powiedzieć że Mruczek jest kotem by wiedzieć o nim wszystko to co dotyczy kotów i ssaków

Model danych Dana - symboliczna reprezentacja pewnego faktu opisującego rzeczywistość Dane poszerzone o semantykę to informacje Obiekt to niepodzielna jednostka danych, która opisywana być może krotką<nawa obiektu, cecha obiektu, wartość cechy> Krotka, zwana czasem n-tką, to uogólnienie pary (dwójki), trójki, czwórki, itd. na dowolną liczbę elementów. Krotka n-elementowa to uporządkowany skończony zbiór elementów (lista pewnych obiektów) przy czym kolejne elementy krotki nie muszą należeć do tego samego zbioru.

Kategorie Jeżeli mamy do czynienia ze zbiorem wielu podobnych obiektów to dążymy do ujednorodnienia ich opisu co sprowadza się do przypisania wielu w istocie różnym ale podobnym obiektom tych samych cech (różniących się być może wartościami) W ten sposób możemy stworzyć pewien byt abstrakcyjny, który sam w sobie nie jest obiektem i nazwać go kategorią Kategorii przypiszemy pewien zestaw cech, którymi opisywać będziemy wszystkie obiekty do niej należące

Związki Związek to trwała lub tymczasowa zależność występująca pomiędzy obiektami i możliwa do zapisania w modelu danych W niektórych przypadkach używane jest pojęcie asocjacji wskazujące na możliwość kojarzenia ze sobą pewnych obiektów lub pojęcie relacji Reguły opisujące konsekwencje wynikające z charakteru związku nazywać będziemy więzami

Zasady modelowania danych każdy obiekt opisywany jest przez zestaw cech (atrybutów) z jednoznacznie określoną dziedziną, użytecznych z punktu widzenia wartości informacyjnej ontologii każdy obiekt w tej samej kategorii musi być opisany zgodnie z tym samym wzorcem (choć w niektórych przypadkach nie wszystkie atrybuty obiektu muszą być podane)

Zasady modelowania danych musi istnieć możliwość rozróżnienia obiektów, które w rzeczywistości są różne musi istnieć możliwość przedstawienia związków jakie zachodzą lub mogą zajść pomiędzy obiektami musi istnieć możliwość wprowadzenia do modelu dodatkowych ograniczeń wartości cech wynikających ze związków danych a nie tylko z dziedziny wartości atrybutów

Abstrakcja Z abstrakcją mamy do czynienia, gdy wychodząc od rzeczy jednostkowych, konkretnych i indywidualnych dochodzimy, przez proces uogólniania i poszukiwania cech stałych i wspólnych, do pojęcia tak ogólnego, że w swej ogólności wręcz absurdalnego, gdyż nie posiadającego żadnej konkretnej cechy Mówimy o dwóch sposobach stosowania abstrakcji. Pierwszy z nich to uogólnienie a drugi to agregacja

Uogólnienie Uogólnienie polega na próbie klasyfikacji i generalizacji opisów pewnych obiektów (wystąpień) i tworzeniu z nich bardziej ogólnych zbiorów cech (opisów) Uogólnianie cech obiektów prowadzące do stworzenia kategorii jest także abstrakcją W modelowaniu danych abstrakcję tą nazywamy nie uogólnieniem ale klasyfikacją

Uogólnienie - przykład

Klasa (kategoria) i obiekty – bez uogólnienia

Klasa (kategoria) i obiekty uogólnione

Klasa (kategoria) i obiekty uogólnione

Agregacja Agregacja polega na traktowaniu obiektu lub kategorii (typu) jako zbioru składowych obiektów lub kategorii Agregacja to nie tylko wskazanie z jakich atrybutów składa się opis obiektu ale także jakie obiekty tworzą obiekt o bardziej złożonej strukturze

Przykładowy opis obiektu

Schemat agregacji

Uogólnienie i agregacja Oba sposoby abstrakcji wykorzystujemy często łącznie Jest to konieczne w wielu przypadkach gdy dokonujemy abstrakcji na poziomie nie tylko obiektów ale także kategorii Na różnym poziomie abstrakcji różny będzie charakter związków i więzi

Przykładowy opis obiektu

Przykładowy opis obiektu tej samej kategorii

Przykładowy opis obiektu tej samej kategorii

Schemat abstrakcji

Baza danych – próba definicji Baza danych to zbiór danych dotyczących wyróżnionego obszaru zorganizowanych we wzajemnie powiązane pliki Jej istotą jest wewnętrzna struktura i organizacja, która pozwala na zaspokojenie potrzeb jednego lub wielu użytkowników bez uprzedniego sortowania w różne pożądane struktury potrzebne do przetwarzania lub bezpośredniego udzielania informacji

Baza danych – próba definicji Dzięki wewnętrznej organizacji stanowiącej integralną część bazy danych, korzystanie z jej zawartości jest niezależne od oprogramowania i sprzętu Według J. Martina baza danych to zbiór wystąpień różnych typów rekordów oraz opisów powiązań między rekordami, danymi zagregowanymi i danymi elementarnymi

Baza danych - właściwości współdzielenie danych, a więc możliwość spełniania potrzeb wielu użytkowników nie raz w jednym czasie integracja danych gwarantująca, że dane i związki między nimi nie powtarzają się jeśli nie jest to konieczne ale wszelkie zmiany w obrębie bazy nie powodują wieloznaczności

Baza danych - właściwości integralność danych pozwalająca na dokładne odzwierciedlenie stanu i zmian obszaru analizy ze szczególnym uwzględnieniem charakteru związków między danymi bezpieczeństwo danych pozwalające na wypełnienie postulatów integracji i integralności

Baza danych - właściwości abstrakcja danych a więc przedstawianie tylko tych informacji, które są istotne z punktu widzenia celu tworzenia bazy niezależność danych polegająca na oddzieleniu danych od procesów, które ich używają

Model danych i kolekcja danych Schemat to zbiór definicji w pewnym modelu danych W odniesieniu do baz danych pojęcie schemat jest traktowane jako identyczne z pojęciem części intensjonalnej Łączny zbiór danych zgodnych ze schematem nazywany jest częścią ekstensjonalną bazy danych Podział na część intensjonalną i ekstensjonalną dotyczy wszystkich poziomów abstrakcji modelu

Część intensjonalna i ekstensjonalna - problemy W życiu codziennym rzadko stosujemy abstrakcję w taki sposób w jaki wykorzystuje się ją do modelowania danych W sposób naturalny opisujemy pewne zbiory bądź to wyliczając i charakteryzując poszczególne ich elementy bądź wskazując na jedną lub kilka cech, które wyróżniają te elementy od elementów pochodzących z innych zbiorów

Przykład – lista fachowców

Projekty schematu

Schemat z uwzględnieniem związku

Zapis związku Lp Usługa 1 elektrotechnika 2 hydraulik 3 prace w ogrodzie 4 samochód dostawczy 5 sprzęt elektroniczny 6 ślusarz Id Nazwisko Telefon 1 Abacki Zbyszek 6374888 2 Kowalski Jan 608143254 3 Kozłowski Stefan 2850110 Lp Id 1 5 2 6 3 4

Formalizmy Formalizm reprezentacji to zbiór składniowych i semantycznych konwencji, które umożliwiają opisywanie rzeczy W terminologii baz danych idea formalizmu reprezentacji odpowiada pojęciu modelu danych

Podstawowe formalizmy w bazach danych encja – relacja – klasa - tabela: zbiór podobnych obiektów opisanych w jednolity sposób krotka – obiekt (instancja klasy) – rekord: zestaw wartości atrybutów opisujących jeden obiekt identyfikowany przez wyróżnione atrybuty lub nazwę więź – asoscjacja: związek pomiędzy dwoma encjami (klasami) pokazujący jakie rekordy (obiekty) z jednej encji odpowiadają rekordom z drugiej i jaki jest charakter tej odpowiedniości

Przykład Encja (klasa): WydziałyProdukcyjne Encja (klasa): Agregaty KodWydziału NazwaWydziału CharakterPracy 1 Odlewnia ciągły 2 Obróbka 2 zmiany KodWydziału KodAgregatu NazwaAgregatu 1 piec tyglowy 2 formierka 3 tokarka

Modele danych Model konceptualny – spojrzenie na dane jako całość, model najbardziej stabilny, powinien on być podstawą, na której opierać się będzie przetwarzanie danych Model wewnętrzny, niskiego poziomu – opisuje sposób przechowywania danych w pamięci komputerów i przedstawia formaty rekordów czy ścieżki dostępu, modelami takimi są metody adresowania, struktury łańcuchowe i pierścieniowe

Modele danych Modele użytkowe – stanowią podstawę do budowy systemu informatycznego: hierarchiczny sieciowy relacyjny obiektowy

Model hierarchiczny Każdy element zwany rekordem może uczestniczyć w roli podrzędnej w co najwyżej jednym powiązaniu rekordów, w roli nadrzędnej w dowolnej liczbie powiązań Rekord podrzędny nie może istnieć bez rekordu nadrzędnego

Więzi w modelu hierarchicznym KodPojazdu Nazwa Typ 1 Accent kombi KodPojazdu KodCzęści NazwaCzęści 1 silnik V6 KodPojazdu KodCzęści NazwaCzęści 1 2 szkrzynia biegów

Model sieciowy Każdy rekord może jednocześnie uczestniczyć w wielu powiązaniach rekordów Rekord taki może równocześnie i wielokrotnie wystąpić w roli nadrzędnej oraz w roli podrzędnej, powiązania realizowane są przez rekordy specjalne zwane łącznikami

Więzi w modelu sieciowym KodPojazdu Nazwa Typ 1 Accent kombi KodPojazdu Nazwa Typ 1 Getz cupe KodPojazdu KodCzęści NazwaCzęści 1 2 szkrzynia biegów

Modele obiektowy Wymaga istnienia trwałych obiektów, obiekty te pozostają zapisane w pamięci pomocniczej przed i po wykonaniu programów Obiekty mogą komunikować się bezpośrednio z użytkownikiem lub z innymi obiektami przez przesyłanie komunikatów, obiekty posiadają identyfikator, co umożliwia tworzenie powiązań między nimi Obiekt jest to abstrakcja czegoś w dziedzinie problemu, który odzwierciedla zdolność systemu do przechowywania informacji o tym lub interakcji z tym czymś

Relacyjny model danych Relacyjny model danych jest obecnie najbardziej popularnym modelem używanym w systemach baz danych. Podstawą tego modelu stała się praca opublikowana przez E.F. Codda w 1970r. W pracy „Relacyjny model logiczny dla dużych banków danych” Codd zaprezentował założenia relacyjnego modelu baz danych, model ten oparł na teorii mnogości i rachunku predykatów pierwszego rzędu.

Podstawowe pojęcia Relacja jest podzbiorem iloczynu kartezjańskiego dziedzin A1, A2,..An. Iloczyn kartezjański oznacza się następująco: A1 A2 An Zawiera on n-tki (a1, a2,..an) nazywane krotkami takie, że a1A1, a2 A2,... dn An

Podstawowe pojęcia Niech A1 = [a,b,c], A2 =[x,y] Wtedy A1  A2 = {(a,x), (a,y), (b,x), (b,y), (c,x), (c,y)} Przykłady relacji, które są podzbiorami iloczynu kartezjańskiego A1 A2 : X = {(a,x), (b,x), (c,x)} Y = {(a,x), (a,y), (b,y)} Analogicznie jak dla iloczynu kartezjańskiego elementy relacji są nazywane krotkami

Baza danych - relacja Rozważmy relację, której atrybutami są nazwisko, imię, wiek. Relację tę można zapisać następująco: PRAC <nazwisko, imię, wiek>, gdzie PRAC jest nazwą danej relacji. A oto trzy krotki relacji PRAC: <Kowalski, Jan, 36> <Tomaszewski, Wojciech, 40> <Wiśniewski, Marek, 50>.

Zasady spełnione dla każdej relacji 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,

Zasady spełnione dla każdej relacji Porządek kolumn w relacji nie jest istotny, Każdy wiersz w relacji musi być różny, Porządek wierszy nie jest istotny, Każde pole leżące na przecięciu kolumny/wiersza w relacji powinno zawierać wartość atomową

Schemat relacji Schematem relacji R o danych atrybutach A1, A2,…, An takiej, że R  D1  D2 … Dn nazywamy ciąg (A1, A2,…, An). W celu jawnej specyfikacji schematu relacji R piszemy R(A1, A2,…, An)

Reprezentacja tablicowa relacji . . . Aj An e1 e2 . ei em d1,1 d2,1 di,1 dm,1 d1,2 d2,2   d1,j d2,j di,j dm,j D1,n d2,n di,n dm,n

Zbiór identyfikujący relacji zbiór atrybutów który jednoznacznie identyfikuje wszystkie krotki w relacji R w żadnej relacji o schemacie R nie mogą istnieć dwie krotki t1 i t2 takie, że t1[S]=t2[S]

Zbiór identyfikujący relacji

Klucz Minimalny zbiór identyfikujący Taki zbiór atrybutów relacji, których kombinacje wartości jednoznacznie identyfikują każdą krotkę tej relacji a żaden podzbiór tego zbioru nie posiada tej własności W kluczu nie może zawierać się wartość Null

Klucz

Klucz Klucz jest kluczem prostym, jeżeli powyżej opisany zbiór jest jednoelementowy - w przeciwnym razie mówimy o kluczu złożonym W ogólności, w relacji można wyróżnić wiele kluczy, które nazywamy kluczami potencjalnymi. Wybrany klucz spośród kluczy potencjalnych nazywamy kluczem głównym (Primary Key PK)

Zależność funkcjonalna Atrybut B relacji R jest funkcjonalnie zależny od atrybutu A jeżeli dowolnej wartości a atrybutu A odpowiada nie więcej niż jedna wartość b atrybutu B

Zależność funkcjonalna

Zależność funkcjonalna Niech X i Y będą podzbiorami zbioru atrybutów relacji R X{A1...AN}, Y{A1...AN} podzbiór atrybutów Y zależy funkcyjnie od podzbioru atrybutów X, jeżeli nie jest możliwe, by relacja R zawierała dwie krotki mające składowe zgodne tzn. identyczne dla wszystkich atrybutów ze zbioru X i jednocześnie co najmniej jedną niezgodną składową dla atrybutów ze zbioru Y

Zależność funkcjonalna

Zależność funkcjonalna Zbiór atrybutów Y jest w pełni funkcjonalnie zależny od zbioru atrybutów X w schemacie R, jeżeli: i nie istnieje takie, że

Zależność funkcjonalna Zbiór atrybutów Y jest częściowo funkcjonalnie zależny od zbioru atrybutów X w schemacie R, jeżeli: i istnieje takie, że

Zależność częściowa i pełna

Zależność funkcjonalna Niech X, Y i Z będą trzema rozłącznymi podzbiorami atrybutów danej relacji Z jest przechodnio funkcjonalnie zależny od X, jeśli Z jest funkcjonalnie zależny od Y i Y jest funkcjonalnie zależny od X natomiast X nie jest zależny od Y i Y nie jest zależny od Z

Zależność przechodnia

Zależność funkcjonalna Podzbiór atrybutów Y jest wielowartościowo funkcjonalnie zależny od podzbioru X w schemacie R, jeżeli dla dowolnej relacji r w schemacie R i dla dowolnej pary krotek t1 i t2 z relacji r istnieje taka para krotek że: s1[X]=s2[X]=t1[X]=t2[X] i s1[Y]= t1[Y] i s1[R-X-Y]=t2[R-X-Y] i s2 [Y]= t2[Y] i s2 [R-X-Y]=t1[R-X-Y]

Zależność wielowartościowa X Y R-X-Y krotka Nazwisko Imię dziecka Znajomość języków t1 Kot Ania niemiecki t2 Jaś angielski s1 s2 Słoń Ola

Zależność wielowartościowa t1[X]=t2[X]=s1[X]=s2[X]=(Kot) s1[Y]= t1[Y]=(Ania) i s1[R-X-Y]=t2[R-X-Y]=(angielski) i s2 [Y]= t2[Y]=(Jaś) i s2 [R-X-Y]=t1[R-X-Y]=(niemiecki)

Dekompozycja schematu zastępujemy zbiorem (niekoniecznie rozłącznych) schematów relacji takich, że każdy schemat Ri stanowi podzbiór zbioru atrybutów i

Dekompozycja schematu W schemacie występuje połączeniowa zależność funkcjonalna wtedy i tylko wtedy gdy istnieje możliwość takiej dekompozycji relacji r na relacje r1, r2,..., rn, że można ją zrekonstruować przy pomocy operacji połączenia

Dekompozycja schematu połączeniowa zależność funkcjonalna wynika z zależności atrybutów schematu R od klucza wtedy i tylko wtedy gdy w dowolnej sekwencji połączeń relacji składowych w celu rekonstrukcji relacji r operacja wykonywana jest względem zbioru identyfikującego schematu R

Pierwsza postać normalna Jedynymi relacjami dozwolonymi w modelu relacyjnym są relacje spełniające następujący warunek: każda wartość w relacji, tj. każda wartość atrybutu w każdej krotce, jest wartością atomową (wartością nie rozkładalną) (lPN) oznacza, że tabela nie zawiera powtarzających się grup informacji, co znaczy, że każda kolumna jest wartością skalarną (atomową), a nie macierzą lub listą czy też czymkolwiek, co posiada własną strukturę

Relacja nie znormalizowana Pracownik Języki Jan Kowalski angielski – słabo, niemiecki - dobrze Adam Kot rosyjski – bardzo dobrze

Relacja nie znormalizowana Pracownik Znajomość języków Język Poziom Jan Kowalski angielski słabo niemiecki dobrze Adam Kot rosyjski bardzo dobrze

Relacja nie znormalizowana Relację "przed normalizacją" zdefiniowano na dwóch dziedzinach: Pracownik i Znajomość Języków Elementami dziedziny Znajomość Języków są również relacje (zdefiniowane na dziedzinach Język i Poziom) Relacja jest z punktu widzenia definicji relacją dwuczłonową, ale nie wszystkie jej dziedziny są proste (dziedzina prosta to taka, której wszystkie elementy są atomowe)

Relacja znormalizowana Pracownik Język Poziom Jan Kowalski angielski słabo niemiecki dobrze Adam Kot rosyjski bardzo dobrze

Relacja znormalizowana Relacja jest relacją trójczłonową, której wszystkie dziedziny są proste, jest więc znormalizowana Powodem tego jest uproszczenie struktury danych, które z kolei powoduje uproszczenie operatorów w subjęzyku danych Uproszczenia te nie ograniczają w niczym możliwości reprezentowania obiektów

Relacja znormalizowana - nieporozumienia Pracownik Imię dziecka Data ur. dziecka Kowalski Ania 01.01.2000 Jaś 15.03.2001 Kot Patrycja 20.10.2001 Filemon 30.07.2003

Relacja znormalizowana - nieporozumienia Praco-wnik Imię dziecka1 Data ur. dziecka1 Imię dziecka2 Data ur. dziecka2 Kowal-ski Ania 01.01.2000 Jaś 15.03.2001 Kot Patrycja 20.10.2001 Filemon 30.07.2003

Pierwsza postać normalna Przedmiot Prowadzący Student Ocena matematyka prof. Lis Jak Kot 2,0 Ewa Osa 3,0 Adam Struś 5,0

Pierwsza postać normalna Powtarzająca się grupa danych to podzbiór relacji zawierający co najmniej dwa atrybuty, posiadająca własny klucz prosty, w którym istnieją powtarzające się krotki Powtarzanie się takich samych krotek wymuszone jest faktem, że mamy do czynienia z grupą dla której część atrybutów jest strukturą a nie wartością skalarną

Pierwsza postać normalna Przedmiot Student Ocena matematyka Jak Kot 2,0 Ewa Osa 3,0 Adam Struś 5,0 Przedmiot Prowadzący matematyka prof. Lis

Anomalie przy usuwaniu, wstawianiu i aktualizacji – baza klientów systemu CRM

Anomalie przy usuwaniu Po usunięciu informacji o firmie P H U „Żagiel” tracimy informacje o branży „Handel” (Opis)

Anomalie przy wstawianiu Wstawienie informacji nowym kliencie wymaga wpisania opisu branży mimo, że opis już istnieje

Anomalie przy aktualizacji Zmiana opisu „Usług krawieckich” musi być dokonana w czterech miejscach

Druga postać normalna Relacja jest w drugiej postaci normalnej, jeśli każdy atrybut tej relacji nie wchodzący w skład żadnego klucza potencjalnego jest w pełni funkcyjnie zależny wyłącznie od wszystkich podrelacji klucza głównego

Ta relacja nie jest w drugiej postaci normalnej

Ta relacja nie jest w drugiej postaci normalnej bo: kluczem w relacji jest podzbiór atrybutów Id Firmy i Nazwa branży bo powtórzenie krotki o dwóch identycznych wartościach tych atrybutów wskazywałoby na powtórne przypisanie tej samej branży tej samej firmie atrybut Nazwa zależy funkcjonalnie od atrybutu Id Firmy a nie zależy od atrybutu Nazwa branży (może być wiele firm w każdej z branż)

Relacja po dekompozycji

Trzecia postać normalna Relacja jest w trzeciej postaci normalnej, jeśli: jest w drugiej postaci normalnej żaden atrybut nie będący kluczem nie jest funkcjonalnie związany z żadnym innym atrybutem nie będącym również kluczem

Ta relacja nie jest w trzeciej postaci normalnej Pracownik PESEL KodPocztowy Miejscowość Województwo Jan Kowalski 12345678911 32-082 Bolechowice małopolskie Adam Kot 98977796666 30-150 Kraków Ewa Lis 76281976372

Zależność funkcjonalna przechodnia Niech X, Y i Z będą trzema rozłącznymi podzbiorami atrybutów danej relacji Z jest przechodnio funkcjonalnie zależny od X, jeśli Z jest funkcjonalnie zależny od Y i Y jest funkcjonalnie zależny od X natomiast X nie jest zależny od Y i Y nie jest zależny od Z

Forma normalna Boyce-Codd’a Jest uzupełnieniem trzeciej postaci normalnej i jest niezbędna w przypadku gdy atrybuty będące kandydatami na klucze są: wielokrotne, złożone, nakładające się na siebie

Forma normalna Boyce’a-Codd’a Relacja jest w postaci Boyce-Codd’a jeżeli dla każdej nietrywialnej zależności między podzbiorami relacji zbiór będący wyznacznikiem jest zbiorem identyfikującym tej relacji Zależność X →Y jest trywialna jeżeli Y jest podzbiorem X Definicja BCNF zastępuje definicje, pierwszej, drugiej i trzeciej formy normalnej dodatkowo je poszerzając

Forma normalna Boyce-Codd’a IdPracownika Zawód Wykształcenie Stawka 1 ślusarz podstawowe 5,20 tokarz zawodowe 5,30 2 5,50 3 4 kluczem w relacji jest podzbiór IdPracownika, Zawód lub IdPracownika, Wykształcenie zależność Zawód, Wykształcenie  Stawka jest funkcjonalna i nietrywialna a Zawód, Wykształcenie nie jest zbiorem identyfikującym

Forma normalna Boyce-Codd’a IdStudenta Seminarium Opiekun 1 marketing Kowalski kadry Kozłowski 2 Janowski 3 4 informatyka Macioł ponieważ opiekun może mieć tylko jedno seminarium to kluczem w relacji jest podzbiór IdStudenta, Seminarium lub IdStudenta, Opiekun zależność Opiekun  Seminarium jest funkcjonalna i nietrywialna a Opiekun nie jest zbiorem identyfikującym

Czwarta forma normalna Relacja jest w czwartej formie normalnej wtedy i tylko wtedy, gdy jest w trzeciej postaci normalnej i nie zawiera wielowartościowej zależności atrybutów

Więzi Więź (ang. relationship) to powiązanie pomiędzy parą tabel. Istnieje ona wtedy, gdy dwie tabele są połączone przez klucz podstawowy i klucz obcy. Każda więź jest opisywana przez typ więzi istniejący między dwoma tabelami, typ uczestnictwa oraz stopień uczestnictwa tych tabel

Typy więzi jeden-do-jednego (jeżeli pojedynczemu rekordowi z pierwszej tabeli przyporządkowany jest najwyżej jeden rekord z drugiej tabeli i na odwrót)

Więź jeden-do-jednego

Typy więzi jeden-do-wielu (jeżeli pojedynczemu rekordowi z pierwszej tabeli może odpowiadać jeden lub więcej rekordów z drugiej, ale pojedynczemu rekordowi z drugiej tabeli odpowiada najwyżej jeden rekord z tabeli pierwszej)

Więź jeden-do-wielu

Więzi identyfikujące Klucz obcy, który jest składnikiem złożonego klucza głównego w relacji zależnej określany jest mianem klucza obcego głównego (Primary Foreign Key) a tak zbudowana więź więziom identyfikującą

Więź jeden-do-wielu (identyfikująca)

Obcy klucz główny (IdPracownika) Rok Miesiac IdPracownika LiczbaGodzin 2005 01 1 160 2 150 02 140 Taki wiersz nie może się pojawić

Więź wiele-do-wielu (dane) IdAgregatu Agregat Data IdPracownika Nazwisko Godziny 1 Piła 10.03.05 Kowalski 4 2 Lis Tokarka 3 Kot 8 11.03.05 6

Więź wiele-do-wielu Na jednym agregacie mogą pracować różni pracownicy, np. na agregacie Piła 10. marca pracowało dwóch pracowników Jeden pracownik może pracować na wielu agregatach, np. Kowalski pracował 10. marca na Pile i Tokarce)

Więź wiele-do-wielu

Więź wiele-do-wielu (po rekonstrukcji) IdAgregatu Data IdPracownika Godziny 1 10.03.05 4 2 3 8 11.03.05 6

Typy uczestnictwa obowiązkowy (jeśli w pierwszej tabeli muszą znajdować się pewne rekordy zanim zaczniemy wprowadzać rekordy do tabeli drugiej) opcjonalny (jeśli wprowadzanie rekordów do tabeli drugiej nie wymaga istnienia żadnych rekordów w tabeli pierwszej). Stopień uczestnictwa określa minimalną i maksymalną liczbę rekordów w jednej tabeli, które można powiązać z pojedynczym rekordem w tabeli drugiej.

Opcjonalny typ uczestnictwa

Klucz sztuczny Klucz stworzony wyłącznie dla potrzeb więzi w celu zastąpienia złożonego klucza głównego

Klucz złożony...

...zastąpiony kluczem sztucznym

Klucz złożony...

...zastąpiony kluczem sztucznym

Klucz sztuczny Klucz sztuczny może być wykorzystany do kodowania atrybutów tekstowych (w niektórych przypadkach także liczbowych) o powtarzających się wartościach, dla których można utworzyć listę Użycie klucza sztucznego wymaga stworzenia dodatkowej tabeli (słownika) pozwalającego na „rozkodowanie” klucza