sql >> Database >  >> RDS >> Sqlserver

Leer databaseontwerp met SQL Server Management Studio (SSMS) - deel 2

Het is het tweede deel van de serie gericht op het gebruik van SQL Server Management Studio. U leert de kernconcepten en problemen van databaseontwerp en krijgt een handleiding om een ​​eenvoudige SQL-database te ontwerpen met SSMS (SQL Server Management Studio).

Vereisten

  1. SQL Server 2016/2017/2019 Express/Developer-editie is geïnstalleerd.
  2. De nieuwste versie van SSMS (SQL Server Management Studio) is geïnstalleerd.
  3. De lezers hebben een basiskennis van de SQL-databases en de bovenstaande tools.
  4. De basisconcepten voor databaseontwerp zijn duidelijk.
  5. De lezers zijn bekend met het ontwerpscenario Student-Instructeur dat in deel 1 is besproken.

Raadpleeg Learn Database Design with SQL Server Management Studio SSMS Part 1 voor meer informatie over de bovenstaande vereisten.

Database voor leerling-instructeurs ontwerpen met SSMS

We beginnen met het maken van onze eenvoudige SQL-database met behulp van SSMS. Het is echter beter om een ​​samenvatting van de geplande database te hebben voordat we beginnen met het ontwerpen ervan.

Samenvatting student-instructeur database

We hadden het over een eenvoudige database bestaande uit de volgende drie tabellen:

  1. Leerling . Deze tabel bevat records van studenten.
  2. Instructeur . Deze tabel bevat informatie over alle instructeurs.
  3. Student-instructeur . Deze vertelt ons welke instructeur aan welke leerling is toegewezen.

Belangrijk: meer dan één student kan worden toegewezen aan een instructeur en meer dan één instructeur kan worden toegewezen aan een student (voor verschillende vakken).

Met andere woorden, veel studenten kunnen veel instructeurs hebben.

De leerling-instructeurstabel vervangen door de cursustabel

Laten we de student-instructeur-database iets verfijnen - we hernoemen de Student-Instructor-tabel met Cursustabel.

Op deze manier is het gemakkelijker te begrijpen dat elke cursus meerdere studenten kan hebben en dat elke cursusleider meerdere studenten voor dezelfde cursus kan hebben.

We plannen de volgende kolommen voor deze tabellen:

  1. Leerling:Student-ID, naam.
  2. Instructeur:Instructeur-ID, naam.
  3. Cursus:CouseId, Name, StudentId, InstructorId.

Start SSMS (SQL Server Management Studio)

Typ SSMS in het Windows-zoekvak en klik erop in de lijst met resultaten om de software te starten:

Merk op dat u de versie zult zien die u hebt geïnstalleerd. In ons geval is dit SSMS (SQL Server Management Studio) versie 18.0.

Verbind met de SQL Server Database Engine

In de Objectverkenner klik op Verbinden en selecteer vervolgens Database Engine :

Selecteer de servernaam (de naam van de SQL Server die u op uw computer hebt geïnstalleerd). Maak verbinding met de database-engine op basis van uw standaardinstellingen. In ons geval gebruiken we de Windows-verificatiemodus:

Maak een nieuwe StudentInstructor SQL-database

Eenmaal verbonden, klik met de rechtermuisknop op de Databases knooppunt in de Objectverkenner en klik op Nieuwe database… zoals hieronder weergegeven:

Typ de naam van de database StudentInstructor . Klik op OK, de standaardinstellingen verlaten, tenzij u ze moet wijzigen:

De database zou nu moeten worden aangemaakt.

Vouw dezelfde Databases uit knooppunt om het te lokaliseren:

Maak een leerlingentafel

Nu moeten we de tabellen in de StudentInstructor-database maken.

Vouw StudentInstructor uit databaseknooppunt:klik erop en klik met de rechtermuisknop op Tabellen.

Ga naar Nieuw -> Tabel… als volgt:

We gaan kolommen één voor één aan de tabel toevoegen. We beginnen met StudentId .

Typ de StudentId kolomnaam en selecteer int Gegevenstype, aangezien het numeriek zal zijn (alleen met cijfers):

Primaire sleutel instellen

DeStudentId kolom wordt ook de primaire sleutel van de tabel. Het zal ons helpen een leerling (rij/record) uniek te identificeren.

Klik met de rechtermuisknop op de pijl die naar de StudentId . wijst kolom en klik op Primaire sleutel instellen :

Voeg identiteit toe aan de primaire sleutel (StudentId)

Een identiteit die is ingesteld op een kolom, verhoogt automatisch de waarde ervan wanneer nieuwe records worden ingevoegd. Het is als een serienummer, dat met elk nieuw record toeneemt.

Als we de primaire sleutelkolom niet instellen als identiteitskolom, voegen we de ID handmatig toe voor elk nieuw record. Dit is een goed idee om het in te stellen.

Het eerste record dat in de tabel Student wordt ingevoegd, heeft bijvoorbeeld een automatische id 1, en de volgende is StudentId 2, enz. Dit is het geval als we de identiteit instellen.

Scroll naar beneden in de Kolomeigenschappen venster zodra de StudentId kolom primaire sleutel is geselecteerd totdat u deIdentiteitsspecificatie . vindt eigendom.

Stel de identiteitsspecificatie als volgt in (beginnend met is Identity) :

Identiteitsspecificatie :Ja
(is identiteit) :Ja
Identiteitstoename :1
Identiteitszaad :1

Voeg een naamkolom toe aan de leerlingentabel

Voeg vervolgens nog een kolom toe - Naam Naar de tafel. Gebruik varchar(45) Gegevenstype en verwijder het vinkje bij Nulls toestaan ​​ als volgt:

Onthoud dat VARCHAR(45) vertegenwoordigt de tekengegevens (type) tot 45 tekens die in de kolom (Naam) moeten worden opgeslagen. Als we Nulls toestaan . uitvinken ,we moeten deze waarde aan de kolom geven om een ​​Student op te slaan opnemen.

Bewaar de tabel (leerling)

De belangrijkste stap is het opslaan van uw wijzigingen. In ons geval slaan we de nieuw gemaakte tabel op door simpelweg op de knop Opslaan . te klikken schijfpictogram op de werkbalk of met de sneltoets CTRL+S .

Typ de naam van de tabel - Leerling – bij het opslaan:

Bekijk de leerlingentabel (Objectverkenner)

Zodra de tabel succesvol is opgeslagen, vouwt u de Tabellen . uit knooppunt van de StudentInstructor database om de nieuw gemaakte tabel te vinden:

Maak een docententabel met InstrutorId en naamkolommen

Klik op dezelfde manier met de rechtermuisknop op de Tabellen knoop weer. Maak deze keer een nieuwe tabel met de naam Instructeur .

Voeg vervolgens een nieuwe kolom toe met de naam InstructorId van int datatype en stel het in als de primaire sleutel zoals hieronder getoond:

De volgende stap is het toevoegen van Identiteit naar de kolom InstructorId :

Voeg hierna de Naam . toe kolom van VARCHAR(45) gegevenstype aan de Instructeur Tabel, en sta geen nulls toe voor deze kolom, net als voor de Naam kolom van de Leerling tafel:

Een instructeurstabel opslaan en bekijken (Objectverkenner)

Sla de tabel op door op CTRL+S . te drukken snelkoppeling of door op het pictogram Opslaan te klikken. Geef de tabel de naam Instructeur .

Klik met de rechtermuisknop op de Tabellen knooppunt onder StudentInstructor database en klik op Vernieuwen om beide tabellen nu te zien:

Maak de cursustabel met CourseId primaire sleutelkolom met identiteit

We moeten nog een tabel aan de database toevoegen - de Cursus tabel, die id's van zowel de leerling- als de cursusleider-tabel zal bevatten. Er zal een veel-op-veel-relatie zijn (veel studenten kunnen worden toegewezen aan veel instructeurs, volgens onze vereisten).

Maak een nieuwe tabel Cursus met de CourseId primaire sleutel:

Voeg identiteit toe aan de kolom op dezelfde manier als voor StudentId en Instructeur-ID kolommen.

Naam, StudentId en CourseId-kolommen toevoegen

Voeg vervolgens een Naam toe kolom van het type VARCHAR(45) naar de Cursus tabel gevolgd door het toevoegen van StudentId en CourseId kolommen van int gegevenstype:

Vergeet niet het vinkje uit te zetten Nulls toestaan ​​ om ervoor te zorgen dat een record niet wordt opgeslagen zonder deze kolomwaarden in te voeren.

Op deze manier zorgen we ervoor dat een Cursus moet een student hebben en een instructeur voordat het in de database kan worden opgeslagen. Bovendien, de Student en Instructeur moeten in hun originele tabellen voorkomen.

Opslaan en snel controleren

Sla de tabel op en de naam is als Cursus:

Eindelijk, Vernieuwen alle tabellen en bekijk de nieuw gemaakte tabel samen met andere in de Objectverkenner :

Alle tabellen toevoegen aan het databasediagram

Nu moeten we een relatie tussen de tabellen maken, zodat zowel Student en Instructeur tabellen zijn verbonden met de Cursus tabel via hun primaire sleutels.

Bijvoorbeeld StudentId in de student tabel is verbonden met StudentId in de Cursus tafel. Evenzo, InstructorId in de Instructeur tabel is verbonden met InstructorId in de Cursus tafel.

We kunnen dit bereiken met het databasediagram.

Ga naar de StudentInstructor database in de Objectverkenner en klik met de rechtermuisknop op Databasediagrammen -> Nieuw databasediagram :

Klik op Ja :

Gebruik de CTRL toets om alle bestaande tabellen te selecteren en toe te voegen aan het Databasediagram :

Bekijk het databasediagram en herschik de tabellen (klik op de tabel en verplaats deze) om de Cursus te maken tafelstandaard in het midden, tussen de Student en Instructeur tabellen:

Koppel de studententabel aan de cursustabel

We moeten een relatie creëren tussen Student en Cursus door StudentId . te koppelen in de Student tabel met de StudentId kolom in de Cursus tafel.

Sleep de StudentId-sleutel en zet het in de StudentId-kolom in de Cursustabel . Klik op OK :

Het zal een externe sleutelrelatie creëren tussen de Cursus- en Student-tabellen – het zorgt ervoor dat alleen die studenten die zijn opgeslagen in de Student-tabel, worden opgeslagen in de Cursustabel:

Koppel de docententabel aan de cursustabel

Op dezelfde manier moet je de Instructeur . koppelen tabel met de Cursus tabel zodat de InstructorId primaire sleutelkolom van de Instructeur tabel zou worden doorgegeven aan InstructorId in de Cursus tafel.

Op deze manier zorgen we ervoor dat de InstructorId primaire sleutel bestaat als een externe sleutel in de Cursus tafel. Het betekent dat we alle instructeurs . kunnen opslaan rij van de Cursus tabel alleen als die instructeur bestaat in de originele instructeur tafel. Op deze manier behouden we de consistentie en integriteit van de database volgens de standaardpraktijk.

Het databasediagram opslaan

Sla ten slotte het databasediagram op door op de knop Opslaan . te klikken pictogram op de werkbalk:

Gegevens toevoegen aan de leerlingentabel

Het is tijd om wat gegevens toe te voegen aan de gemaakte tabellen, beginnend bij de Student-tabel. We zullen de records van drie leerlingen aan de tabel toevoegen.

Klik met de rechtermuisknop op de Leerling tabel en klik op Top 200 rijen bewerken (maak je geen zorgen, je gaat geen 200 rijen bewerken):

Typ de volgende namen en klik op Enter om deze records op te slaan:

Sluit dan het venster – klik op het kruisje rechtsboven of druk op CTRL+F4.

Houd er rekening mee dat StudentIds 1,2 en 3 automatisch worden toegewezen aan de records. We gebruiken ze later in de Cursus tafel.

Gegevens toevoegen aan de instructeurstabel

Nu moeten we twee instructeurs toevoegen met de naam Martin en Asad . Voeg dus de volgende gegevens toe aan de Instructeur tafel:

Houd ook deze id's 1 en 2 in gedachten. Je kunt dit venster voorlopig sluiten.

Gegevens toevoegen aan de cursustabel

We hebben studenten aan de ene kant en instructeurs aan de andere kant. Maar we kunnen alleen die studenten toevoegen die al in de Student-tabel zitten, en hetzelfde geldt voor docenten.

Laten we alle drie de studenten inschrijven in de Databases cursus en wijs een instructeur toe aan deze Cursus ook:

Bekijk de inhoud van de cursustabel

Om de gegevens te bekijken, klikt u met de rechtermuisknop op de Cursus tafel -> Selecteer Top 1000 rijen:

Gefeliciteerd! Je hebt met succes geleerd om een ​​eenvoudige database te ontwerpen met SSMS (SQL Server Management Studio). Daarnaast hebben we getraind om nieuwe records in te voegen en de ingevoegde gegevens te bekijken.

Dingen om te doen

Nu u een database met SSMS kunt ontwerpen, kunt u de volgende dingen proberen om uw vaardigheden verder te verbeteren:

  1. Probeer de inhoud van de tabellen met leerlingen en docenten te bekijken.
  2. Probeer nog een cursus toe te voegen met de naam Business Intelligence en schrijf alle drie de studenten in voor die cursus, samen met het toewijzen van de instructeur Asad (InstructorId:2)
  3. Onthoud dat je het eigenlijke database-ontwerp uit het artikel kunt verbeteren door de volgende dingen:
    • De Cursus hernoemen tabel als de Klasse tafel;
    • De Naam verwijderen kolom uit de Klasse tafel;
    • De CourseId vervangen met de ClassId kolom;
    • Een aparte Cursus maken tabel met de kolommen CourseId en Name, net als voor de tabellen Student en Instructor;
    • Een nieuwe CourseId toevoegen kolom naar de Class-tabel en linkt CourseId van de Cursus Tabel met de CourseId kolom in de Klasse tafel, net als Student en Instructeur.


  1. sp_executesql is traag met parameters

  2. Getallen opmaken in MariaDB

  3. Handleiding voor SQL Joins

  4. Pgbackrest hersteltijd doel