- 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ála
zákazník-jméno
půjčka-číslo
Downtown
L-170
3000
Jones
L-170
Redwood
L-230
4000
Smith
L-230
Perryridge
L-260
1700
null
null
půjčka ( půjčovatel
pobočka-jméno
půjčka-číslo
částka
zákazník-jméno
Downtown
L-170
3000
Jones
Redwood
L-230
4000
Smith
null
L-155
null
Hayes
půjčka ( půjčovatel
pobočka-jméno
půjčka-číslo
částka
zákazník-jméno
Downtown
L-170
3000
Jones
Redwood
L-230
4000
Smith
Perryridge
L-260
1700
null
null
L-155
null
Hayes
Souhrnné funkce
Souhrnný operátor ( vezme kolekci hodnot a vrátí jednoduchou hodnotu jako výsledek.
avg: průměrná hodnota
min: minimální hodnota
max: maximální hodnota
sum: suma hodnot
count: počet hodnot
G1, G2, …, Gn ( F1 A1, F2 A2, …, Fm Am (E)
E je jakýkoliv výraz relační algebry
G1, G2, …, Gn je seznam atributů ke spojení
Fi je souhrnná funkce
Ai je jméno atributu
Příklad
Relace r
A
B
C
(
(
7
(
(
7
(
(
3
(
(
10
sumC (r): 27
Relace účet seskupená podle pobočka-jméno:
pobočka-jméno
číslo-účtu
zůstatek
Perryridge
A-102
400
Perryridge
A-201
900
Brightoh
A-217
750
Brightoh
A-215
750
Redwood
A-222
700
pobočka-jméno ( sum zůstatek (účet)
pobočka-jméno
suma-zůstatek
Perryridge
1300
Brightoh
1500
Redwood
700
Modifikace databáze
Obsah databáze lze měnit následujícími operacemi:
Mazání
Vložení
Aktualizace
Tyto operace jsou vyjadřovány operátorem přiřazení.
Mazání
Požadavek na mazání je vyjádřen podobně jako dotaz, ale n-tice nejsou poslány uživateli, ale smazány z databáze.
Lze mazat pouze celé n-tice, ne pouze hodnoty ve zvláštních atributech.
V relační algebře je mazání vyjádřeno takto:
r ( r – E
kde r je relace a E je dotaz relační algebry.
Příklady mazání
Smaže všechny záznamy o účtech v pobočce Perryridge.
account ( account - (pobočka-jméno = „Perryridge“ (účet)
Smaže všechny záznamy o půjčkách s částkou v rozmezí 0–50.
půjčka ( půjčka - (částka ( 0 and částka ( 50 (půjčka)
Smaže všechny účty v pobočkách umístěných v Needhamu.
r1 ( (pobočka-město = „Needham“ (účet ( pobočka)
r2 ( (pobočka-jméno, číslo-účtu, zůstatek (r1)
r3 ( (zákazník-jméno, číslo-účtu (r2 ( vkladatel)
účet ( účet – r2
vkladatel ( vkladatel – r3
Vložení
Abychom přidali data do relace, buď:
specifikujeme n-tici, která má být přidána
napíšeme dotaz, jehož výsledek je množina n-tic, která má být přidána
V relační algebře je vložení vyjádřeno takto:
r ( r ( E
kde r je relace a E je dotaz relační algebry.
Vložení jednoduché n-tice je vyjádřeno tak, že E může být konstantní relace obsahující jednu n-tici.
Příklady vložení
Vložte informaci do databáze: Smith má $1200 na účtu A-973 v pobočce Perryridge.
účet ( účet ( {(„Perryridge“, A-973, 1200)}
vkladatel ( vkladatel ( {(„Smith“, A-973)}
Jako dárek poskytněte všem zákazníkům půjček v pobočce Perryridge $200 termínovaný účet. Nechť číslo půjčky slouží jako číslo účtu pro nový termínovaný účet.
r1 ( ((pobočka-jméno = „Perryridge“ (půjčovatel ( půjčka))
účet ( účet ( (pobočka-jméno, půjčka-číslo, 200 (r1)
vkladatel ( vkladatel ( (zákazník-jméno, půjčka-číslo (r1)
Aktualizace
Mechanismus jak změnit hodnoty v n-tici, aniž by musely být změněny všechny
K tomu se používá operátor zobecněné projekce
r ( (F1, F2, …, Fn (r)
Fi je i-tý atribut relace r, jestliže i-tý atribut není aktualizován nebo má-li být aktualizován
Fi je výraz obsahující pouze konstanty a atributy r, který dává novou hodnotu atributu
Příklady aktualizace
Zvyšte všechny zůstatky o 5 %.
účet ( (BN, AN, BAL ( BAL * 1.05 (účet)
kde BAL, BN a AN jsou zůstatek, pobočka-jméno a číslo-účtu.
Vyplaťte všechny účty se zůstatkem přes $10,000 6% úrokem, ostatní 5% úrokem.
účet ( (BN, AN, BAL ( BAL * 1.06 ((BAL > 10000 (účet)) (
(BN, AN, BAL ( BAL * 1.05 ((BAL ( 10000 (účet))
Pohledy
V některých případech není vhodné, aby všichni uživatelé viděli celý logický model databáze (tj. všechny relace aktuálně uložené v databázi).
Představme si osobu, která potřebuje vědět o počtu půjček zákazníkům, ale nemusí vidět částku půjčky. Tato osoba by měla vidět relaci popsanou v relační algebře takto:
(zákazník-jméno, půjčka-číslo (půjčovatel ( půjčka)
Jakákoli relace, která není součástí koncepčního modelu, ale je viditelná uživateli jako „virtuální relace“, se nazývá pohled.
Definice pohledu
Pohled je definován statementem create view, který má tvar
create view v as
kde je jakýkoliv správný výraz relační algebry. Jméno pohledu je reprezentováno proměnnou v.
Jakmile je pohled definován, jeho jméno může být použito pro odkazování na virtuální relaci, která pohled generuje.
Definice pohledu není to samé jako vytvoření nové relace vyhodnocením dotazovacího výrazu. Definice pohledu způsobuje uložení výrazu, aby byl substituován do dotazů použitím tohoto pohledu.
Příklady pohledů
Představme si pohled (pojmenovaný všichni-zákazníci) skládající se z poboček a jejich zákazníků.
create view všichni-zákazníci as
(pobočka-jméno, zákazník-jméno (vkladatel ( účet)
( ( pobočka-jméno, zákazník-jméno (půjčovatel ( účet)
Nyní můžeme najít všechny zákazníky pobočky Perryridge napsáním:
(zákazník-jméno ((pobočka-jméno = „Perryridge“ (všichni-zákazníci))
Aktualizace přes pohledy
Modifikace databáze s použitím pohledů musí být překládány na modifikace aktuálních relací v databázi.
Představme si osobu, která potřebuje vidět všechna data o půjčkách v relaci půjčka s výjimkou částky. Pohled, který ji poskytneme (pobočka-půjčka), je definován takto:
create view pobočka-půjčka as (pobočka-jméno, půjčka-číslo (půjčka)
Umožníme-li, aby se jméno pohledu objevilo kdekoliv, kde je akceptováno jméno relace, osoba může psát:
pobočka-půjčka ( pobočka-půjčka ( {(„Perryridge“, L-37)}
Předchozí vkládání musí být reprezentováno vkládáním do aktuální relace půjčka, ze které byl pohled pobočka-půjčka vytvořen.
Vkládání do půjčka vyžaduje hodnotu pro částka. Vkládání se může chovat takto:
odmítne vkládání a vrátí chybové hlášení
vloží n-tici („Perryridge“, L-37, null) do relace půjčka
Pohledy definované použitím jiných pohledů
Pouze jeden pohled může být použit při definování jiného.
Relace pohledu v1 závisí přímo na relaci pohledu v2, jestliže v2 je použit ve výrazu definujícím v1.
Relace pohledu v1 závisí na relaci pohledu v2, jestliže v grafu závislostí je cesta z v2 do v1.
Relace pohledu v je rekurzivní, jestliže závisí sama na sobě.
Expanze pohledu
Cesta, jak definovat význam pohledů definovaných podmínkami ostatních pohledů.
Nechť pohled v1 je definován výrazem e1, který může sám obsahovat použití relací pohledů.
Expanze pohledu výrazu opakuje následující nahrazovací krok:
repeat
najdi jakoukoli relaci vi v e1
nahraď relaci pohledu vi výrazem definujícím vi
until v e1 nejsou přítomny další relace pohledů
Až nebudou definice pohledů rekurzivní, tato smyčka skončí.
- 3. -
Kapitola 3: Relační modelP002 Úvod do databázových systémů
Vloženo: 24.04.2009
Velikost: 38,09 kB
Komentáře
Tento materiál neobsahuje žádné komentáře.
Copyright 2025 unium.cz


