Bazy danych
Literatura
Riordan R. M., Projektowanie systemów relacyjnych baz danych,
RM 2000
Schwartz S., Po prostu Access 2003, Helion 2004
Date C. J., Relacyjne bazy danych dla praktyków, Helion 2006
Hernandez M. J., Bazy danych dla zwykłych śmiertelników, Mikom
2004
Garcia – Molina H., Ullman J., Widom J., Systemy
Baz Danych – Pełny wykład, WNT, 2006
Z czym Wam się kojarzy pojęcie:
BAZA DANYCH
Wykład 1
Zbiór danych opisujący w uporządkowany sposób pewien wybrany
fragment rzeczywistości będziemy nazywać bazą danych.
Baza danych w najprostszej postaci to uporządkowany zbiór
informacji.
Baza danych nie powinna się kojarzyć wyłącznie z komputerami ...
Bazą danych jest również papierowa książka telefoniczna,
kartoteki biblioteczne (np. na naszym Wydziale, itp. Itd.) jednak
„papierowe” bazy danych mają istotne ograniczenia.
Jakie????
Przejście od papieru do elektronicznych baz danych dało nowe
możliwości i większą elastyczność.
Wykład 1
Kilka przykładów gdzie na pewno spotkamy się z bazami danych...
prezentowanie klientom danych przez sieć WWW
system bankowy
system rezerwacji miejsc lotniczych
dokumentowanie działalności przedsiębiorstw
badania naukowe
Wykład 1
DBMS – Database Management System – System Zarządzania Bazami
Danych – SZBD – potocznie również nazywany – Systemem Baz
Danych
Stanowi narzędzie do tworzenia i efektywnego zarządzania dużymi
zbiorami danych oraz do przechowywania ich przez długi czas.
Jakich możliwości dostarcza DBMS??
Wykład 1
Pamięć trwała: pod tym względem DBMS jest podobny do systemu
plików, udostępnia pamięć do przechowywania wielkiej liczby
danych. Jednakże odpowiednie struktury DBMS zapewniają
zdecydowanie efektywniejszy dostęp i możliwość operowania na
wielkiej liczbie danych niż to jest w przypadku systemu plików.
Interfejs programisty: DBMS udostępnia użytkownikowi lub
aplikacji silny język zapytań, dzięki któremu uzyskuje się dostęp do
danych oraz modyfikuje się je. Daje znacznie więcej niż jedynie
możliwość odczytywania i zapisywania plików.
Zarządzanie transakcjami: DBMS zapewnia jednoczesny dostęp do
danych, tzn. wiele różnych procesów (zwanych transakcjami)
jednocześnie uzyskuje dostęp. izolacja, niepodzielność, trwałość.
Wykład 1
Izolacja – wykonanie transakcji tak, jakby na
pozór wykonywała się jedna w danej chwili
Niepodzielność – wymaganie aby transakcja
wykonała się w całości albo wcale
Trwałość – zdolność do naprawy różnego rodzaju
błędów oraz trwanie przez długi okres czasu.
Wykład 1
W potocznym rozumieniu BAZA DANYCH jest zbiorem danych
zarządzanym przez DBMS a od DMBS oczekujemy:
Umożliwienia użytkownikowi utworzenia nowej bazy danych i
określenia jej schematu (logicznej struktury danych)
Udostępnienie użytkownikowi możliwości tworzenia zapytań o
dane oraz aktualizowania danych.
Zapewnienia możliwości przechowywania dużej ilości danych
(mierzonych w giga, tera .....) przez długi czas chroniąc zarazem
przed przypadkowym oraz niepowołanym dostępem
Sterowania jednoczesnym dostępem do danych przez wielu
użytkowników, zapewnieniem bezkolizyjności oraz ochrony danych
przed przypadkowym uszkodzeniem.
Wykład 1
Przykład: Systemy rezerwacji miejsc lotniczych.
Rezerwacja na określony rejs dokonana przez konkretnego klienta
obejmuje informacje takie jak: numer fotela, upodobania
dotyczące posilków.
Informacje dotyczące rejsu: miejsce odlotu, port przeznaczenia, czas
odlotu i czas przylotu oraz np. typ samolotu.
Informacje o cenach biletów i dostępności
Dane dotyczące klienta
Wykład 1
Przykład: Systemy rezerwacji miejsc lotniczych.
Typowe zapytania o dane jakie mogłyby się pojawić dotyczyłyby:
rejsów między określonymi portami w określonym terminie,
dostępności i cenach miejsc. Aktualizacje obejmują rezerwację
lotu klienta, przydział miejsca. Systemy takie muszą zapewniać
jednoczesny dostęp do danych w dowolnej chwili dla wielu agencji
lotniczych. Nie mogą dopuścić do tego aby 2 agencje przydzielily
to samo miejsce różnym klientom.......
Wykład 1
Edgar Frank „Ted” Codd (1923 – 2003) –
brytyjski informatyk, twórca relacyjnego modelu
baz danych. Studiował matematykę i chemię w
Exeter College, Oxford. Po II wojnie światowej
przeprowadził się do Stanów Zjednoczonych i zaczął
pracę dla IBM. W latach 60 – 70 XX w. pracował nad
sposobami organizacji baz danych. W 1970 roku
ukazuje się jego fundamentalna praca z tego
zakresu:
Nagroda Turinga 1981 r.
za wkład do teorii i praktyki
systemów zarządzania bazami
danych
Wykład 1
Model relacyjny oparty jest na zbiorze reguł matematycznych
wywodzących się z teorii mnogości oraz logiki predykatów. Jest
najpopularniejszym modelem danych. Ogólnie systemy relacyjnych
baz danych charakteryzują się następującymi właściwościami:
wszystkie dane są reprezentowane koncepcyjnie jako zbiór wartości
uporządkowanych w formie wierszy i kolumn zwanych RELACJĄ.
wszystkie wartości są skalarne. Oznacza to, że dowolna pozycja
relacji na przecięciu się wiersza i kolumny jest pojedynczą
wartością
wszystkie operacje są wykonywane na całej relacji, a ich wynikiem
jest również relacja.
Wykład 1
Model relacyjny oparty jest na tylko
jednej podstawowej strukturze
danych - relacji. Pojęcie relacji
można uważać za pewną abstrakcję
intuicyjnego pojęcia tabeli,
zbudowanej z wierszy i kolumn, w
której na przecięciu każdej kolumny
z każdym wierszem występuje
określona wartość.
Wykład 1
RELACYJNY MODEL DANYCH RELACYJNA BAZA DANYCH
Model danych – jest abstrakcyjną, spójną wewnętrznie, logiczną
definicją struktury danych, operatorów danych itd., tworzących
abstrakcyjną „maszynę”.
Implementacja – modelu danych jest fizyczną realizacją na
prawdziwej maszynie elementów „maszyny” abstrakcyjnej, które
wspólnie składają sie na model.
Wykład 1
Podstawową strukturą danych jest relacja będąca podzbiorem iloczynu
kartezjańskiego dwóch wybranych zbiorów reprezentujących dopuszczalne
wartości.
Niech A1 = [a,b,c], A2 =[x,y]
Wtedy A1 A2 = {(a,x), (a,y), (b,x), (b,y), (c,x), (c,y)}
Przykłady relacji, które są podzbiorami iloczynu kartezjańskiego A1A2 :
X = {(a,x), (b,x), (c,x)}
Y = {(a,x), (a,y), (b,y)}
Analogicznie jak dla iloczynu kartezjańskiego elementy relacji są nazywane
krotkami.
Relacja jest zbiorem krotek posiadających taką samą strukturę, lecz różne
wartości.
Każda krotka posiada co najmniej jeden atrybut.
Iloczyn kartezjański zbiorów A i B to zbiór wszystkich par uporządkowanych (a,b), takich, że a należy do
zbioru A, zaś b należy do zbioru B.
Wykład 1
Dygresja a propos iloczynu kartezjańskiego:
Mając macierz (tablicę liczb) o „m” wierszach i „n” kolumnach, gdzie widzicie
iloczyn kartezjański?? Proszę podejść do tablicy i pokazać .....
Kto odpowie dostaje 5.0 ........ ;)
Wykład 1
Baza danych jest zbiorem relacji, o następujących
własnościach:
Każda relacja w bazie danych jest jednoznacznie określona
przez swoją nazwę.
Każda kolumna w relacji ma jednoznaczną nazwę (w
ramach tej relacji).
Kolumny relacji tworzą zbiór nieuporządkowany. Kolumny
nazywane bywają również atrybutami (polami).
Wszystkie wartości w danej kolumnie muszą być tego
samego typu. Przynależeć do jednej dziedziny.
Wykład 1
Również wiersze relacji tworzą nieuporządkowany zbiór,
w szczególności, nie ma powtarzających się wierszy.
Wiersze relacji nazywa się też rekordami, krotkami.
Każde pole (przecięcie wiersza z kolumną) zawiera
wartość atomową (elementarną) z dziedziny określonej
przez kolumnę. Brakowi wartości odpowiada wartość
specjalna NULL, zgodna z każdym typem kolumny
(chyba, że została jawnie wykluczona przez definicję
typu kolumny).
Każda relacja zawiera klucz główny - kolumnę (lub
kolumny), której wartości jednoznacznie identyfikują
wiersz (a więc w szczególności nie powtarzają się).
Wartością klucza głównego nie może być NULL.
Wykład 1
Każda relacja posiada nagłówek
i zawartość. Nagłówek to zbiór
atrybutów, zawartość jest
zbiorem krotek zgodnych z
nagłówkiem. Liczbę atrybutów
określa się mianem stopnia
relacji, liczbę krotek w
zawartości nazywa się liczbościa
lub mocą.
Wykład 1
Wykład 1
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
type dane = record
imie : string[20];
nazwisko : string[30];
adres_ulica : string[30];
adres_nr_domu : integer;
adres_nr_mieszk : integer;
end;
begin
{ TODO -oUser -cConsole Main : Insert code here }
end.
Wykład 1
Typ danych a
dziedzina
Domena (dziedzina) –
twór logiczny, zbiór
wszystkich możliwych
wartości jakie może
przyjmować atrybut.
Typ danych to pojęcie
fizyczne, określa
przypisanie do
atrybutu
dozwolonych
wartości.
Przykład:
Wiek – domena
Liczba – typ danych
Wykład 1
Tekst – w większości baz danych większość pól
jest właśnie tego typu. Pole może zawierać
dowolny ciąg znaków (litery, cyfry, znaki
interpunkcyjne). Pole tekstowe może zawierać
maksymalnie 255 znaków. (nr tel., kod pocztowy
itp.)
Nota – Większa odmiana pola Tekst. Można w nim
zapisać 65 535 znaków. Jest przeznaczone to
zapisywania komentarzy oraz uwag. Przy
sortowaniu brane pod uwagę pierwsze 255
znaków.
Wykład 1
Liczba – przechowywanie danych liczbowych
(poza walutowymi)
Walutowy – specjalny typ danych liczbowych
służący do wyrażania kwot pieniężnych.
Data/Godzina – pole przechowywuje datę i
godzinę.
Tak/Nie – typ danych znany również jako
boolean służy do przechowywania wartości
logicznych.
Wykład 1
Autonumer – wykorzystywany do
automatycznego nadawania nowych wartości
dla pola klucza podstawowego, każde
następne pole tego rodzaju w tabeli będzie
miało wartość o 1 większą. Jednoznaczna
identyfikacja rekordów. Indeksowanie
włączone (TAK). Można również skorzystać z
opcji generowania niepowtarzajęcych się
wartości losowych.
Wykład 1
Obiekt OLE (Object linking and embedding) –
Zadeklarownie pola jako obiekt OLE umożliwia
osadzanie lub dołączanie innych dokumentów:
arkusz kalkulacyjny Excel, Dokumeny Word,
grafika itp.Obiekty osadzone (embedded) mają
naturę statyczną – zostają zapisane w pliku
bazy danych. Obiekty połączone (linked objects)
to odwołania do oryginalnych dokumentów
zapisanych poza bazą danych.
Wykład 1
Hiperłącze – zadeklarownie pola jako hiperłącze
umożliwia wprowadzenie w polu adresu
internetowego, którego kliknięcie spowoduje
otworzenie wskazanego zasobu internetu.
Kreator odnośników – tak zdefiniowane pole
będzie wyświetlane jako lista rozwijalna
dopuszczalnych wartości. Wartości te mogą
pochodzić z innej tabeli lub kwerendy lub
wpisane przez użytkownika.
Wykład 1
Wykład 1
Klucze kandydujące to wszystkie
potencjalne pola w tabeli dające możliwość
jednoznacznej identyfikacji rekordów.
Tabela może mieć wiele kluczy
kandydujących ale tylko jeden z nich może
stać się kluczem głównym.
Spośród kluczy kandydujących wybiera się
klucz główny kierując się zasadą najlepszej
reprezentacji danych zawartych w tabeli
oraz względami praktycznymi. (np. PESEL,
nr legitymacji studenckiej)
Wykład 1
Klucze kandydujące mogą się
składać z pojedynczego
atrybutu (klucz prosty) lub z
wielu atrybutów (klucz złożony).
Klucz kandydujący musi
spełniać warunek
nieredukowalności.
Wykład 1
Klucz główny powinna zawierać
każda tabela, w celu
jednoznacznej identyfikacji.
Wybiera się go spośród kluczy
kandydujących. Wybór klucza
głównego jest decyzją
arbitralną.
Wykład 1
Klucz sztuczny tworzony jest
gdy brak naturalnych
kandydatów na klucz główny,
najczęściej jest kluczem
liczbowym, liczby generowane
automatycznie.
Wykład 1
Zakładając, że dwie tabele są
powiązane, czyli można między
nimi utworzyć relację (powiązanie),
umieszczamy kopię klucza
głównego jednej tabeli w drugiej
tabeli. Klucz ten w tabeli docelowej
nosi miano klucza obcego,
ponieważ tabela ta posiada już
klucz główny.
Wykład 1
Wykład 1
Encja, relacja, tabela, atrybut
(pole), krotka (rekord),
dziedzina, typ danych, klucz,
klucze kandydujące, klucz
podstawowy, klucz sztuczny,
klucz obcy
Wykład 1
Podstawowym celem fazy projektowania
bazy danych jest zagwarantowanie modelowi
zdolności do udzielenia odpowiedzi na każde
rozsądne zapytanie (kwerendę) jakie może
zostać zadane, minimalizacja redundancji
oraz anomalii modyfikacyjnych.
Redundancja (łac. redundantia – powódź, nadmiar, zbytek), inaczej
nadmiarowość w stosunku do tego, co konieczne lub zwykłe.
Określenie może odnosić się zarówno do nadmiaru zbędnego lub
szkodliwego, niecelowo zużywającego zasoby, jak i do pożądanego
zabezpieczenia na wypadek uszkodzenia części systemu. (źródło:
Wikipedia)
Wykład1
Anomalią modyfikacyjną nazywamy
ograniczenie możliwości modyfikowania
danych, wynikające ze struktury tabeli.
Anomalia wstawiania (dodawania)
Anomalia usuwania
Anomalia aktualizacji
Wykład1
Anomalia wstawiania występuje w takiej tabeli,
w której dodawanie nowych rekordów jest w
jakiś sposób ograniczone lub powoduje
powstawanie nadmiarowych (redundantnych)
danych.
Nie można wprowadzić „czegoś” jeśli nie
wprowadziło się „czegoś” wcześniej.
Wprowadzenie „czegoś” powoduje powtórzenia.
Wykład1
Wykład1
Wykład1
Anomalia usuwania występuje wtedy,
kiedy usunięcie jakiegoś rekordu
powoduje niepożądane usunięcie
innych danych.
Wykład1
Wykład1
Wykład1
Anomalia aktualizacji występuje
wtedy, kiedy modyfikacja danej
wartości wymusza taką samą
modyfikację w innych tabelach lub
rekordach.
Wykład1
Wykład1
Powiązania między tabelami (relacje):
Trzy typy:
Jeden – do – jednego
Jeden – do – wielu
Wiele – do – wielu
Wykład 1
Stanowią sposób na łączenie tabel
przechowujących powiązane ze sobą dane.
Pomagają w ulepszeniu struktur tabel i
minimalizowaniu ilości nadmiarowych danych.
Umożliwiają jednoczesne odczytywanie danych z
wielu różnych połączonych ze sobą tabel.
Wykład1
Mówimy, że dwie tabele łączy relacja jeden – do – jednego,
jeśli pojedynczemu rekordowi tabeli A odpowiada dokładnie
jeden rekord tabeli B, a pojedynczemu rekordowi w tabeli B
odpowiada dokładnie jeden rekord w tabeli A.
Wykład1
Tabela Pracownicy dostępna dla wszystkich, Tabela Wynagrodzenia tylko dla uprawnionych
Wykład1
Mówimy, że między dwoma tabelami istnieje relacja jeden do
wielu, jeśli pojedynczemu rekordowi w tabeli A odpowiada jeden
lub więcej rekordów w tabeli B, a pojedynczemu rekordowi w tabeli
B – dokładnie jeden rekord w tabeli A.
Wykład1
Wykład1
Mówimy, że między dwoma tabelami istnieje relacja wiele – do –
wielu, jeśli pojedynczemu rekordowi w tabeli A odpowiada jeden
lub więcej rekordów w tabeli B i na odwrót – pojedynczemu
rekordowi w tabeli B odpowiada jeden lub więcej rekordów tabeli
A.
Wykład1
Relację wiele – do – wielu definuje się przy użyciu
tabeli łączącej.
Tabela łącząca składa się z kopii kluczy głównych
obydwu tabel uczestniczących w relacji. Razem
stanowią klucz główny tabeli łączącej natomiast
każdy z osobna jest kluczem obcym, wiążącym
tabelę łączącą z tabelami uczestniczącymi w
relacji,
Wykład1
Tworzenie schematu powiązań w kilku krokach:
1.
Wyszukać osobne tematy w zbiorze informacji opisujące dane
zjawisko czy obiekt. (Rozdział na kilka tabel)
2.
Opatrzyć powstałe tabele kluczami głównymi (podstawowymi)
3.
Wyszukać bezpośrednie powiązania między parami tabel i
zdefiniować typ powiązania (1-1, 1-N, M-N)
4.
W zależności od typu powiązania umieścić kopię klucza
podstawowego (klucz obcy) w odpowiedniej tabeli lub stworzyć
tabelę łączącą.
5.
Sprawdzić poprawność stworzonych powiązań.
Wykład1
Cechy „dobrej” tabeli:
1.
Reprezentuje pojedynczy temat
2.
Posiada klucz główny
3.
Nie zawiera pól segmentowych ani wielowartościowych
4.
Nie zawiera pól wyliczonych
5.
Nie zawiera zwielokrotnionych pól
6.
Zawiera minimalną ilość zwielokrotnionych danych
Wykład1
Przykład
Wykład 1
ISBN
Tytuł
Au_Nazwisko
Au_imie
Wyd_Nazwa
Wyd_tel
111111
The geometry of
Random
Fields
Adler
Robert
John Wiley & Sons
23432342
222222
Basic
linear
geostatistics
Armstrong
Katrin
Springer
4565464564
333333
Statistics
for
spatial data
Cressie
Noel
John Wiley & Sons
23432342
444444
Model
–
based
Geostatistics
Diggle
John
Springer
4565464564
444444
Model
–
based
Geostatistics
Ribeiro
Juan
Springer
4565464564
555555
Applied
Spatial
Statistics
Waller
Cris
John Wiley & Sons
23432342
555555
Applied
Spatial
Statistics
Gotway
Albert
John Wiley & Sons
23432342
666666
Introduction
to
applied
geostatistics
Isaaks
Paul
Oxford
University
Press
23423223
666666
Introduction
to
applied
geostatistics
Srivastawa
Mohan
Oxford
University
Press
23423223
Wykład 1
20 000 studentów
18 Wydziałów
50 znaków przeznaczonych na nazwę
Wydziału
1 znak = 2 bajty
Jaka oszczędność wynika z utworzenia
nowej tabeli przechowywującej tylko
nazwy wydziałów?
20 000 000 książek
15 000 Wydawnictw
50 znaków na nazwę
wydawnictwa
1 znak = 2 bajty
Proszę to przeliczyc!!!
Wykład1
Wykład1
Wykład1
Wykład1
Wykład1
Wykład1
Wykład1