Komputery Okna Internet

Nawiązywanie relacji między podmiotami. Projektowanie modelu w ERWIN Erwin Przykłady

Relacja to logiczna relacja między jednostkami. Każde połączenie musi być nazwane czasownikiem lub frazą czasownika. Nazwa relacji wyraża pewnego rodzaju ograniczenie lub regułę biznesową i sprawia, że ​​diagram jest bardziej czytelny. Domyślnie nazwa łącza nie jest wyświetlana na diagramie. Na poziomie logicznym można ustanowić identyfikującą relację jeden-do-wielu, relację wiele-do-wielu oraz nieidentyfikującą relację jeden-do-wielu. Łącze to koncepcja warstwy logicznej, która odpowiada kluczowi obcemu w warstwie fizycznej. W ERwin relacje są reprezentowane przez pięć podstawowych informacji:

● rodzaj relacji (identyfikująca, nieidentyfikująca, pełna/niepełna kategoria, niespecyficzna relacja);

● podmiot dominujący;

● podmiot podrzędny (zależny);

● moc komunikacyjna (kardynalność);

● dopuszczalność pustych (null) wartości.

IDEFIX rozróżnia jednostki zależne i niezależne. Typ podmiotu jest określany przez jego relacje z innymi podmiotami. Pomiędzy jednostką niezależną (rodzic) i zależną (dziecko) ustalana jest relacja identyfikująca. Jednostka zależna jest rysowana za pomocą zaokrąglonego prostokąta. Kiedy ustalana jest relacja identyfikująca, atrybuty klucza podstawowego jednostki nadrzędnej są automatycznie przenoszone do klucza podstawowego jednostki podrzędnej. Ta operacja rozszerzania atrybutów jednostki podrzędnej podczas tworzenia relacji nazywana jest migracją atrybutów. W encji podrzędnej nowe atrybuty są oznaczone jako klucz obcy - FK.

Po ustanowieniu relacji nieidentyfikującej dziecko pozostaje niezależne, a atrybuty klucza podstawowego rodzica są uwzględniane w atrybutach niekluczowych dziecka. Relacja nieidentyfikująca służy do łączenia niezależnych jednostek. Aby zdefiniować relacje ERwin, wybierz typ relacji, a następnie za pomocą myszy określ encję nadrzędną i podrzędną. Łącze identyfikujące jest pokazane jako linia ciągła; nieidentyfikujące - linią przerywaną. Linie kończą się kropką z boku jednostki podrzędnej.

Kardynalność - służy do wskazania stosunku liczby wystąpień encji nadrzędnej do liczby wystąpień elementu podrzędnego.

Istnieją cztery rodzaje podmiotów:

· Ogólny przypadek, gdy jedno wystąpienie encji nadrzędnej odpowiada 0, 1 lub wielu instancjom encji podrzędnej; nie jest oznaczony żadnym symbolem;

· Symbol P oznacza przypadek, w którym jedno wystąpienie encji nadrzędnej odpowiada 1 lub wielu instancjom encji potomnej (wartość zero jest wykluczona);

· Symbol Z oznacza przypadek, w którym jedno wystąpienie encji nadrzędnej odpowiada 0 lub 1 wystąpieniu encji podrzędnej (wiele wartości jest wykluczonych);

· Liczba oznacza przypadek dokładnego dopasowania, gdy z góry określona liczba wystąpień encji podrzędnej odpowiada jednemu wystąpieniu encji nadrzędnej.

· Dopuszczalność pustych (NULL) wartości w relacjach nieidentyfikujących jest przedstawiana przez ERwin jako pusty romb na łuku relacji od strony podmiotu nadrzędnego.

Nazwa relacji na poziomie logicznym to czasownik łączący jednostki. Fizyczna nazwa łącza (która może różnić się od logicznej) dla ERWin oznacza nazwę ograniczenia lub indeksu. Aby wyświetlić nazwę relacji, wybierz opcję z menu: Format / Wyświetlanie relacji / Fraza czasownika.

Niektóre encje definiują całą kategorię obiektów tego samego typu. W ERwin w tym przypadku tworzona jest encja w celu zdefiniowania kategorii i dla każdego elementu w kategorii, a następnie wprowadzana jest dla nich relacja kategoryzacyjna. Jednostka nadrzędna kategorii nazywana jest nadtypem, a dzieci nazywane są podtypem.

Na przykład encja „dokument przychodzący” może być żądaniem lub zamówieniem. Pierwszy i drugi mają różne, częściowo zachodzące na siebie zestawy atrybutów (minimalne przecięcie podtypów to klucz podstawowy). Wspólna część tych atrybutów, w tym klucz podstawowy, jest umieszczana w encji nadtypu dokumentu przychodzącego. Różne części (na przykład dane o treści, nadawcy) są umieszczane w podtypach encji.

W encji nadtypowej wprowadzany jest atrybut rozróżniacza, aby rozróżnić konkretne instancje encji podtypu.

W zależności od tego, czy wszystkie możliwe encje podtypu są uwzględnione w modelu, relacja kategoryczna jest kompletna lub niekompletna.

Rysunek 1.4 - Przykład niepełnego zestawu kategorii

Rysunek 1.5 - Przykład pełnego zestawu kategorii

3. Jednostka może być jednostką wspólną w dowolnej liczbie relacji kategoryzacyjnych.

4. Atrybuty klucza podstawowego encji kategorii muszą być zgodne z atrybutami klucza podstawowego encji ogólnej.

5. Wszystkie instancje kategorii encji mają tę samą wartość dyskryminatora, a wszystkie instancje innych kategorii muszą mieć różne wartości dyskryminatora (patrz Rys. 4 i Rys. 5).

Role.

Nazwa roli (nazwa funkcjonalna) jest synonimem atrybutu klucza obcego, który wskazuje rolę, jaką pełni atrybut w jednostce podrzędnej. Domyślnie na liście atrybutów wyświetlana jest tylko nazwa roli. Aby wyświetlić pełną nazwę atrybutu (zarówno nazwę funkcjonalną, jak i nazwę roli), wybierz Format / Wyświetlanie encji z menu kontekstowego, a następnie włącz opcję Nazwa roli / Atrybut. Pełna nazwa jest wyświetlana jako nazwa funkcjonalna i nazwa podstawowa, oddzielone kropką. Nazwa roli jest ustawiana na karcie Nazwa roli w oknie dialogowym Relacja. To okno jest wywoływane przez dwukrotne kliknięcie linku.

Użycie nazw ról jest obowiązkowe, gdy co najmniej dwa atrybuty jednej jednostki są zdefiniowane w tym samym zakresie, tj. mają ten sam zakres wartości, ale różne znaczenia.

Reprezentacja.

Widoki lub, jak się je czasami nazywa, tabele tymczasowe lub pochodne, to obiekty bazy danych, w których dane nie są przechowywane na stałe, jak w tabeli, ale są generowane dynamicznie podczas uzyskiwania dostępu do widoku. Widok nie może istnieć samodzielnie, ale jest definiowany tylko w postaci jednej lub kilku tabel. Korzystanie z widoków umożliwia projektantowi bazy danych udostępnienie każdemu użytkownikowi lub grupie użytkowników innego widoku danych, rozwiązując w ten sposób problemy związane z łatwością użytkowania i bezpieczeństwem danych.

Umowy

Przyjmijmy kilka konwencji dla zwięzłości dalszej prezentacji:

· Kliknięcie - naciśnięcie lewego przycisku myszy.

· Kliknięcie prawym przyciskiem - naciśnięcie prawego przycisku myszy.

Podwójne kliknięcie - dwa kolejne kliknięcia przyciskiem myszy

· Wybierz - przesuń kursor do odpowiedniego obiektu (elementu diagramu, pozycji menu, ikony) i kliknij lewym przyciskiem myszy.

Przeciągnij — zaznacz obiekt i bez puszczania przycisku myszy przesuń kursor v inną pozycję.

· Rekord typu Plik / Otwórz oznacza, że ​​należy wybrać pozycję menu Plik, a następnie z menu, które się otworzy, pozycję Otwórz.

Komputer stacjonarny ERwin

Na ryc. 1 przedstawia pulpit oprogramowania ERwin firmy Logic Works.

Rys. 1- Pulpit Erwina.

Na rysunku 1 liczby wskazują:

1- menu główne;

2- pasek narzędzi;

3- zestaw narzędzi specjalnych;

4-panel czcionek i kolorów;

5- pole wykresu.

Przyjrzyjmy się bliżej komponentom pulpitu.

Menu główne zawiera polecenia ogólne. Zauważ, że większość z tych poleceń jest powielana przez ikony paska narzędzi lub przez elementy menu, które pojawiają się po kliknięciu prawym przyciskiem myszy. Dlatego skupimy się teraz na poleceniach związanych z ogólnym widokiem pulpitu. Pozycja Okno ma następujące podpunkty:

Pasek narzędzi - pasek narzędzi;

Pasek narzędzi czcionek i kolorów - panel czcionek i kolorów;

Pasek stanu - pasek stanu;

ERwin Toolbox to zestaw specjalnych narzędzi.

Jeśli którykolwiek z wymienionych elementów nie jest zaznaczony, odpowiedni element nie jest wyświetlany na pulpicie. Pozycje Option / Show Display Menu i Option / Show Editor Menu dodają dodatkowy 1 gush do głównego menu, a ty: Display i Editor.

Pasek narzędzi zawiera następujące grupy ikon:

Praca z plikami:

Utwórz nowy diagram;

Otwórz istniejący diagram;

Wyślij schemat do druku.

Zauważ, że te ikony są powielane przez polecenia elementu menu głównego Plik.



Poziomy prezentacji modeli:

Poziom podmiotu;

Poziom atrybutu;

Poziom opisu;

Warstwa fizyczna (jeśli ta ikona jest kliknięta, to podczas demonstracji ich typy są wskazywane na poziomie atrybutów).

Narzędzia te są powielane przez element menu Wyświetl. Zawiera dodatkowe poziomy prezentacji: Primary Key Level - wyświetlane są tylko klucze podstawowe, Physical Order Level - atrybuty nie są podzielone na kluczowe i niekluczowe.

Skalowanie:

Zmniejszać;

Zwiększać;

Brak powiększenia;

Najmniejszy (dalsza redukcja doprowadzi do nieczytelności wykresu);

Zobacz część (po wybraniu tego narzędzia zaznacz w polu roboczym fragment, który chcesz obejrzeć).

Wszystkie akcje z tej grupy są duplikowane przez element Wyświetl / / Powiększ.

Praca z serwerem:

Wygeneruj skrypt dla serwera;

Połącz się z serwerem;

Wybierz serwer.

Zestaw specjalnych narzędzi zawiera wszystkie ikony potrzebne do graficznego zbudowania schematu danych. Składa się z następujących narzędzi:

Wybór obiektów;

Manipulowanie atrybutami;

Niezależny podmiot;

podmiot zależny;

Pełna kategoryzacja;

Niepełna kategoryzacja;

Identyfikująca relacja jeden-do-wielu;

Nieidentyfikująca relacja „oda do wielu”;

Relacja wiele-do-wielu;

Etykieta tekstowa.

PROJEKT KONCEPCJI

Tworzenie podmiotów

Encje na diagramie pojęciowym mogą być zależne i niezależne. Na diagramie każda jednostka jest reprezentowana przez prostokąt. Powyżej znajduje się nazwa podmiotu. Prostokąt jest podzielony na dwie części: górna to obszar klucza podstawowego; dół - obszar innych atrybutów. Podczas konstruowania encji prostokąt jest początkowo pusty, a nazwa ma postać E / n (na przykład E / 1, E / 2 itd.).

Aby zbudować niezależną encję, należy kliknąć odpowiednią ikonę z zestawu narzędzi specjalnych, a następnie kliknąć pole diagramu w miejscu, w którym ma się znajdować tworzona encja. Aby zbudować jednostkę zależną, wybierz narzędzie Jednostka zależna i kliknij pole wykresu. Zauważ, że prostokąt reprezentujący taki byt ma zaokrąglone rogi. Podczas budowania diagramu praktycznie nie ma potrzeby bezpośredniego określania jednostek zależnych, ponieważ ERwin przekształca zwykłe jednostki w jednostki zależne podczas organizowania relacji lub dzielenia na kategorie.

Jeśli projektant nie jest zadowolony z pozycji encji na polu, wybierz ikonę „Wskaż obiekt” z zestawu narzędzi specjalnych i przeciągnij encję w nowe miejsce. Aby usunąć wybraną encję, użyj klawisza Delete na klawiaturze. Możesz zmienić rozmiar prostokąta reprezentującego jednostkę, wybierając pozycję Opcja / Rozmiar jednostki w menu głównym. Pozycja menu Opcja / Układ służy do uporządkowania pozycji obiektów na polu.

Zdefiniujmy teraz nazwę podmiotu i jego charakterystyczne atrybuty. Aby to zrobić, użyj elementu Entity-Attribute z menu prawego przycisku myszy. W polu Nazwa encji otwartego edytora wprowadź nazwę encji. Za pomocą przełącznika możesz zmienić zależność encji. Pole edycyjne Klucz podstawowy służy do wprowadzania nazw atrybutów składających się na klucz podstawowy. Pole Atrybuty niekluczowe zawiera atrybuty niekluczowe. Zwróć uwagę, że w obu przypadkach klawisz Enter na klawiaturze służy do oddzielania atrybutów od siebie. Na ryc. 2 przedstawia przykład niezależnego podmiotu.

Ryż. 2 - Niezależny podmiot

Aby dodać rozszerzony opis encji (Definicję) oraz ogólny widok wszystkich encji, użyj Przeglądarki Raportów/Entity.

ERwin zapewnia możliwość manipulowania poszczególnymi atrybutami. W tym celu wybierz ikonę Atrybuty manipulacji. W tym trybie możesz:

· Usuń atrybut. Aby to zrobić, wybierz pojedynczy atrybut i naciśnij klawisz Delete na klawiaturze.

· Przenieś atrybut wewnątrz jednostki. W tym celu wybierz atrybut i bez zwalniania przycisku myszy przenieś go w żądane miejsce. Zwróć uwagę, że w ten sposób możesz przenosić atrybuty zarówno w obrębie obszarów kluczowych, jak i niekluczowych, a także między nimi.

· Przenieś atrybuty między podmiotami. Technika tej akcji jest podobna do poprzedniej. Jeśli klawisz Ctrl zostanie naciśnięty podczas przenoszenia atrybutu, zostanie on skopiowany do innej jednostki.

Budowanie linków

Rozważmy budowę relacji jeden-do-wielu. W tym celu należy wybrać odpowiednią ikonę z zestawu narzędzi specjalnych, a następnie kliknąć kolejno na rodzica i potomka. Identyfikujący link jest pokazany linią ciągłą i czarną kropką w prostokącie reprezentującym dziecko. Relacja ta charakteryzuje się przeniesieniem klucza podstawowego rodzica do identyfikatora dziecka. Na ryc. 3 przedstawia relację identyfikującą jeden do wielu.

Rys. 3. -Identyfikujący link

W podobny sposób budowana jest relacja nieidentyfikująca. Jest on przedstawiony linią przerywaną i rombem obok prostokąta nadrzędnego. Taki romb oznacza, że ​​istnienie rodzica jest opcjonalne, tj. pole klucza obcego może mieć wartość nul. Budowanie nieidentyfikującej relacji w ERwin charakteryzuje się przeniesieniem klucza podstawowego rodzica do atrybutów podrzędnych, które nie są kluczem. Rysunek 4 przedstawia relację nieidentyfikującą.

Ryż. 4. - Połączenie nieidentyfikujące

Jak już wspomniano, zaprojektowanie relacji wiele-do-wielu skutkuje powstaniem nowej encji. Przykład budowania tego typu relacji pomiędzy podmiotami pierwszym i drugim pokazano na rys. 5.

Ryż. 5. - Relacja wiele do wielu

Możesz wyświetlić i zmienić opis relacji za pomocą elementu Relacja z menu podręcznego relacji po kliknięciu prawym przyciskiem myszy. Otwarte okno wskazuje:

· Nazwa łącza (pole Fraza czasownika).

· Typ związku: Identyfikujący lub Nieidentyfikujący.

· Liczność. ERwin umożliwia zdefiniowanie następujących typów linków.

1. Zero, jeden lub więcej. Obecność takiej kardynalności nie wprowadza na diagramie dodatkowych oznaczeń.

2. Jeden lub więcej. Takie relacje są oznaczone literą P obok prostokąta reprezentującego dziecko.

3. Zero lub jeden. Kardynalność jest oznaczona literą Z.

4. Dano. W takim przypadku pole Dokładnie musi zawierać liczbę kardynalności. Taki związek jest oznaczony liczbą w prostokącie reprezentującym dziecko.

· Możliwość istnienia Null - wartości (przełącznik Nulls).

· Rola klucza obcego. W takim przypadku nazwa roli jest zapisywana w polu Nazwa roli. W tym przypadku pole Foreign Key edytora zawiera konstrukcję<имя роли>.<имя первичного ключа родителя>.

Jeśli diagram nie pokazuje nazw ani liczności połączenia, musisz umieścić wskaźniki obok pozycji Wyświetlanie / Fraza czasownika i Wyświetlanie / Kardynalność.

Aby usunąć link, wybierz ikonę „Wskaż obiekt”, kliknij odpowiedni link i naciśnij klawisz Delete na klawiaturze.

Podział podmiotów na kategorie w ERwin pokazano w podobny sposób jak na rys. 6.

Ryż. 6 - Pełna kategoryzacja

Aby zbudować kategorie, musisz wykonać następujące czynności:

W pełni opisz główną jednostkę;

Zbuduj encje kategorii;

Wybierz ikonę pełnej lub niepełnej kategoryzacji z zestawu narzędzi specjalnych;

Kliknij główną jednostkę;

Kliknij jedną z kategorii;

Aby zbudować każdą kolejną kategorię, kliknij znak kategorii, a następnie odpowiednią jednostkę.

Aby usunąć powiązanie jednej z kategorii z główną encją, wybierz odpowiednią gałąź i naciśnij Usuń na klawiaturze. Jeśli chcesz usunąć całą kategoryzację, wskaż znak kategorii i naciśnij Usuń.

PROJEKT LOGICZNY

Projektowanie logiczne zaczyna się od wyboru modelu danych. Wszystkie DBMS, z którymi współpracuje ERwin, są relacyjne, co decyduje o wyborze modelu danych.

Aby wybrać konkretny DBMS, kliknij ikonę Wybierz serwer. W oknie, które się otworzy, umieść wskaźnik naprzeciw wybranego DBMS, w razie potrzeby ustaw wersję. Dodatkowo należy domyślnie wybrać charakterystykę pól tabeli (rodzaj i możliwość wartości zerowej).

Ważnym krokiem w logicznym projektowaniu jest zdefiniowanie strategii zachowania integralności informacji. Aby ustawić domyślną strategię dla różnych typów łączy, kliknij przycisk Domyślna integralność referencyjna w oknie wyboru DBMS. ERwin oferuje trzy rodzaje strategii:

1. Ogranicz - zakaz. Charakteryzuje się zakazem działań z podmiotami powiązanymi.

2. Kaskada - kaskadowanie. Taką strategią jest wykonywanie operacji kaskadowych na podmiotach powiązanych.

3. Ustaw Null - zero. Ta strategia polega na ustawieniu wartości pola na Null.

Po wybraniu SZBD zacznijmy opisywać dane w jego terminach. Aby to zrobić, wybierz z menu, które się pojawi, klikając prawym przyciskiem myszy element, element<имя выбранной СУБД>Schemat bazy danych. W oknie, które się otworzy, możesz określić nazwy tabel i ich pól, a także charakterystykę tych pól.

W praktyce często zdarza się, że nie wszystkie relacje dowolnego typu są determinowane przez te same strategie utrzymywania ograniczeń integralności. Aby zmienić strategie dla określonego łącza, użyj elementu Integralność referencyjna z menu podręcznego łącza dostępnego po kliknięciu prawym przyciskiem myszy. Jeśli na diagramie nie ma informacji o wybranej strategii, umieść wskaźnik obok opcji Wyświetlanie / Integralność referendów.

Aby zbudować skrypt dla wybranego DBMS, kliknij ikonę „Generuj skrypt dla serwera”. Jednocześnie ERwin buduje schemat bazy danych według określonych tabel. Jeśli wybrany DBMS obsługuje wyzwalacze zapisu, to są one budowane w zależności od wybranych strategii obsługi ograniczeń integralności.

KONSTRUKCJA FIZYCZNA

Na tym etapie projektowania do powstałego obwodu dodamy dodatkowe indeksy. Aby to zrobić, użyj elementu<имя СУБД>Indeks menu, które pojawia się po kliknięciu prawym przyciskiem myszy encji. W oknie, które zostanie otwarte, kliknij przycisk Nowy, aby zbudować nowy indeks, a następnie określ dla niego atrybut, klikając wizualny obraz tego atrybutu. Zauważ, że teraz na ogólnym diagramie atrybuty, według których budowane są indeksy, są oznaczone literami AK. Oznacza to, że są to klucze alternatywne.

ĆWICZENIE

1. Zbuduj koncepcyjny schemat bazy danych dla jednostki certyfikującej za pomocą ERwin. Poniżej znajduje się opis obszaru tematycznego.

Jednostka certyfikująca posiada akredytację do wydawania certyfikatów na określone rodzaje produktów. Każdy rodzaj produktu jest opisany kodem (zgodnie z klasyfikatorem), nazwą typu (np. produkty mleczne) i rodzajem (np. mleko). Dla każdego rodzaju produktu może istnieć kilka dokumentów regulacyjnych, a skutek każdego dokumentu regulacyjnego dotyczy kilku rodzajów produktów. Dokument regulacyjny charakteryzuje się poziomem (GOST, OST itp.), numerem i nazwą.

Certyfikat wydawany jest tylko na jeden rodzaj produktu i tylko na jednego klienta. Jeden i ten sam klient może wielokrotnie kontaktować się z jednostką certyfikującą, dlatego konieczne jest przechowywanie informacji o klientach (kod organizacji, jej nazwa, adres i numer telefonu).

Klient może wystąpić do jednostki certyfikującej z jednym z dwóch rodzajów wniosku o certyfikację: wniosek lub deklaracja. W zależności od tego sporządzane są różne rodzaje dokumentacji wewnętrznej i przechowywane są różne informacje (tab.1)

Tabela 1

W tym przypadku numeracja wniosków i deklaracji jest ciągła. Oznacza to, że jeśli jest wniosek z numerem, to pod tym numerem nie powinno być deklaracji.

Jednostka certyfikująca przechowuje informacje o swoich pracownikach (kod personalny, nazwisko, stanowisko i adres). Ponadto musisz wiedzieć, jaki rodzaj pracy i na jakim oświadczeniu wykonywał pracownik. Prace prowadzone nad wnioskiem mogą mieć cztery rodzaje: wypełnienie wniosku, podjęcie decyzji w sprawie wniosku, podjęcie decyzji o wydaniu certyfikatu, wydanie certyfikatu. Dla tej samej aplikacji różne rodzaje pracy mogą być wykonywane przez różnych pracowników. W schemacie pojęciowym musi istnieć podział na kategorie. Ponadto należy użyć ról kluczy obcych.

2. Przekonwertuj schemat pojęciowy na tabele wybranego DBMS za pomocą ERwin. Zbuduj wyzwalacze.

3. Utwórz trzech użytkowników dla bazy danych z następującymi uprawnieniami:

1) „Raporty” – prawo do zapoznania się z wszystkimi informacjami (innych praw nie ma);

2) „Katalogi” – wszelkie prawa do informacji o pracownikach, klientach, produktach i dokumentach regulacyjnych;

3) „Dokumentacja” – wszelkie prawa do informacji o wewnętrznej dokumentacji jednostki certyfikującej i klientów; prawo do zapoznania się z danymi produktowymi i regulacyjnymi.

Raport powinien zawierać:

Wydruk schematu koncepcyjnego z ERwin;

Uzasadnienie wyboru strategii wspierających ograniczenia integralności bazy;

Struktura tabel i wyzwalaczy;

Opis sposobów tworzenia użytkowników bazy danych.

PYTANIA KONTROLNE

1. Jakie rodzaje relacji mogą istnieć w obszarze tematycznym?

2. Jak usunąć relację wiele-do-wielu ze schematu bazy danych?

3. Jaka jest różnica między linkami identyfikującymi i nieidentyfikującymi?

4. Kiedy konieczne staje się opisanie ról kluczy obcych?

5. Jak uzasadnić wybór kategorii?

6. Jaka jest różnica między kategoryzacją pełną a niepełną?

7. Jakie strategie utrzymywania ograniczeń integralności zastosowano w laboratorium?


Bibliografia

1. Data K.J. Wprowadzenie do systemów baz danych - Podręcznik. dodatek: Przetłumaczone z języka angielskiego. - wyd. - M. i inni: Williams, 2000 .-- 846 s.

2. Robinson S. Microsoft Access 2000: podręcznik. kurs: os. z angielskiego - SPB .: Piotr, 2001 .-- 511 s.

3. Kuzniecow S.D. Podstawy baz danych: Przebieg wykładów: Podręcznik. manual.M.: Internet un-t Inform. technologie, 2005.-484 s.

4. Hoffman V.E., Chomonenko A.D. Praca z bazami danych w Delphi. Sankt Petersburg: Dhv, 2002.-656 s.

5. Maklakov S.V. Bpwin i Erwin. Case-narzędzia rozwoju systemów informatycznych.-M.: Dialog-Mifi, 2003.-254p.

6. Malykhina MP Bazy danych: podstawy, projektowanie, zastosowanie: Podręcznik. podręcznik dla uniwersytetów. wyd. 2.-SPB.: BHV-Petersburg, 2006.-517 s.

Przyjrzyjmy się cyklowi rozwojowemu na przykładzie podanym w artykule Codda.
Przypomnijmy pokrótce merytoryczną stronę problemu. Pracownicy są ewidencjonowani. Dla każdego pracownika przechowywane są informacje o dzieciach oraz lista stanowisk zajmowanych przez tego pracownika. W przypadku stanowisk przechowywane są informacje o ustalonych wynagrodzeniach stanowisk.
Najpierw stwórzmy warstwę logiczną modelu. Aby to zrobić, ustaw tryb wyświetlania dla podmiotów (Display / Entity Level). Za pomocą paska narzędzi utwórz podmioty „pracownik”, „dzieci”, „historia pracy”, „historia wynagrodzeń”. Podmioty będziemy nazywać po rosyjsku.
Po wybraniu każdej encji ustaw jej szczegółowy opis w języku rosyjskim w edytorze „Definicja encji”. Opis ten pojawi się w raportach ERwin i będzie można go wyświetlić na diagramie.
Wskażmy relacje między podmiotami. Na przykład „pracownik” jest powiązany z tożsamością „rodzic” z podmiotem „dzieci”. Opis relacji jest wprowadzany w Edytorze/Edytorze relacji.
Wynik pracy jest wyświetlany na wykresie ERwin (rys. 2).

Ryż. 2. Diagram poziomu encji

Przejdźmy teraz do trybu ustawiania atrybutów (Display / Atribute Level). W edytorze „Entity / Attribute” ustaw nazwy atrybutów kluczowych i niekluczowych w języku rosyjskim. Należy zauważyć, że atrybut klucza numeru pracownika nie jest ręcznie określany dla jednostki podrzędnej podrzędnej. ERwin zapewnia jego migrację z jednostki macierzystej. To samo dzieje się z innymi jednostkami podrzędnymi.
Dla atrybutu „nazwa” podmiotu „pracownik” wskażemy, że jest to klucz alternatywny (przyjmiemy, że wszyscy pracownicy mają unikalne imiona/nazwiska). Aby to zrobić, po nazwie atrybutu umieść wskaźnik AK1 w nawiasach.
Wynik pracy jest wyświetlany na diagramie ERwin (rys. 3) w notacji IDEF1X.

Ryż. 3. Diagram poziomu atrybutów w notacji IDEF1X

Widok tego samego diagramu w notacji IE (Information Engineering) pokazano na rysunku 4.

Ryż. 4. Diagram poziomu atrybutów w notacji IE

Ponieważ nazwy atrybutów i encji zostały przez nas ustawione w języku rosyjskim, aby przejść na fizyczny poziom modelu należy przypisać im identyfikatory tabel, kolumn i ograniczeń, które spełniają reguły docelowego DBMS (zazwyczaj oznacza to użycie łacińskich liter, cyfr i niektórych znaków specjalnych).
W edytorze „Schemat bazy danych” określ odpowiednią nazwę tabeli dla każdej encji. Następnie w edytorze „Definicja Atrybutu” ustaw nazwy kolumn tabeli odpowiadające atrybutom encji. ERwin przenosi również tutaj nazwy kolumn do podrzędnych tabel.
W tym momencie można również użyć edytora „Rozszerzonych atrybutów”, aby zdefiniować rozszerzone atrybuty PowerBuilder (format wyświetlania, maska ​​edycji, reguły sterowania, wyrównanie, tytuły i komentarze).
Edytor definicji relacji określa fizyczną nazwę relacji, która jest zgodna z nazwą ograniczenia, które ERwin tworzy w bazie danych.
Teraz wszystko jest gotowe do stworzenia bazy danych i musisz wybrać docelowy DBMS (jeśli nie zostało to zrobione wcześniej). Wybierzmy na przykład Sybase System 10.
W edytorze SYBASE Database Schema ustawiamy typy danych dla kolumn tabeli.
Okno dialogowe, w którym wybierany jest typ danych, pokazano na rys. 5.

Ryż. 5. Wyznaczanie modelu fizycznego

Teraz możesz przejść do tworzenia bazy danych. W tym celu wykonywane jest polecenie „Generowanie schematu Sybase”. ERwin zbuduje pakiet instrukcji SQL generowania bazy danych. Rysunek 6 przedstawia okno dialogowe wyboru parametrów generowania pakietu do generowania bazy danych. Na rysunku widać, że można ustawić filtr (generowanie nie wszystkich tabel), pakiet instrukcji SQL można przeglądać (podgląd), drukować, zapisywać do pliku (raport) i generować (generować).

Ryż. 6. Wybór parametrów do generowania bazy danych

Zaawansowane funkcje ERwin

PRACA LABORATORYJNA nr 3. Modelowanie baz danych z Erwin

cel pracy- nabycie przez studentów praktycznych umiejętności tworzenia logicznych i fizycznych modeli danych z wykorzystaniem CASE - narzędzi do tworzenia systemów informatycznych.

Podstawowe informacje

ERwin obsługuje modelowanie baz danych w przód i wstecz. W modelowaniu bezpośrednim schemat bazy danych jest opisywany bezpośrednio za pomocą diagramu relacji encji. Jednostki na diagramie są reprezentowane przez prostokąty. Każdy prostokąt może mieć różne atrybuty wizualne. Każda jednostka musi mieć przypisaną unikalną nazwę. Nazwy jednostek muszą być w liczbie pojedynczej. Decyduje o tym fakt, że system zawsze działa na osobnych instancjach podmiotu. W takim przypadku poszczególne wystąpienia encji są uważane za obiekty, a encje za klasę obiektów. Jeśli podmioty zostały opisane podczas modelowania w BPwin, to można je po prostu zaimportować do ERwin. Przykład diagramu z utworzonymi encjami pokazano na rysunku.

Rysunek 4 - Przykład diagramu z utworzonymi podmiotami

Modelarstwo w ERwin

Istnieją dwa możliwe punkty widzenia na model informacyjny i odpowiednio dwa poziomy modelu. Pierwszy to poziom logiczny (z punktu widzenia użytkownika) oznaczający bezpośrednie przedstawienie faktów z życia. Na przykład ludzie, stoły, działy, psy i komputery to prawdziwe przedmioty. Nazywa się je w języku naturalnym, z dowolnymi separatorami słów (spacje, przecinki itp.). Na poziomie fizycznym modelu rozważane jest użycie określonego DBMS, określane są typy danych (na przykład liczba całkowita lub liczba rzeczywista), indeksy dla tabel.

ERwin zapewnia możliwość tworzenia i zarządzania tymi dwoma różnymi poziomami prezentacji pojedynczego diagramu (modelu), a także posiada wiele opcji wyświetlania na każdym poziomie. Termin „warstwa logiczna” w ERwin jest zgodny z modelem koncepcyjnym.

Etapy budowy modelu informacyjnego.

  • definicja podmiotów;
  • definiowanie zależności pomiędzy podmiotami;
  • ustawianie kluczy podstawowych i alternatywnych;
  • definiowanie atrybutów encji;
  • doprowadzenie modelu do wymaganego poziomu normalnej formy;
  • przejście do fizycznego opisu modelu: przypisanie korespondencji nazwa encji - nazwa tabeli, atrybut encji - atrybut tabeli;
  • ustalanie wyzwalaczy, procedur i ograniczeń;
  • generowanie bazy danych.

Erwin tworzy wizualną reprezentację (model danych) dla rozwiązywanego problemu. Widok ten może być używany do szczegółowej analizy, udoskonalania i rozpowszechniania dokumentacji wymaganej podczas cyklu rozwoju. Jednak ERwin to nie tylko narzędzie do rysowania. ERwin automatycznie tworzy bazę danych (tabele, indeksy, procedury składowane, wyzwalacze integralności referencyjnej i inne obiekty potrzebne do zarządzania danymi).

Tworzenie podmiotu.

Aby dodać encję do modelu, należy kliknąć przycisk encji na pasku narzędzi (Erwin Toolbox), a następnie w miejscu na diagramie, w którym chcesz umieścić nową encję. Klikając prawym przyciskiem myszy encję i wybierając Edytor encji z wyskakującego menu, możesz otworzyć okno dialogowe Edytor encji, które definiuje nazwę, opis i komentarze encji.

Każda encja musi być w pełni zdefiniowana za pomocą opisu tekstowego w zakładce Definicja. Definicje te są przydatne zarówno na poziomie logicznym, ponieważ pozwalają zrozumieć, jakiego rodzaju jest to obiekt, jak i na poziomie fizycznym, ponieważ można je wyeksportować jako część schematu i wykorzystać w rzeczywistej bazie danych ( UTWÓRZ KOMENTARZ do nazwy podmiotu). Zakładki Note, Note2, Note3, UDP (Właściwości zdefiniowane przez użytkownika) służą do dodawania dodatkowych komentarzy i definicji do encji.

Na karcie Ikona każdego elementu możesz powiązać obraz, który będzie wyświetlany w trybie widoku modelu na poziomie ikony, z obrazem, który będzie wyświetlany na wszystkich innych poziomach.

Karta UDP okna dialogowego Edytor jednostek służy do definiowania właściwości zdefiniowanych przez użytkownika (Użytkownik — Właściwości zdefiniowane). Kliknięcie przycisku na tej karcie powoduje wywołanie okna dialogowego Edytor właściwości zdefiniowanych przez użytkownika (wywoływane również z menu Edycja / UDP). W nim należy określić typ obiektu, dla którego jest uruchamiany UDP (diagram jako całość, encja, atrybut itp.) oraz typ danych. Aby dodać nową właściwość, kliknij przycisk w tabeli i wprowadź nazwę, typ danych, wartość domyślną i definicję.

Tworzenie atrybutów.

Kolejnym krokiem w tworzeniu modelu jest ustawienie atrybutów dla każdej encji. Podczas określania typu atrybutu możliwe jest użycie domen. Domena to abstrakcyjny typ zdefiniowany przez użytkownika, który jest przypisany do dowolnego fizycznego typu danych. Co więcej, każda domena może mieć własne wartości domyślne i reguły walidacji danych wejściowych. ERwin zapewnia możliwość udokumentowania wszystkich kroków związanych z tworzeniem własnych typów danych. Korzystając z koncepcji domeny, baza danych jest przenośna na różnych platformach sprzętowych.

Rysunek 5 — Tworzenie nowej domeny Rysunek 6 — Określanie właściwości nowej domeny

Rysunek 7 — Domyślna wartość nowej domeny

Rysunek 8 — Użycie domeny do wskazania typu danych w atrybucie.

Aby opisać atrybuty, kliknij prawym przyciskiem myszy jednostkę i wybierz Edytor atrybutów z menu, które się pojawi. Pojawi się okno dialogowe Edytora atrybutów.

Jeśli klikniesz przycisk Nowy, w wyświetlonym oknie dialogowym Nowy atrybut możesz określić nazwę atrybutu, nazwę odpowiadającej mu kolumny w modelu fizycznym oraz domenę. Domena atrybutu zostanie użyta podczas definiowania typu kolumny na poziomie modelu fizycznego.

W przypadku atrybutów klucza podstawowego na karcie Ogólne Edytora atrybutów należy zaznaczyć pole wyboru w polu wyboru Klucz podstawowy.
Zakładki Definicja, Uwaga i UDP mają taką samą funkcjonalność jak podczas definiowania encji, ale na poziomie atrybutu.

Dla większej przejrzystości diagramu każdy atrybut może być powiązany z ikoną. Można to zrobić za pomocą listy wyboru ikon na karcie Ogólne.

Bardzo ważne jest nadanie atrybutowi poprawnej nazwy. Atrybuty powinny być nazwane w liczbie pojedynczej i mieć wyraźne znaczenie semantyczne.

Zgodnie ze składnią IDEF1X, nazwa atrybutu musi być unikalna w modelu (nie tylko w obrębie encji!). Domyślnie, gdy próbujesz wprowadzić istniejącą nazwę atrybutu, ERwin zmienia jej nazwę. Na przykład, jeśli atrybut Komentarz już istnieje w modelu, inny atrybut (w innej encji) zostanie nazwany Komentarz / 2, a następnie Komentarz / 3 i tak dalej.
Podczas przenoszenia atrybutów w obrębie elementów i między nimi można użyć techniki przeciągnij i upuść, wybierając przycisk na palecie narzędzi.

Aby utworzyć nową relację, wybierz identyfikującą lub nieidentyfikującą relację w przyborniku (przybornik ERwin), kliknij najpierw na nadrzędnej, a następnie na encji podrzędnej.
Na palecie narzędzi przycisk odpowiada relacji identyfikującej, przycisk relacji wiele-do-wielu, a przycisk odpowiada relacji nieidentyfikującej. Aby edytować właściwości relacji, kliknij relację prawym przyciskiem myszy i wybierz Edytor relacji z menu kontekstowego.

Na karcie Ogólne w wyświetlonym oknie dialogowym możesz ustawić liczność, nazwę i typ połączenia.

Moc komunikacji (kardynalność)- służy do wskazania stosunku liczby wystąpień podmiotu dominującego do liczby wystąpień dziecka.
Istnieją cztery rodzaje mocy:

· Ogólny przypadek, gdy jedna instancja encji nadrzędnej odpowiada 0, 1 lub wielu instancjom encji podrzędnej, nie jest oznaczony żadnym symbolem;

· Symbol P oznacza przypadek, w którym jedno wystąpienie encji nadrzędnej odpowiada 1 lub wielu instancjom encji potomnej (wartość zero jest wykluczona);

· Symbol Z oznacza przypadek, w którym jedno wystąpienie encji nadrzędnej odpowiada 0 lub 1 wystąpieniu encji podrzędnej (wiele wartości jest wykluczonych);

· Liczba oznacza przypadek, w którym jedno wystąpienie jednostki nadrzędnej odpowiada z góry określonej liczbie wystąpień jednostki podrzędnej.

Domyślnie symbol mocy komunikacyjnej nie jest pokazany na schemacie. Aby wyświetlić nazwę, postępuj zgodnie z menu kontekstowym, które pojawia się po kliknięciu prawym przyciskiem myszy dowolnego miejsca na diagramie, które nie jest zajęte przez obiekty modelu, wybierz element Opcje wyświetlania / Relacja, a następnie włącz opcję Liczność.

Typ linku (identyfikujący / nieidentyfikujący).

IDEF1X rozróżnia jednostki zależne i niezależne. Typ podmiotu jest określany przez jego relacje z innymi podmiotami. Relacja identyfikująca jest ustanawiana między podmiotami niezależnymi (koniec macierzysty relacji) i zależnymi (koniec podrzędny relacji). Kiedy zostanie narysowany związek identyfikujący, ERwin automatycznie przekształci związek dziecka w związek zależny. Jednostka zależna jest rysowana za pomocą zaokrąglonego prostokąta.

Wystąpienie encji zależnej jest definiowane tylko poprzez relację z encją nadrzędną. Kiedy ustalana jest relacja identyfikująca, atrybuty klucza podstawowego jednostki nadrzędnej są automatycznie przenoszone do klucza podstawowego jednostki podrzędnej. Ta operacja rozszerzania atrybutów jednostki podrzędnej podczas tworzenia relacji nazywana jest migracją atrybutów. W encji podrzędnej nowe atrybuty są oznaczane jako klucze obce - (FK).

Po ustanowieniu relacji nieidentyfikującej dziecko pozostaje niezależne, podczas gdy atrybuty klucza podstawowego rodzica są migrowane do komponentów niekluczowych dziecka. Relacja nieidentyfikująca służy do łączenia niezależnych jednostek.

Identyfikujący link jest pokazany na schemacie jako linia ciągła z pogrubionym punktem na końcu podrzędnego linku, a nieidentyfikujący - linią przerywaną.

W przypadku relacji nieidentyfikującej można określić wartość obowiązkową (wartości null na karcie Ogólne w oknie dialogowym Edytor relacji). W przypadku relacji obowiązkowej (No Nulls) podczas generowania schematu bazy danych atrybut klucza obcego otrzyma znak NOT NULL, mimo że klucz obcy nie będzie zawarty w kluczu podstawowym encji podrzędnej. W przypadku relacji opcjonalnej (dozwolone wartości null) klucz obcy może mieć wartość NULL. Opcjonalny związek nieidentyfikujący jest oznaczony przezroczystym rombem po stronie podmiotu dominującego

Nazwa łącza (fraza czasownikowa)- fraza, która charakteryzuje relacje między podmiotami nadrzędnymi i podrzędnymi. W przypadku relacji jeden-do-wielu, która identyfikuje lub nie identyfikuje, wystarczy podać nazwę, która charakteryzuje relację między rodzicem a dzieckiem (rodzic do dziecka). W przypadku relacji wiele-do-wielu należy określić zarówno nazwy nadrzędny, jak i podrzędny, jak i podrzędny. Aby wyświetlić nazwę, postępuj zgodnie z menu kontekstowym, które pojawia się po kliknięciu prawym przyciskiem myszy dowolnego miejsca na diagramie, które nie jest zajęte przez obiekty modelu, wybierz Opcje wyświetlania / Relacja, a następnie włącz opcję Wyrażenie czasownikowe.

Nazwa roli lub nazwa funkcjonalna (Nazwa roli) jest synonimem atrybutu klucza obcego, który wskazuje rolę atrybutu w encji podrzędnej. Nazwę roli można ustawić na karcie Rolename / RI Actions w oknie dialogowym Relationship Editor.

Tworzenie kluczy.

Każda instancja jednostki musi być unikatowa i różna od innych atrybutów.

Główny klucz to atrybut lub grupa atrybutów, która jednoznacznie identyfikuje instancję jednostki. Atrybuty klucza głównego na diagramie nie wymagają specjalnego oznaczenia - są to atrybuty, które znajdują się na liście atrybutów nad poziomą linią. Podczas dodawania nowego atrybutu w oknie dialogowym Edytor atrybutów, aby uczynić go atrybutem klucza podstawowego, musisz zaznaczyć pole wyboru Klucz podstawowy na dole zakładki Ogólne. Na diagramie atrybut klucza można dodać do klucza głównego za pomocą trybu przenoszenia atrybutów (przycisk w palecie narzędzi).

Jedna jednostka może zawierać kilka atrybutów lub zestawów atrybutów, które twierdzą, że są kluczem podstawowym. Tacy wnioskodawcy nazywają się potencjalne klucze (klucz kandydata).

Klucze mogą być złożone, tj. zawierające wiele atrybutów. Złożone klucze podstawowe nie wymagają specjalnej notacji - są listą atrybutów powyżej poziomej linii. Wybierając klucz podstawowy, należy preferować klucze prostsze, tj. klucze z mniejszą liczbą atrybutów.

Wiele podmiotów ma tylko jeden potencjalny klucz. Ten klucz staje się podstawowym. Niektóre jednostki mogą mieć więcej niż jeden możliwy klucz. Wtedy jeden z nich staje się kluczem podstawowym, a reszta - kluczami alternatywnymi.

Alternatywny klucz to potencjalny klucz, który nie stał się kluczem podstawowym.

Każdy klucz ma przypisany indeks, którego nazwa jest również przypisywana automatycznie. W razie potrzeby nazwy kluczy i indeksów można zmienić ręcznie.

Na diagramie alternatywne atrybuty klucza są oznaczone jako (Akn.m.), gdzie n to liczba porządkowa klucza, m to liczba porządkowa atrybutu w kluczu. Gdy klucz alternatywny zawiera wiele atrybutów, (Akn.m.) jest umieszczany po każdym.

Klucz obcy są tworzone automatycznie, gdy relacja łączy encje: relacje tworzą odniesienie do atrybutów klucza podstawowego w encji podrzędnej, a atrybuty te tworzą klucz obcy w encji podrzędnej (migracja klucza). Atrybuty klucza obcego są identyfikowane z (FK) po ich nazwie.

Jednostka zależna może mieć ten sam klucz z wielu jednostek nadrzędnych. Jednostka może również wielokrotnie otrzymywać ten sam klucz obcy od tego samego rodzica za pośrednictwem kilku różnych relacji. Gdy ERwin wykryje jedno z tych zdarzeń, rozpoznaje, że oba atrybuty są takie same i umieszcza atrybuty klucza obcego w jednostce zależnej tylko raz. Ta kombinacja lub połączenie identycznych atrybutów nazywa się unifikacją.

Są chwile, kiedy zjednoczenie jest niepożądane. Na przykład, gdy dwa atrybuty mają tę samą nazwę, ale w rzeczywistości różnią się znaczeniem i konieczne jest, aby ta różnica została odzwierciedlona na diagramie. W takim przypadku należy użyć nazw ról kluczy obcych.

Relacje na diagramie są reprezentowane przez linie przechodzące z jednej jednostki (tabeli) do drugiej. Każdemu linkowi przypisywana jest unikalna nazwa. Tabele połączone są podzielone na tabele nadrzędne i podrzędne. Tabele nadrzędne są wyświetlane jako prostokąty z prawymi rogami, tabele podrzędne są wyświetlane z zaokrąglonymi rogami.

Po określeniu wszystkich atrybutów formatu danych konieczne jest przekształcenie stworzonego modelu logicznego w fizyczny. W tym celu musisz Narzędzia Wybierz Wyprowadź nowy model, gdzie jako docelowe bazy danych wybierz ODBC / Ogólne(do użytku w MySQL DBMS) patrz Rysunek 9. Nasz model (patrz Rysunek 4) zostanie przekonwertowany do postaci, jak pokazano na rysunku 11.

Rysunek 9 - Konwersja modelu logicznego na fizyczny

Rysunek 10 — Model fizyczny wskazujący format danych.

Rysunek 11 - Generowanie kodu SQL

Ćwiczenie

1. Zbuduj diagram z podanymi podmiotami (modelowanie bezpośrednie) dla danego obszaru tematycznego.

2. Ustaw atrybuty dla każdej zdefiniowanej encji. Używaj domen podczas ustawiania atrybutów.

3. Wprowadź relacje między podmiotami. Nadaj linkom unikalne nazwy.

4. Korzystając z DBMS MYSQL, zdecyduj o bezpośrednim wygenerowaniu bazy danych dla projektowanych informacji.

5. Raport powinien zawierać model koncepcyjny oraz fizyczną bazę danych w SZBD MYSQL.

Pytania kontrolne

1. Jaka jest różnica między logicznym i fizycznym poziomem prezentacji modeli danych za pomocą ERwin?

2. Jaka jest różnica między modelami danych prezentowanymi w postaci diagramu relacji encji, opartym na kluczach, a postacią pełnego modelu atrybutowego?

3. Jakie są główne składniki modeli danych prezentowanych zgodnie z metodologią IDEF1X?


Listę typów danych obsługiwanych przez DBMS należy sprawdzić u producenta

Potrzebujemy pojęcia anomalii — niezgodności między ograniczeniami integralności konceptualnych i logicznych (oraz fizycznych) schematów danych. Celem normalizacji jest właśnie eliminacja anomalii pojawiających się podczas włączania, aktualizowania i usuwania danych.

Cztery pierwsze formy normalne (dokładniej pierwsza, druga, trzecia i Boyes-Codd) są połączone w jedną grupę, ponieważ ich definicje oparte są na klasycznym pojęciu funkcji podanej na diagramie relacji i na twierdzeniu Heatha.

Dwie kolejne normalne formy (czwarta i piąta) używają zmodyfikowanych zależności funkcjonalne... Ostatni normalna forma- klucz domeny - oznacza powrót do początków - logiczne podejście do teorii relacji.

Zalecany będzie praktyczny sposób uzyskania schematu bazy w pierwszych czterech normalnych formach, prawie zawsze podając ostateczną wersję schematu. Poprawność tej konstrukcji będzie musiała zostać sprawdzona metodami formalnymi, czyli potrzebne są zarówno techniki heurystyczne, jak i teoria normalizacji.

Omówmy najpierw przyjętą metodę prezentacji materiału na temat normalizacji. Wyjdziemy oczywiście od teorii normalizacji, opracowanej w ramach relacyjnego modelu danych. Doświadczenie pokazało jednak, że przy takiej prezentacji początkujący mają trudności ze zrozumieniem zasadniczego pojęcia anomalii, definiowanej jako pewna cecha „nieprawidłowości” odwzorowania koncepcyjnego modelu biznesowego na model bazy danych. Dlatego

wykorzystamy mapowanie modelu relacyjnego do znanego Ci już modelu encji i relacji, aw modelu ER będziemy badać normalizację. Wprowadzi to semantykę niezbędną do radzenia sobie z anomaliami.

Pomyślmy jeszcze raz o związkach między relacjami, o łączeniu relacji i o kluczach obcych.

5.1 Relacje i klucze obce

W poprzednich rozdziałach zbadano koncepcje łączenia podmiotów i relacje między nimi. Wyraźnie je rozróżnimy. Pojęcie połączenia nie ma charakteru algebraicznego, ponieważ połączenia są aktywne. We wdrożeniach łącza ustalają strukturę bazy, pracują z manipulacją danymi i zmianami w schemacie. Połączenie to pojęcie algebraiczne. Znaczenie danych uzyskanych podczas połączenia leży całkowicie na sumieniu dewelopera. Znaczenie powiązania jest sztywno ustalone przez modelowany biznes.

Semantyka linków jest dość rozwinięta. Oprócz liczebności celów stosuje się takie właściwości, jak właściwość obowiązkowa, możliwa do zidentyfikowania. Nie da się ich wyrazić bezpośrednio w modelu relacyjnym (nie ma takich słów). Dlatego też pierwsze formy normalne będą rozpatrywane w ramach modelu „podmiot-związek”.

Relacje między relacjami / bytami zarówno w modelu relacyjnym, jak i diagramach ER są tworzone przez ograniczenie integralności referencyjnej zwane „kluczem obcym” (w skrócie FK).

Aby nie tworzyć fałszywego wyobrażenia o ubóstwie modelu relacyjnego jako niemożności zrealizowania czegoś, pamiętaj, że w nim relacja n:m jest reprezentowana przez dwie relacje 1:n, że złożone relacje można modelować na różne sposoby. Nawet agregaty mogą być w jakiś sposób reprezentowane przez wprowadzenie jednostek opisujących ich skład. Takie modele można skutecznie zaimplementować w programie, ale najprawdopodobniej będą niewygodne dla człowieka. Możliwości modelowania struktur danych w ramach modelu relacyjnego są dość szerokie, ale oczywiście nie nieograniczone.

Omówmy ogólne podejście do analizy struktur, które będzie dalej analizowane na przykładzie dwóch powiązanych podmiotów „Pracownik” i „Oddział”, zilustrowanych na rysunku 5.1. Po lewej stronie znajduje się wariant z linkiem identyfikacyjnym, po prawej z linkiem nieidentyfikującym.


Ryż. 5.1. Przykład relacji jeden-do-wielu

Przypominam raz jeszcze, że zgodziliśmy się rozpatrywać przykłady tak, jak są one opisane w tekście, a nie tak, jak bywa lub może być w życiu. To ograniczenie jest konieczne, aby informacja była postrzegana przez wszystkich i zawsze w ten sam sposób.

W obu wersjach schematu każdy pracownik jest przypisany do jednego z działów. Mamy relację („do wielu” po stronie relacji „Pracownik”). W odniesieniu do „Pracownika” nie można wybrać działu o numerze dział, którego nie ma na liście działów (podmiot „Dział”). Jeden dział nie może mieć jednego, jednego, dwóch lub więcej pracowników.

W odniesieniu do podobnego przykładu (rozdział 2.2.7) zauważyliśmy, że powstaje sytuacja paradoksalna. Dyrektor jest przypisany do określonego departamentu, a kierownik tego departamentu podlega dyrektorowi i jednocześnie będzie jego kierownikiem. Ale może działy są centrami kosztów, a wynagrodzenie dyrektora postanowiono obciążać wydatki jednego z działów. W naszych samouczkach nie powinieneś zajmować się takimi szczegółami, chyba że oczywiście wskazano inaczej. Należy przyzwyczaić się między innymi do myślenia o stronie biznesowej od samego początku, ale przy rozwiązywaniu problemów edukacyjnych nie należy rozszerzać zadań o analizę możliwych opcji.

Jaka jest różnica między diagramami na rysunku 5.1? Połączenie identyfikujące sprawia, że ​​myślisz o pracowniku przede wszystkim jako o pracowniku działu. Relacja nieidentyfikująca oznacza, że ​​przynależność do działu jest oznaczona jako coś drugorzędnego.

5.2 Rodzaje komunikacji. Identyfikujące i nieidentyfikujące, obowiązkowe i opcjonalne linki

Identyfikowanie i nieidentyfikowanie typów łączy (patrz Rysunek 5.1) nie należą do teorii relacyjnych baz danych, ale do standardu modelowania IDEF1X, na którym opiera się ERwin (znany również jako AllFusion Data Modeller).

Jeśli klucz obcy tworzy encję zależną (słabą), jest przekazywany do grupy atrybutów, która tworzy klucz podstawowy tej encji. W takim przypadku tworzony jest link identyfikacyjny. To jest zawsze wymagane.

Relacja nieidentyfikująca służy do łączenia dwóch silnych jednostek. Przekazuje klucz do obszaru atrybutów niekluczowych.

W przypadku relacji nieidentyfikującej można określić zobowiązanie (cały związek, a nie jego koniec). Jeżeli relacja jest wymagana (w ERwin jest to ustawienie funkcji No Nulls), to atrybuty klucza obcego otrzymają cechę NOT NULL, co oznacza, że ​​niezdefiniowane wartości nie są dozwolone. W przypadku relacji opcjonalnej (flaga dozwolonej wartości null) klucz obcy może mieć wartość NULL.

Po zapoznaniu się z językiem SQL w „Języku SQL” za pomocą inżynierii bezpośredniej, możliwe będzie wygenerowanie skryptu SQL tworzącego fragment schematu bazy danych. Ale nawet teraz, jeśli jesteś już choć trochę zaznajomiony z SQL, przejdź do Narzędzia> Forward Engineer / Schema Generation, a następnie kliknij przycisk Preview, aby wyświetlić wygenerowany tekst.

Dlaczego przy rozważaniu normalizacji będziemy używać bardziej złożonego modelu encji i relacji, zamiast ograniczać się do klasycznego podejścia w ramach modelu relacyjnego? W końcu dodanie pojęć bytów silnych i słabych, relacji identyfikujących, obowiązkowych i opcjonalnych nieidentyfikujących relacji, znacznie komplikuje semantykę modelu danych.

Wprowadzenie pięciu wyżej wymienionych pojęć wyższego poziomu daje język, który lepiej odzwierciedla specyfikę zadania i dlatego jest bardziej zrozumiały dla programisty. Pozwoli to na szybkie i bez formalnych przekształceń uzyskanie wyjściowego schematu bazy relacyjnej w niemal pełnej postaci (później wyrazimy tę ideę dokładniej: „w trzeciej formie normalnej lub normalnej formie Boyce-Codda”).