PLAN WYKŁADU 2 1. Bazy danych wprowadzenie 2. Relacyjne bazy danych 3. Projektowanie baz danych LITERATURA 3 BAZA DANYCH 4 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 BAZA DANYCH 5 MODELE BAZY PROSTE 6 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 1
BAZA HIERARCHICZNA A SIECIOWA 7 MODELE BAZ DANYCH BAZY ZŁOŻONE 8 A1 A11 A12 A13 A A2 A21 A22 A3 A31 1. Relacyjne a) Dane grupowane w relacje (pojęcie z teorii mnogości); b) Relacje można utożsamiać z tablicami 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. Obiektowe a) Dane przechowywane w strukturach obiektowych (klasach) b) Brak znanych rozwiązań komercyjnych 4. Strumieniowe a) Dane nadchodzą w postaci strumienia elementów b) Każda dana jest przeglądana i przetwarzana tylko raz PODZIAŁ FUNKCJONALNY 9 SYSTEM ZARZĄDZANIA BAZĄ DANYCH (SZBD) 10 1. Operacyjne pozwalają na gromadzenie i modyfikowanie danych 2. Analityczne (hurtownie danych) gromadzą dane z baz operacyjnych, nie pozwalają na modyfikacje danych 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 danych e) Przechowywanie danych f) Przetwarzanie danych g) Kodowanie danych PRZYKŁADOWE ZADANIA SZBD 11 POPULARNE SZBD 12 1. Tworzenie nowych baz danych 2. Wykonywanie operacji na danych 3. Zapewnienie dostępu do danych za pomocą odpowiedniego języka zapytań 4. Zapewnienie ochrony danych przed niepowołanym dostępem 5. Zapewnianie integralności danych 6. Przechowywanie zbiorów danych wraz z zapewnieniem im bezpieczeństwa 7. Zapewnienie wielodostępu 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 2
OSOBY ZWIĄZANE Z BAZAMI DANYCH 13 ARCHITEKTURA KLIENT-SERWER 14 1. Użytkownicy zwykli z prawem dostępu 2. Użytkownicy zwykli z prawem dostępu i modyfikacji 3. Analitycy badają dane, wykrywają zależności, 4. Administratorzy baz danych 5. Projektanci projektują bazę danych (tabele, formularze, raporty) 6. Programiści realizują projekt bazy danych z wykorzystaniem odpowiednich narzędzi programistycznych 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 ZAPYTANIA (KWERENDY) 15 16 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 RELACYJNE ZAŁOŻENIA 17 TABELE PRZYKŁADY POZYTYWNE 18 1. Dane przechowywane są w dwuwymiarowych tabelach (relacjach) 2. Każda tabela w bazie ma swoją własną niepowtarzalną nazwę 3. Każda kolumna w tabeli ma swoją własną niepowtarzalną w obrębie tabeli nazwę 4. Wartości w danej kolumnie tabeli są tego samego typu 5. W tabeli nie istnieją dwa identyczne wiersze 6. W tabeli przechowywane są dane proste (atomowe) 7. Kolejność kolumn i kolejność wierszy nie mają znaczenia Jan Nowak Pr Działy Dział Opis Telefon Pr Produkcja 222333444 Ks Księgowość 222333555 Z Zarząd 222333222 3
TABELE PRZYKŁADY NEGATYWNE 19 TABELE PRZYKŁADY NEGATYWNE 20 Działy Dział Opis Telefon Pr Produkcja 222333444 222333555 Księgowość Ks Zarząd Z 222333222 TABELE PRZYKŁADY NEGATYWNE 21 RELACYJNE TERMINOLOGIA 22 Języki Angielski Jan Nowak Pr Angielski Niemiecki Angielski Angielski Niemiecki Duński 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 Jan Nowak Pr DOSTĘP DO DANYCH KLUCZ 23 PROSTA REALIZACJA KLUCZA 24 1. Dane są dostępne przez wskazanie: a) Tabeli b) Kolumny c) Klucza 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 IDPrac 1 2 Jan Nowak Pr 3 4 Jan Nowak Pr Działy Dział Opis Telefon Pr Produkcja 222333444 Ks Księgowość 222333555 Z Zarząd 222333555 4
NORMALIZACJA BAZ DANYCH PIERWSZA POSTAĆ NORMALNA (1NF) 25 NORMALIZACJA BAZ DANYCH DRUGA POSTAĆ NORMALNA (2NF) 26 Wszystkie dane w tabeli są danymi prostymi a) Przykład negatywny Języki Angielski Angielski Niemiecki Duński b) Rozwiązanie utworzenie odrębnej tabeli Języki Imię Nazwisko Język Jan Kowalski Angielski Anna Biała Angielski Anna Biała Niemiecki Anna Biała Duński Tabela jest w pierwszej postaci normalnej oraz dodatkowo wszystkie atrybuty są zależne od klucza głównego a) Przykład negatywny Oferta Wydawnictwo Miejscowość Ulica Tytuł ABC Poznań Biała 3 Excel ABC Poznań Biała 3 Access BCA Poznań Czarna 7 Excel BCA Poznań Czarna 7 Access b) Rozwiązanie utworzenie odrębnej tabeli Wydawnictwa Wydawnictwo Miejscowość Ulica ABC Poznań Biała 3 BCA Poznań Czarna 7 NORMALIZACJA BAZ DANYCH TRZECIA POSTAĆ NORMALNA (3NF) 27 NORMALIZACJA BAZ DANYCH 28 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 Wynagrodzenia Nazwisko Kategoria zaszeregowania Stawka godzinowa Kowalski 3 15 Nowak 3 15 Silska 4 18 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 podejście wielowymiarowe stosowane czasami w hurtowniach danych (bazy analityczne) b) Rozwiązanie utworzenie odrębnej tabeli Kategorie Kategoria zaszeregowania Stawka godzinowa 3 15 4 18 WARTOŚĆ NULL 29 WIĘZY INTEGRALNOŚCI 30 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 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 5
31 TERMINOLOGIA 32 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 PROJEKTOWANIE BAZ DANYCH ETAPY PROJEKTOWANIA BAZ DANYCH 33 PROJEKTOWANIE SYSTEMU 34 1. Projektowanie systemu 2. Projektowanie raportów 3. Projektowanie danych 4. Projektowanie tabel i związków między tabelami 5. Projektowanie kolumn (atrybutów) 6. Projektowanie formularzy 7. Projektowanie interfejsu (sterowania) 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 (przyszłym użytkownikiem) należy określić (i spisać) wszystkie funkcjonalności (zadania) tworzonego systemu. 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ł. PROJEKTOWANIE SYSTEMU PRZYKŁAD (I) 35 PROJEKTOWANIE SYSTEMU PRZYKŁAD (II) 36 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. 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 6
PROJEKTOWANIE RAPORTÓW 37 PROJEKTOWANIE RAPORTÓW PRZYKŁAD 38 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 raportów 4. Projektowanie raportów pomaga doprecyzować projekt ogólny, przez zadanie szeregu pytań Klientowi 5. Projektowanie raportów pomaga określić zawartość tabel 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) 2. Które z tych elementów muszą zostać zapisane w tabeli zawierającej informacje o wystawionych fakturach? PROJEKTOWANIE DANYCH 39 PROJEKTOWANIE TABEL I ZWIĄZKÓW MIĘDZY NIMI 40 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 z punktu widzenia bazy danych,; d) analiza danych pod względem ich powtarzalności, e) przyporządkowanie danych do tabel, z uwzględnieniem dobrych obyczajów, f) określenie sposobu łączenia danych z różnych tabel wprowadzenie jednoznacznego identyfikatora rekordu w tabeli. 2. Projektowanie danych przykład 1. Przypisanie danych do tabel 2. Określenie kluczy dla każdej tabeli 3. Normalizacja bazy danych optymalizowanie sposobu przechowywania danych 4. Określenie związków między tabelami Jan Nowak Pr Działy Dział Opis Telefon Pr Produkcja 222333444 Ks Księgowość 222333555 Z Zarząd 222333555 PROJEKTOWANIE KOLUMN (ATRYBUTÓW) 41 PROJEKTOWANIE FORMULARZY 42 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 długości 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 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 pola kombi i pola listy przyciski opcji pola wyboru przyciski akcji itp. c) elementy graficzne 7
PROJEKTOWANIE STEROWANIA (MENU) 43 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 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 8