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