• Relační algebra, operace relační algebry. Relační algebra v databázích: operace, příklady

    Přidat - provést záznam do databáze a v závislosti na režimu zařazení jej buď zahrnout do skupinového vztahu, kde je deklarován jako podřízený, nebo nezařadit do žádného skupinového vztahu.
    Zahrnout do skupinových vztahů - přidružit existující podřízený záznam k záznamu vlastníka.
    Přepnout - propojit existující podřízený záznam s jiným záznamem vlastníka ve stejném skupinovém vztahu.
    Obnovit - změnit hodnotu prvků dříve načteného záznamu.
    Výpis - extrahovat záznamy sekvenčně podle hodnoty klíče a také pomocí skupinových vztahů - od vlastníka můžete přejít na záznamy členů az podřízeného záznamu na vlastníka sady.
    Vymazat - odstranit záznam z databáze. Pokud je tato položka vlastníkem skupinového vztahu, je analyzována třída členství podřízených položek. Požadovaní členové musí být předem vyloučeni ze vztahu skupiny, fixní členové se smažou spolu s vlastníkem, volitelné zůstanou v databázi.
    Vyloučit ze skupinového vztahu - přerušit spojení mezi záznamem vlastníka a záznamem člena.

    Relační databázový model

    Za prvé, všechna data v modelu jsou prezentována pouze ve formě tabulek a vztahů mezi nimi. Relační model je jediný ze všech, který poskytuje jednotnou reprezentaci dat.

    Druhý prvek modely je relační úplný jazyk. úplnost jazyk v aplikaci na relační model znamená, že musí splňovat nějaké operace relační algebry. Kromě toho musí jazyk všechny popisovat žádost ve formě operací s tabulkami, nikoli s jejich řádky. Jedním z těchto jazyků je SQL.

    Třetí prvek relační model vyžaduje, aby se relační model zachoval jistý integritní omezení. Každý řádek v tabulce musí mít jedinečný identifikátor nazývaný primární klíč. Druhé omezení je umístěno na integrita propojení mezi tabulkami.

    Objektově orientovaný model.

    V objektově orientovaných databázích se na rozdíl od relačních databází neukládají záznamy, ale objekty (text, audio a video informace, dokumenty a další objekty). Důležitý je také úkol uložit stav objektů mezi restartuje aplikačního programu. Nicméně vyvinutý matematický aparát, na kterém generál objektově orientovaný datový model, neexistuje.

    Většina OODBMS je knihovna, jejíž postupy pro správu dat jsou zahrnuty aplikačního programu. Přes výhody objektově orientovaných systémů - implementace komplexní datové typy, spojení s programovacími jazyky atd. - pro blízkou budoucnost nadřazenost vztahové DBMS zaručena.

    Objekt- relační DBMS

    Rozdíl mezi objektově-relačním a objektovým DBMS: první jsou nadstavbou nad relačním schématem, zatímco druhé jsou zpočátku objektově orientované. hlavní rys a rozdíl mezi objektově-relačním (stejně jako objektovým) DBMS od vztahového spočívá v tom, že OR DBMS integrovaný s objektově orientovaným (OO) programovacím jazykem, interním nebo externím, jako je C++, Jáva.

    Objekt relační DBMS jsou například známé Databáze Oracle , Microsoft SQL Server, PostgreSQL, Microsoft Access.

    Relační přístup k budování doménového modelu.

    · předmětová oblast modelované množinou jednotlivců informační objekty(entity), z nichž každá je popsána svou dvourozměrnou tabulkou;

    Mezi tabulkami existují vztahy

    Každý prvek tabulky je jeden datový prvek;

    · 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 popisuje jeden atribut entity;

    · každý sloupec má jedinečný název;

    · řetězec obsahuje hodnoty atributů pro jednu instanci entity;

    V tabulce nejsou žádné identické řádky (přítomnost primárního klíče);

    Pořadí řádků a sloupců může být libovolné.

    Normalizace vztahů- formální aparát omezení tvorby vztahů (tabulek), který umožňuje eliminovat duplicitu, zajišťuje konzistenci dat uložených v databázi, snižuje mzdové náklady na údržbu (zadávání, opravy) databáze.

    První normální forma

    Vztah (tabulka) se nazývá normalizovaný nebo redukovaný na první normální forma pokud jsou všechny jeho atributy jednoduché (v následujícím jsou nedělitelné).

    Převést vztah na první normální forma může vést ke zvýšení počtu atributů (polí) vztahu a změně klíče.

    Stůl je v druhá normální forma pokud splňuje požadavky prvního normální forma a všechna jeho pole, která nejsou zahrnuta v primárním klíči, jsou spojena úplným funkční závislost s primárním klíčem, tedy jakýmkoli ne klíčové pole jednoznačně identifikován celou sadou klíčová pole.

    · tabulka by měla obsahovat údaje o jednom typu objektů;

    · každá tabulka musí obsahovat jedno pole nebo několik polí, které tvoří jedinečný identifikátor (nebo primární klíč) pro každý řádek;

    · všechna neklíčová pole musí být identifikována úplným jednoznačným identifikátorem dané tabulky.

    třetí normální forma

    Požadavek třetí normální forma se redukuje na skutečnost, že všechna neklíčová pole závisí pouze na primárním klíči a nezávisí na sobě. Jinými slovy, měli byste být schopni změnit hodnotu libovolného neklíčového pole, aniž byste změnili hodnotu jakéhokoli jiného databázového pole.

    Typy odkazů. Vlastnosti vztahu

    · Vztah jeden k jednomu(1:1) znamená, že každý záznam v jedné tabulce odpovídá nejvýše jednomu záznamu v jiné tabulce.

    · Vztah jeden k mnoha(1:M) znamená, že každý záznam v jedné tabulce odpovídá 0 nebo 1 nebo více záznamům v jiné tabulce.

    · Vztah mnoho ku jednomu(M:1) je podobný typu one-to-many zvažovanému dříve. Typ vztahu mezi objekty závisí na úhlu pohledu.

    · Vztah mnoho k mnoha(MM). dochází mezi dvěma tabulkami, když každý záznam v jedné tabulce odpovídá 0 nebo více záznamům v druhé tabulce a naopak.

    Jednoduché a složené klíče

    primární klíč se může skládat z jednoho pole tabulky, jehož hodnoty jsou pro každý záznam jedinečné. Takový primární klíč nazývaný jednoduchý klíč.

    Li stůl nemá jediné jedinečné pole, primární klíč může být složen z několika polí, jejichž soubor hodnot zaručuje jedinečnost.

    Takový primární klíč volal kompozitní klíč

    Všechny typy vztahů jsou implementovány pomocí primárních klíčů a odkazů na jejich hodnoty v jiných tabulkách. Takové odkazy, které jsou kopiemi primárních klíčů jiných tabulek, se nazývají cizí klíče.

    Považováno za hierarchické a příklad sítě Databáze, obsahující informace o divizích podniku a zaměstnancích v nich pracujících, bude ve vztahu k relačnímu modelu vypadat takto:

    S ligatura"mnoho-k-mnoho“ se implementuje prostřednictvím dodatkové tabulky, s jejíž pomocí toto spojení bude redukován na dva odkazy typu " jeden k mnoha".

    Databázové systémy jsou obvykle vybaveny dotazovacím jazykem, který může svým uživatelům pomoci dotazovat se na instance. Existují dva takové typy – relační algebra a relační kalkul. První je procedurální, která bere instance relací jako vstup a příklady relací výstupů jako výstup. Využívá k tomu unární popř binární počet. Relační algebra se provádí rekurzivně a považuje se za vztahy.

    Kartézský součin (X)

    Spojuje informace ze dvou různých vztahů do jednoho.

    Označení - r Χ s,

    kde r a s jsou poměry a jejich výstup bude definován jako

    r Χ s = (qt | q ∈ r a t ∈ s).

    Závěr. Nastaví vztah, který zobrazí všechny knihy a články napsané pomocí učebnice.

    Operace přejmenování (ρ).

    Relace relační algebry jsou výsledky, ale bez jakéhokoli jména. Operace přejmenování umožňuje změnit výstupní hodnotu označenou malým řeckým písmenem ρ .

    Označení - ρ x(E),

    kde výsledek výrazu E je uložen s názvem x.

    Další operace:

    • nastavit křižovatku;
    • úkol;
    • přirozené spojení.

    vztahový kalkul

    Je to neprocedurální dotazovací jazyk, to znamená, že říká, co má dělat, ale nevysvětluje, jak to implementovat. Relační kalkul existuje ve dvou formách:

    • korelační počet n-tice;
    • filtrování proměnných rozsahů.

    Notation - T/State: Vrátí všechny T n-tice, které splňují podmínku. Výsledek. Vrátí n-tice se jménem. TRC lze kvantifikovat. Můžete použít existenciální (∃) a univerzální kvantifikátory (∀). Závěr. Výše uvedený dotaz poskytne stejný výsledek jako předchozí.

    Doménový relační kalkul DRC

    Proměnná filtru používá doménu atributů místo celočíselných hodnot n-tice (jak je to provedeno v TRC uvedeném výše).

    Zápis - (a 1 , a 2 , a 3 , ..., a n | P (a 1 , a 2 , a 3 , ..., a n)),

    kde a1, a2 jsou atributy a P označuje vzorce vytvořené s interními hodnotami.

    Závěr. Nastaví článek, stránku a téma ze vztahu TutorialsPoint, kde předmět je databáze.

    Stejně jako TRC lze i DRC zapsat pomocí existenciálních a univerzálních kvantifikátorů. DRC také zahrnuje operátory relační algebry. Síla vyjádření výpočtu, počtu a korelace vztahů mezi body je ekvivalentní.

    Variace a schémata relačního počtu a algebry

    Model ER, když je konceptualizován v diagramech, dává dobrá recenze základní vztahy, které jsou snáze pochopitelné. Schematické reprezentace mohou být mapovány na relační schéma, tj. mohou být vytvořeny společně. Nelze importovat všechna omezení ER do relační model, ale lze vytvořit přibližnou strukturu. Pro převod grafů do tohoto systému je k dispozici několik procesů a algoritmů. Některé z nich jsou automatizované, jiné jsou vytvářeny ručně. ER grafy se skládají hlavně z následujících kritérií:

    • entita a její atributy;
    • odkaz, který je asociací mezi výše uvedenými hodnotami.

    Srovnávání objektů a vztahů probíhá různými způsoby a schématy. Entita je například objekt reálného světa s některými atributy. Proces párování, algoritmus je následující:

    • vytvořit tabulku pro každý objekt;
    • atributy by se měly stát poli tabulek s odpovídajícími datovými typy;
    • deklarovat primární klíč.

    Vztah je asociace mezi entitami. Proces kompilace je následující:

    • vytvořit tabulku pro vztahy;
    • přidat primární klíče všechny zúčastněné entity jako pole tabulky s jejich příslušnými datovými typy;
    • pokud má vztah nějaký atribut, nastavte každý atribut jako pole tabulky;
    • připojte se k primárnímu klíči, který tvoří všechny ostatní pro zúčastněné objekty;
    • zadejte všechna omezení cizího klíče.

    K zobrazení slabých množin a hierarchických objektů dochází podle určitého systému. Nejprve je nutné pochopit podstatné základy a významy. Slabá sada funkcí je taková, ke které není přidružen žádný primární klíč. Proces zobrazení je následující:

    • vytvořit tabulku pro slabá sestava předměty;
    • přidat všechny atributy do schématu jako pole;
    • specifikovat primární klíč pro identifikaci;
    • nastavit všechna omezení cizího klíče.

    Mapování hierarchických objektů je založeno na specializaci nebo zobecnění jazyka relační algebry ve formě sekvenčních entit. Algoritmus je následující:

    • vytvářet tabulky pro všechny objekty vyšší nižší úrovně;
    • přidat primární klíče;
    • na nízké úrovni implementovat všechny ostatní atributy objektů nižší úrovně;
    • deklarovat primární klíče tabulky;
    • nastavit omezení cizího klíče.

    Existující možnosti pro popis, uložení, změnu informací

    SQL je programovací jazyk pro relační databáze. Je vyvinut přes algebru a korelační počet n-tic. SQL přichází jako balíček se všemi hlavními distribucemi DBMS. Obsahuje data i jazyky pro manipulaci s nimi. Použití definičních vlastností SQL data relační algebry, můžete navrhovat a měnit schéma databáze, zatímco vlastnosti ovládání a úprav, stejně jako změny dat, umožňují ukládat a získávat informace nainstalované v systému. K definici struktury a systému používá následující sadu příkazů:

    • vytváří nové tabulky a pohledy z DBMS.
    • hází příkazy.
    • změní schéma databáze.
    • tento příkaz přidá atribut k objektu typu string.

    SQL je vybaven jazykem pro manipulaci s daty (DML). Upravuje instanci databáze vkládáním, aktualizací a odstraňováním informací. DML je zodpovědná za změnu všech dat. SQL obsahuje v sekci DML následující sadu příkazů:

    1. SELECT je jedním z základní příkazyžádost. Je to obdoba projekční operace relační algebry. Vybírá atributy na základě podmínky popsané v klauzuli WHERE.
    2. FROM - Tato sekce přebírá název jako argument, ze kterého mají být atributy vybrány/promítnuty. V případě, že je uvedeno více než jeden název, odpovídá tato položka kartézskému součinu.
    3. KDE – Tato část definuje predikát nebo podmínky, které musí být splněny, aby byl projektovaný atribut kvalifikován.

    Existují také příkazy:

    • vložit;
    • měnící se hodnoty;
    • odstranění.

    Vytváření dotazů relační algebry

    Při konstrukci vyhledávání je úkolem najít strukturu operací, které povedou ke správnému výstupu. Základní operace relační algebry jsou jednoduché operace s jedním nebo dvěma vztahy jako operandy. Kombinované efekty sekvence určují konečný výsledek. Vzhledem k tomu, že systém relační algebry v databázích je poměrně jednoduchý, lze před dosažením konečného výstupu získat mnoho mezivýsledků, které se také používají jako operandy, které produkují nová přijatá data.

    Pro většinu operátorů nezáleží na pořadí dotazů a jejich provádění, což znamená, že stejného výstupu lze dosáhnout tvarováním a kombinováním mezilehlých dat různými způsoby. V praxi je vyhledávání v databázi poměrně snadné. Systém pro provádění operací a mezivýsledky určuje optimalizátor dotazů. Při formulaci otázek, požadavků, musíte
    nejprve zvolte, které vztahy jsou potřebné k dosažení odpovědi, a poté určete operace a mezivýsledky. Strukturu dotazu relační algebry v databázi výsledků lze znázornit jako diagram. Optimalizátoři požadavků se snaží organizovat provádění co nejefektivněji. V praxi to obvykle znamená, že se snaží co nejrychleji minimalizovat mezivýsledky. K tomu pomohou běžné příklady relační algebry.

    Informace o vozech modelového roku 1996, kde byly při kontrole za rok 1999 zjištěny nedostatky.

    Nejprve se zobrazí informace o strojích, aby bylo možné porozumět hodnotám všech atributů vztahu. Informace o kontrolách se ukládají do tabulky "Kontrola" a v případě zjištění závad se zapisují do tabulky "Problém". Tyto tři tabulky jsou tedy potřebné k získání požadovaných informací.

    Zajímavé jsou pouze vozy z roku 1996. Sestava vozidlo je reprezentováno jako hodnota nastaveného atributu v řádku tabulky informací o vozidle. První mezivýsledek se skládá z n-tic představujících varianty z roku 1996.

    Jsou tedy potřeba pouze řádky, které pokrývají toto období. Chcete-li je extrahovat, musíte použít výběr. Nyní jsou auta a kontroly, které byly vyžadovány. Řetězce jsou pak zřetězeny pomocí operace zřetězení. Musí být připojeny ke společnému číslu registru, protože je to jediný společný sloupec, používá se přirozené spojení.

    Chcete-li zjistit, zda byly během testů nalezeny nějaké problémy, musíte problémové čáry přiřadit k testu. Po připojení řídicích řad k vozům můžete tento výsledek připojit k tabulce poruch. Přidružení musí být založeno na společném registračním čísle a ověřeném datu. Toto jsou jediné společné sloupce v tabulkách, proto se používá přirozené spojení.

    Varianty výpočtů bez mezivýsledků

    Požadované informace: Jméno řidiče pro modelový rok 1995 nebo starší vozidla, která nebyla testována pro rok 2000. Jméno je v tabulce "Ovladač". Vymáhání práva jsou popsány v tabulce "Kontrola a vozy v jídelním voze". Jsou tedy potřeba tyto tři tabulky. Nejprve musíte zjistit vozy, které nebyly pro rok 2000 kontrolovány. Tento problém není možné řešit pouze pomocí kontrol uvedených v tabulce, protože obsahuje údaje o kontrolách, které byly provedeny, nikoli o kontrolách, které nebyly provedeny. Tento problém se řeší hledáním doplňkových vozů, které jsou kontrolovány před rokem 2000. Ve skutečnosti jsou potřeba pouze jejich registrační čísla.

    Kromě výše uvedených příkladů jsou uvedeny i další příklady, které ukazují, jak můžete jakékoli informace změnit nebo najít. Varianty dotazů lze optimalizovat pomocí speciálních operací. Ve skutečnosti, aby bylo vyhledávání a hledání dat co nejjednodušší a nejjednodušší, existuje model relačního počtu.

    Kde jsou informace zabezpečeny a chráněny

    Algebry jsou uloženy ve formátech souborů obsahujících záznamy. Na fyzické úrovni faktické informace jsou na některých zařízeních fixovány v elektromagnetickém formátu. Tato úložná zařízení lze rozdělit do tří kategorií:

    1. Hlavní. Tato kategorie zahrnuje paměť, která je přímo přístupná CPU. registry, rychlá paměť(cache) a hlavní (RAM) jsou přímo přístupné centrále, protože jsou všechny umístěny na základní desce nebo čipové sadě. Toto úložiště je obvykle velmi malé, ultra rychlé a nestabilní. K udržení je potřeba stát trvalý zdroj výživa. V případě selhání dojde ke ztrátě všech jeho dat.
    2. Sekundární. Slouží k uložení informací pro budoucí použití popř Rezervovat kopii. Zahrnuje paměťová zařízení, která nejsou součástí čipsetu resp základní deska například procesor magnetické disky, optické disky (DVD, CD atd.), pevné disky, flash disky a magnetické pásky.
    3. Terciární. Slouží k ukládání velkého množství dat. Vzhledem k tomu, že taková úložná zařízení jsou mimo počítačový systém, jsou z hlediska rychlosti nejpomalejší. Tyto úložné vychytávky slouží především k zálohování celého systému. Optické disky a magnetické pásky jsou široce používány jako terciární úložiště.

    Speciální operace relační algebry jsou důležité pro efektivitu dotazování.

    Skladovací struktura

    Počítačový systém má dobře definovanou hierarchii paměti. CPU má přímý přístup k hlavnímu systému a také k vestavěným registrům. Doba přístupu k hlavní paměti je samozřejmě kratší než rychlost procesoru. Pro minimalizaci této nesrovnalosti je zavedena mezipaměť. Mezipaměť poskytuje nejrychlejší přístupový čas a obsahuje data, ke kterým CPU nejčastěji přistupuje.

    paměť s nejvíce rychlý přístup je nejdražší. Velká úložná zařízení poskytují malou rychlost a jsou levnější, ale mohou ukládat obrovské množství dat ve srovnání s registrem procesoru nebo mezipamětí.

    Magnetické a pevné disky jsou nejběžnějšími sekundárními úložnými zařízeními v moderní době počítačové systémy. Říká se jim magnetické, skládají se z kovové základny. Tyto kotouče jsou umístěny svisle na vřetenu. Čtecí/zapisovací hlava se pohybuje mezi nimi a používá se k magnetizaci nebo odstranění takového místa pod nimi. Může být rozpoznán jako 0 (nula) nebo 1 (jedna).

    Pevné disky jsou formátovány v přesně definovaném pořadí pro efektivní ukládání dat. Má mnoho soustředných kruhů nazývaných cesty. Každá stopa je dále rozdělena do sektorů, které obvykle obsahují 512 bajtů dat.

    Operace se soubory

    Operace na jazykovém systému relační algebry a jeho databázi lze obecně rozdělit do dvou kategorií:

    • Aktualizace;
    • Vyhledávání.

    První kategorie mění hodnoty dat vložením, odstraněním nebo aktualizací. Na druhou stranu vyhledávací operace neupravují informace, ale extrahují je po volitelném podmíněném filtrování. U obou typů operací hraje významnou roli výběr. Kromě vytvoření a odstranění souboru s nimi lze provést několik operací:

    1. Open - existuje v jednom ze dvou režimů čtení nebo zápisu. V prvním případě operační systém nikomu nedovolí data měnit. Jinými slovy, data se pouze čtou. Soubory otevřené v režimu čtení lze sdílet mezi více objekty. Režim zápisu umožňuje měnit data. Soubory lze číst, ale nelze je sdílet.
    2. Zavřít je nejdůležitější operace z hlediska operační systém, protože odstraní všechny zámky (pokud je v režimu veřejný přístup), uloží data (pokud byla upravena) na sekundární médium a uvolní všechny vyrovnávací paměti a obslužné rutiny přidružené k souboru.
    3. Indexování je metoda informační struktury pro efektivní extrakci záznamů ze souborů systému na základě některých atributů, kde byl tento systém implementován. Určeno na základě atributů.

    Indexování může být následujícího typu:

    1. Primární je definováno v objednaném datovém souboru. Informační soubor je uspořádán do klíčového pole.
    2. Sekundární index je generován z pole, které je kandidátním klíčem a má jedinečná hodnota v každém záznamu nebo ne klíč s duplicitními hodnotami.
    3. Shlukování je definováno v uspořádaném datovém souboru v neklíčovém poli.

    Systém správy databází neboli DBMS označuje technologii pro ukládání a získávání uživatelských informací s maximální efektivitou spolu s vhodnými bezpečnostními opatřeními. Detailní zkoumání této problematiky vede k závěru, že relační algebra je jazyk operátorů, kteří berou vztahy jako argumenty a ve výsledku je vracejí.

    Nejlepší místo, kde se začít učit SQL, je se základy relačních databází. Vysvětlím, co je to relační databáze, co je to vztah a jaké operace s nimi lze provádět.

    Jít …

    Co je SQL?

    SQL (Structured Query Language)strukturovaný jazyk dotazy, obecný počítačový jazyk používaný k vytváření, úpravě a manipulaci s daty relační databáze data

    Co je to relační databáze?

    Jedná se o soubor vzájemně souvisejících dat uložených ve formě vztahů.

    co je to vztah?

    Vztah je soubor povozů

    Co je to n-tice?

    Kartáž je určitá množina prvků a každý prvek množiny patří do nějaké množiny (můžeme říci typ prvku). Jednoduše řečeno, n-tice je seznam prvků, mezi kterými existuje vztah nebo jak se říká mít postoj. N-tici můžete reprezentovat pomocí grafu nebo tabulky skládající se z jednoho řádku.

    Ukážu dvou-tici pomocí grafu:

    Vrcholy grafu jsou prvky nějaké jejich množiny, v tento případ, to je prvek a1 z mnoha A a prvek b1 z mnoha B. Hrana mezi vrcholy označuje spojení mezi prvky nebo jak se prvek říká a1 je ve vztahu k b1.

    Stejnou n-tici předvedu pomocí tabulky:

    Číslo 1 na a1 A b1, byl vybrán svévolně.

    Dostali jsme se tedy k elementární cihle, tzn. před průvod, začněme odvíjet naši logiku zpět, abychom pochopili, co je relační databáze A SQL.

    Jak jsem řekl, vztah je množina n-tic, a omezené (pokud se odchýlíme od teorie). Vztahy lze znázornit formou matice, grafu, tabulky.

    Ukážu, jak znázornit vztah ve formě grafu:

    Graf ukazuje, že existuje několik n-tic a která n-tice je první a která druhá a třetí na tom nezáleží, je to jen hromada n-tic. V sadě není takový koncept jako "první", "druhý" a "třetí", je to všechno najednou a pořadí není důležité.

    Ukážu, jak znázornit vztah ve formě tabulky:

    Posloupnost řádků nebo n-tice ve stole nedůležité, z grafu jsem je vzal v náhodném pořadí.

    Je také důležité poznamenat, že sekvence sloupců Stejný nedůležité, pokud je prohodíme, pak z pohledu teorie množin, postoj zůstane nezměněn.. To je právě ta negativní stránka tabulky jako způsob vizualizace vztahu, protože pro nás bude psychologicky obtížné nazvat tabulky rovnocennými, pokud mají sloupce a řádky v jiném pořadí.

    Jak bylo řečeno na samém začátku, že relační databáze je kolekce souvisejících dat uložených jako vztahy. Pokud budeme reprezentovat vztahy ve formě tabulek, pak relační databáze je sada vzájemně propojených tabulek. vychází SQL je jazyk pro vytváření, úpravy a správu tabulek v relační databázi..

    Takže jsme přišli na logický řetězec: SQL, relační databáze, vztahy, n-tice .. Nyní se dotkneme jazyk SQL, tj. téma manipulace se vztahy, je důležité pochopit jaké operace můžeme provádět se vztahy.

    Není možné předvést všechny operace, vzhledem k jejich velké množství, dám jen ty základní:

    1. Výběr (další názvy operací jsou výběr, omezení)

    Úkon "výběr" nebo "vzorek" provedeno nad jedním vztahem, jeho význam je takový za dané podmínky je vybrána podmnožina n-tic. Výsledkem operace je relace lišící se od původního menším počtem n-tic. Příklad:

    Nechť existuje vztah, říkejme tomu "zdrojová tabulka č. 1":

    Výsledek "Vzorky" z původní tabulky č. 1 za předpokladu, že A = a3

    V jazyce SQL:

    syntaxe - SELECT * FROM název_tabulky WHERE název_sloupce=hodnota

    SELECT * FROM zdrojová_tabulka WHERE A=a3

    2. Projekce

    Úkon "projekce" provedeno nad jedním vztahem, což má za následek vznik nového vztah se zadanými sloupci tabulky.

    Například existuje vztah, říkejme tomu "zdrojová tabulka č. 2":

    Proveďme operaci s tímto vztahem "projekce" podle atributů A A S, výsledek:

    V důsledku toho jsme dostali dvě identické n-tice, to nemůže být tento případ, takže je zredukujeme (v DBMS se redukce vyskytují automaticky):

    Ukazuje se, že během projekce můžeme snížit počet n-tic, To se stává, by neměl být považován za chybu..

    V jazyce SQL:

    syntaxe - SELECT seznam_sloupců FROM název_tabulky

    implementace pro tento případ − VYBERTE A,C FROM source_table_#2

    3. Přirozené spojení

    Úkon " přirozené spojení"provedeno přes dva logické související vztahy v důsledku toho se vytvoří nový vztah se sloupci prvního a druhého vztahu a s n-ticemi, které se získají jako výsledek spojení každé n-tice prvního a druhého vztahu. Příklad by měl být přehlednější, řekněme, že existují dva vztahy, říkejme jim zdrojová tabulka č. 3.1 a zdrojová tabulka č. 3.2:

    Zdrojová tabulka č. 3_1

    Zdrojová tabulka №3_2

    Proveďme operaci "spojení" první a druhý vztah, výsledek:

    Je zajímavé poznamenat, že jsme získali původní poměr z části „2. Projekce“, na pořadí sloupců ve vztahu nezáleží.

    V jazyce SQL:

    implementace pro tento případ je SELECT source_table_#3_1.*, source_table#3_2.IN FROM source_table_#3_1, source_table#3_2 WHERE source_table#3_1.A= source table#3_2.A

    4. Konsolidace

    Úkon "Svaz" provedeno přes dva vztahy, které mají stejnou sadu sloupců a datový typ v těchto sloupcích, výsledek operace nový relace, která zahrnuje všechny n-tice „první“ a „druhé“ relace(redukují se opakující se).

    Zdrojová tabulka č. 4_1

    Zdrojová tabulka č. 4_2

    Provedeme operaci "asociace" vztahy #4.1 a vztahy #4.2, výsledek:

    V jazyce SQL:

    syntaxe - SELECT seznam_sloupců_tabulky1 FROM tabulka1 UNION SELECT seznam_sloupců_tabulek2 FROM tabulka2

    implementace pro tento případ − VYBERTE A,B FROM source_table_#4_1 UNION SELECT A, B OD source_table_#4_2

    5. Přejezd

    Úkon "přechod" probíhá, výsledek operace je nový relace, která zahrnuje stejné n-tice „prvního“ a „druhého“ vztahu.

    Řekněme například, že existují dva vztahy:

    Zdrojová tabulka č. 5_1

    Zdrojová tabulka č. 5_2

    Provedeme operaci "křižovatky" s danými vztahy je výsledkem:

    Tito. do výsledného vztahu, dostal opakující se n-tice z "První" A "druhý" vztah.

    V jazyce SQL:

    syntaxe je SELECT one_of_tables.column1, one_of_tables.column2, … FROM table1,table2 WHERE table1.column1=table2.column1 AND table1.column2= table2.column2 AND …

    implementace pro tento případ -

    SELECT source_table_#5_1.A, source_table_#5_1.B FROM source_table_#5_1, source_table_#5_2 WHERE source_table_#5_1.A = source_table_#5_2.A AND source_table_#5_1.B = source_table_#5_2.B

    6. Odečítání (rozdíl)

    Úkon "odčítání" provedeno přes dva vztahy, které mají stejnou sadu sloupců a datový typ v těchto sloupcích, výsledek operace nový relaci, která zahrnuje n-tice „prvního“ vztahu jiné než n-tice „druhého“ vztahu, na příkladu by to podle mě mělo být jasnější.

    Řekněme například, že existují dva vztahy:

    Zdrojová tabulka č. 6_1

    Zdrojová tabulka č. 6_2

    Provedeme operaci "rozdíl", tj. od původní tabulky č. 6_1 odečteme původní tabulku č. 6_2, výsledek:

    Tito. výsledná relace je "první" relací bez opakovaných n-tic "druhé" relace.

    V jazyce SQL:

    implementace v tomto případě je SELECT source_table_#6_1.A, source_table_#6_1.B FROM source_table_#6_1 WHERE NOT EXISTS (SELECT source_table_#6_2.A, source_table_#6_2.B FROM source_table_#6_2
    WHERE source_table_#6_2.A= source_table_#6_1.A AND source_table_#6_2.B= source_table_#6_1.B)

    7. Kartézský součin

    Kartézský součin se provádí na dvou libovolných relacích, výsledkem operace je nová relace s počtem sloupců rovným součtu počtu sloupců „prvního“ a „druhého“ vztahu a počtem řádků rovným na součin počtu řádků "prvního" a "druhého" vztahu. N-tice výsledné relace, jednoduše řečeno, jsou získány kombinací každé n-tice "první" relace s n-ticemi "druhé" relace.

    Mějme například dva libovolné vztahy:

    Zdrojová tabulka č. 7_1

    Zdrojová tabulka č. 7_2

    Pojďme vyrábět "kartézský součin" za předpokladu dvou vztahů je výsledek:

    V jazyce SQL:

    implementace v tomto případě je SELECT source_table_#7_1.A, source_table_#7_1.B, source_table_#7_2.A, source_table_#7_2.B FROM source_table_#7_1, source_table_#7_2

    Zabývali jsme se základními operacemi na vztazích a nakonec v teoretické části příspěvku pochopíme, co je klíč.

    co je klíč?

    Klíčem je jeden nebo více sloupců tabulky, které jednoznačně identifikují záznam (řetězec). Příklad, nechť existuje vztah prezentovaný ve formě tabulky:

    klíč daný vztah může být sloupec A. Protože hodnoty pouze tohoto sloupce ohledně, Například: a3 definuje položku "a3 b1 d3", a2 definovat záznam "a2 b2 d3", a1 definuje položku "a1 b2 d1". Další sloupce tuto funkci nesnesu.

    Pokud je klíč jeden sloupec, pak se to nazývá jednoduchý pokud od několik je nazýván kompozitní. V této tabulce kromě jednoduchý klíč, je tu ještě jeden - kompozit, sestávající ze sloupců B a D. Hodnoty těchto sloupců jednoznačně definují záznam (řádky), příklad: b1 a d3 jednoznačně identifikuje záznam "a3 b1 d3", b2 a d3 jednoznačně identifikuje položku "a2 b2 d3", b2 a d1 jednoznačně identifikuje záznam "a1 b2 d1".

    V praxi si člověk většinou vybere jeden klíč, a nejjednodušší, v tomto případě toto je sloupec A. Tento klíč se také nazývá primární klíč».

    Bude vás zajímat:

    ^

    Přednáška č. 4. Relační algebra. Unární operace

    relační algebra, jak asi tušíte, jedná se o speciální druh algebry, ve které se všechny operace provádějí na relačních datových modelech, tedy na relacích.

    V tabulkovém vyjádření vztah zahrnuje řádky, sloupce a řádek – záhlaví sloupců. Proto jsou přirozené unární operace operace výběru určitých řádků nebo sloupců a také změny záhlaví sloupců - přejmenování atributů.

    ^

    1. Operace unárního výběru

    První unární operace, na kterou se podíváme, je operace načítání- operace výběru řádků z tabulky představující vztah, podle kterého

    nebo princip, tj. výběr řádků

    n-tice, které splňují určitou podmínku nebo podmínky.

    ^ Operátor načítání označené σ <P >, vzorkovací podmínkaP <S>, tedy provozovatel σ na n-ticích se vždy bere určitá podmínka P a samotný stav P se zapisuje v závislosti na schématu vztahu S. S tím vším na mysli operace načítání nad schématem vztahu S, jak je aplikován na vztah r

    σ <P >r (S) σ <P >r = {t (S) |tr & P <S >t } = {t (S) |tr & IfNull (P <S >t , Nepravdivé };

    Výsledkem této operace bude nová relace se stejným relačním schématem S, skládající se z těchto n-tic t (S) původního poměru

    operandy, které splňují podmínku výběru P t. Je jasné, že za účelem uplatnění čeho

    pak podmínku do n-tice, je nutné místo názvů atributů dosadit hodnoty atributů n-tice.

    Abychom lépe pochopili, jak tato operace funguje, podívejme se na příklad. Nechť je uvedeno následující schéma vztahu:

    ^S: Sekce (číslo sešitu, Příjmení, Předmět, Známka).

    Vezměme podmínku výběru takto:

    P <S> = (předmět = ‚Informatika‘ a známka > 3).

    Potřebujeme z původního vztahu

    operand vyberte ty n-tice, které obsahují informace o studentech, kteří prospěli z předmětu "Informatika" alespoň o tři body.

    Z tohoto vztahu dáme také následující n-tici:

    t 0 (S) ∈ r (S

    Aplikujeme naši podmínku výběru na n-tici t 0, dostaneme:

    P t 0 = ('Databáze' = 'Informatika' a 5 > 3);

    U této konkrétní n-tice není splněna podmínka výběru.

    Obecně platí, že výsledek tohoto konkrétního vzorku

    σ <Предмет = "Информатика" and Оценка >3>Relace

    bude zde tabulka "Relace", ve které jsou ponechány řádky splňující podmínku výběru.

    ^

    2. Operace unární projekce

    Další standardní unární operací, kterou budeme studovat, je projekční operace. Provoz projekce je operace výběru sloupců z tabulky představující vztah, pomocí kterého

    nebo podepsat. Stroj totiž vybírá tyto atributy (tj. doslova ty sloupce) původního vztahu

    operand, který byl specifikován v projekci.

    ^ operátor projekce označeno [ S"] nebo π . Tady S" je podschéma původního schématu vztahů S, tedy některé jeho sloupce. Co to znamená? To znamená, že S' má méně atributů než S, protože v S" zůstávají pouze ty z nich, u kterých je splněna podmínka projekce. A v tabulce představující vztah r (S"), tolik řádků, kolik je v tabulce r (S) a je zde méně sloupců, protože zůstávají pouze ty, které odpovídají zbývajícím atributům. Tedy operátor projekce π< S"> ve vztahu k r (S) má za následek nový vztah s jiným schématem vztahu r (S") sestávající z projekcí t (S) [S"] n-tice původního vztahu. Jak jsou definovány tyto n-ticové projekce? Projekce jakákoli n-tice t (S) původního poměru r (S) na dílčí okruh S" je definováno následujícím vzorcem:

    t (S) [S' ] = {t (A)|Adef (t) ∩ S ’}, S " ⊆S .

    Je důležité si uvědomit, že duplicitní n-tice jsou z výsledku vyloučeny, tj. v tabulce nebudou žádné duplicitní řádky představující nový.

    S ohledem na všechny výše uvedené skutečnosti by operace projekce z hlediska systémů správy databází vypadala takto:

    π <S" >r (S) ≡ π <S' >rr (S) [S ’] ≡ r [S" ] = {t (S) [S' ] | tr };

    Podívejme se na příklad ilustrující, jak funguje operace načítání.

    Nechť je dán vztah "Relace" a schéma tohoto vztahu:

    S: Sekce (číslo třídní knihy, Příjmení, Předmět, Známka);

    Z tohoto schématu nás budou zajímat pouze dva atributy, a to „Číslo v klasifikačním zápisníku“ a „Příjmení“ studenta, tedy podokruh S" bude vypadat takto:

    ^S": (číslo evidenční knihy, příjmení).

    Potřebujete počáteční vztah r (S) promítnout na dílčí obvod S" .

    t 0 (S) ∈ r (S): ((Číslo hodnocení: 100), (Příjmení: ‚Ivanov‘), (Předmět: ‚Databáze‘), (Skóre: 5));

    Tedy projekce této n-tice na daný podobvod ^S" bude vypadat takto:

    t 0 (S) S": ((číslo ročníkové knihy: 100), (Příjmení: ‚Ivanov‘));

    Pokud mluvíme o promítací operaci z hlediska tabulek, pak projekce Relace [číslo třídní knihy, Příjmení] původního vztahu je tabulka Relace, ze které jsou odstraněny všechny sloupce, kromě dvou: číslo klasifikace a Příjmení. Kromě toho byly také odstraněny všechny duplicitní řádky.

    ^

    3. Operace unárního přejmenování

    A poslední unární operace, na kterou se podíváme, je operace přejmenování atributů. Pokud mluvíme o vztahu jako o tabulce, pak je operace přejmenování potřebná ke změně názvů všech nebo některých sloupců.

    ^ přejmenovat operátora jak následuje: ρ<φ >, zde φ – funkce přejmenování .

    Tato funkce se nastavuje vzájemně

    korespondence jedna ku jedné mezi názvy atributů schématu S A Ŝ, kde resp S- schéma původního vztahu a Ŝ schéma vztahů s přejmenovanými atributy. Takže operátor ρ <φ> ve vztahu k r (S) dává nový vztah se schématem Ŝ A, které se skládá z n-tic původního vztahu pouze s přejmenovanými atributy.

    Pojďme napsat fungování přejmenování atributů z hlediska systémů správy databází:

    ρ <φ > r (S) ≡ ρ <φ >r = {ρ <φ > t (S)| tr };

    Zde je příklad použití této operace:

    Podívejme se na vztah Session, který je nám již známý, se schématem:

    S: Zasedání (číslo ročníkové knihy, Příjmení, Předmět, Známka);

    Pojďme se představit nové schéma vztahy Ŝ, s jinými názvy atributů, které bychom rádi viděli místo stávajících:

    Ŝ : (č. ŽK, Příjmení, Předmět, Skóre);

    Například zákazník databáze chtěl vidět další jména ve vašem předdefinovaném vztahu. Pro realizaci této zakázky je nutné navrhnout další funkce přejmenování:

    φ : (Č. účetní knihy, Příjmení, Předmět, Známka) → (Č. ŽK, Příjmení, Předmět, Bodové hodnocení);

    Ve skutečnosti je třeba přejmenovat pouze dva atributy, takže je legální napsat následující přejmenovací funkci místo aktuální:

    φ : (číslo knihy známek, známka) (č. ZK, Skóre);

    t 0 (S) r (S): ((Číslo hodnocení: 100), (Příjmení: ‚Ivanov‘), (Předmět: ‚Databáze‘), (Skóre: 5));

    Použijte operátor přejmenování na tuto n-tici:

    ρ<φ>t 0 (S): ((ZK#: 100), (Příjmení: ‚Ivanov‘), (Předmět: ‚Databáze‘), (Skóre: 5));

    Toto je jedna z n-tic našeho vztahu, jejíž atributy byly přejmenovány.

    V tabulkovém vyjádření poměr

    ρ < № зачетной книжки, Оценка «Č. ZK, skóre > relace -

    toto je nová tabulka získaná z tabulky relace relace přejmenováním zadaných atributů.

    ^

    4. Vlastnosti unárních operací

    Unární operace, jako každá jiná, mají určité vlastnosti. Podívejme se na nejdůležitější z nich.

    První vlastností unárních operací výběru, promítání a přejmenování je vlastnost, která charakterizuje poměr mohutností vztahů. (Připomeňme, že mohutnost je počet n-tic v té či oné relaci.) Je jasné, že zde uvažujeme o počáteční relaci a relaci získané jako výsledek aplikace té či oné operace.

    Všimněte si, že všechny vlastnosti unárních operací vyplývají přímo z jejich definic, takže je lze snadno vysvětlit a dokonce, je-li to žádoucí, nezávisle odvodit.

    1) poměr výkonu:

    a) pro výběrovou operaci: | σ <P >r |≤ |r |;

    b) pro operaci projekce: | r [S" ] | ≤ |r |;

    c) pro operaci přejmenování: | ρ <φ >r | = |r |;

    Celkově vidíme, že u dvou operátorů, a to u operátora výběru a operátora projekce, je mohutnost počátečních vztahů - operandů větší než mohutnost vztahů získaných z počáteční aplikace příslušné operace. Je to proto, že výběr doprovázející tyto dvě operace výběru a projektu vylučuje některé řádky nebo sloupce, které nesplňují podmínky výběru. V případě, že všechny řádky nebo sloupce splňují podmínky, nedochází k poklesu mocniny (tj. počtu n-tic), takže nerovnost ve vzorcích není striktní.

    V případě operace přejmenování se síla relace nemění, protože při změně jmen nejsou z relace vyloučeny žádné n-tice;

    2) idempotentní vlastnost:

    a) pro operaci načítání: σ <P > σ <P >r = σ <P >;

    b) pro operaci projekce: r [S' ] [S' ] = r [S" ];

    c) pro operaci přejmenování se v obecném případě vlastnost idempotence neuplatní.

    Tato vlastnost znamená, že použití stejného operátoru dvakrát za sebou, na které

    nebo vztah je ekvivalentní jeho jediné aplikaci.

    Pro operaci přejmenování atributů vztahu lze tuto vlastnost obecně použít, ale se zvláštními výhradami a podmínkami.

    Vlastnost idempotence se velmi často používá ke zjednodušení formy výrazu a jeho převedení do ekonomičtější, aktuální podoby.

    A poslední nemovitost, kterou budeme uvažovat, je vlastnost monotónnosti. Je zajímavé poznamenat, že za jakýchkoli podmínek jsou všechny tři operátory monotónní;

    3) vlastnost monotonie:

    a) pro operaci načítání: r 1 r 2 ⇒ σ <P > r 1 σ <P >r 2 ;

    b) pro operaci projekce: r 1 r 2 r 1 [S" ] r 2 [S" ];

    c) pro operaci přejmenování: r 1 r 2 ρ <φ >r 1 ⊆ ρ <φ >r 2 ;

    Pojem monotonie v relační algebře je podobný stejnému pojmu z obyčejné obecné algebry. Dovolte nám vysvětlit: pokud zpočátku vztah r 1 a r 2 byly navzájem spojeny takovým způsobem, že rr 2 , pak i po použití kteréhokoli ze tří operátorů výběru, projekce nebo přejmenování bude tento vztah zachován.

    Vztah mezi záznamem vlastníka a záznamem člena je také 1:N.

    Hlavní rozdíl mezi těmito modely je, že v síťovém modelu může být záznam členem více než jednoho skupinového vztahu. Podle tohoto modelu je každá skupinová relace pojmenována a rozlišuje se její typ a její instance. Typ vztahu skupiny je dán jeho názvem a definuje vlastnosti společné všem instancím tohoto typu. Instance skupinového vztahu je reprezentována záznamem vlastníka a množinou (případně prázdnou) podřízených záznamů. Má následující omezení: instance záznamu nemůže být členem dvou instancí skupinových vztahů stejného typu (tj. zaměstnanec z příkladu v odstavci..1 např. nemůže pracovat ve dvou odděleních).

    • stromy (a) a (b) znázorněné na obr. 4.2 jsou nahrazeny jedinou strukturou sítě, ve které je položka ZAMĚSTNANEC zahrnuta ve dvou skupinových vztazích;
    • pro zobrazení typu M:N se zadává záznam ZAMĚSTNANEC_KONTRAKT, který nemá žádná pole a slouží pouze k propojení záznamů SMLOUVA a ZAMĚSTNANEC (viz obr. 4.3). Všimněte si, že tento záznam lze také uložit užitečné informace, např. podíl tohoto zaměstnance na celkové odměně podle této smlouvy.


    Rýže. 4.3.

    Každý výskyt skupinového vztahu je charakterizován následujícími rysy:

    Způsob objednání podřízených záznamů:

    • libovolný,
    • chronologicky /fronta/,
    • obráceně chronologicky /stack/,
    • roztříděný.

    Pokud je záznam deklarován jako podřízený ve více než jednom skupinovém vztahu, pak každému z nich lze přiřadit vlastní způsob řazení.

    Režim zahrnutí dílčích záznamů:

    • automatický - nelze vložit záznam do databáze, aniž by byl okamžitě přiřazen určitému vlastníkovi;
    • manuální - umožňuje uložit podřízený záznam do databáze a nezahrnout jej okamžitě do instance skupinového vztahu. Tato operace je později iniciována uživatelem.

    Režim výjimky.

    Ve skupinových vztazích je obvyklé rozlišovat tři třídy příslušnosti podřízených záznamů:

    • Pevný. Podřízený záznam je pevně spojen se záznamem vlastníka a lze jej ze vztahu skupiny vyloučit pouze jeho odstraněním. Po odstranění záznamu vlastníka se automaticky odstraní i všechny podřízené záznamy. Ve výše uvedeném příkladu pevné členství implikuje skupinový vztah "UZAVÍRÁ" mezi záznamy "SMLOUVA" a "ZÁKAZNÍK", protože smlouva nemůže existovat bez zákazníka.
    • Povinné. Je povoleno přepnout podřízený záznam na jiného vlastníka, ale je nemožné, aby existoval bez vlastníka. Chcete-li odstranit záznam vlastníka, nesmí mít žádné podřízené záznamy s povinným členstvím. S tímto vztahem souvisí záznamy "ZAMĚSTNANEC" a "ODDĚLENÍ". Pokud je oddělení zrušeno, musí být všichni jeho zaměstnanci buď převedeni do jiných oddělení, nebo propuštěni.
    • Volitelný. Záznam můžete vyloučit ze skupinového vztahu, ale ponechat jej v databázi, aniž byste jej připojili k jinému vlastníkovi. Po odstranění záznamu vlastníka se do databáze uloží jeho podřízené záznamy - volitelné členy, kteří se již neúčastní skupinového vztahu tohoto typu. Příkladem takového skupinového vztahu je „PLNÍ“ mezi „ZAMĚSTNANCI“ a „SMLOUVA“, protože v organizaci mohou být zaměstnanci, jejichž činnost nesouvisí s plněním jakýchkoli smluvních závazků vůči zákazníkům.

    Operace s daty v síťovém databázovém modelu

    Přidat - provést záznam do databáze a v závislosti na režimu zařazení jej buď zahrnout do skupinového vztahu, kde je deklarován jako podřízený, nebo nezařadit do žádného skupinového vztahu.
    Zahrnout do skupinových vztahů - přidružit existující podřízený záznam k záznamu vlastníka.
    Přepnout - propojit existující podřízený záznam s jiným záznamem vlastníka ve stejném skupinovém vztahu.
    Obnovit - změnit hodnotu prvků dříve načteného záznamu.
    Výpis - extrahovat záznamy sekvenčně podle hodnoty klíče a také pomocí skupinových vztahů - od vlastníka můžete přejít na záznamy členů az podřízeného záznamu na vlastníka sady.
    Vymazat - odstranit záznam z databáze. Pokud je tato položka vlastníkem skupinového vztahu, je analyzována třída členství podřízených položek. Požadovaní členové musí být předem vyloučeni ze vztahu skupiny, fixní členové se smažou spolu s vlastníkem, volitelné zůstanou v databázi.
    Vyloučit ze skupinového vztahu - přerušit spojení mezi záznamem vlastníka a záznamem člena.

    Omezení integrity

    Jako v hierarchický model je zajištěno pouze zachování referenční integrity (vlastníkem relace je člen relace).

    Výhody a nevýhody raného DBMS

    Výhody raného DBMS:

    • pokročilé nástroje pro správu dat externí paměť na nízké úrovni;
    • schopnost ručně vytvářet efektivní aplikační systémy;
    • možnost úspory paměti oddělením dílčích objektů (v síťových systémech)

    Nevýhody raného DBMS:

    • složitost použití;
    • vysoká úroveň požadavků na znalosti o fyzické organizaci databáze;
    • závislost aplikovaných systémů na fyzické organizaci databáze;
    • přetěžování logiky aplikovaných systémů detaily organizace přístupu k databázi.

    Jak hierarchické, tak síťový model data vyžaduje přítomnost vysoce kvalifikovaných programátorů. A i v takových případech je realizace požadavků uživatelů často zpožděna dlouhodobý.

    Objektově orientované DBMS

    Vznik objektově orientovaného DBMS byl způsoben potřebami programátorů v OO jazycích, kteří potřebovali prostředek k ukládání objektů, které se do nich nevešly. paměť s náhodným přístupem počítač. Důležitý byl také úkol ukládat stav objektů mezi opakovanými spouštěními aplikačního programu. Proto je většina OODBMS knihovnou, jejíž postupy pro správu dat jsou součástí aplikačního programu. Příklady implementace OODBMS as dedikovaný server databáze jsou extrémně vzácné.

    Ihned je třeba poznamenat, že obecně přijímaná definice „ objektově orientovaný datový model“ neexistuje. Nyní lze hovořit pouze o určitém „objektovém“ přístupu k logické reprezentaci dat a o různých objektově orientovaných způsobech její implementace.

    Víme, že každý datový model musí zahrnovat tři aspekty: strukturální, holistický a manipulativní. Podívejme se, jak jsou implementovány na základě objektově orientovaného programovací paradigmata.

    Struktura

    Struktura objektový model popsané pomocí tří klíčových pojmů:

    zapouzdření - každý objekt má nějaký vnitřní stav (ukládá záznam dat uvnitř), stejně jako sadu metod - procedur, pomocí kterých (a pouze tímto způsobem) lze přistupovat k datům, která určují vnitřní stav objektu, případně měnit jim. Objekty lze tedy považovat za nezávislé entity, oddělené od vnějšího světa;
    dědictví - znamená schopnost vytvářet nové třídy objektů z tříd objektů, které zdědí strukturu a metody svých předků, a přidávat k nim vlastnosti, které odrážejí jejich vlastní individualitu. Dědičnost může být jednoduchá (jeden předek) nebo vícenásobná (více předků);
    polymorfismus - různé objekty mohou reagovat odlišně na stejné vnější události v závislosti na tom, jak jsou jejich metody implementovány.

    Integrita dat

    Aby byla zachována integrita, objektově orientovaný přístup navrhuje použití následujících nástrojů:

    • automatické udržování dědičných vztahů, možnost deklarovat některá datová pole a objektové metody jako „skryté“, neviditelné pro jiné objekty; taková pole a metody jsou používány pouze metodami samotného objektu vytváření procedur kontroly integrity v rámci objektu

    Nástroje pro manipulaci s daty

    Objektově orientovanému programování bohužel chybí běžné nástroje pro manipulaci s daty, jako je relační algebra nebo relační kalkul. Práce s daty se provádí pomocí některého z objektově orientovaných programovacích jazyků obecný účel, obvykle SmallTalk, C++ nebo Java.

    Pojďme si nyní některé shrnout

    Objektově orientované databáze na rozdíl od relačních neukládají záznamy, ale objekty. Přístup OO poskytuje lepší prostředek k reprezentaci reálného světa než relační model, přirozená reprezentace dat. V relačním modelu patří všechny vztahy do stejné úrovně, což komplikuje transformaci hierarchických vztahů modelu entita-vztah na model vztahový. OO model lze uvažovat ve vrstvách, na různých úrovních abstrakce. Je možné definovat nové datové typy a operace s nimi.

    Zároveň o.o. Model má také řadu nevýhod.:

    • neexistují žádné výkonné neprocedurální nástroje pro extrahování objektů z databáze. Všechny dotazy musí být napsány v procedurálních jazycích, problém jejich optimalizace leží na programátorovi;
    • místo čistě deklarativního integritní omezení(jako je explicitní deklarace primárních a cizích klíčů relačních tabulek pomocí klíčová slova PRIMÁRNÍ KLÍČ A REFERENCE) nebo semi-deklarativní spouštěče, musíte napsat procedurální kód, abyste zajistili vnitřní integritu.

    Oba tyto nedostatky jsou zjevně spojeny s nedostatkem vyvinutých nástrojů pro manipulaci s daty. Tento problém je řešen dvěma způsoby – rozšířením OO jazyků směrem ke správě dat (standard ODMG), nebo přidáním objektových vlastností do relačních DBMS (SQL-3, stejně jako tzv. objektově relační DBMS).