Je to druhý díl série zaměřený na využití SQL Server Management Studio. Naučíte se základní koncepty a problémy návrhu databáze a získáte návod k návrhu jednoduché SQL databáze pomocí SSMS (SQL Server Management Studio).
Předpoklady
- Je nainstalována edice SQL Server 2016/2017/2019 Express/Developer.
- Je nainstalována nejnovější verze SSMS (SQL Server Management Studio).
- Čtenáři mají základní znalosti o SQL databázích a výše uvedených nástrojích.
- Základní koncepty návrhu databáze jsou jasné.
- Čtenáři jsou obeznámeni se scénářem návrhu Student-Instructor, který je popsán v části 1.
Viz Naučte se návrh databáze pomocí SQL Server Management Studio SSMS, část 1 pro více informací o výše uvedených požadavcích.
Návrh databáze student-učitel pomocí SSMS
Začneme vytvářet naši jednoduchou SQL databázi pomocí SSMS. Je však lepší mít rekapitulaci plánované databáze, než ji začneme navrhovat.
Rekapitulace databáze studentů a instruktorů
Mluvili jsme o jednoduché databázi skládající se z následujících tří tabulek:
- Student . Tato tabulka obsahuje záznamy patřící studentům.
- Instruktor . Tato tabulka ukládá informace o všech instruktorech.
- Student-Instruktor . Ten nám říká, který instruktor je přiřazen ke kterému studentovi.
Důležité: jednomu instruktorovi může být přiděleno více než jeden student a jednomu studentovi může být přiřazeno více než jeden instruktor (pro různé předměty).
Jinými slovy, mnoho studentů může mít mnoho instruktorů.
Nahrazení tabulky student-učitel tabulkou kurzů
Dovolíme si mírně zpřesnit databázi student-instruktor – přejmenujeme tabulku Student-Instructor na tabulku Course.
Tímto způsobem je snazší pochopit, že každý kurz může mít více studentů a každý instruktor může mít více studentů pro stejný kurz.
Pro tyto tabulky plánujeme následující sloupce:
- Student:StudentId, Name.
- Instruktor:InstructorId, Name.
- Kurz:CouseId, Name, StudentId, InstructorId.
Spusťte SSMS (SQL Server Management Studio)
Zadejte SSMS do vyhledávacího pole systému Windows a kliknutím na něj v seznamu výsledků spusťte software:
Všimněte si, že uvidíte verzi, kterou jste nainstalovali. V našem případě se jedná o SSMS (SQL Server Management Studio) verze 18.0.
Připojte se k SQL Server Database Engine
V Průzkumníku objektů klikněte na tlačítko Připojit a poté vyberte Databázový stroj :
Vyberte název serveru (název serveru SQL, který máte nainstalovaný na vašem počítači). Připojte se k Database Engine na základě vašeho výchozího nastavení. V našem případě používáme režim Windows Authentication:
Vytvořte novou databázi SQL StudentInstructor
Po připojení klikněte pravým tlačítkem na Databáze uzlu v Průzkumníku objektů a klikněte na Nová databáze… jak je uvedeno níže:
Zadejte název databáze StudentInstructor . Klikněte na OK, ponecháte výchozí nastavení, pokud je nebudete muset změnit:
Databáze by měla být nyní vytvořena.
Rozbalte stejné Databáze uzel k jeho nalezení:
Vytvoření studentského stolu
Nyní potřebujeme vytvořit tabulky v databázi StudentInstructor.
Rozbalte StudentInstructor uzel databáze:klikněte na něj a poté klikněte pravým tlačítkem na Tabulky.
Přejděte na Nové -> Tabulka… takto:
Budeme přidávat sloupce do tabulky jeden po druhém. Začínáme s StudentId .
Zadejte StudentId název sloupce a vyberte int Datový typ, protože bude číselný (pouze s čísly):
Nastavit primární klíč
ID studenta sloupec bude také primárním klíčem tabulky. Pomůže nám to jednoznačně identifikovat studenta (řádek/záznam).
Klikněte pravým tlačítkem na šipku ukazující na StudentId a klikněte na Nastavit primární klíč :
Přidat identitu k primárnímu klíči (StudentId)
Identita nastavená na sloupec automaticky zvýší svou hodnotu, když jsou vloženy nové záznamy. Je to jako sériové číslo, které se zvyšuje s každým novým záznamem.
Pokud sloupec primárního klíče nenastavíme jako sloupec identity, přidáme ID pro každý nový záznam ručně. Toto je dobrý nápad nastavit.
Například první záznam vložený do tabulky Student bude mít automatické id 1 a další bude StudentId 2 atd. Pokud nastavíme Identitu.
Přejděte dolů na Vlastnosti sloupce po StudentId Sloupec primárního klíče je vybrán, dokud nenajdete Specifikaci identity vlastnost.
Nastavte specifikaci identity následovně (začínající je identita) :
Specifikace identity :Ano
(je identita) :Ano
Přírůstek identity :1
Identity Seed :1
Přidejte sloupec Jméno do tabulky studentů
Poté přidejte další sloupec – Název ke stolu. Použijte varchar(45) Typ dat a zrušte zaškrtnutí políčka Povolit hodnoty Null takto:
Pamatujte, že VARCHAR(45) představuje znaková data (typ) až 45 znaků, které mají být uloženy ve sloupci (Název). Když zrušíme zaškrtnutí Povolit hodnoty Null ,musíme zadat tuto hodnotu do sloupce, abychom uložili Studenta záznam.
Uložit stůl (student)
Nejdůležitějším krokem je uložit změny. V našem případě uložíme nově vytvořenou tabulku jednoduchým kliknutím na Uložit ikonu disku na panelu nástrojů nebo klávesovou zkratkou CTRL+S .
Zadejte název tabulky – Student – při ukládání:
Zobrazení tabulky studentů (Průzkumník objektů)
Po úspěšném uložení tabulky rozbalte Tabulky uzel StudentInstructor databázi vyhledejte nově vytvořenou tabulku:
Vytvořte tabulku instruktorů se sloupci InstrutorId a Name
Podobně klikněte pravým tlačítkem na Tabulky znovu uzel. Tentokrát vytvořte novou tabulku s názvem Instruktor .
Poté přidejte nový sloupec s názvem InstructorId z int datový typ a nastavte jej jako primární klíč, jak je znázorněno níže:
Dalším krokem je přidání Identity do sloupce InstructorId :
Poté přidejte Jméno sloupec VARCHAR(45) datový typ Instruktorovi Tabulka a nepovolte pro tento sloupec hodnoty Null, stejně jako pro Název ve sloupci Student tabulka:
Uložení a zobrazení tabulky instruktorů (Průzkumník objektů)
Uložte tabulku stisknutím CTRL+S zástupce nebo kliknutím na ikonu Uložit. Pojmenujte tabulku jako Instruktor .
Klikněte pravým tlačítkem na Tabulky uzel pod StudentInstructor databázi a klikněte na Obnovit chcete-li nyní zobrazit obě tabulky:
Vytvořte tabulku kurzů se sloupcem primárního klíče CourseId s identitou
Do databáze musíme přidat ještě jednu tabulku – kurz tabulka, která bude obsahovat ID z tabulek Student a Instructor. Bude existovat vztah mnoho k mnoha (mnoho studentů může být přiděleno mnoha instruktorům, podle našich požadavků).
Vytvořte novou tabulku Kurz s CourseId primární klíč:
Přidejte Identitu do sloupce stejným způsobem jako u StudentId a Id instruktora sloupce.
Přidejte sloupce Name, StudentId a CourseId
Dále přidejte Jméno sloupec typu VARCHAR(45) do kurzu tabulka následovaná přidáním StudentId a Id kurzu sloupce int datový typ:
Nezapomeňte zrušit zaškrtnutí Povolit hodnoty null abyste zajistili, že záznam nebude uložen bez zadání těchto hodnot sloupců.
Tímto způsobem zajistíme, že a Kurz musí mít studenta a Instruktor před uložením do databáze. Kromě toho student a Instruktor musí existovat ve svých původních tabulkách.
Uložení a rychlá kontrola
Uložte tabulku a název je Kurz:
Nakonec Obnovit všechny tabulky a zobrazit nově vytvořenou tabulku spolu s ostatními v Průzkumníku objektů :
Přidat všechny tabulky do diagramu databáze
Nyní musíme vytvořit vztah mezi tabulkami, aby obě byly Student a Instruktor stoly byly připojeny ke kurzu prostřednictvím jejich primárních klíčů.
Například StudentId v Student tabulka je propojena s StudentId v kurzu stůl. Podobně InstructorId v Instruktor tabulka je propojena s InstructorId v kurzu tabulka.
Můžeme toho dosáhnout pomocí databázového diagramu.
Přejděte na StudentInstructor databáze v Průzkumníku objektů a klikněte pravým tlačítkem na Databázové diagramy -> Nový diagram databáze :
Klikněte na Ano :
Použijte CTRL vyberte všechny existující tabulky a přidejte je do Diagramu databáze :
Prohlédněte si diagram databáze a přeuspořádejte tabulky (klikněte na tabulku a přesuňte ji), abyste vytvořili kurz stojan na stůl uprostřed, mezi Studenty a Instruktor tabulky:
Propojte tabulku studentů s tabulkou kurzů
Musíme vytvořit vztah mezi Studentem a kurz připojením StudentId v části Student tabulka s StudentId ve sloupci Kurz tabulka.
Přetáhněte klíč StudentId a umístěte jej do sloupce StudentId v tabulce kurzů . Klikněte na OK :
Vytvoří vztah cizího klíče mezi tabulkami Kurz a Student – zajišťuje, že do tabulky Předmět budou uloženi pouze ti studenti uložení v tabulce Student:
Propojte tabulku instruktorů s tabulkou kurzů
Podobně musíte propojit Instruktor tabulka s kurzem tabulky tak, aby Id instruktora sloupec primárního klíče Instruktor tabulka bude předána InstructorId v kurzu tabulka.
Tímto způsobem zajistíme, že InstructorId primární klíč existuje jako cizí klíč v kurzu stůl. Znamená to, že můžeme uložit učení každého instruktora řádku z kurzu pouze v případě, že daný instruktor existuje v původním instruktoru stůl. Tímto způsobem udržujeme konzistenci a integritu databáze podle standardní praxe.
Uložte diagram databáze
Nakonec uložte diagram databáze kliknutím na Uložit ikona na panelu nástrojů:
Přidat data do tabulky studentů
Je čas přidat některá data do vytvořených tabulek, počínaje tabulkou Student. Do tabulky přidáme tři záznamy studentů.
Klikněte pravým tlačítkem na Student tabulky a klikněte na Upravit 200 nejlepších řádků (nebojte se, nebudete upravovat 200 řádků):
Zadejte následující názvy a klikněte na Enter pro uložení těchto záznamů:
Poté okno zavřete – klikněte na křížek vpravo nahoře nebo stiskněte CTRL+F4.
Vezměte prosím na vědomí, že StudentId 1, 2 a 3 jsou automaticky přiřazena k záznamům. Použijeme je později v kurzu tabulka.
Přidat data do tabulky instruktorů
Nyní potřebujeme přidat dva instruktory jménem Martin a Asad . Přidejte tedy do Instruktora následující data tabulka:
Podobně mějte na paměti tato ID 1 a 2. Toto okno můžete prozatím zavřít.
Přidat data do tabulky kurzů
Na jedné straně máme studenty a na druhé straně instruktory. Můžeme ale přidat pouze ty studenty, kteří jsou již na Studentském stole, a totéž platí pro instruktory.
Dovolte nám zapsat všechny tři studenty do Databází kurz a přiřadit instruktora tomuto kurzu také:
Zobrazit obsah tabulky kurzů
Chcete-li zobrazit data, klikněte pravým tlačítkem na Kurz tabulka -> Vyberte 1000 nejlepších řádků:
Gratulujeme! Úspěšně jste se naučili navrhovat jednoduchou databázi pomocí SSMS (SQL Server Management Studio). Kromě toho jsme trénovali vkládání nových záznamů a prohlížení vložených dat.
Co dělat
Nyní, když můžete navrhnout databázi pomocí SSMS, vyzkoušejte následující věci, abyste své dovednosti dále zlepšili:
- Zkuste si zobrazit obsah tabulek Student a Instruktor.
- Zkuste přidat další kurz s názvem Business Intelligence a zapsat všechny tři studenty do tohoto kurzu spolu s přidělením instruktora Asada (InstructorId:2)
- Nezapomeňte, že skutečný návrh databáze z článku můžete vylepšit následujícími věcmi:
- Přejmenování kurzu tabulku jako Třídu tabulka;
- Odebrání Jméno ze sloupce Třída tabulka;
- Nahrazení CourseId s ClassId sloupec;
- Vytvoření samostatného kurzu tabulka se sloupci CourseId a Name, stejně jako pro tabulky Student a Instructor;
- Přidání nového Id kurzu sloupec k tabulce Class a propojení CourseId z kurzu Tabulka s CourseId ve sloupci Třída stůl, stejně jako Student a Instruktor.