System bazo - danowy – uniwersalny program udostępniający użytkownikowi informację.
Baza danych – miejsce gdzie przechowuje się informacje – tzw. dane; to inaczej kolekcja informacji umieszczona w określonym miejscu na nośniku; każda informacja w bazie danych musi mieć pewną wartość i strukturę bo inaczej byłaby bezużyteczna.
System Zarządzania Bazą Danych – program umożliwiający zapisanie i dostęp do danych poprzez odpowiednie metody wyszukiwania i zestawiania danych; często używa się pojęcia System Baz Danych, co oznacza bazę danych wraz z S.Z.B.D. S.Z.B.D. sprawuje kontrolę nad fizyczną strukturą danych. Fizyczna struktura danych wiąże się z miejscem przechowywania danych w komputerach, wyznacza sposoby dostępu do danych, decyduje o tym jak dane się aktualizuje, tworzy i usuwa.
Perspektywa – punkt widzenia użytkownika.
Logiczny model danych - występuje pomiędzy perspektywą użytkownika a fizycznym modelem danych – to opis bazy danych, z którego można wyprowadzić perspektywy poszczególnych użytkowników.
Cechy S.Z.B.D.:
- zapewnia współbieżny dostęp do danych wielu użytkownikom;
- bezpieczeństwo i ochronę danych przed niepowołanym dostępem;
- umożliwia restart systemu po awarii sprzętu lub nośników, łączy czy związaną z konfliktami;
- musi odtworzyć bazę danych po awarii;
- optymalizacja dostępu – jak najszybciej należy dostarczyć informację użytkownikowi (czas i koszt);
- musi utrzymywać niezależność danych od aplikacji;
- oparcie fizycznej struktury danych na jednym logicznym modelu danych, który jest odzwierciedleniem perspektyw użytkowników;
- uwzględnia standardy języka zapytań;
- oddziela model fizyczny od modelu logicznego;
- automatycznie obsługuje spójność bazy danych – powiązania między informacjami muszą być spójne;
- redundancja danych – powtarzalność danych musi być ograniczona.
Współbieżny dostęp do danych polega na tym, że: 1. nie ma kłopotu z wieloma czytającymi użytkownikami, 2. jest problem z modyfikowaniem – gdy pojawi się użytkownik chcący zmodyfikować dane pojawia się problem kto ma pierwszy wykonać operację: czytający czy piszący.
Redundancja, awaryjność, bezpieczeństwo – system musi umieć odtworzyć sytuację sprzed awarii; dane muszą zachować swoją poprawność (stosuje się mechanizm dziennika);
HIERARCHICZNE S.Z.B.D. – rekordy w tej bazie danych powiązane były hierarchicznymi związkami jednoznacznymi; taka struktura jest jednoznaczna, struktura logiczna wiąże rekordy w hierarchie, które można reprezentować za pomocą drzew.
SIECIOWE S.Z.B.D. – ???
HIERARCHICZNE i SIECIOWE S.Z.B.D. - wymagały specjalnego języka:
- Data Definition Languague (DLL) – język definicji danych – za jego pomocą użytkownik informował jaki logiczny model danych będzie używany.
- Data Manipulation Languague (DML) – j. manipulowania danych – pozwalał na wyszukiwanie informacji w bazie danych, najczęściej był rozszerzeniem jakiegoś języka programowania.
OBIEKTOWE S.Z.B.D. – podstawowy element to obiekt z atrybutami i metodami. Poprzednie s.z.b.d. pozwalały na przechowywanie w polach rekordów liczb, dat, Boolean, ciągów, pól MEMO (notatnikowych) Poprzez dodanie do metod do obiektu strukturę można było rozszerzyć o dźwięk, obiekty wektorowe itp. Obiekty należą do klas. Dopuszczalne jest istnienie obiektów złożonych wskazujących na inne obiekty lub klasy. W obiektowych B.D. wykorzystywane są abstrakcyjne typy danych – jest to kombinacja danych i operacji na nich.
Rodzaje OBIEKTOWYCH B.D.:
- cechy S.B.D. dodaje się do obiektowego języka programowania;
- cechy S.B.D. zostały dodane do języka programowania, który jest rozszerzeniem nieobiektowego języka programowania.
- S.B.D. , w których podejście obiektowe zostało dodane do relacyjnej B.D.
RELACYJNE S.Z.B.D.
Atrybut – określona dana informacja; każdy atrybut ma swoją nazwę i może przyjmować wartości określonego typu; często nazywany polem B.D.
A – zbiór atrybutów. A = {A1 , ... , An } dziedzina D(Ai)
Relacja – podzbiór iloczynu kartezjańskiego postaci:
Rk Ì D(Ak1)x ... x D(Akn) gdzie AkjÎA
Relacyjna Baza Danych – zbiór wszystkich relacji w B.D.
RBD = {R1, ... , Rp}
Cechy RBD:
- relacje interpretowane są jako tabele z danymi; każda kolumna zdefiniowana jest przez dziedzinę wartości atrybutu, jego nazwę, typ;
- wiersze w tabeli mają jednakową strukturę, są w odpowiedniej kolejności;
- wiersze w relacji nazywamy krotkami (rekordami) a atrybuty (kolumny) polami.
- w relacji nie mogą się znaleźć dwie takie same krotki;
- relację nazywamy także tabelą.
Typy danych (atrybutów):
- liczbowy – N, C, R, I;
- ciąg znaków – X, C;
- data, czas – D, T;
- logiczny – L;
- notatnikowy (MEMO) – M;
- symulowany???.
Operacje na RBD:
- operacje teoriomnogościowe na relacjach – suma mnogościowa, iloczyn mnogościowy, iloczyn kartezjański;
- selekcja, projekcja, złączanie tabel (konkatenacja ?), otwarcie i zamknięcie tabeli i relacji.
Schemat formalny RBD: S = {A1,A2, ... ,An},
dziedzina atrybutu: Di=dom(Ai), D=D1ÈD2È...ÈDn R:S®D
Relacja RS na schemacie S to zbiór odwzorowań:
{R1,R2,...,Rp} takich że:
dla każdego (1£i£n) i dla każdego (kÎR) R(Ai)ÎDi , k1,...,kn – krotki
Uniwersum relacji dopuszczelnych RS.
Kluczem K w schemacie S nazywamy zbiór atrybutów takich, że KÍS i dla dowolnego RSÎ RS oraz krotek k1 i k2 Î RS zachodzi warunek:
k1(K) ¹ k2(K)
Klucz kandydujący – najlepszy klucz - z punktu widzenia RBD klucz o najmniejszej ilości atrybutów.
Klucz główny – klucz kandydujący (rozróżnia każdą krotkę w relacji) i jest dobrym identyfikatorem każdej krotki w relacji.
Pozostałe klucze – klucze wtórne.
Perspektywy użytkownika – podzbiory tabeli - pionowe (niektóre z atrybutów relacji są niewidoczne dla użytkownika), poziome (niektóre z krotek są niewidoczne).
Struktura S.Z.B.D.
Nagłówek - skład:
- nazwa relacji
- nazwa zbioru z krotkami
- liczba pól
- typy kolumn
Tabela - skład:
- header krotki – znacznik kasowania znajdujący się obok krotki; służy do tego aby fizycznie nie usuwać rekordów (dużo pracy przy przesunięciu rekordów w górę); może on być także nieco bardziej rozbudowany; w związku z powyższym bazie danych potrzebne jest okresowe czyszczenie (przez administratora)
- krotka.
S.Z.B.D. zawiera też pliki indeksowe – znajdują się w nich informacje o metodach wyszukiwania rekordów; zawierają wartość klucza i numer rekordu, w którym ta wartość występuje; można założyć po jednym pliku indeksowym dla każdego klucza.
Problemy w RBD:
- problem redundancji (powtarzalności) danych
- anomalia przy aktualizacji – może spowodować niespójność B.D. oraz niepoprawność informacji
- anomalia przy usuwaniu
- anomalia przy wstawianiu.
Języki zapytań w RBD – mechanizmy wyszukiwania informacji w bazie danych. Ich cechy:
- siła ekspresji – określenie zakresu tego co można zrealizować w tym języku
- pełność – pełny język pozwala na zapisanie dowolnego zapytania pozwalającego na odszukanie dowolnej informacji jednostkowej lub dowolnego zestawu takich informacji
- prostota i łatwość użycia takiego języka podczas zapytań
- rozszerzalność operacyjna języka – możliwość rozszerzenia języka zapytań o zasady programowania
- efektywność – czas dostępu do informacji
- udostępnienie języków programowania
- proceduralność (np. język oparty na algebrze relacji) – użytkownik buduje zapytanie w postaci procedury, która może być ciągiem kroków takich jak selekcja, rzut, złączenie; zapytanie jest opisem tego o co pytamy i jednocześnie metodą prowadzącą do uzyskania odpowiedzi; przeciwieństwo – języki nieproceduralne – zapytanie jest żądaniem użytkownika – co ma być wynikiem, składa się z dwóch części: schematu relacji tabeli wynikowej oraz opisu spełnionego w krotkach wynikowych;
Klasyfikacja języków zapytań w RBD.
ISBL – oparty na algebrze relacji (suma mnogościowa, iloczyn mnogościowy, selekcja, projekcja, łączenie); obowiązuje tu inna notacja zapisu niż w algebrze krotek.
QUEL – język oparty na relacyjnym rachunku krotek; używa się też frazy typu „range is”, która określa zmienną krotkową, która wskazuje te krotki, które należą do danej relacji i spełniają określone warunki; używa się też frazy typu „reprieve into” (<- to na pewno nie po angielsku) – gdzie należy umieścić wyszukane krotki; można zadawać pytania odnośnie dwóch tub więcej tabel; można usuwać, dodawać i sortować krotki; język QUEL został rozszerzony o tzw. funkcje agregujące – obliczenia sumy, min, max w danej kolumnie; QUEL można zanurzyć w języku C.
QBE – (Query By Example) oparty na relacyjnym rachunku dziedzin (kolumn); ma charakter dialogowy, wizualny; zakresem zmiennej jest atrybut a nie cała krotka; działa zasada typu: „szukaj takich krotek, że x<y+30”; wprowadzono funkcje agregujące: suma, min, max, średnia, ilość wystąpień; język wyposażony w mechanizmy typowe dla DML pozwalające na zmianę wartości oraz dodanie nowej tabeli, dodawanie i usuwanie atrybutów.
SQL – język oparty na rachunku relacji i rachunku krotek; zawiera DML i DLL, podstawową konstrukcją jest formuła: „select from where” – wybierz określone atrybuty z określonych relacji gdy zachodzi warunek, np.: „SELECT Rk1A1,...,RikAk FROM R1,...,Rj WHERE F” - formuła ta używana do selekcji i projekcji; przy pomocy SQL można tworzyć skomplikowane mechanizmy zapytań; zawiera funkcje agregujące, mechanizmy pozwalające na aktualizację, dopisywanie, usuwanie krotek (rachunek krotek); mechanizmem do definiowania logicznej struktury danych jest CREATE.
Operacje na relacjach.
Operatory algebry relacji dzielą się na jednoargumentowe (na jednej tabeli) i wieloargumentowe (na wielu tabelach); wyróżniamy operatory:
- selekcja – umożliwia wybór krotek relacji spełniających określone warunki
- projekcja – umożliwia okrojenie relacji do wybranych atrybutów
- łączenie – umożliwia łączenie krotek wielu relacji
- klasyczne operatory teorii mnogości (suma mnogościowa, produkt kartezjański, itp.)
Selekcja – operacja ta nazywa się także poziomym podzbiorem; zapis formalny:
åw(RS) = {kÎRS : w(k)=true},
w – warunek selekcji buduje się przy użyciu AND, OR, NOT, fÎ{=,¹,£,<,³,>} w postaci:
k(A)fa k(A)fk...
wips1