Det är den andra delen av serien fokuserad på användningen av SQL Server Management Studio. Du kommer att lära dig databasdesignens kärnkoncept och problem och få en genomgång för att designa en enkel SQL-databas med SSMS (SQL Server Management Studio).
Förutsättningar
- SQL Server 2016/2017/2019 Express/Developer edition är installerad.
- Den senaste versionen av SSMS (SQL Server Management Studio) är installerad.
- Läsarna har grundläggande kunskaper om SQL-databaserna och verktygen ovan.
- De grundläggande designkoncepten för databasen är tydliga.
- Läsarna är bekanta med designscenariot Student-Instruktör som diskuteras i del 1.
Se Lär dig databasdesign med SQL Server Management Studio SSMS del 1 för mer information om ovanstående krav.
Designa student-instruktörsdatabas med SSMS
Vi börjar skapa vår enkla SQL-databas med hjälp av SSMS. Det är dock bättre att ha en sammanfattning av den planerade databasen innan vi börjar designa den.
Sammanfattning av elev-läraredatabas
Vi pratade om en enkel databas som består av följande tre tabeller:
- Student . Den här tabellen innehåller poster som tillhör elever.
- Instruktör . Den här tabellen lagrar information om alla instruktörer.
- Student-instruktör . Den här talar om vilken instruktör som är tilldelad vilken elev.
Viktigt: mer än en elev kan tilldelas en instruktör, och mer än en instruktör kan tilldelas en elev (för olika ämnen).
Med andra ord kan många elever ha många instruktörer.
Ersätter elev-lärartabellen med kurstabell
Låt oss förfina elev-instruktörsdatabasen något – vi byter namn på elev-instruktör-tabellen med kurstabell.
På så sätt är det lättare att förstå att varje kurs kan ha flera elever, och varje lärare kan ha flera elever för samma kurs.
Vi planerar följande kolumner för dessa tabeller:
- Student:Student-ID, Namn.
- Instruktör:InstructorId, Name.
- Kurs:CouseId, Name, StudentId, InstructorId.
Starta SSMS (SQL Server Management Studio)
Skriv SSMS i sökrutan i Windows och klicka på den i resultatlistan för att starta programvaran:
Observera att du kommer att se versionen som du har installerat. I vårt fall är det SSMS (SQL Server Management Studio) version 18.0.
Anslut till SQL Server Database Engine
I Objektutforskaren klickar du på Anslut och välj sedan Databasmotor :
Välj servernamn (namnet på SQL-servern som du har installerat på din maskin). Anslut till databasmotorn baserat på dina standardinställningar. I vårt fall använder vi Windows-autentiseringsläget:
Skapa en ny StudentInstructor SQL-databas
När du är ansluten högerklickar du på Databaser nod i Objektutforskaren och klicka på Ny databas... som visas nedan:
Skriv namnet på databasen StudentInstructor . Klicka på OK, lämnar standardinställningarna, såvida du inte måste ändra dem:
Databasen bör skapas nu.
Expandera samma databaser nod för att hitta den:
Skapa ett elevbord
Nu måste vi skapa tabellerna i StudentInstructor-databasen.
Expandera StudentInstructor databasnod:klicka på den och högerklicka sedan på Tabell.
Gå till Ny -> Tabell... enligt följande:
Vi kommer att lägga till kolumner i tabellen en efter en. Vi börjar med StudentId .
Skriv in StudentId kolumnnamn och välj int Datatyp, eftersom den kommer att vara numerisk (endast med siffror):
Ställ in primär nyckel
Student-ID kolumn kommer också att vara den primära nyckeln i tabellen. Det hjälper oss att identifiera en elev (rad/post) unikt.
Högerklicka på pilen som pekar på StudentId kolumnen och klicka på Ange primär nyckel :
Lägg till identitet till den primära nyckeln (StudentId)
En identitet som är inställd på en kolumn ökar automatiskt dess värde när nya poster infogas. Det är som ett serienummer, som ökar med varje nytt rekord.
Om vi inte ställer in primärnyckelkolumnen som en identitetskolumn lägger vi till ID för varje ny post manuellt. Det här är en bra idé att ställa in det.
Till exempel kommer den första posten som infogas i Student-tabellen att ha ett automatiskt id 1, och nästa kommer att vara StudentId 2, etc. Det är om vi ställer in identiteten.
Rulla ned Kolumnegenskaper fönstret när StudentId primärnyckelkolumnen väljs tills du hittar identitetsspecifikationen egendom.
Ställ in identitetsspecifikationen enligt följande (som börjar med är identitet) :
Identitetsspecifikation :Ja
(är identitet) :Ja
Identitetsökning :1
Identitetsfrö :1
Lägg till en namnkolumn i elevtabellen
Lägg sedan till en annan kolumn – Namn till bordet. Använd varchar(45) Datatyp och avmarkera Allow Nulls enligt följande:
Kom ihåg att VARCHAR(45) representerar teckendata (typ) upp till 45 tecken som ska lagras i kolumnen (Namn). När vi avmarkerar Tillåt null , måste vi ange detta värde till kolumnen för att spara en elev spela in.
Spara tabellen (elev)
Det viktigaste steget är att spara dina ändringar. I vårt fall sparar vi den nyskapade tabellen genom att helt enkelt klicka på Spara diskikon i verktygsfältet eller med kortkommandot CTRL+S .
Skriv in tabellens namn – Student – när du sparar den:
Visa elevtabellen (Objektutforskaren)
När tabellen har sparats, expandera tabellerna nod för StudentInstructor databas för att hitta den nyskapade tabellen:
Skapa en instruktörstabell med InstrutorId och namnkolumner
På samma sätt högerklickar du på Tabell nod igen. Den här gången skapar du en ny tabell som heter Instruktör .
Lägg sedan till en ny kolumn som heter InstructorId av int datatyp och ställ in den som primärnyckel enligt nedan:
Nästa steg är att lägga till Identitet till kolumnen InstructorId :
Efter detta lägger du till namnet kolumnen VARCHAR(45) datatyp till Instruktören Tabell och tillåt inte nollvärden för den här kolumnen, precis som för namnet kolumnen i Student tabell:
Spara och visa en instruktörstabell (Object Explorer)
Spara tabellen genom att trycka på CTRL+S genväg eller klicka på ikonen Spara. Namnge tabellen som Instruktör .
Högerklicka på Tabell nod under StudentInstructor databas och klicka på Uppdatera för att se båda tabellerna nu:
Skapa kurstabellen med CourseId Primary Key Column med identitet
Vi måste lägga till ytterligare en tabell till databasen – Kursen tabell, som kommer att innehålla ID från både elev- och instruktörstabellerna. Det kommer att finnas en många-till-många-relation (många elever kan tilldelas många instruktörer, enligt våra krav).
Skapa en ny tabell Kurs med CourseId primärnyckel:
Lägg till identitet i kolumnen på samma sätt som vi gjorde för StudentId och InstructorId kolumner.
Lägg till kolumner Namn, StudentId och CourseId
Lägg sedan till ett namn kolumn av typen VARCHAR(45) till Kursen tabell följt av att lägga till StudentId och CourseId kolumner i int datatyp:
Glöm inte att avmarkera Tillåt nuller för att säkerställa att en post inte sparas utan att ange dessa kolumnvärden.
På så sätt säkerställer vi att a Kurs måste ha en student och en instruktör innan det kan sparas i databasen. Utöver det, eleven och Instruktör måste finnas i sina ursprungliga tabeller.
Spara och snabbkontroll
Spara tabellen och namnet är som Kurs:
Slutligen, Uppdatera alla tabeller och visa den nyskapade tabellen tillsammans med andra i Objektutforskaren :
Lägg till alla tabeller i databasdiagrammet
Nu måste vi skapa en relation mellan tabellerna så att både Studenten och Instruktör tabeller kopplades till Kursen tabell genom sina primärnycklar.
Till exempel StudentId i eleven tabellen är kopplad till StudentId i Kursen tabell. På samma sätt, InstructorId i Instruktör tabellen är kopplad till InstructorId i Kursen bord.
Vi kan uppnå det med databasdiagrammet.
Gå till StudentInstructor databas i Objektutforskaren och högerklicka på Databasdiagram -> Nytt databasdiagram :
Klicka på Ja :
Använd CTRL för att välja alla befintliga tabeller och lägga till dem i databasdiagrammet :
Visa databasdiagrammet och ordna om tabellerna (klicka på tabellen och flytta den) för att göra Kursen bordsstativ i mitten, mellan eleven och Instruktör tabeller:
Länka studenttabellen med kurstabellen
Vi måste skapa en relation mellan Student och Kurs genom att ansluta StudentId i Student tabell med StudentId kolumnen i Kurs bord.
Dra StudentId-nyckeln och släpp den i kolumnen StudentId i Kurstabellen . Klicka på OK :
Det skapar en främmande nyckelrelation mellan kurs- och studenttabellerna – det säkerställer att endast de elever som sparats i elevtabellen kommer att sparas i kurstabellen:
Länka instruktörstabellen med kurstabellen
På samma sätt måste du länka Instruktören tabell med Kursen tabell så att InstructorId primärnyckelkolumn för Instruktör tabellen skulle skickas till InstructorId i Kursen bord.
På så sätt säkerställer vi att InstructorId primärnyckel finns som en främmande nyckel i Kursen tabell. Det betyder att vi kan lagra vilken instruktör som helst rad från Kursen tabellen endast om den instruktören finns i den ursprungliga instruktören tabell. På så sätt bibehåller vi databasens konsistens och integritet enligt standardpraxis.
Spara databasdiagrammet
Slutligen sparar du databasdiagrammet genom att klicka på Spara ikon i verktygsfältet:
Lägg till data i elevtabellen
Det är dags att lägga till lite data till de skapade tabellerna, med början från elevtabellen. Vi kommer att lägga till tre elevers poster i tabellen.
Högerklicka på Student tabell och klicka på Redigera topp 200 rader (oroa dig inte, du kommer inte att redigera 200 rader):
Skriv följande namn och klicka på Retur för att spara dessa poster:
Stäng sedan fönstret – klicka på krysset uppe till höger eller tryck CTRL+F4.
Observera att StudentId 1,2 och 3 tilldelas automatiskt till posterna. Vi kommer att använda dem senare i kursen bord.
Lägg till data i instruktörstabellen
Nu måste vi lägga till två instruktörer som heter Martin och Asad . Lägg därför till följande data till Instruktören tabell:
På samma sätt, ha dessa ID 1 och 2 i åtanke. Du kan stänga det här fönstret tills vidare.
Lägg till data i kurstabellen
Vi har elever på ena sidan och instruktörer på andra sidan. Men vi kan bara lägga till de elever som redan finns på Studentbordet, och detsamma gäller för instruktörer.
Låt oss registrera alla tre eleverna till databaserna kurs och tilldela en instruktör till denna kurs likaså:
Visa innehållet i kurstabellen
För att se informationen högerklickar du på Kurs tabell -> Välj topp 1000 rader:
Grattis! Du har framgångsrikt lärt dig att designa en enkel databas med SSMS (SQL Server Management Studio). Utöver det har vi tränat på att infoga nya poster och visa infogade data.
Saker att göra
Nu när du kan designa en databas med SSMS, prova följande saker för att förbättra dina färdigheter ytterligare:
- Testa att se innehållet i elev- och instruktörstabellerna.
- Testa att lägga till en annan kurs som heter Business Intelligence och registrera alla tre elever i den kursen, tillsammans med att tilldela instruktören Asad (InstructorId:2)
- Kom ihåg att du kan förbättra den faktiska databasdesignen från artikeln genom att göra följande:
- Byter namn på kursen tabellen som Klass tabell;
- Ta bort namnet kolumnen från Klass tabell;
- Ersätter Kurs-ID med Klass-ID kolumn;
- Skapa en separat kurs tabell med kolumnerna CourseId och Name, precis som för elev- och instruktörstabellerna;
- Lägga till ett nytt Kurs-ID kolumnen till klasstabellen och länkar CourseId på kursen Tabell med CourseId kolumnen i Klass tabell, precis som Student och Instruktör.