42
Bazy danych Wykład 1 Piotr Gawrysiak [email protected] 21 września 2003

Bazy danych Wykład 1

  • Upload
    edana

  • View
    64

  • Download
    0

Embed Size (px)

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 Presentation

Citation preview

Page 1: Bazy danych Wykład 1

Bazy danychWykład 1

Piotr [email protected]

21 września 2003

Page 2: Bazy danych Wykład 1

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

Page 3: Bazy danych Wykład 1

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

Page 4: Bazy danych Wykład 1

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

Page 5: Bazy danych Wykład 1

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

Page 6: Bazy danych Wykład 1

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

Page 7: Bazy danych Wykład 1

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

Page 8: Bazy danych Wykład 1

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

Page 9: Bazy danych Wykład 1

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

Page 10: Bazy danych Wykład 1

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

Page 11: Bazy danych Wykład 1

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

Page 12: Bazy danych Wykład 1

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

Page 13: Bazy danych Wykład 1

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

Page 14: Bazy danych Wykład 1

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

Page 15: Bazy danych Wykład 1

Encje - notacja

Student Wykładowca Przedmiot

Page 16: Bazy danych Wykład 1

Związki - notacja

Student Przedmiotzalicza

Wykładowca

wykłada

Page 17: Bazy danych Wykład 1

Atrybuty

Przedstawienie właściwości, cechy przypisanej encji

Przykład:

encja Wydział ma atrybuty NazwaWydziału, Adres

Page 18: Bazy danych Wykład 1

Atrybuty - notacja

Student

Przedmiot

NazwaPrz

CzyEgzam

Nazwisko

Imię

Nr. indeksu

Page 19: Bazy danych Wykład 1

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.

Page 20: Bazy danych Wykład 1

Nasz diagram ER

Student

PrzedmiotNazwaPrz

CzyEgzam

Nazwisko

Imię

Nr. indeksu

zalicza

Wykładowca

wykłada

Nazwisko

Imię

Stopień

Page 21: Bazy danych Wykład 1

Krotności....

Page 22: Bazy danych Wykład 1

Krotności....

Page 23: Bazy danych Wykład 1

Krotności....

Page 24: Bazy danych Wykład 1

Krotności....

Page 25: Bazy danych Wykład 1

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

Page 26: Bazy danych Wykład 1

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

Page 27: Bazy danych Wykład 1

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

Page 28: Bazy danych Wykład 1

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

Page 29: Bazy danych Wykład 1

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

Page 30: Bazy danych Wykład 1

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

Page 31: Bazy danych Wykład 1

Model hierarchiczny c. d.

SZPITAL

LEKARZ

PRACOWNIA

PACJENT

PERSONEL

ODDZIAŁ

Page 32: Bazy danych Wykład 1

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

Page 33: Bazy danych Wykład 1

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

Page 34: Bazy danych Wykład 1

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

Page 35: Bazy danych Wykład 1

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

Page 36: Bazy danych Wykład 1

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

Page 37: Bazy danych Wykład 1

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

Page 38: Bazy danych Wykład 1

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

Page 39: Bazy danych Wykład 1

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

Page 40: Bazy danych Wykład 1

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

Page 41: Bazy danych Wykład 1

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

Page 42: Bazy danych Wykład 1

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