bazy danych - WSL
Transkrypt
bazy danych - WSL
2016-10-27 2 PLAN WYKŁADU 1. Bazy danych – wprowadzenie 2. Relacyjne bazy danych 3. Projektowanie baz danych BAZY DANYCH BAZY DANYCH 3 4 LITERATURA BAZA DANYCH 1. Hernandez M.J., Projektowanie baz danych dla każdego. Przewodnik krok po kroku, Helion 2014 2. Moryk R. Podstawowy kurs systemów baz danych, Helion 2011 1. Ustawa z dnia 27 lipca 2001 r. o ochronie baz danych Zbiór danych lub jakichkolwiek materiałów i elementów zgromadzonych według określonej systematyki lub metody, indywidualnie dostępnych w jakikolwiek sposób, w tym środkami elektronicznymi, wymagający istotnego, co do jakości lub ilości, nakładu inwestycyjnego w celu sporządzenia, weryfikacji lub prezentacji jego zawartości. 2. PN-ISO/IEC 2382-1:1996 Zbiór danych zorganizowany zgodnie z pojęciową strukturą opisującą charakterystyki tych danych oraz związki między ich elementami, stosowany w jednym lub wielu zastosowaniach. 3. Definicja nieformalna Zbiór danych o określonej strukturze wewnętrznej utworzony w celu efektywnego wykorzystania dużej liczby danych. W węższym znaczeniu pojęcie obejmuje zbiory danych przetwarzanych elektronicznie BAZY DANYCH BAZY DANYCH 5 6 BAZA DANYCH MODELE BAZY DANYCH BAZY PROSTE 1. Pojęcie bazy danych pojawiło się w 1963 r. 2. Pierwsze systemy bazodanowe pojawiły się w latach 60. XX w. a) oparte na kartach perforowanych lub nośnikach taśmowych b) w konsekwencji: dostęp szeregowy do danych 3. Wczesne lata 70. XX w.– relacyjny model danych a) początkowo problemy techniczne z realizacją b) próbne wdrożenia – 1976 c) wdrożenia komercyjne – ok. 1980 (Oracle, DB2) d) wdrożenia na mikrokomputery – pierwsza połowa lat 80. XX w. (dBase) 1. Kartotekowe – jedna tabela danych 2. Hierarchiczne a) Struktura drzewiasta b) Przykład – struktura plików na dysku 3. Sieciowe (modyfikacja hierarchicznej) a) Struktura drzewiasta b) Dodatkowo jeden element może mieć więcej niż jednego „rodzica” BAZY DANYCH BAZY DANYCH 1 2016-10-27 7 BAZA HIERARCHICZNA A SIECIOWA A A1 A11 A12 A2 A13 8 MODELE BAZ DANYCH BAZY ZŁOŻONE A21 A3 A22 A31 1. Relacyjne a) dane grupowane w relacje (pojęcie z teorii mnogości); b) relacje można utożsamiać z tabelami c) na bazę danych składa się wiele tabel 2. Temporalne a) zazwyczaj wersja relacyjnych baz danych b) dane opatrzone „stemplem czasowym” określającym czas ważności danych c) umożliwiają automatyczne usuwanie danych 3. Inne a) obiektowe b) strumieniowe BAZY DANYCH BAZY DANYCH 9 BAZY DANYCH PODZIAŁ FUNKCJONALNY 1. Operacyjne – pozwalają na gromadzenie i modyfikowanie danych 2. Analityczne (hurtownie danych) – gromadzą dane z baz operacyjnych, nie pozwalają na modyfikacje danych BAZY DANYCH WYBRANE POJĘCIA BAZY DANYCH 11 12 SYSTEM ZARZĄDZANIA BAZĄ DANYCH (SZBD) PRZYKŁADOWE ZADANIA SZBD 1. Oprogramowanie służące do realizacji operacji na danych 2. Przykładowe operacje na danych a) dodawanie i usuwanie danych b) modyfikowanie danych c) wyszukiwanie danych d) prezentowanie danych e) przechowywanie danych f) przetwarzanie danych g) kodowanie danych 1. 2. 3. 4. 5. 6. 7. BAZY DANYCH Tworzenie nowych baz danych Wykonywanie operacji na danych Zapewnienie dostępu do danych za pomocą odpowiedniego języka zapytań Zapewnienie ochrony danych przed niepowołanym dostępem Zapewnianie integralności danych Przechowywanie zbiorów danych wraz z zapewnieniem im bezpieczeństwa Zapewnienie wielodostępu BAZY DANYCH 2 2016-10-27 13 14 POPULARNE SZBD ARCHITEKTURA KLIENT-SERWER 1. DB2 2. FireBird 3. FrontBase 4. Ingres 5. Kexi 6. Microsoft Access 7. MySQL Community Server 8. MySQL Enterprise Server 9. Oracle 10.PostgreSQL 11.Sybase 1. Serwer a) baza danych b) SZBD 2. Klient a) interfejs użytkownika b) oprogramowanie realizujące połączenie z serwerem 3. Cechy charakterystyczne a) Serwer – przetwarzanie danych – ochrona danych – udostępnianie danych b) Klient – przyjmowanie zleceń operatora – przekazywanie zleceń do serwera – przyjmowanie wyników z serwera BAZY DANYCH BAZY DANYCH 15 16 ZAPYTANIA (KWERENDY) 1. Zapytanie – operacja wyszukiwania lub przetwarzania danych 2. Rodzaje zapytań a) wybierające b) funkcjonalne 3. Popularne języki zapytań a) Structured Query Language (SQL) b) Query by Example (QBE) c) DATALOG RELACYJNE BAZY DANYCH BAZY DANYCH 17 1. 2. 3. 4. 5. 6. 7. 18 TABELE – PRZYKŁADY POZYTYWNE RELACYJNE BAZY DANYCH ZAŁOŻENIA Dane przechowywane są w dwuwymiarowych tabelach (relacjach) Każda tabela w bazie ma swoją własną niepowtarzalną nazwę Każda kolumna w tabeli ma swoją własną niepowtarzalną w obrębie tabeli nazwę Wartości w danej kolumnie tabeli są tego samego typu W tabeli nie istnieją dwa identyczne wiersze W tabeli przechowywane są dane proste (atomowe) Kolejność kolumn i kolejność wierszy nie mają znaczenia BAZY DANYCH Pracownicy Działy Imię Nazwisko Dział Dział Opis Telefon Jan Kowalski Pr Pr Produkcja 222333444 Jan Nowak Pr Ks Księgowość 222333555 Ewa Stasiak Ks Z Zarząd 222333222 Anna Biała Z BAZY DANYCH 3 2016-10-27 19 TABELE – PRZYKŁADY NEGATYWNE 20 TABELE – PRZYKŁADY NEGATYWNE Pracownicy Pracownicy Działy Imię Nazwisko Dział Dział Opis Telefon Imię Nazwisko Dział Języki Jan Kowalski Pr Pr Produkcja 222333444 Jan Kowalski Pr Angielski Jan Kowalski Pr 222333555 Księgowość Ks Jan Nowak Pr Ewa Stasiak Ks Zarząd Z 222333222 Angielski Niemiecki Anna Biała Z Ewa Stasiak Ks Angielski Anna Biała Z Angielski Niemiecki Duński BAZY DANYCH BAZY DANYCH 21 22 RELACYJNE BAZY DANYCH TERMINOLOGIA DOSTĘP DO DANYCH – KLUCZ 1. Tabela, relacja – logicznie wydzielony zbiór danych 2. Kolumna, atrybut, pole – fragment tabeli posiadający własną nazwę i zawierający dane jednego typu 3. Wiersz, rekord – zbiór danych o pojedynczym obiekcie Imię Nazwisko Dział Jan Kowalski Pr 1. Dane są dostępne przez wskazanie: a) Tabeli b) Kolumny c) Klucza, pozwalającego jednoznacznie zidentyfikować wiersz 2. Klucz – atrybut lub minimalny zestaw atrybutów jednoznacznie identyfikujący wiersz a) Klucz prosty – złożony z jednego atrybuty b) Klucz złożony – składa się z wielu atrybutów c) Klucz obcy – atrybut (lub zbiór atrybutów) występujący w tabeli będący kluczem w innej tabeli Jan Nowak Pr Pracownicy Ewa Stasiak Ks Imię Nazwisko Dział Dział Opis Telefon Anna Biała Z Jan Kowalski Pr Pr Produkcja 222333444 Jan Nowak Pr Ks Księgowość 222333555 Ewa Stasiak Ks Z Zarząd 222333555 Anna Biała Z Pracownicy BAZY DANYCH Działy BAZY DANYCH 23 PROSTA REALIZACJA KLUCZA 24 NORMALIZACJA BAZ DANYCH PIERWSZA POSTAĆ NORMALNA (1NF) Wszystkie dane w tabeli są danymi prostymi a) Przykład negatywny Pracownicy IDPrac Imię Nazwisko Dział 1 Jan Kowalski Pr Pracownicy 2 Jan Nowak Pr Imię Nazwisko Dział Języki 3 Ewa Stasiak Ks Jan Kowalski Pr Angielski 4 Anna Biała Z Anna Biała Z Angielski Niemiecki Duński b) Rozwiązanie – utworzenie odrębnej tabeli BAZY DANYCH Języki Imię Nazwisko Język Jan Kowalski Angielski Anna Biała Angielski AnnaBAZY DANYCH Biała Niemiecki Anna Duński Biała 4 2016-10-27 25 26 NORMALIZACJA BAZ DANYCH DRUGA POSTAĆ NORMALNA (2NF) NORMALIZACJA BAZ DANYCH TRZECIA POSTAĆ NORMALNA (3NF) Tabela jest w pierwszej postaci normalnej oraz dodatkowo wszystkie atrybuty są zależne od klucza głównego a) Przykład negatywny Tabela jest w trzecie postaci normalnej oraz dodatkowo wszystkie atrybuty są bezpośrednio (funkcjonalnie, merytorycznie) zależne od klucza głównego a) Przykład negatywny Oferta Wynagrodzenia Wydawnictwo Miejscowość Ulica Tytuł Cena Nazwisko Kategoria Stawka godzinowa ABC Poznań Biała 3 Excel 20 Kowalski 3 15 ABC Poznań Biała 3 Access 30 Nowak 3 15 BCA Poznań Czarna 7 Excel 25 Silska 4 18 BCA Poznań Czarna 7 Access 35 b) Rozwiązanie – utworzenie odrębnych tabel b) Rozwiązanie – utworzenie odrębnych tabe Pracownicy Oferta Wydawnictwa Kategorie Wydawnictwo Tytuł Cena Nazwisko Kategoria Kategoria ABC Excel 20 ABC Access 30 Kowalski 3 3 25 Nowak 3 4 35 Silska 4 Wydawnictwo Miejscowość Ulica ABC Poznań Biała 3 BCA Poznań Czarna 7 BCA BAZY DANYCH Excel BCA Access Stawka godzinowa 15 18 BAZY DANYCH 27 28 NORMALIZACJA BAZ DANYCH WARTOŚĆ NULL 1. Normalizacja baz danych a) zwiększa liczbę tabel w bazie b) redukuje lub likwiduje nadmiarowość (redundancję) danych c) ułatwia zachowanie integralności danych 2. Normalizacja zwyczajowo jest stosowana w operacyjnych bazach danych 3. Przeciwieństwem podejścia normalizacyjnego jest tzw. podejście wielowymiarowe stosowane czasami w hurtowniach danych (bazy analityczne) 1. Wartość „Null” (wartość „pusta”) – specyficzna wartość oznaczająca brak danych brak dostępu do danych, lub niecelowość podawania danych. Wartość taka może mieć charakter czasowy lub stały 2. Przykłady: a) Imię i nazwisko małżonka u osób samotnych b) Numer telefonu osoby, która tego numeru nie podała c) Pojemność skokowa silnika w przypadku samochodów elektrycznych 3. Wartość Null jest różna od 0, spacji czy pustego ciągu znaków BAZY DANYCH BAZY DANYCH 29 30 WIĘZY INTEGRALNOŚCI 1. Więzy integralności nałożone na pojedyncze atrybuty, tabele lub całą bazę danych służą do zapewnienia poprawności danych 2. Przykłady a) określenie dopuszczalnych wartości atrybutu – Płeć: K, M – Ilość zamówiona: >0 b) określenie dopuszczalnych wartości atrybutu względem innych atrybutów – Data dostawy: >Data zamówienia c) zablokowanie możliwości powtarzania się wartości wybranego atrybutu – PESEL PROJEKTOWANIE BAZ DANYCH BAZY DANYCH 5 2016-10-27 31 32 TERMINOLOGIA ETAPY PROJEKTOWANIA BAZ DANYCH 1. Tabele – zbiory danych 2. Zapytania (kwerendy) – służą do pozyskiwania i manipulowania danymi a) zapytania wybierające – pobierają dane z bazy danych b) zapytania funkcjonalne modyfikują bazy danych 3. Formularze – służą do wprowadzania danych, czasami do ich wyprowadzania w postaci wydruku 4. Raporty – służą do wyprowadzania danych 1. 2. 3. 4. 5. 6. 7. Projektowanie systemu Projektowanie raportów Projektowanie danych Projektowanie tabel i związków między tabelami Projektowanie kolumn (atrybutów) Projektowanie formularzy Projektowanie interfejsu (sterowania) BAZY DANYCH BAZY DANYCH 33 34 PROJEKTOWANIE SYSTEMU PROJEKTOWANIE SYSTEMU – PRZYKŁAD (I) 1. Projektowanie systemu to inaczej określenie zakresu projektu 2. Projektowanie systemu tworzy się na podstawie wywiadu z klientem (lub całej ich serii) 3. Z klientem należy określić (i spisać) wszystkie funkcjonalności tworzonego systemu (realizowane przez system zadania). 4. W przypadku większych projekt systemu może zawierać także etapowanie systemu 5. W wielu przypadkach warto także określić (i spisać) te funkcjonalności, których przyszły system nie będzie realizował. Wprowadzenie a) Firma X prowadzi działalność polegającą na wywozie odpadów niesegregowanych od osób fizycznych oraz odpadów segregowanych z pojemników ustawionych w miejscach publicznych, a także odpadów segregowanych od osób prawnych. b) Odpady niesegregowane odbierane są w workach foliowych i wywożone są na podstawie umów zawierających określenie daty wywozu w postaci np. „1 i 3 wtorek miesiąca. c) Odpady segregowane odbierane z miejsc publicznych gromadzone są w pojemnikach różnego typu. Obecnie są to pojemniki typu: 1100 i dzwon. pojemniki te mogą być przeznaczone na szkło, plastik lub makulaturę. d) Odpady segregowane odbierane od osób prawnych pakowane są w kontenery, pojemniki, worki BIG BAG. Odpady te muszą być różnicowane na karton/papier, tworzywa sztuczne – PET, tworzywa sztuczne – folia, tworzywa sztuczne – tworzywa plastikowe, szkło. BAZY DANYCH BAZY DANYCH 35 36 PROJEKTOWANIE SYSTEMU – PRZYKŁAD (II) PROJEKTOWANIE RAPORTÓW System powinien a) ewidencjonować umowy wywozu odpadów niesegregowanych wraz ze wskazaniem adresu i terminu wywozu odpadów b) tworzyć wydruki dla pracowników na poszczególne terminy wywozu odpadów zawierające adresy nieruchomości z których odpady mają być wywiezione c) tworzyć raporty dla gmin zawierające imię i nazwisko właściciela nieruchomości, adres i termin wywozu odpadów d) ewidencjonować pojemniki ustawiane w miejscach publicznych wraz ze wskazaniem typu pojemnika i rodzaju odpadów e) ewidencjonować firmy, z którymi zawarto umowy na wywóz odpadów segregowanych, wraz ze wskazaniem typu pojemnika i rodzaju System nie musi a) umożliwiać wystawiana faktur i prowadzenia rozrachunków z klientami b) ewidencjonować wszystkich kontaktów z klientami 1. Projektowanie raportów to projektowanie „wyjść” z aplikacji bazodanowej 2. Projektowanie raportów polega na: a) w wersji minimalnej – określeniu zawartości raportów (wydruków) b) w wersji maksymalnej – określeniu ich postaci graficznej 3. Przy tworzeniu raportów określa się: a) elementy stałe (tzw. etykiety) b) dane – elementy zmienne – pobierane z tabel (wartości poszczególnych pól) c) dane wyliczalne – elementy zmienne wyliczalne – wartości określane na podstawie innych wartości d) inne istotne informacje – np. sposób sortowania danych 4. Projektowanie raportów pomaga doprecyzować projekt ogólny, przez zadanie szeregu pytań klientowi 5. Projektowanie raportów pomaga określić zawartość tabel danych. BAZY DANYCH BAZY DANYCH 6 2016-10-27 37 38 PROJEKTOWANIE RAPORTÓW – PRZYKŁAD PROJEKTOWANIE DANYCH 1. Raport Faktura zawiera musi zawierać następujące elementy: a) dane nabywcy b) wskazanie towaru (np. nazwę towaru) c) ilość towaru d) cenę jednostkową netto – pobieraną z osobnej tabeli – cennika e) wartość netto (iloczyn ilości i ceny) f) stawkę VAT – pobieraną z tabeli zawierającej informacje o towarach g) wartość podatku VAT (iloczyn wartości netto i stawki VAT) h) wartość brutto (sumę wartości netto i wartości podatku VAT. 1. Projektowanie danych to kilka etapów a) zestawienie wszystkich danych, które występują na raportach wraz ze wskazaniem, na jakich raportach występują, oraz określeniem typu z punktu widzenia raportu (dane zapisane w tabelach i dane wyliczalne) b) ujednolicenie i zróżnicowanie ich nazw c) analiza danych pod względem ich wyliczalności i eliminacja danych wyliczalnych,; d) analiza danych pod względem ich powtarzalności i eliminacja danych powtarzalnych, e) przyporządkowanie danych do tabel, f) określenie sposobu łączenia danych z różnych tabel – wprowadzenie jednoznacznego identyfikatora rekordu w tabeli (klucza). BAZY DANYCH BAZY DANYCH 39 40 PROJEKTOWANIE TABEL I ZWIĄZKÓW MIĘDZY NIMI PROJEKTOWANIE KOLUMN (ATRYBUTÓW) 1. 2. 3. 4. 1. Projektowanie nazw – nazwa powinna określać funkcję jakie pole pełni 2. Projektowanie zawartości – określenie co dane pole będzie zawierać a) określenie typu danych (np. liczby, tekst) b) określenie rozmiaru danych (liczby całkowite, liczby z częścią dziesiętną, dopuszczalna długość tekstu) 3. Projektowanie reguł integralności, na przykład a) tylko liczby dodatnie b) tylko wartości unikatowe (PESEL) 4. Projektowanie masek wprowadzania, na przykład: a) tylko wielkie litery b) kod pocztowy z obowiązkowymi pięcioma cyframi z myślnikiem po drugiej cyfrze 5. Projektowanie reguł wprowadzania danych – określenie, które dane są obowiązkowe, czy dopuszczalna jest wartość „null” Przypisanie danych do tabel Określenie kluczy dla każdej tabeli Normalizacja bazy danych – optymalizowanie sposobu przechowywania danych Określenie związków między tabelami Pracownicy Działy Imię Nazwisko Dział Dział Opis Telefon Jan Kowalski Pr Pr Produkcja 222333444 Jan Nowak Pr Ks Księgowość 222333555 Ewa Stasiak Ks Z Zarząd 222333555 Anna Biała Z BAZY DANYCH BAZY DANYCH 41 42 PROJEKTOWANIE FORMULARZY PROJEKTOWANIE STEROWANIA (MENU) 1. Projektowanie formularzy to projektowanie „wejść” – ekranów pozwalających na wprowadzanie danych 2. Na formularzach występują a) elementy informacyjne – etykiety b) elementy służące do wprowadzania danych: – pola tekstowe – pozwalające wpisywać dane – pola kombi i pola listy – pozwalające wybierać dane ze zbioru danych dopuszczalnych – przyciski opcji – pola wyboru – przyciski akcji itp. c) elementy graficzne 1. Projektowanie sterowania polega na utworzeniu narzędzi do wywoływania formularzy i raportów. 2. Przy projektowaniu sterowania należy uwzględnić różne uprawnienia użytkowników, np a) użytkownik tylko z prawem dostępu b) użytkownik z prawem modyfikacji c) administrator 3. Uwzględnienie różnych uprawnień użytkowników może skutkować a) jednym interfejsem obsługi z blokowanymi niektórymi opcjami b) wieloma interfejsami obsługi BAZY DANYCH BAZY DANYCH 7