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 Aplikacja Kli System zarządza nia 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 analiza Imię Nazwisko Grupa Rok Model (abstrakcja) Świat rzeczywisty Grupa Wykładowca
Hierarchiczny model danych Koncepcja kartoteki hierarchia przodek potomek (struktura drzewa) Rektorat Administracja Dziekani Uczelnia Przykład hierarchicznego modelu danych uczelni Edukacja Wydział Transportu 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 Uczelnia Wykładowca Wykładowca Grupa Grupa Grupa Grupa Student Student
Obiektowy model danych Koncepcja programowania obiektowego zastosowana w bazach danych Obiekt bazowy Atrybuty Obiekt pochodny Powiązania
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 Grupy Wykładowcy 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.) NumerAlbumu Imię Nazwisko NumerGrupy 12345 Jan Nowak T5 33333 Alicja Kowalska T5 87654 Marek Kozłowski T2 Tabela STUDENT
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 NumerAlbumu Imię Nazwisko NumerGrupy 12345 Jan Nowak T5 33333 Alicja Kowalska T5 87654 Marek Kozłowski T2 Tabela STUDENT
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 Polecenie SQL System bazy danych 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 Interfejs wprowadzania danych Interfejs prezentacji danych Aplikacja Logika aplikacji SQL SBD Raporty
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 Sterownik BD Stacja robocza 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