bazy danych wykład 1
DESCRIPTION
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) - PowerPoint PPT PresentationTRANSCRIPT
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 danych
Trzy poziomy abstrakcji danych
Wgląd zewnętrzny
Wgląd zewnętrzny
Schemat konceptualny
Schemat wewnętrzny
Poziom zewnętrzny
Odwzorowanie poziom zewnętrzny
schemat konceptualny
Poziom konceptualny
Odwzorowanie poziom konceptualnypoziom wewnętrzny
Poziom wewnętrzny
Użytkownicy końcowi
Fizyczna Baza danych
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
Student WykładZalicza
Nazwisko Rok urodz. Nr albumu Nr wykładu Nazwa
M N
Encje - notacja
Student Wykładowca Przedmiot
Związki - notacja
Student Przedmiotzalicza
Wykładowca
wykłada
Atrybuty
Przedstawienie właściwości, cechy przypisanej encji
Przykład:
encja Wydział ma atrybuty NazwaWydziału, Adres
Atrybuty - notacja
Student
Przedmiot
NazwaPrz
CzyEgzam
Nazwisko
Imię
Nr. indeksu
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
Student
PrzedmiotNazwaPrz
CzyEgzam
Nazwisko
Imię
Nr. indeksu
zalicza
Wykładowca
wykłada
Nazwisko
Imię
Stopień
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 Nazwisko Imię Rok urodz.000-111 Abski Jan 1969001-222 Cawski Marek 1968000-455 Dewski Andrzej 1967000-555 Gewski Wojciech 1968
WYKŁAD
Nr wykładu Tytuł Nr saliW11 Algebra 333W23 Matematyka 444W30 Fizyka 555
UCZESTNICTWO
Nr indeksu Nr Wykładu000-111 W11001-222 W23000-455 W30000-455 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
000-111 Abski Jan
000-455 Dewski Andrzej
W11 Algebra
W30 Fizyka
W11 Algebra
Student Wykład
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
PRACOWNIA
PACJENT
PERSONEL
ODDZIAŁ
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
DDL Deklaracje
Uprzywilejowane komendy
Katalog Systemowy/
Słownik danych
DDLKompilator
Zapytania interaktywne
Programy aplikacyjne
Prekompilator
Kompilator Zapytań
Procesor CzasuRzeczywistego Bazy Danych
Manager Danych
Fizycznych
Fizyczna Baza danych
Deklaracje DML Skompilowane
Transakcje
Kompilator Języka Bazowego
Kompilator DML
Użytkownicy Bazy Danych
Tymczasowiużytkownicy
Programiściaplikacji Użytkownicy
sparametryzowani
Kontrola WspółbieżnościBackup
Podsystemy Powrotu
WykonanieWykonanie
Wykonanie
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