KIS PowerPoint template

Download Report

Transcript KIS PowerPoint template

Bazy danych
Wykład 1
Piotr Gawrysiak
[email protected]
21 września 2003
Baza danych, System Zarządzania Bazą Danych
•
baza danych
• kolekcja powiązanych i trwałych danych
•
dane
• fakty rejestrowane w bazie danych
•
System Zarządzania Bazą Danych SZBD (DBMS)
• zbiór programów umożliwiających użytkownikom definiowanie,
konstruowanie, manipulowanie bazą danych
•
definiowanie - specyfikacja typów danych, struktur, związków
integralnościowych dla danych przechowywanych w bazie danych
• konstruowanie - proces zapisu danych na nośniku danych oraz ich
kontrola przez SZBD
• manipulowanie - zapytania do bazy danych, modyfikacja,
raportowanie
Zagadnienia związane z zarządzaniem danymi
•
definiowanie struktur potrzebnych dla przechowywania informacji modelowanie danych
•
mechanizmy umożliwiające manipulowanie informacją - struktury
plików oraz architektura systemów, przetwarzanie zapytań, zapis,
modyfikacja oraz usuwanie informacji
•
narzędzia, programy usługowe oraz użytkowe umożliwiające
administrowanie oraz raportowanie
•
zapewnienie bezpieczeństwa oraz spójności informacji w bazie
danych
• ochrona informacji, odtworzenie systemu po awarii
•
kontrola współbieżności w przypadku, kiedy z systemu korzysta
wielu użytkowników
Ewolucja systemów zarządzania bazą danych
•
Przetwarzanie Plików - lata 50
•
Hierarchiczne oraz Sieciowe Bazy Danych lata 60 i 70
•
Relacyjne Bazy Danych - lata 80
•
Obiektowo-Relacyjne Bazy danych - lata 90
•
Obiektowe Bazy Danych
Problemy z przetwarzaniem plików
•
redundancja oraz niezgodność danych
• ta sama informacja może być przechowywana w wielu miejscach
• przy operacjach modyfikacji nie wszystkie kopie informacji mogą być
zmodyfikowane
•
trudności w dostępie do danych
• w przypadku nietypowego zapotrzebowania na dane wymagane jest
napisanie nowego programu aplikacyjnego
•
niekompatybilność danych
• dane w różnych formatach oraz plikach fizycznych
• trudności w rozwoju nowych programów aplikacyjnych
•
wielu użytkowników
• przetwarzanie równoległe - szybszy czas odpowiedzi, równoległa
praca użytkowników
• zabezpieczenie przed jednoczesnym zapisem
Problemy z przetwarzaniem plików - c. d.
•
problemy bezpieczeństwa
• każdy użytkownik powinien mieć dostęp do tych danych, do
których ma zezwolenie
• trudności w realizacji z bezpośrednim wykorzystaniem
programów aplikacyjnych
•
problemy integralnościowe
• dane muszą spełniać określone kryteria
• trudności w realizacji zmian integralności danych z
wykorzystaniem bezpośredniego przetwarzania plików
Abstrakcja danych
• podstawowym celem systemu bazy danych jest dostarczenie
użytkownikowi tzw. abstrakcyjnego wglądu do systemu
• system bazy danych ukrywa przed użytkownikiem w jaki sposób dane
są przechowywane oraz zarządzane
• istnieją trzy główne poziomy abstrakcji
• poziom fizyczny, schematy wewnętrzne
• organizacja fizyczna danych - indeksy, B-drzewa, pliki
haszujące
• poziom konceptualny, schematy konceptualne
• opis danych oraz związków przechowywanych w
systemie - poziom administratora
• poziom zewnętrzny, poziom wglądu, schemat zewnętrzny, wgląd
użytkownika
• opisuje część bazy danych dla wyszczególnionej grupy
użytkowników, może istnieć wiele wglądów dla bazy
Trzy poziomy abstrakcji danych
Użytkownicy
końcowi
Poziom zewnętrzny
Wgląd
zewnętrzny
Wgląd
zewnętrzny
Poziom konceptualny
Schemat konceptualny
Poziom wewnętrzny
Schemat wewnętrzny
Fizyczna Baza danych
Odwzorowanie
poziom zewnętrzny
schemat konceptualny
Odwzorowanie
poziom konceptualny
poziom wewnętrzny
Schematy bazy danych i instancje
•
w zależności od czasu zawartość bazy danych ulega zmianom
•
instancja - informacja zgromadzona w bazie danych w określonym
momencie czasu
•
schemat bazy danych - całościowy opis bazy danych fizyczny oraz
konceptualny
•
w zależności od poziomów abstrakcji wyróżnia się schematy baz
danych
• schematy fizyczne
• schematy konceptualne
• podschematy bazy danych utożsamiane z wglądami
Modele danych
•
zbiór notacji oraz narzędzi konceptualnych służących do opisu
danych, związków między danymi, związków semantycznych,
związków integralnościowych, czasami sposobów manipulowania
danymi
•
konceptualne postrzeganie danych, ich właściwości oraz związków
między danymi
•
modele danych - podział
• obiektowe modele konceptualne - struktury konceptualne
• logiczne modele danych oparte na rekordach - struktury danych
• fizyczne modele danych - struktury fizyczne
Obiektowe modele konceptualne
•
opis danych na poziomie konceptualnym oraz na różnych
poziomach wglądu
•
modele wykorzystujące elastyczne oraz abstrakcyjne struktury
opisu
•
modele konceptualne
• modele związków encji
• modele obiektowe
• modele binarne
• modele funkcyjne
• modele semantyczne
Model związków encji ERM
•
dziedzina konceptualna postrzegana jako zbiór encji (obiektów) oraz
związków między encjami
•
elementy modelu
• encja
• związek
• atrybut
•
encja
• jednoznaczny składnik badanej rzeczywistości - dziedziny
konceptualnej
• składnik w którym są przechowywane dane, wystąpienie encji
• encje są opisywane za pomocą rzeczowników lub wyrażeń
rzeczownikowych w liczbie pojedynczej
•
Jeśli trzeba przechowywać dane na temat wielu właściwości jakiejś rzeczy to można
ją zamodelować jako encję
•
Obiekt fizyczny lub pojęcie
•
Przykłady : osoba, samochód, dział, przelew, naprawa, zamówienie
•
encja: samochód, instancja : Skoda ZNA6362
Model związków encji - c. d.
•
atrybut
• cecha, element charakteryzujący encje i związki w dziedzinie
konceptualnej
•
•
wiązka atrybutów jest zestawem jednoznacznie opisującym
encję
związki
• związek stanowi naturalne powiązanie pomiędzy dwoma lub
więcej encjami w danej dziedzinie konceptualnej
• ogólny podział związków, binarne - obejmuje dwie encje,
wielorakie - obejmuje więcej niż dwie encje
• w modelowaniu związku istotne są
• liczebność związku - stosunek liczebnościowy między
wystąpieniami encji uczestniczącymi w danym związku
• reguły biznesowe
Diagram ER (ERD)
Struktura konceptualna może być przedstawiona za
pomocą diagramu ER
Nazwisko
Rok urodz.
Student
Nr albumu
M
Nr wykładu
N
Zalicza
Nazwa
Wykład
Encje - notacja
Student
Wykładowca
Przedmiot
Związki - notacja
Student
zalicza
wykłada
Wykładowca
Przedmiot
Atrybuty
Przedstawienie właściwości, cechy przypisanej encji
Przykład:
encja Wydział ma atrybuty NazwaWydziału, Adres
Atrybuty - notacja
NazwaPrz
Przedmiot
CzyEgzam
Nazwisko
Imię
Nr. indeksu
Student
Modelowanie semantyczne
•
Niektóre dane można modelować na wiele sposobów,
często wymiennie używając encji, związków i atrybutów;
•
Przykład : umowa kupna jako encja (sprzedajacy, kupujacy,
cena) albo jako dwie encje Sprzedajacy, Kupujący
połączone związkiem Kupno;
•
Wybieramy model najodpowiedniejszy z punktu widzenia
projektowanego systemu;
•
Dane reprezentujemy tak jak one są widziane w organizacji.
Nasz diagram ER
NazwaPrz
Przedmiot
CzyEgzam
zalicza
wykłada
Nazwisko
Imię
Nr. indeksu
Student
Nazwisko
Imię
Stopień
Wykładowca
Krotności....
Krotności....
Krotności....
Krotności....
Modele logiczne oparte na rekordach

opis danych na poziomie konceptualnym oraz
na poziomie wglądu

specyfikacja całościowa konceptualnej struktury
bazy danych

opis implementacji bazy danych na wysokim
poziomie

przykłady modeli logicznych opartych na
rekordach
model relacyjny
model sieciowy
model hierarchiczny
Modele logiczne oparte na rekordach c.d.

struktura bazy danych opiera się na rekordach
różnych typów o stałym formacie

każdy rekord definiowany jest poprzez stałą
liczbę atrybutów

każdy atrybut jest zazwyczaj określonego
rozmiaru co ułatwia implementację

nie zawierają mechanizmów bezpośredniej
reprezentacji kodu w bazie danych

z modelami związane są języki zapytań
umożliwiające realizację zapytań oraz
modyfikacji danych
Model relacyjny
•
dane oraz związki między danymi są
reprezentowane za pomocą zbioru tablic
•
każda tablica zawiera określoną liczbę kolumn
•
każda kolumna ma unikalną nazwę
•
każda tablica ma określoną liczbę kolumn oraz
dowolną liczbę wierszy
•
wartością atrybutu nie może być wskazanie na
inny wierszy z innej tablicy
Model relacyjny c. d.
STUDENT
Nr indeksu
000-111
001-222
000-455
000-555
Nazwisko
Abski
Cawski
Dewski
Gewski
Imię
Jan
Marek
Andrzej
Wojciech
Rok urodz.
1969
1968
1967
1968
WYKŁAD
Nr wykładu
W11
W23
W30
Tytuł
Algebra
Matematyka
Fizyka
Nr sali
333
444
555
UCZESTNICTWO
Nr indeksu
000-111
001-222
000-455
000-455
Nr Wykładu
W11
W23
W30
W11
Model sieciowy

dane są reprezentowane przez zbiory rekordów

relacje między danymi są reprezentowane za pomocą powiązań
(wskaźników)

model sieciowy jest reprezentowany jako graf, w którym
wierzchołkami są rekordy
Wykład
Student
000-111
Abski
Jan
W11
Algebra
000-455
Dewski
Andrzej
W30
Fizyka
W11
Algebra
Model hierarchiczny
•
posiada cechy modelu sieciowego
•
hierarchiczne struktury danych w postaci
hierarchicznych struktur drzewiastych
•
każda hierarchia reprezentuje zbiór powiązanych ze
sobą rekordów
•
reprezentuje ograniczony typ związku 1:N
Model hierarchiczny c. d.
SZPITAL
LEKARZ
ODDZIAŁ
PACJENT
PRACOWNIA
PERSONEL
Język definicji danych
•
DDL - Data Definition Language
•
używany do specyfikacji schematu bazy danych, schemat
bazy danych jest w postaci zbioru definicji
•
rozkazy DDL są kompilowane, wynikiem czego jest zbiór
definicji przechowywany w specjalnym pliku zwanym
składnicą danych lub katalogiem danych
•
składnica danych przechowuje metadane czyli dane o danych
•
ukrywanie szczegółów implementacyjnych struktury bazy
danych przed użytkownikami
•
schemat zawarty w DDL zawiera wystarczające informacje na
temat struktury bazy danych dla realizacji zapytań oraz
programów aplikacyjnych
Język manipulowania danymi
•
Data Manipulation Language - DML
•
manipulowanie danymi
• odczyt informacji z bazy danych
• wstawianie, usuwanie, modyfikacja informacji w bazie danych
• inne operacje: zmiana schematów bazy danych, transakcje
•
cele języka DML
• dostęp oraz manipulowanie danymi
• umożliwienie użytkownikowi efektywnej interakcji z systemem
bazy danych
Język manipulowania danymi c.d.
•
typy języków manipulowania danymi
• proceduralne - użytkownik precyzuje w jaki sposób mają być
pobrane żądane dane z bazy danych
• nieproceduralne - użytkownik specyfikuje tylko żadane dane,
które mają być pobrane z bazy danych
•
język zapytań jest częścią specyfikacji DML dotyczącej odczytu
danych
•
język zapytań oraz DML są często używane jako synonimy
Manager bazy danych

moduł programowy, który realizuje interfejs
pomiędzy poziomem przechowywania danych w
bazie danych a programami aplikacyjnymi oraz
zapytaniami

transfer danych pomiędzy pamięcią zewnętrzną
a pamięcią operacyjną

ułatwienie oraz umożliwienie dostępu do danych

wydajność oraz efektywność tworzenia
programów aplikacyjnych
Zadania managera bazy danych

translacja rozkazów DML do rozkazów niskiego poziomu
systemu plików - zapis, odtwarzanie, modyfikacja w
bazie danych

zabezpieczenie integralności - śledzenie operacji
modyfikacji bazy danych (łamanie zasad integralności
danych)

zachowanie bezpieczeństwa - zagwarantowanie, że
użytkownicy mają dostęp tylko do informacji, do której
mają autoryzację

kopie oraz odtwarzanie systemu po awarii - detekcja
awarii, błędów pamięci zewnętrznej, błędów
programowych oraz przywracanie stanu bazy danych do
stany przed awarią

kontrola współbieżności - zabezpieczenie konsystencji
danych, w przypadku równoległego dostępu
użytkowników
Administrator bazy danych

osoba odpowiedzialna za kontrolę danych oraz
programów aplikacyjnych

definicja schematu bazy danych

definiowanie struktury przechowywania danych
oraz metod dostępu

modyfikacja struktury fizycznej przechowywania
danych oraz schematu bazy danych

przydzielanie autoryzacji dostępu do danych

specyfikacja więzów integralnościowych
Użytkownicy baz danych

programiści aplikacyjni
 dostęp do systemu z wykorzystaniem DML jako języka
wbudowanego do programu aplikacyjnego napisanego w
języku bazowym np. C, C++, Pascalu
 prekompilator języka DML konwertuje wywołania DML w
procedury języka bazowego

„sparametryzowani” użytkownicy
 działają z systemem bazy danych bez pisania programów
aplikacyjnych, formułują żadania do bazy danych w
formie zapytań w języku lub za pomocą
sparametryzowanych programów
Użytkownicy baz danych - c. d.

użytkownicy specjalizowani
piszący specjalne programy aplikacyjne systemy zarządzania wiedzą, systemy
ekspertowe, systemy dla złożonych baz
danych

użytkownicy zwyczajni
użytkownicy korzystający nieprzerwanie z
systemu za pomocą programów
aplikacyjnych
Typowa struktura SZBS
Programiści
aplikacji
Użytkownicy
sparametryzowani
Programy
aplikacyjne
Tymczasowi
użytkownicy
Użytkownicy
Bazy Danych
DDL
Deklaracje
Prekompilator
Kompilator
Języka Bazowego
Uprzywilejowane
komendy
Zapytania
interaktywne
Deklaracje DML
Skompilowane
Transakcje
Kompilator
Zapytań
DDL
Kompilator
Katalog
Systemowy/
Słownik danych
Kompilator
DML
Wykonanie
Wykonanie
Procesor Czasu
Rzeczywistego
Bazy Danych
Manager
Danych
Fizycznych
Fizyczna Baza danych
Wykonanie
Kontrola Współbieżności
Backup
Podsystemy Powrotu
Komponenty SZBD

baza danych oraz katalog systemowy przechowywany
jest w pamięci dyskowej

dostęp do pamięci dyskowej jest kontrolowany przez
system operacyjny

manager danych fizycznych kontroluje dostęp do
informacji SZBD

kompilator DDL - przetwarza schematy bazy danych
zdefiniowane w plikach DDL i zapamiętuje opisy
schematów (meta-dane) w katalogu SZBD

katalog SZBD - zawiera informacje o nazwach plików,
pozycjach danych, szczegółach przechowywania plików
w pamięci, odwzorowaniu informacji w schematach,
więzach integralnościowych
Komponenty SZBD c. d.

procesor czasu rzeczywistego bazy danych - obsługuje
dostęp do bazy danych w czasie rzeczywistym, procesor
wykonuje przekazane operacje odczytu oraz modyfikacji bazy
danych, dostęp do pamięci dyskowej następuje z
wykorzystaniem managera danych

kompilator zapytań - obsługuje zapytania wysokiego poziomu
wprowadzone interaktywnie, analizuje składnię języka,
kompiluje lub interpretuje zapytania tworząc kod dostępu do
bazy danych a następnie wywołania do procesora czasu
rzeczywistego

prekompilator wydziela komendy DML z programu
aplikacyjnego napisanego w języku bazowym, komendy są
następnie przesyłane do kompilatora DML, pozostała część
programu aplikacyjnego jest przesyłana do kompilatora
języka bazowego

kod komend DML oraz pozostały kod programu aplikacyjnego
są łączone do postaci transakcji, których kod zawiera
wywołania dla procesora czasu rzeczywistego