Úvod do štruktúrovaného dotazovacieho jazyka - SQL. Pojem relačných údajov a pod

  • 29.07.2019

V tejto kapitole vyzdvihneme a charakterizujeme hlavné triedy DBMS.

Hlavná klasifikácia DBMS je založená na použitom databázovom modeli. Podľa tohto kritéria sa rozlišuje niekoľko tried DBMS: hierarchické, sieťové, relačné, objektové a iné. Niektoré DBMS môžu podporovať viacero dátových modelov súčasne.

Skoršie DBMS ako hierarchické a sieťové DBMS majú stromovú štruktúru a sú postavené na princípe „predok – potomok“. Takéto systémy však prežili svoju užitočnosť a používajú sa čoraz menej.

Relačné DBMS nahradili hierarchické a sieťové.

Charakteristika relačnej DBMS

Prvý teoretický vývoj v oblasti relačných DBMS bol získaný už v 70-tych rokoch, v rovnakom čase sa objavili prvé prototypy relačných DBMS. Dlho sa považovalo za nemožné dosiahnuť efektívnu implementáciu takýchto systémov. Postupná akumulácia metód a algoritmov na organizovanie relačných databáz a ich správu však viedla k tomu, že už v polovici 80. rokov relačné systémy prakticky vytlačili skoré DBMS zo svetového trhu.

Relačný prístup k organizácii DBMS predpokladá existenciu súboru vzťahov (dvojrozmerných tabuliek) vzájomne prepojených. Odkaz je v tomto prípade spojenie dvoch alebo viacerých vzťahov (tabuľky). Databáza, ktorá nemá prepojenia medzi vzťahmi, má veľmi obmedzenú štruktúru a nemožno ju nazvať relačná. Dotazy do takýchto databáz vracajú tabuľku, ktorá sa môže znova zúčastniť v nasledujúcom dotaze. Údaje v niektorých tabuľkách, ako sme už povedali, súvisia s údajmi v iných tabuľkách, preto sa nazýva „relačné“.

Relačný prístup pri budovaní DBMS má množstvo výhod Baidak A.Ya., Bulgakov A.A. Moderné DBMS a ich aplikácia v energetike [Elektronický zdroj]. - Režim prístupu: http://masters. donntu.edu.ua/2010/etf/baydak/library/article2. htm. - Zagl. z obrazovky:

Prítomnosť malého súboru abstrakcií, ktoré uľahčujú modelovanie väčšiny spoločných tematických oblastí a umožňujú presné formálne definície, pričom zostávajú intuitívne;

Prítomnosť jednoduchého a zároveň výkonného matematického aparátu, založeného najmä na teórii množín a matematickej logike a poskytujúceho teoretický základ pre relačný prístup k organizovaniu databáz;

Možnosť nenavigačnej manipulácie s dátami bez nutnosti poznať špecifickú fyzickú organizáciu databáz v externej pamäti.

Relačný model má prísne teoretické opodstatnenie. Táto teória prispela k vytvoreniu deklaratívneho jazyka SQL, ktorý sa v súčasnosti stal štandardom pre definovanie a manipuláciu s relačnými databázami. Ďalšími silnými stránkami relačného modelu sú jednoduchosť, vhodnosť pre systémy spracovania online transakcií (OLTP) a dátová nezávislosť. Relačný dátový model a najmä relačný DBMS má však aj určité nevýhody.

Hlavnou nevýhodou relačnej DBMS je obmedzené použitie vlastné týmto systémom v oblastiach, ktoré vyžadujú pomerne zložité dátové štruktúry. Jedným z hlavných aspektov tradičného relačného dátového modelu je atomicita (jedinečnosť a nedeliteľnosť) dát, ktoré sú uložené v priesečníku riadkov a stĺpcov tabuľky. Takéto pravidlo bolo začlenené do základu relačnej algebry, keď bolo vyvinuté ako matematický dátový model. Špecifiká implementácie relačného modelu navyše neumožňujú adekvátne reflektovať reálne vzťahy medzi objektmi v opísanej tematickej oblasti. Tieto obmedzenia výrazne bránia efektívnej implementácii moderných aplikácií, ktoré vyžadujú trochu odlišné prístupy k organizácii údajov.

Základným princípom relačného modelu je eliminovať duplicitné polia a skupiny prostredníctvom procesu nazývaného normalizácia. Ploché normalizované tabuľky sú všestranné, ľahko pochopiteľné a teoreticky postačujúce na reprezentáciu údajov v akejkoľvek oblasti. Sú vhodné pre aplikácie na ukladanie a zobrazovanie dát v tradičných odvetviach, akými sú bankovníctvo alebo účtovné systémy, ale ich aplikácia na systémy založené na zložitejších dátových štruktúrach je často náročná. V podstate je to kvôli primitívnosti mechanizmov ukladania údajov, ktoré sú základom relačného modelu Nikitin M. Skončila sa éra relačných DBMS? [Elektronický zdroj]. - Režim prístupu: http: //www.cnews.ru/reviews/free/marketBD/articles/articles2. shtml. - Zagl. z obrazovky.

K dnešnému dňu sú známymi výrobcami relačných DBMS: ORACLE, Informix, IBM (DB2), Sybase, Microsoft (MS SQL Server), Progress a ďalší. Výrobcovia DBMS sa vo svojich produktoch zameriavajú na prácu na rôznych typoch počítačov (od sálových počítačov po notebooky) a na rôznych operačných systémoch (OS). Výrobcovia DBMS tiež neignorovali produkty, ktoré bežia na stolných počítačoch, ako sú dBase, FoxPro, Access a podobne. Tieto DBMS sú navrhnuté tak, aby fungovali na počítači a riešili lokálne problémy na jednom počítači alebo malej skupine počítačov. Údaje DBMS sa často používajú ako zrkadlový obraz malej časti celkového podnikového DBMS, aby sa minimalizovali náklady na hardvér a zdroje potrebné na riešenie malých problémov.

Rôzne DBMS bežia na rôznych operačných systémoch a hardvéri. Najznámejšie z takýchto operačných systémov sú UNIX, VAX, Solaris, Windows. V závislosti od objemu dátového úložiska, počtu používateľov pristupujúcich k dátam súčasne, zložitosti úloh, rôznych DBMS sa používajú na rôznych platformách. Napríklad Oracle DBMS na Unixe, nainštalovaný na multiprocesorovom serveri, umožňuje riešiť problémy s poskytovaním údajov stovkám tisíc používateľov Ponomarev I.S. Systémy správy databáz [Elektronický zdroj]. - Režim prístupu: http://mathmod. aspu.ru/images/File/Ponomareva/TM10_About%20BD. pdf. - S. 2.

V súčasnosti je najväčší záujem o DBMS orientované na operačný systém Windows využívajúci platformu Intel.

Relačný DBMS – DBMS, ktorý spravuje relačné databázy.

Relačný model je zameraný na organizáciu údajov vo forme dvojrozmerných tabuliek. Každá relačná tabuľka je dvojrozmerné pole a má nasledujúce vlastnosti:

    každý prvok tabuľky je jedným údajovým prvkom.

    všetky bunky v stĺpci tabuľky sú homogénne, t.j. všetky prvky v stĺpci sú rovnakého typu (číselné, znakové atď.)

    každý stĺpec má jedinečný názov

    v tabuľke nie sú žiadne rovnaké riadky

    poradie riadkov a stĺpcov môže byť ľubovoľné

Riadok tabuľky sa nazýva záznam, stĺpec sa nazýva pole.

Primárny kľúč je minimálna množina atribútov, ktorá je podmnožinou hlavičky daného vzťahu, ktorej zložená hodnota jednoznačne definuje reláciu n-tice. V praxi sa pojem primárny kľúč vzťahuje na pole alebo skupinu polí v databázovej tabuľke, ktorej hodnota (alebo kombinácia hodnôt) sa používa ako jedinečný identifikátor záznamu v tejto tabuľke. V relačnej teórii je tabuľka neusporiadaná zbierka záznamov. Jediným spôsobom, ako identifikovať konkrétny záznam v tejto tabuľke, je zadať množinu hodnôt pre jedno alebo viacero polí, ktoré sú pre daný záznam jedinečné. Odtiaľ pochádza koncept primárneho kľúča - množiny polí tabuľky, ktorých množina hodnôt je definovaná pre ľubovoľný záznam (riadok) tejto tabuľky a je odlišná pre akékoľvek dva záznamy.

Cudzí kľúč je pole tabuľky určené na uloženie hodnoty primárneho kľúča inej tabuľky s cieľom usporiadať vzťah medzi týmito tabuľkami.

Nech sú tabuľky A a B. Tabuľka A obsahuje polia a, b, c, d, z ktorých pole a je primárny kľúč. Tabuľka B obsahuje polia x, y, z. Pole y obsahuje hodnotu poľa a jedného zo záznamov tabuľky A. V tomto prípade sa pole y nazýva cudzí kľúč tabuľky A v tabuľke B.

Tento SQL dotaz vráti všetky súvisiace páry záznamov z tabuliek A a B:

vyberte * z A, B, kde A.a = B.y;

Cudzí kľúč v tabuľke môže odkazovať aj na tabuľku samotnú. V takýchto prípadoch sa hovorí o rekurzívnom cudzom kľúči. Vyžaduje sa na implementáciu stromovej štruktúry údajov v relačnej tabuľke.

DBMS podporuje automatické riadenie referenčnej integrity cudzích kľúčov.

Typy odkazov na tabuľky

Existujú tri typy vzťahov medzi tabuľkami.

Vzťah so vzťahom jeden k mnohým. Je to najčastejšie používaný typ vzťahu medzi tabuľkami. V takomto vzťahu môže každý záznam v tabuľke A zodpovedať viacerým záznamom v tabuľke B a záznamu v tabuľke B nemôže zodpovedať viac ako jeden záznam v tabuľke A. Na jednom oddelení môže napríklad pracovať viacero zamestnancov, ale žiadny zamestnanec nemôže pracovať na viacerých oddeleniach naraz. Akceptované označenie (1 - ∞).

Vzťah medzi mnohými. Pri tomto vzťahu môže jednému záznamu v tabuľke A zodpovedať niekoľko záznamov v tabuľke B a jednému záznamu v tabuľke B môže zodpovedať niekoľko záznamov v tabuľke A. Takáto schéma sa realizuje len pomocou tretej (spojovacej) tabuľky, ktorého kľúč tvoria minimálne dve polia, čo sú polia cudzieho kľúča v tabuľkách A a B. Napríklad medzi tabuľkami inšpektorov a osôb prekračujúcich hranice je vzťah definovaný vzťahom many-to-many. Jedného deklaranta môže obsluhovať viacero inšpektorov a súčasne jeden inšpektor môže obsluhovať viacero osôb. Takýto vzťah je definovaný vytvorením dvoch vzťahov typu one-to-many pre tabuľku Inspector_Declarant, ktorá musí obsahovať polia InspectorKey a DeclarantKey.

Vo vzťahu jedna k jednej môže mať záznam v tabuľke A najviac jeden priradený záznam v tabuľke B a naopak. Tento typ vzťahu sa nepoužíva príliš často, pretože takéto údaje môžu byť umiestnené v jednej tabuľke. Vzťah jedna k jednej sa používa na oddelenie veľmi širokých tabuliek alebo na oddelenie časti tabuľky z bezpečnostných dôvodov.

Funkcie DBMS.

Funkcie DBMS sú na vysokej a nízkej úrovni.

Vlastnosti na vysokej úrovni:

1. Definícia údajov - pomocou tejto funkcie sa určí, aké informácie budú v databáze uložené (typ, vlastnosti údajov a ako budú prepojené).

2. Spracovanie dát. Informácie možno spracovávať mnohými spôsobmi: vzorkovanie, filtrovanie, triedenie, kombinovanie jednej informácie s druhou, výpočet celkových hodnôt.

3. Správa údajov. Pomocou tejto funkcie určíte, kto môže vidieť údaje, opraviť ich alebo pridať nové informácie a definovať pravidlá zdieľania.

Vlastnosti nízkej úrovne:

1. Správa údajov v externej pamäti;

2. Správa vyrovnávacej pamäte RAM;

3. Riadenie transakcií;

4. Zavedenie protokolu zmien do databázy;

5. Zabezpečenie integrity a bezpečnosti databázy.

transakcie sa nazýva nedeliteľná postupnosť operácií, ktorú DBMS sleduje od začiatku do konca a v ktorej, ak sa nevykoná jedna operácia, sa celá postupnosť zruší.

denník DBMS - špeciálna databáza alebo časť hlavnej databázy, neprístupná používateľovi a slúžiaca na zaznamenávanie informácií o všetkých zmenách v databáze.

Zavedenie denníka DBMS je navrhnutý tak, aby zabezpečil spoľahlivosť uloženia v databáze v prípade zlyhania a zlyhania hardvéru, ako aj chýb v softvéri.

Integrita databázy - ide o vlastnosť databázy, čo znamená, že obsahuje úplné, konzistentné a primerane odrážajúce informácie o predmete.

Klasifikácia DBMS.

DBMS možno klasifikovať:

1. Podľa typu programu:

a. Databázové servery (napríklad MS SQL Server, InterBase (Borland)) - určené na organizáciu dátových centier v počítačových sieťach a implementáciu funkcií správy databáz vyžadovaných klientskymi programami pomocou príkazov SQL (t. j. programov, ktoré odpovedajú na dotazy);

b. DB klienti – programy, ktoré vyžadujú údaje. Ako klientske programy možno použiť PFSUBMS, tabuľkové procesory, textové procesory, e-mailové programy;

c. Plne funkčné databázy (MS Access, MS Fox Pro) je program, ktorý má pokročilé rozhranie, ktoré umožňuje vytvárať a upravovať tabuľky, zadávať údaje, vytvárať a formátovať dotazy, vytvárať zostavy a tlačiť ich.

2. Podľa dátového modelu DBMS (ako aj databázy):

a. Hierarchický - sú založené na stromovej štruktúre ukladania informácií a pripomínajú počítačový súborový systém; hlavnou nevýhodou je neschopnosť implementovať vzťah mnoho k mnohým;

b. sieť - ktorý nahradil hierarchické a netrval dlho, pretože hlavnou nevýhodou je zložitosť vývoja serióznych aplikácií. Hlavný rozdiel medzi sieťou a hierarchickou štruktúrou je v tom, že v hierarchickej štruktúre „záznam-dieťa“ má iba jedného rodiča, zatiaľ čo v sieťovom potomkovi môže mať ľubovoľný počet predkov;

c. vzťahový - ktorých údaje sú umiestnené v tabuľkách, medzi ktorými existujú určité vzťahy;

d. Objektovo orientovaný - ukladajú dáta vo forme objektov a hlavnou výhodou pri práci s nimi je, že na ne môžete aplikovať objektovo orientovaný prístup;

e. Hybridné, teda objektovo-relačné - kombinovať schopnosti relačných a objektovo orientovaných databáz. Príkladom takejto databázy je Oracle (predtým bola relačná).

3. V závislosti od umiestnenia jednotlivých častí DBMS existujú:

a. miestne - ktorého všetky časti sú umiestnené na jednom počítači;

b. siete.

Siete zahŕňajú:

- s organizáciou súborového servera;

Pri takejto organizácii sú všetky údaje umiestnené na jednom počítači, ktorý sa nazýva súborový server a ktorý je pripojený k sieti. Pri hľadaní potrebných informácií sa prenáša celý súbor vrátane množstva nadbytočných informácií. A až pri vytváraní lokálnej kópie sa nájde potrebný záznam.

- s organizáciou klient-server;

Databázový server prijme požiadavku od klienta, nájde požadovaný záznam v dátach a odošle ho klientovi. Dopyt na server je tvorený v štruktúrovanom dopytovacom jazyku SQL, preto sa databázové servery nazývajú SQL servery.

- distribuované DBMS obsahujú niekoľko desiatok a stoviek serverov umiestnených na veľkej ploche.

Hlavné ustanovenia modelu relačnej databázy.

relačná databáza databáza sa nazýva taká databáza, v ktorej sú všetky údaje usporiadané vo forme tabuliek a všetky operácie s týmito údajmi sú redukované na operácie s tabuľkami.

Vlastnosti relačných databáz:

1. Údaje sú uložené v tabuľkách, ktoré pozostávajú zo stĺpcov a riadkov;

2. Na priesečníku každého stĺpca a riadku je jedna hodnota;

3. Každý stĺpec - pole má svoj vlastný názov, ktorý slúži ako jeho názov - atribút a všetky hodnoty v jednom stĺpci sú rovnakého typu;

4. Stĺpce sú usporiadané v určitom poradí, ktoré sa nastaví pri vytváraní tabuľky, na rozdiel od riadkov, ktoré sú usporiadané v ľubovoľnom poradí. Tabuľka nesmie mať jeden riadok, ale musí mať aspoň jeden stĺpec.

Terminológia relačnej databázy:

Element relačnej databázy Prezentačný formulár
1. Databáza Stolová súprava
2. Schéma databázy Sada hlavičiek tabuľky
3. Postoj Tabuľka
4. Schéma vzťahu Riadok hlavičky stĺpca tabuľky
5. Esencia Popis vlastností objektu
6. Prívlastok Záhlavie stĺpca
7. Doména Množina platných hodnôt atribútov
8. Primárny kľúč Jedinečný identifikátor, ktorý jednoznačne identifikuje každú položku v tabuľke
9. Typ údajov Typ hodnoty prvkov v tabuľke
10. Tuple Reťazec (záznam)
11. Kardinalita Počet riadkov v tabuľke
12. Stupeň vzťahu Počet polí
13. Vzťah tela Viacnásobné relačné n-tice

Pri návrhu relačnej databázy sa údaje umiestňujú do niekoľkých tabuliek. Vzťahy medzi tabuľkami sa vytvárajú pomocou kľúčov. Pri prepájaní tabuliek sa rozlišuje hlavná a doplnková (podriadená) tabuľka.

Existujú nasledujúce typy vzťahov medzi tabuľkami:

1. Typ komunikácie 1:1 (jeden k jednému) znamená, že každému záznamu v hlavnej tabuľke zodpovedá jeden záznam v dodatkovej tabuľke a naopak, každému záznamu v dodatkovej tabuľke zodpovedá jeden záznam v hlavnej tabuľke.

2. Vzťah tvaru 1:M (jeden k mnohým) znamená, že každému záznamu v hlavnej tabuľke zodpovedá niekoľko záznamov v dodatkovej tabuľke a naopak, každému záznamu v dodatkovej tabuľke zodpovedá iba jeden záznam v hlavnej tabuľke.

3. Vzťah tvaru M: 1 (veľa k jednej) znamená, že jeden alebo viac záznamov v hlavnej tabuľke zodpovedá iba jednému záznamu v doplnkovej tabuľke.

4. Vzťah tvaru M:M (many-to-many) - je to vtedy, keď niekoľko záznamov hlavnej tabuľky zodpovedá viacerým záznamom doplnkovej tabuľky a naopak.

5. Základné komponenty MS Access.

Hlavné komponenty (objekty) MS Access sú:

1. Tabuľky;

3. Tvary;

4. Správy;

5. Makrá:

Moduly.

Tabuľka je objekt určený na ukladanie údajov vo forme záznamov (riadkov) a polí (stĺpcov). Každé pole obsahuje samostatnú časť záznamu a každá tabuľka sa používa na uloženie informácií o jednom konkrétnom probléme.

Žiadosť - otázka o údajoch uložených v tabuľkách, prípadne pokyn na výber záznamov, ktoré sa majú zmeniť.

Formulár je objekt, do ktorého môžete umiestniť ovládacie prvky na zadávanie, zobrazovanie a zmenu údajov v poliach tabuliek.

správa je objekt, ktorý umožňuje prezentovať užívateľom definované informácie v určitej forme, prezerať a tlačiť.

Makro - jedno alebo viac makier, ktoré možno použiť na automatizáciu konkrétnej úlohy. Makro je základným stavebným kameňom makra; samostatná inštrukcia, ktorú možno kombinovať s inými makrami na automatizáciu úlohy.

modul - súbor popisov, návodov a postupov, uložených pod jedným názvom. V MS Access existujú tri typy modulov: modul formulára, modul zostavy a všeobecný modul. Moduly Formuláre a zostavy obsahujú lokálny program pre formuláre a zostavy.

6. Tabuľky v MS Access.

MS Access má nasledujúce metódy na vytváranie tabuliek:

1. Tabuľkový režim;

2. Konštruktér;

3. Sprievodca tabuľkou;

4. Importné tabuľky;

5. Vzťah s tabuľkami.

AT tabuľkový režim údaje sa zadávajú do prázdnej tabuľky. Na zadávanie údajov je k dispozícii tabuľka s 30 poliami. Po jeho uložení sa MS Access sám rozhodne, aký dátový typ priradí jednotlivým poliam.

Konštruktér poskytuje možnosť nezávisle vytvárať polia, vyberať typy údajov pre polia, veľkosti polí a nastavovať vlastnosti polí.

Na definovanie poľa v režime Konštruktér sú dané:

1. Názov poľa , ktorý v každej tabuľke musí mať jedinečný názov, ktorý je kombináciou písmen, číslic, medzier a špeciálnych znakov, okrem „ .!” “ ". Maximálna dĺžka názvu je 64 znakov.

2. Dátový typ definuje typ a rozsah povolených hodnôt, ako aj množstvo pamäte alokovanej pre toto pole.

Typy údajov MS Access

Dátový typ Popis
Text Text a čísla, ako sú mená a adresy, telefónne čísla, poštové smerovacie čísla (do 255 znakov).
Memo pole Dlhý text a čísla, ako sú komentáre a vysvetlivky (až 64 000 znakov).
Číselné Všeobecný typ údajov pre číselné údaje, ktoré možno použiť na matematické výpočty, s výnimkou peňažných výpočtov.
Dátum Čas Hodnoty dátumu a času. Používateľ si môže vybrať štandardné tvary alebo vytvoriť vlastný formát.
Peňažné Peňažné hodnoty. Pre peňažné výpočty sa neodporúča používať číselné dátové typy, pretože môžu byť vo výpočtoch zaokrúhlené. Hodnoty meny sú vždy na výstupe s určeným počtom desatinných miest za desatinnou čiarkou.
Počítadlo Automaticky priradené poradové čísla. Číslovanie začína od 1. Pole počítadla je užitočné na vytvorenie kľúča. Toto pole je kompatibilné s poľom číselného typu, ktoré má vlastnosť Veľkosť nastavenú na Dlhé celé číslo.
Logické Hodnoty Yes/No, True/False, On/Off, jedna z dvoch možných hodnôt.
Pole objektu OLE Objekty vytvorené v iných programoch, ktoré podporujú protokol OLE.

3. Najdôležitejšie vlastnosti poľa sú:

- Veľkosť poľa nastavuje maximálnu veľkosť údajov uložených v poli.

- Formát poľa je formát zobrazenia daného dátového typu a špecifikuje pravidlá pre prezentáciu dát pri ich zobrazení na obrazovke alebo pri tlači.

- Označenie poľa nastavuje text, ktorý sa zobrazuje v tabuľkách, formulároch, zostavách.

- Hodnotová podmienka umožňuje ovládať vstup, nastavuje obmedzenia na vstupné hodnoty, ak sú porušené podmienky, zakazuje vstup a zobrazuje text určený vlastnosťou Error message;

- Chybná správa nastavuje text správy zobrazenej na obrazovke pri porušení obmedzení stanovených Podmienkou hodnoty.

Typ ovládania– vlastnosť, ktorá sa nastavuje na karte Substitúcia v okne návrhára tabuľky. Táto vlastnosť určuje, či sa pole bude zobrazovať v tabuľke a v akej forme – ako pole alebo rozbaľovacie pole.

Jedinečný (primárny) kľúč tabuľky môžu byť jednoduché alebo zložené, vrátane niekoľkých polí.

Na definovanie kľúča sa vyberú polia, ktoré tvoria kľúč, a stlačí sa tlačidlo na paneli nástrojov kľúčové pole alebo sa príkaz vykoná Upraviť / kľúčové pole.


©2015-2019 stránka
Všetky práva patria ich autorom. Táto stránka si nenárokuje autorstvo, ale poskytuje bezplatné používanie.
Dátum vytvorenia stránky: 2016-02-16

Náčrt lekcie

Predmet: Databázy. Základné databázové objekty. DBMS.

Účel lekcie:

  • 1. Kognitívne - oboznámiť študentov s:
    • definícia databázy a DBMS,
    • ich hlavné typy (modely),
    • Rozhranie programu Ms ACCESS,
    • hlavné objekty databázy,
    • rôzne spôsoby vytvárania tabuliek.
  • 2. Vývojové
    • Naučte sa vytvárať analógie, zdôrazňovať hlavnú vec, nastavovať a riešiť problémy.
  • 3. Vzdelávacie
    • Kultivujte presnosť, pozornosť, zdvorilosť a disciplínu.

Plán lekcie:

  • 1. Aktualizácia základných poznatkov.
  • 2. Spustenie programov na vykonanie;
  • 3. Zadávanie údajov do tabuľky.
  • 2. Definícia databázy a DBMS.
  • 3. Typy DBMS.
  • 4. Relačný DBMS. Tabuľka, záznam, pole.
  • 5. Samostatná práca na počítači.
  • 6. Konsolidácia nového materiálu.
  • 7. Výsledky vyučovacej hodiny.
  • 1 Definícia databázy a DBMS

    Databáza (DB) je súbor vzájomne prepojených údajov, ktoré sú uložené vo vonkajšej pamäti počítača a sú organizované podľa určitých pravidiel, z ktorých vyplývajú všeobecné princípy pre popis, ukladanie a spracovanie údajov. Informácie, ktoré sú uložené v databáze, sa spravidla vzťahujú na určitú špecifickú oblasť. Napríklad databázy:

    • knižničný fond,
    • personál podniku,
    • legislatívne akty trestného práva,
    • modernej hudby.

    Databázy sú rozdelené na vecné a dokumentárne. Faktické databázy obsahujú krátke informácie o objektoch, predložené v presne definovanom formáte (1-3), napríklad Autor, názov, rok vydania... Dokumentárne databázy obsahujú informácie rôzneho typu: textové, zvukové, grafické, multimediálne (4 , 5). Napríklad databáza modernej hudby môže obsahovať texty a poznámky piesní, fotografie autorov, zvukové nahrávky, videoklipy. Samotná databáza obsahuje iba informácie - "Informačný sklad" - a nemôže slúžiť požiadavkám používateľov na vyhľadávanie a spracovanie informácií. Používateľovi poskytuje služby SYSTÉM SPRÁVY DATABÁZY. DBMS - Jedná sa o softvér, ktorý vám umožňuje vytvárať databázu, aktualizovať a dopĺňať informácie, poskytovať flexibilný prístup k informáciám. DBMS vytvára na obrazovke počítača určité prostredie pre prácu používateľa (rozhranie) a má určité režimy prevádzky a systém príkazov. Práve na základe DBMS sa vytvárajú a fungujú systémy vyhľadávania informácií (WWW).

    3. Typy DBMS

    Existujú 3 spôsoby usporiadania informácií v databáze a prepojenia medzi nimi:

    • Hierarchický (vo forme stromu),
    • sieť,
    • Relačný.

    Hierarchický. Existuje prísna podriadenosť prvkov: jeden hlavný, ostatné sú podriadené. Napríklad adresárový systém na disku. Sieťová databáza je flexibilnejšia: nie je tam žiadny explicitný hlavný prvok a existuje možnosť vytvorenia horizontálnych prepojení. Napríklad organizovanie informácií na internete (WWW). Najbežnejšie sú relačné databázy.

    4. Relačný DBMS. Tabuľka, záznam, pole.

    Relačný (z anglického „relation“ - vzťah) je databáza, ktorá obsahuje informácie usporiadané vo forme obdĺžnikovej tabuľky. Každý riadok tabuľky obsahuje informácie o jednom konkrétnom databázovom objekte (kniha, zamestnanec, produkt) a každý stĺpec obsahuje špecifickú charakteristiku tohto objektu (priezvisko, titul, cena). Riadky takejto tabuľky sa nazývajú záznamy, stĺpce sa nazývajú polia. Každý záznam sa musí od druhého líšiť hodnotou aspoň jedného poľa, ktoré sa nazýva kľúč. Kľúčové pole je pole alebo skupina polí, ktoré jednoznačne identifikujú záznam. Napríklad osobné číslo zamestnanca, kód produktu, číslo vozidla. Číslo_tabuľky Celé meno Dátum_narodenia Dátum_prijatia Pozícia Plat 001< Иванов И.И. 12.05.65 1.02.80 директор 1000 002 Петров П.П. 30.10.75 2.03.95 бугалтер 500 003 Сидоров С.С 4.01.81 4.06.00 исполнитель 100 Каждое поле имеет свой формат и тип. Реальные БД состоят, как правило, из нескольких таблиц, связанных между собой каким-нибудь полем и, при запросе к такой БД можно использовать информацию из разных таблиц. Hlavné objekty DB:

    • Tabuľky sú hlavné databázové objekty, v ktorých sú uložené informácie,
    • Dotazy – určené na výber požadovaných údajov z jednej alebo viacerých súvisiacich tabuliek.
    • Formuláre – určené na pohodlné zadávanie, prezeranie a úpravu súvisiacich údajov.
    • Reporty – generovanie údajov v prehľadnej forme a v prípade potreby ich tlač.

    5. Samostatná práca na počítači

    Otvorte si prezentáciu „Databázy a DBMS“ na sieťovom disku v priečinku „DB ÚLOHY“, prečítajte si ju a písomne ​​odpovedzte na nasledujúce otázky:

    • 1. Aký je hlavný účel databázy?
    • 2. Podľa akých kritérií sú databázy klasifikované? Uveďte kritérium a typy podľa tohto kritéria.
    • 3. Čo je kľúčové pole v databáze?
    • 4. Čo je hlavným prvkom databázy?
    • 5. Aké operácie možno vykonávať pomocou DBMS s databázou?
    • 6. Základné dátové typy v DBMS tabuľkách.

    6. Zhrnutie lekcie

    V tejto lekcii ste sa zoznámili s databázami, ich účelom, oblasťami použitia, typmi, modelmi DBMS.

    Praktická časť

    Vytvorenie databázy. Zadávanie a formátovanie údajov

    • 1. Zapnite počítač. Stiahnite si ACCESS DBMS. Najprv musíte vytvoriť novú databázu.
    • 2. Vykonajte nasledujúcu postupnosť akcií: v ponuke Súbor vyberte príkaz Nový. Názov súboru: skaz.mdb. OK. Zobrazí sa dialógové okno Databáza.
    • 3. Pozorne si prečítajte účel tlačidiel na paneli nástrojov pomalým pohybom kurzora myši nad tlačidlami.
    • 4. Potom vytvorte tabuľku nasledujúcim spôsobom: Tabuľka/Vytvoriť/Nová tabuľka.

    Vytvorenie tabuľky, teda určenie polí zahrnutých v tabuľke, sa vykonáva vyplnením špeciálnej tabuľky: Pole Typ údajov Popis

    • 5. Vyplňte takúto tabuľku tak, že do nej zadáte nasledujúce údaje:

    Pole Typ údajov Popis # Počítadlo Znak Text Profesia Text Špeciálne funkcie Text Hrdina Logický Dobrá alebo zlá postava

    • 6. Pole # je voliteľné, zadávame ho, aby sme definovali pole kľúča, keďže každá tabuľka musí mať kľúč.
    • 7. Vytvorenú tabuľku je potrebné uložiť a pomenovať ju pomocou príkazov: Súbor/Uložiť ako..., Názov tabuľky: "Znak", OK.
    • 8. Zadajte informácie do tabuľky Tabuľka/"Znak"/Otvoriť a zadajte údaje obvyklým spôsobom, napríklad:

    Nie Postava Povolanie špeciálne funkcie hrdina

    • 1 Pinocchio drevený muž dlhý nos Áno
    • 2 Mlynček na organy Papa Carlo Áno
    • 3 Karabas Barabas režisér bábkového divadla dlhá brada siahajúca až po podlahu č
    • 4 Fox Alice Fraudster chromý na jednu nohu č
    • 5 Cat Basilio Podvodník slepý na obe oči č
    • 6 Malvínska divadelná umelkyňa dievča s modrými vlasmi Áno
    • 7 Duremar Pharmacist charakteristická vôňa bahna č
    • 8 Tortilla strážca korytnačky zlatého kľúča Áno
    • 9. Pomocou myši zvýraznite:
      • a) záznam 5,
      • b) záznam 3,
      • c) z tretieho do siedmeho záznamu. Zrušte výber.
      • d) Označte všetky položky. Zrušte výber.
      • e) Vyberte pole „Znak“.
      • f) Súčasne vyberte polia: "Profesia", "Zvláštne znamenia" a "Hrdina", zrušte výber.
      • g) Vyberte všetky polia. Môžete to urobiť pomocou myši alebo z ponuky Upraviť vyberte príkaz Vybrať všetky záznamy.
    • 10. Zrušte výber.
    • 11. Zvýraznite:
      • a) V poli „Zvláštne značky“ označte šiesty záznam.
      • b) V poli „Znak“ vyberte štvrtý až šiesty záznam.
      • c) Bez uvoľnenia tlačidla myši označte rovnaké položky v poliach „Špeciálne znaky“ a „Hrdina“.
    • 12. Zrušte výber.
    • 13. Vyberte celú tabuľku.
    • 14. Zrušte výber.
    • 15. Zmeňte šírku každého stĺpca tak, aby bola šírka stĺpcov minimálna, ale aby bol viditeľný celý text.

    Môžete to urobiť pomocou myši, rozbalením stĺpcov alebo nasledujúcim spôsobom. Vyberte požadovaný stĺpec a stlačte pravé tlačidlo myši, v kontextovej ponuke vyberte príkaz "Šírka stĺpca"; v okne, ktoré sa otvorí, kliknite na položku Prispôsobiť šírke údajov. Urobte to isté pre všetky polia. Výšku čiary je možné zmeniť rovnakým spôsobom pomocou myši alebo v menu Formát príkazom Výška čiary. Navyše stačí upraviť jeden riadok, výška zvyšných riadkov sa zmení automaticky.

    • 16. Zmeňte výšku čiary akýmkoľvek spôsobom a nastavte ju na 30.
    • 17. Zmeňte písmo tabuľky na Arial Cyr, veľkosť písma 14, tučné.

    Písmo môžete zmeniť nasledovne: presuňte ukazovateľ myši mimo tabuľky a stlačte ľavé tlačidlo myši, z kontextovej ponuky vyberte položku Písmo alebo vyberte príkaz Písmo z ponuky Upraviť na paneli nástrojov.

    • 18. Zmeňte písmo textu na Times New Roman Cyr, veľkosť písma 10.
    • 19. Zmeňte šírku okrajov.
      • a) Urobte stĺpec "Znak" široký 20.
      • b) Stĺpec „Zvláštne značky“ so šírkou 25.

    Môžete vidieť, že text v týchto poliach je vytlačený na dvoch riadkoch.

    • 20. Upravte šírku stĺpcov tak, aby text úplne sedel.
    • 21. Zoraďte tabuľku podľa poľa „Znak“ v opačnom abecednom poradí.

    Dá sa to urobiť takto. Zvýraznite pole Znak a kliknite na tlačidlo Zoradiť zostupne na paneli s nástrojmi.

    • 22. Vráťte stôl do pôvodného stavu.

    Týmto článkom začíname nový cyklus venovaný databázam, moderným technológiám na prístup k údajom a ich spracovanie. Počas tohto cyklu plánujeme zvážiť najpopulárnejšie desktopové a serverové systémy na správu databáz (DBMS), mechanizmy prístupu k údajom (OLD DB, ADO, BDE atď.) a nástroje pre prácu s databázami (administratívne nástroje, generátory zostáv, grafické nástroje prezentácia údajov). Okrem toho plánujeme venovať pozornosť metódam zverejňovania údajov na internete, ako aj tak populárnym metódam spracovania a uchovávania údajov, akými sú OLAP (On-Line Analytical Processing) a vytváranie dátových skladov (Data Warehousing).

    V tomto článku sa pozrieme na základné pojmy a princípy, ktoré sú základom systémov správy databáz. Preberieme relačný dátový model, koncept referenčnej integrity a princípy normalizácie dát, ako aj nástroje na návrh dát. Potom popíšeme, čo sú DBMS, aké objekty môžu byť obsiahnuté v databázach a ako sa na tieto objekty robia dotazy.

    Základné koncepty relačnej databázy

    Začnime základnými pojmami DBMS a krátkym úvodom do teórie relačných databáz – dnes najpopulárnejšieho spôsobu ukladania dát.

    Relačný dátový model

    Relačný dátový model navrhol Dr. E.F.Codd, známy databázový výskumník, v roku 1969, keď bol zamestnancom IBM. Prvýkrát boli hlavné koncepty tohto modelu publikované v roku 1970 „A Relational Model of Data for Large Shared Data Banks“, CACM, 1970, 13 N 6).

    Relačná databáza je dátový sklad obsahujúci množinu dvojrozmerných tabuliek. Súbor nástrojov na správu takéhoto úložiska je tzv systém správy relačných databáz (RDBMS). RDBMS môže obsahovať pomocné programy, aplikácie, služby, knižnice, tvorcov aplikácií a ďalšie komponenty.

    Každá tabuľka relačnej databázy pozostáva z linky(tiež nazývaný záznamy) a stĺpci(tiež nazývaný poliach). V tomto cykle budeme používať obe dvojice pojmov.

    Riadky tabuľky obsahujú informácie o skutočnostiach v nej prezentovaných (alebo dokumentoch alebo ľuďoch, jedným slovom, o objektoch rovnakého typu). Na priesečníku stĺpca a riadku sú v tabuľke údajov obsiahnuté špecifické hodnoty.

    Údaje v tabuľkách sa riadia nasledujúcimi zásadami:

    1. Každá hodnota obsiahnutá v priesečníku riadka a stĺpca musí byť atómový(teda nerozdelené do viacerých hodnôt).
    2. Hodnoty údajov v rovnakom stĺpci musia byť rovnakého typu, ktorý je k dispozícii na použitie v danom DBMS.
    3. Každý záznam v tabuľke je jedinečný, to znamená, že v tabuľke nie sú dva záznamy s presne rovnakou sadou hodnôt pre jeho polia.
    4. Každé pole má jedinečný názov.
    5. Poradie polí v tabuľke nie je podstatné.
    6. Poradie záznamov je tiež irelevantné.

    Napriek skutočnosti, že riadky tabuľky sa považujú za neusporiadané, každý systém správy databáz vám umožňuje triediť riadky a stĺpce vo výberoch podľa potreby používateľa.

    Pretože poradie stĺpcov v tabuľke nie je dôležité, odkazuje sa na ne podľa názvu a tieto názvy sú jedinečné pre danú tabuľku (ale nemusia byť jedinečné v celej databáze).

    Takže teraz vieme, že relačné databázy sa skladajú z tabuliek. Na ilustráciu niektorých teoretických bodov a na vytvorenie príkladov si musíme vybrať databázu. Aby sme sa vyhli opätovnému objavovaniu kolesa, použijeme databázu NorthWind, ktorá sa dodáva s Microsoft SQL Server a Microsoft Access.

    Teraz sa pozrime na vzťahy medzi tabuľkami.

    Kľúče a odkazy

    Pozrime sa na úryvok tabuľky Zákazníci z databázy NorthWind (odstránili sme z nej polia, ktoré sú nepodstatné pre ilustráciu vzťahov medzi tabuľkami).

    Keďže riadky v tabuľke nie sú zoradené, potrebujeme stĺpec (alebo množinu viacerých stĺpcov), aby sme mohli jednoznačne identifikovať každý riadok. Takýto stĺpec (alebo množina stĺpcov) sa nazýva primárny kľúč (primárny kľúč). Primárny kľúč každej tabuľky musí obsahovať jedinečné neprázdne hodnoty pre každý riadok.

    Ak má primárny kľúč viac ako jeden stĺpec, volá sa zložený primárny kľúč (zložený primárny kľúč).

    Typická databáza zvyčajne pozostáva z niekoľkých súvisiacich tabuliek. Fragment tabuľky Objednávky (objednávky).

    Pole CustomerID tejto tabuľky obsahuje ID zákazníka, ktorý zadal túto objednávku. Ak chceme poznať názov spoločnosti, ktorá zadala objednávku, musíme vyhľadať rovnakú hodnotu ID zákazníka v poli CustomerID tabuľky Customers a prečítať hodnotu poľa CompanyName v nájdenom riadku. Inými slovami, potrebujeme prepojiť dve tabuľky, Zákazníci a Objednávky, pomocou poľa CustomerID. Zavolá sa stĺpec, ktorý ukazuje na položku v inej tabuľke, ktorá je priradená k tejto položke cudzí kľúč (cudzí kľúč). Ako vidíte, v prípade tabuľky Objednávky je cudzím kľúčom stĺpec CustomerID (obr. 1).

    Inými slovami, cudzí kľúč je stĺpec alebo množina stĺpcov, ktorých hodnoty sa zhodujú s existujúcimi hodnotami primárneho kľúča inej tabuľky.

    Tento vzťah medzi tabuľkami sa nazýva komunikácia (vzťah). Vzťah medzi dvoma tabuľkami sa vytvorí priradením hodnôt cudzieho kľúča jednej tabuľky k hodnotám primárneho kľúča druhej tabuľky.

    Ak každý zákazník v tabuľke Zákazníci môže zadať iba jednu objednávku, hovorí sa, že tieto dve tabuľky súvisia jeden na jedného (vzťah jeden k jednému). Ak každý zákazník môže zadať nulu, jednu alebo veľa objednávok v tabuľke Zákazníci, tieto dve tabuľky sa považujú za súvisiace jeden k mnohým (vzťah jeden k mnohým) alebo pomer master-detail. Podobné vzťahy medzi tabuľkami sa používajú najčastejšie. V tomto prípade sa volá tabuľka obsahujúca cudzí kľúč podrobná tabuľka a zavolá sa tabuľka obsahujúca primárny kľúč, ktorý definuje možné hodnoty cudzieho kľúča majstrovský stôl.

    Nazýva sa skupina súvisiacich tabuliek schémy Databáza ( databázová schéma). Informácie o tabuľkách, ich stĺpcoch (názvy, typ údajov, dĺžka poľa), primárnych a cudzích kľúčoch, ako aj iných databázových objektoch, sú tzv. metaúdaje (metaúdaje).

    Akákoľvek manipulácia s údajmi v databázach, ako je výber, vkladanie, mazanie, aktualizácia údajov, zmena alebo výber metadát, sa nazýva žiadosť do databázy ( dopyt). Typicky sú dotazy formulované v nejakom jazyku, ktorý môže byť buď štandardný pre rôzne DBMS, alebo môže závisieť od konkrétneho DBMS.

    Referenčná integrita

    Vyššie sme už povedali, že primárny kľúč akejkoľvek tabuľky musí obsahovať jedinečné neprázdne hodnoty pre túto tabuľku. Toto vyhlásenie je jedným z pravidiel referenčná integrita (referenčná integrita). Niektoré (ale v žiadnom prípade nie všetky) DBMS môžu kontrolovať jedinečnosť primárnych kľúčov. Ak DBMS kontroluje jedinečnosť primárnych kľúčov, potom pri pokuse o priradenie hodnoty primárnemu kľúču, ktorý už existuje v inom zázname, DBMS vygeneruje diagnostickú správu, ktorá zvyčajne obsahuje frázu porušenie primárneho kľúča. Táto správa môže byť následne odovzdaná aplikácii, s ktorou koncový používateľ manipuluje s údajmi.

    Ak spolu súvisia dve tabuľky master-detail, externý kľúč detail- tabuľka by mala obsahovať iba tie hodnoty, ktoré už patria medzi hodnoty primárneho kľúča majster- tabuľky. Ak správnosť hodnôt cudzieho kľúča nie je kontrolovaná DBMS, môžeme hovoriť o porušení referenčnej integrity. V tomto prípade, ak vymažeme položku z tabuľky Zákazníci, ku ktorej je priradený aspoň jeden detail- v tabuľke Objednávky, to spôsobí, že tabuľka Objednávky bude obsahovať záznamy o objednávkach zadaných niekým neznámym. Ak DBMS kontroluje správnosť hodnôt cudzieho kľúča, potom pri pokuse o priradenie cudzieho kľúča hodnotu, ktorá nie je medzi hodnotami primárnych kľúčov hlavnej tabuľky, alebo pri odstraňovaní alebo úprave položiek hlavnej tabuľky, ktoré porušujú referenčnú integritu , DBMS vygeneruje diagnostickú správu, ktorá zvyčajne obsahuje frázu porušenie cudzieho kľúča, ktoré možno neskôr odovzdať používateľskej aplikácii.

    Väčšina moderných DBMS, ako napríklad Microsoft Access 97, Microsoft Access 2000 a Microsoft SQL Server 7.0, je schopná vynútiť pravidlá referenčnej integrity, ak sú definované v databáze. Na tento účel takéto DBMS využívajú rôzne databázové objekty (rozoberieme si ich trochu neskôr). V tomto prípade budú všetky pokusy o porušenie pravidiel referenčnej integrity potlačené súčasným generovaním diagnostických správ alebo výnimiek ( databázové výnimky).

    Úvod do normalizácie údajov

    Proces návrhu údajov je definovanie metadát v súlade s úlohami informačného systému, v ktorom sa budúca databáza bude používať. Podrobnosti o tom, ako vykonávať analýzu domény, vytvárať diagramy vzťahov medzi entitami ( ERD - entitno-relačné diagramy) a dátové modely sú mimo rozsahu tohto cyklu. Záujemcovia o túto problematiku môžu odkázať napríklad na knihu C. J. Date „Úvod do databázových systémov“ („Dialectics“, Kyiv, 1998).

    V tomto článku si rozoberieme len jeden z hlavných princípov návrhu dát – princíp normalizácie.

    Normalizácia je proces reorganizácie údajov odstránením opakujúcich sa skupín a iných nezrovnalostí v ukladaní údajov, aby sa tabuľky dostali do formy, ktorá umožňuje konzistentnú a správnu úpravu údajov.

    Teória normalizácie je založená na koncepte normálnych foriem. O tabuľke sa hovorí, že je v danej normálnej forme, ak spĺňa určitý súbor požiadaviek. Teoreticky existuje päť normálnych foriem, ale v praxi sa bežne používajú iba prvé tri. Navyše, prvé dve normálne formy sú v podstate medzikrokmi na uvedenie databázy do tretej normálnej formy.

    Prvá normálna forma

    Ilustrujme proces normalizácie na príklade s použitím údajov z databázy NorthWind. Predpokladajme, že všetky objednané produkty zaevidujeme v nasledujúcej tabuľke. Štruktúra tejto tabuľky vyzerá (obr. 2).

    Aby tabuľka zodpovedala prvej normálnej forme, všetky jej hodnoty polí musia byť atómové a

    všetky položky sú jedinečné. Preto je každá relačná tabuľka, vrátane tabuľky OrderedProducts, podľa definície už v prvej normálnej forme.

    Táto tabuľka však obsahuje nadbytočné údaje, napríklad rovnaké informácie o zákazníkovi sa opakujú v zázname pre každý objednaný produkt. Redundancia údajov má za následok anomálie modifikácie údajov – problémy, ktoré sa vyskytujú pri pridávaní, úprave alebo odstraňovaní záznamov. Napríklad pri úprave údajov v tabuľke OrderedProducts sa môžu vyskytnúť nasledujúce problémy:

    • Adresa konkrétneho zákazníka môže byť obsiahnutá v databáze len vtedy, keď si zákazník objednal aspoň jeden produkt.
    • Vymazaním záznamu o objednanom produkte sa súčasne vymažú informácie o samotnej objednávke a zákazníkovi, ktorý ju zadal.
    • Ak, nedajbože, zákazník zmení adresu, budú musieť byť aktualizované všetky záznamy o produktoch, ktoré si objednal.

    Niektoré z týchto problémov možno vyriešiť prenesením databázy do druhá normálna forma.

    Druhá normálna forma

    Hovorí sa, že relačná tabuľka je in druhá normálna forma ak je v prvej normálnej forme a jeho nekľúčové polia úplne závislý z celého primárneho kľúča.

    Tabuľka OrderedProducts je v prvej normálnej forme, ale nie v druhej normálnej forme, pretože polia CustomerID, Address a OrderDate závisia iba od poľa OrderID, ktoré je súčasťou zloženého primárneho kľúča (OrderID, ProductID).

    Ak chcete zmeniť z prvej normálnej formy na druhú normálnu formu, postupujte takto:

    1. Určte, na ktoré časti možno primárny kľúč rozdeliť, aby niektoré nekľúčové polia záviseli od jednej z týchto častí ( tieto časti nemusia pozostávať z jedného stĺpca!).
    2. Vytvorte novú tabuľku pre každú takúto kľúčovú časť a skupinu polí, ktoré sú na nej závislé, a presuňte ich do tejto tabuľky. Časť pôvodného primárneho kľúča sa potom stane primárnym kľúčom novej tabuľky.
    3. Odstráňte polia z pôvodnej tabuľky, ktoré boli presunuté do tabuliek iných ako tie, ktoré sa stanú cudzími kľúčmi.

    Napríklad na konverziu tabuľky OrderedProducts do druhej normálnej formy je potrebné presunúť polia CustomerID, Address a OrderDate do novej tabuľky (nazvime ju OrdersInfo), pričom pole OrderID sa stane primárnym kľúčom novej tabuľky (obr. 3).

    Vo výsledku budú nové tabuľky vyzerať takto. Avšak tabuľky, ktoré sú v druhej normálnej forme, ale nie v tretej normálnej forme, stále obsahujú anomálie modifikácie údajov. Uvádzame ich, napríklad pre tabuľku OrdersInfo:

    • Adresa konkrétneho zákazníka môže byť stále obsiahnutá v databáze len vtedy, keď si zákazník objednal aspoň jeden produkt.
    • Odstránením položky objednávky v tabuľke OrdersInfo sa odstráni položka zákazníka.
    • Ak zákazník zmenil adresu, bude potrebné aktualizovať niekoľko záznamov (aj keď zvyčajne je tam menej záznamov ako v predchádzajúcom prípade).

    Tieto anomálie môžu byť odstránené tým, že prejdete na tretia normálna forma.

    tretia normálna forma

    Hovorí sa, že relačná tabuľka je in tretia normálna forma ak je v druhej normálnej forme a všetky jeho nekľúčové polia závisia iba od primárneho kľúča.

    Tabuľka OrderDetails je už v tretej normálnej forme. Nekľúčové pole Množstvo je úplne závislé od zloženého primárneho kľúča (ID objednávky, ID produktu). Tabuľka OrdersInfo však nie je v tretej normálnej forme, pretože obsahuje závislosť medzi nekľúčovými poľami (tzv. tranzitívna závislosť- tranzitívna závislosť) - Pole Adresa závisí od poľa CustomerID.

    Ak chcete zmeniť druhú normálnu formu na tretiu normálnu formu, postupujte takto:

    • Definujte všetky polia (alebo skupiny polí), od ktorých závisia ostatné polia.
    • Vytvorte novú tabuľku pre každé takéto pole (alebo skupinu polí) a skupinu polí, ktoré na ňom závisia, a presuňte ich do tejto tabuľky. Pole (alebo skupina polí), od ktorých závisia všetky ostatné presunuté polia, sa potom stane primárnym kľúčom novej tabuľky.
    • Odstráňte presunuté polia z pôvodnej tabuľky a ponechajte iba tie, ktoré sa stanú cudzími kľúčmi.

    Aby sa tabuľka OrdersInfo dostala do tretej normálnej podoby, vytvorte novú tabuľku Customers a presuňte do nej polia CustomerID a Address. Zo zdrojovej tabuľky vymažeme pole Adresa, pole CustomerID ponecháme – teraz je to cudzí kľúč (obr. 4).

    Takže po prenesení pôvodnej tabuľky do tretej normálnej formy sú tri tabuľky - Zákazníci, Objednávky a Podrobnosti objednávky.

    Výhody normalizácie

    Normalizácia odstraňuje redundanciu údajov, čo umožňuje znížiť množstvo uložených údajov a zbaviť sa vyššie popísaných anomálií ich zmeny. Napríklad po konverzii databázy diskutovanej vyššie do tretej normálnej formy sú zrejmé nasledujúce zlepšenia:

    • Údaje o adrese zákazníka môžu byť uložené v databáze, aj keď ide len o potenciálneho zákazníka, ktorý ešte nezadal žiadnu objednávku.
    • Objednané informácie o produkte je možné vymazať bez obáv z vymazania údajov zákazníka a objednávky.

    Zmena adresy zákazníka alebo dátumu registrácie objednávky teraz vyžaduje zmenu iba jedného záznamu.

    Ako sú navrhnuté databázy

    Moderné DBMS zvyčajne obsahujú nástroje, ktoré vám umožňujú vytvárať tabuľky a kľúče. Existujú aj nástroje dodávané oddelene od DBMS (a dokonca slúžiace niekoľkým rôznym DBMS súčasne), ktoré vám umožňujú vytvárať tabuľky, kľúče a vzťahy.

    Ďalším spôsobom vytvárania tabuliek, kľúčov a vzťahov v databáze je napísanie takzvaného DDL skriptu (DDL – Data Definition Language; povieme si o ňom trochu neskôr).

    Nakoniec je tu ešte jeden spôsob, ktorý sa stáva čoraz populárnejším – tým je použitie špeciálnych nástrojov nazývaných CASE-tools (CASE znamená Computer-Aided System Engineering). Existuje niekoľko typov nástrojov CASE, ale najčastejšie používanými nástrojmi na vytváranie databáz sú diagramy entít a vzťahov (E/R diagramy). Pomocou týchto nástrojov, tzv logické dátový model, ktorý popisuje skutočnosti a objekty, ktoré sa v ňom majú registrovať (v takýchto modeloch sa prototypy tabuliek nazývajú entity a polia sú ich atribútmi). fyzické dátový model pre špecifický DBMS, ktorý definuje všetky tabuľky, polia a iné databázové objekty. Potom môžete vygenerovať buď samotnú databázu alebo skript DDL na jej vytvorenie.

    Zoznam momentálne najpopulárnejších nástrojov CASE.

    Tabuľky a polia

    Tabuľky sú podporované všetkými relačnými DBMS a ich polia môžu uchovávať rôzne typy údajov. Najbežnejšie typy údajov.

    indexy

    O niečo vyššie sme hovorili o úlohe primárneho a cudzieho kľúča. Vo väčšine relačných DBMS sú kľúče implementované pomocou objektov nazývaných indexy, ktoré možno definovať ako zoznam čísel záznamov označujúcich, v akom poradí sa majú poskytnúť.

    Už vieme, že záznamy v relačných tabuľkách nie sú usporiadané. Napriek tomu má každý záznam v určitom časovom bode dobre definované fyzické umiestnenie v databázovom súbore, hoci sa môže zmeniť počas úpravy údajov alebo v dôsledku „interných aktivít“ samotného DBMS.

    Predpokladajme, že v určitom okamihu boli záznamy v tabuľke Zákazníci uložené v tomto poradí.

    Povedzme, že potrebujeme zoradiť tieto údaje podľa poľa CustomerID. Ak vynecháme technické detaily, môžeme povedať, že index v tomto poli je postupnosť čísel záznamov, podľa ktorých je potrebné ich zobraziť, to znamená:

    1,6,4,2,5,3

    Ak chceme záznamy zoradiť podľa poľa Adresa, poradie čísel záznamov bude iné:

    5,4,1,6,2,3

    Ukladanie indexov vyžaduje podstatne menej miesta ako ukladanie inak zoradených verzií samotnej tabuľky.

    Ak potrebujeme nájsť údaje o zákazníkoch, ktorých CustomerID začína znakmi „BO“, môžeme pomocou indexu nájsť umiestnenie týchto záznamov (v tomto prípade 2 a 5 (samozrejme čísla týchto záznamov sú v indexe za sebou ) a potom si prečítajte len druhý a piaty záznam, namiesto toho, aby ste sa pozerali na celú tabuľku. Použitie indexov teda skracuje čas získavania údajov.

    Už sme povedali, že fyzické umiestnenie záznamov sa môže meniť počas editovania údajov používateľmi, ako aj v dôsledku manipulácií s databázovými súbormi, ktoré vykonáva samotný DBMS (napríklad kompresia údajov, zber odpadu atď.). Ak súčasne dôjde k zodpovedajúcim zmenám v indexe, je to tzv podporované a takéto indexy sa používajú vo väčšine moderných DBMS. Implementácia takýchto indexov vedie k tomu, že akákoľvek zmena v údajoch v tabuľke má za následok zmenu indexov, ktoré sú s ňou spojené, čo zvyšuje čas, ktorý DBMS potrebuje na vykonanie takýchto operácií. Preto by ste pri používaní takéhoto DBMS mali vytvárať iba tie indexy, ktoré sú skutočne potrebné, a riadiť sa tým, aké dotazy sa budú vyskytovať najčastejšie.

    Obmedzenia a pravidlá

    Väčšina moderných serverových DBMS obsahuje špeciálne objekty tzv obmedzenia(obmedzenia), príp pravidlá(pravidlá). Tieto objekty obsahujú informácie o obmedzeniach uložených na možné hodnoty polí. Napríklad pomocou takéhoto objektu môžete nastaviť maximálnu alebo minimálnu hodnotu pre toto pole a potom vám DBMS nedovolí uložiť záznam do databázy, ktorý nespĺňa túto podmienku.

    Okrem obmedzení spojených s nastavením rozsahu údajov existujú aj referenčné obmedzenia (referenčné obmedzenia, napríklad vzťah master-detail medzi tabuľkami Customers a Orders, možno implementovať ako obmedzenie obsahujúce požiadavku, aby hodnota CustomerId (cudzí kľúč) v tabuľke Objednávky sa rovnajú jednej z existujúcich hodnôt pre pole CustomerId v tabuľke Zákazníci.

    Všimnite si, že nie všetky DBMS podporujú obmedzenia. V tomto prípade môžete buď použiť iné objekty (napríklad spúšťače) na implementáciu podobnej funkčnosti pravidiel, alebo uložiť tieto pravidlá do klientskych aplikácií, ktoré pracujú s touto databázou.

    zastupovanie

    Takmer všetky relačné DBMS podporujú pohľady. Tento objekt je virtuálna tabuľka, ktorá poskytuje údaje z jednej alebo viacerých reálnych tabuliek. V skutočnosti neobsahuje žiadne údaje, len popisuje ich zdroj.

    Takéto objekty sa často vytvárajú na ukladanie zložitých dopytov v databázach. Zobrazenie je v skutočnosti uložená požiadavka.

    Vytváranie pohľadov vo väčšine moderných DBMS sa vykonáva pomocou špeciálnych vizuálnych nástrojov, ktoré vám umožňujú zobraziť potrebné tabuľky na obrazovke, nadviazať medzi nimi vzťahy, vybrať zobrazené polia, zaviesť obmedzenia na záznamy atď.

    Tieto objekty sa často používajú na zabezpečenie údajov, napríklad tým, že umožňujú prezeranie údajov cez ne bez poskytnutia priameho prístupu k tabuľkám. Niektoré objekty zobrazenia môžu navyše vracať rôzne údaje v závislosti napríklad od mena používateľa, čo mu umožňuje prijímať iba údaje, o ktoré má záujem.

    Spúšťače a uložené procedúry

    Na ukladanie spustiteľného kódu sa používajú spúšťače a uložené procedúry podporované väčšinou moderných databáz serverov.

    Uložená procedúra je špeciálny druh procedúry, ktorú vykonáva databázový server. Uložené procedúry sú napísané v procedurálnom jazyku, ktorý závisí od konkrétneho DBMS. Môžu sa navzájom volať, čítať a upravovať údaje v tabuľkách a môžu byť volané z aplikácie databázového klienta.

    Uložené procedúry sa bežne používajú pri vykonávaní často sa vyskytujúcich úloh (napríklad bilancovanie súvahy). Môžu mať argumenty, návratové hodnoty, chybové kódy a niekedy aj množiny riadkov a stĺpcov (takáto množina údajov sa niekedy nazýva množina údajov). Posledný typ procedúr však nie je podporovaný všetkými DBMS.

    Spúšťače obsahujú aj spustiteľný kód, ale na rozdiel od procedúr ich nemožno volať z klientskej aplikácie alebo uloženej procedúry. Spúšťač je vždy priradený ku konkrétnej tabuľke a je spustený, keď nastane udalosť, ku ktorej je priradený počas úpravy tejto tabuľky (napríklad vloženie, vymazanie alebo aktualizácia záznamu).

    Vo väčšine DBMS, ktoré podporujú spúšťače, môžete definovať viacero spúšťačov, ktoré sa vykonajú, keď nastane rovnaká udalosť, a určiť poradie, v akom sa vykonajú.

    Objekty na generovanie primárnych kľúčov

    Primárne kľúče veľmi často generuje samotný DBMS. Je to pohodlnejšie ako ich generovanie v klientskej aplikácii, pretože pri práci s viacerými používateľmi je generovanie kľúčov pomocou DBMS jediným spôsobom, ako sa vyhnúť duplikácii kľúčov a získať ich konzistentné hodnoty.

    Rôzne DBMS používajú na generovanie kľúčov rôzne objekty. Niektoré z týchto objektov uchovávajú celé číslo a pravidlá, podľa ktorých sa generuje ďalšia hodnota - zvyčajne sa to robí pomocou spúšťačov. Takéto objekty sú podporované napríklad v Oracle (v tomto prípade sa nazývajú sekvencie) a v IB Database (v tomto prípade sa nazývajú generátory).

    Niektoré DBMS podporujú špeciálne typy polí pre primárne kľúče. Pri pridávaní záznamov sa takéto polia automaticky vyplnia po sebe nasledujúcimi hodnotami (zvyčajne celými číslami). V prípade Microsoft Access a Microsoft SQL Server sa tieto polia nazývajú polia identity a v prípade Corel Paradox sa nazývajú polia automatického prírastku.

    Používatelia a roly

    Zabránenie neoprávnenému prístupu k údajom je vážny problém, ktorý sa rieši mnohými spôsobmi. Najjednoduchšia je ochrana heslom buď celej tabuľky alebo niektorých jej polí (takýto mechanizmus podporuje napríklad Corel Paradox).

    V súčasnosti je populárnejší iný spôsob ochrany dát – vytváranie zoznamu používateľov (používateľov) s menami (mená používateľov) a heslami (hesla). V tomto prípade je akýkoľvek databázový objekt vo vlastníctve konkrétneho používateľa a tento používateľ udeľuje ostatným používateľom povolenie na čítanie alebo úpravu údajov z tohto objektu alebo na úpravu samotného objektu. Táto metóda sa používa na všetkých serveroch a niektorých desktopových DBMS (napríklad Microsoft Access).

    Niektoré DBMS, najmä serverové, podporujú nielen zoznam používateľov, ale aj roly. Rola je súbor privilégií. Ak konkrétny používateľ získa jednu alebo viac rolí a s nimi aj všetky privilégiá definované pre túto rolu.

    Databázové dotazy

    Modifikácia a výber údajov, zmena metadát a niektoré ďalšie operácie sa vykonávajú pomocou dotazov (query). Väčšina moderných DBMS (a niektoré nástroje na vývoj aplikácií) obsahuje zariadenia na generovanie takýchto dopytov.

    Jeden spôsob manipulácie s údajmi sa nazýva „dotazy podľa príkladu“ (QBE) – dopyt po príklade. QBE je nástroj na vizuálne prepojenie tabuliek a výber polí na zobrazenie vo výsledku dotazu.

    Vo väčšine DBMS (s výnimkou niektorých desktopových) má vytvorenie dotazu vizuálne pomocou QBE za následok vygenerovanie textu dotazu pomocou špeciálneho dotazovacieho jazyka SQL (Structured Query Language). Dotaz môžete napísať aj priamo v SQL.

    Kurzory

    Výsledkom dotazu je často množina riadkov a stĺpcov (množina údajov). Na rozdiel od relačnej tabuľky sú v takejto množine riadky usporiadané a ich poradie je určené pôvodným dotazom (a niekedy aj prítomnosťou indexov). Preto môžeme v takejto množine definovať aktuálny riadok a ukazovateľ naň, ktorý sa nazýva kurzor (kurzor).

    Väčšina moderných DBMS podporuje takzvané obojsmerné kurzory, ktoré vám umožňujú navigovať vo výslednom súbore údajov dopredu aj dozadu. Niektoré DBMS však podporujú iba jednosmerné kurzory, ktoré vám umožňujú pohybovať sa iba dopredu cez množinu údajov.

    jazyk SQL

    Structured Query Language (SQL) je neprocedurálny jazyk používaný na formulovanie databázových dotazov vo väčšine moderných DBMS a je v súčasnosti priemyselným štandardom.

    Neprocedurálny jazyk znamená, že môže špecifikovať, čo je potrebné urobiť s databázou, ale nemôže opísať algoritmus tohto procesu. Všetky algoritmy na spracovanie SQL dotazov sú generované samotným DBMS a nezávisia od používateľa. Jazyk SQL pozostáva zo sady príkazov, ktoré možno rozdeliť do niekoľkých kategórií:

    • Data Definition Language (DDL) – jazyk definície údajov, ktorý umožňuje vytvárať, mazať a upravovať objekty v databázach
    • Data Manipulation Language (DML) je jazyk správy údajov, ktorý vám umožňuje upravovať, pridávať a odstraňovať údaje v existujúcich databázových objektoch.
    • Data Control Languages ​​​​(DCL) - jazyk používaný na správu používateľských práv
    • Transaction Control Language (TCL) - jazyk pre správu zmien vykonaných skupinami operátorov
    • Cursor Control Language (CCL) - operátory na definovanie kurzora, prípravu SQL príkazov na vykonanie a niektoré ďalšie operácie.

    Viac o jazyku SQL sa dozviete v jednom z nasledujúcich článkov tejto série.

    Používateľom definované funkcie

    Niektoré DBMS umožňujú používanie užívateľom definovaných funkcií (UDF-User-Defined Functions). Tieto funkcie sú zvyčajne uložené v externých knižniciach a pred ich použitím v dotazoch, spúšťačoch a uložených procedúrach musia byť zaregistrované v databáze.

    Keďže užívateľom definované funkcie sú obsiahnuté v knižniciach, je možné ich vytvárať pomocou akéhokoľvek vývojového nástroja, ktorý umožňuje vytvárať knižnice pre platformu, na ktorej daný DBMS beží.

    Transakcie

    Transakcia je skupina operácií s údajmi, ktoré sa vykonajú kolektívne alebo sa kolektívne zrušia.

    Dokončenie (Commit) transakcie znamená, že všetky operácie zahrnuté v transakcii boli úspešne dokončené a výsledok ich práce bol uložený do databázy.

    Vrátenie transakcie znamená, že všetky už vykonané operácie, ktoré sú súčasťou transakcie, sa zrušia a všetky databázové objekty ovplyvnené týmito operáciami sa vrátia do pôvodného stavu. Na implementáciu možnosti vrátenia transakcií mnohé DBMS podporujú zapisovanie do protokolových súborov, ktoré vám umožňujú obnoviť pôvodné údaje počas vrátenia.

    Transakcia môže pozostávať z niekoľkých vnorených transakcií.

    Niektoré DBMS podporujú dvojfázové dokončenie transakcie (dvojfázové odovzdanie) – proces, ktorý umožňuje vykonávať transakcie na niekoľkých databázach súvisiacich s tou istou DBMS.

    Na podporu distribuovaných transakcií (t. j. transakcií nad databázami spravovanými rôznymi DBMS) existujú špeciálne nástroje nazývané transakčné monitory.

    Záver

    V tomto článku sme rozobrali základné koncepty budovania relačného DBMS, základné princípy návrhu dát a hovorili sme aj o tom, aké objekty je možné vytvárať v databázach.

    V ďalšom článku predstavíme našim čitateľom najpopulárnejšie desktopové DBMS: dBase, Paradox, Access, Visual FoxPro, Works a rozoberieme ich hlavné funkcie.

    ComputerPress 3 "2000