Relační model je způsob modelování stávající vztahy mezi několika kusů informací a objednání je mezi nimi. Toto modelování, které je založeno na matematických principech navržených EF Coddem, je často fyzicky přepisováno („ implementováno “) do databáze .
„Vztah“ nazýváme soubor atributů, které charakterizují návrh, nebo kombinace návrhů, například „zaměstnanec má číslo, má jméno, má zaměstnavatele“. V tomto příkladu jsou atributy zaměstnance: číslo, jméno a zaměstnavatel. Každá kombinace takto vytvořených propozic se nazývá n-tice nebo uspořádaná kolekce objektů. Například sada („1245“, „Jean Dupond“, „Compagnie des belles lettres“) představuje n-tiku ve vztahu „zaměstnanec“. Vztahy jsou obvykle zastoupeny ve formě tabulek. V předchozím příkladu by tabulka měla označení „zaměstnanec“. Praktici obvykle dávají pojmům „vztah“ a „stůl“ stejný význam. Podobně asimilují na jedné straně „řádek v tabulce“ a n-tici a na druhé straně „titulek sloupce v tabulce“ a atribut. Podle definice je každá n-tice ve vztahu jedinečná. Je identifikován atributem (jedinečný identifikátor nazývaný „primární klíč“) nebo kombinací několika atributů, které tvoří klíč. Pořadí n-tic není významné.
Codd definoval relační algebru a operátory, které umožňují vytvářet nové vztahy kombinací dříve definovaných vztahů. Coddovy nápady byly implementovány - víceméně věrně - v systémech správy relačních databází nebo RDBMS , jako je experimentální projekt IBM System R , pak v komerčních produktech jako Oracle , DB2 nebo MySQL a v jazyce SQL pro manipulaci s daty .
Relační model je dnes jedním z nejpoužívanějších modelů. „První systémy pro správu databází ( DBMS nebo DBMS English) postavené na tomto modelu byly SQL / DS a DB2 pro IBM , které se narodily jako jazyk pro zpracování relačních databází, SQL (Structured Query Language). Relační model je založen na dvou výkonných nástrojích: relační algebře (tj. Matematickém pojetí relace v teorii množin) a pojmu kartézského součinu . Tento model definuje způsob reprezentace dat, operace, které lze provést, a mechanismy pro zachování konzistence dat . EF Codd popsal principy a design relačního modelu ve své knize „Relační model dat pro velké sdílené datové banky“.
Podle EF Codda se s databází definovanou podle relačního modelu manipuluje pomocí sady formálních relačních operací. Relační operace umožňují například vytvořit novou relaci, která je v tomto modelu reprezentována, pomocí dvourozměrné tabulky.
Relační model definuje 5 základních operátorů, kterými jsou sjednocení, rozdíl, výběr (nebo omezení), projekce a kartézský součin. Výhodou těchto operátorů je, že jsou uzavřené (jedná se o relace a návratové relace, které lze díky operátorům opět kombinovat).
Operátor sjednocení umožňuje kombinovat dva vztahy (nebo „tabulky“) stejného schématu (tj. Dva vztahy se stejnými atributy) a vrátí vztah stejného schématu jako počáteční vztahy a jehož sada n-tic (tj. řekněme n-tice nebo „řádky pole“) je množinové sjednocení n-tic vztahů, které byly zkombinovány (set znamená, že v pořadí řádků tabulky není pořadí a nemohou existovat duplikáty) .
Operátor rozdílu je podobný (ale ne symetrický) a vrací n-tice, které se objevují v prvním vztahu, ale ne ve druhém.
Operátor výběru (unární) vrací podmnožinu n-tic počátečního vztahu. Musí ověřit kritérium vytvořené na základě konjunkce (a), disjunkce (nebo), negace trojic (atribut, komparátor, hodnota). Komparátorem může být>, <, =, <>, ... Pojem hodnota může být buď konstanta číselné hodnoty typu, znakový řetězec, ... nebo atribut (ale pak se porovnání odehrává na stejné n-tici ). Počet řádků pak klesá, ale počet sloupců zůstává stejný.
Operátor projekce (unární) se používá ke snížení počtu atributů zachovaných ve výběru. Počet sloupců se poté sníží. Tato operace může vést ke snížení počtu řádků (při absenci identifikátoru klíčového řádku). V příkladu tabulky „zaměstnanec“ lze projekci provést zachováním pouze atributů „název“ a „počet zaměstnanců“, tj. Výsledná tabulka zmenšená na dva sloupce.
Kartézský operátor produktu (binární) se používá k vytvoření relace, jejíž diagram je tvořen atributy (popisky sloupců tabulky) těchto dvou relací. Poskytnuté n-tice jsou postaveny na základě karteziánského součinu (všechny možné kombinace mezi každou řadou prvního vztahu a každou z linií druhého vztahu)
Z těchto 5 základních operátorů lze definovat derivační operátory (neposkytují žádnou další vyšetřovací sílu, ale usnadňují manipulaci). Operátor křižovatky (binární) poskytuje n-tice přítomné ve dvou vztazích, operátor spojení umožňuje konstruovat řadu n-tic, které obsahují společný identifikátor z kartézského produktu, rozdělení umožňující snadnější vyjádření univerzálního kvantifikátoru (kombinace rozdíl mezi vztahy získanými použitím kartézských součinů a křižovatek).
Jazyk podporující použití systému správy databází založeného na relačním modelu je SQL .
Ústřední myšlenkou relačního modelu je popsat datovou sadu jako kolekci predikátů na konečné sadě základních proměnných, popisující omezení hodnot a možné kombinace hodnot. Obsah výsledné datové sady v okamžiku t, konceptuální datový model , lze přepsat do databáze prostřednictvím fyzického datového modelu . Jedná se o konečný (logický) model databáze, konkrétně o sadu relací, jednu za proměnnou relace, takže jsou splněny všechny predikáty. Predikátem je také požadavek na informace z databáze (databázový dotaz). Velkou výhodou dat vytvořených z tohoto relačního modelu je, že uživatel může ve svém fyzickém přepisu do databáze k nim přistupovat, aniž by věděl, kde jsou data fyzicky nebo jak jsou uložena. To je velká výhoda oproti hierarchickému modelu implementovanému v hierarchických databázích nebo síťovému modelu .
Po dokončení relačního modelování lze vztahy zhmotnit ve formě dvourozměrných tabulek. Každý sloupec má identifikátor, který představuje doménu. Říkáme n-tici nebo n-tici sadu hodnot nekoordinovaných atributů, to znamená řádek tabulky. Vztah lze tedy definovat sadou n-tic. „Každá relační operace v tabulce generuje novou relaci a relační operátory - operátory jazyka SQL, umožňují popsat výsledek, který chceme získat, aniž bychom museli popisovat postup nezbytný k dosažení výsledku: říkáme, že relační jazyk je „neprocesní“.
K propojení vztahů mezi nimi používáme pojem primární klíč a cizí klíč . Primárním klíčem relace je atribut nebo sada atributů, které umožňují jednoznačně určit n-tici (například atribut Customer Reference umožňuje jednoznačně identifikovat n-tici n-tice vztahu se zákazníkem). Jediná znalost primárního klíče umožňuje identifikovat jakýkoli řádek v tabulce. Cizí klíč je také identifikátor, který odkazuje na jedinečný klíč v jiné tabulce. Například ve vztahu Faktura obsahuje atribut Zákazník odkaz na zákazníka, a proto umožňuje najít všechny informace dotyčného zákazníka ve vztahu Zákazník.
V matematickém smyslu je vztah podmnožinou kartézského součinu určitých domén. Doména je reprezentována jako sada hodnot: R = (A1 X A2 X A3).
Tento vztah R je reprezentován tabulkou 3 sloupců (tři atributy) A1, A2, A3, z nichž každý řádek je charakterizován různými hodnotami v polích A1, A2, A3. K modelování entity „auto“ ve skutečném světě jako součást vezmeme značku, barvu, poznávací značku a datum vytvoření: auto (značka, barva, poznávací značka, datum vytvoření). Domény odpovídající identifikátorům sloupců lze určit pomocí následujících sad hodnot:
značka : řetězec od 1 do 50 abecedních znaků.
barva : řetězec 1 až 30 abecedních znaků.
SPZ : řetězec 1 až 10 abecedních znaků.
datum vytvoření : data od1. st leden je 1800 až do současnosti.
Základní objekty, na které se v relačním modelování často odkazuje, jsou domény, vztahy, atributy, stupně a n-tice. Následující obrázek dobře ilustruje tyto koncepty:
Doména představuje konečnou sadu možných hodnot pro daný atribut, ke kterému definujeme také sadu operátorů, které lze použít na hodnoty domény. Je však nutné rozlišovat mezi doménami a jejich fyzickými reprezentacemi v systému, protože doménu lze reprezentovat v základním typu, který má operace, které nereprezentují doménu.
Například na obrázku výše definujeme D4 jako všechny země Země. Protože atribut Země patří k D4, jsou možné hodnoty pro atribut omezeny na hodnoty definované v D4 (ci: všechny země Země). Předpokládejme také, že doména D4 definuje pouze jednu operaci, velká písmena. V tomto případě, i když je země fyzicky reprezentována řetězcem znaků, nebude možné použít jiné operace než velká písmena.
V zásadě je n-tice záznam (jeden řádek) v databázi.
Formálnější je n-tice atomový prvek obsahující záhlaví a tělo. Záhlaví je sada názvů atributů a jejich domén a tělo je sada trojic <Název domény, Název atributu, Hodnota>.
Atribut je jednoduše hodnota spojená s jednou z trojic v n-tici.
Kandidát klíč je soubor dat, který umožní, aby index každý řádek dané tabulky diferencovaně. Z kandidátských klíčů je jeden označen jako primární klíč tabulky.
Relace (nebo tabulka) je prvek složený ze záhlaví a těla. Záhlaví je sada názvů atributů a jejich domén a tělo je sada n-tic se stejnou hlavičkou jako relace.
Dávejte pozor, aby nedošlo k záměně s pojmem vztah mezi tabulkami.
Stupeň je počet atributů ve vztahu.
Relační model předpokládá tři typy vztahů mezi tabulkami: 1: 1, 1: N a N: N. Vztahy mezi tabulkami jsou definovány ve sdíleném sloupci. Tento model přímo nepodporuje vztahy N: N, které budou ve skutečnosti převedeny do dvou vztahů 1: N.
Ve dvou tabulkách A a B vztahu 1: 1 se n-tice tabulky A týká pouze n-tice tabulky B.
Například ministr je v čele ministerstva a ministerstvo má pouze jednoho ministra: tabulka „Ministries“ má vztah 1: 1 s tabulkou „Ministers“.
Ve dvou tabulkách A a B relace 1: N může n-tice tabulky A odkazovat na několik n-tic tabulky B a n-tice tabulky B pouze na n-tici tabulky A.
Například jeden člen tabulky „Internátní školy“ se může vztahovat k několika členům tabulky „Studenti“.
Ve dvou tabulkách A a B relace N: N může n-tice tabulky A odkazovat na několik n-tic tabulky B a n-tice tabulky B může odkazovat na několik n-tic tabulky A. Vztah N: N lze proto rozložit na dva vztahy 1: N.
Například na střední škole má třída několik učitelů a učitel je odpovědný za několik tříd: tabulky „Třídy“ a „Učitelé“ mají vztah N: N.