Podstawowe informacje o bazach danych Technologie Informacyjne dr inż. Michna Michał, Politechnika Gdańska 2010/2011
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
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 3 http://www.ncddc.noaa.gov/technology/gis/view
Typy systemów baz danych BDAM, ISAM IBM -IMS 1960 Kartotekowe Hierarchiczne Proste typy danych CODASYL -IDMS Sieciowe Edgar F Codd RBD 1970 1980 1990 Relacyjne Obiektowe Relacyjno-obiektowe Strumieniowe Temporalne Złożone typy danych Manifesty baz danych 4
Bazy danych Zbiór danych opisujący pewien wybrany fragment rzeczywistości Dane w BD 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 5
Systemy baz danych 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) 6
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 7
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 8 8
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 9 9
Relacyjne bazy danych Podstawy, model danych, przykłady 10
Relacyjne bazy danych Relacje - podstawowa struktura danych przedstawiana w postaci tabeli krotka rekord (wiersz) atrybut (kolumna) PESEL Imię Nazwisko Wykształcenie 72030400264 Adam Kowalski Podstawowe 65083104569 Marcin Kowalski Średnie pole 71123108664 Marcin Dąbrowski Wyższe 85041406333 Anna Kowalska Podstawowe 46111006545 Anna Dąbrowska Wyższe wartość 11
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 Adam Kowalski P 12
Relacyjne bazy danych - kolumy Kolumny są unikalne PESEL 72030400264 65083104569 71123108664 85041406333 46111006545 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 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 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 podstawowy 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 15
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) 16
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 podstawowy Klucz obcy 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 17
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 Klienci KlientID Imię Nazwisko 101 Joanna Kowalska 103 Anna Kowalska 104 Anna Dąbrowska Adresy KlientID Ulica Miasto 101 Wierzbowa 25 Gdynia 103 Narcyzowa 1 Sopot 104 Fiołkowa 11 Gdynia 18
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 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 19
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 OpisZamowienia ZamID ProduktID 302 202 302 204 302 205 305 204 305 205 304 204 Produkty ProuktID Nazwa Cena jedn 202 Chleb 1,60 204 Mleko 1,80 205 Masło 3,50 20
Język zapytań SQL Podstawy, przykłady zastosowań 21
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) 22
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); 23
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; 24
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 25
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 26