- Stahuj zápisky z přednášek a ostatní studijní materiály
- Zapisuj si jen kvalitní vyučující (obsáhlá databáze referencí)
- Nastav si své předměty a buď stále v obraze
- Zapoj se svojí aktivitou do soutěže o ceny
- Založ si svůj profil, aby tě tví spolužáci mohli najít
- Najdi své přátele podle místa kde bydlíš nebo školy kterou studuješ
- Diskutuj ve skupinách o tématech, které tě zajímají
Studijní materiály
Zjednodušená ukázka:
Stáhnout celý tento materiálKapitola 3: Relační model
Struktura relačních databází
Relační algebra
Relační kalkul n-tic (Tuple relational calculus)
Doménový relační kalkul
Rozšířené operace relační algebry
Modifikace databáze
Pohledy
Základní struktura
Daná množina A1, A2, …, An relace r je podmnožina A1 ( A2 ( … ( An. Tedy relace je množina n-tic (a1, a2, …, an), kde ai ( Ai
Příklad: je-li
jméno = {Jones, Smith, Curry, Lindsay}
ulice = {Main, North, Park}
město = {Harrison, Rye, Pittsfield}
pak r = {(Jones, Main, Harrison), (Smith, North, Rye), (Curry, North, Rye), (Lindsay, Park, Pittsfield)} je relace přes jméno ( ulice ( město
Relační schéma
A1, A2, …, An jsou atributy
R = (A1, A2, …, An) je relační schéma
zákazník-schéma = (jméno, ulice, město)
r(R) je relace na relačním schématu R
zákazník (zákazník-schéma)
Instance relace
Současné hodnoty (instance relace) jsou specifikovány tabulkou.
Element t relace r je n-tice reprezentovaná řádkem v tabulce.
jméno
ulice
město
Jones
Main
Harrison
Smith
North
Rye
Curry
North
Rye
Lindsay
Park
Pittsfield
zákazník
Klíče
Nechť K ( R
K je superklíč schématu R, jestliže hodnoty K jsou dostatečné pro identifikaci jedinečné n-tice každé možné relace r(R). Např.: {jméno, ulice} a {jméno} jsou superklíče schématu zákazník, jestliže dva zákazníci nemají shodné jméno.
K je kandidátní klíč, jestliže K je minimální. Např.: {jméno} je kandidátní klíč schématu zákazník, jestliže dva zákazníci nemají shodné jméno a žádná jeho podmnožina není superklíč.
Odvozování klíčů z E-R množin
Silná množina entit. Primární klíč množiny se stává primárním klíčem relace.
Slabá množina entit. Primární klíč relace je sjednocení primárního klíče silné množiny entit a parciálního klíče slabé množiny.
Množina vztahů. Sjednocení primárních klíčů příbuzných množin entit se stává superklíčem relace. Pro binární vztahy mnoho na mnoho je superklíč též primární klíč. Pro binární vztahy mnoho na jednu se stává primární klíč množiny entit „mnoho“ primárním klíčem relace. Pro vztahy jedna na jednu může být primární klíč relace z každé množiny entit.
Dotazovací jazyky
Jazyk, kterým uživatel žádá informace z databáze.
Kategorie jazyků:
Procedurální
Neprocedurální
Čisté jazyky („pure“):
Relační algebra
Relační kalkul n-tic
Doménový relační kalkul
Čisté jazyky jsou základem dotazovacích jazyků, které se běžně používají.
Relační algebra
Procedurální jazyk
6 základních operátorů
výběr
projekce
sjednocení
rozdíl množin
kartézský součin
přejmenování
Operátory berou jednu nebo více relací jako vstup a dávají novou relaci jako výsledek.
Operace výběr
Značení: (P(r)
Definováno jako:
(P(r) = {t | t ( r and P(t)}
Kde P je výraz v propozičním kalkulu, skládající se z podmínek ve formě:
= nebo
(
>
(
<
(
„spojené pomocí“: ( (and), ( (or), ( (not)
Příklad výběru
Relace r:
A
B
C
D
(
(
1
7
(
(
5
7
(
(
12
3
(
(
23
10
(A = B ( D > 5 (r) – vybere řádky, kde A = B a zároveň D > 5
A
B
C
D
(
(
1
7
(
(
23
10
Operace projekce
Značení: (A1, A2, …, Ak (r)
kde A1, A2 jsou jména atributů a r je jméno relace.
Výsledek je definován jako relace k sloupců, které dostaneme smazáním sloupců, které nejsou vyjmenovány
Duplicitní řádky jsou z výsledku odstraněny
Příklad projekce
Relace r:
A
B
C
(
10
1
(
20
1
(
30
1
(
40
2
(A, C (r)
A
C
A
C
(
1
(
1
(
1
=
(
1
(
1
(
2
(
2
Operace sjednocení
Značení: r ( s
Definováno jako:
r ( s = {t | t ( r or t ( s}
Aby bylo sjednocení r ( s platné,
r a s musí mít stejnou aritu (stejný počet atributů)
Domény atributů musí být kompatibilní (např. 2. sloupec r obsahuje hodnoty stejného typu jako 2. sloupec s)
Příklad sjednocení
Relace r, s:
A
B
A
B
(
1
(
2
(
2
(
3
(
1
s
r
r ( s
A
B
(
1
(
2
(
1
(
3
Operace rozdíl množin
Značení: r – s
Definováno jako:
r – s = {t | t ( r and t ( s}
Rozdíly množin musí být brány mezi kompatibilními relacemi.
r a s musí mít stejnou aritu
domény atributů relací r a s musí být kompatibilní
Příklad rozdílu množin
Relace r, s:
A
B
A
B
(
1
(
2
(
2
(
3
(
1
s
r
r – s
A
B
(
1
(
1
Operace kartézského součinu
Značení: r ( s
Definováno jako:
r ( s = {t q | t ( r and q ( s}
Předpokládá se, že atributy relací r(R) a s(S) jsou disjunktní (tj. R ( S = ().
Pokud atributy relací r(R) a s(S) nejsou disjunktní, musí se přejmenovat.
Příklad kartézského součinu
Relace r, s:
A
B
C
D
E
(
1
(
10
+
(
2
(
10
+
r
(
20
-
(
10
-
s
r ( s
A
B
C
D
E
(
1
(
10
+
(
1
(
10
+
(
1
(
20
-
(
1
(
10
-
(
2
(
10
+
(
2
(
10
+
(
2
(
20
-
(
2
(
10
-
Skládání operací
Můžeme tvořit výrazy skládáním operací
Příklad: (A=C (r ( s)
r ( s
Značení: r ( s
Nechť r a s jsou relace na schématech R a S. Výsledek je relace na schématu R ( S, kterou získáme uvažováním každého páru n-tic tr z r a ts z s.
Mají-li tr a ts stejné hodnoty na každém z atributů v R ( S, je k výsledku přidána n-tice t, kde
t má stejnou hodnotu jako tr na r
t má stejnou hodnotu jako ts na s
Příklad:
R = (A, B, C, D)
S = (E, B, D)
Výsledné schéma = (A, B, C, D, E)
r ( s je definováno jako:
(r.A,r.B,r.C,r.D,s.E ((r.B=s.B ( r.D=s.D (r ( s))
Příklad přirozeného spojení (Natural join operation)
Relace r, s:
A
B
C
D
B
D
E
(
1
(
a
1
a
(
(
2
(
a
3
a
(
(
4
(
b
1
a
(
(
1
(
a
2
b
(
(
2
(
b
3
b
(
r
s
r ( s
A
B
C
D
E
(
1
(
a
(
(
1
(
a
(
(
1
(
a
(
(
1
(
a
(
(
2
(
b
(
Operace dělení
Značení: r ( s
Odpovídá dotazům, které obsahují frázi „pro všechny“.
Nechť r a s jsou relace na schématech R a S, kde
R = (A1, …, Am, B1, …, Bn)
S = (B1, …, Bn)
Výsledek operace r ( s je relace na schématu R – S = (A1, …, Am)
r ( s = {t | t ( (R-S (r) ( (u ( s(tu ( r)}
Vlastnost
Nechť q = r ( s
Pak q je největší relace, pro kterou platí: q ( s ( r
Definice pomocí podmínek základních operací algebry. Nechť r(R) a s(S) jsou relace a nechť S ( R
r ( s = (R-S (((R-S (r) ( s) - (R-S,S (r))
Vysvětlení:
(R-S,S (r) jednoduše přeřadí atributy r
(R-S (((R-S (r) ( s) - (R-S,S (r)) dává ty n-tice t v (R-S (r), že pro nějakou n-tici u ( s, tu ( r
Příklad dělení
Relace r, s:
A
B
B
(
1
1
(
2
2
(
3
s
(
1
(
1
(
1
(
3
(
4
(
6
(
1
(
2
r
r ( s
A
(
(
Jiný příklad dělení
Relace r, s:
A
B
C
D
E
D
E
(
a
(
a
1
a
1
(
a
(
a
1
b
1
(
a
(
b
1
s
(
a
(
a
1
(
a
(
b
3
(
a
(
a
1
(
a
(
b
1
(
a
(
b
1
r
r ( s
A
B
C
(
a
(
(
a
(
Operace přiřazení
Operace přiřazení (() představuje vhodný způsob, jak vyjádřit komplexní dotazy; dotazy se píší jako sekvenční program skládající se ze skupiny přiřazení následovaných výrazem, jehož hodnota je zobrazena jako výsledek dotazu.
Přiřazení musí být vždy prováděno na dočasné relační proměnné.
Příklad: Napišme r ( s jako
temp1 ( (R-S (r)
temp2 ( (R-S ((temp1 ( s) - (R-S,S (r))
result = temp1 – temp2
Výsledek vpravo od ( je přiřazen do relační proměnné vlevo od (.
Příklady dotazů
Najděte všechny zákazníky, kteří mají účet aspoň v pobočkách „Downtown“ a „Uptown“.
Dotaz 1
(CN ((BN = „Downtown“ (vkladatel ( ú
Vloženo: 24.04.2009
Velikost: 38,09 kB
Komentáře
Tento materiál neobsahuje žádné komentáře.
Copyright 2025 unium.cz


