Modele baz danych

advertisement
SYSTEMY BAZY DANYCH, SYSTEMY
ZARZĄDZANIA BAZĄ DANYCH I MODELE
BAZ DANYCH
CEL NAUCZANIA:
1Wykonywać obliczenia i opracowania graficzne z
wykorzystaniem programów komputerowych
Osiągnięcia:
1) Rozróżniać podstawowe pojęcia z baz danych:
• baza danych,
• system zarządzania bazą danych,
• system bazy danych
Baza danych
• Baza danych jest to uporządkowany zbiór danych z pewnej
dziedziny tematycznej, zorganizowany w sposób ułatwiający
dostęp do danych i operowanie nimi wg określonych
kryteriów.
• Baza danych jest abstrakcyjnym, informatycznym
odzwierciedleniem wybranego fragmentu rzeczywistości, zwanego
mini światem.
Bazą danych może być np. zbiór danych o uczniach i ich ocenach czy
kartoteka pacjentów.
• Baza danych – model świata rzeczywistego. Obiekty w opisywanej
rzeczywistości są encjami, a charakteryzowane są przez atrybuty.
• Baza danych – system, który przechowuje dane na nośniku
elektronicznym, mający zdefiniowaną strukturę, format i reguły
poprawności.
Baza danych
• Każda baza danych posiada
– swoje źródło danych
– swoich użytkowników
– związki z reprezentowaną rzeczywistością
• Projektanci baz danych definiują strukturę baz
danych i przygotowują programy - aplikacje BD.
• Baza danych musi być wypełniona danymi
a następnie przetworzona.
SYSTEM ZARZĄDZANIA BAZĄ DANYCH
• SZBD - DBMS - Data Base Management System
• SZBD jest oprogramowaniem ogólnego przeznaczenia
ułatwiającym procesy definiowania, konstruowania i
przetwarzania baz danych dla różnych aplikacji.
• System zarządzania bazą danych to oprogramowanie
zarządzające danymi w bazie i umożliwiające tworzenie
i przetwarzanie danych.
• Moduły SZBD
– Moduł zarządzania transakcjami
– Moduł zarządzania dostępem do danych
Umożliwia on m.in. właściwą interpretację danych,
wprowadzanie nowych danych, usuwania i modyfikowanie
danych.
Główne zadania SZBD
• Sprawne wykonywanie zapytań w celu wyszukiwania
informacji w bazie
• Zapewnienie integralności danych – wyłącznie takie
modyfikacje bazy, po których powiązania wszystkich rekordów
są poprawne
• Zabezpieczenie przed utratą danych – odporność na awarie
systemu i sprzętu (np. automatyczne tworzenie kopii
zapasowych)
• Zapewnienie wielodostępu – dostęp do danych wielu
użytkowników w sposób wykluczający kolizję
• Ochrona danych – autoryzacja z podziałem na różne poziomy
uprawnień użytkowników
System bazy danych składa się
z Bazy Danych i Systemu Zarządzania bazą danych
Baza danych: DANE i SCHEMAT
• Dane opisują cechy obiektu.
• Schemat jest opisem struktury przechowywanych danych oraz
powiązań wzajemnych między nimi.
• Przykładowe struktura informacji dot. grup studenckich:
1) Studenci
Tabela STUDENT (Nazwisko, NrIndeksu, Rok, Kierunek)
- schemat
Dane: Nowak, 18175, I, informatyka
Kowalik, 33573, II, telekomunikacja
2) Prowadzone wykłady
Tabela: WYKŁAD (Nazwa, Nr, Godziny, Prowadzący)
Dane: Języki programowania, CS201, 8, Misiak
Bazy danych, C8100, 8, Pilecki
3) Grupy studenckie
Tabela: GRUPA (NrGrupy, NrWykładu, Semestr, Rok)
Dane: 85, CS201, letni, 96
92, CS445, zimowy, 96
4) Oceny z zaliczeń modułów dydaktycznych
Tabela: OCENY (NrIndeksu, NrGrupy, NrWykładu, Ocena)
Dane: 18175, 92, CS100, 4
19551, 101, CS445, 5
Własności baz danych
• Niezależność aplikacji i danych.
Dane wprowadzane bez konieczności modyfikowania aplikacji
• Abstrakcyjna reprezentacja danych.
Przygotowanie aplikacji realizowane przy użyciu
deklaratywnych języków programowania na wyższym
poziomie niż w przypadku klasycznych języków
programowania.
• Różnorodność sposobów widzenia danych.
Różni użytkownicy widzą różnie te same dane - filtry,
perspektywy.
• Fizyczna i logiczna niezależność danych - rozszerzenie
systemu komputerowego nie narusza danych bazie danych.
Korzyści stosowana BD
• Zmniejszenie nadmiarowości przechowywania danych - dane
nie są duplikowane
• Współdzielenie danych - na tych samych danych pracują różne
aplikacje, bez zagrożenia zniszczenia
• Autoryzacja dostępu do danych uniemożliwiająca użytkowanie
poufnych danych przez niepowołanych użytkowników
• Wielość interfejsów do danych - wizualizacja tych samych
danych w różnych formatach, np. formularze
• Reprezentacja złożonych związków pomiędzy danymi
• Ograniczenia integralnościowe - zabezpieczenie przed
wpisywaniem do BD niewłaściwych wartości
• Ochrona przed awariami - uodpornienie SZBD, np. na zanik
zasilania - odtworzenie poprawnego stanu sprzed awarii.
Kiedy nie zaleca się stosowania Baz Danych
• W przypadku ograniczonych możliwości firmy
• W przypadku gdy mechanizmy SZBD w zakresie
współbieżności, dostępu, bezpieczeństwa itp. są nadmiarowe
• W przypadku przetwarzania danych przez pojedynczego
użytkownika lub grupę użytkowników pracujących w sposób
ściśle skoordynowany, np. sekwencyjny.
• W przypadku przechowywania prostych danych o niskim
stopniu powiązania oraz używania prostych programów,
nie rozwijanych w przyszłości.
• W przypadku istotnych ograniczeń czasowych na czas realizacji
transakcji, np. czasu rzeczywistego.
Podział baz danych ze względu na sposób dostępu
• Mogą być niewielkie bazy danych, np. baza znajomych, z której
korzysta jedynie właściciel albo duże bazy danych jak np. baza
danych w banku, do której jest konieczny dostęp z wielu
stanowisk.
• Baza danych może pracować jako
– baza jednostanowiskowa – baza i SZBD są na jednym komputerze,
dostęp ma jeden użytkownik
– baza ze współdzieleniem plików – baza i SZBD są dostępne na wielu
komputerach. W bazach tego typu współdzielone są jedynie pliki
danych, ale przetwarzanie danych odbywa się na każdym komputerze
oddzielnie
– baza typu klient serwer – baza i system zarządzania nią stanowią
odrębny proces, na wydzielonym komputerze – serwerze bazy danych.
Serwer BD odpowiada za zarządzanie danymi, przetwarzanie danych i
udostępnianie. Z serwerem są połączone przez sieć komputery
użytkowników, zwane klientami.
Modele baz danych
• Aby przechowywać informacje, konieczne jest określenie formy ich
przechowywania. Na potrzeby baz danych zostały zdefiniowane klasyczne
techniki organizowania informacji, zwane modelami baz danych.
• Bazy danych mogą różnić się sposobem, w jaki dane są zorganizowane i
powiązane ze sobą.
Przez model danych rozumiemy zbiór pojęć stosowanych do opisu
struktury bazy danych.
• Struktura BD obejmuje:
– typy danych, związki miedzy nimi i ograniczenia nałożone na dane
– zbiór operacji do definiowania, wyszukiwania i uaktualniania BD
• Wśród modeli danych można wyróżnić następujące kategorie:
– Koncepcyjne modele danych. Są to modele najbardziej zbliżone poziomem
abstrakcji do wymagań projektantów BD, stosowane w pierwszych etapach
projektów, w celu weryfikacji wyróżnionych w mini-świecie obiektów i
związków miedzy nimi
– Implementacyjne modele danych, stosowane do transformacji wcześniej
przygotowanego modelu koncepcyjnego do konkretnego modelu BD,
a więc do postaci, która jest z godna z wymaganiami określonego SZBD.
Modele implementacyjne baz danych
• Wśród modeli implementacyjnych wyróżniamy modele:
– hierarchiczny
– sieciowy
– relacyjny
– obiektowy
• Modele hierarchiczne i sieciowe są już prawie nie stosowane
w praktyce. Model relacyjny dominuje w komercyjnych
bazach danych. Przykładem jest relacyjny model w bazie
danych Oracle.
• Fizyczne modele danych, określają sposoby organizacji danych
w pamięci zewnętrznej komputerów.
Operuje się tu pojęciami takimi jak np. rekord, plik, adres.
Model hierarchiczny
• Dane są zorganizowane w postaci drzewa. Informacja jest
zawarta w dokumentach oraz w strukturze drzewa (podobnie
jak foldery na dysku komputera).
• W modelu hierarchicznym baza ma strukturę drzewiastą, z jednym
punktem początkowym i wieloma rozgałęzieniami, podobną do struktury
drzewa, folderów na dysku komputera czy drzewa genealogicznego.
Zbiór nadrzędny nazywamy rodzicem zawiera podzbiory zwane
potomkami.
Model sieciowy
• Powiązania miedzy dokumentami tworzą sieć.
Informacja jest zawarta w dokumentach oraz w przebiegu
połączeń sieci.
• W odróżnieniu od hierarchicznej, w bazie sieciowej dowolny
zbiór danych może być powiązany z każdym innym.
Model obiektowy
• Model obiektowy łączy cechy programów
komputerowych tworzonych w językach
programowania obiektowego
z cechami aplikacji bazodanowych. Obiekt w bazie
reprezentuje obiekt w świecie rzeczywistym.
• Aplikacje bazodanowe w modelu obiektowym bazują
na obiektach (zbiorach połączonych danych i
procedur umożliwiających manipulowanie tymi
danymi)
i tzw. klasach obiektów.
Model relacyjny
• Bazy relacyjne
Prawie najpopularniejsza grupa baz danych. Model
wykorzystywany najczęściej przy projektowaniu baz danych.
Dane przechowywane w wielu tabelach, pomiędzy tabelami
tworzone są specjalne powiązania zwane relacjami.
• Przykład: Tabele: Pracownik, Zespół, Etat
Tabela
• Tabela to zbiór powiązanych ze sobą danych.
Jest to układ poziomych wierszy zwanych
rekordami i pionowych kolumn zwanych
polami rekordu.
• Tabela jest identyfikowana przez nazwę.
• Przecięcie kolumny i wiersza tworzy pole.
Nazwa kolumny jest jednocześnie nazwą pola.
Baza kartotekowa
• Nazywana również bazą 2-wymiarową.
Bazy takie składają się tylko z jednej tabeli, w której
zgromadzone są wszystkie dane. Każdy rekord takiej bazy
można przedstawić w postaci pojedynczej karty.
Przykład: zestaw kart katalogowych książek w bibliotece lub kart
pacjentów. Kartotekowa baza danych oparta jest o 1 plik
danych.
Ogólne zagadnienia relacyjnych baz danych
• Relacyjna baza danych oparta jest zwykle o
kilka tablic danych, które powiązane są ze sobą
przez pole o wspólnej nazwie.
Przykładem może być baza hurtowni,
zawierająca dane o klientach, towarach i
wystawionych fakturach.
Wszystkie te tabele pozwalają na
wprowadzanie danych, przechowywanie w
pamięci masowej, sortowanie, wyszukiwanie,
wydruk.
Tabele i rekordy
• Dane przechowywane są w formie
strukturalnej.
• Każda informacja zapisywana jest w
podstawowym elemencie jakim jest rekord.
Rekordy są podzielone na pola.
• Każde pole ma swoją nazwę, wielkość oraz
definicję typu danych, jakie będą umieszczone.
• Główne typy pól: znakowe, numeryczne,
datownikowe, logiczne, notatnikowe.
Algebra relacji
• Relacyjny model BD został opracowany w oparciu o dziedzinę
matematyki zwanej algebrą relacyjną.
Twórcą modelu był amerykański matematyk E. F. Codd.
Dane są przechowywane w strukturach zwanych tabelami.
Tabele są podstawowymi obiektami BD. Przechowują one dane
wykorzystywane przez inne obiekty jak np. zapytania,
formularze czy raporty.
Tabela (table) - zbiór powiązanych ze sobą danych w BD,
przedstawiony w postaci poziomych wierszy zwanych
rekordami (krotki) i pionowych kolumn zwanych polami
rekordu.
Każde pole posiada unikatową nazwę w obrębie tabeli oraz
określony typ danych, np.
Nr, Imie, Nazwisko, Data_urodz, NrTelefon
Podział danych na tabele i klucze w relacyjnych
bazach danych – normalizacja baz danych
• W modelu relacyjnym dane wewnątrz bazy są
dzielone między tabele.
Podział nazywamy normalizacją baz danych.
W najprostszym przypadku baza danych może
sie składać tylko z jednej tabeli.
Przy złożonych danych mogą wystąpić
niepożądane zjawiska utrudniające lub
uniemożliwiające poprawne funkcjonowanie
bazy.
Przykład normalizacji
• Baza danych z jedną tabelą:
Uczen_Wypozyczenia (Imie_Ucznia, Nazwisko_Ucznia, Klasa
ImieAutora, NazwAutora, Tytuł, Wydawnictwo DataWypozycz,
DataOddania)
• W takiej prostej bazie danych z jedną tabelą można zauważyć
zjawisko redundendancji, czyli wielokrotnego powtarzania sie
pewnych danych w bazie.
• Np. jeśli ten sam uczeń wypożyczy kilka książek, to w każdym
rekordzie pojawią się te same dane ucznia.
Gdy np. popełnimy błąd w nazwisku to musimy poprawić
osobno w każdym rekordzie dot. tego ucznia.
Gdy uczeń odda wszystkie książki to usuwając rekordy tracimy
dane o uczniu. Później trzeba od nowa wprowadzić.
Baza danych po normalizacji
• Baza danych z wieloma tabelami.
Model tej samej Bazy Danych, ale dane zostały
podzielone na 3 tabele:
– Uczniowie (IDUcznia, IMUcznia, NazwUcznia,
Klasa)
– Ksiazki (IDKsiazki, ImAutor, NazwAutor, Tytiul,
Wydawn)
– Wypozyczenia (IDwypoz, IDUcznia, IDKsiazki,
DataWypoz, DataZwrotu)
Systemy relacyjnych baz danych
• Do najczęściej spotykanych profesjonalnych
systemów relacyjnych baz danych należą:
– ORACLE Universal Server
– DB2 Universal Database firmy IBM
– Informix Dynamic Server IBM
– PostgreSQL
– SQL Anywhere Studio (Sybase)
– Microsoft SQL Server
W komputerach osobistych popularne systemy to:
Access (Microsoft), FoxPro, Paradox i dBase (dBase Inc.)
oraz MySQL (firmy MySQL AB)
Download