Základní pojmy relačního datového modelu - soubor Základní pojmy relačního datového modelu.doc. Relační databáze

17.12.2023

Relační model je založen na množinově teoretickém konceptu vztahu. V matematických disciplínách existuje pojem „ přístup „(vztah), jehož fyzická reprezentace je stůl . Odtud pochází název modelu - vztahový .

Ve vztahu k databázím jsou pojmy „relační databáze“ a „tabulková databáze“ synonyma. Relační databáze jsou ve světě nejrozšířenější. Téměř všechny databázové produkty vytvořené od konce 70. let jsou relační.

V roce 1970 se objevily články, které pojednávaly o možnostech využití různých tabulkových datových modelů. Nejvýznamnějším z nich byl článek zaměstnance IBM Dr. E. F. (Codd E.F., A Relational Model of Data for Large Shared Data Banks. CACM 13: 6, June 1970), kde byl poprvé použit. období "relační datový model" . Projekt System R byl vyvinut ve výzkumné laboratoři IBM. Tento projekt byl koncipován s cílem prokázat praktičnost relačního modelu. Relační DBMS odkazuje na DBMS druhá generace.

Cíle vytvoření relačního datového modelu:

1. Zajištění vyššího stupně nezávislosti dat.

2. Vytvořte pevný základ pro řešení problémů konzistence a redundance dat.

3. Rozšíření jazyků správy dat o operace na množinách.

Komerční systémy založené na relačním datovém modelu se začaly objevovat koncem 70. a začátkem 80. let. V současné době existuje několik stovek typů různých relačních DBMS.

Relační model je pohodlnou a nejběžnější formou reprezentace dat ve formuláři tabulky (vztah ). Každý vztah má název a skládá se z jmen atributy (sloupce) dat. Jednou z hlavních výhod relačního modelu je jeho homogenita. Všechna data jsou uložena v tabulkách, ve kterých má každý řádek stejný formát. Každý řádek v tabulce představuje nějaký reálný objekt nebo vztah mezi objekty.

Hlavní pojmy, kterými je relační model definován, jsou následující:

- relační databáze- soubor normalizovaných vztahů;

- přístup- soubor, rovná tabulka sestávající ze sloupců a řádků; tabulka, ve které je každé pole atomické;

- doména- sada platných hodnot, ze kterých se přebírá hodnota odpovídajícího atributu určitého vztahu. Z programátorského hlediska doména- toto je datový typ;

- vesmír- sada hodnot všech polí nebo sada domén;


- kolona- záznam, řádek tabulky;

- mohutnost - počet řádků v tabulce;

- atributy- pojmenovaná pole, sloupce tabulky;

- stupeň vztahu- počet polí (sloupců);

- vztahový diagram- uspořádaný seznam jmen atributů;

- schéma relační databáze- soubor schémat vztahů;

- primární klíč- jedinečný identifikátor s neopakujícími se položkami - sloupec nebo nějaká podmnožina sloupců, které jednoznačně definují řádky.

Je volán primární klíč, který obsahuje více než jeden sloupec násobek nebo kombinovaný nebo kompozitní nebo super klíč .

Pravidlo integrity objektu uvádí, že primární klíč nemůže být zcela nebo částečně prázdný.

Vztah mezi těmito pojmy je znázorněn na Obr. 4.5.

Celé jméno Rok narození Pracovní pozice oddělení
1. Ivanov I. I. Hlava oddělení 22
2. Sidorov S.S. Prof. 22
3. Andreeva G.G. Prof. 22
4. Tsvetková S.S. Odborný asistent
5. Kozlov K.K. Odborný asistent 22
6. Petrov P.P. Umění. Rev. 22
Atributy

rýže. 4.5. Základní pojmy relačního datového modelu.

Někdy mohou být jako primární klíč v tabulce vybrány různé sloupce. Vyhrazený klíč je klíč, který je explicitně uveden u relačního schématu. Jinak mluvíme o implicitním klíči nebo kandidátním klíči nebo kandidátním klíči.

- externí klíč je sloupec nebo podmnožina sloupců v jedné tabulce, která může sloužit jako primární klíč pro jinou tabulku. Cizí klíč tabulky je odkazem na primární klíč jiné tabulky. Protože účelem budování databáze je uložit všechna data pokud možno v jedné kopii, pak pokud je určitý atribut přítomen v několika relacích, pak jeho přítomnost obvykle odráží určitý vztah mezi řádky těchto vztahů.

Cizí klíče implementují vztahy mezi databázovými tabulkami.

Cizí klíč, stejně jako primární klíč, může být kombinací sloupců. V praxi bude cizí klíč vždy složený klíč, pokud odkazuje na složený primární klíč jiné tabulky. Počet sloupců a jejich datové typy v primárním a cizím klíči musí být stejné.

Pokud tabulka souvisí s několika dalšími tabulkami, může mít více cizích klíčů.

Každý relační tabulka má následující vlastnosti:

Má název, který se liší od názvů všech ostatních tabulek;

Data v buňkách tabulky musí být strukturálně nedělitelná. Je nepřijatelné, aby buňka tabulky obsahovala více než jednu informaci. Například číslo pasu a série by měly být umístěny v různých sloupcích tabulky;

Všechny sloupce v tabulce jsou homogenní, tzn. všechny prvky ve sloupci mají stejný typ (číselný, znakový atd.) a délku;

Každý sloupec má jedinečný název;

V tabulce nejsou žádné identické řádky;

Pořadí řádků a sloupců může být libovolné bez ohledu na jejich přeuspořádání, vztah zůstane stejný, a proto bude mít stejný význam.

Sekce 3. „Databáze“

1. Informační podpora pro automatizované systémy.

Informační podpora automatizovaného systému (AS) - soubor formulářů dokumentů, klasifikátorů, regulačního rámce a implementovaných řešení objemu, umístění a forem existence informací používaných v AS při jeho provozu

Podle GOST 24.205-80 by se popis informační podpory automatizovaného řídicího systému měl skládat z následujících částí:

zásady organizace informační podpory;

organizování shromažďování a přenosu informací;

budování klasifikačního a kódovacího systému;

organizace vnitrostrojové informační základny;

organizace mimostrojové informační základny.

Termín „informační podpora“ je široce používán v různých kontextech, ve vztahu k různým funkcím a typům činností, je vykládán nejednoznačně a je diskutabilní. Kromě označení informačních struktur tímto pojmem se tím často označuje proces poskytování potřebných informací pro potřeby konkrétního socioekonomického objektu.

Informační podpora sítě počítačových center zahrnuje pole dat, prostředky pro jejich popis, shromažďování, ukládání a vydávání, které by měly společně vytvářet nejlepší podmínky pro centralizované integrované zpracování informací, poskytovat kolektivní přístup k datům společným pro mnoho účastníků a zvyšovat spolehlivost a spolehlivost obdržených informací.

Informační podpora automatizovaného systému je soubor formulářů dokumentů, klasifikátorů, regulačního rámce a implementovaných řešení objemu, umístění a forem existence informací používaných v automatizovaném systému během jeho provozu (GOST 34.003-90 („Automatizované systémy. Podmínky a definice“)).

IO je soubor jednotného systému klasifikace a kódování informací, jednotných dokumentačních systémů, diagramů informačních toků obíhajících v organizaci a metodiky pro tvorbu databází.



Tento subsystém je určen pro včasnou prezentaci informací a rozhodování managementu. Podnikový informační systém je informační model daného objektu. Chcete-li vytvořit IO, potřebujete jasné pochopení cílů a cílů, funkcí systému řízení; implementace systému toku dokumentů; identifikace pohybu informací od okamžiku jejich vzniku až po jejich využití na různých úrovních řízení; dostupnost a použití klasifikace a kódování informací; vytváření informačních polí na počítačových médiích; znalost metodiky tvorby informačních modelů.

Při organizaci IO je využíván systematický přístup k zajištění vytvoření jednotné informační základny; vývoj standardního schématu výměny dat mezi různými úrovněmi systému a v rámci každé úrovně; organizace jednotného schématu pro udržování a ukládání informací; poskytování počátečních údajů k úkolům, které mají být řešeny;

Hlavní funkcí IO je sledování průběhu výrobních a ekonomických činností, identifikace a evidence stavu řízených parametrů a jejich odchylky od stanovených režimů; příprava na zpracování primárních dokumentů odrážejících stav spravovaných objektů; zajištění automatizovaného zpracování dat; realizace přímé a zpětné vazby mezi objekty a subjekty řízení.

AI automatizovaných informačních systémů se skládá z mimostrojové a vnitrostrojové AI.

Mimostroj obsahuje systém klasifikace a kódování technických a ekonomických informací; dokumentační systém; diagram toku informací (tok dokumentů: primární, výsledné, normativní a referenční dokumenty).

In-machine information obsahují datová pole na strojových médiích a program pro organizaci přístupu k těmto datům.

Mimostrojové informace jsou informace, které člověk vnímá bez jakýchkoli technických prostředků (dokumentů).

Klasifikace je chápána jako podmíněné rozdělení souboru informačních prvků do podmnožin na základě podobnosti nebo odlišnosti na nějakém základě.

2. DBMS a databázové aplikace.

Systém správy databází (DBMS) je sada jazykových a softwarových nástrojů, které zajišťují správu tvorby a používání databází.

Moderní DBMS se skládá z:

jádra - části programů DBMS odpovědné za správu dat v paměti a logování; Jazykový procesor databáze, poskytování optimalizace dotazů pro získávání a změnu dat a vytváření databáze;

Podsystémy podpory běhu, které interpretují programy pro manipulaci s daty, které vytvářejí uživatelské rozhraní DBMS;

Servisní programy (externí utility), které poskytují další možnosti pro údržbu informačních systémů.

Hlavní funkce DBMS jsou

Správa dat uložených v externí paměti;

Správa dat načtených do paměti RAM pomocí diskové mezipaměti; Protokolování událostí a změn, zálohování a obnova databáze po poruchách;

Podpora jazyků pro zpracování databází (jazyk pro definici dat, jazyk pro manipulaci s daty);

DBMS klasifikace

Existuje několik kritérií, podle kterých lze DBMS klasifikovat.

DBMS založené na datovém modelu jsou:

Hierarchická DBMS, Síťová DBMS, Relační DBMS, Objektově orientovaná DBMS, Objektově-relační DBMS. V současné době se poslední 2 typy používají ve vážných projektech. DBMS podle stupně distribuce. Lokální (DBMS je umístěn pouze na jednom počítači) Distribuovaný (části DBMS mohou být umístěny na 2 nebo více počítačích).

Databázové aplikace

Databázová aplikace, jak její název napovídá, je navržena pro interakci s nějakým zdrojem dat – databází (DB). Interakce zahrnuje přijímání dat, jejich prezentaci ve specifickém formátu, který si uživatel může prohlédnout, úpravu v souladu s obchodními algoritmy implementovanými v programu a vrácení zpracovaných dat zpět do databáze.

Zdrojem dat může být buď samotná databáze, nebo běžné soubory – text, tabulky atd. Zde ale budeme uvažovat aplikace, které s databázemi pracují.

Samotná aplikace obsahuje mechanismus pro příjem a odesílání dat, mechanismus pro interní reprezentaci dat v té či oné podobě, uživatelské rozhraní pro zobrazení a úpravu dat a obchodní logiku pro zpracování dat.

Mechanismus pro příjem a odesílání dat zajišťuje připojení ke zdroji dat (často nepřímo). Musí „vědět“, kam jít a jaký komunikační protokol použít, aby byl zajištěn obousměrný tok dat.

Vnitřní motor reprezentace dat je jádrem databázové aplikace. Přijatá data ukládá do aplikace a zpřístupňuje je na vyžádání ostatními částmi aplikace.

Uživatelské rozhraní umožňuje prohlížet a upravovat data a také spravovat data a aplikaci jako celek.

Obchodní logika aplikace je sada algoritmů zpracování dat implementovaných v programu.

Mezi aplikací a samotnou databází je speciální software, který propojuje program a zdroj dat a řídí proces výměny dat. Tento software lze implementovat mnoha různými způsoby, v závislosti na velikosti databáze, úlohách řešených systémem, počtu uživatelů a způsobu propojení aplikace a databáze. Middleware lze implementovat jako aplikační prostředí, bez kterého to vůbec nepůjde, nebo do samotné aplikace integrovat sadu ovladačů a dynamických knihoven, ke kterým aplikace přistupuje. Konečně by to mohl být jediný vzdálený server obsluhující tisíce aplikací.

Zdrojem dat je datový sklad (samotná databáze) a DBMS, který spravuje data a zajišťuje integritu a konzistenci dat.

3. Moderní pojetí relačních databází.

Základní pojmy relační databáze

Než se podíváme na každý z těchto kroků podrobně, zopakujme si základní koncepty relačních databází. V teorii vztahů je jedním z hlavních koncept vztahu. Matematicky je poměr definován následovně. Nechť je dáno n množin D1,D2,...,Dn. Pak R je relace nad těmito množinami, pokud R je množina uspořádaných množin tvaru , kde d1 je prvek z D1, d2 je prvek z D2, ..., dn je prvek z Dn. V tomto případě sady formuláře se nazývají n-tice a množiny D1,D2,...,Dn se nazývají domény. Každá n-tice se skládá z prvků vybraných z jejich domén. Tyto prvky se nazývají atributy a jejich hodnoty se nazývají hodnoty atributů, obr. 9-a nám představuje grafické znázornění vztahu z různých úhlů pohledu.

Je snadné vidět, že relace je odrazem nějaké entity reálného světa (v tomto případě entity „detail“) a z hlediska zpracování dat je to tabulka. N-tice je řádek v tabulce nebo ekvivalentně záznam. Atribut je sloupec tabulky nebo pole v záznamu. Doména je reprezentována jako druh zobecněného typu, který může být zdrojem pro typy polí v záznamu. Následující trojice termínů jsou tedy ekvivalentní:

vztah, tabulka

n-tice, řetězec, záznam

atribut, sloupec, pole.

Relační databáze je sbírka vztahů obsahující všechny potřebné informace a sjednocená různými propojeními.

Atribut (nebo sada atributů), který lze použít k jednoznačné identifikaci konkrétní n-tice (řádek, záznam), se nazývá primární klíč. Primární klíč nesmí mít žádné další atributy. To znamená, že pokud je z primárního klíče vyloučen libovolný atribut, zbývající atributy nebudou dostatečné k jednoznačné identifikaci jednotlivých n-tic. Pro urychlení přístupu k primárnímu klíči mají všechny systémy správy databází (DBMS) mechanismus zvaný indexování. Zhruba řečeno, index je obrácený stromový seznam ukazující na skutečné umístění záznamu pro každý primární klíč. Indexy jsou samozřejmě v různých DBMS implementovány odlišně (v lokálních DBMS zpravidla ve formě samostatných souborů), principy jejich organizace jsou však stejné.

Je možné indexovat vztah pomocí jiných atributů, než je primární klíč. Tento typ indexu se nazývá sekundární index a používá se ke zkrácení doby přístupu při hledání dat v relaci a také k řazení. Pokud tedy relace sama o sobě není nijak uspořádaná a může obsahovat řádky zbývající po smazání některých n-tic, pak se index (pro lokální DBMS - indexový soubor) naopak setřídí.

Pro zachování referenční integrity dat má mnoho DBMS mechanismus tzv. cizích klíčů. Smyslem tohoto mechanismu je, že určitému atributu (nebo skupině atributů) jednoho vztahu je přiřazena vazba na primární klíč jiného vztahu; čímž se posilují vazby podřízenosti mezi těmito vztahy. V tomto případě se vztah, na jehož primární klíč odkazuje cizí klíč jiného vztahu, nazývá hlavní vztah nebo hlavní vztah; a vztah, ze kterého odkaz pochází, se nazývá podrobný vztah nebo podřízený vztah. Po přiřazení takového odkazu má DBMS schopnost automaticky sledovat problémy „neporušení“ spojení mezi vztahy, konkrétně:

pokusíte-li se do podřízené tabulky vložit záznam, pro který cizí klíč nemá shodu v hlavní tabulce (např. zatím neexistuje žádný záznam s takovým primárním klíčem), DBMS vygeneruje chybu;

pokud se pokusíte odstranit záznam z hlavní tabulky, jehož primární klíč má alespoň jeden odkaz z podřízené tabulky, DBMS také vygeneruje chybu.

pokud se pokusíte změnit primární klíč záznamu v hlavní tabulce, který má alespoň jeden odkaz z podřízené tabulky, DBMS také vygeneruje chybu.

PŘIDÁNÍ

Základní pojmy relačních databází

Základními pojmy relačních databází jsou datový typ, doména, atribut, n-tice, primární klíč a relace.

Datový typ

Pojem datový typ v relačním datovém modelu je zcela adekvátní pojetí datového typu v programovacích jazycích. Moderní relační databáze obvykle umožňují ukládání znakových, číselných dat, bitových řetězců, specializovaných číselných dat (jako jsou „peníze“) a také speciálních „časových“ dat (datum, čas, časový interval). Poměrně aktivně se vyvíjí přístup k rozšiřování schopností relačních systémů o abstraktní datové typy (odpovídající schopnosti mají např. systémy rodiny Ingres/Postgres). V našem příkladu máme co do činění se třemi typy dat: znakové řetězce, celá čísla a „peníze“.

Doména

Pojem doména specifičtější pro databáze, i když má určité analogie s podtypováním v některých programovacích jazycích. Ve své nejobecnější podobě je doména definována specifikací nějakého základního datového typu, ke kterému prvky domény patří, a libovolného logického výrazu aplikovaného na prvek datového typu. Pokud vyhodnocení tohoto booleovského výrazu vrátí hodnotu true, pak je datovým prvkem prvek domény.

Nejsprávnější intuitivní výklad pojmu domény je chápat doménu jako přípustnou potenciální množinu hodnot daného typu. Například doména "Jména" v našem příkladu je definována na základním typu řetězce znaků, ale její hodnoty mohou obsahovat pouze řetězce, které mohou představovat jméno (takové řetězce zejména nemohou začínat měkkým znakem).

Je třeba také poznamenat sémantické zatížení konceptu domény: data jsou považována za srovnatelná pouze tehdy, pokud patří do stejné domény. V našem příkladu jsou hodnoty domény „Čísla mezer“ a „Čísla skupin“ typu integer, ale nejsou srovnatelné. Všimněte si, že většina relačních DBMS nepoužívá koncept domény, ačkoli Oracle V.7 jej již podporuje.

Což je aplikace na problémy zpracování dat v takových odvětvích matematiky, jako je teorie množin a logika prvního řádu.

Relační databáze jsou postaveny na relačním datovém modelu.

Relační datový model obsahuje následující komponenty:

  • Strukturální aspekt (komponenta) - data v databázi jsou množinou vztahů.
  • Aspekt (složka) integrity - vztahy (tabulky) splňují určité podmínky integrity. RMD podporuje deklarativní omezení integrity na úrovni domény (datového typu), na úrovni vztahu a na úrovni databáze.
  • Aspekt (komponenta) zpracování (manipulace) - RMD podporuje relační manipulační operátory (relační algebra, relační kalkul).

Základní pojmy relačních databází jsou datový typ, relace, entita, atribut, doména, n-tice, primární klíč.

Pojem datový typ v relačním datovém modelu je zcela podobný konceptu datového typu v programovacích jazycích. Moderní relační databáze obvykle umožňují ukládání znakových dat, číselných dat, bitových řetězců, specializovaných číselných dat (jako jsou peníze) a speciálních dat (datum, čas, časový interval).

přístup je základní koncept a je to dvourozměrná tabulka obsahující některá data.

Podstata nějaký izolovaný objekt nebo událost, informace o které musí být uloženy v databázi a která má určitou sadu vlastností - atributů. Entity mohou být jak fyzické (skutečně existující) objekty, například STUDENT (atributy – Číslo v klasifikační knize, Příjmení, Jméno, Patronymika, Odbornost, Číslo skupiny atd.), tak abstraktní, například ZKOUŠKA (atributy – Disciplína, Datum , učitel, publikum atd.). Entity se rozlišují mezi typem a instancí. Typ je charakterizován názvem a seznamem vlastností, zatímco instance je charakterizována specifickými hodnotami vlastností.

Atributy představují vlastnosti, které charakterizují entitu. Ve struktuře tabulky je každý atribut pojmenován a odpovídá záhlaví určitého sloupce tabulky. Atributy entity jsou:

1) identifikační a popisné. Identifikační atributy mají pro entity daného typu jedinečný význam a jsou potenciálními klíči. Umožňují vám jednoznačně rozpoznat instance entity. Je vybrán jeden z potenciálních klíčů primární klíč. Primární klíč je obvykle kandidátský klíč, který se používá k častějšímu přístupu k instancím záznamů. Primární klíč musí obsahovat minimální počet atributů požadovaných pro identifikaci. Zbývající atributy se nazývají popisné;

2) jednoduché a složené. Jednoduchý atribut se skládá z jedné složky, jeho hodnota je nedělitelná. Složený atribut je kombinací několika komponent, které mohou patřit k různým datovým typům (například adresa). Rozhodnutí, zda použít kompozitní atribut nebo jej rozdělit na komponenty, závisí na konkrétních procesech jeho aplikace a může souviset se zajištěním vysoké rychlosti práce s velkými databázemi;

3) jednohodnotové a vícehodnotové. Atributy mohou mít jednu nebo více hodnot pro každou instanci entity;

4) základní a odvozené. Hodnota hlavního atributu je nezávislá na ostatních atributech. Hodnota odvozeného atributu se vypočítá na základě hodnot jiných atributů (například věk osoby se vypočítá na základě data narození a aktuálního data).

Specifikace atributu se skládá z jeho názvu, označení datového typu a popisu omezení integrity – sady hodnot (nebo domény), které může atribut nabývat.

Doména představuje množinu všech možných hodnot určitého atributu vztahu.

Schéma vztahu (záhlaví vztahu) je seznam názvů atributů označujících názvy domén.

kolona motorek, odpovídající danému relačnímu schématu, je sada dvojic (název atributu, hodnota), která obsahuje jeden výskyt každého názvu atributu. Argument hodnota je platnou hodnotou pro doménu tohoto atributu.

Primární klíč(relační klíč, klíčový atribut) Atribut nebo sada atributů relace, která jednoznačně identifikuje každou z jejích n-tic, se nazývá. Primární klíč je podle definice jedinečný: vztah nemůže mít dvě různé n-tice se stejnými hodnotami primárního klíče. Atributy, které tvoří primární klíč, nemohou mít hodnotu NULA. Pojem NULA v teorii relačních databází má označovat nepřítomnost jakékoli hodnoty atributu. Pro každý vztah může existovat pouze jeden primární klíč.

Každý vztah má nutně kombinaci atributů, které mohou sloužit jako klíč. Mohou nastat případy, kdy má relace několik kombinací atributů, z nichž každá jednoznačně identifikuje všechny n-tice vztahu. Všechny tyto kombinace atributů jsou možné klíče vztah. Jako primární klíč lze vybrat kterýkoli z možných klíčů.

Cizí klíče jsou hlavním mechanismem pro organizování vztahů mezi tabulkami a udržování integrity a konzistence informací v databázi.

Externí klíč je soubor atributů jednoho vztahu, který je možným klíčem pro jiný vztah.

Díky přítomnosti vazeb mezi možnými a cizími klíči je zajištěno propojení n-tic určitých vztahů, což pomáhá udržovat databázi v takovém stavu, aby ji bylo možné považovat za jeden celek. Vztah obsahující cizí klíč se nazývá potomek a vztah obsahující kandidátský klíč spojený s cizím klíčem se nazývá rodič. Datové typy (a v některých DBMS dimenze) odpovídajících atributů cizího a nadřazeného klíče se musí shodovat.

Prvky relačního datového modelu a forma jejich prezentace

Prvek relačního modelu

Prezentační formulář

přístup

Vztahový diagram

Řádek záhlaví sloupce tabulky (záhlaví tabulky)

Řádek tabulky

Podstata

Popis vlastností objektu

Záhlaví sloupce tabulky

Sada platných hodnot atributů

Hodnota atributu

Hodnota pole v záznamu

Primární klíč

Jeden nebo více atributů

Datový typ

Typ hodnoty prvku tabulky

Databáze (DB) - Jedná se o pojmenovaný soubor strukturovaných dat vztahujících se ke konkrétní předmětné oblasti a určených k ukládání, akumulaci a zpracování pomocí počítače.

Relační databáze (RDB) je množina relací, jejichž názvy se shodují s názvy relací schématu v databázovém schématu.

Základní pojmy relační databáze:

· Datový typ– typ hodnot konkrétního sloupce.

· Doména(doména) – množina všech platných hodnot atributů.

· Atribut(atribut) – záhlaví sloupce tabulky charakterizující pojmenovanou vlastnost objektu, například příjmení studenta, datum objednávky, pohlaví zaměstnance atd.

· Průvod– řádek tabulky představující sadu hodnot logicky souvisejících atributů.

· přístup(relation) – tabulka odrážející informace o objektech reálného světa, například o studentech, objednávkách, zaměstnancích, obyvatelích atd.

· Primární klíč(primární klíč) – pole (nebo sada polí) tabulky, které jednoznačně identifikuje každý její záznam.

· Alternativní klíč je pole (nebo sada polí), které neodpovídá primárnímu klíči a jednoznačně identifikuje instanci záznamu.

· Externí klíč je pole (nebo sada polí), jehož hodnoty se shodují s existujícími hodnotami primárního klíče jiné tabulky. Když propojíte dvě tabulky, primární klíč první tabulky se propojí s cizím klíčem druhé tabulky.

· Relační datový model (RDM)- organizování dat ve formě dvourozměrných tabulek.

Každá relační tabulka musí mít následující vlastnosti:

1. Každý záznam tabulky je jedinečný, tzn. sada hodnot v polích se neopakuje.

2. Každá hodnota zapsaná na průsečíku řádku a sloupce je atomická (neoddělitelná).

3. Hodnoty každého pole musí být stejného typu.

4. Každé pole má jedinečný název.

5. Pořadí položek není důležité.

Hlavní prvky databáze:

Pole- základní jednotka logické organizace dat. K popisu pole se používají následující charakteristiky:

· jméno, například Příjmení, Jméno, Patronymie, Datum narození;

· zadejte například řetězec, znak, číslo, datum;

· délka, například v bajtech;

· přesnost pro číselná data, jako jsou dvě desetinná místa pro zobrazení zlomkové části čísla.

Záznam- sada hodnot logicky souvisejících polí.

Index– prostředek pro urychlení operace vyhledávání záznamů, používaný k navazování vztahů mezi tabulkami. Tabulka, pro kterou se používá index, se nazývá indexovaná. Při práci s indexy je třeba dbát na organizaci indexů, která je základem pro klasifikaci. Jednoduchý index je reprezentován jedním polem nebo booleovským výrazem, který zpracovává jedno pole. Složený index je reprezentován několika poli s možností použití různých funkcí. Indexy tabulek jsou uloženy v souboru indexu.


Integrita dat– jedná se o prostředek ochrany dat na komunikačních polích, který umožňuje udržovat tabulky v konzistentním (konzistentním) stavu (tj. neumožňuje existenci záznamů v podřízené tabulce, které nemají odpovídající záznamy v nadřazené tabulce). stůl).

Žádost– formulovaná otázka pro jednu nebo více vzájemně propojených tabulek obsahujících kritéria vzorkování dat. Dotaz se provádí pomocí strukturovaného dotazovacího jazyka SQL (Structured Query Language). Načítání dat z jedné nebo více tabulek může vést k sadě záznamů nazývaných pohled.

Prezentace dat– pojmenovaný dotaz uložený v databázi pro načtení dat (z jedné nebo více tabulek).

Pohled je v podstatě dočasná tabulka vytvořená jako výsledek dotazu. Samotný požadavek lze odeslat do samostatného souboru, sestavy, dočasné tabulky, tabulky na disku atd.

Zpráva– systémová komponenta, jejímž hlavním účelem je popis a tisk dokumentů na základě informací z databáze.

Obecná charakteristika práce s RDB:

Zdá se, že nejběžnější interpretací relačního datového modelu je Dat, který jej reprodukuje (s různými upřesněními) téměř ve všech svých knihách. Podle Date se relační model skládá ze tří částí, které popisují různé aspekty relačního přístupu: strukturální část, manipulační část a holistická část.

Strukturální část modelu uvádí, že jedinou datovou strukturou používanou v relačních databázích je normalizovaná n-ární relace.

Manipulační část modelu potvrzuje dva základní mechanismy pro manipulaci s relačními databázemi – relační algebru a relační kalkul. První mechanismus je založen převážně na klasické teorii množin (s určitými upřesněními) a druhý je založen na klasickém logickém aparátu predikátového počtu prvního řádu. Všimněte si, že hlavní funkcí manipulační části relačního modelu je poskytnout míru relativnosti jakéhokoli specifického jazyka relačních databází: jazyk se nazývá relační, pokud nemá o nic menší expresivitu a sílu než relační algebra nebo relační kalkul.


28. ALGORITMICKÉ JAZYKY. PŘEKLADATELÉ (tlumočníci a překladači). ZÁKLADNÍ ALGORITMICKÝ JAZYK. STRUKTURA PROGRAMU. IDENTIFIKÁTORY. PROMĚNNÉ. OPERÁTORŮ. ZPRACOVÁNÍ JEDNOROZMĚRNÝCH A DVOJROZMĚRNÝCH POL. UŽIVATELSKÉ FUNKCE. PODPROGRAMY. PRÁCE S DATOVÝMI SOUBORY.

Jazyk na vysoké úrovni- programovací jazyk, jehož koncepce a struktura jsou vhodné pro lidské vnímání.

Algoritmický jazyk(Algorithmic language) - programovací jazyk - umělý (formální) jazyk určený pro psaní algoritmů. Programovací jazyk je definován svým popisem a implementován ve formě speciálního programu: překladač nebo interpret. Příklady algoritmických jazyků jsou Borland Pascal, C++, Basic atd.

Základní pojmy algoritmického jazyka:

Složení jazyka:

Běžný mluvený jazyk se skládá ze čtyř základních prvků: symbolů, slov, frází a vět. Algoritmický jazyk obsahuje podobné prvky, pouze slova se nazývají elementární konstrukce, fráze se nazývají výrazy a věty se nazývají operátory.

Symboly, elementární konstrukty, výrazy a operátory tvoří hierarchickou strukturu, protože elementární konstrukty jsou tvořeny ze sekvence symbolů.

Výrazy je sled elementárních struktur a symbolů,

Operátor- sled výrazů, elementárních struktur a symbolů.

Popis jazyka:

Popis symbolu se skládá ze seznamu platných symbolů jazyka. Popis elementárních struktur odkazuje na pravidla jejich tvorby. Popis výrazů je pravidla pro tvoření jakýchkoli výrazů, které mají v daném jazyce význam. Popis operátorů se skládá z diskuse o všech typech operátorů povolených v daném jazyce. Popis každého jazykového prvku je dán jeho SYNTAXÍ a SÉMANTIKOU.

Syntaktický definice stanoví pravidla pro konstrukci jazykových prvků.

Sémantika definuje význam a pravidla použití těch jazykových prvků, pro které byly uvedeny syntaktické definice.

Jazykové symboly- to jsou základní nedělitelné znaky, kterými jsou psány všechny texty v jazyce.

Elementární struktury- to jsou minimální jednotky jazyka, které mají nezávislý význam. Jsou tvořeny ze základních symbolů jazyka.

Výraz v algoritmickém jazyce se skládá z elementárních struktur a symbolů, určuje pravidlo pro výpočet určité hodnoty.

Operátor udává úplný popis nějaké akce, kterou je třeba provést. K popisu složité akce může být vyžadována skupina příkazů.

V tomto případě jsou operátory sloučeny do Složený operátor nebo Blok. Akce, specifikované operátory, jsou prováděny na datech. Příkazy algoritmického jazyka, které poskytují informace o datových typech, se nazývají deklarace nebo nespustitelné příkazy. Sada popisů a operátorů spojených jediným algoritmem tvoří program v algoritmickém jazyce. V procesu studia algoritmického jazyka je nutné odlišit algoritmický jazyk od jazyka, kterým se provádí popis studovaného algoritmického jazyka. Obvykle se studovaný jazyk nazývá jednoduše jazyk a jazyk, ve kterém je uveden popis studovaného jazyka - Metajazyk.

Překladatelé - (anglicky translator - překladatel) je překladatelský program. Převádí program napsaný v jednom z jazyků vysoké úrovně na program sestávající ze strojových instrukcí.

Program napsaný v libovolném algoritmickém jazyce na vysoké úrovni nelze přímo spustit na počítači. Počítač rozumí pouze jazyku strojových příkazů. V důsledku toho musí být program v algoritmickém jazyce přeložen (přeložen) do příkazového jazyka konkrétního počítače. Takový překlad je prováděn automaticky speciálními překladatelskými programy vytvořenými pro každý algoritmický jazyk a pro každý typ počítače.

Existují dva hlavní způsoby vysílání - kompilace a interpretace.

1. Kompilace: Překladač(anglický kompilátor - kompilátor, kolektor) načte celý program, přeloží jej a vytvoří kompletní verzi programu ve strojovém jazyce, která se následně provede.

Na sestavení celý původní program je okamžitě převeden na sekvenci strojových instrukcí. Poté je výsledný výsledný program spuštěn počítačem s dostupnými zdrojovými daty. Výhodou této metody je, že překlad se provede jednou a (vícenásobné) provedení výsledného programu může být provedeno vysokou rychlostí. Výsledný program přitom může zabírat hodně místa v paměti počítače, protože jeden jazykový operátor je při překladu nahrazen stovkami nebo dokonce tisíci příkazů. Ladění a úpravy vysílaného programu jsou navíc velmi náročné.

2. Tlumočení: Tlumočník(anglický interpret - interpret, interpret) překládá a provádí program řádek po řádku.

Na výklady zdrojový program je uložen v paměti počítače téměř beze změny. Interpretační program dekóduje příkazy zdrojového programu jeden po druhém a okamžitě zajistí jejich provedení s dostupnými daty. Interpretovaný program zabírá málo místa v paměti počítače a lze jej snadno ladit a upravovat. Provádění programu je však poměrně pomalé, protože s každým spuštěním se interpretace všech operátorů provádí znovu.

Kompilované programy běží rychleji, ale interpretované programy se snáze opravují a mění.

Každý konkrétní jazyk je orientován buď na kompilaci nebo interpretaci – podle účelu, pro který byl vytvořen. Například Pascal se obvykle používá k řešení poměrně složitých problémů, ve kterých je důležitá rychlost programu. Proto je tento jazyk obvykle implementován pomocí kompilátoru.

Na druhou stranu BASIC vznikl jako jazyk pro začínající programátory, pro které má řádkové provádění programu nesporné výhody.

Někdy existuje kompilátor i interpret pro stejný jazyk. V tomto případě můžete použít tlumočník k vývoji a testování programu a poté kompilovat laděný program, abyste zvýšili rychlost jeho provádění.

Základy relačního datového modelu byly poprvé nastíněny v článku E. Codda v roce 1970. Tato práce posloužila jako podnět pro velké množství článků a knih, ve kterých byl relační model dále rozvíjen. Nejběžnější interpretace relačního datového modelu patří K. Date. Podle Date se relační model skládá ze tří částí:

  • Konstrukční část
  • Nedílná součást
  • Manipulační část

Konstrukční část popisuje, jaké objekty jsou zvažovány relačním modelem. Předpokládá se, že jedinou datovou strukturou použitou v relačním modelu jsou normalizované n-ární vztahy.

Nedílná součást popisuje zvláštní druh omezení, které musí být splněno pro jakýkoli vztah v jakékoli relační databázi. Tento integrita entit A integrita cizího klíče.

Manipulační část popisuje dva ekvivalentní způsoby manipulace s relačními daty - relační algebra A vztahový kalkul.

Tato kapitola zkoumá strukturální část relačního modelu.

Typy dat

Jakákoli data používaná při programování mají své vlastní datové typy.

Důležité! Relační model vyžaduje, aby použité datové typy byly jednoduché.

Abychom toto tvrzení objasnili, uvažme, jaké typy dat se obvykle při programování zvažují. Typy dat se obvykle dělí do tří skupin:

  • Jednoduché datové typy
  • Typy strukturovaných dat
  • Referenční datové typy

Jednoduché datové typy

Jednoduché neboli atomické datové typy nemají žádnou vnitřní strukturu. Tento typ dat se nazývá skaláry. Mezi jednoduché datové typy patří následující typy:

  • Logický
  • Tětiva
  • Číselné

Různé programovací jazyky mohou tento seznam rozšířit a upřesnit přidáním typů, jako jsou:

  • Celý
  • Nemovitý
  • Čas
  • Měnový
  • Vyčíslitelné
  • Interval
  • Atd.…

Pojem atomicita je samozřejmě poměrně relativní. Datový typ řetězec lze tedy považovat za jednorozměrné pole znaků a celý datový typ lze považovat za sadu bitů. Důležité je pouze to, že při přechodu na tak nízkou úroveň sémantika (význam) dat. Pokud se řetězec vyjadřující např. příjmení zaměstnance rozloží na pole znaků, ztrácí se význam takového řetězce jako jednoho celku.

Typy strukturovaných dat

Typy strukturovaných dat jsou určeny pro specifikaci složitých datových struktur. Strukturované datové typy jsou konstruovány ze základních prvků nazývaných komponenty, které zase mohou mít strukturu. Následující datové typy lze považovat za strukturované datové typy:

  • Pole
  • Záznamy (struktury)

Z matematického hlediska je pole funkcí s konečnou doménou. Uvažujme například konečnou množinu přirozených čísel

se nazývá sada indexů. Zobrazit

od množiny k množině reálných čísel určuje jednorozměrné reálné pole. Hodnota této funkce pro nějakou hodnotu indexu se nazývá prvek pole odpovídající . Podobně lze definovat vícerozměrná pole.

Záznam (nebo struktura) je n-tice nějakého kartézského součinu množin. Záznam je ve skutečnosti pojmenovaná, uspořádaná sada prvků, z nichž každý patří k určitému typu. Takže vstup je prvkem sady . Deklarováním nových typů záznamů na základě existujících typů může uživatel vytvářet libovolně složité datové typy.

Strukturované datové typy mají společné to, že mají vnitřní strukturu, která se používá na stejné úrovni abstrakce jako samotné datové typy.

Vysvětleme si to následovně. Při práci s poli nebo záznamy můžete s polem nebo záznamem manipulovat jako s jedním celkem (vytvářet, mazat, kopírovat celá pole nebo záznamy) a prvek po prvku. Pro strukturované datové typy existují speciální funkce - typové konstruktory, které umožňují vytvářet pole nebo záznamy z prvků jednodušších typů.

Při práci s jednoduchými datovými typy, například číselnými, s nimi manipulujeme jako s nedělitelnými celými objekty. Abychom „viděli“, že číselný datový typ je ve skutečnosti složitý (sbírka bitů), musíme přejít na nižší úroveň abstrakce. Na úrovni programového kódu to bude vypadat jako vkládání sestav do kódu jazyka na vysoké úrovni nebo použití speciálních bitových operací.

Referenční datové typy

Referenční datový typ(ukazatele) je určen k poskytování možnosti odkazovat na jiná data. Ukazatele jsou typické pro procedurální jazyky, které mají koncept paměťové oblasti pro ukládání dat. Referenční datový typ je navržen pro zpracování složitých měnících se struktur, jako jsou stromy, grafy a rekurzivní struktury.

Datové typy používané v relačním modelu

Ve skutečnosti pro relační datový model není důležitý typ použitých dat. Požadavek na jednoduchý datový typ by měl být chápán tak, že relační operace by neměly brát v úvahu vnitřní strukturu dat. Samozřejmě musí být popsány akce, které lze provádět s daty jako jedním celkem, lze například přidávat data číselného typu, je možná operace zřetězení pro řetězce atd.

Pokud z tohoto pohledu uvažujeme pole např. jako jeden celek a nepoužíváme operace prvek po prvku, pak lze pole považovat za jednoduchý datový typ. Navíc si můžete vytvořit svůj vlastní datový typ, jakkoli složitý, popsat možné akce s tímto datovým typem, a pokud operace nevyžadují znalost vnitřní datové struktury, pak bude tento datový typ také jednoduchý z pohledu teorie vztahů. Můžete například vytvořit nový typ komplexních čísel jako záznam ve tvaru , kde . Můžete popsat funkce sčítání, násobení, odčítání a dělení a všechny operace se součástmi a provádět je pouze v rámci těchto operací. Pokud jsou pak v akcích s tímto typem použity pouze popsané operace, pak vnitřní struktura nehraje roli a datový typ zvenčí vypadá jako atomický.

Přesně takto implementují některé postrelační DBMS práci s libovolně složitými datovými typy vytvořenými uživateli.

domény

V relačním datovém modelu je pojem datového typu úzce spjat s pojmem doména, což lze považovat za upřesnění datového typu.

Doména je sémantický pojem. Doménu lze považovat za podmnožinu hodnot nějakého datového typu, které mají specifický význam. Doména se vyznačuje následujícími vlastnostmi:

  • Doména má jedinečný název (v rámci databáze)
  • Doména je definována na nějakém jednoduchém datovém typu nebo na jiné doméně
  • Doména může mít nějakou logickou podmínku, která jí umožňuje popsat podmnožinu dat, která je platná pro danou doménu
  • Doména má určitý význam

Například doménu znamenající „věk zaměstnance“ lze popsat jako následující podmnožinu množiny přirozených čísel:

Rozdíl mezi doménou a konceptem podmnožiny je právě v tom, že doména odráží sémantiku definovanou předmětnou oblastí. Může existovat několik domén, které se shodují jako podmnožiny, ale mají různé významy. Například domény "Hmotnost části" a "Dostupné množství" lze stejně tak popsat jako sadu nezáporných celých čísel, ale význam těchto domén bude odlišný a budou se jednat o různé domény.

Hlavní význam domén spočívá v tom, že domény omezují srovnání. Je logicky nesprávné porovnávat hodnoty z různých domén, i když jsou stejného typu. To odhaluje sémantické omezení domén. Syntakticky správný požadavek „uveďte seznam všech dílů, jejichž hmotnost dílu je větší než dostupné množství“ neodpovídá významu pojmů „množství“ a „hmotnost“.

Komentář. Koncept domény pomáhá správně modelovat předmětnou oblast. Při práci s reálným systémem je v zásadě možná situace, kdy potřebujete odpovědět na výše uvedený dotaz. Systém dá odpověď, ale pravděpodobně to nebude mít smysl.

Komentář. Ne všechny domény mají logickou podmínku, která omezuje možné hodnoty domény. V tomto případě je sada možných hodnot pro doménu stejná jako sada možných hodnot pro datový typ.

Komentář. Není vždy zřejmé, jak nastavit booleovskou podmínku, která omezuje možné hodnoty domény. Budu vděčný každému, kdo mi poskytne podmínku pro datový typ string specifikující doménu „Příjmení zaměstnance“. Je jasné, že řádky, které jsou příjmeními, by neměly začínat čísly, služebními znaky, měkkým znakem atd. Je ale příjmení „Ggggggyyyyy“ přijatelné? Proč ne? Očividně ne! Nebo si možná někdo bude říkat ze zášti. Potíže tohoto druhu vznikají proto, že význam skutečných jevů nelze vždy formálně popsat. Prostě jako všichni lidé intuitivně chápeme, co je to příjmení, ale nikdo nedokáže dát takovou formální definici, která by odlišila příjmení od řetězců, které příjmeními nejsou. Cesta z této situace je jednoduchá – spolehněte se na inteligenci zaměstnance zadávajícího jména do počítače.

Relace, atributy, relační n-tice

Definice a příklady

Základním konceptem relačního datového modelu je koncept vztah. Při definování pojmu vztah se budeme řídit knihou K. Data.

Definice 1. Atribut vztahu existuje pár takových<Имя_атрибута: Имя_домена>.
Názvy atributů musí být v rámci vztahu jedinečné. Názvy atributů vztahu jsou často stejné jako názvy odpovídajících domén.

Definice 2. přístup, definovaný na více doménách (ne nutně odlišných), obsahuje dvě části: hlavičku a tělo.
Hlavička vztahu obsahuje pevný počet atributů vztahu:

Tělo vztahu obsahuje mnoho relačních n-tic. Každý n-ticový vztah představuje množinu dvojic formuláře<Имя_атрибута: Значение_атрибута>:

tak, že hodnota atributu patří do domény

Vztah se obvykle píše takto:

nebo kratší

,

nebo jednoduše

Počet atributů ve vztahu se nazývá stupeň(nebo -arita) vztah.
Mohutnost množiny n-tic vztahu se nazývá Napájení vztah.

Vrátíme-li se k matematickému konceptu vztahu představenému v předchozí kapitole, můžeme vyvodit následující závěry:

Závěr 1: Hlava vztahu popisuje kartézský součin domén, na kterých je vztah definován. Hlavička je statická, při práci s databází se nemění. Pokud jsou atributy změněny, přidány nebo odstraněny ve vztahu, výsledkem bude jiný vztah (i se stejným názvem).

Závěr 2: Tělo relace je množina n-tic, tzn. podmnožina kartézského součinu domén. Tělo vztahu je tedy vlastně relací v matematickém smyslu slova. Tělo vztahu se může při práci s databází měnit – n-tice lze měnit, přidávat a mazat.

Příklad 1. Uvažujme vztah "Zaměstnanci" definovaný na doménách "Číslo_zam.", "Příjmení", "Plat", "Číslo_oddělení". Protože Protože jsou všechny domény různé, je vhodné pojmenovat atributy vztahu stejným způsobem jako odpovídající domény. Záhlaví vztahu vypadá takto:

Zaměstnanci (číslo_zaměstnance, příjmení, plat, číslo_oddělení)

Nechť vztah aktuálně obsahuje tři n-tice:

(1, Ivanov, 1000, 1)
(2, Petrov, 2000, 2)
(3, Sidorov, 3000, 1)

takový vztah je přirozeně reprezentován ve formě tabulky:

Tabulka 1 Vztah "Zaměstnanci"

Definice 3. Relační databáze nazývá množina vztahů.

Definice 4. Schéma relační databáze

Ačkoli jakýkoli vztah může být reprezentován jako tabulka, je třeba jasně chápat, že vztahy nejsou tabulkami. Jsou to blízké, ale ne stejné pojmy. Rozdíly mezi vztahy a tabulkami jsou diskutovány níže.

Termíny, se kterými relační datový model funguje, mají odpovídající „tabulková“ synonyma:

Relační termín

Odpovídající "tabulkový" termín

Databáze Sada stolů
Schéma databáze Sada záhlaví tabulky
přístup Stůl
Hlavička vztahu Název tabulky
Tělo vztahu Tělo stolu
Atribut vztahu Název sloupce tabulky
Vztahová n-tice Řádek tabulky
Stupeň (arita) vztahu Počet sloupců tabulky
Poměr výkonu Počet řádků tabulky
Domény a datové typy Typy dat v buňkách tabulky

Vlastnosti vztahů

Vlastnosti relací vyplývají přímo z výše uvedené definice relace. Tyto vlastnosti jsou hlavní rozdíly mezi relacemi a tabulkami.

  1. Ve vztahu nejsou žádné identické n-tice. Tělo relace je totiž množinou n-tic a jako každá množina nemůže obsahovat nerozlišitelné prvky (viz pojem množina v kapitole 1.). Tabulky, na rozdíl od vztahů, mohou obsahovat stejné řádky.
  2. N-tice nejsou seřazeny (shora dolů). Skutečně, přestože jsme vztah „Zaměstnanci“ zobrazili ve formě tabulky, nelze říci, že zaměstnanec Ivanov „předchází“ zaměstnance Petrova. Důvod je stejný - tělo vztahu je množina a množina není uspořádaná. To je druhý důvod, proč nelze identifikovat vztahy a tabulky – řádky v tabulkách jsou seřazeny. Stejný vztah může být reprezentován různými tabulkami, ve kterých jsou řádky v různém pořadí.
  3. Atributy nejsou seřazeny (zleva doprava). Protože Každý atribut má v rámci vztahu jedinečný název, na pořadí atributů pak nezáleží. Tato vlastnost poněkud odlišuje relaci od matematické definice relace (viz kapitola 1 - tam jsou uspořádané složky n-tic). To je také třetí důvod, proč nelze porovnávat vztahy a tabulky – sloupce v tabulce jsou seřazeny. Stejný vztah může být reprezentován různými tabulkami, ve kterých jsou sloupce v různém pořadí.
  4. Všechny hodnoty atributů jsou atomické. To vyplývá ze skutečnosti, že základní atributy mají atomické hodnoty. Toto je čtvrtý rozdíl mezi vztahy a tabulkami – do buněk tabulky můžete vložit cokoliv – pole, struktury a dokonce i jiné tabulky.

Komentář. Z vlastností relace vyplývá, že ne každá tabulka může relaci definovat. Aby tabulka definovala vztah, tabulka musí mít jednoduchou strukturu (obsahovat pouze řádky a sloupce, každý řádek má stejný počet polí), tabulka nesmí mít shodné řádky, libovolný sloupec v tabulce musí obsahovat data pouze jeden typ, všechny použité datové typy musí být jednoduché.

Komentář. Každý vztah lze zvážit třída ekvivalence tabulky, pro které jsou splněny následující podmínky:

  • Tabulky mají stejný počet sloupců.
  • Tabulky obsahují sloupce se stejnými názvy.
  • Sloupce se stejnými názvy obsahují data ze stejných domén.
  • Tabulky mají stejné řádky, ale pořadí sloupců se může lišit.

Všechny takové tabulky jsou různými reprezentacemi stejného vztahu.

První normální forma

Nejtěžší je definovat věci, kterým každý rozumí. Pokud neuvedete striktní, popisnou definici, pak vždy existuje možnost její nesprávné interpretace. Pokud uvedeme striktní formální definici, pak je zpravidla buď triviální, nebo příliš těžkopádná. Přesně taková je situace s definicí vztahu v První normální forma(1NF). O tom nelze vůbec nemluvit, protože... Na základě 1NF jsou konstruovány vyšší normální formy, které jsou dále diskutovány v kapitole. 6 a 7. Definovat 1NF je obtížné kvůli jeho triviálnosti. Uveďme proto jen několik vysvětlení.

Vysvětlení 1. Říká se, že vztah je v 1NF, pokud splňuje definici 2.

To je ve skutečnosti tautologie, protože z Definice 2 vyplývá, že žádné jiné vztahy neexistují. Definice 2 skutečně popisuje, co je vztah a co není, proto prostě neexistují žádné vztahy v neprvní normální formě.

Vysvětlení 2. Relace se nazývá 1NF, pokud její atributy obsahují pouze skalární (atomické) hodnoty.

Opět platí, že definice 2 se opírá o koncept domény a domény jsou definovány na jednoduchých datových typech.

Neprvní normální formu lze získat za předpokladu, že atributy relace lze definovat na komplexních datových typech – polích, strukturách nebo dokonce jiných relacích. Je snadné si představit tabulku, ve které některé buňky obsahují pole, jiné buňky obsahují složité uživatelsky definované struktury a další obsahují celé relační tabulky, které zase mohou obsahovat stejně složité objekty. Toto jsou schopnosti poskytované některými moderními po-relačními a objektovými DBMS.

Požadavek, že vztahy musí obsahovat pouze data jednoduchých typů, vysvětluje, proč se vztahy někdy nazývají ploché stoly(obyčejný stůl). Tabulky definující vztahy jsou totiž dvourozměrné. Jeden rozměr je určen seznamem sloupců, druhý rozměr je určen seznamem řádků. Dvojice souřadnic (číslo řádku, číslo sloupce) jednoznačně identifikuje buňku tabulky a hodnotu, kterou obsahuje. Pokud předpokládáme, že buňka tabulky může obsahovat data komplexního typu (pole, struktury, jiné tabulky), pak taková tabulka již nebude plochá. Pokud například buňka tabulky obsahuje pole, pak pro přístup k prvku pole potřebujete znát tři parametry (číslo řádku, číslo sloupce, číslo prvku v poli).

Vzniká tak třetí vysvětlení První normální formy:

Vysvětlení 3. Vztah je v 1NF, pokud se jedná o plochý stůl.

Záměrně se omezujeme na uvažování pouze klasické relační teorie, ve které mají všechny vztahy pouze atomické atributy a jsou zjevně v 1NF.

závěry

Relační datový model se skládá ze tří částí:

  • Konstrukční část
  • Nedílná součást
  • Manipulační část

Pouze v klasickém relačním modelu jednoduché (atomické) datové typy. Jednoduché datové typy nemají žádnou vnitřní strukturu.

domény- Jedná se o datové typy, které mají nějaký význam (sémantiku). Porovnání limitů domén - je nesprávné, i když možné, porovnávat hodnoty z různých domén.

přístup skládá se ze dvou částí - hlavička vztahu A tělesný vztah. Hlavička relace je analogická hlavičce tabulky. Hlava vztahu se skládá z atributů. Je volán počet atributů stupeň vztahu. Tělo vztahu je analogické s tělem tabulky. Tělo vztahu se skládá z n-tice. Relační n-tice je analogická řádku tabulky. Zavolá se počet n-tic vztahu poměr výkonu.

Vztah má následující vlastnosti:

  • Ve vztahu nejsou žádné identické n-tice.
  • N-tice nejsou seřazeny (shora dolů).
  • Atributy nejsou seřazeny (zleva doprava).
  • Všechny hodnoty atributů jsou atomické.

Relační databáze nazývá množina vztahů.

Schéma relační databáze data je sada hlaviček vztahů zahrnutých v databázi.

Vztah je in První normální forma(1NF) pokud obsahuje pouze skalární (atomické) hodnoty.