Wykład 9-10 (850kB pdf)
Transkrypt
Wykład 9-10 (850kB pdf)
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 dr inż. Michał Michna 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 Typy systemów baz danych BDAM, ISAM IBM -IMS 1960 CODASYL -IDMS Edgar F Codd RBD 1970 1980 1990 Kartotekowe Hierarchiczne Sieciowe Relacyjne Obiektowe Relacyjno-obiektowe Strumieniowe Temporalne Manifesty baz danych 4 dr inż. Michał Michna Proste typy danych Złożone typy danych 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 dr inż. Michał Michna 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 dr inż. Michał Michna 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 dr inż. Michał Michna 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 8 interfejs użytkownika logika przetwarzania baza danych dr inż. Michał Michna 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 dr inż. Michał Michna 9 Relacyjne bazy danych Podstawy, model danych , przykłady 10 dr inż. Michał Michna Relacyjne bazy danych Relacje - podstawowa struktura danych przedstawiana w postaci tabeli krotka rekord (wiersz) 11 atrybut (kolumna) 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 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 12 Adam Kowalski P dr inż. Michał Michna 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 13 dr inż. Michał Michna 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 dr inż. Michał Michna 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 15 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 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 dr inż. Michał Michna 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 17 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 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 101 Joanna Kowalska 101 Wierzbowa 25 Gdynia 103 Anna Kowalska 103 Narcyzowa 1 Sopot 104 Anna Dąbrowska 104 Fiołkowa 11 Gdynia 18 dr inż. Michał Michna Miasto 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 19 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 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 20 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 Język zapytań SQL Podstawy, przykłady zastosowań 21 dr inż. Michał Michna 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 dr inż. Michał Michna 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 dr inż. Michał Michna 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 dr inż. Michał Michna 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 dr inż. Michał Michna 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 dr inż. Michał Michna