Powszechność baz danych 30-10-
2012
• Bazy danych są obecnie szeroko stosowane i
znaleźć je można w firmach lub organizacjach o
różnej wielkości, wykorzystuje się je również w
zastosowaniach domowych.
• Życie codzienne często przynosi kontakt z bazami
danych:
– Konto w banku
– Kod towaru w sklepie
– Rozkład jazdy PKP, PKS, MPK
– Spis pracowników przedsiębiorstwa
– Wizyta u lekarza, pobyt w szpitalu
– Wizyta w bibliotece, wypożyczalni kaset
Definicja bazy danych
• Bazę danych można zdefiniować jako zbiór
wzajemnie powiązanych danych pamiętanych bez
zbędnej redundancji (nadmiarowości), służących
jednemu lub wielu zastosowaniom w sposób
optymalny;
• Dane pamiętane są w taki sposób, że są niezależne
od programów, które z nich korzystają; przy
dołączeniu i modyfikacji oraz wyszukiwaniu danych
stosuje się wspólną metodę umożliwiającą
sprawdzenie poprawności wykonywanych operacji;
• System zawiera zbiór baz danych, jeżeli są one
całkowicie rozłączne pod względem struktury;
Inna definicja baz danych
• Baza danych jest zbiorem
powiązanych danych.
• Baza danych jest abstrakcyjnym
informatycznym odzwierciedleniem
wybranego fragmentu rzeczywistości
nazywanego „miniświatem”. Zmiany
w tym świecie są odzwierciedlane w
bazie danych.
Baza danych – odzwierciedlenie
miniświata
• Mówiąc o wybranym fragmencie rzeczywistości mamy
na myśli rzeczywistość dwojakiego rodzaju: fizyczną i
konceptualną (abstrakcyjną).
• Rzeczywistość fizyczna – to ta, którą postrzegamy na
co dzień wokół nas naszymi zmysłami. Przykładem może
być rzeczywistość Politechniki, w której dostrzegamy, z
jednej strony studentów i pracowników, z drugiej indeksy,
podręczniki akademickie, sale dydaktyczne.
• Rzeczywistość konceptualna – to ta, która istnieje
zwykle w wyobraźni osób. Przykładem takiej
rzeczywistości jest projekt nowej wersji obrabiarki, której
wizja istnieje jedynie w sferze dyskusji i wyobraźni
zespołu projektantów.
Baza danych – wiernie
odzwierciedlenie miniświata
• Baza danych jest logicznie spójnym zbiorem
danych posiadających określone znaczenie.
• Logiczna spójność jest tu rozumiana jako
wierność odwzorowania miniświata. Innymi
słowy, baza danych nie może być w stanie,
który nigdy nie zachodzi w modelowanych
miniświecie.
• Przykładowo, baza danych, w której
ewidencjonowani są studenci Politechniki nie
może zawierać informacji o osobach, które na
tej uczelni nie studiują.
Baza danych - cel
• Baza danych jest logicznie spójnym zbiorem
danych posiadających określone znaczenie.
• Reprezentuje pewien ragment rzeczywistości
zwanego „miniświatem”. Zmiany w
„miniświecie” odzwierciedlane są w bazie
danych.
• Baza danych jest projektowana, budowana i
wypełniana danymi dla określonych celów. Ma
określoną grupę użytkowników korzystających
w określony sposób z zawartej w niej
informacji.
Baza danych - użytkownicy
• Projektant bazy danych
– Określa strukturę bazy danych, przygotowuje
programy (aplikacje) ułatwiające korzystanie z bazy
danych przez innych użytkowników
• Użytkownik końcowy bazy danych wypełnia i
przetwarza bazę danych
– Użytkownik zaawansowany
– Użytkownik początkujący (naiwny)
• Administrator bazy danych
– Posiada narzędzia diagnostyczne
– Stroi bazę danych (strojenie – „dobieranie
parametrów”)
Baza danych -
podsumowanie
• Baza danych
– Ma swoje źródło danych
– Posiada określony krąg użytkowników
– Odnosi się do pewnego fragmentu
rzeczywistości (np. przedsiębiorstwo,
biblioteka, uczelnia).
System zarządzania bazą
danych
• System zarządzania bazą danych (SZBD)
jest zbiorem programów umożliwiających
tworzenie i eksploatację bazy danych.
• Na funkcje te składa się:
1. Definiowanie bazy danych ( określenie
typów i struktur danych)
2. Konstruowanie bazy danych (zapamiętanie
danych na nośniku)
3. Przetwarzanie bazy danych
(manipulowanie, operowanie danymi)
System bazy danych
• System bazy danych składa się z bazy
danych i systemu zarządzani bazą danych.
• Użytkownicy
• Transakcje(zapytania)
• SZBD
– Moduł zarządzania transakcjami
– Moduł zarządzania dostępem do danych
• Baza danych
• Przykłady systemów baz danych : Oracle,
BD2, Informix.
Systemy baz danych
• Wśród podstawowych korzyści wynikających ze stosowania
systemów baz danych wyróżnia się:
1. Zmniejszenie nadmiarowości przechowywanych
danych. Polega na tym, że dane wykorzystywane przez
różne aplikacje nie są nigdy duplikowane. W konsekwencji
ułatwia to zachowanie ich poprawności.
2. Współdzielenie danych. Dane składowane w bazie
danych nie są zazwyczaj trzymane do użytku jednej osoby.
Oczekuje się zwykle, że baza danych będzie używana przez
więcej niż jedną osobę, możliwe, że w tym samym czasie.
3. Bezpieczeństwo danych. Tylko uprawnieni użytkownicy
mogą odczytywać i przetwarzać dane w bazie danych.
(Określanie praw dostępu dla grup użytkowników).
System baz danych -cd
4. Różnorodność sposobów widzenia danych. Te same
dane mogą być widziane wróżny sposób przez różnych
użytkowników. Dotyczy to zarówno zakresu, jak i
sposobu przedstawiania danych.
5. Reprezentacja złożonych związków pomiędzy
danymi. Polega na tym, że za pomocą prostych,
intuicyjnie dobrze zrozumiałych mechanizmów można
modelować związki pomiędzy różnymi danymi.
6. Kopia zapasowa & odtwarzanie. Ochrona przed
awariami systemu polegająca na automatycznym
tworzeniu przez SBD kopii zapasowej oraz możliwości
odtworzenia poprawnego stanu bazy danych w
przypadku nieprzewidzianej awarii (np. brak zasilania).
Języki baz danych
• Użytkownik (projektant) bazy danych ma do dyspozycji
różne języki, za pomocą których porozumiewa się z bazą
danych:
• Język zapytań (ang. SQL – Structured Query
Language), który umożliwia pobieranie z bazy danych
informacji zgodnych z wyspecyfikowanymi warunkami.
• 1. języki definiowania danych (ang. DDL- Data
Definition Language), który umożliwia definiowanie
struktury danych przechowywanych w bazie danych.
• 2.Język manipulowania danymi (ang. DML – Data
Manipulation Language), który umożliwia
wypełnianie bazy nowymi danymi, ich aktualizację lub
usuwanie.
Klasyfikacja systemów baz
danych
• SBD można klasyfikować według
różnych kryteriów:
• 1. Ze względu na stosowany model
danych (podstawowe kryterium)
• Model sieciowy (1961 Bachman)
• Model hierarchiczny (1965-1970)
• Model relacyjny (1970 Codd)
• Model obiektowy (1985, 1990)
Klasyfikacja systemów baz
danych
• 2. Ze względu na liczbę
użytkowników (system jedno – lub
wielodostępny)
• Systemy jednoużytkowe obsługują w
danej chwili tylko jednego
użytkownika.
• Systemy wieloużytkowe dotyczą
większości systemów baz danych,
obsługują jednocześnie wielu
użytkowników.
Klasyfikacja systemów baz
danych
• 3.Ze względu na liczbę węzłów (ang. Site)
(system scentralizowany lub rozproszony)
• Baza danych scentralizowana – dane
pamiętane są w jednym komputerze (na
pojedynczym węźle); może obsługiwać wielu
użytkowników, ale rezyduje na jednym
komputerze.
• Rozproszona baza danych – dane
pamiętane są na kilku węzłach (komputerach),
połączonych siecią komputerową;
Kiedy nie stosować SBD?
• Stosowanie systemów baz danych nie zawsze jest
uzasadnione. Nie zaleca się stosowania SBD:
• W przypadku ograniczonych możliwości finansowych
SZBD (z prawdziwego zdarzenia) jest drogi, najczęściej
wymaga kupna lub rozbudowy sprzętu.
• w przypadku gdy mechanizmy SBD, w zakresie
współbieżności dostępu, bezpieczeństwa, odtwarzania po
awarii są nadmiarowe.
–
Jeden użytkownik kilku użytkowników pracujących w ściśle
skoordynowany sposób (np. sekwencyjnie).
• w przypadku przechowywania prostych danych o niskim
stopniu wzajemnego powiązania oraz używania prostych
programów, które nie będą rozwijane w przyszłości.
Model danych
• Fundamentalną cechą systemów baz danych jest to, że
zapewniają one pewien poziom abstrakcji widzenia
danych przez użytkowników, przesłaniając szczegóły
dotyczące fizycznej organizacji danych.
• Uzyskuje się to dzięki oferowanym przez bazy danych
modelom danych.
• Model danych to zbiór koncepcji stosowanych do
opisu struktury bazy danych (typy danych, związki
pomiędzy nimi i ograniczenia nałożone na dane).
• Model ma za zadanie wprowadzić pośrednią warstwę
abstrakcyjną, która pozwala łatwiej analizować obiekty
świata rzeczywistego.
Model danych
• Wśród modeli danych wyróżniamy następujące kategorie:
– Konceptualne modele danych ( koncepcyjne, semantyczne) są to
modele najbardziej zbliżone poziomem abstrakcji do wymagań
projektantów baz danych, stosowane w pierwszych etapach projektów w
celu weryfikacji wyróżnionych w miniświecie obiektów i związków między
nimi.
– Implementacyjne modele danych stosowane do transformacji
wcześniej przygotowanego modelu konceptualnego do konkretnego
modelu danych bazy danych, a więc do postaci, która jest zgodna z
wymaganiami określonego SZBD. Wśród modeli implementacyjnych
wyróżniamy: hierarchiczny, sieciowy, relacyjny i obiektowy.
– Fizyczne modele danych określają sposoby organizacji danych w
pamięci zewnętrznej komputera. Modele te można rozpatrywać w sposób
bardziej lub mniej szczegółowy. Przy najwyższym stopniu szczegółowości
rozważa się poszczególne bity przechowywane w pamięci, ich znaczenie i
adres. Natomiast na najniższym stopniu szczegółowości, operuje się
pojęciami takimi jak rekord i plik.
Model danych
• Model konceptualny poziom
konceptualny
• Model implementacyjny poziom
implementacyjny
• Poziom fizyczny
Metodyka projektowania baz danych
1.
Pierwszym krokiem projektowania jest wyróżnienie fragmentu
rzeczywistości – miniświata, który chcemy odzworować w
bazie danych. Następnie przeprowadzamy precyzyjną analizę
tego miniświata, wyniku której otrzymujemy model
konceptualny reprezentowany przez tzw. Diagramy obiektowo-
związkowe.
2.
Drugim krokiem jest transformacja modelu konceptualnego
do wybranego modelu implementacyjnego (najczęściej
relacyjnego), której wynikiem są tzw. Schematy relacji.
3.
Schematy relacji muszą następnie zostać poddane tzw. Procesowi
normalizacji, który prowadzi do ich ulepszenia, polegającego na
usunięciu niepożądanych własności.
4.
Następnym etapem jest dobór właściwych struktur
fizycznych baz danych.
5.
(strojenie bazy danych).
Metodyka projektowania baz danych
• Analiza miniświata – konstrukcja
modelu konceptualnego
miniświata,
• Transformacja modelu
konceptualnego do modelu
relacyjnego,
• Normalizacja,
• Wybór struktur fizycznych,