Ako vytvoriť databázu v prostredí SQL Server. SQL - čo to je, na čo je jazyk a základné funkcie pre začiatočníkov

  • 18.06.2019

Príklad vytvorenia lokálnej databázy Microsoft SQL Server vMS Visual Studio

Táto téma ukazuje riešenie problému vytvárania databázy ako SQL Server pomocou MS Visual Studio. Zvažujú sa tieto problémy:

  • pracovať s oknom Server Explorer v MS Visual Studio;
  • vytvorenie lokálnej databázy, ako je SQL Server Database;
  • vytváranie tabuliek v databáze;
  • úprava štruktúr tabuliek;
  • vzájomné prepojenie databázových tabuliek;
  • zadávanie údajov do tabuliek pomocou MS Visual Studio.

Úloha

Pomocou nástrojov MS Visual Studio vytvorte databázu MS SQL Server s názvom Education. Databáza obsahuje dve tabuľky Študent a Session. Tabuľky sú navzájom prepojené nejakým poľom.

Štruktúra prvej tabuľky "Študent".

Štruktúra druhej tabuľky „Session“.

Výkon

1. Stiahnite si MS Visual Studio.

2. AktivujteoknoServer Explorer.

Pre prácu s databázami ponúka Microsoft ľahký databázový server Microsoft SQL Server. Existujú rôzne verzie Microsoft SQL Server, napríklad: Microsoft SQL Server 2005, Microsoft SQL Server 2008, Microsoft SQL Server 2014 a ďalšie.

Tieto verzie si môžete stiahnuť z webovej lokality spoločnosti Microsoft www.msdn.com.

Tento server je skvelý na prácu s databázami. Je zadarmo a má grafické rozhranie na vytváranie a správu databáz pomocou nástroja SQL Server Management Tool.

Pred vytvorením databázy musíte najskôr aktivovať pomôcku Server Explorer. K tomu je potrebné v MS Visual Studio zavolať (obr. 1)

Zobraziť -> Server Explorer

Ryža. 1. Volanie Server Explorer

Po vyvolaní bude mať okno Server Explorer približné zobrazenie, ako je znázornené na obrázku 2.

Ryža. 2. Okno Server Explorer

3. Vytvorenie databázy „Vzdelávanie“.

Ak chcete vytvoriť novú databázu založenú na poskytovateľovi údajov servera Microsoft SQL Server, kliknite na uzol Dátové pripojenia a potom vyberte „ Vytvoriť novú databázu SQL Server...“(obr. 3).

Ryža. 3. Volanie príkazu na vytvorenie databázy SQL Server

Výsledkom je, že okno „ Vytvorte novú databázu SQL Server“ (obr. 4).

V okne (v poli „Názov servera“) je uvedený názov lokálneho servera nainštalovaného na vašom počítači. V našom prípade je tento názov „SQLEXPRESS“.

Pole "Názov novej databázy:" obsahuje názov databázy, ktorá sa má vytvoriť. V našom prípade ide o názov Vzdelávanie.

Ponechajte možnosť Použiť overovanie systému Windows nezmenenú a kliknite na tlačidlo OK.

Ryža. 4. Vytvorenie novej databázy SQL Server 2008 Express pomocou MS Visual Studio 2010

Po vykonaných akciách bude mať okno Server Explorer podobu, ako je znázornené na obrázku 5. Ako môžete vidieť na obrázku 5, databáza Education s názvom

sasha-pc \ sqlexpress.Education.dbo

Ryža. 5. Okno Server Explorer po pridaní databázy Education

4. Objekty databázy Vzdelávanie.

Ak rozbalíte databázu vzdelávania (znamienko „+“), uvidíte zoznam nasledujúcich hlavných objektov:

  • Databázové diagramy - databázové diagramy. Diagramy zobrazujú vzťahy medzi tabuľkami databázy, vzťahy medzi poľami rôznych tabuliek atď.;
  • Tabuľky - tabuľky, ktoré obsahujú databázové údaje;
  • Pohľady - pohľady. Rozdiel medzi zobrazeniami a tabuľkami je v tom, že databázové tabuľky obsahujú údaje, zobrazenia údajov nie a obsah sa získava z iných tabuliek alebo zobrazení;
  • Uložené procedúry sú uložené procedúry. Ide o skupinu súvisiacich príkazov SQL, ktoré poskytujú dodatočnú flexibilitu pri práci s databázou.

5. Vytvorenie tabuľky Študent.

Momentálne je databáza Education úplne prázdna a neobsahuje žiadne objekty (tabuľky, uložené procedúry, pohľady atď.).

Ak chcete vytvoriť tabuľku, musíte zavolať kontextové menu (kliknutie pravým tlačidlom myši) a vybrať príkaz „Pridať novú tabuľku“ (obrázok 6).

Ryža. 6. Príkaz na pridanie novej tabuľky

Existuje ďalšia možnosť na pridanie databázovej tabuľky pomocou príkazov ponuky Údaje:

Údaje -> Pridať nový -> Tabuľka

Ryža. 7. Alternatívna možnosť pridania novej tabuľky

V dôsledku toho sa otvorí okno na pridanie tabuľky, ktoré obsahuje tri stĺpce (obrázok 8). V prvom stĺpci „Názov stĺpca“ musíte zadať názov zodpovedajúceho poľa databázovej tabuľky. V druhom stĺpci „Typ údajov“ musíte zadať typ údajov tohto poľa. Tretí stĺpec „Povoliť nuly“ označuje možnosť o možnosti absencie údajov v poli.

Ryža. 8. Okno na vytvorenie novej tabuľky

Pomocou editora tabuliek je potrebné vytvoriť tabuľku Študent, ako je znázornené na obrázku 9. Názov tabuľky je potrebné nastaviť pri jej zatvorení.

V editore tabuľky môžete nastaviť vlastnosti poľa v okne Vlastnosti stĺpca. Na nastavenie dĺžky reťazca (nvchar) v znakoch existuje vlastnosť Dĺžka v okne Vlastnosti stĺpca. Predvolená hodnota pre túto vlastnosť je 10.

Ryža. 9. Študentský stôl

Ďalším krokom je nastavenie poľa kľúča. To sa vykoná vyvolaním príkazu „Nastaviť primárny kľúč“ z kontextovej ponuky poľa Num_book. Pomocou poľa kľúča sa vytvoria vzťahy medzi tabuľkami. V našom prípade je kľúčovým poľom číslo ročníkovej knihy.

Ryža. 10. Nastavenie poľa kľúča

Po nastavení primárneho kľúča bude okno tabuľky vyzerať ako na obrázku 11.

Ryža. 11. Tabuľka Študent po záverečnej formácii

Teraz môžete stôl zavrieť. V okne na uloženie tabuľky je potrebné nastaviť jej názov - Študent (obr. 12).

Ryža. 12. Zadanie názvu tabuľky Študent

6. Vytvorenie tabuľky relácie.

Podľa príkladu vytvorenia tabuľky Študent sa vytvorí tabuľka Session.

Obrázok 13 ukazuje pohľad na tabuľku relácií po poslednej formácii. Primárny kľúč sa nastavuje v poli Num_book. Názov tabuľky je daný Session.

Ryža. 13. Tabuľka relácií

Po dokončení krokov sa v okne Prieskumníka servera zobrazia dve tabuľky Študent a Relácia.

Do databázy je teda možné pridať ľubovoľný počet tabuliek.

7. Úprava štruktúry tabuliek.

Sú chvíle, keď potrebujete zmeniť štruktúru databázovej tabuľky.

Ak chcete vykonať zmeny v tabuľkách databázy v MS Visual Studio, musíte najskôr zrušiť začiarknutie políčka „Zabrániť ukladaniu zmien ktoré vyžadujú opätovné vytvorenie tabuľky„Ako je znázornené na obrázku 14. V opačnom prípade MS Visual Studio zablokuje zmeny v predtým vytvorenej tabuľke. Okno Možnosti zobrazené na obrázku 14 sa vyvolá z ponuky Nástroje v nasledujúcom poradí:

Nástroje -> Možnosti -> Databázové nástroje -> Návrhári tabuliek a databáz

Ryža. 14. Možnosť “ Zabrániť ukladaniu zmien, ktoré vyžadujú opätovné vytvorenie tabuľky

Po prispôsobení môžete zmeniť štruktúru tabuľky. Na to použite príkaz „Otvoriť definíciu tabuľky“ (obrázok 15) z kontextovej ponuky, ktorá sa vyvolá pre vybratú tabuľku (kliknutie pravým tlačidlom myši).

Ryža. 15. Volanie príkazu "Otvoriť definíciu tabuľky"

Tento príkaz sa nachádza aj v ponuke Údaje:

Údaje -> Otvoriť definíciu tabuľky

Najprv je potrebné vybrať tabuľku.

8. Stanovenie vzťahov medzi tabuľkami.

V súlade so stavom problému sú tabuľky navzájom prepojené poľom Num_book.

Ak chcete vytvoriť vzťah medzi tabuľkami, najprv potrebujete (obrázok 16):

  • vyberte objekt Diagram databázy;
  • vyberte príkaz Pridať nový diagram z kontextového menu (alebo z menu Údaje).

Ryža. 16. Vyvolanie príkazu na pridanie nového diagramu

V dôsledku toho sa otvorí okno Pridať tabuľku na pridanie nového diagramu (obrázok 17). V tomto okne musíte postupne vybrať dve tabuľky Relácia a Študent a kliknúť na tlačidlo Pridať.

Ryža. 17. Okno na pridávanie tabuliek do diagramu

Ryža. 18. Tabuľky Student a Session po ich pridaní do diagramu

Ak chcete začať vytvárať vzťah medzi tabuľkami, musíte kliknúť na pole Num_book v tabuľke Študent a potom ho (bez uvoľnenia tlačidla myši) pretiahnuť do poľa Num_book tabuľky Session.

V dôsledku toho sa postupne otvoria dve okná: Tabuľky a stĺpce (obr. 19) a Vzťah cudzieho kľúča (obr. 20), v ktorých je potrebné nechať všetko tak a potvrdiť výber tlačidlom OK.

V okne Tabuľky a stĺpce zadáte názov vzťahu (FK_Session_Student) a názvy nadradených (Student) a dcérskych tabuliek.

Ryža. 19. Okno Tabuľky a stĺpce

Ryža. 20. Okno pre nastavenie vlastností vzťahu

Po vykonaných akciách sa vytvorí vzťah medzi tabuľkami (obrázok 21).

Ryža. 21. Vzťah medzi tabuľkami Študent a Session

Uloženie grafu sa vykonáva rovnakým spôsobom ako ukladanie tabuľky. Názov diagramu si musíte zvoliť podľa vlastného uváženia (napríklad Diagram1).

Po zadaní názvu diagramu sa otvorí okno Uložiť, v ktorom musíte potvrdiť svoju voľbu (obrázok 22).

Ryža. 22. Potvrdenie uloženia zmien v tabuľkách

9. Zadávanie údajov do tabuliek.

Microsoft Visual Studio umožňuje priamo zadávať údaje do databázových tabuliek.

V našom prípade sa pri nadväzovaní spojenia (obr. 19) zvolí tabuľka Študent ako primárna (Primary Key Table). Preto najprv musíte zadať údaje do buniek tejto konkrétnej tabuľky. Ak sa pokúsite najskôr zadať údaje do tabuľky relácie, systém zablokuje takýto vstup výstupom príslušnej správy.

Pre vyvolanie režimu zadávania údajov do tabuľky Študent je potrebné z kontextovej ponuky (kliknutie pravým tlačidlom myši) alebo z ponuky Údaje (obr. 23) vyvolať príkaz Zobraziť údaje tabuľky.

Ryža. 23. Príkaz Zobraziť údaje tabuľky

Otvorí sa okno, do ktorého je potrebné zadať vstupné údaje (obr. 24).

Ryža. 24. Zadávanie údajov do tabuľky Študent

Po zadaní údajov do tabuľky Študent je potrebné zadať údaje do tabuľky Session.

Pri zadávaní údajov do poľa Num_book v tabuľke Session musíte zadať presne tie isté hodnoty, ktoré sú zadané v poli Num_book v tabuľke Študent (keďže tieto polia spolu súvisia).

Napríklad, ak pole Num_book tabuľky Študent obsahuje hodnoty “101”, “102”, “103” (pozri obr. 24), potom by sa tieto hodnoty mali zadať do poľa Num_book v tabuľke Session. Ak sa pokúsite zadať inú hodnotu, systém zobrazí približne nasledujúce okno (obr. 25).

Ryža. 25. Chybové hlásenie o zadaní údajov súvisiacich tabuliek Študent a Relácia

Tabuľka relácie so zadanými údajmi je znázornená na obrázku 26.

Microsoft SQL Server 005 – Príklad vytvorenia súboru „* .mdf“ pre lokálnu databázu Microsoft SQL Server v Microsoft Visual Studio

Na organizácii databázy sa podieľa veľké množstvo rôznych objektov. Všetky databázové objekty sú fyzické alebo logické. Fyzické objekty sa zaoberajú organizáciou údajov na fyzických zariadeniach (diskoch). Fyzické objekty databázového stroja sú súbory a skupiny súborov. Logické objekty sú vlastné pohľady na databázu. Príklady entít zahŕňajú tabuľky, stĺpce a zobrazenia (virtuálne tabuľky).

Databázový objekt, ktorý chcete vytvoriť ako prvý, je samotná databáza. Databázový stroj spravuje systémové aj užívateľské databázy. Používateľské databázy môžu vytvárať oprávnení používatelia, zatiaľ čo systémové databázy sa vytvárajú pri inštalácii DBMS.

Na vytvorenie databázy sa používajú dve hlavné metódy. Prvá metóda používa SQL Server Management Studio Object Explorer, ako je uvedené vyššie, a druhá používa príkaz Transact-SQL VYTVORIŤ DATABÁZU... Nasleduje všeobecná forma tejto inštrukcie, po ktorej nasleduje podrobná diskusia o jej komponentoch:

CREATE DATABASE názov_db (file_spec1), ...] Konvencie syntaxe

Parameter db_name je názov databázy. Názov databázy môže obsahovať maximálne 128 znakov. Jeden systém dokáže spravovať až 32 767 databáz. Všetky databázy sú uložené v súboroch, ktoré môžu byť špecifikované explicitne administrátorom alebo implicitne poskytnuté systémom. Ak príkaz CREATE DATABASE obsahuje parameter ON, všetky databázové súbory sú špecifikované explicitne.

Databázový stroj ukladá dátové súbory na disk. Každý súbor obsahuje údaje z jednej databázy. Tieto súbory môžu byť usporiadané do skupín súborov. Skupiny súborov poskytujú možnosť distribuovať údaje na rôzne diskové jednotky a zálohovať a obnovovať časti databázy. Toto je užitočná funkcia pre veľmi veľké databázy.

Parameter file_spec1 predstavuje špecifikáciu súboru a môže sám o sebe obsahovať ďalšie možnosti, ako je názov logického súboru, fyzický názov a veľkosť. PRIMÁRNY parameter označuje prvý (a najdôležitejší) súbor, ktorý obsahuje systémové tabuľky a ďalšie dôležité interné informácie o databáze. Ak parameter PRIMARY chýba, potom sa ako primárny súbor použije prvý súbor špecifikovaný v špecifikácii.

Nazýva sa účet Database Engine, ktorý sa používa na vytvorenie databázy vlastník databázy... Databáza môže mať iba jedného vlastníka, ktorý vždy zodpovedá účtu. Účet, ktorý vlastní vlastník databázy, má špeciálne meno dbo... Tento názov sa vždy používa pre databázu, ktorú vlastní používateľ.

Možnosť PRIHLÁSIŤ SA Parameter dbo špecifikuje jeden alebo viacero súborov ako fyzické úložisko pre protokol transakcií databázy. Ak možnosť LOG ON nie je prítomná, protokol transakcií databázy sa napriek tomu vytvorí, pretože každá databáza musí mať aspoň jeden protokol transakcií. (Databázový stroj uchováva záznamy o všetkých zmenách, ktoré vykoná v databáze. Systém ukladá všetky tieto záznamy, najmä hodnoty pred transakciou a po nej, do jedného alebo viacerých súborov nazývaných protokoly transakcií. Každá databáza v systéme uchováva svoj vlastný protokol transakcií.)

Možnosť COLLATE určuje predvolené poradie triedenia databázy. Ak nie je zadaná voľba COLLATE, databáze sa priradí predvolené poradie triedenia, ktoré je presne rovnaké ako predvolené poradie triedenia databázového systému.

Možnosť PRE PRIPOJENIE určuje, že databáza je vytvorená pripojením existujúcej sady súborov. Pri použití tejto možnosti musíte explicitne zadať prvý primárny súbor. Možnosť PRE ATTACH_REBUILD_LOG určuje, že databáza je vytvorená pripojením k existujúcej sade súborov operačného systému.

Databázový stroj vytvorí novú databázu pomocou šablóny modelovej databázy. Vlastnosti modelovej databázy je možné prispôsobiť tak, aby vyhovovali osobným predstavám správcu systému. Ak má byť špecifický databázový objekt prítomný v každej užívateľskej databáze, potom musí byť tento objekt najprv vytvorený v modelovej databáze.

Nižšie uvedený príklad ukazuje kód na vytvorenie jednoduchej databázy bez ďalších podrobností. Ak chcete spustiť tento kód, zadajte ho do editora dotazov Management Studio a stlačte .

USE master; VYTVORIŤ DATABÁZU SampleDb;

Kód v príklade vytvorí databázu s názvom SampleDb. Táto skrátená forma CREATE DATABASE je možná, pretože takmer všetky jej parametre majú predvolené hodnoty. V predvolenom nastavení systém vytvorí dva súbory. Dátový súbor má logický názov SampleDb a má pôvodne veľkosť 2 MB. A súbor protokolu transakcií má logický názov SampleDb_log a má pôvodne veľkosť 1 MB. (Veľkosti oboch súborov, ako aj ďalšie vlastnosti novej databázy závisia od príslušných špecifikácií modelovej databázy.)

Nasledujúci príklad ukazuje, ako vytvoriť databázu s explicitnými súbormi databázy a protokolu transakcií:

USE master; VYTVORIŤ DATABÁZU Projekty ZAPNUTÉ (NAME = project_dat, FILENAME = "D: \ projects.mdf", SIZE = 10, MAXSIZE = 100, FILEGROWTH = 5) PRIHLÁSIŤ SA (NAME = project_log, FILENAME = "D: \ projects.ldf", VEĽKOSŤ = 40, MAXIMÁLNA VEĽKOSŤ = 100, RAST SÚBORU = 10);

Databáza vytvorená v príklade má názov Projekty. Keďže voľba PRIMARY nie je špecifikovaná, prvý súbor sa považuje za primárny súbor. Tento súbor má logický názov projects_dat a je uložený v súbore na disku projects.mdf. Pôvodná veľkosť tohto súboru je 10 MB. V prípade potreby systém pridelí tomuto súboru ďalšie miesto na disku v krokoch po 5 MB. Ak neuvediete možnosť MAXSIZE alebo ak je táto možnosť nastavená na NEOBMEDZENÉ, potom sa maximálna veľkosť súboru môže zvýšiť a bude obmedzená iba veľkosťou celého miesta na disku. (Jednotku veľkosti súboru možno zadať pomocou prípony KB, TB a MB, čo znamená kilobajty, terabajty a megabajty. Predvolená jednotka veľkosti je MB, čo sú megabajty.)

Okrem údajového súboru sa vytvorí aj súbor protokolu transakcií, ktorý má logický názov project_log a fyzický názov projects.ldf. Všetky voľby pre špecifikáciu súboru protokolu transakcií majú rovnaké názvy a význam ako zodpovedajúce voľby pre špecifikáciu súboru údajov.

V Transact-SQL môžete zadať špecifický databázový kontext (t. j. ktorá databáza sa má použiť ako aktuálna) pomocou POUŽÍVAJTE pokyny... (Alternatívnym spôsobom je vybrať požadovaný názov databázy z rozbaľovacieho zoznamu Databáza na paneli nástrojov SQL Server Management Studio.)

Systémový administrátor môže užívateľovi priradiť aktuálnu predvolenú databázu pomocou príkazu CREATE LOGIN alebo príkazu ALTER LOGIN. V tomto prípade používatelia nemusia spúšťať príkaz USE, pokiaľ nechcú použiť inú databázu.

Vytvorenie snímky databázy

Okrem vytvorenia novej databázy možno príkaz CREATE DATABASE použiť na vytvorenie snímky existujúcej databázy (zdrojovej databázy). Snímka databázy je transakčne konzistentná kópia pôvodnej databázy v čase vytvorenia snímky. Nasledujúci text zobrazuje syntax príkazu na vytvorenie snímky databázy:

Ak teda chcete vytvoriť snímku databázy, musíte vložiť klauzulu do príkazu CREATE DATABASE AKO SNÍMKA Z... Príklad nižšie ukazuje, ako urobiť snímku databázy SampleDb a uložiť ju do priečinka D: \ temp. (Tento adresár je potrebné vytvoriť pred spustením tohto príkladu.)

USE master; VYTVORIŤ DATABÁZU SampleDb ON (NAME = "SampleDb_Data", FILENAME = "D: \ temp \ snapshot_DB.mdf") AKO SNÍMKA SampleDb;

Snímka existujúcej databázy je kópia zdrojovej databázy len na čítanie a odráža stav tejto databázy v čase kopírovania. (Týmto spôsobom môžete vytvoriť viacero snímok existujúcej databázy.) Súbor snímky (v príklade vyššie je to D: \ temp \ snapshot_DB.mdf) obsahuje iba upravené údaje zdrojovej databázy. Preto vo svojom kóde na vytvorenie snímky musíte zadať logický názov každého dátového súboru v zdrojovej databáze, ako aj zodpovedajúce fyzické názvy.

Keďže snímka obsahuje iba zmenené údaje, každá snímka vyžaduje len malý zlomok miesta na disku, ktorý vyžaduje príslušná zdrojová databáza.

Snímky databázy je možné vytvárať iba na diskoch so súborovým systémom NTFS (New Technology File System). iba tento súborový systém podporuje technológiu riedkych súborov používanú na ukladanie snímok.

Snímky databázy sa bežne používajú ako mechanizmus na ochranu údajov pred poškodením.

Pripájanie a odpájanie databáz

Všetky databázové údaje možno odpojiť a potom znova pripojiť k rovnakému alebo inému databázovému serveru. Táto funkcia sa používa pri presúvaní databázy.

Ak chcete odpojiť databázu od databázového servera, použite systémový postup sp_detach_db... (Databáza, ktorá sa má odpojiť, musí byť v režime jedného používateľa.)

Na pripojenie databázy použite príkaz CREATE DATABASE s klauzulou FOR ATTACH. Na pripojenie databázy musia byť k dispozícii všetky požadované súbory. Ak má niektorý dátový súbor cestu, ktorá sa líši od pôvodnej cesty, musí byť pre tento súbor špecifikovaná aktuálna cesta.

Ak to chcete urobiť, musíte mať nainštalovaný systém správy databáz DB2 (DBMS). Použijeme dialekt jazyka SQL, ktorý sa používa v tomto konkrétnom DBMS.

Prvý príkaz, ktorý použijeme na vytvorenie databázy, je príkaz CREATE DATABASE. Jeho syntax je nasledovná:

CREATE TABLE TABLE_NAME (datatype first_column_name, ..., last_column_name datatype, primary key, constraints (voliteľné))

Keďže naša databáza modeluje sieť lekární, obsahuje entity ako „Lekáreň“ (tabuľka Lekáreň v našom príklade vytvorenia databázy), „Liek“ (tabuľka Príprava v našom príklade vytvorenia databázy), „Dostupnosť (lieky vo farmácii) „(tabuľka Dostupnosť v našom príklade vytvorenia databázy), Klient „(tabuľka Klient v našom príklade vytvorenia databázy) a ďalšie, ktoré si tu podrobne rozoberieme.

Vývoju entitno-relačného modelu možno venovať nejeden článok, ale ak nás primárne zaujímajú SQL príkazy na vytváranie databázy a tabuliek v nej, tak sa zhodneme na predpoklade, že vzťahy medzi entitami sú už jasné nás. Na obrázku nižšie je pohľad na náš databázový model s atribútmi entít (tabuľkami) a vzťahmi medzi tabuľkami.

Ak chcete obrázok zväčšiť, kliknite naň ľavým tlačidlom myši.

Ako už bolo spomenuté vyššie, príklad vytvorenia databázy, o ktorom sa tu diskutuje, používal variáciu jazyka SQL, ktorý sa používa v systéme správy databáz DB2 (DBMS). Nerozlišuje veľké a malé písmená, to znamená, že nezáleží na tom, či sú príkazy a jednotlivé slová napísané malými alebo veľkými písmenami. Na ilustráciu tejto funkcie sú príkazy zadávané bez špeciálneho systému, písané malými a veľkými písmenami.

Teraz začnime vytvárať tímy. Náš prvý SQL príkaz vytvorí databázu PHARMNETWORK:

SQL kód

VYTVORIŤ DATABÁZU FARMNETWORK

Popis tabuľky LEKÁREŇ:

Napíšeme príkaz, ktorý vytvorí tabuľku LEKÁREŇ (Pharmacy), hodnoty primárneho kľúča PH_ID sa vygenerujú automaticky od 1 s krokom 1, skontroluje sa, či sú hodnoty atribútu Address v tejto tabuľke jedinečné:

SQL kód

VYTVORIŤ TABUĽKU LEKÁREŇ (PH_ID smallint NIE JE VŽDY VYGENEROVANÉ NULL AKO IDENTITA (ZAČAŤ S 1, ZVÝŠENIE O 1), Adresa varchar (40) NIE JE NULL, PRIMÁRNY KĽÚČ (PH_ID), OBMEDZENIE PH_UNIQ UNIQUE (Adresa))

Popis tabuľky GROUP:

Napíšeme príkaz, ktorý vytvorí tabuľku skupiny (Group of drugs), hodnoty primárneho kľúča GR_ID sa vygenerujú automaticky od 1 s krokom 1, skontroluje sa jedinečnosť názvu skupiny (na tento účel sa použije kľúčové slovo CONSTRAINT ):

SQL kód

VYTVORIŤ SKUPINU TABUĽKY (GR_ID smallint NIE JE VŽDY VYGENEROVANÉ NULL AKO IDENTITA (ZAČAŤ S 1, ZVÝŠENIE O 1), Názov varchar (40) NIE JE NULL, PRIMÁRNY KĽÚČ (GR_ID), OBMEDZENIE GR_UNIQ UNIQUE (Názov))

Popis tabuľky PRÍPRAVA:

Príkaz, ktorý vytvára tabuľku PREPARATION, hodnoty primárneho kľúča PR_ID sa generujú automaticky od 1 s krokom 1, je určené, že hodnoty cudzieho kľúča GR_ID (skupina liekov) nemôžu byť NULL, jedinečnosť hodnôt atribútu Name je určená:

SQL kód

VYTVORTE PRÍPRAVU TABUĽKY (PR_ID smallint NIE JE VŽDY VYGENEROVANÉ NULL AKO IDENTITA (ZAČAŤ S 1, ZVÝŠENIE O 1), Názov varchar (40) NOT NULL, GR_ID int NOT NULL, PRIMÁRNY KĽÚČ (PR_ID), obmedzenie PR_UNIQ UNIQUE (Názov))

Ďalej sa musíme postarať o obmedzenia integrity. Je veľmi pohodlné to urobiť pomocou príkazu alter table. Tento príkaz sa študuje v lekcii. SQL ALTER TABLE - úprava databázovej tabuľky.

Teraz je čas na vytvorenie tabuľky DOSTUPNOSŤ (Dostupnosť alebo Dostupnosť lieku v lekárni). Jej popis:

Napíšeme príkaz, ktorý vytvorí tabuľku AVAILABILITY. Určuje sa dátum začiatku (nemôže byť NULL) a konca (predvolená hodnota NULL).

SQL kód

VYTVORIŤ DOSTUPNOSŤ TABUĽKY (A_ID smallint NIE JE NULL VŽDY VYGENEROVANÉ AKO IDENTITA (ZAČAŤ S 1, NÁRAST O 1), PH_ID INT NIE JE NULL, PR_ID INT NIE JE NULL, DateStart varchar (20) NOT NULL, DateEnd varchar (20) DEFAULTITY NOT NULL, MART varchar (3) DEFAULT NULL, PRIMARY KEY (A_ID), CONSTRAINT AVA_UNIQ UNIQUE (PH_ID, PR_ID))

Vytvorte tabuľku DEFICIT (Drogový deficit v lekárni, teda Nevybavená požiadavka). Jej popis:

Napíšeme príkaz, ktorý vytvorí tabuľku DEFICIT:

SQL kód

VYTVORIŤ DEFICIT TABUĽKY (D_ID smallint NIE JE NULL VŽDY VYGENEROVANÉ AKO IDENTITA (ZAČAŤ S 1, ZVÝŠENIE O 1), PH_ID INT NIE JE NULL, PR_ID INT NIE JE NULL, Riešenie varchar (40) NOT NULL, DateStart varchar (20) NIE JE NULL, DateEnd (20) VÝCHOZÍ NULL)

Trochu doľava. Už sme sa dostali k príkazu, ktorý vytvorí tabuľku Zamestnanec. Jej popis:

Napíšeme príkaz, ktorý vytvorí tabuľku Zamestnanec s primárnym kľúčom vygenerovaným podľa rovnakých pravidiel ako primárne kľúče predchádzajúcich tabuliek, v ktorých existujú. S cudzím kľúčom PH_ID je zamestnanec spojený s LEKÁREŇ:

SQL kód

VYTVORIŤ TABUĽKU ZAMESTNANCA (E_ID smallint NIE JE VŽDY VYGENEROVANÉ NULL AKO IDENTITA (ZAČAŤ S 1, ZVÝŠENIE O 1), F_Name varchar (40) NOT NULL, L_Name varchar (40) NOT NULL, POST varchar (40) INT NOT NULL, PH_ID PRIMÁRNY KĽÚČ (E_ID))

Front dosiahol vytvorenie tabuľky KLIENT (Client). Jej popis:

Napíšeme príkaz, ktorý vytvorí tabuľku KLIENT (Client), vo vzťahu k primárnemu kľúču, o ktorom platí predchádzajúci popis. Zvláštnosťou tejto tabuľky je, že jej atribúty F_Name a L_Name sú štandardne NULL. Je to spôsobené tým, že klienti môžu byť registrovaní aj neregistrovaní. V druhom prípade budú hodnoty mena a priezviska len nedefinované (tj NULL):

SQL kód

VYTVORIŤ TABUĽKOVÉHO KLIENTA (C_ID smallint NIE JE VŽDY VYGENEROVANÉ NULL AKO IDENTITA (ZAČAŤ S 1, ZVÝŠENIE O 1), FName varchar (40) DEFAULT NULL, LName varchar (40) DEFAULT NULL, DateReg varchar (20), PRIMÁRNY KĽÚČ (C_ID)

Predposlednou tabuľkou v našej databáze je tabuľka KOŠÍK. Jej popis:

Napíšeme príkaz, ktorý vytvorí tabuľku KOŠÍK (Nákupný košík), aj s jedinečným a prírastkovým primárnym kľúčom a priradeným k cudzím kľúčom C_ID a E_ID s Klientom a Zamestnancom:

SQL kód

VYTVORIŤ TABUĽKOVÝ KOŠÍK (BS_ID smallint NIE JE VŽDY VYGENEROVANÉ NULL AKO IDENTITA (ZAČAŤ S 1, ZVÝŠENIE O 1), C_ID INT NIE JE NULL, E_ID INT NIE JE NULL, PRIMÁRNY KĽÚČ (BS_ID))

Nakoniec posledná tabuľka v našej databáze je tabuľka NÁKUP. Jej popis:

Názov poľa Dátový typ Popis
B_IDsmallintIdentifikačné číslo nákupu
PH_IDsmallintID lekárne
PR_IDsmallintIdentifikačné číslo lieku
BS_IDvarchar (40)ID číslo nákupného košíka
cenavarchar (20)cena
Dátumvarchar (20)dátum

Napíšeme príkaz, ktorý vytvorí tabuľku NÁKUP (nákup), tiež s jedinečným a prírastkovým primárnym kľúčom a priradeným k cudzím kľúčom BS_ID, PH_ID, PR_ID k nákupnému košíku, lekárni a lieku:

SQL kód

VYTVORIŤ NÁKUP TABUĽKY (B_ID smallint NIE JE NULL VŽDY VYGENEROVANÉ AKO IDENTITA (ZAČAŤ S 1, ZVÝŠENIE O 1), BS_ID INT NIE JE NULL, PH_ID INT NIE JE NULL, PR_ID INT NIE JE NULL, DateB varchar (20) NIE JE NULL, Cena Double NOT NULL PRIMÁRNY KĽÚČ (B_ID))

A už na záver témy tvorby databázy sľúbená odbočka o dodržaní integritných obmedzení, kedy je rozhodovanie zložitejšie ako písanie príkazu. V našom príklade musí byť splnená nasledujúca podmienka: pri kúpe jednotky lieku sa musí zodpovedajúcim spôsobom znížiť hodnota množstva tohto lieku v tabuľke DOSTUPNOSŤ. Všeobecne povedané, v SQL existujú špeciálne nástroje na takéto operácie, ktoré sa nazývajú spúšťače. Ale spúšťače sú rozmarná vec: v praxi nemusia fungovať, alebo nemusia fungovať tak, ako bolo zamýšľané. Preto vývojári, kedykoľvek je to možné, hľadajú softvérové ​​nástroje na riešenie takýchto problémov, ktorých príklad je uvedený v tomto odseku.

Záverečnou časťou modelovania informačného systému je vytvorenie reálnej databázy na základe vyššie uvedeného návrhu. To zahŕňa výber vhodnej databázy, jej nasadenie a konfiguráciu, vytváranie objektov štruktúry databázy pomocou vhodných nástrojov a naplnenie databázy testovacím súborom údajov.

Na implementáciu relačnej databázy navrhovanej štruktúry v tejto práci v kurze je vybraný MS SQL Server DBMS - jeden z lídrov na modernom trhu relačných DBMS, voľne distribuovaný na vývoj alebo testovanie aplikácií a licencovaný na priemyselné použitie. Výhody MS SQL sú:

Vysoká funkčnosť;

Plná podpora pre štandard SQL a jeho rozšírenie T-SQL;

Široká dostupnosť a dostupnosť podpory;

Spoľahlivosť;

Výkon.

Prítomnosť vstavaných nástrojov na prevádzku a správu databázy.

MS SQL je lídrom v modernom systéme správy relačných databáz. Aktuálna stabilná verzia MS SQL v čase písania tohto článku bola verzia 2012. Inštalácia tohto DBMS nie je náročná. Inštalačný proces sprevádza sprievodca, ktorý si od užívateľa vypýta potrebné údaje a následne nezávisle nainštaluje databázový server, nakonfiguruje ho na optimálny výkon.

Na vytvorenie databázy v MS SQL DBMS boli použité dotazy v štandardizovanom jazyku SQL (Structured Query Language). Pri tvorbe databázy boli špecifikované vhodné dátové typy pre všetky relačné atribúty. Názvy entít a atribútov boli preložené do angličtiny, kľúčové polia sú tvorené predponou „ID_“ a príponou pozostávajúcou z názvu súvisiacej tabuľky. Tabuľka 8 ukazuje zhodu názvu entity s fyzickou tabuľkou v databáze.

Tabuľka 8

Korešpondencia názvu entity s fyzickou tabuľkou

Podstatou

Druhy dopravy

Fyzický model informačného systému v databáze je znázornený na obr. 5.

Ryža. 5. Fyzický model informačného systému

Zdrojový kód pre vytváranie všetkých databázových vzťahov je uvedený v prílohe k tejto práci.

Po vytvorení databázy sa táto naplnila vzorovým súborom údajov. Zdrojový kód požiadaviek na naplnenie databázy testovacím súborom údajov je uvedený v prílohe tejto práce.

Databázové tabuľky vytvorené na serveri sú znázornené na obr. 6.

Ryža. 6. Dátový diagram MS SQL Server

5. Vývoj databázových objektov, ktoré demonštrujú logiku domény

Aby sme demonštrovali efektívnosť databázovej prevádzkovej logiky, vytvoríme v nej a predvedieme prácu na testovacej množine údajov nasledujúcich objektov:

  • zastupovanie;

    Uložené procedúry;

    Spúšťače.

Databázové dotazy.

Sú základným nástrojom na získavanie informácií z databázy. Na písanie dotazu sa používa štandard SQL. Na ukážku napíšeme požiadavku, ktorá zobrazí zoznam turistov, ktorí si odišli oddýchnuť do hotela San Simeon Apartments, mená turistov zoradíme podľa abecedy. Žiadosť a výsledok jej vykonania sú znázornené na obr. 7.

Ryža. 7. Výsledok vykonania dotazu

zastupovanie- virtuálne databázové objekty, ktoré odrážajú údaje v určitej forme od obsahu iných objektov. Text zobrazenia je SQL dotaz na získanie údajov z jednej alebo viacerých tabuliek, iných zobrazení a výsledkov procedúr. Aby sme demonštrovali, ako logika funguje na testovacích údajoch, vytvoríme pohľad, ktorý zobrazí tabuľku poukážok a všetky dešifruje hodnoty všetkých súvisiacich kľúčových polí. Text pohľadu a výsledok jeho vykonania sú na obr. osem.

Ryža. 8. Reprezentácia a výsledok jej práce

Uložené procedúry. Ide o objekty v databáze, ktoré umožňujú ukladať do nej súbory pokynov na spracovanie a úpravu údajov. Text procedúry je napísaný v dialekte jazyka SQL pre MS SQL Server, ktorý sa nazýva Transacts SQL alebo skrátene T-SQL. Na ukážku napíšeme uloženú procedúru, ktorá nám umožní zmeniť životné náklady vo všetkých hoteloch o zadané percento. Text uloženej procedúry je znázornený na obr. deväť.

Ryža. 9. Uložená procedúra

Spúšťače. Toto je špeciálna uložená procedúra, ktorú nevolá užívateľ, ale samotný databázový server ako odpoveď na udalosť INSERT, DELETE, UPDATE v zadanej tabuľke. Spúšťače sú široko používané programátormi na automatizáciu riadenia a zmien údajov v databáze. Spúšťač spravidla funguje pre užívateľa databázy nepozorovane a prejaví sa pri zadávaní údajov, ktoré sú z pohľadu programátora chybné. Povedzme, že cestovná kancelária nepracuje s deťmi do 10 rokov. Napíšme spúšť, ktorá nedovolí zadať vek turistu pod 10 rokov. Spúšťací text je znázornený na obr. desať.

Ryža. 10. Spúšť, ktorá neumožňuje zadať vek turistu mladšieho ako 10 rokov