Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Inżynieria odwrotna modelu danych przy użyciu Oracle SQL Developer

Wprowadzenie

W tym samouczku przedstawiono narzędzia Oracle SQL Developer Data Model, których można użyć do inżynierii wstecznej istniejącego schematu bazy danych w model relacyjny i logiczny. Rozważ typowy proces tworzenia bazy danych, który rozpoczyna się od wymagań użytkownika biznesowego, które są modelowane jako model relacji encji składający się z encji, atrybutów, identyfikatorów i relacji. Ten model E-R jest następnie przekształcany w model relacyjny składający się z relacji, atrybutów, kluczy i kluczy obcych. Model relacyjny może być zaimplementowany w relacyjnej bazie danych jako zestaw tabel, kolumn i ograniczeń, w tym ograniczenia unikatowe, klucz podstawowy i klucz obcy.

Możemy spotkać się z sytuacjami, w których mamy już zaimplementowany schemat relacyjnej bazy danych, ale brakuje nam oryginalnego modelu relacyjnego lub modelu relacji encji, który został użyty do zaprojektowania bazy danych. W takich sytuacjach możemy być w stanie odtworzyć model E-R za pomocą inżynierii wstecznej model ze schematu bazy danych. Aby to osiągnąć, musimy wykonać następujące kroki:

  1. Połącz schemat bazy danych i zidentyfikuj wszystkie istniejące tabele, ich kolumny oraz ograniczenia klucza podstawowego i obcego.
  2. Zbuduj model relacyjny, który odpowiada istniejącemu zestawowi tabel i ograniczeń.
  3. Wyprowadź model E-R z modelu relacyjnego.

Terminologia modelu danych

Oracle SQL Developer używa terminów, które są nieco inne niż te, które są zwykle używane w akademickich kursach baz danych. Model fizyczny (z kluczami, relacjami kluczy obcych i indeksami) wyodrębniony ze schematu bazy danych jest określany przez Oracle SQL Developer jako „model relacyjny”. Zbiór encji z liniami relacji jest nazywany „Modelem logicznym” przez Oracle SQL Developer.

Wymagania wstępne

Przed rozpoczęciem tego samouczka upewnij się, że pracujesz z Oracle SQL Developer w wersji 4.x lub nowszej. Niestety, Oracle 12c nadal może być dostarczany z wersją 3.x programu SQL Developer, w której brakuje narzędzi do modyfikacji danych.

Jeśli potrzebujesz uzyskać i zainstalować program SQL Developer lub potrzebujesz wskazówek dotyczących rozpoczęcia korzystania z programu SQL Developer, zapoznaj się z samouczkiem.

Będziesz także potrzebować poświadczeń (nazwa hosta, port, nazwa usługi, nazwa użytkownika i hasło) do przykładowego schematu „HR” (lub innego), który jest dostarczany z Oracle 11g i Oracle 12c.

Poniższe kroki zostały wykonane przy użyciu SQL Developer 4.1 w systemie Windows 7 połączonego z przykładowym schematem „HR” w bazie danych Oracle 12c.

Inżynieria odwrotna modelu relacyjnego ze schematu bazy danych

  1. Uruchom Oracle SQL Developer i utwórz połączenie ze schematem bazy danych, z którym będziesz pracować. W tym przykładzie utworzyliśmy połączenie ze schematem „HR”, który jest przykładową bazą danych zasobów ludzkich, która jest dostarczana z Oracle 11g i Oracle 12c.
  2. Rozwiń menu Plik, wybierz Modeler danych, a następnie podmenu Importuj. Kliknij opcję Data Dictionary z wysuwanego menu, jak pokazano poniżej. Spowoduje to uruchomienie Kreatora importu słownika danych:
  3. Wybierz połączenie, z którym chcesz pracować. Możesz także kliknąć przycisk Dodaj, aby dodać nowe połączenie. Po podświetleniu połączenia kliknij przycisk Dalej>, aby kontynuować.
  4. Następnym krokiem jest wybranie schematu do zaimportowania. W tym przykładzie zaznaczyliśmy pole dla schematu „HR”, jak pokazano poniżej. Zauważ, że wybór „Importuj do:” pokazuje nowy model relacyjny, a typ bazy danych to Oracle 12c. Kliknij przycisk Dalej>, aby kontynuować:

Kolejny zestaw kroków na następnej stronie obejmuje wybór obiektów bazy danych do zaimportowania do modelu.

  1. Następnym krokiem jest wybranie obiektów bazy danych do zaimportowania. W tym ćwiczeniu wybierzemy wszystkie tabele do zaimportowania. Należy zauważyć, że istnieją inne obiekty bazy danych, takie jak widoki, sekwencje, role, procedury składowane itp., które również mogą zostać zaimportowane. W tym ćwiczeniu zachowamy prostotę i po prostu spojrzymy na tabele. Po wybraniu tabel kliknij przycisk Dalej>, aby kontynuować.
  2. Ostatnim krokiem kreatora importu jest przegląd obiektów bazy danych do zaimportowania. Jeśli wszystko wygląda dobrze, kliknij przycisk Zakończ, aby rozpocząć import.
  3. W tym momencie, w zależności od liczby importowanych tabel, możesz zobaczyć pasek postępu, taki jak:
  4. Po zakończeniu pojawi się okno dziennika podsumowania:

    Jeśli są jakieś nieudane instrukcje, zapisz ten dziennik, aby pomóc w debugowaniu.

  5. Zakładając, że proces importu zakończył się bez błędów, w oknie pojawi się nowy model relacyjny. Możesz chcieć poruszać się wokół stołów, aby zrobić miłą aranżację. Model wykorzystuje notację „kurzej łapki”, gdzie „kurza łapka” reprezentuje „wiele” strony relacji. Na przykład jeden „region” ma wiele „krajów”. Jeden „kraj” ma wiele „lokalizacji” i tak dalej.
  6. Możesz zmienić poziom szczegółów wyświetlanych w modelu relacyjnym, klikając prawym przyciskiem myszy obszar roboczy i wybierając pozycję menu Wyświetl szczegóły.

Przypominamy, że większość praktyków zwykle nazywa to „fizycznym modelem bazy danych”, ponieważ obejmuje typy danych, klucze, klucze obce i indeksy zaimplementowane w schemacie bazy danych.

Kroki zapisywania modelu są przedstawione na następnej stronie.

  1. W tym momencie model otrzymuje tymczasową nazwę, taką jak Bez tytułu_1. Aby wyświetlić ten model w „Przeglądarce”, rozwiń menu Widok, wybierz Data Modeler, a następnie Przeglądarka. Otwórz projekt Untitled_1, a następnie otwórz Modele relacyjne i wreszcie model nazwany po połączeniu, jak pokazano poniżej:
  2. Kliknij prawym przyciskiem myszy projekt Untitled_1 i kliknij pozycję menu Zapisz projekt. Przejdź do odpowiedniego folderu, aby zapisać swoją pracę i nadaj projektowi nazwę pliku. Kliknij przycisk Zapisz, gdy wszystko będzie gotowe:

W tym momencie mamy teraz (co Oracle nazywa) model relacyjny, który jest zasadniczo odzwierciedleniem schematu relacyjnej bazy danych, który właśnie zaimportowaliśmy. W rzeczywistości SQL Developer utrzymuje te dwa zsynchronizowane, dzięki czemu jeśli zmieni się schemat bazy danych, zostanie to odzwierciedlone w modelu relacyjnym, a jeśli zmiany zostaną wprowadzone w modelu relacyjnym, mogą zostać wepchnięte (zaimplementowane) w schemacie bazy danych.

Ten model pokaże wszystkie tabele (relacje), klucze, klucze obce, ograniczenia sprawdzające i indeksy, które mogą lub nie wymuszać unikalności. Na przykład poniższa relacja EMPLOYEES ma klucz podstawowy EMPLOYEE_ID, trzy klucze obce (JOB_ID, MANAGER_ID i DEPARTMENT_ID) oraz jedno unikatowe ograniczenie w kolumnie EMAIL:

Kolejny zestaw kroków na następnej stronie dotyczy kontynuacji procesu inżynierii odwrotnej w celu wytworzenia modelu logicznego.

Inżynieria odwrotna modelu relacji encji

W tym momencie dokonaliśmy inżynierii wstecznej schematu bazy danych do modelu relacyjnego, co jest dość prostym procesem. Ostatnim krokiem jest kontynuacja inżynierii wstecznej w celu stworzenia modelu relacji encji. Zauważ, że Oracle nazywa to „modelem logicznym”.

  1. Wracając do przeglądarki modeli danych, otwórz foldery dla modeli relacyjnych i modeli logicznych, jak pokazano poniżej:
  2. Kliknij prawym przyciskiem myszy model relacyjny (nasz nazywa się sfscdb_pdb2_hr) i wybierz opcję Inżynier do modelu logicznego z wyskakującego menu, jak pokazano poniżej:
  3. Inżynier do modelu logicznego powinno pojawić się okno dialogowe jak poniżej. Należy sprawdzić każdą z Tabel i Piśmiennictwa. Każda tabela zostanie zmapowana na jednostkę, a każde odwołanie do klucza obcego powinno zostać zmapowane na relację między jednostkami. Po wybraniu wszystkich odpowiednich elementów w lewym oknie kliknij przycisk Inżynier, aby utworzyć model logiczny (ER).
  4. Nowy model relacji encji powinien wyglądać tak, jak pokazano poniżej. Domyślnie używana jest notacja „kurza łapa” lub notacja Barkera.

Szczegóły relacji (które Oracle myląco nazywa „relacjami”) można wyświetlić, klikając dwukrotnie linię relacji. W poniższym przykładzie relacja między jednostkami Employees i Jobs jest otwarta. Określając frazy czasownika w polach „Nazwa w źródle” i „Nazwa w miejscu docelowym”, każda relacja może być całkowicie określona na wysokim poziomie szczegółowości.

Poniższy rysunek pokazuje całkowicie zdefiniowaną relację, która brzmi:

One JOB may be a job performed by One or More EMPLOYEES
One EMPLOYEE must be performing One and Only One JOB

Domyślną notacją dla modelu ER jest notacja Crow’s Foot lub Barker. Aby zmienić notację na notację Bachmana lub notację informatyczną, kliknij prawym przyciskiem myszy w dowolnym miejscu na diagramie i podświetl pozycję menu Notacja. Wybierz dowolną z dostępnych notacji z wyświetlonej listy.

Możesz dodać tytuł i inne szczegóły do ​​modelu ER za pomocą narzędzia Nowa notatka


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lista parametrów NLS w bazie danych Oracle

  2. LongOpsWatcher w SQL Dev

  3. Problem z hibernacją z wyzwalaczem Oracle do generowania identyfikatora z sekwencji

  4. Jak zaktualizować Oracle Clob za pomocą JDBC?

  5. cx_Oracle i obsługa wyjątków — dobre praktyki?