Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

Hur man mappar E/R-diagram till Relationsmodellen

Postad 2006-02-04 av Mikael Jansson i sektionen ASP.NET, C#, Okategoriserat med 0 Kommentarer | Läst av: 6311, Betyg: 0%

Förord

Du har, av någon anledning, behov av att skapa en databas. Men hur designar man den? Hur gör man för att slippa redundans (dvs onödig information) i databasen, och finns det några knep så man slipper tänka så mycket när man designar databasen? I denna artikel kommer du få se hur man genom en smart algoritm kan få fram en relationsmodell utan redundans utifrån en E/R-modell. Sen är det bara att föra in det på datorn!
Innehåll
  » Steg 1 - Mappning av starka entiteter
  » Steg 2 - Mappning av svaga entiteter
  » Steg 3 - Mappning av 1 till 1 relationer
  » Steg 4 - Mappning av 1 till N relationer
  » Steg 5 - Mappning av N till M relationer
  » Steg 6 - Mappning av attribut
Jag antar att du vet vad du ska ha databasen till, och att du har en uppfattning om vilka delar som ska vara med. Till att börja med behöver du göra ett E/R-diagram. Jag går inte närmar in på vad det innebär i denna artikel, då huvudsyftet här är användningen av den algoritm som skall göra om E/R-diagrammet till en normaliserad relationsmodell. Här finns dock en länk till en sida som beskriver hur man ritar E/R-diagram:
http://www.databasteknik.se/webbkursen/er/index.html

När du nu fått ditt E/R-diagram är det dags att använda algoritmen som skall ta fram den logiska databasdesignen som baseras på den konceptuella designen. Jag tror inte att denna algoritm har något namn, men om ni som läser detta känner till något namn på den får ni gärna höra av er. I vilket fall som hellst ser den ut såhär:


Steg 1 - Mappning av starka entiteter

Varje stark entitet blir en basrelation där primärnyckeln blir nyckelattributet/nyckelattributen i entiteten.


Steg 2 - Mappning av svaga entiteter

Har du inte med några svaga entiteter i ditt E/R-diagram är det bara att hoppa över det här steget. Själv har jag aldrig använt svaga entiteter, och har därför alltid hoppat över denna del. Varje svag entitet blir en basrelation som får alla enkla attribut som den svaga entiteten har, och primärnyckeln blir kombinationen av primärnyckeln hos ägandeentiteten och (om det finns) den partiella nyckeln hos den svaga entiteten. Om det råkar vara så att ägandeentiteten också är en svag entitet, så skall denna mappas först för att få ut dess primärnyckel. Se till att ha med regler för uppdatering och borttagning senare när du implementerar modellen, eftersom en svag entitet inte kan existera utan en relaterad ägandeentitet (med andra ord, ha med ON DELETE CASCADE och ON UPDATE CASCADE).


Steg 3 - Mappning av 1 till 1 relationer

Det finns två sätt att mappa 1 till 1 relationer, varav det första är det jag använt mest:
alt1: Välj en av basrelationerna och låt primärnyckeln i den andra relationen bli en främmandenyckel i denna. Flytta även över (om det skulle finnas) alla enkla attribut i 1 till 1 relationen (alltså attribut som på E/R-diagrammet är kopplade till diamanten/relationen) till denna basrelation.
alt2: Sätt ihop de två entiteterna till en och samma entitet och mappa därefter.


Steg 4 - Mappning av 1 till N relationer

Lägg till som främmandenyckel i basrelationen på N-sidan, primärnyckeln hos den andra basrelationen.


Steg 5 - Mappning av N till M relationer

Gör varje N till M relation till en basrelation. Sätt primärnyckeln i varje sådan basrelation till kombinationen av primärnycklarna i de basrelationer denna relation kopplar samman, alternativt kan primärnyckeln vara ett nytt attribut, men primärnycklarna från de sammankopplade basrelationerna måste finnas med som främmandenycklar.


Steg 6 - Mappning av attribut

Alla egenskaper hos entiteter blir attribut i den relation de tillhör. Skillnaden för mångvärdes-/flervärdesattribut är att man för varje flervärdesattribut skapar en ny basrelation som innehåller ett attribut som är flervärdesattributet och en främmandenyckel som är primärnyckeln hos den relation som hade flervärdesattributet. Primärnyckeln i denna basrelation blir kombinationen av dessa två attribut.

Om du följt dessa regler borde du nu ha en normaliserad databas utan redundans. Grattis!
Upp

0 Kommentarer

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 165
27 952
271 704
1 343
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies