Bazy danych - notatki - Student

advertisement
Bazy danych 1 - opracowania wykładów
1. Sześć podstawowych wymagań stawianych bazie danych
a. Spójność bazy danych
i. poprawność danych z punktu widzenia przyjętych kryteriów
ii. wierne odzwierciedlenie danych rzeczywistych
iii. spełnienie ograniczeń nałożone przez użytkowników
iv. odporność na anomalie będące wynikiem współbieżności dostępu do danych
v. odporność na błędy, awarie i inne anormalne sytuacje wynikające z
zawodności środowiska sprzętowo-programowego
vi. odporność na błędy użytkowników
b. Efektywne przetwarzanie danych
i. efektywne metody dostępu do danych
ii. optymalizacja metod dostępu do danych
iii. niezależność aplikacji od fizycznych metod dostępu do danych
c. Poprawne modelowanie świata rzeczywistego
i. wspomaganie procesu projektowania i utrzymania bazy danych
ii. różne poziomy modelowania danych
iii. transformacje między modelami danych
d. Autoryzacja dostępu do danych
i. użytkownicy z indywidualnymi hasłami dostępu
ii. użytkownicy i ich uprawnienia
e. Współbieżność dostępu do danych
i. równoczesny dostęp do tych samych danych przez wielu użytkowników
ii. konflikt odczyt-zapis, zapis-zapis
f. Metadane
i. dane o danych, strukturach dostępu, użytkownikach i ich prawach
2. Technologia baz danych
a. Fizyczne struktury danych i metody dostępu
i. pliki uporządkowane, haszowane, zgrupowane, indeksy drzewiaste i
bitmapowe
ii. metoda połowienia binarnego, haszowanie statyczne i dynamiczne, metody
połączenia, sortowanie, grupowanie
iii. składniowe i kosztowe metody optymalizacji dostępu
iv. fizyczna niezależność danych
b. Przetwarzanie transakcyjne (spójność bazy danych) OLTP - On-Line Transaction
Processing)
i. dostęp do bazy danych za pomocą transakcji o własnościach ACID1
ii. metody synchronizacji transakcji (2PL, znaczniki czasowe, wielo-wersyjność
danych)
iii. metody odtwarzania spójności bazy danych (plik logu, odtwarzanie i
wycofywanie operacji, punkty kontrolne
iv. archiwizacja bazy danych i odtwarzanie po awarii
1
ACID - zbiór właściwości, które gwarantują poprawne przetwarzanie transakcji w bazach danych. ACID jest
skrótem od angielskich słów: atomicity – atomowość, consistency – spójność, isolation – izolacja, durability –
trwałość
Strona 1 z 5
Bazy danych 1 - opracowania wykładów
c. Modele danych - każdy model danych definiuje trzy podstawowe elementy. tj.
struktury danych (reprezentowanie w bazie danych obiektów ze świata
rzeczywistego), operacje na danych inaczej manipulacje (operatory modelu danych) i
ograniczenia integralnościowe, reguły poprawności danych (np. data rozpoczęciadata zakończenia) nakładane na dane.
i. modele pojęciowe (model związków-encji, UML2)
ii. modele logiczne (relacyjny, obiektowy, obiektowo-relacyjny, semistrukturalny, hierarchiczny, sieciowy
1. Relacyjny model danych:
a. relacje
b. selekcja, projekcja, połączenie, operacje na zbiorach
c. klucz podstawowy, klucz obcy, zawężenie dziedziny,
unikalność, null
2. Obiektowy model danych (język UML):
a. obiekt: stan i funkcjonalność
b. cechy obiektów: atrybuty i związki
c. funkcjonalność obiektu: metody
d. tożsamość obiektu
e. hermetyczność obiektów
f. klasa: typ danych i moduł programowy
g. dziedziczenie: współdzielenie implementacji i relacja
podtypu
h. przeciążenie i dynamiczne wiązanie funkcjonalności
obiektów
d. Narzędzia programistyczne
i. języki budowy aplikacji
ii. narzędzia modelowania i projektowania
1. Modelowanie - odwzorowanie rzeczywistych obiektów świata
rzeczywistego w systemie informatycznym (bazie danych). Modele:
a. konceptualne (model związków-encji ER, model UML) reprezentacja obiektów w uniwersalnym modelu
niezależnym od modelu implementacyjnego
b. implementacyjne
modele
wykorzystywane
do
implementacji modeli konceptualnych; modele danych
(relacyjne obiektowe, itp.)
2. Cykl projektowania Systemu Informatycznego
a. analiza
b. projektowanie
c. implementacja
d. wdrożenie
e. utrzymanie
iii. metodyki projektowania
3. System zarządzania bazą danych
2
UML - język formalny wykorzystywany do modelowania różnego rodzaju systemów
Strona 2 z 5
Bazy danych 1 - opracowania wykładów
a. Oprogramowanie zarządzające całą bazą danych
b. Funkcjonalność
i. język bazy danych - tworzenie, definiowanie, wyszukiwanie i pielęgnacja
danych w bazie danych
ii. struktury danych - efektywne składowanie i przetwarzanie dużych
wolumenów danych
iii. optymalizacja dostępu do danych
iv. współbieżny dostęp do danych
v. zapewnienie bezpieczeństwa danych zagrożonego awaryjnością środowiska
sprzętowo-programowego
vi. autoryzacja dostępu do danych
vii. wielość interfejsów dostępu do baz danych
4. Pojęcia
a. SBD - system bazy danych
b. SZBD - system zarządzania bazą danych (komercyjne: Oracle, IBM, Microsoft, Sybase;
Niekomercyjne: MySQL, PostgreSQL, Firebird)
c. Język deklaratywny - język za pomocą którego specyfikujemy tylko to co chcemy
otrzymać, nie specyfikujemy sposobu (algorytmu) w jaki ma być zrealizowane.
d. Baza danych - zbiór relacji
e. Schemat bazy danych - zbiór schematów relacji
f. Schemat relacji - zbiór {atrybut, dziedzina, [ograniczenia integralnościowe]}
g. Relacja - zbiór krotek, cechy:
i. każdy atrybut relacji ma unikalną nazwę
ii. porządek atrybutów w relacji nie jest istotny
iii. porządek krotek w relacji nie jest istotny i nie jest elementem definicji relacji
iv. wartości atrybutów są atomowe (elementarne)
v. relacja nie zawiera rekordów powtarzających się (z definicji zbiorów)
h. Krotka - lista wartości atomowych
i. Wyróżniony klucz - klucz podstawowy (primary key)
j. Pozostałe klucze - klucze wtórne lub kandydujące (foreign key)
k. Klucz potencjalny - jest wybierany spośród zbiorów identyfikujących. Jest to taki
zbiór kolumn (atrybutów), w których wartości (w kluczu prostym) lub kombinacje
wartości (w kluczu złożonym) jednoznacznie identyfikują każdy wiersz (krotkę) tej
relacji. Jednocześnie kluczem potencjalnym jest taki zbiór kolumn, którego żaden
podzbiór nie jest zbiorem identyfikującym relacji (minimalny, zredukowany zbiór
identyfikujący). Klucz nie może zawierać wartości nieokreślonych (NULL). Klucz relacji
= klucz kandydujący = klucz potencjalny. Klucz może być prosty (jedna kolumna) lub
złożony (co najmniej dwie kolumny).
l. Ograniczenia integralnościowe - mechanizm (reguła), który gwarantuje ze dane
wpisane do relacji spełnią nałożone na nie warunki. Definiuje sie na poziomie
pojedynczego atrybutu lub całej relacji. Rodzaje:
i. klucz podstawowy (primary key) - atrybut (lub zbiór atrybutów), którego
wartość jednoznacznie identyfikuje krotkę, wartość ta jest unikalna w
obrębie całej relacji i jest niepusta
Strona 3 z 5
Bazy danych 1 - opracowania wykładów
m.
n.
o.
p.
q.
r.
s.
3
ii. klucz obcy (foreign key) - atrybut (lub zbiór atrybutów), który wskazuje na
klucz podstawowy, służy do reprezentowania powiązań między danymi
(łączenia relacji), podzbiór FK jest nazywany kluczem obcym jeżeli:
1. atrybuty FK mają taką samą domenę jak atrybuty klucza
podstawowego
2. dla każdej krotki w relacji R1 istnieje dokładnie jedna krotka z R2 lub
null
iii. unikalność (unique)
iv. zawężenie domeny/dziedziny (check) - ograniczenie dozwolonych wartości
do pewnego podzbioru przez wyrażenie logiczne określające przedział lub za
pomocą wyliczeniowej listy wartości np. płeć K, M, nieznana, N/A
v. wartość pusta/niepusta (NULL/NOT NULL)
Operatory algebry relacyjnej - działają w trybie odczytu, mogą być stosowane do
wszystkich możliwych relacji, bez INSERT, DELETE, UPDATE - ponieważ modyfikują
zawartość zmiennej relacyjnej.
i. σ <warunek selekcji> (<nazwa relacji>) wyodrębnienie podzbioru krotek
relacji, które spełniają warunek selekcji . Jest komutatywna3. (normalny
select z wherem)
ii. π <atrybuty> (<nazwa relacji>) - wyodrębnienie wybranych atrybutów
relacji. Nie jest komutatywna. (select z podaniem kolumn)
Encja - reprezentuje zbiór obiektów opisany tymi samymi cechami (atrybutami,
własnościami); informacje o obiektach będą przechowywane w BD; konkretny obiekt
świata rzeczywistego jest reprezentowany jako wystąpienie encji (instancję encji).
Każda encja posiada: unikalną nazwę oraz zbiór cech (atrybutów). Nazwa encji
powinna być rzeczownikiem w liczbie pojedynczej.
Złączenie naturalne - NATURAL JOIN - dwóch relacji np. A i B względem
(wyszczególnionych) kolumn a i b (przy czym a jest jedną z kolumn relacji A, a b jest
jedną z kolumn relacji B) jest zapisywane jako A (+) B (a=b) => R. Relacja wynikowa R
jest zbiorem wszystkich możliwych kombinacji krotek należących do obu relacji (ale)
spełniających warunek równości wartości w obu (wskazanych) kolumnach a i b, ale z
wyłączeniem kolumny b (gdyż wartości w kolumnie b są identyczne z wartościami
kolumny a, więc nie ma sensu ich dublować)
Język proceduralny - użytkownik poza sformułowaniem samego zadania musi
pamiętać o dodatkowych czynnościach pomocniczych (nie będących główną treścią
samego zadania). Użytkownik musi zwracać uwagę na deklarację typów danych,
błędy w samych danych lub błędy kompilacji.
Język deklaratywny - charakteryzuje się tym, że użytkownik musi jedynie
sformułować zadanie a następnie komputer sam przekształca zadania sformułowane
przez użytkownika do postaci języka proceduralnego.
Zapytania agregujące - MAX(), MIN(), AVG(), SUM(), COUNT()
Funkcja warunkowa - DECODE(kol1, war_do_kol1, rezultat_kol1) as 'alias'
komutatywna - przemienna
Strona 4 z 5
Bazy danych 1 - opracowania wykładów
t.
Operatory algebraiczne
i. UNION - suma zbiorów,
ii. UNION ALL - suma zbiorów bez eliminacji powtórzeń,
iii. EXCEPT (MINUS) - różnica,
iv. NTERSECT - przecięcie zbiorów
u. PL/SQL - autorskie rozwiązanie firmy ORACLe. Polega na rozszerzeniu języka SQL o
elementy proceduralne (nie wchodzące w skład standardu). Są to: instrukcje
warunkowe: IF ... THEN ... ELSE oraz pętle LOOP ... END LOOP, FOR ... IN ... LOOP,
WHILE ... LOOP. W skład rozszerzenia wchodzi także możliwość definiowania i
używania zmiennych.
v. Normalizacja
i. Warunki:
1. własność zachowania atrybutów - żaden atrybut nie zostanie
zagubiony w trakcie procesu normalizacji
2. własność zachowania informacji - dekompozycja relacji nie prowadzi
do utraty informacji
3. własność zachowania zależności - wszystkie zależności funkcyjne są
reprezentowane w pojedynczych schematach relacji
ii. Proces normalizacji:
1. UNF - zapewnij, aby wszystkie encje były jednoznacznie
identyfikowane przez kombinacje atrybutów i/lub ich związki
2. 1NF - Relacja R jest w pierwszej postaci normalnej (1NF) wtedy i
tylko wtedy, gdy wszystkie użyte dziedziny zawierają tylko atomowe
wartości - usuń powtarzające się atrybuty lub grupy atrybutów i
rozłóż atrybuty
3. 2NF - Relacja R jest w drugiej postaci normalnej (2NF) wtedy i tylko
wtedy gdy jest w postaci 1NF oraz każdy niekluczowy atrybut jest w
pełni funkcyjnie zależny od klucza głównego - usuń wszystkie
atrybuty, które zależą tylko od części jednoznacznego identyfikatora
4. 3NF - Relacja R jest w trzeciej postaci normalnej (3NF) wtedy i tylko
wtedy, gdy jest w 2NF oraz każdy niekluczowy atrybut jest
nietranzytywnie (tylko bezpośrednio) zależny od klucza głównego usuń atrybuty zależne od atrybutów, które nie są częścią
jednoznacznego identyfikatora
5. 4NF - Relacja R jest w czwartej postaci normalnej (4NF) względem
zbioru zależności wielowartościowych MVD wtedy i tylko wtedy gdy
jest w 3NF i dla każdej zależności wielowartościowej 𝑋 →→ 𝑌 ∈
𝑀𝑉𝐷 zależność ta jest trywialna (zbiór Y jest podzbiorem X lub X U Y
= R) lub X jest nadkluczem schematu.
Strona 5 z 5
Download