sql >> Databasteknik >  >> RDS >> Oracle

Reverse Engineering en datamodell med Oracle SQL Developer

Introduktion

Den här handledningen introducerar Oracle SQL Developer Data Model-verktyg som kan användas för att omvända ett befintligt databasschema till en relationell och logisk modell. Tänk på en typisk databasutvecklingsprocess som börjar med affärsanvändarkraven som är modellerade som en Entity Relationship Model bestående av Entities, Attributes, Identifiers och Relationships. Denna E-R-modell omvandlas sedan till en Relationsmodell bestående av Relationer, Attribut, Nycklar och Utländska nycklar. Relationsmodellen kan implementeras i en relationsdatabas som en uppsättning tabeller, kolumner och begränsningar inklusive unika, primärnyckel och främmande nyckelbegränsningar.

Vi kan stöta på situationer där vi har ett relationsdatabasschema redan implementerat men saknar den ursprungliga relationsmodellen eller Entity Relationship-modellen som användes för att designa databasen. I dessa situationer kan vi kanske återskapa E-R-modellen genom reverse engineering modellen från databasschemat. För att uppnå detta måste vi ta följande steg:

  1. Anslut databasschemat och identifiera alla befintliga tabeller, deras kolumner och deras primära och främmande nyckelbegränsningar.
  2. Konstruera den relationsmodell som motsvarar den befintliga uppsättningen tabeller och begränsningar.
  3. Härleda E-R-modellen från relationsmodellen.

Datamodellterminologi

Oracle SQL Developer använder termer som är något annorlunda än vad som vanligtvis används i akademiska databaskurser. Den fysiska modellen (med nycklar, främmande nyckelrelationer och index) som extraheras från databasschemat kallas "Relationsmodellen" av Oracle SQL Developer. Uppsättningen av enheter med relationslinjer kallas "Logical Model" av Oracle SQL Developer.

Förutsättningar

Innan du startar den här handledningen, se till att du arbetar med Oracle SQL Developer version 4.x eller senare. Tyvärr kan Oracle 12c fortfarande levereras med version 3.x av SQL Developer som saknar verktygen Data Modling.

Om du behöver skaffa och installera SQL Developer, eller vill ha tips om hur du kommer igång med SQL Developer, vänligen se handledningen.

Du behöver också autentiseringsuppgifterna (värdnamn, port, tjänstnamn, användarnamn och lösenord) till exempelschemat "HR" (eller annat) som levereras med Oracle 11g och Oracle 12c.

Följande steg utfördes med SQL Developer 4.1 på Windows 7 kopplat till exempelschemat "HR" i en Oracle 12c-databas.

Omvänd utveckling av relationsmodellen från ett databasschema

  1. Kör Oracle SQL Developer och skapa en anslutning till databasschemat du ska arbeta med. I det här exemplet skapade vi en koppling till "HR"-schemat som är exempeldatabasen för Human Resources som följer med Oracle 11g och Oracle 12c.
  2. Dra ned Arkiv-menyn, välj Data Modeler och sedan undermenyn Import. Klicka på Data Dictionary-valet från menyn som visas nedan. Detta startar guiden Data Dictionary Import:
  3. Välj den anslutning du vill arbeta med. Du kan också klicka på knappen Lägg till för att lägga till en ny anslutning. När du har markerat din anslutning klickar du på knappen Nästa> för att fortsätta.
  4. Nästa steg är att välja det schema som ska importeras. För det här exemplet har vi markerat rutan för "HR"-schemat som visas nedan. Observera att valet "Importera till:" visar Ny relationsmodell och databastypen är Oracle 12c. Klicka på knappen Nästa> för att fortsätta:

Nästa uppsättning steg på nästa sida omfattar val av databasobjekt som ska importeras till modellen.

  1. Nästa steg är att välja vilka databasobjekt som ska importeras. För den här övningen kommer vi att välja alla tabeller som ska importeras. Observera att det finns andra databasobjekt såsom vyer, sekvenser, roller, lagrade procedurer etc. som också potentiellt kan importeras. För den här övningen kommer vi att hålla det enkelt och bara titta på tabellerna. När du har valt tabellerna klickar du på knappen Nästa> för att fortsätta.
  2. Det sista steget för importguiden är granskningen av databasobjekten som ska importeras. Om allt ser bra ut, klicka på knappen Slutför för att starta importen.
  3. Vid det här laget, beroende på hur många tabeller du importerar, kan du se en förloppsindikator som:
  4. När det är klart visas ett fönster för sammanfattningslogg:

    Om det finns några misslyckade uttalanden, spara den här loggen för att hjälpa till med felsökning.

  5. Förutsatt att importprocessen slutfördes utan fel, kommer en ny relationsmodell att visas i fönstret. Du kanske vill flytta runt borden för att göra ett trevligt arrangemang. Modellen använder "Crow's Foot" notation där "crow's Foot" representerar "Många" sidan av förhållandet. Så till exempel, en "region" har många "länder". Ett "land" har många "platser" och så vidare.
  6. Du kan ändra nivån på detaljer som visas i relationsmodellen genom att högerklicka på arbetsytan och välja menyalternativet Visa detaljer.

Som en påminnelse skulle de flesta utövare vanligtvis kalla detta en "fysisk databasmodell" eftersom den inkluderar datatyper, nycklar, främmande nycklar och index som är implementerade i databasschemat.

Steg för att spara modellen presenteras på nästa sida.

  1. Vid det här laget får modellen ett tillfälligt namn som Untitled_1. För att se den här modellen i "Webbläsare", dra ner menyn Visa, välj Data Modeler och sedan Webbläsare. Öppna Untitled_1-designen och öppna sedan Relationsmodellerna och slutligen modellen uppkallad efter din anslutning som visas nedan:
  2. Högerklicka på Untitled_1-designen och klicka på menyalternativet Spara design. Navigera till en lämplig mapp för att spara ditt arbete och ge designen ett filnamn. Klicka på knappen Spara när detta är klart:

Vid det här laget har vi nu (vad Oracle kallar) en relationsmodell som i huvudsak är en spegel av det relationsdatabasschema vi just importerade. Faktum är att SQL Developer håller dessa två synkroniserade så att om databasschemat ändras kommer detta att återspeglas i den relationella modellen, och om ändringar görs i relationsmodellen kan de skjutas in i (implementeras i) databasschemat.

Denna modell kommer att visa alla tabeller (relationer), nycklar, främmande nycklar, kontrollbegränsningar och index som kan eller inte kan framtvinga unikhet. Till exempel har EMPLOYEES-relationen nedan en primärnyckel EMPLOYEE_ID, tre främmande nycklar (JOB_ID, MANAGER_ID och DEPARTMENT_ID) och en unik begränsning i kolumnen EMAIL:

Nästa uppsättning steg på nästa sida täcker hur man fortsätter den omvända konstruktionsprocessen för att producera en logisk modell.

Omvänd konstruktion av entitetsrelationsmodellen

Vid det här laget har vi omvänt konstruerat ett databasschema till en relationsmodell vilket är en ganska enkel process. Det sista steget är att fortsätta reverse engineering för att producera Entity Relationship-modellen. Observera att Oracle kallar detta den "logiska modellen".

  1. När du återgår till datamodellbläddraren öppnar du mapparna för relationsmodeller och logiska modeller enligt nedan:
  2. Högerklicka på relationsmodellen (vår heter sfscdb_pdb2_hr) och välj Ingenjör till logisk modell från popup-menyn som visas nedan:
  3. Den ingenjör till logisk modell dialogrutan ska visas enligt nedan. Var och en av tabellerna och referenserna bör kontrolleras. Varje tabell kommer att mappas till en Entitet och varje främmande nyckelreferens ska mappas till en relation mellan entiteter. När alla lämpliga element har valts från det vänstra fönstret klickar du på knappen Ingenjör för att skapa den logiska (ER) modellen.
  4. Den nya Entity Relationship-modellen bör visas som visas nedan. Som standard används "Crow's Foot" eller Barkers notation.

Detaljer om relationerna (som Oracle förvirrande kallar "relationer") kan ses genom att dubbelklicka på relationsraden. I exemplet nedan är förhållandet mellan anställda och jobbenheter öppet. Genom att ange verbfraser för fälten "Namn på källa" och "Namn på mål" kan varje relation specificeras helt och hållet med en hög detaljnivå.

Bilden nedan visar den fullständigt definierade relationen som skulle lyda:

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

Standardnotationen för ER-modellen är Crow's Foot eller Barker-notationen. För att ändra notationen till antingen Bachman eller Information Engineering notation, högerklicka var som helst på diagrammet och markera menyalternativet Notation. Välj någon av de tillgängliga noterna från listan som dyker upp.

Du kan lägga till en titel och andra detaljer till ER-modellen med verktyget New Note


  1. Lagrad procedur med valfria WHERE-parametrar

  2. Hur frågar man efter värden från xml-noder?

  3. Använd sträng innehåller funktion i oracle SQL-fråga

  4. Hur man får månadens namn från ett datum i Oracle