background image

 

 

Bazy danych

background image

 

 

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

background image

 

 

Z czym Wam się kojarzy pojęcie:

 BAZA DANYCH

background image

 

 

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ść.  

background image

 

 

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

background image

 

 

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?? 

background image

 

 

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ść.

background image

 

 

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.

background image

 

 

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. 

background image

 

 

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

background image

 

 

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.......

background image

 

 

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

background image

 

 

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.

background image

 

 

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ść. 

background image

 

 

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. 

background image

 

 

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 A1A2 :

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. 

background image

 

 

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 ........  ;)

background image

 

 

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. 

background image

 

 

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

background image

 

 

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ą.

background image

 

 

Wykład 1

background image

 

 

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.

background image

 

 

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

background image

 

 

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.

background image

 

 

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.

background image

 

 

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.

background image

 

 

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.

background image

 

 

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.

background image

 

 

Wykład 1

background image

 

 

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)

background image

 

 

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. 

background image

 

 

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ą. 

background image

 

 

Wykład 1

Klucz sztuczny tworzony jest 
gdy brak naturalnych 
kandydatów na klucz główny, 
najczęściej jest kluczem 
liczbowym, liczby generowane 
automatycznie.

background image

 

 

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.

background image

 

 

Wykład 1

background image

 

 

Wykład 1

Encja, relacja, tabela, atrybut 
(pole), krotka (rekord), 
dziedzina, typ danych, klucz, 
klucze kandydujące, klucz 
podstawowy, klucz sztuczny, 
klucz obcy

background image

 

 

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źnadmiarzbytek), 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)

background image

 

 

Wykład1

Anomalią modyfikacyjną nazywamy 
ograniczenie możliwości modyfikowania 
danych, wynikające ze struktury tabeli.

Anomalia wstawiania (dodawania)

Anomalia usuwania

Anomalia aktualizacji

background image

 

 

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.

background image

 

 

Wykład1

background image

 

 

Wykład1

background image

 

 

Wykład1

Anomalia usuwania występuje wtedy, 
kiedy usunięcie jakiegoś rekordu 
powoduje niepożądane usunięcie 
innych danych.

background image

 

 

Wykład1

background image

 

 

Wykład1

background image

 

 

Wykład1

Anomalia aktualizacji występuje 
wtedy, kiedy modyfikacja danej 
wartości wymusza taką samą 
modyfikację w innych tabelach lub 
rekordach.

background image

 

 

Wykład1

background image

 

 

Wykład1

Powiązania między tabelami (relacje):

Trzy typy:

Jeden – do – jednego
Jeden – do – wielu 
Wiele – do – wielu 

background image

 

 

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.

background image

 

 

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.

background image

 

 

Wykład1

Tabela Pracownicy dostępna dla wszystkich, Tabela Wynagrodzenia tylko dla uprawnionych

background image

 

 

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.

background image

 

 

Wykład1

background image

 

 

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.

background image

 

 

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,

background image

 

 

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ń.

background image

 

 

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

background image

 

 

Wykład1

Przykład

background image

 

 

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

background image

 

 

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!!!

background image

 

 

Wykład1

background image

 

 

Wykład1

background image

 

 

Wykład1

background image

 

 

Wykład1

background image

 

 

Wykład1

background image

 

 

Wykład1

background image

 

 

Wykład1


Document Outline