Poslední úpravy - Vyhledat:

SQL

O modelování

Power Designer

Oracle Data Modeler

Zdroje...

edit SideBar

DM /

Power Designer – Jak vygenerovat fyzický model a co v něm udělat dalšího

Jestliže jsme navrhli konceptuální model, můžeme Power Designer požádat o vygenerování fyzického modelu volbou v menu Tools, Generate Physical Data Model. Dostaneme dialog, který nám nabídne možnost vygenerovat zcela nový fyzický model nebo změnit nějaký fyzický model již dříve vygenerovaný. Pokud jde o volbu zcela nového fyzického modelu, musíme vybrat, pro jaký cílový DBMS bude model vygenerován (pokud volbu DBMS chceme odložit, můžeme vybrat neutrální <Logical Model> ):

Vepište Name a Code nového modelu, abyste se v tom později vyznali:

Tlačítko Configure Model Options zavolá dialog, kde můžeme nastvit různá pokročilá nastvení. Za povšimnutí stojí možnost nastavit defaultní generování Code například na Uppercase, a tím se zbavíme potíží s nutností psát v SQL příkazech názvy objektů v uvozovkách – to se nastaví:

(Po eventuálním návratu do dialogu PDM model options nakonec potvrdíme svůj požadavek tlačítem OK.) Může se stát toto, když byla v konceptuálním modelu nějaká chyba:

Kde ta chyba je, se dozvíte z Result List (červená kruhová ikonka s přešktnutím znamená chybu, žlutá trojúhelníkovitá ikonka s vykřičníkem znamená varování). Možných chyb je příliš mnoho na to, aby byly zde všechny vyjmenovány a vysvětleny, musíte v Result List přečíst všechny související informace, a zjistit, o co jde.

Když odstraníte chyby v CDM, požádejte o generování fyzického modelu znovu (nezapomeňte na případnou volbu Uppercase pro Code):

Výsledný Result List neobsahující žádné chyby může vypadat takto:

A konečně dostáváte fyzický model.

Co je nutno upravit ve fyzickém modelu

Ve fyzickém modelu máte základní objekty: tabulky a šipky představující reference cizích klíčů (ty vznikly ze vztahů nebo z asociací nebo z dědičnosti v CDM).

Některé "nové" vygenerované sloupce s cizími klíči bude vhodné přejmenovat (Columns v dialogu vlastností objektu tabulky), aby bylo databázové schéma pokud možno srozumitelné:

Teprve zde ve fyzickém modelu je možno rozhodnout u vztahů referenčních integrit o variantě Restrict, Set Null nebo Cascade (někdy některá z nich není dosupná, v závislosti na ostatních okolnostech). Poklepáním na šipku představující vztah referenční integrity upravujeme její vlastnosti:

Generuje PD tvrdošíjně chybný fyzický model?

Může se stát, že jste v CDM měli nějaké závažné chyby, které však nezabránily vygenerování fyzického modelu. I když tyto chyby v CDM opravíte, někdy PD generuje opakovaně nesprávný fyzický model (pamatuje si "požadavky" z minula). Pak nezbývá než začit nový konceptuální model, do něj zkopírovat vše z vašeho opraveného konceptuálního modelu, starý zahodit, a pokračovat s tímto novým modelem.

Další objekty v PDM

V paletě máte nástroje na vytvoření dalších objektů fyzického modelu. Speciálně view a novou referenci .

View

Když chceme definovat view, umístíme někam nový objekt view , a musíme

  • ho pojmenovat (Name) a přidělit Code, vhodné je vepsat Comment vysvětlující smysl view,
  • na kartě SQL query napsat kompletní SQL kód SELECTu, který má view definovat. Zde je třeba použít skutečné Code tabulek a sloupců, nikoli jejich zástupná jména pro PD, Name.

Výsledek pak může vypadat takto:

Ruční vytvoření cizího klíče

Pro zajištění zvláštních integritních omezení se někdy dá využít konstrukce cizího klíče, jako například pro zajištění konzistence atributu v nadtypu definujícího podtyp a umístění příslušného řádku v tabulce správného podtypu. Jiný příklad může být požadavek, aby vedoucí oddělení byl zařazen na toto oddělení jako na pracoviště. Konceptuální model:

Vygenerovaný fyzický model se základními úpravami:

Definujeme další omezení cizího klíče: zvolíme a táhneme od oddělení k "pracuje v". Vznikne nová šipka, na kterou poklepeme, a nastavíme:

Pro kontrolu se na kartě Preview můžete podívat na odpovídající SQL kód:

        alter table ODDEL
         drop constraint FK_ODDEL_VEDO_JE_P_PRACUJE_;
        alter table ODDEL
         add constraint FK_ODDEL_VEDO_JE_P_PRACUJE_ foreign key (CIS_ODD, VEDOUCI)
         references PRACUJE_V (CIS_ODD, CIS_ZAM)
         on delete set null;

Jak získáme SQL kód z fyzického modelu

Všechny objekty ve fyzickém modelu (s výjikou modelu generovaného pouze jako <Logical Model>) mají k nim příslušnou část SQL definice vidět na kartě Preview v dialogu vlastností objektu.

Pokud chceme získat SQL kód definice všech objektů z modelu, volíme v menu Database - Generate Database. Dostaneme dialog, kde můžeme event. zvolit různá nastavení, a buď si necháme vytvořit textový soubor s SQL skriptem definice databáze, nebo opět na kartě Preview máme celý kód k náhledu či kopírování. Můžete pak celý kód nebo jeho části zadávat databázovému systému v nějakém nástroji, který k tomu máte k dispozici (na VŠE např. SQL Worksheet, nebo SQL Developer).

Dokud nemáte databázový návrh odladěný, nedoporučuji nechat proběhnout celý SQL skript najednou. Špatně se kontroluje, jak úspěšně jednotlivé příkazy proběhly, a kde se stala eventuální chyba. Lépe je zadávat jednotlivé příkazy postupně, a sledovat výsledek.

< Alternativní klíče | Power Designer postupně

Upravit - Historie - Tisk - Poslední úpravy - Vyhledat
Poslední úprava stránky: 31.07.2016, 21:27