Bazy danych - Wydział Transportu PW

advertisement
Technologia informacyjna
Bazy danych
Dr inż. Andrzej Czerepicki
Politechnika Warszawska
Wydział Transportu
2016
Plan wykładu
• Wstęp do baz danych
• Modele baz danych
• Relacyjne bazy danych
• Język SQL
• Rodzaje baz danych
Definicja
Baza danych (BD) – uporządkowany zbiór
informacji przechowywany w postaci cyfrowej
Cechy:
• Trwałość – dane są przechowywane przez lata,
w pamięci zewnętrznej
• Wielkość – nie można przeglądać liniowo
• Złożoność – odzwierciedla złożone obiekty
świata rzeczywistego oraz ich powiązania
• Niezależność – od użytkownika oraz aplikacji
Elementy składowe bazy danych
• Dane – informacja przechowywana
• Sprzęt – zapewnia funkcjonowanie
(infrastruktura)
• Oprogramowanie = zapewnia dostęp do
danych, ich analizę, bezpieczeństwo,
etc.
Wymogi stawiane bazom danych
• Funkcjonowanie w różnych systemach
operacyjnych, na różnym sprzęcie
• Obsługa współczesnych protokołów
sieciowych
• Możliwość przechowania i efektywnego
przetwarzania różnorodnych danych
• Współpraca z narzędziami do
wizualizacji oraz analizy danych
Funkcjonalność systemu BD
• Operacje na danych zgodnie z przyjętym modelem
• Zapewnienie poprawności danych oraz ich
odporności na awarie (kopie zapasowe, transakcje,
ograniczenie)
• Zarządzanie wspólnym dostępem do bazy wielu
użytkowników
• Zabezpieczenie przed nieautoryzowanym
dostępem
• Optymalizacja pracy systemu
• Inne
System zarządzania bazą danych
• BD - jest pasywnym zbiorem danych
• SZBD – oprogramowanie realizujące
funkcje dostępu do bazy danych oraz
zapewniające bezpieczeństwo danych
• SZBD + BD = System baz danych
zarządzanie
SZBD
BD
Program
Pliki
System informatyczny bazodanowy
System informatyczny
Aplikacja
System bazy danych
Użytkownik
Aplikacja
Kli
System
zarządza
nia
Aplikacja
BD
Użytkownicy aplikacji baz danych
• Użytkownik końcowy aplikacji
• Administrator bazy danych
• Operator kopii zapasowych
• Programista aplikacji bazodanowej
• Analityk systemowy
• Administrator sieci lub serwera na którym
jest zainstalowana baza danych
• Etc.
Rozwój baz danych
• Lata 60. XX wieku – bazy danych plikowe
• Pierwsze komercyjne systemy (banki,
systemy sprzedaży biletów lotniczych,
ewidencja ludności, itp.)
• 1970 – relacyjny model danych
• 1971 – koncepcja sieciowych BD
• Lata 80. XX wieku – rozwój relacyjnych baz
danych
• Wiek XXI: intensywny rozwój baz danych
NoSQL (nie tylko relacyjne)
Modele baz danych
• Baza danych przechowuje informacje o obiektach
świata rzeczywistego
• Model bazy danych - sposób odwzorowania
obiektów świata rzeczywistego na struktury i
powiązania w BD
Student
Imię
Nazwisko
analiza
Model
(abstrakcja)
Grupa
Rok
Świat rzeczywisty
Grupa
Wykładowca
Hierarchiczny model danych
• Koncepcja kartoteki – hierarchia „przodek –
potomek” (struktura drzewa)
Rektorat
Administracja
Dziekani
Uczelnia
Wydział
Transportu
Edukacja
Przykład hierarchicznego
modelu danych uczelni
Wydział
Chemii
Studia
stacjonarne
Studia
niestacjonarne
Cechy hierarchicznego modelu
• dobrze odzwierciedla niektóre struktury
świata rzeczywistego (np. organizacje, system
plików itp.)
• szybkie wyszukiwanie „od góry w dół”
• jeden obiekt należy tylko do jednej kategorii
• Dobrze się nadaje do systemu plików ale co z
wykładowcą, który może prowadzić zajęcia na
kilku wydziałach ?!
• problemy z implementacją innych niż
„rodzic-potomek” zależności
• Np. powiązania pomiędzy przedmiotami na
uczelni
Sieciowy model danych
• Rozwinięcie hierarchicznego modelu o
pionowe powiązania pomiędzy elementami
Grupa
Wykładowca
Grupa
Uczelnia
Student
Grupa
Wykładowca
Student
Grupa
Obiektowy model danych
• Koncepcja programowania obiektowego
zastosowana w bazach danych
Obiekt
bazowy
Atrybuty
Powiązania
Obiekt
pochodny
Obiektowy model danych (c.d.)
• Klasa – szablon do tworzenia obiektów o identycznych
cechach oraz zachowaniu
• np. Student
• Obiekt – egzemplarz pewnej klasy
• Jan Kowalski : Student o konkretnych cechach
• Imię := Jan, Nazwisko := Kowalski, Numer Albumu := 12345
• Dziedziczenie cech klas
• Student jest klasą pochodną od klasy Osoba i ma cechy Imię
i Nazwisko
• Powiązania pomiędzy obiektami
• Student należy do Grupy
Obiektowy model danych (c.d.)
• Zaletą obiektowych baz danych jest
możliwość przechowania obiektów w bazie w
takiej postaci jak są one przetwarzane w
programie
• Wadą okazała się zbyt złożona realizacja
• Sukces odniosły „przejściówki” do
relacyjnych baz danych (systemy ORM – ang.
Object-Relational Mapping) pozwalające
pogodzić obiektowy kod programu z
relacyjną strukturą bazy danych
Grafowy model danych
Rodzaje wierzchołków
Rodzaje krawędzi
Grafowy model danych (c.d.)
• Nowoczesny model danych
• Zaletą jest szybkość wykonania operacji
wyszukiwania w grafie oraz brak ograniczeń
dot. struktury grafu – elastyczność tworzenia
nowych struktur danych bez konieczności
modyfikacji już istniejących
• Wadą jest dość wąski zakres zastosowania
ograniczony zadaniami rozwiązanie których
wykorzystuje grafy
Relacyjny model danych
• Najbardziej rozpowszechniony model danych
• Został zaproponowany w latach 70. XX wieku w
postaci modelu ściśle matematycznego
• Ówczesny rozwój techniki obliczeniowej nie
pozwalał na jego zrealizowanie w postaci
komputerowej
• Pojawienie się pierwszych realizacji relacyjnych
baz danych w latach 80. bardzo szybko
spowodowało wyparcie z rynku większości BD
implementujących inne modele danych
Elementy relacyjnego modelu
danych
• Tabele jako podstawowe jednostki
przechowywania danych
• Powiązania pomiędzy tabelami
• Operacje na tabelach
Tabele
• Dane w RBD są przechowywane w tabelach
• Każda tabela ma unikalną nazwę
• Tabela się składa z wierszy oraz kolumn
Studenci
Wykładowcy
Grupy
Przedmioty
Kolumny tabeli – cechy obiektów
• Tabela zawiera przynajmniej jedną kolumnę
• Każda kolumna ma własną nazwę
• Kolejność kolumn w tabeli nie ma znaczenia
• Liczba kolumn w tabeli nie jest ograniczona
• Każda kolumna zawiera dane jednego typu
(liczba, tekst, data, dane binarne, etc.)
Tabela STUDENT
NumerAlbumu
Imię
Nazwisko
NumerGrupy
12345
Jan
Nowak
T5
33333
Alicja
Kowalska
T5
87654
Marek
Kozłowski
T2
Wiersze tabeli - obiekty (rekordy)
• Rekordy tabeli przechowują dane dot.
obiektów
• Jeden rekord = 1 obiekt
• Kolejność rekordów w tabeli nie ma znaczenia
• Tabela może nie zawierać żadnych rekordów
• Liczba rekordów w tabeli nie jest ograniczona
Tabela STUDENT
NumerAlbumu
Imię
Nazwisko
NumerGrupy
12345
Jan
Nowak
T5
33333
Alicja
Kowalska
T5
87654
Marek
Kozłowski
T2
Klucz własny tabeli
• Tabela nie może zawierać dwóch
identycznych rekordów – powinny różnić się
wartością przynajmniej w jednej kolumnie
• Kolumna przechowująca wartości
jednoznacznie identyfikujące obiekt, nazywa
się kluczem własnym tabeli
Klucz obcy tabeli
• Klucz obcy – kolumna tabeli, wartości której
pochodzą z klucza własnego innej tabeli
• W tabeli STUDENT kolumna NumerGrupy
przechowuje wartości z kolumny Numer tabeli
GRUPA
• Wartości klucza obcego mogą się powtarzać
(wielu studentów należy do jednej grupy)
Powiązania tabel
• Relacje pomiędzy tabelami w RBD są
budowane za pomocą powiązań kluczy
własnych z kluczami obcymi
Kolumna Student.NumerGrupy może zawierać
tylko te wartości które występują w kolumnie
Grupa.NumerGrupy
Przykład struktury RBD
Student należy do grupy
Grupa należy do wydziału
Komunikacja z bazą danych
• System zarządzania bazą danych powinien
zapewniać:
•
•
•
•
•
Odczyt przechowywanych danych
Możliwość ich modyfikacji oraz usunięcia
Metody tworzenia i usuwania obiektów BD
Nadawanie uprawnień
Etc.
• Uniwersalnym standardem komunikacji z
bazą danych stał się język SQL
Język SQL
• SQL (ang. Structured Query Language) –
uniwersalny język zapytań RBD
• Język deklaratywny
• Użytkownik określa w zapytaniu co chce uzyskać
• Decyzja o tym jak uzyskać wynik należy do SZBD
• Należy do grupy strukturalnych języków
programowania
• Nie jest językiem kompletnym (brak operacji
wprowadzenia oraz wyprowadzenia danych)
• Język uniwersalny, stosowany w zdecydowanej
większości współczesnych RBD
Interakcja użytkownika z bazą
danych za pomocą SQL
System bazy danych
Polecenie SQL
SZBD
BD
Wynik w
postaci tabeli
Podstawowe polecenia języka SQL
INSERT
UPDATE
DELETE
SELECT
Wstawianie danych
Modyfikacja danych
Usuwanie danych
Wybieranie danych
Przykłady
INSERT INTO Student ( NumerAlbumu, Imie, Nazwisko, NumerGrupy)
VALUES ( '12345', 'Jan', 'Nowak', 'T6' )
UPDATE Student SET NumerGrupy = 'T5' WHERE Nazwisko = 'Nowak'
SELECT * FROM Student
Infrastruktura aplikacji bazodanowej
Aplikacja
Interfejs
wprowadzania
danych
SQL
Interfejs
prezentacji
danych
Raporty
Logika
aplikacji
SBD
Interfejs aplikacji bazodanowej
• Język SQL nie posiada wbudowanych mechanizmów
wprowadzania / wyświetlania danych
• Aplikacja może realizować interfejs użytkownika:
a) we własnym zakresie (aplikacje klient-serwer lub
aplikacje WWW)
b) wykorzystując narzędzia projektowania interfejsu
udostępniane przez BD (Oracle Forms, Access, etc.)
Logika aplikacji bazodanowej
• Polecenia SQL wbudowane w kod aplikacji
• Prosta metoda, ale przy każdej zmianie struktury BD
należy zmieniać kod programu
• Polecenia SQL osadzone na serwerze BD w postaci
gotowych procedur składowanych
• Większa wydajność oraz bezpieczeństwo systemu,
konieczność synchronizacji kodu aplikacji z BD
• Wykorzystanie bibliotek programowania
obiektowego, które nie wymagają stosowania SQL
bezpośrednio (ORM)
• Metoda b. popularna; aczkolwiek kod SQL generowany
automatycznie może nie być optymalnym
Raporty
• Większość współczesnych SBD posiadają
zaawansowane mechanizmy tworzenia raportów
(„kreatory”)
• Microsoft Reporting Services
• Oracle Reporting
•…
• Można również tworzyć raporty w kodzie aplikacji
Sterownik bazy danych
Aplikacja
Stacja robocza
Sterownik BD
SBD
Serwer bazy
danych
Sterownik bazy danych (c.d.)
• Sterownik BD – oprogramowanie
zapewniające komunikację aplikacji
bazodanowej z serwerem bazy danych
• Sterownik zależy od rodzaju bazy danych,
systemu operacyjnego oraz metody
wykorzystania bazy danych
• Większość SBD posiada sterowniki do
większości platform (systemów operacyjnych)
• JDBC – Java Database Connectivity
• Microsoft ADO (Active Data Objects)
• Etc.
Bazy danych przetwarzania
transakcyjnego OLTP
• ang. Online Transactional Processing
• Charakteryzują się dużą liczbą jednocześnie
wykonywanych transakcji
• Wiele równolegle działających użytkowników
• Operacje wstawiania, modyfikacji oraz
usuwania danych
• Operacje są stosunkowo proste oraz krótkie
• Domyślny tryb działania większości
współczesnych BD
Bazy danych przetwarzania
analitycznego OLAP
• ang. Online Analytical Processing
• Bazy danych zorientowane na przechowanie (bardzo)
dużych zbiorów danych (hurtownie)
• Przeznaczenie – pozyskiwanie informacji
zagregowanych, trendów oraz wniosków na bazie
zgromadzonych w bazie faktów
• Operacje wstawiania danych są rzadkie i są
wykonywane grupowo (np. raz na koniec miesiąca)
• Priorytetową operacją jest operacja wybierania
danych
Popularne współczesne relacyjne
systemy baz danych
Komercyjne
ORACLE
Microsoft SQL Server
IBM DB2
Sybase Enterprise Server
Informix (IBM)
Niekomercyjne
MySQL
Firebird
PostgreSQL
…
Baza danych MS Access
• Część pakietu MS Office Professional
• Relacyjny model danych
• Jednolity plik danych
• Wsparcie języka SQL
• Wbudowane kreatory interfejsu użytkownika oraz
raportów – kompletne narzędzie do tworzenia
końcowych produktów informatycznych
• Sterownik Microsoft Jet
• Możliwość dostępu do BD z programów
zewnętrznych
Download