Podstawy baz danych - Politechnika Gdańska

advertisement
Podstawowe informacje
o bazach danych
Technologie Informacyjne
dr inż. Michna Michał, Politechnika Gdańska 2012/2013
Przykłady systemów baz danych

Książka telefoniczna, książka kucharska

Zarządzanie magazynem/hurtownią

Systemy bankowe, ubezpieczeniowe

Systemy rezerwacji miejsc

Systemy obsługi administracji (ZUS, NFZ)

Powszechny Elektroniczny System Ewidencji
Ludności PESEL(od 1979)
2
dr inż. Michał Michna
PG, WEiA, 2012/13
Przykłady systemów baz danych

Systemy wspomagania projektowania CAD/CAM

Magazyny (hurtownie) danych

Systemy wspomagania inżynierii oprogramowania
CASE

Systemy z bazami wiedzy

Systemy medyczne

Systemy kartograficzne GIS
http://www.ncddc.noaa.gov/technology/gis/view
3
dr inż. Michał Michna
PG, WEiA, 2012/13
Systemy
wspomagania
projektowania CAx
CAD
CAP
CAE
STEP
STandard for the
Exchange of Product
data (1995)
ISO 10303
STEP
CAM
CAQ
Określa zasady
modelowania produktu
i procesów jego
wytwarzania
za pomocą technik CAx
PPC
4
dr inż. Michał Michna
PG, WEiA, 2012/13
Systemy wspomagania projektowania
CAD/CAM
5
dr inż. Michał Michna
PG, WEiA, 2012/13
Typy systemów baz danych
Proste typy danych

1960



1970
1980


1990


Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjnoobiektowe
Strumieniowe
Temporalne
Bazy sekwencyjne
flat files – płaski plik
• pliki nie są ze sobą
połączone
• dane przechowywane w
sposób liniowy
• znalezienie danych
wymaga przeglądania
pliku od początu
• nośnik danych – taśma
magnetyczna
Złożone typy danych
6
dr inż. Michał Michna
PG, WEiA, 2012/13
Typy systemów baz danych
Proste typy danych

1960



1970
1980


1990


Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjnoobiektowe
Strumieniowe
Temporalne
BDAM - Basic Direct
Access Method
Metoda ta, w
przeciwieństwie do plików
sekwencyjnych,
wykorzystuje algorytm
mieszający (ang. hashing
algorithm) w celu określenia
adresu konkretnego rekordu
na dysku
Złożone typy danych
7
dr inż. Michał Michna
PG, WEiA, 2012/13
Typy systemów baz danych
Proste typy danych

1960



1970
1980


1990


Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjnoobiektowe
Strumieniowe
Temporalne
Złożone typy danych
8
ISAM (Indexed Sequential
Access Method)
Działanie tej metody opiera
się na istnieniu pliku z
indeksami.
W najprostszej postaci
indeks składa się z dwóch
pól.
• pierwsze pole jest
symbolicznym kluczem,
natomiast
• drugie pole zawiera adres
dyskowy powiązanego z
tym kluczem rekordu
dr inż. Michał Michna
PG, WEiA, 2012/13
Typy systemów baz danych
Proste typy danych

1960



1970
1980


1990


Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjnoobiektowe
Strumieniowe
Temporalne
wady
• dostęp do danych przez
kilka aplikacji
• duplikowanie informacji
• zmiana struktury plików
wymaga aktualizacji
wszystkich programów
• brak mechanizmów
zabezpieczających
• brak jednolitego formatu
przechowywania danych
Złożone typy danych
9
dr inż. Michał Michna
PG, WEiA, 2012/13
Typy systemów baz danych
Proste typy danych

1960



1970
1980


1990


Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjnoobiektowe
Strumieniowe
Temporalne
1960 IBM wprowadza
prototyp komputerowej IMS
(Information Management
System – System
Zarządzania Informacją)
Złożone typy danych
10
dr inż. Michał Michna
PG, WEiA, 2012/13
Typy systemów baz danych
Proste typy danych

1960



1970
1980


1990


Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjnoobiektowe
Strumieniowe
Temporalne
zalety
• łatwość zastosowania
modelu hierarchicznego,
• bardzo duża szybkość
działania,
• są to systemy, które
okazały się na tyle dobre,
że są nadal
wykorzystywane.
Złożone typy danych
11
dr inż. Michał Michna
PG, WEiA, 2012/13
Typy systemów baz danych
Proste typy danych

1960



1970
1980


1990


Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjnoobiektowe
Strumieniowe
Temporalne
wady
• ścisłe reguły dotyczące
relacji,
• wstawianie i kasowanie
danych może okazać się
bardzo skomplikowane,
• dostęp do niższych
warstw jest możliwy tylko
poprzez warstwy
nadrzędne,
• trudności w modelowaniu
relacji typu wiele-do-wielu
Złożone typy danych
12
dr inż. Michał Michna
PG, WEiA, 2012/13
Typy systemów baz danych
Proste typy danych

1960



1970
1980


1990


Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjnoobiektowe
Strumieniowe
Temporalne
Złożone typy danych
13
CODASYL (Conference On
Data Systems Languages)
sieciowy system
zarządzania bazą danych
• język kontroli urządzeń
DMCL (Device Media
Control Language)
• język manipulacji danymi
DML (Data Manipulation
Language)
• języka definiowania
danych DDL (Data
Definition Language)
Struktura danych tworzy
graf, czyli sieć
dr inż. Michał Michna
PG, WEiA, 2012/13
Typy systemów baz danych
Proste typy danych

1960



1970
1980


1990


Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjnoobiektowe
Strumieniowe
Temporalne
relacyjny model danych
1970 dr Edgar Ted Codd
(IBM)
• dane przechowywane w
tabelach - relacje
• język SQL w celu
ułatwienia dostępu do
danych i ich modyfikacji
• niezależność danych
• klucz główny
• prostota
Złożone typy danych
14
dr inż. Michał Michna
PG, WEiA, 2012/13
Typy systemów baz danych
Proste typy danych

1960



1970
1980


1990


Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjnoobiektowe
Strumieniowe
Temporalne
Złożone typy danych
15
Manifesty baz danych
• dwanaście reguł
prawdziwego systemu
relacyjnego
• 1989 „The Object-Oriented
Database System
Manifesto”
Obiektowa baza danych jest
zbiorem obiektów, których
zachowanie się i stan oraz
związki są określone
zgodnie z obiektowym
modelem danych
dr inż. Michał Michna
PG, WEiA, 2012/13
Typy systemów baz danych
Proste typy danych

1960



1970
1980


1990


Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjnoobiektowe
Strumieniowe
Temporalne
bazy relacyjno–obiektowe
relacyjna baza danych
zapisanych w strukturach
obiektowych,
strumieniowe bazy
danych dane są
przedstawione w postaci
zbioru strumieni danych,
temporalne bazy danych
odmiana bazy relacyjnej, w
której każdy rekord posiada
stempel czasowy,
określający czas w jakim
wartość jest prawdziwa.
Złożone typy danych
16
dr inż. Michał Michna
PG, WEiA, 2012/13
Bazy danych

Zbiór danych opisujący pewien wybrany fragment
rzeczywistości




odzwierciedlają rzeczywistość w sposób z nią zgodny
(prawidłowy)
są zorganizowane w specyficzny sposób, zgodnie z tzw.
modelem danych
Baza danych jest zarządzana przez tzw. system
zarządzania bazą danych
Z systemem bazy danych współpracują programy
przetwarzające dane
17
dr inż. Michał Michna
PG, WEiA, 2012/13
Systemy baz danych (SBD)

System informatyczny wyspecjalizowany w kierunku

wprowadzania

przechowywania

przetwarzania

udostępniania

Baza danych – zbiór informacji zapisanych w ściśle
określony sposób (DataBase)

System zarządzania bazą danych – program do
przetwarzania, zarządzania bazą danych
(DataBase Management System)
18
dr inż. Michał Michna
PG, WEiA, 2012/13
Cechy funkcjonalne SBD

gwarantowanie trwałości i spójności danych w bazie
danych

zapewnienie współbieżnego dostępu do danych

autoryzacja dostępu do bazy danych

efektywny dostęp do danych w środowisku
scentralizowanym i rozproszonym
19
dr inż. Michał Michna
PG, WEiA, 2012/13
Architektura baz danych


Architektura klient-serwer dwuwarstwowa

Serwer bazy danych – wykonujący np. wyrażenia SQL

Klient – wysyłających żądania do serwera
Architektura trzywarstwowa

interfejs użytkownika

logika przetwarzania

baza danych
20
dr inż. Michał Michna
PG, WEiA, 2012/13
20
Architektura baz danych
zapytanie
Internet
odpowiedź
Klient
Przeglądarka WWW
Serwer WWW
Apache
odpowiedź
podaj dane
Skrypt PHP
wykonaj
Dokument
HTML
Serwer baz danych
MySQL
21
dr inż. Michał Michna
PG, WEiA, 2012/13
21
Relacyjne bazy danych
Podstawy, model danych , przykłady
22
dr inż. Michał Michna
PG, WEiA, 2012/13
Relacyjne bazy danych

Relacje - podstawowa struktura danych
przedstawiana w postaci tabeli
atrybut (kolumna)
krotka
rekord
(wiersz)
23
PESEL
Imię
Nazwisko
Wykształcenie
72030400264
Adam
Kowalski
Podstawowe
65083104569
Marcin
Kowalski
Średnie
71123108664
Marcin
Dąbrowski
Wyższe
85041406333
Anna
Kowalska
Podstawowe
46111006545
Anna
Dąbrowska
Wyższe
dr inż. Michał Michna
PG, WEiA, 2012/13
pole
wartość
Relacyjne bazy danych - wiersze





Wiersze są unikalne
Każdy wiersz posiada te same atrybuty
Nie ma znaczenia kolejność wierszy
Wiersze są dynamiczne – mogą być dopisywane,
usuwane, modyfikowane
Wiersze powinny być identyfikowane przez pola
kluczowe (klucz podstawowy)
72030400264
24
Adam
Kowalski
P
dr inż. Michał Michna
PG, WEiA, 2012/13
Relacyjne bazy danych - kolumy
PESEL

Kolumny są unikalne

Każdej kolumnie przypisany jest typ
danych (liczba, data, godzina, ciąg
znaków, znak)

Nie ma znaczenia kolejność kolumn

Wartości pól są atomowe

Każda kolumna ma swoją nazwę

Rzadko dodaje się lub kasuje kolumny
72030400264
65083104569
71123108664
85041406333
46111006545
25
dr inż. Michał Michna
PG, WEiA, 2012/13
Relacyjne bazy danych – klucz podstawowy
Klucze wykorzystuje się do tworzenia powiązań
(relacji) pomiędzy kilkoma oddzielnymi tabelami
klucz podstawowy

atrybut lub zbiór atrybutów, którego wartość
jednoznacznie identyfikuje krotkę relacji

Z definicji, wartość atrybutu, który zdefiniowano jako
klucz podstawowy jest unikalna w obrębie całej
relacji i jest niepusta

Przykłady: NIP, PESEL, nr dowodu, nr paszportu
26
dr inż. Michał Michna
PG, WEiA, 2012/13
Relacyjne bazy danych - klucze
Imię
Nazwisko
Adres
101
Joanna
Kowalska
Wierzbowa 25
103
Anna
Kowalska
Narcyzowa 1
104
Anna
Dąbrowska
Fiołkowa 11
KlientID
Klienci
Klucz podstawowy
Zamowienia
27
Wartość
ZamowienieID
KlientID
Data
302
101
255,2 2006-01-12
303
103
1651,1 2006-01-12
304
101
12,25 2006-01-14
305
101
1321,1 2006-01-14
dr inż. Michał Michna
PG, WEiA, 2012/13
Relacyjne bazy danych – klucz obcy
Klucze wykorzystuje się do tworzenia powiązań
(relacji) pomiędzy kilkoma oddzielnymi tabelami
klucz obcy

jest atrybutem lub zbiorem atrybutów, który wskazuje
na klucz podstawowy w innej relacji

służy do reprezentowania powiązań między danymi
(łączenia relacji)
28
dr inż. Michał Michna
PG, WEiA, 2012/13
Relacyjne bazy danych - klucze
Klienci
KlientID
Imię
Nazwisko
Adres
101
Joanna
Kowalska
Wierzbowa 25
103
Anna
Kowalska
Narcyzowa 1
104
Anna
Dąbrowska
Fiołkowa 11
Klucz obcy
Klucz podstawowy
Zamowienia
29
Wartość
ZamowienieID
KlientID
Data
302
101
255,2 2006-01-12
303
103
1651,1 2006-01-12
304
101
12,25 2006-01-14
305
101
1321,1 2006-01-14
dr inż. Michał Michna
PG, WEiA, 2012/13
Relacyjne bazy danych - relacje
Jeden-do-Jednego
każdy wiersz w tabeli A może mieć tylko jeden dopasowany wiersz z tabeli B, i tak
samo każdy wiersz w tabeli B może mieć tylko jeden dopasowany wiersz z tabeli A
Adresy
Klienci
Imię
Nazwisko
KlientID
Ulica
Miasto
101
Joanna
Kowalska
101
Wierzbowa 25
Gdynia
103
Anna
Kowalska
103
Narcyzowa 1
Sopot
104
Anna
Dąbrowska
104
Fiołkowa 11
Gdynia
KlientID
30
dr inż. Michał Michna
PG, WEiA, 2012/13
Relacyjne bazy danych - relacje
Jeden-do-Wielu
wiersz w tabeli A może mieć wiele dopasowanych wierszy z tabeli B,
lecz wiersz w tabeli B może mieć tylko jeden dopasowany wiersz z tabeli A
Klienci
KlientID
101
Imię
Nazwisko
Adres
Joanna
Kowalska
Wierzbowa 25
Zamowienia
31
ZamowienieID
KlientID
Wartosc
302
101
255,2 2006-01-12
304
101
12,25 2006-01-14
305
101
1321,1 2006-01-14
dr inż. Michał Michna
Data
PG, WEiA, 2012/13
Relacyjne bazy danych - relacje
Wiele-do-Wielu
każdy wiersz w tabeli A może mieć wiele dopasowanych wierszy z tabeli B, i tak
samo każdy wiersz w tabeli B może mieć wiele dopasowanych wierszy z tabeli A
Zamowienia
ZamID
302
304
305
32
KlientID
101
101
101
OpisZamowienia
ZamID
ProduktID
Produkty
302
202
ProuktID
Nazwa
Cena jedn
302
204
202
Chleb
1,60
302
205
204
Mleko
1,80
305
204
205
Masło
3,50
305
205
304
204
dr inż. Michał Michna
PG, WEiA, 2012/13
Język zapytań SQL
Podstawy, przykłady zastosowań
33
dr inż. Michał Michna
PG, WEiA, 2012/13
SQL Structured Query Language
Wykorzystywany w bazach:
 IBM (DB2),
 Oracle, MySQL, Inter-Base, Paradox, dBase, Caché,
Firebird, First SQL, HSQL, Ingres, Informix, MaxDB,
Microsoft Access, Microsoft Jet, Microsoft SQL
Server, Mimer SQL, mSQL, OpenLink Virtuoso,
PostgreSQL, SQL/DS, SQLite, Sybase
Składnia SQL:
 DDL (Data Definition Language)
 DML (Data Manipulation Language)
 DCL (Data Control Language)
34
dr inż. Michał Michna
PG, WEiA, 2012/13
DDL – podstawowe komendy




CREATE (DATABASE, TABLE, INDEX...) – utworzenie
ALTER (DATABASE, TABLE...) – zmiana struktury
DROP (DATABASE, TABLE, INDEX...) – usunięcie
RENAME (DATABASE, TABLE) – zmiana nazwy
CREATE TABLE klienci (
klientID int NOT NULL AUTO_INCREMENT,
imie varchar(50),
nazwisko varchar(100),
adres varchar(255)
PRIMARY KEY (klientID )
);
ALTER TABLE klienci
ADD COLUMN oddzial varchar(255);
35
dr inż. Michał Michna
PG, WEiA, 2012/13
DML - podstawowe komendy




SELECT – pobranie danych z tabel
UPDATE – uaktualnianie danych w tabeli
DELETE – usunięcie danych w tabeli
INSERT – dodanie danych do tabeli
INSERT
INTO klienci (imie, nazwisko, adres)
VALUES ('Jan', 'Kowalski', ‘Sporna 1’);
SELECT *
FROM zamowienia
WHERE wartosc > 200
ORDER BY data DESC;
36
dr inż. Michał Michna
PG, WEiA, 2012/13
DCL - podstawowe komendy



GRANT – przyznanie praw
REVOKE -odebranie wszystkich praw do tabeli
użytkownikowi
DENY.
GRANT ALL
PRIVILEGES ON EMPLOYEE
TO PIOTR
WITH GRANT OPTION
37
dr inż. Michał Michna
PG, WEiA, 2012/13
Literatura


R. Gawron, P. Ostrowski, T. Baniak Microsoft Access
- jako narzędzie konstrukcji baz danych
http://web.pertus.com.pl/~stanley/access_pigulka/Spi
s_tresci.htm
Bazy danych (materiały dydaktyczne MIMUW na
studia informatyczne I stopnia)
http://wazniak.mimuw.edu.pl/index.php?title=Bazy_d
anych
38
dr inż. Michał Michna
PG, WEiA, 2012/13
Download