background image

#1

© K.Goczyła, M. Piechówka

BAZY DANYCH

BAZY DANYCH

BAZY DANYCH

Krzysztof Goczyła
Maciej Piechówka

Katedra Inżynierii Oprogramowania
Wydział Elektroniki, Telekomunikacji i Informatyki
Politechnika Gdańska

{kris, macpi}@eti.pg.da.pl

Materiały 

pomocnic

ze do wyk

ładu 

z baz dan

ych na Wy

dziale ETI

 PG.

Ich lektura

 nie zastęp

uje obecn

ości na wy

kładzie.

Wykorzys

tanie mate

riałów w in

nym celu o

raz ich 

rozpowsze

chnianie je

st zabroni

one.

background image

#2

© K.Goczyła, M. Piechówka

Tre

Tre

ść

ść

wyk

wyk

ł

ł

adu

adu

1.

1.

Zagadnienia og

Zagadnienia og

ó

ó

lne

lne

2.

2.

Diagramy zwi

Diagramy zwi

ą

ą

zk

zk

ó

ó

w encji (ERD)

w encji (ERD)

3.

3.

Relacje i relacyjna baza danych

Relacje i relacyjna baza danych

4.

4.

Algebra relacji

Algebra relacji

5.

5.

J

J

ę

ę

zyk SQL

zyk SQL

6.

6.

Normalizacja relacyjnych baz danych

Normalizacja relacyjnych baz danych

7.

7.

Ochrona danych

Ochrona danych

8.

8.

Zarz

Zarz

ą

ą

dzanie transakcjami

dzanie transakcjami

9.

9.

Rozproszone bazy danych

Rozproszone bazy danych

background image

#3

© K.Goczyła, M. Piechówka

Wybrana literatura

Wybrana literatura

• Banachowski L., A. Chądzyńska, K. Matewski, Relacyjne bazy danych. Wykłady i 

ćwiczenia, PJWSTK, 2004

• Beynon-Davies P., Systemy baz danych. WNT 2000.
• Connolly T., C. Begg, Systemy  baz danych, T1/2 , RM, 2004
• Date C.J. Wprowadzenie do systemów baz danych. WNT 2000.
• Delobel C. , M. Adiba. Relacyjne bazy danych. WNT 1988. 
• Dybowska-Dyk A., M. Bartnik. Ćwiczenia z SQL. Mikom 1999.
• Elmasri R., S.B.Navathe, Wprowadzenie do systemów baz danych, Helion, 2005
• Gruber M., SQLWydanie drugie. Helion 2000.
• Muller R. J., Bazy danychJęzyk UML w modelowaniu danych. Mikom 2000.
• Riordan R. M., Projektowanie systemów relacyjnych baz danych. Microsoft Press 2000
• D. Tsichritzis, F. Lochovsky. Modele danych. WNT 1990. 
• Ullman J.D., Systemy baz danych. WNT 1988.
• Ullman J.D., J. Widom. Podstawowy wykład z systemów baz danych. WNT 1999.

background image

#4

© K.Goczyła, M. Piechówka

1. Zagadnienia og

1. Zagadnienia og

ó

ó

lne

lne

Co to jest baza danych?

Co to jest baza danych?

Architektura systemu baz danych

Architektura systemu baz danych

Podstawowe funkcje system

Podstawowe funkcje system

ó

ó

w zarz

w zarz

ą

ą

dzania 

dzania 

bazami danych (DBMS)

bazami danych (DBMS)

Ewolucja technologii baz danych

Ewolucja technologii baz danych

background image

#5

© K.Goczyła, M. Piechówka

Co to jest baza danych?

Co to jest baza danych?

• Baza danych

Zbiór powiązanych ze sobą logicznie danych, zorganizowany zgodnie 
z określonym 

modelem danych

Model danych wyznacza logiczne reguły konstrukcji bazy danych,
bez względu na jej fizyczną reprezentację.

Baza danych jest zarządzana przez system komputerowy 
(sprzęt i oprogramowanie), który powinien wypełniać następujące funkcje:

• trwałe i niezawodne przechowywanie dużych ilości informacji
• efektywny dostęp do żądanych informacji 
• możliwość modyfikowania informacji
• zagwarantowanie logicznej spójności (integralności) informacji
• ochrona informacji

• System baz danych

Wiele baz danych zarządzanych przez jeden system komputerowy

• System zarządzania bazami danych (DBMS, Database Management System)

Oprogramowanie zarządzające systemem baz danych

background image

#6

© K.Goczyła, M. Piechówka

Sk

Sk

ł

ł

adniki systemu baz danych

adniki systemu baz danych

SYSTEM BAZ DANYCH  

Trwała pamięć zewnętrzna + 
System Zarządzania Bazami Danych (DBMS) +
Język zapytań

Trwała pamięć zewnętrzna: 

urządzenia sprzętowe przechowujące dane

System Zarządzania Bazami Danych: (

D

ata

B

ase

M

anagement

S

ystem)

oprogramowanie zarządzające dostępem do baz danych

Język zapytań:

język wysokiego poziomu, za pomocą którego użytkownik komunikuje się z bazą

danych.

PAMIEĆ

ZEWNĘTRZNA

DBMS JĘZYK 

ZAPYTAŃ

...

CREATE ...
SELECT ...
UPDATE ...

SYSTEM BAZ DANYCH

background image

#7

© K.Goczyła, M. Piechówka

Pami

Pami

ęć

ęć

zewn

zewn

ę

ę

trzna

trzna

Rola:

Przechowywanie dużej ilości danych w sposób trwały niezawodny

1. Trwałość

Dane powinny być przechowywane w pamięci tak długo, jak tego wymagają

użytkownicy systemu baz danych.

Urządzenia pamięci zewnętrznej:

• dyski magnetyczne
• dyski optyczne

• urządzenia do archiwizacji

2. Niezawodność

Częstotliwość występowania błędów powinna być zaniedbywalnie mała.

Środki służące zwiększeniu niezawodności:

• dublowanie urządzeń pamięci zewnętrznych
• kontrola poprawności zapisu
• kody detekcji/korekcji błędów 

background image

#8

© K.Goczyła, M. Piechówka

Baza danych w systemach informatycznych

Baza danych w systemach informatycznych

Powody stosowania baz danych w projekcie i implementacji systemu:

• Elementy tworzące system muszą być trwałe

Ręczne programowanie trwałości jest kłopotliwe, zawodne, nieelastyczne.
Możliwe tylko dla niewielkich zbiorów danych, w środowisku jednego 
użytkownika.

• Potrzeba efektywnego operowania na dużych wolumenach danych 

Obszerne składnice (magazyny) ustrukturalizowanych danych, zarządzane 
przez gotowe oprogramowanie.

• Narzędzie implementacyjne 

Środowiska wspomagające projektowanie i wdrażanie aplikacji opartych 
na bazach danych, np. języki typu 4GL lub środowiska dla języków 3GL z 
bibliotekami do korzystania z interfejsów ODBC/JDBC. Łączą one cechy 
typowych języków programowania z funkcjami dostępu do bazy danych.

background image

#9

© K.Goczyła, M. Piechówka

Funkcje DBMS

Funkcje DBMS

• Realizacja operacji dostępu do danych na poziomie fizycznym

(algorytmy dostępu, struktury danych itp.)

• Zapewnienie integralności danych (przetwarzanie transakcyjne,

kontrola ograniczeń nałożonych na dane itp.)

• Obsługa współbieżności (rozstrzyganie konfliktów przy próbach

jednoczesnego dostępu do tych samych danych)

• Ochrona danych (kontrola uprawnień do wykonywania określonych

operacji przez określonych użytkowników)

• Odtwarzanie po awariach (restart, przywracanie danych z kopii zapasowych)
• Śledzenie operacji dokonywanych na bazie danych (efektywność,

bezpieczeństwo, niezawodność, ...)

• Obsługa rozproszenia (jeśli jedna baza danych fizycznie jest umieszczona

na różnych systemach komputerowych)

• Obsługa przetwarzania równoległego (jeśli zapytanie użytkownika skierowane

do bazy danych może być realizowane równocześnie przez kilka procesorów)

background image

#10

© K.Goczyła, M. Piechówka

Modu

Modu

ł

ł

y sk

y sk

ł

ł

adaj

adaj

ą

ą

ce si

ce si

ę

ę

na SZBD

na SZBD

background image

#11

© K.Goczyła, M. Piechówka

J

J

ę

ę

zyk zapyta

zyk zapyta

ń

ń

Dla użytkowników interakcyjnych:

język zapytań ad hoc, z poleceniami wybieranymi z menu lub wprowadzanymi

w wierszu poleceń.

Dla programistów aplikacyjnych:

• Kompletny język programowania (język czwartej generacji, 4GL) zawierający:

- instrukcje definiowania i operowania na danych z bazy danych,
- instrukcje wejścia/wyjście,
- instrukcje i struktury danych typowe dla języków programowania

• Typowy  język programowania (PL/1, Cobol, C, Java, ...) rozszerzony 

o instrukcje operujące na bazie danych (instrukcje języka zapytań zanurzonego
w języku macierzystym). Instrukcje te mogą mieć postać wywołań interfejsu  
ODBC/JDBC, w których przekazywana jest tekstowo treść zapytania.

background image

#12

© K.Goczyła, M. Piechówka

J

J

ę

ę

zyki programowania a bazy danych

zyki programowania a bazy danych

1GL

2GL

3GL

4GL

Języki maszynowe

Makroassemblery

C, Java,
Fortran, 
Cobol,...

Języki do tworzenia
aplikacji bazodanowych

Wymag

ana wie

dza o sy

stemie

Nie

zbęd

ny n

akła

d pr

acy

St

op

ień

ko

m

plik

acj

i

rea

liz

ow

any

ch 

apl

ika

cji

background image

#13

© K.Goczyła, M. Piechówka

J

J

ę

ę

zyk zapyta

zyk zapyta

ń

ń

(cd.)

(cd.)

Język zapytań = 

Język definiowania danych (

D

ata

D

efinition

L

anguage)

+

Język manipulowania danymi (

D

ata

M

anipulation

L

anguage)

+

Język kontrolowania danych (

D

ata

C

ontrol

L

anguage)

DDL - definiuje struktury danych, na których operują instrukcje DML

DML - wykonuje operacje na danych zdefiniowanych przez DDL 

(pobieranie danych i ich aktualizowanie)

DCL - kontroluje uprawnienia dostępu do danych

background image

#14

© K.Goczyła, M. Piechówka

Administrator bazy danych

Administrator bazy danych

Administrator bazy danych (

D

ata

B

ase

A

dministrator) -

osoba sprawująca kontrolę nad dostępem do bazy danych 
i nad jej funkcjonowaniem.

Zadania DBA

• udzielanie użytkownikom i grupom użytkowników uprawnień dostępu do bazy danych 

(uprawnienia do tworzenia obiektów bazy danych, ich pobierania i modyfikowania, ...)

• monitorowanie wydajności bazy danych
• definiowanie strategii archiwizowania i odtwarzania danych po awariach
• uruchamianie nowych strategii dostępu do danych
• ... 

Narzędzia do dyspozycji DBA

• program do ładowania bazy danych z plików zewnętrznych
• programy do archiwizacji danych 
• programy do przywracania danych z archiwum
• programy do zbierania statystyk i ich analizowania
• procedury definiowania użytkowników i grup użytkowników
• programy do operowania na słowniku danych
• programy do analizowania dziennika bazy danych (logu)
• ... 

background image

#15

© K.Goczyła, M. Piechówka

S

S

ł

ł

ownik danych

ownik danych

Słownik danych

-

specjalna baza danych zawierająca informacje o danych 
przechowywanych w innych bazach danych (metadane).

Zawartość słownika danych

• opisy struktury obiektów bazy danych (np. schematów tablic, widoków, ...)
• opisy użytkowników (identyfikatory, uprawnienia, ...)
• definicje formatów danych stosowanych w bazie danych
• dane statystyczne o wartościach danych w bazie danych
• ...

Dostęp do słownika danych

• Zwykły użytkownik ma prawa tylko do odczytu, i to tylko pewnych 

fragmentów słownika danych

• DBA  może mieć pełniejszy dostęp do słownika, jednak jego modyfikowanie może 

wykonywać tylko poprzez procedury systemowe

• DBMS ma pełen dostęp do słownika danych (np. modyfikuje go przy tworzeniu 

nowego obiektu w bazie danych)

background image

#16

© K.Goczyła, M. Piechówka

Architektura systemu baz danych

Architektura systemu baz danych

Poziom 
zewnętrzny

(użytkownika)

Poziom 
wewnętrzny
(fizyczny)

Poziom 
logiczny
(modelu 
danych)

for each
{x=1;
SQL

select

for each
{x=1;
SQL

update

for each
{x=1;
SQL

update

System 

zarządzania

bazami danych

(DBMS)

background image

#17

© K.Goczyła, M. Piechówka

Architektura systemu baz danych 

Architektura systemu baz danych 

(cd.)

(cd.)

Poziom zewnętrzny (użytkownika) 

Zbiór zewnętrznych widoków, poprzez które użytkownicy widzą zawartość
bazy danych. Widok jest wyabstrahowanym fragmentem bazy danych, 
zdefiniowanym w terminach języka zapytań.

Poziom logiczny (modelu danych) 

Zawiera model konceptualny bazy danych. Model ten obejmuje całą zawartość
bazy danych, tak jak ją widzi administrator lub właściciel bazy danych.

Poziom wewnętrzny (fizyczny) 

Fizyczna reprezentacja bazy danych w postaci plików dyskowych 
i algorytmów dostępu do nich. Jest to reprezentacja niskiego poziomu
(poziomu jednostek pamięciowych, np. bajtów).

background image

#18

© K.Goczyła, M. Piechówka

Niezale

Niezale

ż

ż

no

no

ść

ść

od danych

od danych

Wyraźne odizolowanie poziomów architektury systemu baz danych (szczególnie poziomu 
logicznego od fizycznego) pozwala osiągnąć

niezależność programu od danych

.

Program  jest zależny od danych, jeśli wiedza na temat struktur danych i metod dostępu
do nich jest wbudowana w program, tzn. nie jest możliwa zmiana:

• struktur danych (czyli sposobu przechowywania danych)
• metod dostępu do danych

bez zmian w programie.

Niezależność programu od danych

oznacza sytuację odwrotną: logika programu 

nie zależy od struktur danych i metod dostępu stosowanych w systemie baz danych.

• Logiczna niezależność danych

– odporność schematów zewnętrznych 

(widoków) na zmiany dokonywane w schemacie pojęciowym.

• Fizyczna niezależność danych

– odporność schematu pojęciowego na zmiany 

dokonywane w schemacie wewnętrznym.

Korzyści:

• można wprowadzać nowe urządzenia pamięciowe
• można wprowadzać nowe struktury danych na dysku i nowe metody dostępu
• można zmieniać fizyczną reprezentację danych

bez konieczności dokonywania zmian w kodzie aplikacji bazodanowych 
(może być konieczna tylko rekompilacja).

background image

#19

© K.Goczyła, M. Piechówka

Dost

Dost

ę

ę

p do danych

p do danych

Człowiek przy terminalu, który interakcyjnie operuje 
na bazie danych, formułując żądania w języku zapytań ad hoc.

UŻYTKOWNIK

Program, który oprócz innych instrukcji zawiera instrukcje operujące 
na danych z bazy danych. Instrukcje te formułowane są
w języku zapytań zanurzonym w języku macierzystym.

 

zapytanie

odpowiedź


 

 

 

pamięć

zewnętrzna

lub

 

background image

#20

© K.Goczyła, M. Piechówka

Dost

Dost

ę

ę

p poprzez Internet

p poprzez Internet

 

 

INTERNET

 

Przeglądarka 

WWW

 

Serwer 

WWW

 

CGI lub 

podobny 

Aplikacja lub 

skrypt

 

 

DBMS

 

ODBC/

JDBC

 

tekst, grafika, audio, ...

plik szablonu

Procesor 
skryptów 

 

background image

#21

© K.Goczyła, M. Piechówka

Ewolucja technologii baz danych

Ewolucja technologii baz danych

Relacyjne 

bazy danych

Systemy 

plików

Hierarchiczne

bazy danych

Sieciowe 

bazy danych

1980

1960

1970

1990

1. Systemy plików: 

realizacja operacji plikowych; stanowią poziom fizyczny współczesnych baz danych
ISAM, CSAM, VSAM, WiSS, inne specjalizowane

2. Hierarchiczne bazy danych

dane organizowane są w struktury drzewiaste
IMS, System 2000, ...

3. Sieciowe bazy danych

dane organizowane są w dowolne struktury sieciowe (Codasyl)
IDS, Total, Adabas, IDMS, ...

4. Relacyjne bazy danych 

dane organizowane są w relacje (zbiory krotek o ustalonej, prostej strukturze)
Oracle, Informix, SyBase, DB2, Ingres, Progress, MSSQL, ...

background image

#22

© K.Goczyła, M. Piechówka

Ewolucja technologii baz danych

Ewolucja technologii baz danych

Bazy danych

obiektowo-

relacyjne

XML,  

multimedia…

Bazy danych

„nowej generacji”

Relacyjne 

bazy danych

2000

1980

1990

2010

Bazy danych nowej generacji - motywacje:

nowe aplikacje baz danych: 

CAD, CAM, CAP, CASE, DSS, automatyzacja prac biurowych, kartografia,
multimedia, sztuczna inteligencja

niedostatki systemów tradycyjnych: 

- zbyt prosty model danych, nieodpowiedni do modelowania złożonych struktur
- ograniczony, nierozszerzalny zestaw typów danych
- ograniczone możliwości obliczeniowe
- zbyt prosty model transakcji
- brak pojęcia wersji
- mała elastyczność w operowaniu schematem


Document Outline