sql >> Databasteknik >  >> RDS >> Sqlserver

Databasdesignkoncept med SQL Server Management Studio (SSMS) del 1

Den här artikeln är främst skriven för nybörjare. Ändå täcker det några intressanta och ofta bortglömda databasdesignkoncept som är lika attraktiva för SQL-databasproffs.

Den aktuella delen fokuserar på databasens designkoncept och deras mappning till SQL-databastabeller, kolumner och relationer. Om du förstår bakgrunden till databaser och verktyg vi ska använda, kommer du att designa din första SQL-databas med tillförsikt.

Förutsättningar

Innan vi fortsätter, se till att du har följande saker:

  1. SQL Server 2016/2017/2019 Express/Developer edition är installerad på din dator
  2. SSMS (SQL Server Management Studio) är installerat

Du behöver också ha grundläggande kunskaper om databaser och ovanstående verktyg.

Det är inget problem om du inte har de senaste versionerna av SQL Server och SSMS. Det rekommenderas dock starkt att ha de nyare versionerna, om inte de senaste tillgängliga. Du kan få de nödvändiga versionerna från resurserna nedan:

  • Ladda ner SQL Server 2017 Developer edition.
  • Ladda ned SQL Server 2019 (alternativt för att få den senaste SQL Server Express/Developer-utgåvan).
  • Eller ladda ner en kostnadsfri specialiserad utgåva av Developer eller Express SQL Server.
  • Ladda ned SSMS (SQL Server Management Studio)

Observera att alla dessa länkar fungerar bra när du skriver den här artikeln. Om Microsoft bestämmer sig för att ersätta dem, ladda ner den nyare versionen som är tillgänglig då.

Om SQL Database Design

För att börja designa din SQL-databas med SQL Server Management Studio (SSMS) måste du ha en designplan i ditt sinne.

Det är inte lätt utan att känna till kärnkoncepten för databasdesign. Men när du väl har fått dessa koncept och deras implementering börjar du naturligtvis följa designprinciperna. Det är vanligt med nästan alla databasutvecklare.

Låt oss gå igenom några grundläggande databasdesignkoncept först. Det är inte lätt att täcka alla i en artikel, men vi behöver något att utgå ifrån.

Vi förstår en typisk databas i termer av följande saker:

  1. Enheter
  2. Attribut
  3. Relationer

Vad är en enhet?

En enhet är allt som företaget eller en individ skulle vilja lagra i en databas. Till exempel:

  1. Kund.
  2. Beställ.
  3. Produkt.

Vi kan säga att en Kund är en enhet om företaget vill lagra den i en databasstruktur för transaktions-, analys- och rapporteringsändamål. På samma sätt, en Beställning placerad av Kunden är också en enhet om företaget vill se den informationen. Därför måste denna information vara en del av databasen.

Däremot en Beställning är inte mycket meningsfullt utan en produkt . En produkt som erbjuds till kunden är också en enhet.

Hur mappas enheten till databasen?

Ur databasperspektiv kan en entitet mappas till en tabell. Om ett företag behöver enheterna Kund, Beställning och Produkt, kan databasutvecklaren följaktligen mappa dessa som tre tabeller.

Vad är ett attribut?

Ett attribut är en beskrivning av en enhet. Till exempel:

  1. Kundnamn
  2. OrderType
  3. Produktnamn

Om kunden är en enhet, namnet på kunden (CustomerName ) är ett attribut. Det här attributet beskriver vår enhet (Kund ). På samma sätt, OrderType är ett attribut till Beställning enhet och Produktnamn är ett attribut för Produkten enhet.

Hur mappas attributet till databasen?

Ett attribut, till exempel Kundnamn, beskriver Kunden tabell och kan mappas till en kolumn i den tabellen.

En enhet med flera attribut

Det är bra för en enhet att ha flera attribut. Därför kan vi ha många kolumner (attribut) i en tabell (entitet).

Entitetsrelationer

En enhet kan relateras till en annan enhet genom relationer. En tabell kan relateras till en annan tabell. Det finns många typer av enheter eller tabellrelationer:

Kund-orderrelation (en-till-många)

En kund (enhet/tabell) kan relateras till en order (enhet/tabell) av följande skäl:

  1. En kund kan göra en beställning.
  2. En kund kan göra många beställningar.

Motsatsen är också sant:

  1. Många beställningar kan göras av en kund.
  2. En beställning kan göras av en kund.

Det här är ett exempel på en en-till-många-relation :en kund kan lägga många beställningar och många beställningar kan göras av en kund.

Produkt-orderrelation (en-till-många)

En produkt (enhet/tabell) kan relateras till en order (enhet/tabell) enligt följande:

  1. En produkt kan tilldelas en beställning.
  2. En produkt kan tilldelas många beställningar.

På samma sätt:

  1. Många beställningar kan tilldelas en produkt.
  2. En beställning kan ha en produkt.

Det finns en en-till-många-relation mellan Produkt och Beställ .

Kund-produktrelation (många-till-många)

Nu förklaras förhållandet mellan kund och produkt så här:

  1. En kund kan köpa en produkt.
  2. En kund kan köpa mer än en produkt.
  3. En produkt kan köpas av en kund.
  4. En produkt kan köpas av mer än en kund.

Många produkter kan köpas av många kunder, vilket innebär att Kunden och Produkt förhållandet är många-till-många .

Ta en titt på illustrationen nedan:

Student-Instructor Design Scenario

Låt oss överväga ett annat databasdesignscenario. Du kommer att implementera det med SSMS (SQL Server Management Studio) i den andra delen av den här artikeln.

Företagskrav

Anta att du behöver designa en databas som lagrar följande information:

  1. Elev(er).
  2. Instruktör(er).
  3. Elever som har tilldelats en instruktör.
  4. Instruktörer som är tilldelade eleverna.

Preliminär analys

Vid noggrann observation kommer du att upptäcka något ganska intressant om ovanstående krav. "De elever som har tilldelats en instruktör" och "De instruktörer som har tilldelats eleverna" är samma krav.

Det kan vara ofta att två olika krav visar sig vara desamma i samband med databasdesign.

Identifiera enheter

Följande enheter kan omedelbart extraheras från kraven:

  1. Elev
  2. Instruktör

Men ytterligare en enhet tjänar till att förse oss med information om de instruktörer som tilldelats eleverna.

Låt oss komma ihåg det första exemplet där vi använde en beställningstabell – många kunder kan köpa många beställningar i kund-order-relationen. Det liknar vår elev-instruktör tabellförhållande – många instruktörer kan tilldelas många elever.

Identifiera attribut

Vi kan välja användbara attribut för de identifierade enheterna, enligt det kundorder-scenariot:

  1. Student:Student-ID, Namn.
  2. Instruktör:Instruktörs-ID, namn.
  3. Student-Instruktör:Student-Instruktör-ID, Student-ID, Instruktörs-ID.

Identitetsrelationer:

Identifiera entitetsrelationerna:

  1. Student -> Student-Instruktör (en-till-många).
  2. Instruktör-> Elev-Instruktör (en-till-många).
  3. Student -> Instruktör (många-till-många).

Kom ihåg att vi alltid använder ett mellanbord för att lösa många-till-många-relationen. Det är därför vi tog med enheten Student-Instruktör i planen.

Mappning av enheter och attribut till tabeller och kolumner

Nu kan vi mappa entiteterna till tabeller. Därför kommer vi att skapa följande tre tabeller:

  1. Elev.
  2. Instruktör.
  3. Student-instruktör.

På liknande sätt kommer attributen för dessa entiteter, när de mappas till kolumnerna, att vara följande:

  1. Student:Student-ID, Namn.
  2. Instruktör:InstructorId, Name.
  3. Student-Instructor:StudentInstructorId, StudentId, InstructorId.

Notera illustrationen nedan:

Grattis! Du har framgångsrikt lärt dig databasdesignkoncepten. Vi är bekanta med entiteter, attribut och relationer och stegen för att mappa dem till tabeller och kolumner i databasen.

De nästa artiklarna kommer att leda dig genom stegen för databasdesign med SSMS (SQL Server Management Studio).

Saker att göra

Nu när du förstår grunderna i databasdesign kan du prova följande saker för att förbättra dina färdigheter ytterligare:

  1. Försök att lägga till en annan enhet som heter Leverantör med attributen SupplierId och SupplierName. Kontrollera om du korrekt kan identifiera följande samband:
    1. Leverantörsorder;
    2. Leverantör-Kund;
    3. Leverantör-Produkt.
  2. Designa en databas tillsammans med identifierande enheter, attribut och relationer för ett bibliotek. Tips:Böcker skickas ut till medlemmarna och medlemmar lånar böcker från biblioteket. Medlem, bok, utfärdad kan vara enheter.
  3. Identifiera typen av följande tabellrelationer för entiteterna enligt ovan:
    1. Medlemsutfärdad;
    2. Bokutfärdad;
    3. Medlemsbok;
    4. Bokmedlem.

Läs också

Lär dig databasdesign med SQL Server Management Studio (SSMS) – Del 2


  1. Hur man infogar data i tabellen med hjälp av lagrade procedurer i postgresql

  2. Välj kolumner från resultatuppsättningen av lagrad procedur

  3. Databasdesign:ett stort bord eller separata tabeller?

  4. Varför är varaktigheten NULL för återkommande händelser i Android?