background image

Bazy Danych

Europejska Wyższa Szkoła Informatyczno-
Ekonomiczna
Mgr inż. Piotr Greniewski

Wykład 2: Geneza relacyjnych baz danych

background image

 Copyright by Piotr Greniewski

2

Spis treści

Bazy danych wstęp

Geneza relacyjnych baz danych

Podstawy relacyjnych baz danych

Podstawy-SQL-1

Podstawy-SQL-2

Podstawy-SQL-3

Operacje na danych

Transakcje i blokady

Normalizacja

background image

 Copyright by Piotr Greniewski

3

Relacyjny model bazy danych

W 1970 r. publikacja E.F. Codda „Relacyjny 
model danych dla dużych, współdzielonych 
banków danych” stała się początkiem nowego 
podejścia do przechowywania danych.

Dokument ten przedstawił ideę relacji pokazał 
sposób wykorzystania tabel do 
reprezentowania faktów, które są powiązane z 
obiektami świata rzeczywistego.

Relacyjny model bazy danych kładzie duży 
większy nacisk niż inne modele na 
integralność danych. 

background image

 Copyright by Piotr Greniewski

4

Relacyjny model bazy danych

RDBMS   (ang. Relational Data Base Management
System jest zdefiniowany przez kilka ważnych reguł:

rekordy w tabeli określa się terminem 

krotka

 

(ang. tuple). Krotka to uporządkowana grupa 
elementów lub atrybutów z których każda posiada 
zdefiniowany typ,

wszystkie krotki w tabeli, mają ten sam wzorzec tzn. 
posiadają tą samą liczbę komponentów o 
identycznych typach,

w dowolnej tabeli złożonej z krotek nie może być 
duplikatów, czyli nie mogą wystąpić identyczne 
wiersze (rekordy),

każdy atrybut w rekordzie musi być niepodzielny,

background image

 Copyright by Piotr Greniewski

5

Relacyjny model bazy danych

RDBMS ciąg dalszy ...

atrybut służący do rozróżniania rekordów, które 
niczym innym się nie różnią nazywa się kluczem,

jako klucz może być stosowana kombinacja więcej 
niż jednego atrybutu,

atrybut czyniący rekord unikalnym nazywa się 
kluczem podstawowym,

w relacyjnej bazie danych każda relacja (tabela) 
musi posiadać klucz podstawowy,

reguła integralności odwołań (ang. referential 
integrity) 
czyli dążenie do sytuacji, kiedy wszystkie 
rekordy w bazie danych zawsze mają sens.

background image

 Copyright by Piotr Greniewski

6

Relacyjny model bazy danych

 {Francja, FRF, 6.56}

 {Belgia, BEF, 40.51}
Każda z krotek posiada trzy atrybuty:
- nazwę kraju (łańcuch znaków)
- walutę (łańcuch znaków)
- kurs (liczba zmiennoprzecinkowa)

W relacyjnej bazie danych wszystkie rekordy z 
tej samej tabeli muszą mieć taki sam format.

Wszystkie krotki w tabeli, mają ten sam 

ten sam 

wzorzec

wzorzec

 tzn. posiadają tą samą liczbę 

komponentów o identycznych typach.

background image

 Copyright by Piotr Greniewski

7

Relacyjny model bazy danych

Łatwo sprawdzić ilość i poprawność 
atrybutów.

 {Niemcy, DEM }

- za mało atrybutów

{Szwajcaria, CHF, 1.25, francuski, niemiecki, 
włoski}

- za dużo atrybutów

 {1936.27, ITL, Włochy}

- niepoprawne typy atrybutów (zła kolejność)

background image

 Copyright by Piotr Greniewski

8

Relacyjny model bazy danych

Atrybuty muszą pochodzić z tego samego 

z tego samego 

zbioru wartości

zbioru wartości

 lub z tej samej dziedziny. 

łańcuchy znaków -  ‘Francja’

- liczby całkowite – 1234
- liczby zmiennoprzecinkowe – 123.34
- data – 12 stycznia 2003
- wartości logiczne –  true lub false
- ... i wiele innych typów... 

background image

 Copyright by Piotr Greniewski

9

Relacyjny model bazy danych

Ostatnią regułą która określa strukturę relacyjnej bazy 
danych jest integralność odwołań

integralność odwołań

 . Jest to dążenie do 

sytuacji w której wszystkie rekordy w bazie danych 
mają sens.

Programista bazy danych musi uważać aby 
stworzony przez niego kod nie łamał 
integralności bazy!!!. Np. mamy tabelę 
klientów i powiązaną z nią tabelę zamówień. 
Jeśli usuniemy z tabeli konkretnego klienta, to 
musimy usunąć związane z nim zamówienia. 
Jeśli tego nie uczynimy w bazie pozostaną 
zamówienia nie przypisane do klienta.

background image

 Copyright by Piotr Greniewski

10

Języki zapytań

Relacyjne bazy danych oferują sposoby 
dodawania i aktualizacji danych, ale ich 
potęga leży w możliwościach wyszukiwania 
danych w formie zapytań.

Stworzony przez Codda model relacyjny 
wykorzystuje fakt, że relacje definiują zbiory a 
zbiory można przetwarzać matematycznie. 
Zasugerował on że zapytanie może korzystać 
gałęzi logiki teoretycznej zwanej teorią 
predykatów.

background image

 Copyright by Piotr Greniewski

11

Języki zapytań

Implementacje języków zapytań:

QUEL w bazie Ingres

QBE (Query by example)

SQL (Standard Query Language – Standardowy 
język zapytań) opracowany przez firmę IBM

background image

 Copyright by Piotr Greniewski

12

Język zapytań SQL

Język SQL składa się z trzech rodzajów 
poleceń:

Język manipulowania danymi (DML)

Język definicji danych (DDL)

Język sterowania danymi (DCL)

background image

 Copyright by Piotr Greniewski

13

Język zapytań SQL

Jest to część SQL, z której korzystamy w 90% 
przypadków. Składa się z poleceń wstawiania, 
usuwania i aktualizacji oraz co najważniejsze 
wybierania danych z bazy.

Język manipulowania danymi 

(DML)

background image

 Copyright by Piotr Greniewski

14

Język zapytań SQL

Zawiera polecenia tworzenia tabel oraz 
polecenia mające wpływ na inne aspekty 
dotyczące struktury bazy danych

Język definicji danych (DDL)

background image

 Copyright by Piotr Greniewski

15

Język zapytań SQL

Jest to zbiór poleceń służący do określania 
uprawnień, jak na przykład definiowania praw 
dostępu do danych. Wielu użytkowników baz 
danych nigdy nie skorzysta z tych poleceń, 
ponieważ wykorzystuje się je w środowiskach 
większych firm gdzie pracuje jeden lub kilku 
administratorów bazy danych. Zarządzanie 
uprawnieniami to zazwyczaj jedno z ich zadań.

Język sterowania danymi (DCL)

background image

 Copyright by Piotr Greniewski

16

Języki SQL

PostgreSQL

Microsoft SQL Serwer

Oracle SQl

MySQL

wiele innych ...

background image

 Copyright by Piotr Greniewski

17

Definicja tablicy w SQL

 CREATE TABLE Student

 (
 Student_id serial,
 Nazwisko char(50)

not null,

 Imię

char(50)

not null,

 Imię_ojca char(10),
 Wpisowe numeric(7.2)
 );

background image

 Copyright by Piotr Greniewski

18

Wypełnienie tabeli danymi

INSERT INTO 
Student(Nazwisko,Imię,Imię_ojca,wpisowe)

Values(‘Kowalski’,’Jan’,’Maciej’,350.00);

INSERT INTO 
Student(Nazwisko,Imię,Imię_ojca,wpisowe)

Values(‘Malinowski’,’Krzysztof’,’Stefan’,350.00);

background image

 Copyright by Piotr Greniewski

19

Dostęp do danych

SELECT * FROM Student WHERE Nazwisko = 

‘Kowalski’;

-----------------------------------------------------------------------

1 Kowalski

Jan

Marek

350.00

2 Kowalski

Stefan

Jan

350.00

3 Kowalski

Zenon

Jan

350.00

background image

 Copyright by Piotr Greniewski

20

Dostęp do danych w języku PostgreSQL

Skorzystać z aplikacji wiersza poleceń w celu 
wykonania instrukcji SQL.

Wstawić kod SQL bezpośrednio do aplikacji (za 
pomocą wbudowanego SQL).

Wykorzystać wywołanie funkcji (API) w celu 
przygotowania i wykonania instrukcji SQL, 
skanowania zbioru wyników oraz wykonania 
aktualizacji z poziomu większości popularnych 
języków programowania. 

Uzyskać dostęp do bazy za pomocą sterownika 
np. ODBC (otwarte połączenie z bazą danych), 
bądź standardowej biblioteki jak DBI języka Perl.

background image

 Copyright by Piotr Greniewski

21

Systemy zarządzania bazą danych 

(DBMS)

System zarządzania bazą danych (DBMS) to 
zestaw programów umożliwiających 
skonstruowanie bazy danych i aplikacji które z 
nich korzystają

Funkcje jakie spełnia DBMS obejmują:

tworzenie bazy danych,

funkcje tworzenia zapytań i aktualizowania danych,

wielozadaniowość,

utrzymywanie dzienników systemowych,

zarządzanie bezpieczeństwem bazy danych,

utrzymanie integralności odwołań.

background image

 Copyright by Piotr Greniewski

22

Tworzenie bazy danych

Niektóre systemy zarządzają jednym wielkim 
plikiem i tworzą w nim co najmniej jedną bazę 
danych. 
Inne posiadają możliwość korzystania z plików 
pochodzących z wielu systemów operacyjnych, 
albo korzystają z danych zapisanych 
bezpośrednio w obrębie partycji dysku. 
Użytkownicy nie muszą przejmować się 
niskopoziomowymi strukturami tych plików, a 
system DBMS dostarcza dostęp potrzebny 
użytkownikom i programistom.

background image

 Copyright by Piotr Greniewski

23

Funkcje tworzenia zapytań i 

aktualizowania danych

Systemy DBMS zawierają metody tworzenia 
zapytań o dane, które spełniają określone 
kryteria, jak np. wszystkie zamówienia złożone 
przez określonego klienta, których jeszcze nie 
zrealizowano. Przed powszechnym 
wprowadzeniem standardu SQL sposób 
tworzenia tych zapytań był inny dla różnych 
systemów.

background image

 Copyright by Piotr Greniewski

24

Wielozadaniowość

Jeżeli baza danych jest wykorzystywana przez 
kilka aplikacji lub o dostęp do niej w tym 
samym czasie rywalizuje kilku użytkowników 
system DBMS zapewnia przetwarzanie 
każdego  żądania użytkownika bez ujemnego 
wpływu na możliwości korzystania z bazy 
przez kogoś innego. Oznacza to że użytkownik 
musi oczekiwać w kolejce gdy ktoś inny 
modyfikuje ten rekord który użytkownik chce 
zapisać

background image

 Copyright by Piotr Greniewski

25

Utrzymywanie dzienników systemowych

System DBMS przechowuje dzienniki 
wszystkich zmian danych dokonanych w ciągu 
pewnego okresu czasu. Funkcję tę można 
wykorzystać do śledzenia błędów. Jej ważną 
cechą jest możliwość rekonstrukcji danych w 
przypadku awarii systemu. Zazwyczaj 
utrzymywanie dzienników systemowych 
wykorzystuje się do tworzenia rejestru 
transakcji oraz kopii zapasowej danych.

background image

 Copyright by Piotr Greniewski

26

Zarządzanie bezpieczeństwem bazy 

danych

DBMS zapewnia kontrolę dostępu do danych. 
Dzięki temu zapewnia bezpieczny dostęp do 
danych (odczyt, zapis, edycja, kasowanie) jak też 
modyfikacji struktury danych (atrybuty, tabele, 
indeksy). Dla konkretnej bazy danych definiuje się 
hierarchię użytkowników – począwszy od super 
użytkownika, któremu wolno wykonywać dowolne 
zmiany w systemie, poprzez użytkowników 
mogących dodawać i usuwać dane aż do takich 
użytkowników którzy mogą je czytać. System 
DBMS zawiera mechanizmy dodawania i usuwania 
użytkowników oraz określania funkcji systemu 
które są dla nich dozwolone.

background image

 Copyright by Piotr Greniewski

27

Utrzymanie integralności odwołań

Wiele systemów DBMS zawiera mechanizmy 
utrzymania integralności odwołań które 
decydują o poprawności danych. System 
zarządzania bazą danych zgłasza błąd jeśli 
aktualizacja złamie zasady modelu relacyjnego

background image

 Copyright by Piotr Greniewski

28

Co to jest PostgreSQL?

PostgreSQL jest to system zarządzania bazą 
danych, który implementuje relacyjny model 
bazy danych i obsługuje język zapytań SQL.

System obsługuje prawie wszystkie platformy 
systemowe:

UNIX (np. SCO)

Linux (np. Red Hat)

Windows NT

Windows 2003 Server

Windows ME (stacja robocza!!!)

inne

background image

 Copyright by Piotr Greniewski

29

Co to jest PostgreSQL?

Zalety PostgreSQL:

jego główną zaletą, oprócz jakości jest to że jest 
darmowy i oferuje dostęp do kodu źródłowego;

zawiera niemal wszystkie funkcje, które można 
odnaleźć w innych bazach danych, zarówno 
komercyjnych, jak i Open Source;

posiada również kilka funkcji dodatkowych, 
właściwych tylko dla niego.

background image

 Copyright by Piotr Greniewski

30

Co to jest PostgreSQL?

Funkcje PostgreSQL obejmują:

transakcje;

zagnieżdżanie zapytań;

perspektywy;

integralność odwołań dla kluczy zewnętrznych;

zaawansowane mechanizmy blokowania;

typy definiowane przez użytkownika;

dziedziczenie;

reguły;

kontrolę współzawodnictwa dla wielu wierszy.

background image

 Copyright by Piotr Greniewski

31

Architektura PostgreSQL

Tak jak komercyjne bazy danych pracuje w 
środowisku klient-serwer.

Sercem instalacji PostgrSQL jest proces bazy 
danych zwany czasami silnikiem (ang. engine )

Aplikacje, które chcą uzyskać dostęp do 
danych muszą wykonywać operacje przez 
proces bazy danych. Nie mają dostępu do 
danych bezpośrednio nawet gdy pracują na 
tym samym komputerze co proces serwera.

Rozdzielenie klienta od serwera umożliwia 
dystrybucję aplikacji (UNIX, Windows, ...)

background image

 Copyright by Piotr Greniewski

32

Architektura PostgreSQL

BAZA

 DANYCH

KLIENT

O

D

B

C

KLIENT

POSTMASTER

POSTMASTER

POSTMASTER

Połączenie

Dostę

p

Linu

x

UNI

X

KLIENT

Połączenie

Window

s

SERWER

Wiele operacji dostępu 

jednocześnie

Wielu 

klientów


Document Outline