310 likes | 627 Views
Databázové systémy. Přednáška č. 2 Databázové modelování. Databázové modelování. Cílem databázového modelování je návrh kvalitní datové struktury pro konkrétní aplikaci a databázový systém Databázový model je nástroj pro reprezentaci struktury a funkcionality databáze a umožňuje definovat:
E N D
Databázové systémy Přednáška č. 2 Databázové modelování
Databázové modelování • Cílem databázového modelování je návrh kvalitní datové struktury pro konkrétní aplikaci a databázový systém • Databázový model je nástroj pro reprezentaci struktury a funkcionality databáze a umožňuje definovat: • schéma databáze – organizaci dat • způsoby ochrany databáze • zajištění integrity dat • přípustné operace s daty
Databázové modelování • Existují 3 úrovně struktury dat a abstrakce modelované reality
Databázové modelování Externí schéma • Uživatelský pohled a požadavky na databázi s využitím termínů uživatele. Schéma není úplné. Konceptuální úroveň • Snaha o popis předmětné oblasti datové základny • Implementačně nezávislá úroveň - bez pohledu na pozdější způsoby implementace • Konceptuální model je pojetí reality pomocí objektů a jejich vlastností • Je výsledkem datové analýzy a nezávislý na prostředí implementace.
Databázové modelování Technologická úroveň • V relačních databázích je technologický model reprezentován tzv. relačními schématy. • Technologický model určuje, jak je obsah systému realizován • Relační schéma obsahuje: • Tabulky – jako vyjádření reálného objektu - entity • Sloupce tabulek – jako vyjádření vlastností entity – atributů • Určení primárních a cizích klíčů • Integritní omezení a určení parciality
Databázové modelování Implementační úroveň • Je zde předkládán • způsob uložení dat v počítači, • fyzická reprezentace položek • způsob sdružování záznamů do souborů • charakteristiky souborů • Jde o výběr konkrétní databázové platformy (SŘBD) s využitím specifik vývojového prostředí dané platformy (programovací jazyk, grafické uživatelské rozhraní apod.)
Databázové modelování Konceptuální schéma • Formalizovaný popis zájmové reality, jejich objektů a vztahů mezi nimi – fakta o reálném světě, ne však popis dat přímo v Pc. • Je výsledkem datové analýzy a musí být srozumitelné i pro zadavatele jako neprogramátora. • Existují 4 typy konceptuálních modelů: • Hierarchický • Síťový • Entitně relační • Objektový
Databázové modelování Entitně relační model • Popisuje objekty a jejich vztahy buď lineárním textovým zápisem nebo graficky pomocí tzv. E-R Diagramu. • Pro tvorbu modelu je nutné znát: • Typ entit • Typ vztahů mezi entitami • Atributy jednotlivých entit
Databázové modelování Entitně relační model Příklad: Je potřeba malá databáze s evidencí výuky a učitelů. Entity v tomto případě jsou: UČITEL a PŘEDMĚT Vztah mezi entitami pak: UČÍ Lineární zápis: E: Učitel (os_číslo, jméno, pracoviště) Předmět (číslo_předmětu, název) V: Učí (Učitel, Předmět)
Databázové modelování Entitně relační model Grafické vyjádření (E-R diagram) Používá tyto grafické objekty: Vyjádření stejného příkladu:
Databázové modelování Objektový model • Obdoba E-R diagramu • Každý uzel diagramu je rozdělen do 2-3 částí (nahoře Název typu entity, uprostřed seznam atributů, dole seznam operací definovaných nad typem entity). • Vztahy se zapisují na spojovací hranu mezi uzly.
Databázové modelování Logické schéma Logické schéma resp. modely na této úrovni určují, jak je obsah systému realizován. Podle typu modelovaných vztahů mezi záznamy se na této úrovni rozlišují tyto modely: • Hierarchický databázový model • Síťový databázový model • Relační databázový model • Objektově orientovaný databázový model Z těchto modelů jsou pak definovány i jednotlivé typy databází.
Databázové modelování Hierarchický databázový model • Logické uspořádání dat založeno na stromové struktuře. • Lze vyjádřit pouze vztahy kardinality 1:N ve směru shora dolů. • Každý záznam představuje uzel ve stromové struktuře a vztah mezi záznamy je typu Rodič/Potomek. Použití je vhodné tam, kde i realita má hierarchickou strukturu, např. organizační či skladové systémy.
Databázové modelování Hierarchický databázový model Musí platit: • Záznam nemůže patřit do více jak jednoho setu. • Vlastníkem je rodič, člen je označen jako potomek. • Každý potomek může mít vždy jednoho rodiče. Nevýhody • Vzniká zde nepřirozená organizace dat • Vztahy typu M:N se musí řešit virtuálními záznamy • Jsou složité operace s vkládáním a rušením záznamů (využívá se sekvenčního procházení stromu nebo jeho větví)
Databázové modelování Hierarchický databázový model Příklad struktury hierarchického modelu dat
Databázové modelování Síťový databázový model • Jde o zobecnění hierarchického modelu dat, který doplňuje o mnohonásobné vztahy. • Data jsou uspořádána logicky i fyzicky jako uzly rovinného grafu. • Jakýkoli záznam může být spojený s libovolným počtem dalších záznamů. • Zavádí se zde určité pojmy: • Typ záznamu (Record) je název pro typ entity • Komponenta je název pro atribut • Set definuje vztah mezi dvěma typy záznamů • Výskyt záznamu – je název jednotlivé entity v samotné databázi
Databázové modelování Síťový databázový model • Nevýhodou síťového modelu jsou změny struktury databáze při aktualizaci. Počáteční návrh struktury musí být řešen vytvořením nové databáze. • Manipulace s daty se děje procedurálně procházením grafu cestou definovanou ukazateli.
Databázové modelování Relační databázový model • Má jednoduchou strukturu • Model sdružuje data v tabulkách (tzv. Relacích) • Řádky označují jednotlivé záznamy (tzv. n-tice) • Sloupce označují atributy - Jsou pevně stanoveny svým názvem a doménou (tato určuje datový typ a rozsah) • Primární klíč – jeden nebo množina atributů jednoznačně určující jednotlivé n-tice (záznamy) • Vazby (vztahy) mezi jednotlivými relacemi (tabulkami) jsou tvořeny pomocí sloupců stejného typu
Databázové modelování Relační databázový model Schéma relace jako pomocný aparát • Určuje název relace, kolik má sloupců a jaké jsou jejich názvy a domény Úplné relační schéma • jde o transformaci E-R diagramu do relačních schémat s jednoznačným určením primárních klíčů, cizích klíčů, integritních omezení a datových typů jednotlivých polí.
Databázové modelování Relační databázový model Úplné relační schéma hlavní tabulka závislá tabulka
Databázové modelování Objektové databázové modely • Potřeba uchovávat a databázové zpracovávat data z programů vytvořených v objektově orientovaných programovacích jazycích. • Objektové databáze skrývají dva vzájemně odlišné datové modely: 1. Objektově relační datový model – doplnění relačního modelu o datové struktury objektově orientovaných programovacích jazyků 2. Objektově orientovaný datový model – přetvoření, vylepšení a doplnění síťového datového modelu o práci s objekty objektového projektování
Databázové modelování Objektově orientovaný datový model • Při zjednodušení lze připustit vztah: síťový datový model + objektové typy dat + polymorfismus = objektový datový model • Polymorfismus (mnohotvarost) je vlastnost umožňující pojmenovat metodu jedním jménem a tato metoda může být společná pro různé objekty v celé struktuře, i když pro každý objekt v této struktuře se bude chovat různě.
Databázové modelování Objektově orientovaný datový model Zavádí se zde určité pojmy a charakteristiky rozdílné od Relačního datového modelu: • Objekt – prvek množiny (záznam) složený z vnitřních datových složek (jiné objekty nebo metody). • Sada (collection) – množina objektů – slouží jako úložiště objektů
Databázové modelování Objektově orientovaný datový model • Třída objektů – realizace datového typu objektů (Array, List, Set,…) • Metoda objektu – představují funkční stránku objektu • Přístupové metody – manipulují s datovými složkami objektu (zápis nových nebo čtení hodnoty datových složek) • Složitější – např. výpočtové – vypočítávají z objektů data, která nebyla uložena samostatně jako jedna položka
Databázové modelování Objektově orientovaný datový model • Identifikátor (OID – Object IDentifier) – jednoznačný identifikátor, zůstává stejný i při změně všech datových složek objektu Výhody: • Rychlost - schopnost zvládat stovky transakcí za sekundu • Možnost současného více uživatelského připojení • Možnost pracovat v bázi dat i se soustavou objektů ve formě aplikací • Dostupnost různých atributů pro uživatele podle přístupových práv