Document 7696617

Download Report

Transcript Document 7696617

Relacyjne Bazy Danych
Wykład I
1
opr. Lech Banachowski, Jan Wierzbicki
Literatura
• Lech Banachowski: Bazy danych projektowanie aplikacji, Akademicka
OficynaWydawnicza PLJ, 1998
• Dariusz Boratyn: MS Access,
• Paul Beynon-Davies: Systemy baz danych,
WNT, 1998
2
opr. Lech Banachowski, Jan Wierzbicki
Baza danych
• pojęcie sięgające wieków
• Informacja, dane – pewien zasób
• ludzie od zawsze próbują gromadzić
informację i wnioskować na jej podstawie
• komputery – tylko ułatwiają przetwarzanie
informacji
3
opr. Lech Banachowski, Jan Wierzbicki
• Dane są takim samym zasobem firmy jak każdy inny
(np. pracownicy, materiały, urządzenia) i
wymagającym, tak samo jak one, zarządzania.
• Informacja to dane razem z ich semantyką znaczeniem dla firmy.
• Zarządzanie danymi jest realizowane poprzez system
informacyjny obsługujący zapotrzebowania na
informacje dla pewnego fragmentu rzeczywistości w
firmie.
• Baza danych stała się standardową metodą
wprowadzenia struktury do procesu zarządzania
danymi.
• Baza danych jest częścią systemu informacyjnego
firmy.
4
opr. Lech Banachowski, Jan Wierzbicki
Informacja ma wartość
gdy jest:
• dokładna (nie za dużo, ani nie za mało)
• dostępna
gdy mamy „zły” sposób poszukiwania
informacji możemy nie być wstanie jej
odszukać
- może nam zabraknąć np. „życia”
- komputer tu nic nie pomoże
5
opr. Lech Banachowski, Jan Wierzbicki
Baza danych
• metoda strukturalizacji zarządzania
informacją
• dotyczy fragmentu rzeczywistości i stanowi
kolekcję danych
• część systemu informacyjnego
- aplikacja bazy danych (oprogramowanie)
- system informatyczny (sprzęt)
6
opr. Lech Banachowski, Jan Wierzbicki
Linia lotnicza
D
B
E
A
C
F
7
opr. Lech Banachowski, Jan Wierzbicki
Inne złożone Bazy danych
• Bankowe
ochrona danych
• Satelitarne
tryliardy danych
8
opr. Lech Banachowski, Jan Wierzbicki
Bazy danych
• Wszechobecność informacji:
od serwisów działających na przeglądarkach internetowych,
po aplikacje naukowe.
• Zbiory danych o coraz większej różnorodności i wielkości:
biblioteki elektroniczne, multimedialne bazy danych, interaktywne
video, projekty badania genomu człowieka, projekt obserwacji
Ziemi (NASA).
• Przy konstrukcji systemów baz danych wykorzystuje się
większość działów informatyki:
systemy operacyjne, teorię informatyki, sztuczną inteligencję,
logikę, języki programowania, multimedia, inżynierię
oprogramowania.
• Obszar systemów baz danych reprezentuje jeden z
największych i najbardziej aktywnych segmentów rynku.
9
opr. Lech Banachowski, Jan Wierzbicki
Cechy bazy danych
• trwałość (aplikacja powinna działać przez
długi okres czasu – dane przechowywane
„latami”)
• zgodność z rzeczywistością
zmiana rzeczywistości musi być uwzględniona w
bazie danych
10
opr. Lech Banachowski, Jan Wierzbicki
BIBLIOTEKA
Tytuł: Potop
Tytuł: Pan Tadeusz
Tytuł: Quo Vadis
Autor:H.Sienkiewicz
Autor: A.Mickiewicz
Autor: H.Sienkiewicz
ISBN:
.......
ISBN:
.......
ISBN:
.......
POLE
REKORD
11
opr. Lech Banachowski, Jan Wierzbicki
Ujęcie projektowe
Dane przechowywane w tabeli:
Tytuł
Autor
ISBN Rok
Wydania
...
Potop
H.Sienkiewicz
23xc4
1970
Quo Vadis
H.Sienkiewicz
3e45d
1985
Pan
Tadeusz
A.Mickiewicz
231ws 1990
...
...
...
...
...
...
...
...
12
opr. Lech Banachowski, Jan Wierzbicki
W bazie danych, musimy
• kontrolować redundancję (powtarzanie się
danych)
• jeden fakt powinien być reprezentowany na
jeden sposób
– problem dostępności i dokładności
poszukiwanych danych (czas dostępu oraz
nadmiar danych)
13
opr. Lech Banachowski, Jan Wierzbicki
Problem jednej tabeli
Tytuł
Autor
ISBN Rok
Wydania
...
Potop
H.Sienkiewicz
23xc4
1970
Quo Vadis
H.Sienkiewicz
3e45d
1985
Pan
Tadeusz
A.Mickiewicz
231ws 1990
...
...
...
...
...
...
...
...
...
...
...
H.Sienkiewicz
A.Mickiewicz
...
...
...
14
opr. Lech Banachowski, Jan Wierzbicki
Problem jednej tabeli
Uczeń
Hobby
Zachowanie Telefon
domowy
...
Adaś
Komputery
hmmmm
123456
Karolina
Kwiatki
wzorowe
654321
Paweł
Legia
odpowiednie
876543
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
15
opr. Lech Banachowski, Jan Wierzbicki
Relacyjna Baza Danych
Autor
Książka
Wydawnictwo
imię
tytuł
nazwa
nazwisko
ISBN
adres
...
rok wyd
...
adres
opis
16
opr. Lech Banachowski, Jan Wierzbicki
Relacyjna Baza Danych
Książka
Autor
imię
tytuł
ISBN
Henryk Sienkiewicz
Potop
12234ee4
Adam
Quo Vadis
334we2
Pan
Tadeusz
23we45
nazwisko
Mickiewicz
17
opr. Lech Banachowski, Jan Wierzbicki
Uczeń
Dane osobowe
Hobby
imię
nazwa
nazwisko
......
opis
.....
Oceny
ocena
opis
Przedmiot
nazwa
opis
18
opr. Lech Banachowski, Jan Wierzbicki
Relacyjny model danych - Edgar Codd (1970)
W terminologii matematycznej - baza danych jest zbiorem relacji.
W matematyce definiuje się relację jako podzbiór iloczynu
kartezjańskiego zbiorów wartości. Reprezentacją relacji jest
dwuwymiarowa tabela złożona z kolumn i wierszy.
19
opr. Lech Banachowski, Jan Wierzbicki
Założenia:
• Liczba kolumn jest z góry ustalona.
• Z każdą kolumną jest związana jej nazwa oraz
dziedzina, określająca zbiór wartości, jakie mogą
wystąpić w kolumnie.
• Na przecięciu wiersza i kolumny znajduje się
pojedyncza (atomowa) wartość należąca do dziedziny
kolumny.
• Wiersz reprezentuje jeden rekord informacji np. osobę.
• W modelu relacyjnym abstrahujemy od kolejności
wierszy (rekordów) i kolumn (pól w rekordzie).
20
opr. Lech Banachowski, Jan Wierzbicki
Tabela wykładowców
IdWykładowcy
Imię
Nazwisko
Tytuł
Jan
Kowalski
Doktor
3245
Maciej
Jankowski
Docent
8976
Artur
Malinowski
Profesor
237
21
opr. Lech Banachowski, Jan Wierzbicki
Tabela przedmiotów
NazwaPrzedmiotu
Kod
IdWykładowcy
Bazy danych
BDA
1237
Projektowanie systemów
informacyjnych
PSI
3245
Technologie internetowe
TIN
3245
Programowanie obiektowe
POB
8976
Systemy decyzyjne
SDE
1237
22
opr. Lech Banachowski, Jan Wierzbicki
Znaczenie IdWykładowcy w tabeli
Przedmiotów:
• Jego wartość nie opisuje cechy wykładu.
• Reprezentuje związek danego przedmiotu z
wykładowcą, o którym informacja znajduje się w
innej tabeli i tylko korzystając z identyfikatora
możemy rozpoznać w innej tabeli wiersz
właściwego wykładowcy i odczytać o nim
informacje.
23
• Istotne jest więc, aby identyfikator ten
jednoznacznie określał danego wykładowcę - w
modelu relacyjnym nie ma innej możliwości
identyfikacji wiersza tylko poprzez wartości kolumn,
które jednoznacznie identyfikują wiersz.
opr. Lech Banachowski, Jan Wierzbicki
Klucz główny i jednoznaczny
• Dla każdej tabeli musi być określony jednoznaczny identyfikator
nazywany kluczem głównym - jedna lub więcej kolumn, w
których wartości jednoznacznie identyfikują cały wiersz.
• Klucz jednoznaczny (nazywany też kluczem alternatywnym lub w
skrócie kluczem) ma tę samą własność co klucz główny przy
czym klucz główny jest tylko jeden, kluczy jednoznacznych w
tabeli może być więcej niż jeden.
• W tabeli Przedmioty kluczem głównym jest KodPrzedmiotu,
kluczem alternatywnym jest NazwaPrzedmiotu.
• W tabeli Wykładowcy kluczem głównym jest IdWykładowcy.
Nazwisko nie musi być kluczem!
24
Każda tabela musi mieć dokładnie jeden klucz główny.
opr. Lech Banachowski, Jan Wierzbicki
Klucz obcy
• Klucz obcy jest to jedna lub więcej kolumn, których wartości
występują jako wartości ustalonego klucza głównego lub
jednoznacznego w tej lub innej tabeli i są interpretowane jako
wskaźniki do wierszy w tej drugiej tabeli.
• W tabeli Przedmioty kluczem obcym jest IdWykładowcy,
którego wartości pochodzą z kolumny IdWykładowcy w tabeli
Wykładowcy.
Na przykład, wartość 1237 występująca w wierszu przedmiotu
"Bazy danych" tabeli Przedmioty stanowi odwołanie do wiersza
w tabeli Wykładowcy, w którym są zapisane informacje o
wykładowcy o nazwisku "Kowalski":
"Przedmiot Bazy danych jest wykładany przez Jana Kowalskiego"
25
Każda tabela może mieć więcej niż jeden klucz obcy.
opr. Lech Banachowski, Jan Wierzbicki
NULL – "brak wartości"
• Dziedziny kolumn są rozszerzane o specjalny obiekt
Null - oznaczający brak wartości –
• chwilowy bądź
• wynikający z istoty rzeczy (coś innego niż napis pusty
czy zero).
• Wszystkie porównania i operacje na danych, w
których argumentem jest Null dają w wyniku Null
(również Null=Null).
• Jest to więc w efekcie trzecia wartość logiczna obok
True i False.
26
opr. Lech Banachowski, Jan Wierzbicki
Operator alternatywy OR
OR
True
False
Null
True
True
True
True
False
True
False
Null
Null
True
Null
Null
Operator koniunkcji AND
AND
True
False
Null
True
True
False
Null
False
False
False
False
Null
Null
False
Null
27
opr. Lech Banachowski, Jan Wierzbicki
Operator negacji NOT
NOT True False Null
False True
Null
Wartość wyrażenia logicznego jest prawdziwa na
przykład dla alternatywy, której jeden argument ma
wartość true a drugi ma wartość nieokreśloną NULL.
Predykaty Is Null oraz Is Not Null
Pozwalają stwierdzić, czy dana wartość jest Null czy nie:
•"X Is Null" = True gdy, X jest Null
•"X Is Null" = False gdy, X nie jest Null
•"X=Null" = Null dla wszystkich X
28
Wartością wyrażenia "(Null=Null) Is Null" jest True
tzn. wyrażenie jest prawdziwe.
opr. Lech Banachowski, Jan Wierzbicki
Więzy spójności danych - warunki poprawności
danych w tabelach
•
•
•
•
•
•
29
Dla pojedynczych wartości w wierszu np. 0<Wiek<140
Dla kilku wartości w wierszu np.
Data_urodzenia<Data_zatrudnienia
Więzy klucza głównego, więzy klucza jednoznacznego.
Więzy NOT NULL.
Więzy referencyjne (więzy spójności referencyjnej):
wartość klucza obcego może być albo Null albo musi
występować jako wartość powiązanego z nim klucza
głównego (lub jednoznacznego).
• Bardziej skomplikowane reguły wymagające
zastosowania bardziej skomplikowanego języka np.
Suma wszystkich zarobków pracowników działu
X = Fundusz płac działu X
opr. Lech Banachowski, Jan Wierzbicki
Perspektywa (view)
- wirtualna tabela, którą posługują się użytkownicy
Przedmioty-Wykładowcy:
NazwaPrzedmiotu
Wykładowca
Bazy danych
Kowalski
Projektowanie systemów
informacyjnych
Jankowski
Technologie internetowe
Jankowski
Programowanie obiektowe
Malinowski
Systemy decyzyjne
Kowalski
30
opr. Lech Banachowski, Jan Wierzbicki
Zawartość zwykłej perspektywy jest na życzenie wyliczana przez
system ze źródłowych tabel. Nie jest na stałe zapisywana w bazie
danych. W pewnych sytuacjach wygodniej jest zapisać zawartość
perspektywy w bazie danych a następnie korzystać z jej
„materializacji”. Taki specjalny rodzaj perspektywy nosi nazwę
perspektywy zmaterializowanej.
Indeks
jest to dodatkowa struktura danych umożliwiająca szybki dostęp
do wierszy tabeli na podstawie wartości w określonej kolumnie
lub kolumnach np. indeks zbudowany na kolumnie Nazwisko
umożliwia szybkie wyszukiwanie danych wykładowcy w oparciu
o jego nazwisko. Przypomina indeks (skorowidz) w książce.
31
opr. Lech Banachowski, Jan Wierzbicki
Poziomy relacyjnej bazy danych
• Poziom użytkowy – widoki na dane i programy,
którymi posługuje się użytkownik.
• Poziom logiczny (koncepcyjny) – zbiór tabel,
perspektyw i indeksów.
• Poziom fizyczny – zbiór plików z danymi i z
indeksami.
Przy czym perspektywy definiuje się na poziomie logicznym a
używa się na poziomie użytkowym; indeksy definiuje się na
poziomie logicznym a używa się na poziomie fizycznym. Jeśli
chodzi o tabele to definiuje się na poziomie logicznym a używa się
zarówno na poziomie użytkowym jak i fizycznym.
32
opr. Lech Banachowski, Jan Wierzbicki
Korzystanie z poszczególnych poziomów odbywa się do
pewnego stopnia w sposób niezależny. Na przykład,
można zmieniać położenie danych na dysku i ich zapis
bez potrzeby zmiany struktury logicznej tabel; można
zmieniać tabele bez konieczności zmiany programów
aplikacyjnych - o ile programy aplikacyjne są oparte na
perspektywach a nie tabelach. W pierwszym przypadku
mamy do czynienia z tak zwaną niezależnością fizyczną
danych, w drugim z niezależnością logiczną danych.
33
opr. Lech Banachowski, Jan Wierzbicki
Katalog (słownik danych), metadane
jest to zbiór tabel i perspektyw opisujących schemat bazy
danych to jest definicje wszystkich jej obiektów (na każdym
z trzech poziomów bazy danych). Istotne jest użycie
relacyjnego modelu danych w tym celu. Zatem metadane są
zapisywane i przetwarzane w taki sam sposób jak zwykłe
dane.
34
opr. Lech Banachowski, Jan Wierzbicki
Architektura klient-serwer
Aplikacje bazodanowe składają się zwykle z co
najmniej dwóch części:
• strony klienta - na stacji roboczej użytkownika,
• strony serwera – na komputerze zawierającym serwer
bazy danych czyli bazę danych wraz z jej systemem
zarządzania (SZBD).
35
opr. Lech Banachowski, Jan Wierzbicki
Funkcje aplikacji po stronie serwera bazy danych
• Przechowywanie i organizacja dostępu do danych.
• Wykonywanie instrukcji języka baz danych (jest to język o
nazwie SQL omawiany w wykładzie 9).
• Sprawowanie kontroli nad spójnością danych.
• Zarządzanie zasobami bazy danych w tym kontami
użytkowników.
Funkcje aplikacji po stronie klienta
• Kontakt z użytkownikiem (interfejs użytkownika).
• Wyjaśnianie użytkownikowi stanu obliczeń w tym błędów
i sytuacji wyjątkowych.
• Przyjmowanie od niego zleceń na operacje, wykonywanie
tych zleceń lub przesyłanie ich w postaci instrukcji języka
SQL do serwera bazy danych.
36
opr. Lech Banachowski, Jan Wierzbicki
Historia baz danych
• 1961– Integrated Data Store IDS (Charles Bachman, General
Electric) - pierwszy SZBD, początek sieciowego modelu danych.
• 1965-70 – Information Management System IMS (IBM) –
hierarchiczny model danych.
• 1970 – Edgar Codd, IBM – relacyjny model danych.
• 1971 – CODASYL, standard sieciowego modelu danych.
• 1976 – Peter Chen – model związków encji (ERD, ERM), brak
standardu do tej pory.
• Początek lat siedemdziesiątych - w laboratorium badawczym IBM
w San Jose powstał prototyp języka SQL o nazwie Sequel.
• 1973 - pierwszy system zarządzania relacyjną bazą danych (System
R w firmie IBM).
• 1979 - firma Relational Software (później Oracle) wprowadziła na
rynek pierwszą komercyjną wersję systemu zarządzania relacyjną
37 bazą danych.
opr. Lech Banachowski, Jan Wierzbicki
• 1987 pierwszy standard języka SQL (ISO),
• Kolejne wersje standardu ANSI/ISO: 1989, 1992 SQL2, 1999
SQL:1999 – model obiektowo-relacyjny, trwają prace nad
następnymi standardami SQL3 i SQL4.
• Lata osiemdziesiąte – badania nad dedukcyjnymi i obiektowymi
bazami danych.
• 1997 - Standard obiektowych baz danych ODMG 2.0.
38
• Lata dziewięćdziesiąte – rozszerzenie baz danych o nowe
aspekty: architektury wielowarstwowe, rozproszenie,
równoległość, Internet, hurtownie danych, OLAP, multimedia,
bazy dokumentów w tym XML, GIS (Geographical Information
Systems), ERP (Enterprise Resource Planning) oraz MRP
(Management Resource Planning) - pakiety takie jak SAP, Baan,
Oracle, PeopleSoft, Siebel, CRM (Client Relationship
Management).
opr. Lech Banachowski, Jan Wierzbicki
Posługiwanie się bazą danych
•
•
•
•
wyszukiwanie danych
modyfikacja (aktualizacja) danych
dopisywanie danych
usuwanie danych
39
opr. Lech Banachowski, Jan Wierzbicki
Wyszukiwanie danych
• filtr – doraźnie
• kwerenda – trwale
40
opr. Lech Banachowski, Jan Wierzbicki