RODZAJE_BAZ_DANYCH_I_ICH_BUDOWA.pdf

(4012 KB) Pobierz
1. RODZAJE BAZ DANYCH I ICH BUDOWA
2.1. Pojecie bazy danych
W codziennym życiu można się spotkać w różnych miejscach i w różnych sytuacjach
z przechowywaniem zbiorów informacji w celu ich udostępniana różnym użytkownikom.
Informacje przechowywane są za zwyczaj w sposób uporządkowany, co ułatwia ich
wyszukiwanie.
Przykładem zbioru informacji jest dziennik lekcyjny zawierający listy uczniów i ich
dane personalne. Przy każdym uczniu są gromadzone uzyskane przez niego oceny z
różnych przedmiotów oraz informacje o jego obecnościach udziale w lekcji itp.. Przykładem
miejsca gdzie wykorzystuje się różne zbiory informacji może być też biblioteka. Czytelnik
korzysta przede wszystkim z katalogu książek. Są w nim podane szczegółowe informacje o
każdej książce (grupie identycznych książek). Do identyfikowania konkretnych egzemplarzy
książek stosuje się oznaczenia zwane sygnaturami. Jest ponadto spis książek
wypożyczonych; przy każdej książce znajduje się informacja, kto tę książkę wypożyczył. Jest
też w bibliotece rejestr osób, które mogą z niej korzystać. Przy każdej osobie są
zgromadzone informacje o książkach przez nią wypożyczonych.
Informacje zamieszczone w poszczególnych spisach (rejestrach, katalogach) są ze
sobą powiązane. W obrębie poszczególnych spisów są one rozmieszczone w określonym
porządku, zazwyczaj alfabetycznym lub według numerów.
W trakcie użytkowania zbiory informacji są uzupełniane i korygowane. Z
gromadzonych informacji bywają sporządzane raporty dotyczące całości lub części zbioru.
Zbiory danych o określonej strukturze, umożliwiającej spełnianie tych funkcji, określa się
mianem baz danych. W informatyce pojęcie to odnosi się do zbiorów informacji zapisanych w
pamięci zewnętrznej komputera (np. na dysku twardym).
1
Baza danych
(angielskie
database
) jest to rodzaj komputerowego zbioru kartotek,
magazyn danych o określonej budowie. Baza danych jest modelowym ujęciem fragmentu
rzeczywistości będącego przedmiotem zainteresowania
(universe
of discours
) osób, instytucji,
organizacji, firm, zakładów itp., reprezentującym fakty dotyczące tej rzeczywistości w formie
umożliwiającej ich przetwarzanie w komputerze. Istotne obiekty danego przedmiotu
zainteresowania określa się jak encje lub klasy. Klasą lub encją w rejestrze samochodów są
poszczególne samochody, a także ich właściciele lub użytkownicy. Projekt bazy danych
określa jej strukturę (część intensjonalną) i zawartość (część ekstensjonalną). Dane
przechowywane w bazie są trwałe, co nie oznacza, że nie ulegają zmianom. W każdej chwili
baza danych znajduje się w określonym stanie. Operacje powodujące zmianę stanu bazy
danych noszą nazwę transakcji.
2
W rozumieniu ustawy z dnia 27 lipca 2001 r. o ochronie baz danych, termin
baza danych
to zbiór danych lub jakichkolwiek materiałów i elementów zgromadzonych według określonej
systematyki lub metody, indywidualnie dostępnych w jakikolwiek sposób, w tym środkami
elektronicznymi, wymagający istotnego, co do jakości lub ilości, nakładu inwestycyjnego w
celu sporządzenia, weryfikacji lub prezentacji jego zawartości.
3
1
2
3
. Płoszajski G;
Elementy informatyki użytkowanie komputera, , wyd. WSiP, Warszawa 1998.
. Płoski Z;
Słownik Encyklopedyczny – Informatyka,. wyd. Europa,. Wrocław 1999.
Ustawa z dnia 27 lipca 2001 r. o ochronie baz danych ( Dz.U. z 2001 r. Nr 128, poz. 1402)
Baza danych służy, zatem do tworzenia i zarządzania danymi zapisanymi w systemie
komputerowym. Prosta baza obejmuje jedną lub kilka tabel, natomiast bardziej rozbudowane
bazy posiadają dziesiątki jak nie setki tabel zawierających mnóstwo rekordów. Do
identyfikacji rekordów baza wykorzystuje jeden lub kilka indeksów. Dane w bazie są
przechowywane w postaci pól i rekordów. Pole w bazie odpowiada pojedynczemu
elementowi np. pola ( Imię, nazwisko, adres). Komplet pól tworzy rekord. Bazy danych
operują głównie na danych tekstowych i liczbowych, lecz większość współczesnych baz
umożliwia przechowywanie danych binarnych typu: grafika, muzyka itp.
Cechy poprawnej bazy danych
1. niepodzielność danych pierwotnych - dane przechowywane w jednostkach
najniższego rzędu są traktowane jako niepodzielne.
2. brak nadmiarowości - każda informacja jest zapisana dokładnie jeden raz; do
aktualizacji jednej informacji wystarczy modyfikacja jednego wpisu do bazy.
3. integralność - informacje przechowywane w bazie nie mogą być wzajemnie
sprzeczne.
4. spójność - wszystkie składniki bazy zawierają wyłącznie sensowne wartości.
Kryterium sensowności winno być ustalone osobno dla każdego składnika bazy
(np. data urodzenia nie powinna być datą z przyszłości, data zgonu nie powinna
być wcześniejsza od daty urodzenia).
5. przemyślany układ tabel - pojedyncza tabela bazy danych winna przechowywać
dane opisujące tylko jeden „rodzaj zależności” (np. w tabeli danych osobowych
nie umieszczamy pola
Imie-psa
— ktoś może nie mieć psa, a ktoś inny może
mieć ich więcej). Układ tabel powinien odzwierciedlać relacje — czyli mówiąc z
grubsza zależności między danymi — w jednej z ich tzw.
postaci normalnych.
Zgodność taka umożliwia przechowywanie minimalnego zestawu danych i
unikanie komplikacji związanych z zarządzaniem danymi.
2.2. Rodzaje baz danych
Biorąc pod uwagę miejsce przechowywania bazy danych, możemy wśród nich wyróżnić:
1..
Lokalne bazy danych
- są to najprostsze bazy danych, które w całości znajdują się
na jednym komputerze np. prosta baza zawierająca spis ludności w danym mieście. Baza ta
będzie się zawierać tylko w jednej tabeli. Wszelkie zmiany użytkownik będzie bezpośrednio
nanosił na ta tabele np. dodawanie, usuwanie lub aktualizację poszczególnych rekordów.
Przykładem lokalnych baz danych mogą tu być: Access, Paradox, dBase.
2..
Bazy typu klient-server
- główna baza tego typu jest przechowywana w zasobach
serwera, który to na ogół jest wydzielony jako osobny komputer. Dostęp do niego jest
realizowany za pośrednictwem innych komputerów – oczywiście przez sieć, zatem nie
musza się znajdować blisko siebie by korzystać z takiej bazy. Użytkownicy korzystając z
takiej bazy nie korzystają bezpośrednio z jej zasobów, ponieważ odbywa się to za
pośrednictwem programów zwanych klientami. Jeśli chodzi o serwery to najbardziej
popularne na rynku obecnie są produkty firm: InterBase, Oracle, Sybase, Informix oraz
Microsoft. Bardzo ważna cechą serwera jest możliwość korzystania wielu użytkowników, a
wszystko to związane jest z licencją sprzedawaną przez producentów tego oprogramowania.
Ze względu na architekturę baz danych można wyróżnić:
1.
Bazy jednowarstwowe,
które wykonują natychmiast wszelkiego rodzaje zmiany, zaś
program, który udostępnia użytkownikowi zawartość bazy ma z nim bezpośredni kontakt.
2.
Bazy dwuwarstwowe,
w których klient porozumiewa się z serwerem za pomocą
specjalnych sterowników. Jeśli chodzi o samo połączenie to jest ono zależne od samego
serwera, natomiast kontrolowanie poprawności danych zależy od klienta. Rozwiązanie takie
wiąże się ze sporym obciążeniem programu klienckiego.
Większość lokalnych baz danych opiera się na jednowarstwowym modelu, natomiast
bazy typu klient-serwer na wielowarstwowym modelu architektury baz danych.
Obecnie ludzie, którzy zajmują się na co dzień bazami danych mogą łatwo stwierdzić, że
różnią się one pomiędzy sobą w wielu aspektach. Praktycznie każda baza tworzy swoją
własną kategorię i trudno je zaszufladkować. Jako cechy charakterystyczne dla danej grupy
baz wyodrębnić można:
a. model danych (data
model)
b. język zapytań (query
language),
c. model obliczeniowy (computational
model).
Bazy danych można podzielić według struktur danych, których używają:
1.
Bazy proste
(kartotekowe) - każda tablica danych jest samodzielnym dokumentem i
nie może współpracować z innymi tablicami. Do baz tego typu należą liczne programy typu -
książka telefoniczna, książka kucharska, spis książek, kaset lub płyt. Wspólną cechą tych
baz jest ich zastosowanie w jednym wybranym celu.
Tabela 1: Przykład bazy kartotekowej
Rekord 1
Rekord 2
Rekord 3
N: Kowalski, Jan
T: Poezje
M: Kraków R: 2000
N: Kowalski, Jan
T: Wspomnienia
M: Wrocław R: 2001
N: Wysocka, Ewa
T: Filozofia
M: Kraków R: 2001
2.
Relacyjne bazy danych
(RDB) - wiele tablic danych może współpracować ze sobą.
Bazy relacyjne posiadają wewnętrzne języki programowania (SQL), za pomocą których
możemy tworzyć własne menu oraz zaawansowane funkcje obsługi danych. Relacyjne bazy
danych (jak również przeznaczony dla nich standard (SQL) oparte są na kilku prostych
zasadach:
a. Wszystkie wartości danych oparte są na prostych typach danych.
b. Wszystkie dane w bazie relacyjnej przedstawiane są w formie dwuwymiarowych
tabel (w matematycznym żargonie noszących nazwę „relacji”). Każda tabela
zawiera zero lub więcej wierszy (w tymże żargonie - „krotki”) i jedną lub więcej
kolumn („atrybuty”). Na każdy wiersz składają się jednakowo ułożone kolumny
wypełnione wartościami, które z kolei w każdym wierszu mogą być inne.
c. Po wprowadzeniu danych do bazy możliwe jest porównywanie wartości z różnych
kolumn, zazwyczaj również z różnych tabel, i scalanie wierszy, gdy pochodzące z
nich wartości są zgodne. Umożliwia to wiązanie danych i wykonywanie
stosunkowo złożonych operacji w granicach całej bazy danych.
d. Wszystkie operacje wykonywane są w oparciu o logikę, bez względu na położenie
wiersza tabeli. Wiersze w relacyjnej bazie danych przechowywane są w porządku
zupełnie dowolnym - nie musi on odzwierciedlać ani kolejności ich wprowadzania,
ani kolejności ich przechowywania.
e. Z braku możliwości identyfikacji wiersza przez jego pozycję pojawia się potrzeba
obecności jednej lub więcej kolumn niepowtarzalnych w granicach całej tabeli,
pozwalających odnaleźć konkretny wiersz. Kolumny te określa się jak „klucz
podstawowy” (primary
key)
tabeli.
Tabela 2: Przykład bazy relacyjnej
Tabela miast
M:
Kraków
M: Wrocław
Tabela osób
N: Kowalski, Jan
N: Wysocka, Ewa
Relacje (N, M)
Relacje (N, M)
Relacje (N, M)
Rekord 1
N:
T:
M:
R:
Kowalski, Jan
Poezje
Kraków
2000
N:
T:
M:
R:
Rekord 2
Kowalski, Jan
Wspomnienia
Wrocław
2001
N:
T:
M:
R:
Filozofia
Kraków
2001
Rekord 3
Wysocka, Ewa
3.
Obiektowe bazy danych
(ODB) - nie są one zdefiniowane żadnym oficjalnym
standardem. Obowiązujący obecnie standard opracowany przez ODMG został opublikowany
w 1993 roku. Jednym z podstawowych celów modelu obiektowego jest bezpośrednie
odwzorowanie obiektów i powiązań miedzy nimi wchodzących w skład aplikacji na zbiór
obiektów i powiązań w bazie danych. Dzięki mechanizmom obiektowym można też
zwiększyć niezależność danych od aplikacji poprzez przeniesienie procedur obsługi danych
(w postaci metod) do systemu zarządzania bazą.
Model danych w obiektowych bazach
danych posługuje się pojęciami takimi jak klasy, atrybuty, metody, udostępnia
identyfikatory obiektów (OID), hermetyzacje danych oraz metod i wielokrotnego
dziedziczenia.
Obiektowe bazy danych łączą własności obiektowości i obiektowych języków
programowania z możliwościami systemów bazodanowych. Rozszerzają możliwości
obiektowych języków programowania (takich jak C++, Java czy Smalltalk) czyniąc z nich
narzędzia do łatwego i efektywnego tworzenia systemów baz danych zmniejszając stopień
złożoności i ilość kodu programów.
4.
Strumieniowe bazy danych
to bazy danych, w których dane są przedstawione w
postaci zbioru strumieni danych. System zarządzania taką bazą nazywany jest
strumieniowym systemem zarządzania danymi (Data
Stream Management System).
Większość strumieniowych baz danych w chwili obecnej znajduje się w fazach
prototypowych i nie powstały dotychczas komercyjne rozwiązania.
Różnice pomiędzy poszczególnymi rodzajami baz danych są bardzo widoczne
szczególnie w przypadku baz relacyjnych i baz obiektowych.
Tabela 3: Porównanie relacyjnej i obiektowej baz danych
RELACYJNE
·
·
·
OBIEKTOWE
·
·
Cechy
podstawowe
Dane zawarte w tabelach
Tabele składają się z
kolumn
Typy - predefiniowalne
Obiekt w bazie reprezentuje
obiekt w świecie rzeczywistym
Typ obiektowy (klasa):
o
definicja złożonego typu
·
·
·
Liczba wierszy zmienna
Value-based
Nie ma wskaźników lecz
klucze zewnętrzne
·
·
·
danych (może zawierać
inne typy obiektowe lub
ich kolekcje)
o
procedury (metody) i
operatory do
manipulowania tymi
danymi
Identity-based
Enkapsulacja
Dziedziczenie:
o
strukturalne: potomek
dziedziczy strukturę
danych
o
behawioralne: potomek
dziedziczy metody i
operatory
Przykłady
systemów
Stan na
dzisiaj
Oracle, Informix, Sybase, Ingres,
DB2,
Progress, Gupta, Access
Dominuje w zastosowaniach
komercyjnych
(ok. 95% rynku baz danych)
·
·
·
·
GemStone, O2, Persistence, Versant,
POET, Objectivity, ODI
Mniej popularne, jednak dobrze rokują na
przyszłość
·
·
·
·
·
·
Zalety
·
·
·
niezależność od języka
programowania
sprawdzone, dobrze
zdefiniowana teoria
możliwość zarządzania
wielka ilością danych
możliwość złożonych
kryteriów
wyszukiwawczych
możliwość dostępu do
danych fizycznych
dobre mechanizmy kontroli
dostępu do danych
mechanizmy perspektyw
·
dość łatwa reprezentacja świata
dokładnie reprezentuje złożone
zależności miedzy obiektami
łatwość działania na złożonych
obiektach
duża podatność na zmiany
możliwość definiowania własnych
typów, metod
dobra integracja z językami
programowania ogólnego
przeznaczenia (np. C++,
Smalltalk)
ujednolicony model pojęciowo -
obiektowe podejście do analizy,
projektowania i implementacji
·
·
·
Wady
·
·
·
brak bezpośredniej
reprezentacji n-m
dla trudniejszych
problemów bardzo dużo
tabel
mało naturalna
reprezentacja danych
ograniczona podatność na
zmiany
brak złożonych typów
danych
trudne operowanie na
danych złożonych
·
·
·
·
·
·
·
powiązanie z jednym językiem
programowania
słaba obsługa przeszukiwania
danych
brak powszechnie
zaakceptowanego języka zapytań
brak możliwości optymalizacji
zapytań
trudny lub nawet niemożliwy
dostęp do fizycznych danych
sylaba kontrola dostępu
małe możliwości optymalizacji
Zgłoś jeśli naruszono regulamin