Úvod
Tento kurz představuje nástroje Oracle SQL Developer Data Model, které lze použít k reverzní analýze existujícího databázového schématu na relační a logický model. Zvažte typický proces vývoje databáze, který začíná požadavky obchodních uživatelů, které jsou modelovány jako model vztahu entit sestávající z entit, atributů, identifikátorů a vztahů. Tento E-R model je poté transformován na relační model skládající se ze vztahů, atributů, klíčů a cizích klíčů. Relační model lze implementovat v relační databázi jako sadu tabulek, sloupců a omezení včetně omezení jedinečného, primárního klíče a cizího klíče.
Můžeme se setkat se situacemi, kdy máme již implementované schéma relační databáze, ale postrádáme původní relační model nebo model entitních vztahů, který byl použit k návrhu databáze. V těchto situacích můžeme být schopni znovu vytvořit model E-R pomocí reverzního inženýrství model z databázového schématu. Abychom toho dosáhli, musíme provést následující kroky:
- Připojte schéma databáze a identifikujte všechny existující tabulky, jejich sloupce a omezení primárního a cizího klíče.
- Sestavte relační model, který odpovídá existující sadě tabulek a omezení.
- Odvozujte model E-R z relačního modelu.
Terminologie datového modelu
Oracle SQL Developer používá termíny, které se mírně liší od těch, které se obvykle používají v kurzech akademických databází. Fyzický model (s klíči, vztahy cizích klíčů a indexy), který je extrahován ze schématu databáze, nazývá Oracle SQL Developer jako „relační model“. Sada entit s čarami vztahů se nazývá „Logický model“ od Oracle SQL Developer.
Předpoklady
Před zahájením tohoto kurzu se ujistěte, že pracujete s Oracle SQL Developer verze 4.x nebo novější. Bohužel, Oracle 12c může být stále dodáván s verzí 3.x SQL Developer, která postrádá nástroje Data Modling.
Pokud potřebujete získat a nainstalovat SQL Developer nebo chcete nějaké tipy pro Začínáme s SQL Developerem, podívejte se prosím na tutoriál.
Budete také potřebovat přihlašovací údaje (název hostitele, port, název služby, uživatelské jméno a heslo) k vzorovému schématu ‚HR‘ (nebo jinému), které se dodává s Oracle 11g a Oracle 12c.
Následující kroky byly provedeny pomocí SQL Developer 4.1 na Windows 7 připojeného k vzorovému schématu ‚HR‘ v databázi Oracle 12c.
Reverzní inženýrství relačního modelu z databázového schématu
- Spusťte Oracle SQL Developer a vytvořte připojení k databázovému schématu, se kterým budete pracovat. V tomto příkladu jsme vytvořili připojení ke schématu ‚HR‘, což je ukázková databáze lidských zdrojů dodávaná s Oracle 11g a Oracle 12c.
- Vytáhněte nabídku Soubor, vyberte možnost Data Modeler a poté podnabídku Import. Klikněte na výběr Datový slovník z rozbalovací nabídky, jak je znázorněno níže. Tím se spustí Průvodce importem datového slovníku:
- Vyberte připojení, se kterým chcete pracovat. Můžete také kliknout na tlačítko Přidat a přidat nové připojení. Jakmile zvýrazníte své připojení, pokračujte kliknutím na tlačítko Další>.
- Dalším krokem je výběr schématu k importu. V tomto příkladu jsme zaškrtli políčko pro schéma „HR“, jak je uvedeno níže. Všimněte si, že výběr „Importovat do:“ zobrazuje Nový relační model a typ databáze je Oracle 12c. Pokračujte kliknutím na tlačítko Další>:
Další sada kroků na další stránce zahrnuje výběr databázových objektů pro import do modelu.
- Dalším krokem je výběr databázových objektů, které chcete importovat. Pro toto cvičení vybereme všechny tabulky k importu. Všimněte si, že existují další databázové objekty, jako jsou pohledy, sekvence, role, uložené procedury atd., které lze také potenciálně importovat. U tohoto cvičení to ponecháme jednoduché a stačí se podívat do tabulek. Po výběru tabulek pokračujte kliknutím na tlačítko Další>.
- Posledním krokem průvodce importem je kontrola databázových objektů, které mají být importovány. Pokud vše vypadá dobře, kliknutím na tlačítko Dokončit spusťte import.
- V tomto okamžiku se v závislosti na počtu importovaných tabulek může zobrazit ukazatel průběhu, například:
- Po dokončení se zobrazí okno souhrnného protokolu:
Pokud se vyskytnou nějaké neúspěšné příkazy, uložte si tento protokol, aby vám pomohl s laděním.
- Za předpokladu, že proces importu byl dokončen bez chyb, v okně se objeví nový relační model. Možná se budete chtít pohybovat po stolech, abyste si udělali pěkné uspořádání. Model používá notaci „Crow's Foot“, kde „Crow's Foot“ představuje stranu vztahu „Mnoho“. Takže například jeden „region“ má mnoho „zemí“. Jedna „Země“ má mnoho „Poloh“ a tak dále.
- Úroveň podrobností zobrazených v relačním modelu můžete změnit kliknutím pravým tlačítkem na plátno a výběrem položky nabídky Zobrazit podrobnosti.
Připomínáme, že většina praktiků by to obvykle nazývala „model fyzické databáze“, protože zahrnuje datové typy, klíče, cizí klíče a indexy, které jsou implementovány ve schématu databáze.
Kroky pro uložení modelu jsou uvedeny na další stránce.
- V tomto okamžiku je modelu přidělen dočasný název, například Untitled_1. Chcete-li tento model zobrazit v „Prohlížeči“, rozbalte nabídku Zobrazit, vyberte Data Modeler a poté Prohlížeč. Otevřete návrh Untitled_1 a poté otevřete relační modely a nakonec model pojmenovaný podle vašeho připojení, jak je znázorněno níže:
- Klikněte pravým tlačítkem na návrh Untitled_1 a klikněte na položku nabídky Uložit návrh. Přejděte do vhodné složky a uložte svou práci a dejte návrhu název souboru. Jakmile to bude připraveno, klikněte na tlačítko Uložit:
V tomto bodě nyní máme (to, co Oracle nazývá) relační model, který je v podstatě zrcadlem schématu relační databáze, které jsme právě importovali. Ve skutečnosti SQL Developer udržuje tyto dva synchronizované, takže pokud se schéma databáze změní, projeví se to v relačním modelu, a pokud jsou v relačním modelu provedeny změny, mohou být vloženy (implementovány do) schématu databáze.
Tento model zobrazí všechny tabulky (vztahy), klíče, cizí klíče, kontrolní omezení a indexy, které mohou nebo nemusí vynucovat jedinečnost. Například vztah EMPLOYEES níže má primární klíč EMPLOYEE_ID, tři cizí klíče (JOB_ID, MANAGER_ID a DEPARTMENT_ID) a jedno jedinečné omezení ve sloupci EMAIL:
Další sada kroků na další stránce pokrývá, jak pokračovat v procesu reverzního inženýrství k vytvoření logického modelu.
Reverzní inženýrství modelu vztahu entit
V tomto bodě jsme reverzně upravili databázové schéma na relační model, což je poměrně přímočarý proces. Posledním krokem je pokračovat v reverzním inženýrství k vytvoření modelu vztahu entit. Všimněte si, že Oracle tomu říká „logický model“.
- Po návratu do prohlížeče datových modelů otevřete složky pro relační modely a logický model, jak je znázorněno níže:
- Klikněte pravým tlačítkem na relační model (náš se jmenuje sfscdb_pdb2_hr) a z rozbalovací nabídky vyberte možnost Engineer to Logical Model, jak je znázorněno níže:
- Od inženýra k logickému modelu dialogové okno by mělo vypadat jako níže. Je třeba zkontrolovat každou z tabulek a odkazů. Každá tabulka bude mapována na entitu a každá reference cizího klíče by měla být mapována na vztah mezi entitami. Jakmile jsou v levém okně vybrány všechny příslušné prvky, klikněte na tlačítko Engineer a vytvořte logický (ER) model.
- Nový model vztahu entit by měl vypadat tak, jak je uvedeno níže. Ve výchozím nastavení se používá „Crow's Foot“ nebo Barkerův zápis.
Podrobnosti o vztazích (které Oracle zmateně nazývá „vztahy“) lze zobrazit poklepáním na řádek vztahu. V níže uvedeném příkladu je vztah mezi entitami Zaměstnanci a Úkoly otevřený. Zadáním slovesných frází pro pole „Jméno u zdroje“ a „Jméno u cíle“ lze každý vztah zcela specifikovat s velkou úrovní podrobností.
Obrázek níže ukazuje kompletně definovaný vztah, který by zněl:
One JOB may be a job performed by One or More EMPLOYEES One EMPLOYEE must be performing One and Only One JOB
Výchozí notace pro model ER je notace Crow’s Foot nebo Barker. Chcete-li změnit zápis buď na Bachmanův zápis, nebo na zápis informačního inženýrství, klepněte pravým tlačítkem kamkoli na diagram a zvýrazněte položku nabídky Zápis. Ze seznamu, který se objeví, vyberte libovolný z dostupných zápisů.
K modelu ER můžete přidat název a další podrobnosti pomocí nástroje Nová poznámka