wprowadzenie do baz danych




BSSI - cz. 1



Wprowadzenie do baz danych
Literatura
M. Muraszkiewicz, H. Rybiński: Bazy danych. Warszawa, 1993.
J. D. Ullman: Systemy baz danych. WNT, Warszawa 1988.
Pojęcie bazy danych
Czym jest baza danych

pamięć trwała danych (persistant data)
określona struktura i reguły integralności
Cele użytkowania b.d.

niezawodność zapisu
integralność danych
sprawność zapytań
wygodne interfejsy
wielodostęp
zabezpieczenia dostępu
System zarządzania bazą danych (DBMS)

izoluje programy od reprezentacji fizycznej
słownik danych

język opisu danych
extended dictionary
mechanizmy dostępu:

język zapytań i manipulacji danymi
optymalizacja dostępu
mechanizmy ochrony:

autoryzacja dostępu
ochrona spójności
mechanizmy do odtwarzania po awarii
wielodostęp i dostęp przez sieć

zarządzanie transakcjami
klient-serwer
mechanizmy dla rozproszonych b.d.
narzędzia do budowy interfejsów:

narzędzia do zapytań interakcyjnych
dostęp z języków 3GL
specjalizowane narzędzia 4GL
Przykładowe zastosowania baz danych

systemy finansowo-księgowe
systemy rezerwacji (np. lotniczej)
systemy wspomagające zarządzanie
CAD (Computer Aided Design)
GIS (Geographical Information Systems)
Składniki działającego systemu b.d.

struktura danych
reguły integralności
dane
aplikacja:

formularze
raporty
programy przetwarzające
zapytania ad-hoc
Języki dostępu

budowa:

proceduralne
nieproceduralne
typ dostępu:

nawigacyjne (rekord bieżący)
zwracające struktury (np. tabele)
Alternatywy dla b.d.

systemy plikowe (flat files):

sekwencyjne (SAM)
indeksowo-sekwencyjne (ISAM)
z dostępem bezpośrednim
język Cobol
Modele baz danych
Podział zadań w projektowaniu b.d.

użytkownik -- odbiorca systemu
analityk
projektant
programista
administrator b.d. (DBA)
Model zewnętrzny

opisuje świat z punktu widzenia użytkowników b.d.
może istnieć wiele modeli zewnętrznych tej samej rzeczywistości
nie musi być związany z konkretnym modelem danych
Model pojęciowy (konceptualny)

tworzony przez analityków
opisuje świat w kategoriach konkretnego modelu danych
abstrahuje od szczegółów implementacji
odpowiada na pytanie "co?" a nie "jak?"
Model logiczny

tworzony przez projektantów b.d.
opisuje projekt struktury w kontekście konkretnej implementacji
model struktury zgodny z modelem danych, a nie z ich fizyczną
reprezentacją
może zawierać parametry dotyczące reprezentacji fizycznej, np.:

partycjonowania danych
alokacji pamięci
Reprezentacja fizyczna

tworzona przez SZBD
izolowana od aplikacji przez SZBD
zarządzana przez administratora


Modele danych
Model hierarchiczny
Cechy podstawowe

struktura danych ma postać drzewa
węzły -- typy opisywanych obiektów
łuki -- związki typu ojciec-syn
drzewo jest uporządkowane, tj. na każdym poziomie kolejność węzłów jest
określona
opis obiektu (rekord) zbudowany z pól zawierających dane opisujące obiekt
związki zrealizowane jako wskaźniki
Przykład
Hierarchiczna
struktura danych
Języki obsługi

o charakterze nawigacyjnym
operacje typu:
GET LEFTMOST typ WHERE warunek
GET NEXT typ
Ograniczenia

nie ma związków typu n-m (np. oddziały pomieszane w kilku
budynkach)
tylko jeden rodzaj związku między dwoma typami obiektów
dodatkowe związki (np. pracownik-budynek):

dodatkowe drzewa hierarchii
odsyłacze do rekordów "oryginału"
Znaczenie praktyczne

system IBM IMS (1978)

bardzo wielkie dane zgromadzone
poprzednik użyty w programie Apollo
nowych projektów nie robi się
Model sieciowy
Cechy podstawowe

struktura danych ma postać grafu (sieci)
wierzchołki grafu -- typy obiektów
łuki w grafie -- wiązania między typami
opis obiektu (rekord) zbudowany z pól zawierających dane opisujące obiekt
reprezentacja wiązań (wskaźniki):

odesłanie bezpośrednie (jednowart.)
odesłanie inwersyjne (wielowart.)
wiązanie codasylowe
Realizacja wiązań -- model DBTG CODASYL

rekordy powiązane stanowią kolekcję (set)

jeden rekord nadrzędny
wiele rekordów podrzędnych
kolekcja realizowana jako lista zamknięta
brak bezpośredniej reprezentacji wiązań n-m
Języki obsługi

języki manipulowania -- nawigacyjne
CODASYL: język definiowania danych pozwala określić sposób automatycznego
włączania rekordów do kolekcji
Przykłady
Więzy i ich
realizacja w CODASYL
Sposób realizacji
wiązania m-n
Znaczenie praktyczne

system IDS (General Electric)
obecnie raczej nie używany
Model relacyjny
Cechy podstawowe

dane zawarte w tabelach
tabele składają się z kolumn
liczba kolumn i typy -- stałe
liczba wierszy zmienna
wiersze nie mają tożsamości innej niż wynikająca z zawartości kolumn
związki pomiędzy wierszami tabel -- zdefiniowane poprzez zależności między
wartościami wybranych kolumn, tzw. kluczy (nie ma wskaźników)
z punktu widzenia teorii model można opisać algebrą relacji między
zbiorami atrybutów
Języki obsługi

nieproceduralne: SQL, Sequel, QUEL, QBE
proceduralne: xBase
Znaczenie praktyczne

model dominujący w zastosowaniach komercyjnych
przykłady SZBD: Oracle, Informix, Sybase, Ingres, DB2, Progress, Gupta,
Access, dBase, Paradox
Przykład
Przykładowy schemat
danych -- związek 1-n # Id * Nazwa * Id
departamentu oddziału
... ... ...

# Id * Nazwisko * o Stanowisko * Id
pracownika Imię departamentu
... ... ... ... ...

Realizacja relacyjna
Ograniczenia

brak bezpośredniej reprezentacji związków n-m
dla trudniejszych problemów -- bardzo wiele tabel
mało naturalna reprezentacja danych
ograniczona podatność na zmiany
trudne operowanie na złożonych obiektach -- dane rozproszone w wielu
tabelach
brak złożonych typów danych
model mało wygodny dla zastosowań CAD, GIS itp.
Model obiektowy (object-oriented)
Cechy podstawowe

obiekt w bazie reprezentuje obiekt w świecie zewnętrznym
typ obiektowy (klasa):

definicja złożonego typu danych (może zawierać inne typy obiektowe lub
ich kolekcje)
procedury (metody) i operatory do manipulowania tymi danymi
tożsamość obiektu jest niezależna od zawartości danych
dziedziczenie (inheritance):

strukturalne: potomek dziedziczy strukturę danych
behawioralne: potomek dziedziczy metody i operatory
Cechy dodatkowe

enkapsulacja: wnętrze obiektu dostępne jedynie w sposób w nim zdefiniowany

polimorfizm: tak samo nazwane metody i operatory działają swoiście w
zależności od klasy obiektu
Przykład
Model obiektowy --
zawieranie i dziedziczenie
Zalety modelu

dość naturalna reprezentacja świata
łatwość działania na złożonych obiektach
duża podatność na zmiany
Znaczenie praktyczne

w zastosowaniach naukowych lub eksperymentalnych
przykłady systemów: GemStone, O2
przewidywana ewolucja baz relacyjnych w kierunku
obiektowo-relacyjnych
Relacyjne bazy danych
Literatura
C. Delobel, M Adiba: Relacyjne bazy danych. WNT, Warszawa
1989. M. Muraszkiewicz, H. Rybiński: Bazy danych. AOW, 1993. W. Harris:
Bazy danych nie tylko dla ludzi biznesu. WNT, 1994. K. Subieta:
Ingres. AOW PLJ, 1994. Wellesley Software: SQL. Język relacyjnych
baz danych. WNT. M. Gruber: SQL. Helion, 1996. Ulka Rodgers:
Oracle. Przewodnik projektanta baz danych. WNT, 1995. J. Gnybek:
Oracle łatwiejszy niż przypuszczasz. Helion, 1996. R. Barker:
CASE*Method. Modelowanie związków encji. WNT, 1996.
Podstawy teoretyczne modelu relacyjnego
Pojęcie relacji

rozważamy model pojęciowy
cechy rzeczywistości opisane są w atrybutach
schemat relacji to zbiór nazw atrybutów:
wartości atrybutów należą do dziedzin:
relacja na schemacie S to podzbiór iloczynu kartezjańskiego
dziedzin atrybutów:
relacja jest zbiorem krotek:
zbiór krotek może być reprezentowany jako tabela:

kolumny odpowiadają nazwom atrybutów
wiersze odpowiadają krotkom
Relacyjna baza danych

schemat relacyjnej bazy danych jest zbiorem schematów relacji
relacyjna baza danych jest zbiorem relacji spełniających warunki
integralności dla każdej relacji i między relacjami
Klucze

klucz relacji K = zbiór atrybutów, które jednoznacznie wyznaczają
krotkę:gdzie
ki[K] oznacza podkrotkę zawierającą tylko atrybuty z klucza
K
klasyfikacja kluczy:

klucze właściwe: żaden podzbiór właściwy klucza właściwego nie jest
kluczem
klucz główny: jeden z kluczy właściwych relacji, wybrany do
identyfikowania krotek
klucze wykrywa się analizując opisywany świat, a nie dostępne dane!
przykład:

id pracownika jest kluczem
nazwisko nie jest kluczem
nazwisko + imię + data urodzenia + imię ojca -- jest kluczem

Operacje na relacjach
Selekcja

selekcja = wybór krotek (wierszy):gdzie w jest
warunkiem selekcji
selekcja jest komutatywna:
Projekcja (rzut)

projekcja = wybór atrybutów (kolumn):
gdzie S' jest podzbiorem schematu S
projekcja jest wzajemnie komutatywna z selekcją:o ile warunek selekcji ma
sens po projekcji, tj. dotyczy tylko atrybutów wybranych w projekcji
Operacje teoriomnogościowe

dotyczą relacji opartych na identycznych schematach:

suma
iloczyn
różnica
Złączenie

operacja na dwóch relacjach -- podzbiór iloczynu kartezjańskiego dwóch
relacji:gdzie
w jest warunkiem złączenia
krotki złączenia stanowią sklejenie (konkatenację) krotek relacji
złączanych
rodzaje złączeń:

równościowe -- warunek równościowy
naturalne -- równościowe i nazwy atrybutów zgodne
Rachunki relacji

algebra relacji -- oparta na w/w operacjach
rachunek predykatów -- określa się schemat relacji wynikowej i
kwalifikatory (predykaty) określające warunki

rachunek krotek
rachunek dziedzin
algebra relacji prowadzi do języków proceduralnych
rachunek predykatów prowadzi do języków deklaratywnych
Zależności semantyczne w relacyjnej bazie danych
Ograniczenia integralności

świat rzeczywisty opisują tylko te z możliwych relacji, które spełniają
zależności semantyczne istniejące w modelowanym świecie
zależności w b.d. modeluje się jako tzw. ograniczenia integralności
(integrity constraints)
zależności semantyczne wykrywa się analizując opisywany świat, a
nie dostępne dane!
Rodzaje zależności

ograniczenia dotyczące atrybutu

obowiązkowość
ograniczenia wartości
ograniczenia dotyczące jednej relacji

funkcyjne (functional dependency)
wielowartościowe (multivalued )
zależności między relacjami

referencyjne -- zgodność wartości wybranych atrybutów

Zależności funkcyjne

zbiór atrybutów Y jest zależny funkcyjnie od zbioru X gdy z
każdą konfiguracją wartości atrybutów z X jest związana co najwyżej
jedna konfiguracja wartości z Y:
przykład:

imię zależy funkcyjnie od id pracownika
id nie zależy funkcyjnie od imienia
imię nie zależy funkcyjnie od nazwiska
aksjomaty Armstronga -- pozwalają znaleźć nowe zależności funkcyjne na
podst. już znalezionych:

--
zwrotność
--
rozszerzenie
--
przechodniość
każdy atrybut i cały schemat zależą funkcyjnie od klucza
zależność tranzytywna A od X:


Zależności wielowartościowe

zbiór atrybutów Y jest zależny wielowartościowo od zbioru X
gdy z każdą konfiguracją wartości atrybutów z X jest związany zbiór
konfiguracji wartości z Y niezależnie od wartości pozostałych
atrybutów:gdzie
(znaczy to, że można
wymienić części krotek: X i Y z k1 i resztę z k2)
najważniejsze własności:



relacja RS daje się rozłożyć w sposób odwracalny na dwie:
RXY i RXZ
istnieje odpowiednik aksjomatów Armstronga dla zależności
wielowartościowych
przykład:

podręczniki nie zależą od wykładowców
nie ma zależności funkcyjnych
zachodzą zależności i (zawsze para!)
można zamienić części krotek ZP i W
można rozłożyć na: ZW, ZP Zajęcia Wykładowca Podręcznik


Normalizacja
Redundancja

redundancja polega na powtarzaniu
wady redundancji:

anomalie
konieczność utrzymania spójności kopii
marnowanie miejsca
Anomalie

rodzaje:

istnienia
wstawiania
usuwania
modyfikacji
przykład: Imię Nazwisko Nr depart. Nazwa
depart.


Rozkład relacji i normalizacja

redundancję usuwa się przez rozkład relacji
rozkład odwracalny: można odwrócić przez naturalne złączenie
rozkład relacji powinien doprowadzić do tzw. postaci normalnej
rozkład relacji nie powinien powodować utraty zależności istniejących w
relacji pierwotnej
Pierwsza postać normalna

relacja jest w 1NF gdy wszystkie atrybuty są atomowe -- prostych typów
1NF jest wymogiem dla rachunku relacyjnego, a więc i języków zapytań
kontrprzykłady:

atrybut tablicowy
zbiór
Uwaga: Dalej będzie mowa jedynie o relacjach spełniających
1NF

Druga postać normalna

relacja jest w 2NF gdy każdy atrybut niekluczowy (nie należący do klucza
właściwego) jest zależny funkcyjnie od całego klucza właściwego
przyczyną braku 2NF jest zwykle błędne połączenie danych
kontrprzykład: spis przepustek

nazwisko zależy funkcyjnie od id prac., czyli od fragmentu klucza
rozkład IB, IN doprowadza do 2NF # Id prac. # Budynek Nazwisko


Trzecia postać normalna

relacja jest w 3NF gdy

jest w 1 NF i
każdy atrybut niekluczowy jest bezpośrednio zależny funkcyjnie od całego
klucza właściwego
możliwe przypadki naruszenia 3NF:

naruszenie 2NF
istnienie zależności tranzytywnej (a więc niebezpośredniej) od klucza
właściwego
przyczyną braku 3NF jest zwykle błędne połączenie danych
3NF jest zazwyczaj wystarczająca dla usunięcia praktycznie ważnych
anomalii
każdy schemat można doprowadzić do 3NF zachowując:

zależności
odwracalność rozkładu
kontrprzykład

jest 2NF, bo klucz jest jednoatrybutowy
zależność tranzytywna: I S P(pensja zależy funkcyjnie od stanowiska)

rozkład INS, IP doprowadza do 3NF # Id Nazwisko Stanowisko Pensja
prac.


Postać normalna Boyce-Codda

relacja jest w BCNF gdy każda nietrywialna zależność funkcyjna jest
zależnością od klucza (niekoniecznie właściwego)
w BCNF zależności tranzytywne nie istnieją w ogóle
nie każdy schemat można doprowadzić do BCNF z zachowaniem zależności
kontrprzykład: relacja w 3NF z anomaliami:

istnieją tu klucze: MU, UK (nazwy ulic mogą się powtarzać w różnych
miastach, zakładamy że nazwy miast się nie powtarzają)
występują zależności:
anomalie: usuwając ulicę możemy utracić informację o mieście
schemat jest w 3NF: brak atrybutów niekluczowych
schemat nie jest w BCNF: K nie jest kluczem
schemat jest nierozkładalny do BCNF bez utraty zależności
Miasto Ulica Kod



najczęściej zależności prowadzące do braku BCNF nie są istotne z punktu
widzenia projektu
Czwarta postać normalna

relacja jest w 4NF gdy jeśli każda nietrywialna zależność wielowartościowa
jest zależnością od klucza (niekoniecznie właściwego)
schemat doprowadza się do 4NF przez rozkład
kontrprzykład:

istnieją zależności i
nie ma zależności funkcyjnych
jest więc BCNF
występuje nadmiar informacji: powtórzone dane podręczników i wykładowców

rozkład ZW, ZP doprowadza do 4NF Zajęcia Wykładowca Podręcznik


Związki między postaciami normalnymi
4NF => BCNF => 3NF => 2NF => 1NF
Projektowanie schematów relacyjnych
Model pojęciowy
Cele modelowania pojęciowego

precyzyjne określenie zakresu projektu
modelowanie informacji:

niezbędnej dla działania organizacji
niezależnie od implementacji
wg określonego modelu danych
Diagramy związków encji (ERD)

elementy:

encje
atrybuty encji
związki
unikalne identyfikatory
ważne są konwencje!
Przykład
diagramu ERD
Encje

model rzeczy, osób itp.:

o których chcemy przechowywać informacje
które mają tożsamość
nazwa: rzeczownik w l.poj., wielkie litery
Przykłady:

produkt (towar), przedmiot
osoba, pracownik, klient
dokument, pozycja dokumentu

Atrybuty

określają cechy rzeczy, osób itp.:

identyfikują
opisują
podają ilości
klasyfikują
są prostego (atomowego) typu
muszą mieć precyzyjne nazwy
Przykłady:

kod towaru, nazwa
nr identyfikacyjny, imię, nazwisko, adres
cena, wartość, rodzaj płatności
Rodzaje atrybutów

obowiązkowe (*)
opcjonalne (o)

Związki

pokazują zależności między encjami
powinny być obustronnie nazwane
nie zapisuje się sposobu realizacji
Cechy związków

opcjonalność:

obowiązkowy
opcjonalny
stopień:

jeden (1)
wiele (n)
transferowalność
związki rekurencyjne
Poprawność związków

związki 1-1 są podejrzane
związki obustronnie obowiązkowe są podejrzane
związki rekurencyjne muszą być obustronnie opcjonalne
związki n-m powinny zostać rozbite:
Związek
n-m i jego rozbicie
Identyfikacja encji
Unikalne identyfikatory

każda encja powinna posiadać przynajmniej jeden unikalny identyfikator
możliwe składniki:

atrybuty
związki
atrybuty i związki
pierwotny UID:

identyfikuje wszystkie wystąpienia encji
wszystkie składniki obowiązkowe
przykład: numer id pracownika
wtórne UID:

do celów kontrolnych
składniki mogą być opcjonalne
przykłady: PESEL, nazwisko+imię+data urodzenia+imię ojca
Pożądane cechy pierwotnego UID

niezmienność
łatwość wyznaczenia wartości
czytelność
niewielka złożoność
Przykłady
UID faktury:
atrybutyUID pozycji: związek + atrybut (sequence in parent)
UID lokalizacji:
tylko związki

Typowe konstrukcje
Master - detail

typowa struktura dokumentu:

nagłówek
pozycje
związek obowiązkowy po stronie detail
UID detalu: związek + atrybut (najczęściej sequence in
parent)
Struktura
master - detail: faktura-pozycjaKlasyfikacja:
faktura-płatnośćSłownik: pozycja-towar
Słowniki

stosuje się by uniknąć powtarzania danych
przykłady: spis klientów, spis towarów
Klasyfikacja

encję dla klasyfikacji stosuje się, gdy:

klasyfikacja ma być ograniczona
słownik klasyfikacji ma być zmienny
przykłady: rodzaje płatności, grupy towarów, kolory
kontrprzykłady: dni tygodnia, płeć
Śledzenie zmienności

do śledzenia zmienności atrybutu tworzy się dodatkową encję
nie należy używać konstrukcji z atrybutami: wartość1, wartość2,
wartość3,...
Zapis zmian
stanowiska pracownika
Związki wykluczające się

zapisuje się za pomocą konwencji "łuku"
łuk może być:

obowiązkowy: jeden związek zachodzi
opcjonalny: zachodzi jeden lub żaden
Związki
wykluczające się (łuk obowiązkowy)
Drzewo

stosowane np. do opisu hierarchii
modelowane jako związek rekurencyjny obustronnie
opcjonalny
Związek
rekurencyjny -- hierarchia
Graf

stosowany np. do opisu struktur materiałowych: składnik--produkt
może być reprezentowany przez związek rekurencyjny n-m
reprezentacja ostateczna:

węzły -- encja "pierwotna"
łuki -- dodatkowa encja
dwa związki 1-n
Reprezentacje
grafu materiałów:w postaci związku rekurencyjnego n-mi w postaci
dwóch encji
Lista

nie stosuje się wskaźników
pozycje listy oznacza się numerami kolejnymi
Projekt logiczny
Cele projektowania logicznego

zaprojektowanie:

struktur danych
ograniczeń integralności
obudowy proceduralnej (wyzwalacze)
perspektyw
rozwiązań dla przetwarzania rozproszonego
bierze się pod uwagę konkretny SZRBD
Przekształcenie modeli pojęciowy logiczny

encje tabele

nazwy tabel -- w liczbie mnogiej
usuwamy znaki narodowe z nazw obiektów b.d.
atrybuty kolumny

typy z SZRBD
obowiązkowość więzy not null
pierwotne UID klucze główne
wtórne UID ograniczenia unikalności
związki klucze obce:

kolumny
ograniczenia
obowiązkowość klucz not null
nietransferowalność klucz niezmienny
Ograniczenia integralności
Ograniczenia deklaratywne i proceduralne

deklaratywne:

wykonywane przez serwer b.d.
dotyczą wszystkich operacji
dotyczą wszystkich wierszy (statyczne)
wykonanie bezbłędne i zoptymalizowane
proceduralne:

wykonywane przez serwer (dotyczą wszystkich operacji) lub aplikację
(dotyczą tylko operacji tej aplikacji)
dotyczą tylko zmienianych danych (dynamiczne)
kod może zawierać błędy
należy dążyć do ograniczeń:

deklaratywnych
po stronie serwera b.d.
Rodzaje ograniczeń deklaratywnych

kolumny: not null, check (in-line)
wiersza: check
tabeli: primary key, unique
referencyjne: foreign keyWyzwalacze
(triggers)

procedury rezydujące w serwerze b.d.
automatycznie wyzwalane przez:

wstawienie wiersza
usunięcie wiersza
modyfikację określonych kolumn
służą do:

wymuszania nietypowych reguł integralności (bussiness rules)
nietypowych zabezpieczeń dostępu
śledzenia zmian w b.d. (audit)
wymuszania integralności referencyjnej w rozproszonych b.d.
nietypowej replikacji danych
Klucze
Klucz główny (primary key)

funkcja: jednoznaczne identyfikowanie wiersza tabeli
budowa:

ogr. deklaratywne primary key
dla UID z atrybutów -- odpowiednie kolumny
dla UID zawierającego związki -- kolumny odpowiednich kluczy obcych
wszystkie kolumny klucza głównego muszą być obowiązkowe (not
null)
pożądane cechy:

niezmienność
mała długość (wydajność!)
sztuczne klucze główne:

klucz numeryczny
mechanizm do generowania unikalnych numerów
(tzw. sekwencja)
z kluczem głównym jest z reguły związany indeks unikalny
Klucze obce

funkcja: realizują związki
budowa:

dodatkowe kolumny klucza obcego odpowiadające kolumnom
wskazywanego klucza głównego
ogr. deklaratywne foreign key
sposób obsługi kasowania/modyfikacji wskazywanego klucza głównego:

restrykcja
kaskada
reprezentacja łuku:

dwa osobne klucze obce opcjonalne
dodatkowy warunek wykluczania (ograniczenia check lub wyzwalacz)
należy rozważyć zdefiniowanie indeksu dla klucza obcego
Realizacja więzów:
klucz obcy
Etapy projektowania logicznego
Kolejność czynności

przekształcenie modelu pojęciowego
poprawki (np. usunięcie znaków narodowych i spacji z nazw)
denormalizacja
uzupełnianie modelu logicznego:

indeksy
wyzwalacze
perspektywy
projektowanie rozproszone
projektowanie fizyczne (przestrzenie tabel, parametry alokacji, klastry
itp.)
implementacja (kod DDL)
czynnośći pomocnicze

szacowanie rozmiaru b.d.
opracowanie strategii administrowania(np. kopie
zapasowe)
Perspektywy

zapamiętane w b.d. definicje zapytań
stanowią "widok" na tabele
można ich używać tak jak tabel (niektóre są tylko read-only!)
zastosowanie:

ułatwienie powtarzających się zapytań
zabezpieczenie dostępu
Indeksy

służą do szybkiego wyszukiwania i sortowania danych
budowa:

oparte na kolumnie lub złożeniu kolumn (tzw. kluczu indeksowania)
wewnątrz zwykle B-drzewo (drzewo zrównoważone)
wykorzystanie:

indeks pozwala wyszukiwać według początku klucza indeksowania
indeks unikalny (unique) zapewnia niepowtarzalność klucza
indeksowania
przykład:CREATE INDEX prc_i ON pracownicy
(nazwisko,imie,data_urodzenia);

przyspiesza wyszukanie wg: nazwiska, nazwiska+imienia,
nazwiska+imienia_daty
nie przyspiesza wyszukiwania wg: imienia+nazwiska, imienia, daty
itp.
okoliczności stosowania:

dane używane często do wyszukań i złączeń, o dobrej selektywności
klucze obce
klucze unikalne
Denormalizacja

stosuje się dla znaczącego poprawienia wydajności
elementy:

wprowadzenie redundantnych danych
wprowadzenie kodu zapewniającego spójnośćTypowe
przypadki denormalizacji:

przechowywanie agregatów (sumy, średnie):
Przechowywanie
agregatów: ostatni stan



pre-join:
Pre-join:
kopia nazwy klienta


pośredni klucz obcy:
Pośredni klucz
obcy: pracownicy-oddziały

nie każdy przypadek przechowywania wyników obliczeń jest
denormalizacją!
Implementacja modelu logicznego

instalacja SZRBD i utworzenie bazy danych
tworzenie struktur danych:

elementy projektu przekształca się w odpowiednie zdania DDL (Data
Definition Language), umieszczane w skryptach
tworzy się schemat użytkownika-właściciela obiektów struktury
uruchamia się skrypty tworzące strukturę
tworzy się konta użytkowników i nadaje się im uprawnienia dostępu
tworzy się synonimy
wykonuje się kopię rezerwową (backup)
wprowadza się dane (np. przez import)
opracowanie i wdrożenie strategii wykonywania kopii rezerwowych
opracowanie i uruchomienie aplikacji
strojenie:

aplikacji
bazy danych


Wyszukiwarka

Podobne podstrony:
Wprowadzenie do baz danych
BD Wykˆad 1 Wprowadzenie do baz danych
Wprowadzenie do baz danych
Tworzenie interfejsów do baz danych z wykorzystaniem technologii
Dostep uzytkownikow mobilnych do baz danych WAP, PQA, MBTS
Zestaw 1 Wprowadzenie do relacyjnych baz danych
Wprowadzenie do systemów baz danych
Komp przetw danych Wprowadzenie do MATLABa 1
Komp przetw danych Wprowadzenie do MATLABa 2
WYKŁAD 1 Wprowadzenie do biotechnologii farmaceutycznej
Medycyna manualna Wprowadzenie do teorii, rozpoznawanie i leczenie

więcej podobnych podstron