dr inż. Michna Michał, Politechnika Gdańska 2012/2013 · Z systemem bazy danych współpracują...
Transcript of dr inż. Michna Michał, Politechnika Gdańska 2012/2013 · Z systemem bazy danych współpracują...
Podstawowe informacje
o bazach danych
Technologie Informacyjne
dr inż. Michna Michał, Politechnika Gdańska 2012/2013
Przykłady systemów baz danych
2
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)
dr inż. Michał Michna PG, WEiA, 2012/13
Przykłady systemów baz danych
3
Systemy wspomagania projektowania CAD/CAM
Magazyny (hurtownie) danych
Systemy wspomagania inżynierii oprogramowania
CASE
Systemy z bazami wiedzy
Systemy medyczne
Systemy kartograficzne GIS
dr inż. Michał Michna
http://www.ncddc.noaa.gov/technology/gis/view
PG, WEiA, 2012/13
Systemy
wspomagania
projektowania CAx
STEP
STandard for the
Exchange of Product
data (1995)
ISO 10303
Określa zasady
modelowania produktu
i procesów jego
wytwarzania
za pomocą technik CAx
PG, WEiA, 2012/13 dr inż. Michał Michna 4
STEP
CAD
CAE
CAQ
PPC
CAM
CAP
Systemy wspomagania projektowania
CAD/CAM
dr inż. Michał Michna 5 PG, WEiA, 2012/13
Typy systemów baz danych
6
Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjno-obiektowe
Strumieniowe
Temporalne
1970
1980
1990
Proste typy danych
Złożone typy danych
1960
dr inż. Michał Michna
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
PG, WEiA, 2012/13
Typy systemów baz danych
7
Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjno-obiektowe
Strumieniowe
Temporalne
1970
1980
1990
Proste typy danych
Złożone typy danych
1960
dr inż. Michał Michna
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
PG, WEiA, 2012/13
Typy systemów baz danych
8
Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjno-obiektowe
Strumieniowe
Temporalne
1970
1980
1990
Proste typy danych
Złożone typy danych
1960
dr inż. Michał Michna
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
PG, WEiA, 2012/13
Typy systemów baz danych
9
Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjno-obiektowe
Strumieniowe
Temporalne
1970
1980
1990
Proste typy danych
Złożone typy danych
1960
dr inż. Michał Michna
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
PG, WEiA, 2012/13
Typy systemów baz danych
10
Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjno-obiektowe
Strumieniowe
Temporalne
1970
1980
1990
Proste typy danych
Złożone typy danych
1960
dr inż. Michał Michna
1960 IBM wprowadza
prototyp komputerowej IMS
(Information Management
System – System
Zarządzania Informacją)
PG, WEiA, 2012/13
Typy systemów baz danych
11
Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjno-obiektowe
Strumieniowe
Temporalne
1970
1980
1990
Proste typy danych
Złożone typy danych
1960
dr inż. Michał Michna
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.
PG, WEiA, 2012/13
Typy systemów baz danych
12
Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjno-obiektowe
Strumieniowe
Temporalne
1970
1980
1990
Proste typy danych
Złożone typy danych
1960
dr inż. Michał Michna
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
PG, WEiA, 2012/13
Typy systemów baz danych
13
Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjno-obiektowe
Strumieniowe
Temporalne
1970
1980
1990
Proste typy danych
Złożone typy danych
1960
dr inż. Michał Michna
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ć
PG, WEiA, 2012/13
Typy systemów baz danych
14
Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjno-obiektowe
Strumieniowe
Temporalne
1970
1980
1990
Proste typy danych
Złożone typy danych
1960
dr inż. Michał Michna
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
PG, WEiA, 2012/13
Typy systemów baz danych
15
Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjno-obiektowe
Strumieniowe
Temporalne
1970
1980
1990
Proste typy danych
Złożone typy danych
1960
dr inż. Michał Michna
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
PG, WEiA, 2012/13
Typy systemów baz danych
16
Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjno-obiektowe
Strumieniowe
Temporalne
1970
1980
1990
Proste typy danych
Złożone typy danych
1960
dr inż. Michał Michna
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.
PG, WEiA, 2012/13
Bazy danych
dr inż. Michał Michna 17
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
PG, WEiA, 2012/13
Systemy baz danych (SBD)
18
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)
dr inż. Michał Michna PG, WEiA, 2012/13
Cechy funkcjonalne SBD
19
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
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 20 dr inż. Michał Michna PG, WEiA, 2012/13
Architektura baz danych
21 21 dr inż. Michał Michna
odpowiedź
Internet
Klient
Przeglądarka WWW
Serwer WWW
Apache
Serwer baz danych
MySQL
zapytanie
odpowiedź
Dokument
HTMLSkrypt PHP wykonajpodaj dane
PG, WEiA, 2012/13
Relacyjne bazy danych
Podstawy, model danych , przykłady
22 dr inż. Michał Michna PG, WEiA, 2012/13
Relacyjne bazy danych
23
Relacje - podstawowa struktura danych
przedstawiana w postaci tabeli
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
krotka
rekord
(wiersz)
atrybut (kolumna)
pole
wartość
dr inż. Michał Michna PG, WEiA, 2012/13
Relacyjne bazy danych - wiersze
24
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 Adam Kowalski P
dr inż. Michał Michna PG, WEiA, 2012/13
Relacyjne bazy danych - kolumy
25
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
PESEL
72030400264
65083104569
71123108664
85041406333
46111006545
dr inż. Michał Michna PG, WEiA, 2012/13
Relacyjne bazy danych – klucz podstawowy
26
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
dr inż. Michał Michna PG, WEiA, 2012/13
Relacyjne bazy danych - klucze
dr inż. Michał Michna 27
KlientID Imię Nazwisko Adres
101 Joanna Kowalska Wierzbowa 25
103 Anna Kowalska Narcyzowa 1
104 Anna Dąbrowska Fiołkowa 11
ZamowienieID KlientID Wartość 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
Klienci
Zamowienia
Klucz podstawowy
PG, WEiA, 2012/13
Relacyjne bazy danych – klucz obcy
28
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)
dr inż. Michał Michna PG, WEiA, 2012/13
Relacyjne bazy danych - klucze
29
KlientID Imię Nazwisko Adres
101 Joanna Kowalska Wierzbowa 25
103 Anna Kowalska Narcyzowa 1
104 Anna Dąbrowska Fiołkowa 11
ZamowienieID KlientID Wartość 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
Klienci
Zamowienia Klucz podstawowy Klucz obcy
dr inż. Michał Michna PG, WEiA, 2012/13
Relacyjne bazy danych - relacje
30
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
KlientID Imię Nazwisko
101 Joanna Kowalska
103 Anna Kowalska
104 Anna Dąbrowska
Klienci
KlientID Ulica Miasto
101 Wierzbowa 25 Gdynia
103 Narcyzowa 1 Sopot
104 Fiołkowa 11 Gdynia
Adresy
dr inż. Michał Michna PG, WEiA, 2012/13
Relacyjne bazy danych - relacje
31
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
KlientID Imię Nazwisko Adres
101 Joanna Kowalska Wierzbowa 25
ZamowienieID KlientID Wartosc Data
302 101 255,2 2006-01-12
304 101 12,25 2006-01-14
305 101 1321,1 2006-01-14
Klienci
Zamowienia
dr inż. Michał Michna PG, WEiA, 2012/13
Relacyjne bazy danych - relacje
32
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
ZamID KlientID
302 101
304 101
305 101
Zamowienia
ZamID ProduktID
302 202
302 204
302 205
305 204
305 205
304 204
OpisZamowienia
ProuktID Nazwa Cena jedn
202 Chleb 1,60
204 Mleko 1,80
205 Masło 3,50
Produkty
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
34
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)
dr inż. Michał Michna PG, WEiA, 2012/13
DDL – podstawowe komendy
35
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);
dr inż. Michał Michna PG, WEiA, 2012/13
DML - podstawowe komendy
36
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;
dr inż. Michał Michna PG, WEiA, 2012/13
DCL - podstawowe komendy
37
GRANT – przyznanie praw
REVOKE -odebranie wszystkich praw do tabeli
użytkownikowi
DENY.
GRANT ALL
PRIVILEGES ON EMPLOYEE
TO PIOTR
WITH GRANT OPTION
dr inż. Michał Michna PG, WEiA, 2012/13
Literatura
38
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
dr inż. Michał Michna PG, WEiA, 2012/13