sql >> Databasteknik >  >> RDS >> Database

Databasdesign med Vertabelo

Databasdesign går långt utöver att bara rita linjer och rutor. I den här artikeln reflekterar jag över processen för datamodellering med tonvikt på bästa praxis, samt hur man använder verktyg för att implementera dessa bästa praxis för att skapa en bra databasdesign.

Databasdesign är processen att producera en detaljerad modell av en databas. Början av databasmodellering innebär att få ett grepp om affärsområdet och den funktionalitet som utvecklas.

Om du är lite osäker på stegen som ingår i databasdesignprocessen, skulle jag hänvisa dig till den här beskrivningen av databasdesignsteg.

Börja modellera:Prata med företaget

Detta är en nyckelprincip inom informationsteknologi. Vi löser ett affärsproblem från datasidan så att nödvändig data finns tillgänglig. Vi måste prata med affärsmännen för att förstå deras behov.

Vi måste ställa frågor som:

  • "Vad är domänen?"
  • "Vilka är utmaningarna på den här domänen?"
  • "Vilka är problemen som ska lösas?"
  • "Vilken information behöver vi ha?"

Genom att prata med företaget kan vi överväga avvägningar som kan påverka databasmodellen. Vi lägger också grunden för modellering.

Låt oss använda ett konkret exempel. Ta en redovisningsapplikation för ett företag:du skulle behöva modellera kunder, leverantörer, fakturor, betalningar, konton, saldon etc. Du måste lära dig om dessa begrepp och om redovisning. Du kan bara göra detta genom att prata till affärsmännen.

Få ordning på koncept

Detta inledande arbete med företag kommer att leda dig in i en modell av vilka "koncept" som måste lagras i databasen (läs denna förklaring av de olika nivåerna av modeller). Från konceptet om vad vi behöver lagra i databasen, det vill säga vår konceptuella modell, går vi över till en logisk. Den logiska modellen dokumenterar de affärskoncept och regler som vi lägger detaljer på (du kan vara intresserad av att läsa den här diskussionen om huruvida logisk datamodellering är föråldrad).

Om du är osäker på de olika typerna av datamodeller, se vår artikel om hur du implementerar konceptuella, logiska och fysiska datamodeller med Vertabelo.

Den logiska datamodellen lägger till mer information till de koncept vi redan har dokumenterat. Den beskriver hur data är uppbyggd och hur enheterna är relaterade till varandra. Dessutom innehåller den information om vilka typer av data vi hanterar.

I Vertabelo kan vi skapa en logisk datamodell genom ett logiskt entity-relationship diagram (ERD). Kontrollera detaljerna om hur man utför logisk datamodellering med Vertabelo.

Här är en enkel, och ännu inte fullständig, logisk datamodell över kunder, leverantörer, fakturor, betalningar och konton.

En annan fördel som jag finner med att arbeta med Vertabelo är att jag inte behöver oroa mig för mycket om den exakta notationen. Modelleringsverktyget låter dig oroa dig för designen och inte om specifikationerna för entity-relationship diagram (ERD) notationer och symboler, vilket uppenbarligen bör vara det minsta av dina bekymmer under databasdesignprocessen.

Låt oss bli fysiska

För att faktiskt arbeta med databasen måste vi gå från vår logiska modell till en fysisk. Vertabelo-verktyget gör att vi enkelt kan generera en fysisk datamodell från en logisk. Du skapar först en logisk datamodell, sedan kan du "auto-magiskt " generera en fysisk genom att välja den logiska modellen och klicka på "Generera fysisk datamodell" (se den här detaljerade guiden för de exakta stegen).

Uppenbarligen kommer den genererade fysiska datamodellen att likna den logiska modellen; logiska datatyper kommer dock att översättas till datatyper som är tillåtna för det specifika databashanteringssystem (DBMS) för vilket du genererar den fysiska modellen. Den fysiska modellen kommer också att indikera vilka attribut som är främmande nycklar mellan tabeller. Du kanske också vill utföra ytterligare modellering relaterad till de fysiska aspekterna av databasen – till exempel index och vyer.

Dessutom är det möjligt att skapa en fysisk datamodell direkt; du behöver inte skapa en logisk en först. Att gå direkt till en fysisk modell kommer att vara meningsfullt för mindre, mer riktade modelleringsaktiviteter, där affärsdomänen är bättre definierad. Den fysiska databasmodelleringsprocessen är enkel och bör inte innebära för många utmaningar. Att ha en logisk datamodell kommer att visa sig användbar för större projekt, men att ha åtminstone en fysisk är bättre än att inte ha någon alls.

Utveckling av din databasdesign

Utvecklare tycker generellt att databasmodellen ska kretsa kring den faktiska koden, medan datamodellerare tycker att koden ska skapas utifrån en relativt statisk datamodell. Datamodellering i dag måste vara samarbetande . Koden och datamodellen påverkar varandra fram och tillbaka.

Så vi behöver ett verktyg som stöder en gemensam databasdesignprocess och modellering. Förutom att arbeta med verksamheten för att skapa den konceptuella designen, måste datamodellerare samarbeta under utvecklingscykeln för att uppdatera de logiska och fysiska datamodellerna efter behov. Modellerare och utvecklare måste anpassa modellen tills den verkligen stöder systemets affärsmässiga och icke-funktionella krav.

Uppenbarligen kan förändringar leda till misstag. Återigen, att ha ett verktyg kan hjälpa; ett verktyg som ständigt validerar din datamodell är ovärderligt. Vertabelo har en inbyggd, live online-validering för både logiska och fysiska datamodeller så att problem upptäcks under modellering, inte under implementering. Och fel förblir synliga för alla som samarbetar med det. Du kan också justera valideringsinställningarna efter behov. Här är ett exempel på min ofullständiga datamodell med flera fel och varningar.

Om du går tillbaka till redovisningsexemplet kanske du under utvecklingen upptäcker att det inte räcker att modellera en enda valuta som euro eller dollar för fakturor och betalningar. Snarare skulle du behöva lagra belopp med deras respektive valuta och konvertera dem till den "basvaluta" som företagets bokföring hålls i. Du kan också behöva valutakurserna och historisk information om de kurser som användes för att konvertera valutor tidigare.

Det är här ett samarbetsverktyg för databasmodellering som Vertabelo verkligen bevisar sitt värde. Du kan hitta mer information om hur du använder Vertabelo för kollaborativ modellering. Du klickar bara och delar din modell med dina teammedlemmar.

Fysisk till implementering

När du väl har din första version av den fysiska modellen kommer du förmodligen att vara sugen på att börja arbeta med själva databasen. För att göra det kommer Vertabelo att generera SQL DDL (Data Definition Language)-skript för att skapa databasen. Jag kommer inte att skriva alla detaljer här, eftersom du kan hitta dem i kunskapsbasartikeln online hur man genererar ett SQL-skript och skapar en databas.

Låt mig säga dig av erfarenhet – det här är en sådan välkommen funktion. Du slipper ta itu med nycklarna med olika SQL-DDL-syntaxer för databaser, och du kan fokusera på din design .

Versionering

Nu, som jag skrev ovan, kommer dina modeller att utvecklas, oavsett om det är under databasdesign, under mjukvaruutveckling eller efteråt under den faktiska användningen av din databas. Det finns två fantastiska funktioner hos Vertabelo som jag vill vara säker på att du känner till.

För det första inkluderar Vertabelo versionshantering. Du kan spåra ändringar och hantera versioner av datamodellerna, så det är enkelt att "vända tillbaka tiden" och återställa till en tidigare version om det behövs. Om du är disciplinerad kan du tagga de olika versionerna med exakta namn, oavsett om det kan vara utkast eller faktiska releaser av databasen.

Den andra funktionen, som jag har drömt om i många år under min databasmodellering, är förmågan hos Vertabelo-verktyget att automatiskt generera migreringsskript mellan versioner av din datamodell. Jag har tappat räkningen på de gånger jag var tvungen att manuellt skriva och korrigera migreringsskript upprepade gånger. Här är ett exempel på hur man genererar migreringsskript mellan två versioner av en databas för en onlineundersökning.

Vilken välsignelse för datamodellerare att ha ett verktyg som effektivt hanterar versioner och tar reda på effekterna av ändringar mellan versionerna!

Stora modeller

Låt mig först vara ärlig. Jag jobbar inte alltid med stora modeller, men ibland måste jag skapa dem. Även här erbjuder Vertabelo oss en lösning för att organisera våra modeller.

Vi kan visuellt gruppera tabeller med ämnesområden; om du vill se hur du gör det kan du också titta på en video om att hantera stora datamodeller i Vertabelo.

Du kan också använda den här tekniken när du omvänder ingenjör från ett SQL DDL-skript till en datamodell.

Kom igång med databasdesign

Om du letar efter några bästa metoder för databasdesign, rekommenderar jag att du tar en titt på den här artikeln. För tips för bättre databasdesign behöver du inte leta längre än den här artikeln. Och se den här för råd om hur du kommer igång med att använda Vertabelo för din databasdesign.


  1. Hur man installerar MySQL på Debian 7

  2. Minimera effekten av att bredda en IDENTITY-kolumn – del 1

  3. Hur man gör en VÄNSTER ANTI SEMI JOIN i SQL Server

  4. Hur kan jag välja ENDAST poster från igår?