Podstawy baz danych - Politechnika Gdańska

Transkrypt

Podstawy baz danych - Politechnika Gdańska
Podstawowe informacje
o bazach danych
Technologie Informacyjne
dr inż. Michna Michał, Politechnika Gdańska 2013/14
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, 2013/14
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, 2013/14
Systemy
wspomagania
projektowania CAx
CAD
CAP
CAE
ISO 10303
STEP
CAM
STEP
STandard for the
Exchange of Product
data (1995)
CAQ
Określa zasady
modelowania produktu
i procesów jego
wytwarzania
za pomocą technik CAx
PPC
4
dr inż. Michał Michna
PG, WEiA, 2013/14
Systemy wspomagania projektowania
CAD/CAM Standard STEP – protokół AP214
Dane
organizacyjne
i strukturalne
Struktura
produktu
Dane
technologiczne
Własności
materiałów i
komponentów
Dokumenty
zewnętrzne
Tolerancje
obiekty
geometryczne
(technologiczne)
Dane
geometryczne
i obliczeniowe
Zapis formalny
cech produktu
Dane
wymiarowe
Kinematyka
Geometria
Cechy
powierzchni
elementów
MES
Prezentacja
5
dr inż. Michał Michna
PG, WEiA, 2013/14
Kontrola
jakości
Wytwarzanie
Programy NC
Środki
produkcji
Proces
wytwórczy
Kinematyka
dokumentacja
Lista
kompletacyjna
MES
Projekt
Zapis formalny
Typy systemów baz danych
Proste typy danych

1960


1970

1980

1990



Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjno-obiektowe
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ątku
• nośnik danych – taśma
magnetyczna
Złożone typy danych
6
dr inż. Michał Michna
PG, WEiA, 2013/14
Typy systemów baz danych
Proste typy danych

1960


1970

1980

1990



Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjno-obiektowe
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, 2013/14
Typy systemów baz danych
Proste typy danych

1960


1970

1980

1990



Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjno-obiektowe
Strumieniowe
Temporalne
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
Złożone typy danych
8
dr inż. Michał Michna
PG, WEiA, 2013/14
Typy systemów baz danych
Proste typy danych

1960


1970

1980

1990



wady
Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjno-obiektowe
Strumieniowe
Temporalne
• 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, 2013/14
Typy systemów baz danych
Proste typy danych

1960


1970

1980

1990



Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjno-obiektowe
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, 2013/14
Typy systemów baz danych
Proste typy danych

1960


1970

1980

1990



zalety
Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjno-obiektowe
Strumieniowe
Temporalne
• łatwość zastosowania
modelu hierarchicznego
• dostęp do danych przez kilka
programów pisanych w
różnych językach
• obsługa przez wielu
użytkowników jednocześnie
• bardzo duża szybkość
działania
• systemy są nadal
wykorzystywane
Złożone typy danych
11
dr inż. Michał Michna
PG, WEiA, 2013/14
Typy systemów baz danych
Proste typy danych

1960


1970

1980

1990



wady
Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjno-obiektowe
Strumieniowe
Temporalne
• ś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, 2013/14
Typy systemów baz danych
Proste typy danych

1960


1970

1980

1990



Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjno-obiektowe
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, 2013/14
Typy systemów baz danych
Proste typy danych

1960


1970

1980

1990



Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjno-obiektowe
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, 2013/14
Typy systemów baz danych
Proste typy danych

1960


1970

1980

1990



Manifesty baz danych
Kartotekowe
Hierarchiczne
Sieciowe
Relacyjne
Obiektowe
Relacyjno-obiektowe
Strumieniowe
Temporalne
• 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
Złożone typy danych
15
dr inż. Michał Michna
PG, WEiA, 2013/14
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, 2013/14
Historia i rozwój baz danych

http://www.computerhistory.org/revolution/memorystorage/8/265/2207
IBM System/360
Model 30 computer
foto. Richards, Mark
17
dr inż. Michał Michna
PG, WEiA, 2013/14
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
18
dr inż. Michał Michna
PG, WEiA, 2013/14
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)
19
dr inż. Michał Michna
PG, WEiA, 2013/14
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
20
dr inż. Michał Michna
PG, WEiA, 2013/14
Architektura baz danych

Architektura
klient-serwer
dwuwarstwowa

Serwer bazy danych –
wykonujący np.
wyrażenia SQL

Klient – wysyłających
żądania do serwera
21
dr inż. Michał Michna
PG, WEiA, 2013/14
21
Architektura baz danych

Architektura trzywarstwowa

interfejs użytkownika

logika przetwarzania
zapytanie
Internet
odpowiedź

baza danych
Klient
Przeglądarka WWW
Serwer WWW
Apache
odpowiedź
podaj dane
Skrypt PHP
wykonaj
Dokument
HTML
Serwer baz danych
MySQL
22
dr inż. Michał Michna
PG, WEiA, 2013/14
22
Relacyjne bazy danych
Podstawy, model danych , przykłady
24
dr inż. Michał Michna
PG, WEiA, 2013/14
Relacyjne bazy danych

Relacje - podstawowa struktura danych przedstawiana w
postaci tabeli
atrybut (kolumna)
krotka
rekord
(wiersz)
25
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, 2013/14
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
26
Adam
Kowalski
P
dr inż. Michał Michna
PG, WEiA, 2013/14
Relacyjne bazy danych - kolumny
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
27
dr inż. Michał Michna
PG, WEiA, 2013/14
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
28
dr inż. Michał Michna
PG, WEiA, 2013/14
Relacyjne bazy danych - klucze
KlientID
Imię
Nazwisko
Adres
101
Joanna
Kowalska
Wierzbowa 25
103
Anna
Kowalska
Narcyzowa 1
104
Anna
Dąbrowska
Fiołkowa 11
Klienci
Klucz podstawowy
Zamowienia
29
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
dr inż. Michał Michna
PG, WEiA, 2013/14
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)
30
dr inż. Michał Michna
PG, WEiA, 2013/14
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
31
Zamowienia
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
dr inż. Michał Michna
PG, WEiA, 2013/14
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
KlientID
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
32
dr inż. Michał Michna
PG, WEiA, 2013/14
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
Imię
Nazwisko
Adres
101
Joanna
Kowalska
Wierzbowa 25
Zamowienia
33
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, 2013/14
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
KlientID
302
101
304
101
305
101
34
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, 2013/14
Język zapytań SQL
Podstawy, przykłady zastosowań
35
dr inż. Michał Michna
PG, WEiA, 2013/14
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)
36
dr inż. Michał Michna
PG, WEiA, 2013/14
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);
37
dr inż. Michał Michna
PG, WEiA, 2013/14
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;
38
dr inż. Michał Michna
PG, WEiA, 2013/14
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
39
dr inż. Michał Michna
PG, WEiA, 2013/14
Literatura


R. Gawron, P. Ostrowski, T. Baniak Microsoft Access - jako
narzędzie konstrukcji baz danych
http://web.pertus.com.pl/~stanley/access_pigulka/Spis_tre
sci.htm
Bazy danych (materiały dydaktyczne MIMUW na studia
informatyczne I stopnia)
http://wazniak.mimuw.edu.pl/index.php?title=Bazy_danych
40
dr inż. Michał Michna
PG, WEiA, 2013/14

Podobne dokumenty

Obiektowe - Politechnika Gdańska

Obiektowe - Politechnika Gdańska 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 MIMU...

Bardziej szczegółowo