POWTÓRZENIE

31
1 POWTÓRZENIE Normalizacja : Pojęcia: redundancja danych; anomalie aktualizacji (wstawienia, usuwania, modyfikacji); dekompozycja i jej własności; zależności funkcyjne. Proces normalizacji: postać nieznormalizowana; pierwsza postać normalna (1NF – first normal form); druga postać normalna (2NF); trzecia postać normalna (3NF); postać normalna Boyce’a-Codda (BCNF).

description

POWTÓRZENIE. Normalizacja :. Pojęcia: redundancja danych ; anomalie aktualizacji (wstawienia, usuwania, modyfikacji) ; dekompozycja i jej własności ; zależności funkcyjne . Proces normalizacji: postać nieznormalizowana; pierwsza postać normalna (1NF – first normal form ); - PowerPoint PPT Presentation

Transcript of POWTÓRZENIE

Page 1: POWTÓRZENIE

1

POWTÓRZENIE

Normalizacja:

Pojęcia:

• redundancja danych;

• anomalie aktualizacji (wstawienia, usuwania, modyfikacji);

• dekompozycja i jej własności;

• zależności funkcyjne.

 

Proces normalizacji:

• postać nieznormalizowana;

• pierwsza postać normalna (1NF – first normal form);

• druga postać normalna (2NF);

• trzecia postać normalna (3NF);

• postać normalna Boyce’a-Codda (BCNF).

Page 2: POWTÓRZENIE

2

Metodologia :to kompleksowe podejście wykorzystujące procedury, techniki, narzędzia oraz metody tworzenie dokumentacji służące realizacji i uproszczeniu procesu projektowania.

Konceptualne projektowanie bazy danych – to proces tworzenia modelu dla informacji wykorzystywanych w przedsiębiorstwie, niezależny od wszelkich szczegółów reprezentacji fizycznej.

Logiczne projektowanie bazy danych – to proces tworzenia modelu dla informacji wykorzystywanych w przedsiębiorstwie, przystosowanego do konkretnego modelu danych (np. model relacyjny), lecz niezależnego od konkretnego SZBD i innych szczegółów implementacji fizycznej.

Fizyczne projektowanie bazy danych – proces tworzenia opisu implementacji bazy danych w pamięci zewnętrznej, który zawiera relacje bazowe, organizację plików, indeksy stosowane dla uzyskania efektywnego dostępu do danych, a także wszystkie więzy integralności i zagadnienia bezpieczeństwa.

Page 3: POWTÓRZENIE

3

Główne zasady efektywnego projektowania baz danych:

• jak najwięcej kontaktuj się z użytkownikami bazy danych;

• w trakcie całego procesu modelowania danych postępuj zgodnie z przyjętą metodologią;

• stosuj podejście uwzględniające przepływ danych;

• uwzględniaj w modelu kwestie struktury i integralności danych;

• stosuj w trakcie projektowania techniki konceptualizacji, normalizacji i oceny możliwości realizacji wymaganych transakcji;

• wszędzie, gdzie tylko to możliwe, wyrażaj model danych za pomocą diagramów;

• stosuj język projektowania bazy danych (DBDL od ang. Database Design Language) do opisu tych własności, których nie można w prosty sposób wyrazić za pomocą diagramów;

• utwórz słownik danych uzupełniający diagramy i DBDL;

• zawsze, gdy zachodzi taka potrzeba, powtarzaj odpowiednie kroki modelowania.

Page 4: POWTÓRZENIE

4

Konceptualne projektowanie bazy danych:

Krok 1. Tworzenie lokalnego konceptualnego modelu danych dla każdej perspektywy

Krok 1.1. Określ występujące zbiory encji

Krok 1.2. Ustal typy występujących związków

Krok 1.3. Określ atrybuty odpowiadające poszczególnym zbiorom encji i związkom

Krok 1.4. Określ dziedziny poszczególnych atrybutów

Krok 1.5. Ustal klucze kandydujące i klucze główne

Krok 1.6. Rozważ możliwość zastosowania zaawansowanych metod modelowania (krok opcjonalny)

Krok 1.7. Zweryfikuj utworzony model pod kątem występowania redundancji

Krok 1.8. Zweryfikuj możliwość realizacji transakcji w lokalnym modelu konceptualnym

Krok 1.9. Omów lokalny konceptualny model danych z użytkownikiem

Page 5: POWTÓRZENIE

5

Logiczne projektowanie bazy danych w modelu relacyjnym:

Krok 2. Tworzenie i weryfikacja lokalnego modelu logicznego dla każdej perspektywy:

Krok 2.1. Usuń własności niekompatybilne z modelem relacyjnym (krok opcjonalny);

Krok 2.2. Wyznacz relacje dla lokalnego logicznego modelu danych;

Krok 2.3. Wykonaj normalizację relacji;

Krok 2.4. Sprawdź, czy relacje umożliwiają realizację transakcji;

Krok 2.5. Wyznacz więzy integralności;

Krok 2.6. Omów lokalny logiczny model danych z użytkownikiem.

Krok 3. Tworzenie i weryfikacja globalnego logicznego modelu danych:

Krok 3.1. Scal lokalne logiczne modele danych w model globalny;

Krok 3.2. Sprawdź poprawność globalnego logicznego modelu danych;

Krok 3.3. Sprawdź możliwości przystosowania modelu do przewidywanych zmian;

Krok 3.4. Omów globalny logiczny model danych z użytkownikami.

Page 6: POWTÓRZENIE

6

Proces konceptualnego i logicznego projektowania bazy danych składa się z trzech głównych kroków.

Celem kroku 1 jest podział problemu na zadania łatwiejsze do analizy poprzez rozważenie różnych perspektyw użytkowników. W wyniku kroku 1 powstaje wiele (lub jeden) lokalnych konceptualnych modeli danych. Każdy z tych modeli powinien stanowić kompletną i dokładną reprezentacje zagadnienia z punktu widzenia innego użytkownika lub grupy użytkowników.

Krok 2 odwzorowuje każdy lokalny model konceptualny na lokalny logiczny model danych dla modelu relacyjnego, składający się z diagramów związków encji, schematów relacji oraz dokumentacji pomocniczej.

W kroku 3 następuje integracja lokalnych logicznych modeli danych (reprezentujących różne perspektywy) w jeden globalny logiczny model danych całego przedsiębiorstwa (reprezentujący wszystkie perspektywy użytkowników).

Page 7: POWTÓRZENIE

7

Krok 1 :

Tworzenie lokalnego konceptualnego modelu danych dla każdej perspektywy (każdego obszaru zainteresowań)

W trakcie analizy zagadnienia zazwyczaj zidentyfikowanych zostaje wiele różnych perspektyw. W przypadku dużego stopnia wzajemnego ich pokrywania się, niektóre z nich można połączyć w perspektywy „grupowe” z nadanymi im własnymi nazwami.

Krok 1.1. Określ występujące zbiory encji (dokumentuj informacje o zbiorach encji)

Częstą metodą określenia zbiorów encji jest wyróżnienie obiektów, których istnienie wynika z samej natury modelowego zagadnienia.

Czasami wyróżnienie zbiorów encji może być trudne, co spowodowane jest sposobem ich reprezentacji w specyfikacjach wymagań użytkowników, którzy posługują się zazwyczaj przykładami lub analogiami, czy też synonimami i homonimami.

Page 8: POWTÓRZENIE

8

Fragment słownika danych przedstawiający opis zbiorów encji :

Uzupełnieniem konceptualnego modelu danych jest dokumentacja, w tym słownik danych utworzony w trakcie tworzenia modelu

Nazwa zbioru encji

Opis Aliasy Własności

Personel Pojęcie ogólne opisujące wszystkich pracowników zatrudnionych przez biuro obrotu nieruchomościami.

Pracownicy Każdy pracownik personelu pracuje w jednym biurze.

Nieruchomość Pojęcie ogólne opisujące wszystkie nieruchomości do wynajęcia.

Nieruchomość--DoWynajęcia

Każda nieruchomość ma jednego właściciela i jest oferowana do wynajęcia w jednym biurze, gdzie zarządza nią jeden pracownik. Informacje o nieruchomości dostępne są wielu klientom, ale w danym momencie może być wynajęta tylko przez jednego klienta.

... ... ... ...

Page 9: POWTÓRZENIE

9

Krok 1.2.

Dużą uwagę należy poświęcić temu, aby wykryć wszystkie związki zawarte wprost lub wynikające pośrednio ze specyfikacji wymagań użytkownika.

W tym celu:

• używaj diagramów związków encji (ER);

• ustal krotności w poszczególnych związkach encji (do weryfikowania i utrzymywania określonych własności danych);

• sprawdź czy występują pułapki wachlarzowe lub szczelinowe;

• sprawdź, czy każdy zbiór encji występuje w przynajmniej jednym związku (należy jeszcze raz sprawdzić wymagania użytkownika i ustalić, czy nie doszło do pominięcia jakichś związków lub czy encja nie występuje w innej części modelu);

• udokumentuj typy związków.

Ustal typy występujących związków (między wyróżnionymi wcześniej zbiorami encji):

Page 10: POWTÓRZENIE

10

Pierwsze przybliżenie diagramu:

Właściciel prywatny

WłaścicielNr

Wynajęcie

WynajęcieNr

Nieruchomość

NieruchomośćNr

Klient

KlientNr

Personel

PersonelNr

Biuro

BiuroNr

Ma

Oferuje

PosiadaWynajęty Przez

Nadzoruje

Ogląda

Wynajmuje

Page 11: POWTÓRZENIE

11

Fragment słownika danych prezentujący opis związków :

Nazwa encji Krotność Związek Nazwa encji Krotność

Personel 0..1

0..1

Zarządza

Kieruje

Nieruchomość

Personel

0..100

0..10

Nieruchomość 1..1 SkojarzonaZ Wynajęcie 0..*

... ... ... ... ...

Page 12: POWTÓRZENIE

12

Krok 1.3.

Poprzez zidentyfikowanie rodzajów informacji o encjach i związkach, które chcemy reprezentować w bazie danych.

Określamy:

Określ atrybuty odpowiadające poszczególnym zbiorom encji i związkom

• atrybuty proste i złożone;

• atrybuty jednowartościowe i wielowartościowe;

• atrybuty pochodne – umieszczamy je aby uniknąć utraty informacji w przypadku usunięcia bądź zmodyfikowania atrybutów od których zależy atrybut pochodny;

• potencjalne problemy;

• dokumentowanie informacji o atrybutach (po zidentyfikowaniu atrybutów należy przyporządkować im adekwatne i czytelne dla użytkownika nazwy):

Page 13: POWTÓRZENIE

13

Fragment słownika danych przedstawiający opis atrybutów:

Nazwa zbioru encji

Atrybuty Opis Typ danych i długość Wartości puste

Wielowar-tościowy

...

Personel personelNr

imięNazwisko

imię

nazwisko

stanowisko

płeć

dataUr

Jednoznacznie identyfikuje pracownika

 

Imię pracownika

Nazwisko pracownika

Nazwa zajmowanego stanowiska

Płeć pracownika

Data urodzenia pracownika

łańcuch, długość maks. 5

 

łańcuch, długość maks. 15

łańcuch, długość maks. 15

łańcuch, długość maks. 10

łańcuch, długość 1 (M lub K)

data

Nie

 

Nie

Nie

Nie

Tak

Tak

Nie

 

Nie

Nie

Nie

Nie

Nie

...

Nieruchomość nieruchomośćNr Jednoznacznie identyfikuje nieruchomość do wynajęcia

łańcuch, długość maks. 5 Nie Nie ...

... ... ... ... ... ... ...

Page 14: POWTÓRZENIE

14

Krok 1.4. Określ dziedziny poszczególnych atrybutów

W kompletnym modelu danych określona jest dziedzina każdego atrybutu, a także:

• dopuszczalny zbiór wartości atrybutu;

• dopuszczalny zakres długości i format atrybutu.

Mogą być też podane dodatkowe informacje o dziedzinach, takie jak zbiór dopuszczalnych operacji na atrybutach oraz wykaz atrybutów, które mogą być ze sobą porównywane lub używane łącznie.

Możemy zdefiniować np.:

• dziedzinę dopuszczalnych numerów pracowników (pracownikNr) jako zbiór łańcuchów o długości nie większej niż 5 znaków, w których pierwsze dwa znaki są literałami, a następne (od jednego do trzech) tworzą liczbę z zakresu 1-999;

• dopuszczalne wartości dla atrybutu płeć jako np. zbiór łańcuchów jednoznakowych: „M” lub „K”.

Page 15: POWTÓRZENIE

15

Krok 1.5. Ustal klucze kandydujące i klucze główne:

Kluczem kandydującym jest minimalny zbiór atrybutów, który jednoznacznie identyfikuje każde wystąpienie encji w zbiorze encji.

Przy wyborze klucza głównego spośród kluczy kandydujących warto rozważyć:

• klucz o najmniejszej liczbie atrybutów;

• klucz, którego wartości najrzadziej ulegają zmianom;

• klucz kandydujący o najmniejszej liczbie znaków (dotyczy kluczy składających się z atrybutów tekstowych);

• klucz o najmniejszej wartości maksymalnej (dotyczy kluczy o wartościach numerycznych);

• klucz, z którego najłatwiej będzie korzystać użytkownikowi.

Jeśli wybór klucza głównego jest możliwy, wtedy zbiór encji nazywamy silnym, zaś gdy nie możemy wybrać żadnego klucz głównego, zbiór encji nazywany jest słabym.

Page 16: POWTÓRZENIE

16

Diagram związków encji z informacjami o kluczach głównych:

Klient

KlientNr

DataRejestracji

Biuro

BiuroNrMa

Kieruje

0..10..1

Personel

PersonelNr

1..1 0..1

1..* 1..1

dataPoczątkowapremia

dataOgłoszeniakoszt

1..1

1..1

1..1

Rejestruje

Zarządza

0..*

PreferencjeWynajęcie

UmowaNr

Nieruchomość

NieruchomośćNr

Właściciel Instytucjonalny

I Nazwa

Wynajmuje Określa

PPosiada

Wynajęty Przez

Ogłasza I Posiada

Gazeta

NazwaGazety

Właściciel prywatny

WłaścicielNr

Oferuje

0..*1..1

0..100

0..* 1..1 1..1 1..1

1..*

1..*1..*1..*

0..*

0..1 0..1

Nadzoruje

Page 17: POWTÓRZENIE

17

Krok 1.6. Rozważ możliwość zastosowania zaawansowanych metod modelowania (krok opcjonalny) :

Rozważenie potrzeby użycia zaawansowanych metod modelowania, takich jak specjalizacja/generalizacja, agregacja i kompozycja.

Użycie (bądź nie) zaawansowanych metod modelowania powinno służyć czytelności diagramu związków encji i jasności modelu dla istotnych zbiorów encji i związków między nimi.

Np. możemy dokonać generalizacji encji WłaścicielPrywatny i WłaścicielInstytucjonalny, tworząc nadklasę Właściciel zawierającą wspólne dla obu zbiorów encji atrybuty: włascicielNr, adres i telNr.

Page 18: POWTÓRZENIE

18

Krok 1.7. Zweryfikuj utworzony model pod kątem występowania redundancji:

Proces ten składa się z następujących czynności:

• ponowne sprawdzenie związków wzajemnie jednoznacznych (1:1) – ponieważ w trakcie ustalania występujących zbiorów encji może dojść do utworzenia dwóch różnych zbiorów reprezentujących te same obiekty ze świata rzeczywistego np. Klient i Najemca;

• usunięcie związków redundantnych (nadmiarowych) – ponieważ naszym celem jest stworzenie minimalnego modelu danych.

Wykrycie istnienia więcej niż jednej ścieżki między dwoma zbiorami encji jest stosunkowo łatwe, jednak nie muszą one oznaczać, że jeden ze związków jest redundantny, ponieważ mogą one reprezentować inne powiązania między zbiorami encji.

Przy poszukiwaniu redundancji istotne jest zatem zrozumienie i analiza znaczenia poszczególnych związków.

Page 19: POWTÓRZENIE

19

Krok 1.8. Zweryfikuj możliwość realizacji transakcji w lokalnym modelu konceptualnym :

Teraz należy sprawdzić czy utworzony model rzeczywiście umożliwia wykonanie wszystkich transakcji wymaganych w danej perspektywie.

Możemy to osiągnąć poprzez:

• sporządzenie opisu wymagań poszczególnych transakcji i sprawdzeniu, czy wszystkie informacje wymagane do realizacji transakcji zostały umieszczone w modelu;

• wykorzystanie ścieżek transakcji – poprzez graficzną reprezentację ścieżki, przez którą przechodzi transakcja na diagramie związków encji, możemy też w ten sposób ustalić, które elementy modelu nie są wykorzystywane, a które są krytyczne dla realizacji transakcji.

Przeprowadzenie tych czynności sprawdzających na tym etapie projektu (a nie później) jest bardzo istotne, ponieważ naprawianie błędów w modelu na dalszym etapie pracy jest i dużo trudniejsze i droższe.

Krok 1.9. Omów lokalny konceptualny model danych z użytkownikiem (w celu weryfikacji, czy model jest „prawdziwą” reprezentacją modelowanej perspektywy).

Page 20: POWTÓRZENIE

20

Logiczne projektowanie bazy danych w modelu relacyjnym:

Krok 2. Tworzenie i weryfikacja lokalnego modelu logicznego dla każdej perspektywy

Krok 2.1. Usuń własności niekompatybilne z modelem relacyjnym (krok opcjonalny jeżeli wybieramy relacyjny SZBD do realizacji bazy danych);

Cele tego kroku to:

• usunięcie binarnych związków typu „wiele do wielu” (*:*) – dekomponowanie poprzez utworzenie pośredniego zbioru encji, a następnie zamianę związku „wiele do wielu” (*:*) na dwa związki typu „jeden do wielu” (1:*), w których występuje nowy zbiór encji;

• usunięcie rekurencyjnych związków typu „wiele do wielu” (*:*) – poprzez ich rozłożenie i ustalenie nowego „pośredniczącego” zbioru encji;

• usunięcie związków złożonych – też poprzez rozłożenie i utworzenie pośredniczącego zbioru encji;

• usunięcie atrybutów wielowartościowych (poprzez zastąpienie ich nowym zbiorem encji).

Page 21: POWTÓRZENIE

21

Krok 2.2. Wyznacz relacje dla lokalnego logicznego modelu danych :

Personel (pracownikNr, im ię, nazw isko, stanow isko, p łeć, dataUr)

pracownikNrP r im a r y K e y

Klient (klientN r, im ię, nazw isko, te lN r, pracownikNr)

klientN r te lN r

pracownikNr Personel(pracownikNr)

P r im a r y K e yA lte r n a te K e yF o re g in K e y re fe re n c e s

Dla odwzorowania zw iązku typu 1:* kopiu jem y atrybut do re lacji Rejestruje pracow nikNr K lient

Związki pomiędzy encjami są reprezentowane za pomocą „wiązania” poprzez klucze główne i obce.

W każdym binarnym związku typu 1:* encja występująca po stronie „jeden” jest encją nadrzędną, a encja po stronie „wiele” podrzędną. Związek taki jest reprezentowany poprzez umieszczenie atrybutów klucza głównego encji nadrzędnej w relacji reprezentującej encję podrzędną. Atrybuty te stanowią klucz obcy relacji podrzędnej.

Np.:

Page 22: POWTÓRZENIE

22

Elementy procesu przekształcania encji i związków na relacje:

Encje/Związki Sposób odwzorowania

Silna encja Utworzenie relacji zawierającej wszystkie atrybuty proste.

Słaba encja Utworzenie relacji zawierającej wszystkie atrybuty proste (klucz główny zostanie ustalony dopiero po odwzorowaniu na relacje wszystkich związków z encjami nadrzędnymi).

 Binarny związek 1:*  Klucz główny encji występującej po stronie Jeden" należy skopiować do zbioru encji po stronie „wiele", gdzie będzie kluczem obcym. Atrybuty związku należy umieścić po stronie „wiele".

Page 23: POWTÓRZENIE

23

Encje/Związki Sposób odwzorowania

Binarny związek 1:1:

(a) uczestnictwo obowiązkowe po obu stronach

(b) uczestnictwo obowiązkowe

po jednej stronie

 

(c) uczestnictwo opcjonalne

po obu stronach związku

Połączenie zbiorów encji w jedną relacje.

 

Klucz główny encji po stronie „opcjonalnej" należy

skopiować do zbioru encji po stronie „obowiązkowej" jako klucz obcy.

Dowolny, o ile wybór reprezentacji nie wynika z innych informacji.

Binarny związek *:*, związek złożony

Utworzenie relacji reprezentującej związek i umieszczenie w niej wszystkich atrybutów związku. Klucze główne encji nadrzędnych należy skopiować do nowej relacji (w której pełnią rolę kluczy obcych).

Atrybuty wielowartościowe Utworzenie osobnej relacji reprezentującej atrybut wielowartościowy, skopiowanie do niej klucza głównego encji zawierającej dany atrybut (w nowej relacji skopiowany klucz jest kluczem obcym)

Page 24: POWTÓRZENIE

24

Krok 2.3. Wykonaj normalizację relacji :

Przeprowadzamy proces normalizacji:

1NF – usuwa powtarzające się grupy atrybutów;

2NF – usuwa częściowe zależności od klucza głównego;

3NF – usuwa przechodnie zależności od klucza głównego;

BCNF – usuwa pozostałe anomalie z zależności funkcyjnych

 

Normalizacja daje bardzo elastyczny projekt, który łatwo daje się dalej rozwijać i rozszerzać.

Krok 2.4. Sprawdź, czy relacje umożliwiają realizację transakcji

Page 25: POWTÓRZENIE

25

Krok 2.5. Wyznacz więzy integralności :

Trzeba rozważyć pięć typów więzów integralności:

• wymagana obecność danych;

• więzy dziedzin atrybutów (ustalane z wyborem dziedzin atrybutów – krok 1.4);

• integralność encji (ograniczenie, że klucz główny zbioru encji nie może przyjmować wartości pustych należy uwzględnić po wyborze klucza głównego – 1.5);

• integralność referencyjna (wymuszanie więzów integralności);

• więzy ogólne (reguły biznesowe, zasady działania).

Krok 2.6. Omów lokalny logiczny model danych z użytkownikiem

Page 26: POWTÓRZENIE

26

Krok 3. Tworzenie i weryfikacja globalnego logicznego modelu danych :

Krok 3.1. Scal lokalne logiczne modele danych w model globalny

Spis typowych czynności wykonywanych w metodzie scalania:

1. Porównanie nazw i zawartości encji/relacji i ich kluczy kandydujących.

2. Porównanie nazw i zawartości związków/kluczy obcych.

3. Scalenie encji/relacji z lokalnych modeli danych.

4. Włączenie (bez scalania) encji/relacji unikalnych dla poszczególnych lokalnych modeli danych.

5. Scalenie związków/kluczy obcych występujących w lokalnych modelach danych.

6. Włączenie (bez scalania) związków/kluczy obcych unikalnych dla poszczególnych lokalnych modeli danych.

7. Sprawdzenie kompletności zbiorów encji/relacji i związków/kluczy obcych.

8. Sprawdzenie kluczy obcych.

9. Sprawdzenie więzów integralności.

Page 27: POWTÓRZENIE

27

Relacje reprezentujące globalny logiczny model danych projektu WymarzonyDom :

Biuro (biuroNr, ulica, miasto, kodPocztowy, dyrPracownikNr)

Primary Key biuroNr

Alternate Key kodPocztowy

Foreign Key dyrPracownikNr references Dyrektor(pracownikNr)

Telefon (telNr, biuroNr)

Primary Key telNr

Foreign Key biuroNr references Biuro(biuroNr)

Personel (pracownikNr, imię, nazwisko, stanowisko, płeć, dataUr, pensja, przetożonyNr, biuroNr)

Primary Key pracownikNr

Foreign Key przełOŻonyNr references Personel (pracownikNr)

Foreign Key biuroNr references Biuro (biuro Nr)

Dyrektor (pracownikNr, dataPoczątkowa, premia)

Primary Key pracownikNr

Foreign Key pracownikNr referenees Personel(pracownikNr)

Page 28: POWTÓRZENIE

28

Właściciel_Prywatny (właścicielNr, imię, nazwisko, adres, telNr)

Primary Key właścicielNr

Właściciel Instytucjonalny (właścicielNr, iNazwa, iTyp, nazwiskoReprezentanta, adres, telNr)

Primary Key właścicielNr

Primary Key iNazwa

Alternate Key telNr

Nieruchomość (nieruchomośćNr, ulica, miasto, kodPocztowy, typ, pokoje, czynsz, właścicielNr, pracownikNr, biuroNr)

Primary Key nieruchomośćNr

Foreign Key właścicieiNr references Właściciel Prywatny (właściciel Nr) and Właściciel Instytucjonalny (właścicielNr) Foreign Key pracownikNr references Personel (pracownikNr)

Foreign Key biuroNr references Biuro(biuroNr)

Wizyta (klientNr, wizytaNr, dataWizyty, uwagi)

Primary Key WientNr, nieruchomośćNr

Foreign Key klientNr references Kiient(klientNr)

Foreign Key nieruchomośćNr references Nieruchomość(nieruchomośćNr)

Page 29: POWTÓRZENIE

29

Klient (klientNr, imię, nazwisko, telNr, typPreferencji, maksCzynsz) Primary Key klientNr

Rejestracja (kiientNr, biuroNr, pracownikNr, dataRejestracji)

Primary Key klientNr

Foreign Key klientNr references Klient(klientNr)

Foreign Key biuroNr references Biuro (biuroNr)

Foreign Key pracownikNr references Personel(pracownikNr)

Ogłoszenie (nieruchomośćNr, nazwaGazety, dataOgłoszenia, koszt)

Primary Key nieruchomośćNr, nazwaGazety, dataOgłoszenia

Foreign Key nieruchomośćNr references Nieruchomość(nieruchomośćNr)

Foreign Key nazwaGazety references G azeta (nazwaGazety)

Gazeta (nazwaGazety, adres, telNr, nazwiskoReprezentanta)

Primary Key nazwaGazety

Alternate Key telNr

Page 30: POWTÓRZENIE

30

Wynajęcie (wynajęcieNr, formaPtatności, kaucjaZapłacona, wynajęteOd, wynajęteDo, klientNr, nieruchomośćNr)

Primary Key wynajęcieNr

Alternate Key nieruchomośćNr, wynajęteOd

Alternate Key klientNr, wynajęteOd

Foreign Key klientNr references Klient(klientNr)

Foreign Key nieruchomośćNr references Nieruchomość(nieruchomośćNr)

Derived kaucja (Nieruchomość.czynsz*2)

Derived okresNajmu (wynajęteDo - wynajęteOd)

Page 31: POWTÓRZENIE

31

Porównanie nazw i kluczy kandydujących encji/relacji perspektywy Personel i perspektywy dyrektorów:

Perspektywa dyrektorów Perspektywa Personel

Zbiór encji Klucze kandydujące Zbiór encji Klucze kandydujące