sql >> Database teknologi >  >> RDS >> Oracle

Reverse Engineering en datamodel ved hjælp af Oracle SQL Developer

Introduktion

Denne vejledning introducerer Oracle SQL Developer Data Model-værktøjerne, der kan bruges til at omdanne et eksisterende databaseskema til en relationel og logisk model. Overvej en typisk databaseudviklingsproces, der starter med forretningsbrugerkravene, der er modelleret som en enhedsrelationsmodel bestående af entiteter, attributter, identifikatorer og relationer. Denne E-R-model omdannes derefter til en Relationel model bestående af Relationer, Attributter, Nøgler og Foreign Keys. Relationsmodellen kan implementeres i en relationsdatabase som et sæt af tabeller, kolonner og begrænsninger, herunder unikke, primære nøgle og fremmednøgle begrænsninger.

Vi kan støde på situationer, hvor vi allerede har implementeret et relationsdatabaseskema, men mangler den originale relationsmodel eller enhedsrelationsmodel, der blev brugt til at designe databasen. I disse situationer er vi muligvis i stand til at genskabe E-R-modellen ved reverse engineering modellen fra databaseskemaet. For at opnå dette skal vi tage følgende trin:

  1. Forbind databaseskemaet og identificer alle eksisterende tabeller, deres kolonner og deres primære og fremmede nøglebegrænsninger.
  2. Konstruer den relationelle model, der svarer til det eksisterende sæt af tabeller og begrænsninger.
  3. Udled E-R-modellen fra den relationelle model.

Datamodelterminologi

Oracle SQL Developer bruger udtryk, der er lidt anderledes, end hvad der typisk bruges i akademiske databasekurser. Den fysiske model (med nøgler, udenlandske nøglerelationer og indekser), der uddrages fra databaseskemaet, kaldes "Relationel Model" af Oracle SQL Developer. Sættet af enheder med relationslinjer kaldes "Logical Model" af Oracle SQL Developer.

Forudsætninger

Før du starter dette selvstudie, skal du sørge for, at du arbejder med Oracle SQL Developer version 4.x eller nyere. Desværre kan Oracle 12c stadig sendes med version 3.x af SQL Developer, som mangler Data Modling-værktøjerne.

Hvis du har brug for at anskaffe og installere SQL Developer, eller gerne vil have nogle tips til at komme i gang med SQL Developer, så se venligst selvstudiet.

Du skal også bruge legitimationsoplysningerne (værtsnavn, port, tjenestenavn, brugernavn og adgangskode) til "HR" (eller andet) eksempelskema, der leveres med Oracle 11g og Oracle 12c.

De følgende trin blev udført ved hjælp af SQL Developer 4.1 på Windows 7 forbundet til eksempelskemaet 'HR' i en Oracle 12c-database.

Omvendt udvikling af den relationelle model fra et databaseskema

  1. Kør Oracle SQL Developer, og opret en forbindelse til det databaseskema, du vil arbejde med. I dette eksempel oprettede vi en forbindelse til 'HR'-skemaet, som er Human Resources-eksempeldatabasen, der følger med Oracle 11g og Oracle 12c.
  2. Træk menuen Filer ned, vælg Data Modeler og derefter undermenuen Importer. Klik på Data Dictionary-valget fra fly-out-menuen som vist nedenfor. Dette vil starte guiden Data Dictionary Import:
  3. Vælg den forbindelse, du vil arbejde med. Du kan også klikke på knappen Tilføj for at tilføje en ny forbindelse. Når du har fremhævet din forbindelse, skal du klikke på knappen Næste> for at fortsætte.
  4. Det næste trin er at vælge det skema, der skal importeres. For dette eksempel har vi markeret boksen for 'HR'-skemaet som vist nedenfor. Bemærk, at valget "Importer til:" viser New Relational Model, og databasetypen er Oracle 12c. Klik på knappen Næste> for at fortsætte:

Det næste sæt trin på næste side dækker over valg af databaseobjekter, der skal importeres til modellen.

  1. Det næste trin er at vælge, hvilke databaseobjekter der skal importeres. Til denne øvelse vil vi vælge alle de tabeller, der skal importeres. Bemærk, at der er andre databaseobjekter såsom visninger, sekvenser, roller, lagrede procedurer osv., der også potentielt kan importeres. Til denne øvelse vil vi holde det simpelt og bare se på tabellerne. Når du har valgt tabellerne, skal du klikke på knappen Næste> for at fortsætte.
  2. Det sidste trin for importguiden er gennemgangen af ​​de databaseobjekter, der skal importeres. Hvis alt ser godt ud, skal du klikke på knappen Udfør for at starte importen.
  3. På dette tidspunkt, afhængigt af hvor mange tabeller du importerer, kan du muligvis se en statuslinje som:
  4. Når det er afsluttet, vises et oversigtslogvindue:

    Hvis der er fejlbehæftede sætninger, skal du gemme denne log for at hjælpe med fejlfinding.

  5. Forudsat at importprocessen er fuldført uden fejl, vil en ny Relationel model dukke op i vinduet. Du ønsker måske at flytte rundt på bordene for at lave et godt arrangement. Modellen bruger "kragefod"-notation, hvor "kragefod" repræsenterer "mange"-siden af ​​forholdet. Så for eksempel har én "region" mange "lande". Ét "land" har mange "placeringer" og så videre.
  6. Du kan ændre niveauet af detaljer vist i relationsmodellen ved at højreklikke på lærredet og vælge menupunktet Vis detaljer.

Som en påmindelse vil de fleste praktiserende læger typisk kalde dette en "fysisk databasemodel", da den inkluderer de datatyper, nøgler, fremmednøgler og indekser, der er implementeret i databaseskemaet.

Trin til at gemme modellen er præsenteret på næste side.

  1. På dette tidspunkt får modellen et midlertidigt navn, såsom Untitled_1. For at se denne model i "Browser" skal du trække ned i menuen Vis, vælge Data Modeler og derefter Browser. Åbn Untitled_1-designet og åbn derefter Relationsmodellerne og til sidst modellen opkaldt efter din forbindelse som vist nedenfor:
  2. Højreklik på Untitled_1-designet, og klik på menupunktet Gem design. Naviger til en passende mappe for at gemme dit arbejde og giv designet et filnavn. Klik på knappen Gem, når denne er klar:

På dette tidspunkt har vi nu (det Oracle kalder) en relationel model, der i det væsentlige er et spejl af det relationelle databaseskema, vi lige har importeret. Faktisk holder SQL Developer disse to synkroniserede, så hvis databaseskemaet ændres, vil dette blive afspejlet i den relationelle model, og hvis der foretages ændringer i den relationelle model, kan de skubbes ind i (implementeres i) databaseskemaet.

Denne model vil vise alle tabeller (relationer), nøgler, fremmednøgler, kontrolbegrænsninger og indekser, der kan eller måske ikke håndhæver unikhed. For eksempel har EMPLOYEES-relationen nedenfor en primær nøgle EMPLOYEE_ID, tre fremmednøgler (JOB_ID, MANAGER_ID og DEPARTMENT_ID) og en unik begrænsning på EMAIL-kolonnen:

Det næste sæt trin på næste side dækker, hvordan man fortsætter reverse engineering-processen for at producere en logisk model.

Reverse Engineering af Entity Relationship Model

På dette tidspunkt har vi omvendt manipuleret et databaseskema til en relationel model, som er en ret ligetil proces. Det sidste trin er at fortsætte reverse engineering for at producere Entity Relationship-modellen. Bemærk, at Oracle kalder dette den "logiske model".

  1. Gå tilbage til datamodelbrowseren og åbn mapperne for relationsmodeller og logisk model som vist nedenfor:
  2. Højreklik på relationsmodellen (vores hedder sfscdb_pdb2_hr) og vælg Ingeniør til logisk model fra pop op-menuen som vist nedenfor:
  3. Den ingeniør til logiske model dialogboksen skal vises som nedenfor. Hver af tabellerne og referencerne skal kontrolleres. Hver tabel vil blive afbildet til en enhed, og hver fremmednøglereference skal tilknyttes en relation mellem enheder. Når alle de relevante elementer er valgt fra vinduet til venstre, skal du klikke på knappen Ingeniør for at oprette den logiske (ER) model.
  4. Den nye enhedsrelationsmodel skal vises som vist nedenfor. Som standard bruges "Crow's Foot" eller Barkers notation.

Detaljer om relationerne (som Oracle til forveksling kalder "relationer") kan ses ved at dobbeltklikke på relationslinjen. I eksemplet nedenfor er forholdet mellem medarbejdere og jobenheder åbent. Ved at specificere verbumssætninger for felterne "Navn på kilden" og "Navn på målet", kan hvert forhold specificeres fuldstændigt med et stort detaljeringsniveau.

Figuren nedenfor viser det fuldstændigt definerede forhold, som ville lyde:

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

Standardnotationen for ER-modellen er Crow's Foot eller Barker-notationen. For at ændre notationen til enten Bachman- eller Information Engineering-notation skal du højreklikke hvor som helst på diagrammet og markere menupunktet Notation. Vælg en af ​​de tilgængelige notationer fra listen, der dukker op.

Du kan tilføje en titel og andre detaljer til ER-modellen ved hjælp af New Note-værktøjet


  1. Brug streng indeholder funktion i oracle SQL-forespørgsel

  2. SQL Server-systemdatabaser – Gendan systemdatabaser

  3. problem med at finde listen over filer i mappen

  4. Har mysql det, der svarer til Oracles analytiske funktioner?