Relační databáze. V dnešní době existuje řada komerčních DBMS, nejznámější jsou:



Podobné dokumenty
Úvod do databázových systémů

S databázemi se v běžném životě setkáváme velmi často. Uvádíme běžné použití databází velkého rozsahu:

Databázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi.

5. POČÍTAČOVÉ CVIČENÍ

Střední průmyslová škola Zlín

8.2 Používání a tvorba databází

Databázové systémy Cvičení 5.2

Úvod do databázových systémů. Ing. Jan Šudřich

Obsah přednášky. Databázové systémy RDBMS. Fáze návrhu RDBMS. Coddových 12 pravidel. Coddových 12 pravidel

Databázové systémy trocha teorie

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Obsah přednášky. Databázové systémy. Normalizace relací. Normalizace relací. Normalizace relací. Normalizace relací

Materiál byl vytvořen v rámci projektu Nové výzvy, nové příležitosti, nová škola

Databáze II. 1. přednáška. Helena Palovská

Databáze. Logický model DB. David Hoksza

2. přednáška. Databázový přístup k datům (SŘBD) Možnost počítání v dekadické aritmetice - potřeba přesných výpočtů, např.

A5M33IZS Informační a znalostní systémy. Relační databázová technologie

Databáze v MS ACCESS

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Databáze 2013/2014. Konceptuální model DB. RNDr. David Hoksza, Ph.D.

Primární klíč, cizí klíč, referenční integrita, pravidla normalizace, relace

Hierarchický databázový model

C8 Relační databáze. 1. Datový model

Popisné systémy a databáze

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

Úvod do databázových systémů 10. cvičení

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

KIV/ZIS - cvičení 1/39

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

Inovace tohoto kurzu byla spolufinancována z Evropského sociálního fondu a státního rozpočtu České republiky.

RELAČNÍ DATABÁZOVÉ SYSTÉMY

KMA/PDB. Karel Janečka. Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d

Konceptuální modelování. Pavel Tyl

Základy relačních databází, jejich využití v programování webu

Microsoft Access. Úterý 26. února. Úterý 5. března. Typy objektů databáze: Vytvoření a návrh nové tabulky

Databáze MS-Access. Obsah. Co je to databáze? Doc. Ing. Radim Farana, CSc. Ing. Jolana Škutová

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Konceptuální modelování a SQL

Obsah. 1.1 Práce se záznamy Stránka Dnes Kontakt se zákazníkem... 5

Databázové systémy. Ing. Radek Holý

Microsoft. Access. Nová databáze, návrh tabulky. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

DUM 12 téma: Příkazy pro tvorbu databáze

Informační systémy ve zdravotnictví. 6. cvičení

Relační databázový model. Vladimíra Zádová, KIN, EF, TUL- DBS

předměty: ukončení: Zápočet + Zkouška / 5kb např. jméno, název, destinace, město např. student Jan Novák, narozen

37. Indexování a optimalizace dotazů v relačních databázích, datové struktury, jejich výhody a nevýhody

Datové modelování II

Microsoft. Access. Databáze s více tabulkami. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

Databáze I. Přednáška 4

Databáze ArcView) Databázový systém

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

Úvod do databázových systémů

Databázové systémy. Cvičení 3

KIV/ZIS - cvičení. je dobré chodit na cvičení, lépe se pak vypracovávají semestrálky. první 2 týdny podle kapacity 1/37

Úvod do databázových systémů

VYTVÁŘENÍ DATABÁZÍ, VKLÁDÁNÍ ÚDAJŮ

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph)

Úvod do databázových systémů 6. cvičení

POKROČILÉ POUŽITÍ DATABÁZÍ

DATABÁZE MS ACCESS 2010

Databázové a informační systémy Jana Šarmanová

Marketingová komunikace. 1. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK3PH (vm3aph)

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant

Relační databázová technologie

Analýza a modelování dat 3. přednáška. Helena Palovská

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

KIV/ZIS - primární klíč

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Relační databázová technologie

IMPORT DAT DO DATABÁZE

OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013

VŠB FEI - Technická Univerzita Ostrava. DAIS - Projekt. Dopravní podnik. Jméno: Matěj Kotyz (KOT0177)

RELAČNÍ DATABÁZE ACCESS

Databáze. Databázové systémy

Otázka č. 1 (bodů za otázku: 4)

Úvod do databázových systémů

Databázové a informační systémy

Analýza a modelování dat. Přednáška 5

Operátory ROLLUP a CUBE

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

Návrh databázového modelu

Relační datový model. Integritní omezení. Normální formy Návrh IS. funkční závislosti multizávislosti inkluzní závislosti

Databázové systémy BIK-DBS

Databáze I. Přednáška 2

4IT218 Databáze. 4IT218 Databáze

Data v informačních systémech

Databázové systémy a SQL

10. blok Logický návrh databáze

Databáze I. 4. přednáška. Helena Palovská

Terminologie v relačním modelu

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:

Relace x vztah (relationship)

Databáze I. 5. přednáška. Helena Palovská

Databáze Bc. Veronika Tomsová

Microsoft Office. Word hromadná korespondence

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Transkript:

Relační databáze Pojem databáze, druhy databází Databází se myslí uložiště dat. V době začátků využívání databází byly tyto členěny hlavně hierarchicky, případně síťově (rozšíření hierarchického modelu). V roce 1970 položil E.F.Codd základy pro dnes nejrozšířenější relační databáze. V dnešní době se kromě nejčastějších relačních databází začínají prosazovat také databáze objektové a objektově-relační. Tyto databáze na sebe berou řadu vlastností z oblasti objektového programování (nové datové typy, možnost vykonávat nad sebou metody,..., viz. http://nb.vse.cz/~zelenyj/it380/eseje/xlavj01/od.htm ). Pokud se hovoří o databázích, obvykle se rozlišují pojmy báze dat (DB) samotná data a pojem DataBase Management System (DBMS, nebo také česky SŘBD systém řízení báze dat), který se stará o jejich fyzické uložení, správu a požadované operace. V dnešní době existuje řada komerčních DBMS, nejznámější jsou: MySQL v základní verzi zdarma, využívá se především pro menší webové projekty. Před nedávnem jej pod své portfolio začlenila firma Sun. http://www.mysql.com MSSQL DBMS od společnosti Microsoft, využívá se při tvorbě drobnějších projektů především v programovacích jazycích podporovaných společností Microsoft, kde má rozsáhlou podporu. http://www.microsoft.com/sqlserver/2008/en/us/default.aspx Oracle DBMS pro rozsáhlé databázové systémy, nabízí především velice široké možnosti správy, ladění výkonu, řadu nadstandartních funkcí. http://en.wikipedia.org/wiki/oracle_database

Všechny tyto databázové systémy pracují na základě jazyka SQL (Simple Query Language), mají však obvykle různá vlastní vylepšení. Relační databáze Relační databáze využívají jako základu tabulek, které jsou propojeny předem nastavenými vztahy. Tabulka obsahuje jednotlivé sloupce atributy a řadky záznamy. Atributy tabulky určují vlastnosti objektů, které se do tabulky budou vkládat do tabulky se vkládají objekty stejného druhu, nicméně každý vždy jen jednou (viz integrita databáze). Atributy při návrhu tabulky však rozhodně neobsahují samotné hodnoty (!), pouze určují jaké vlastnosti budou vkládané objekty mít v databázi uložené. Atribut Atribut je sloupec v tabulce, vlastnost záznamů v tabulce. U atributu určujeme při návrhu tabulky jeho doménu rozsah hodnot, kterých může nabývat (doména může být například u atributu datum narození zapsána jako číslo od 1900 do 3000). Při vlastní implementaci (sestavení) navržené databáze do DBMS se pak z domény atributů určí jeho datový typ (například pro doménu výše je to Integer = celé číslo). DBMS se pak postará o to, že do daného sloupce nebude možné zapsat hodnotu, která nevyhovuje datovému typu (v předchozím případě tedy nezapíšu třeba nevím). Atomicita atributu atribut je atomický, pokud jej již nelze rozložit na dílčí atributy (jméno na jméno, příjmení a titul například). Atribut u jednoho záznamu může obsahovat vždy jen jednu hodnotu, v případě že potřebujeme vložit do atributu u jednoho záznamu více hodnot (například telefonních čísel), musíme pro ně vytvořit novou tabulku, ve které specifikujeme ke kterému záznamu se telefonní čísla váží.

Existují speciální druhy atributů, které plní v relační databázi specifické funkce, jsou to: Primární klíč tabulky nemají nijak pevně zafixováno pořadí záznamů (řádků), aby se tedy dalo jednoznačně ukázat na jeden záznam (pro editaci, nebo jeho vybrání), je nutné zvolit jeden atribut tabulky jako unikátní. Takovému atributu říkáme primární klíč každý záznam v tabulce musí mít hodnotu tohoto atributu unikátní pro celou tabulku (nesmí se vyskytnout dva lidé se stejným RČ). Každá tabulka musí mít vytvořen primární klíč. Cizí klíč záznamy v tabulkách, které jsou propojeny vztahy musí být nějakým způsobem provázány. Provázání se docílí vytvořením speciálního atributu tzv. cizího klíče v jedné z tabulek. Do tohoto atributu se pak bude u jednotlivých záznamů kopírovat hodnota cizího klíče navázaného záznamu z druhé tabulky. Datové typy, které byste měli znát: Integer celé číslo Varchar krátký text (do 255 znaků) Text dlouhý text Boolean logická hodnota (ano/ne, 1/0, true/false) Propojení tabulek Některé tabulky v relační databázi mají mezi sebou logické vztahy, ty určujeme při návrhu databáze. Například v databázi knihovny budou mít mezi sebou vztah tabulky spisovatel a kniha. V rámci návrhu databáze musíme tyto vztahy nejprve popsat (jak ten vztah vypadá, tedy například spisovatel napsal knihy, určit multiplicitu) a pak navrhnout i jejich fyzické vytvoření. Multiplicita vztahu Po slovním označení vztahu je nutné určit jeho multiplicitu multiplicita určuje, kolik záznamů v první tabulce může být spojeno s jedním záznamem v tabulce druhé a naopak. V našem případě se tedy zamyslíme, kolik spisovatelů mohlo napsat jednu knihu (jeden i více) a počet zapíšeme nad tabulku spisovatelů. Poté provedeme to samé z opačného pohledu kolik knih mohl napsat jeden spisovatel (jednu i více) a počet opět zapíšeme, pro změnu nad tabulku knih. Vidíme tedy, že mezi tabulkami bude vztah m:n (více ku více). Vztah s takovou multiplicitou nelze rovnou fyzicky zapsat do DB a je nutno jej rozložit viz níže. Pokud bychom měli databázi fotbalových klubů a jejich hráčů, vztah mezi tabulkami bude 1:n, neboť jeden tým má jistě více hráčů, ale jeden hráč

může být pouze v jednom týmu. Vtakovém případě je fyzické propojení jednoduché v tabulce nad kterou je N (fotbalisté) vytvoříme nový atribut cizí klíč do kterého budeme vkládat identifikaci klubu, ve kterém hráč hraje (kopie primárního klíče hráčova klubu z klubové tabulky). Rozdělení vztahu m:n na dva vztahy 1:n Pokud máme mezi tabulkami vztah m:n (autor napsal X knih, ale jedna kniha může být napsána Y autory), je nutné jej rozložit na dva vztahy 1:n (protože nemůžeme třeba do cizího klíče u knihy zapsat více autorů atribut může obsahovat jenom jednu hodnotu). Vytvoříme tedy separátní tabulku, ve které se budou objevovat jen cizí klíče z obou tabulek (tedy identifikace knihy a identifikace autora). V takové tabulce se pak může vícekrát objevit jeden autor i jedna kniha. V některých případech je možné se setkat i s multiplicitou 1:1, tedy jeden záznam v první tabulce odpovídá přesně jednomu záznamu v tabulce druhé. Příkladem může být tabulka top manažerů a tabulka firemních limuzín, kdy vždy jedna limuzína je přidělena jednomu manažerovi. V takovém případě je jedno do které tabulky umístíme cizí klíč. Možné multiplicity: 1:1, 1:n, m:n. Vztah m:n se musí rozepsat na dva vztahy 1:n. Normalizace návrhu databáze Normalizace návrhu databáze by měla databázi zefektivnit, zmenšit její datovou náročnost a zajistit menší náchylnost k nejrůznějším chybám. http://interval.cz/clanky/databaze-a-jazyk-sql/ První normální forma Všechny atributy mají být atomické, tedy obsahovat pouze jednu nedělitelnou hodnotu. Například pokud bychom měli atribut adresa (Tupolevova XYZ, Praha 9, 19900), je vhodné jej rozdělit do jednotlivých atmických atributů (ulice, číslo, město, psč) důvodem je v případě neatomického atributu omezená možnost práce s databází nenajdeme například všechny osoby s psč 19900 apod. Druhá normální forma Neatomické hodnoty (jmeno, adresa)

Všechny atributy mají být závislé na primárním klíči. Nelze tedy mít například tabulku automobilů s atributy (SPZ, značka, typ, motor, servis, telefon_servis), neboť atribut telefon_servis je závislý nikoliv na SPZ auta, ale na atributu servis. Problém by vznikl například při změně telefonního čísla servisu, které by se muselo měnit u mnoha vozů najednou. Je proto nutné vytvořit speciální tabulku servisů s jejich detaily. Třetí normální forma Atributy musí být závislé Autoři v druhé normální formě přímo na primárním klíči tabulky. Typickým příkladem je tabulka zaměstnanců, jejich pozic a platů. Pokud je plat odvozen od pozice zaměstnance, je závislý na tomto atributu a nikoliv na primárním klíči zaměstnance. Opět se tedy vytvoří samostatná tabulka ohodnocení jednotlivých pracovních pozic zaměstnanců. SQL Simple Query Language jazyk pro práci s DB Primární klíč atribut jednoznačně identifikující jeden záznam v tabulce Cizí klíč ukazuje, ke kterému záznamu v druhé tabulce se záznam vztahuje DBMS systém spravující data Atribut sloupeček v tabulce, vlastnost záznamů Atomicita atribut nelze rozdělit na dílčí atributy Doména rozsah hodnot, které může atribut dosahovat Datový typ druh dat, která může atribut obsahovat (číslo, text,...) Multiplicita kolik záznamů v jedné tabulce se váže na kolik záznamů v tabulce druhé Referenční integrita udržování vztahu mezi tabulkami Normalizace databáze odstranění redundance dat, zlepšení struktury databáze, lepší práce s DB v budoucnu Tabulka autorů vyhovující 3. NF Referenční integrita Pokud databázi správně navrhneme, DBMS nám může zajistit mezi propojenými tabulkami takzvanou referenční integritu. V databázi knihovny nám referenční integrita znemožní odstranit autora, který je uveden u některé v databázi uložené knihy. Také nám neumožní ke knize určit autora, který neexistuje v tabulce autorů. Také nám neumožní změnit primární klíč u autora, který je používán jako cizí klíč v jiné tabulce.

Některé databázové systémy pak umožňují takzvané kaskádové odstraňování a update nastavuje se obvykle samostatně pro jednotlivé vztahy mezi tabulkami. Pokud bysme jej zprovoznili u databáze knihovny, smazaly by se v případě odstranění autora z DB všechny knihy které napsal. V případě změny primárního klíče autora (RČ) by se pak změnily cizí klíče všech autorových knih. Zdroje Wiki http://www.wikipedia.com MySQL http://www.mysql.com Grafické návrhy http://www.gliffy.com, http://dev.mysql.com/workbench/