BAZY DANYCH Informatyka i Technologia Informacyjna Suwałki - 2013
Przedmiot: Bazy danych Ćwiczenia: 16 godzin 25 maja 2013 r. sala 300 10:30-17:25 (8 godzin), 8 czerwca 2013 r. sala 300 10:30-17:25 (8 godzin) ZALICZENIE 2
Przedmiot: Bazy danych Literatura: ABC Access 2003 PL, Maciej Groszek, HELION Podstawowy wykład z systemów baz danych, Jeffrey Ullman, Jennifer Windom, WNT Bazy danych ECDL, Mirosława Kopertowska, MIKOM ECDL. Bazy Danych. Moduł 5, Mirosława Kopertowska- Tomczak, PWN Systemy baz danych. Kompletny podręcznik, Hector Garcia- Molina, Jeffrey D. Ullman, Jennifer Widom, HELION Bazy danych. Pierwsze starcie, Adam Pelikant, HELION 3
Kontakt Telefon: 504 495 217 E-mail: gabriel.rogowski@gmail.com Internet: www.omne.pl/bd.html 4
Pytania od Państwa 5
PRZECHOWYWANIE INFORMACJI
Przechowywanie informacji Informacje na ogół trzeba zapamiętać. W zależności od ilości i rodzajów informacji sposoby zapamiętywania będą się różnić. 7
Przechowywanie informacji Jak dużo informacji chcemy przechować? CZY? 8
Przechowywanie informacji Jak szybko możemy zapisać informacje? Czy mamy tyle czasu? A może ważna jest trwałość? 9
Przechowywanie informacji Jak szybko odczytać informacje? Na takiej żółtej karteczce był numer telefonu szefa 10
Przechowywanie informacji Nawet w ujęciu systemów komputerowych problem przechowywania informacji jest bardzo złożony i szeroki! Pamięci fizyczne: wewnętrzne, zewnętrzne, systemy plików Struktury danych Systemy baz danych 11
Przechowywanie informacji Jednym z najważniejszych zadań stawianych przed systemami informatyki jest przechowywanie i szybkie wyszukiwanie informacji (zapisanych w formie cyfr.). Tradycyjnie rolę tę pełniły biblioteki. Ocenia się, że Biblioteka Kongresu Narodowego w USA zawiera około 25 Terabajtów informacji. Tylko część tych informacji (około 5%) dostępna jest w formie cyfrowej. 12
Przechowywanie informacji Zapisanie niewielkiej ilości informacji nie wymaga specjalistycznych systemów. Wystarczy edytor tekstów, aby utworzyć spis adresów, telefonów itp. Edytory pozwalają na proste operacja na zapisanych danych: sortowanie wierszy wg alfabetu, wyszukiwanie prostych fraz itp. 13
Przechowywanie informacji Wraz ze wzrostem ilości informacji rośnie także ich złożoność obliczeniowa. Informacje są często ze sobą w różny sposób powiązane. Często uzyskanie efektu, w postaci na przykład raportu wymaga bardzo wielu operacji i wielokrotnego przetwarzania zgromadzonych danych. 14
HISTORIA DANYCH I BAZY DANYCH
Historia zarządzania danymi 4000 p.n.e 1900 n.e. ręczne zarządzanie zapisami pierwszy zapis majątek królewski i podatki na Sumatrze 1900 1955 zarządzanie zapisami na kartach perforowanych Maszyna Hollerith a 1955 1970 programowane zarządzanie zapisami taśma magnetyczna (1950) 10 000 kart perforowanych praca wsadowa na plikach i rekordach 1965 1970 sieciowe zarządzanie danymi on-line przetwarzanie bieżących transakcji zastosowanie bębnów i dysków magnetycznych pliki indeksowane 16
Historia zarządzania danymi 1980 1995 relacyjne zarządzanie danymi 1970 model Codd a powszechne SZBD na komputery PC najczęściej stosowany model architektura klient-serwer 1995 obiektowe bazy danych dane aktywne oparte o mechanizmy dziedziczenia dane różnych typów, np.: głos, obraz, itp. 17
Historia baz danych 1951 - Firma Univac wprowadziła taśmę magnetyczną do przechowywania danych (oprócz dotychczasowych dziurkowanych kart). 1956 - Firma IBM wprowadziła stacje twardych dysków magnetycznych do przechowywania danych. 1961 Integrated Data Store IDS (Charles Bachman, General Electric) - pierwszy SZBD, początek sieciowego modelu danych. 1965-70 Information Management System IMS (IBM) hierarchiczny model danych. 18
Historia baz danych 1970 Edgar Codd (1924-2003), IBM relacyjny model danych. 1971 CODASYL, standard sieciowego modelu danych. 1973 - pierwszy system zarządzania relacyjną bazą danych (System R w firmie IBM). 1976 Peter Chen model związków encji (ERD, ERM), brak standardu do tej pory. 1979 - firma Relational Software (później Oracle) wprowadziła na rynek pierwszą komercyjną wersję systemu zarządzania relacyjną bazą danych. 19
Historia baz danych 1987 pierwszy standard języka SQL (ISO), kolejne wersje standardu ANSI/ISO: 1989, 1992 SQL2, 1999 SQL:1999 model obiektowo-relacyjny. Lata osiemdziesiąte badania nad dedukcyjnymi i obiektowymi bazami danych. 1997 Standard obiektowych baz danych ODMG 2.0. 20
Historia baz danych Lata dziewięćdziesiąte do dzisiaj rozszerzenie baz danych o nowe aspekty: architektury wielowarstwowe, rozproszenie, integrację, równoległość, Internet, hurtownie danych, OLAP, multimedia, bazy dokumentów w tym XML, GIS (Geographical Information Systems), ERP (Enterprise Resource Planning) oraz MRP (Management Resource Planning) - pakiety takie jak SAP, Baan, Oracle, PeopleSoft, Siebel, CRM (Customer Relationship Management). 21
Dowcip Chuck Norris nie umrze. On kopnie w kalendarz z półobrotu! 22
WPROWADZENIE DO BAZ DANYCH Podstawowe informacje
Pojęcie danych i bazy danych Podstawowa terminologia informatyczna w języku polskim zdefiniowana jest w normie PN-ISO/IEC 2382-1:1996. Zgodnie z powyższą normą obowiązują m.in. następujące definicje: Informacja Wiedza dotycząca obiektów, takich jak fakty, zdarzenia, przedmioty, procesy lub idee, zawierająca koncepcje, która w określonym kontekście ma określone znaczenie. Dane Reprezentacja informacji mająca interpretację właściwą do komunikowania się, interpretacji lub przetwarzania. Przetwarzanie danych - Uporządkowane wykonywanie operacji na danych. Terminu przetwarzanie danych nie należy używać jako synonimu przetwarzania informacji, które jest pojęciem o szerszym znaczeniu i może obejmować również operacje takie jak przesyłanie danych i automatyzację prac biurowych 24
Pojęcie danych i bazy danych Baza danych 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. Zarządzanie danymi Funkcje zapewniające dostęp do danych, wykonujące lub kontrolujące czynność zapamiętywania danych oraz sterujące operacjami wejścia-wyjścia w systemie przetwarzania danych. 25
Baza danych, czyli Pojęcie baza danych rozumiemy potocznie jako system złożony z trzech elementów: właściwej bazy danych zbioru danych, np. pliki na dysku, systemu (oprogramowania) zarządzającego bazą danych, interfejsu użytkownika, umożliwiającego dostęp do danych. 26
Baza danych, czyli Podstawowe operacje na danych obejmują: wprowadzanie danych, wyprowadzanie danych, zapamiętywanie i przechowywanie danych, wyszukiwanie i prezentację danych, dodawanie i usuwanie danych, aktualizację danych, przetwarzanie arytmetyczne, statystyczne, algebraiczne i logiczne, operacje teoriomnogościowe i operacje algebry relacji, kodowanie i dekodowanie danych. 27
Baza danych, czyli Każda baza danych posiada: swoje źródło danych, swoich użytkowników, związki z reprezentowaną rzeczywistością. Projektanci baz danych definiują strukturę baz danych i przygotowują programy - aplikacje BD. Baza danych musi być wypełniona danymi, a następnie przetworzona. 28
Baza danych cechy baza danych reprezentuje wybrany fragment rzeczywistości, zwany miniświatem (ang. miniworld, universe of discourse), zmiany w miniświecie są odzwierciedlane w bazie danych, baza danych to logicznie spójna kolekcja danych, baza danych jest projektowana, budowana i wypełniana danymi w konkretnym celu; posiada docelową grupę użytkowników i zbiór aplikacji użytkowych. 29
Celowość budowy baz danych Centralizacja: Skupienie danych w jednym systemie bazy danych (umożliwia pełny dostęp do wszystkich danych). Selektywny dostęp: Zapewnienie łatwości wyszukiwania i dostępu. Jednokrotna reprezentacja: Zmniejszenie redundancji (nadmiarowości), unikanie powtórzeń. Zachowanie spójności: ułatwienie zapewnienia spójności (wewnętrznej i zewnętrznej) dzięki odpowiedniej strukturze i narzędziom oraz metodologii projektowania. Standaryzacja: Zapewnienie jednolitego formatu danych, ułatwienie wymiany i dostępu. 30
Celowość budowy baz danych Wielodostęp: Umożliwienie użytkowania tych samych danych przez wielu użytkowników. Perspektywy: Umożliwienie użytkownikom korzystania z danych w dogodnej dla nich postaci. Dostęp równoległy: Umożliwienie jednoczesnego operowania na tych samych danych, zapewnienie synchronizacji, blokowania dostępu, poprawnej realizacji operacji. Niezależność danych: Niezależność fizyczna (od sposobu przechowywania i dostępu) oraz logiczna (od aplikacji). Optymalizacja: Optymalizacja zajętości pamięci i dostępu, optymalizacja przetwarzania (efektywność, wygoda). 31
Baza danych - funkcje Funkcje zależne od użytkownika: tworzenie baz danych i tabel dodawanie i usuwanie danych wyszukiwanie danych ( zapytania, kwerendy) czynności administracyjne Funkcje zależne od oprogramowania: zarządzanie fizycznymi zbiorami danych wykonywanie poleceń użytkownika prezentacja wyników operacji 32
Użytkownicy baz danych Rodzaje, uprawnienia i zadania użytkowników: użytkownicy zwykli z prawem odczytu danych: użytkownicy ci mają prawo do wyszukiwania i odczytu informacji; dostęp może być warunkowany poziomem uprawnień, użytkownicy zwykli z prawem odczytu i modyfikacji danych: użytkownicy ci mają prawo odczytu i modyfikacji danych (kasowania, modyfikacji, wprowadzania); dostęp może być warunkowany poziomem uprawnień, administratorzy baz danych: zarządzają dostępem do baz danych i przydzielają uprawnienia użytkownikom zwykłym; dbają o ochronę dostępu i bezpieczeństwo (replikacja danych), zarządzają konfiguracją systemu (logiczną, fizyczną), 33
Użytkownicy baz danych Rodzaje, uprawnienia i zadania użytkowników: projektanci baz danych: projektują schemat bazy danych (tabele, zapytania, relacje, formularze, raporty), definiują perspektywy użytkowników, określają strukturę aplikacji, interfejsy użytkowników, optymalizują dostęp, utrzymują system, analitycy (baz) danych: badają własności danych i wyznaczają charakterystyki danych, wykrywają zależności i cechy jakościowe, realizują wspomaganie decyzji, inżynierowie wiedzy: wydobywają wiedzę z danych (data mining, knowledge discovery, rule induction), kierownicy, managerowie, dyrektorzy: to co chcą, chociaż nie zawsze wiedzą czego chcą i co jest możliwe do realizacji. 34
Aktorzy na scenie administrator bazy danych (ang. DBA - database administrator): administrowanie zasobami systemu, autoryzacja dostępu, monitorowanie stanu systemu, aktualizacja sprzętu i oprogramowania projektant bazy danych (ang. database designer): wybór struktury i typów danych dla elementów danych, projektowanie powiązań między danymi, integracja perspektyw użytkowników końcowych użytkownik końcowy: użytkownik dorywczy: zapytania ad hoc, język zapytań użytkownik naiwny: standardowe operacje, gotowe aplikacje użytkownik zaawansowany: zaawansowane mechanizmy BD użytkownik samodzielny: jednoosobowe aplikacje, gotowe pakiety analityk systemowy i programista: opracowanie wymagań użytkowników końcowych, implementacja i testowanie programów 35
Pracownicy za sceną projektanci i programiści SZBD: projektowanie i implementacja systemu zarządzania bazą danych, tworzenie modułów przetwarzania zapytań, interfejsów programistycznych, struktur dostępu, itp. twórcy narzędzi: budowa opcjonalnych pakietów programów narzędziowych do projektowania baz danych, odtwarzania, budowania kopii zapasowych, narzędzi do importowania i eksportowania danych, graficznych interfejsów użytkownika, narzędzi do monitorowania i strojenia bazy danych administratorzy: strojenie i pielęgnacja środowiska w którym działa system baz danych, w szczególności administratorzy systemów operacyjnych i administratorzy sieci komputerowych 36
Pojemność współczesnych baz danych Dysk twardy o pojemności 1 TB kosztuje około 350 zł Przyjmując, że 1 strona maszynopisu zajmuje 2KB uzyskamy, że 1 TB = 500 milionów stron maszynopisu Zakup sprzętu do przechowywania ogromnych ilości danych nie stanowi obecnie większego problemu, znacznie większym problemem jest pozyskanie danych i ich wprowadzenie do systemu 37
Hurtownie danych Hurtownie danych są współczesnymi systemami baz danych realizującymi potrzeby związane ze wspomaganiem decyzji Hurtownie danych przechowują bardzo duże ilości danych rzędu terabajtów Dane najczęściej są przenoszone z wielu różnych systemów użytkowych Główne obszary zastosowań Przetwarzanie analityczne (OLAP) obejmujące dynamiczną syntezę, analizę i agregację dużych ilości wielowymiarowych danych Eksploracja danych 38
Integralność bazy danych W języku angielskim słowo integrity tłumaczone jako integralność, oznacza w odniesieniu do osoby, że można zaufać temu, co dana osoba mówi, i że można oczekiwać zgodności między tym, co dana osoba mówi, że zrobiła, a tym, co dana osoba naprawdę zrobiła Integralność bazy danych oznacza, że baza danych jest wiernym odbiciem swojego obszaru analizy Integralność bazy danych oznacza także, że baza danych jest poprawnie zorganizowana wewnętrznie nie zawiera powtórzeń danych, nie zawiera niejednoznacznych lub sprzecznych danych (baza danych jest wewnętrznie logicznie spójna) 39
Budowa bazy danych Zbiór danych zapisany na twardym dysku Klienci System zarządzania bazą danych SZBD (DBMS) 40
Korzyści ze stosowania baz danych Wszystkie dane są dostępne w sieci z dowolnego komputera Każda informacja zapisywana jest jeden raz, aktualizacja jest też jednorazowa Dane są zawsze aktualne Dokumenty zawierające odwołania do bazy danych zawierają zawsze aktualne dane Prosta i efektywna eksploracja oraz analiza danych Możliwość tworzenia bardzo dużych zbiorów danych Możliwość publikacji aktualnych danych na stronach WWW Możliwość dostępu do danych w sieci Internet poprzez przeglądarki (wyszukiwanie, wprowadzanie, aktualizacja, usuwanie) 41
Rekrutacja elektroniczna Bez bazy danych Kandydaci składają wyłącznie dokumenty na papierze Członkowie komisji wpisują dane kandydatów do arkuszy kalkulacyjnych Pracochłonny proces formowania listy przyjętych kandydatów Trudności z pisemnym poinformowanie kandydatów o wynikach kwalifikacji i publikacją wyników na stronach WWW Pracochłonny proces tworzenia dokumentów komisji rekrutacyjnej Po wprowadzeniu bazy danych Kandydaci sami wprowadzają swoje dane do systemu przez przeglądarki internetowe (w domu lub w szkole) Wszystkie dokumenty drukowane na podstawie wprowadzonych danych Natychmiastowy proces formowania listy przyjętych kandydatów Kandydaci mogą w każdej chwili zapoznać się ze swoimi danymi i wynikami rekrutacji Wszystkie dokumenty są łatwo drukowane na podstawie zgromadzonych danych 42
Bazy danych kiedy mówimy NIE Wykorzystanie systemu baz danych pociąga za sobą istotny narzut, którego koszty mogą przekroczyć oczekiwane zyski z inwestycji. Narzut jest spowodowany: dużym kosztem początkowym inwestycji w sprzęt, oprogramowanie i szkolenie użytkowników, ogólnym charakterem SZBD, zapewnianiem współbieżności, autoryzacji i uwierzytelniania, przetwarzania transakcyjnego, wymuszania ograniczeń integralnościowych, odtwarzania po awarii. Bazy danych nie wykorzystujemy gdy: baza danych i aplikacje są proste, dobrze zdefiniowane, nie podlegające ewolucji w czasie, występuje wymaganie przetwarzania w czasie rzeczywistym, wielodostęp nie jest wymagany. 43
Dowcip Przeciętni ludzie żują gumę do żucia Chuck Norris żuje krążki hokejowe! 44
RODZAJE BAZ DANYCH TYPY, MODELE
Baza danych typy Najczęściej spotykane typy baz danych: Prosta baza danych o pojedynczej tabeli (np. Excel, własne programy) Jednostanowiskowa baza biurowa (np. MS Access) Baza typu klient-serwer dostęp z wielu stanowisk (np. Oracle) Internetowa baza danych dostęp z dowolnego komputera podłączonego do Internetu (np. MySQL) Baza rozproszona - istniejąca fizycznie na dwóch lub większej liczbie komputerów, traktowana jednak jak jedna logiczna całość 46
Struktura bazy danych Dane są najczęściej uporządkowane w formie tabel. Tabela (table) dwuwymiarowa struktura przechowująca dane dotyczące określonego tematu kolumny atrybuty (pola), określony typ danych wiersze rekordy Nazwa pola Nazwa pola Nazwa pola Nazwa pola Rekord Pole 47
Baza danych typy Baza typu płaskiego (flat file) wszystkie dane umieszczone są w pojedynczej tabeli. Dane są umieszczane w rekordach o określonej strukturze, z polami o z góry określonej długości i typie Każdy rekord ma tą samą długość Rekordy nie muszą być posortowane Trudne wyszukiwanie (aby odszukać rekord trzeba przeszukać cały plik) oraz redundancja Nazwisko Imię Kod Miasto Telefon płeć Tytuł Data wypożycz Data zwrotu KWIATEK EWA 20-081 Lublin 2002-44-22 k Quo vadis 2004-09-02 2004-09-10 POLAK BARBARA 21-091 Lublin 445-78-97 k 101 dalmatyńczyków 2004-09-03 2004-09-23 POLAK BARBARA 21-091 Lublin 445-78-97 k Quo vadis 2004-10-12 2005-01-10 48
Baza danych typy Ze względu na sposób zarządzania bazy danych można podzielić na dwa rodzaje: operacyjne bazy danych, analityczne bazy danych. 49
Baza danych typy Operacyjne bazy danych to bazy danych, które znajdują zastosowanie w wielu instytucjach, np. w bankach, urzędach, bibliotekach, szkołach itp. ten typ bazy przechowuje dane dynamiczne, czyli takie, które ulegają ciągłym zmianom i aktualizacjom, a są wykorzystywane tam, gdzie zachodzi potrzeba gromadzenia, przechowywania i modyfikowania danych. zawierają dane operacyjne potrzebne do bieżącej działalności np. rezerwacji biletów muszą zapewnić prawidłowe przetwarzanie transakcji OLTP (On-line Transaction Processing) 50
Baza danych typy Analityczne bazy danych przechowują dane statyczne, czyli takie, które nie ulegają zmianom i zawsze odzwierciedlają stan obiektów z pewnego ustalonego momentu. Można powiedzieć, że bazy te przechowują dane historyczne i informacje związane z pewnymi wydarzeniami muszą umożliwić prawidłową analizę danych OLAP (On-line Analytical Processing) 51
Baza danych typy Analityczne bazy danych magazyny danych służące do wyszukiwania informacji wspomagających podejmowanie decyzji, np., które połączenia lotnicze zamknąć, a które otworzyć bazy analityczne przydatne są zarówno do spraw naukowych (tablice chemiczne, próbki geologiczne, dane pomiarowe) jak również w problemach ekonomicznych (wyniki giełdowe z określonego okresu, wskaźniki danych statystycznych, itp.) 52
Baza danych modele Wyróżniamy kilka modeli baz danych: systemy plików, model hierarchiczny, model sieciowy, model relacyjny, model obiektowy, model dedukcyjny, model dynamiczny, model temporalny, model reaktywny. 53
Baza danych model hierarchiczny Model hierarchiczny (HMBD) jest najstarszym modelem bazy danych. W tym modelu dane przedstawione graficznie przybierają strukturę odwróconego drzewa, w którym jedna z tabel pełni role korzenia a cała reszta ma postać gałęzi. 54
Baza danych model hierarchiczny Najważniejszymi elementami w każdej bazie danych są relacje, czyli powiązania pomiędzy kolejnymi tabelami. W hierarchicznym modelu bazy danych relacje występują w strukturze ojciec/syn. Co oznacza, że tabela-ojciec może być powiązana z wieloma tabelami-synami, lecz kolejne tabelesynowie nie mogą przynależeć jednocześnie do kilku nadrzędnych tabel-ojców. Aby uzyskać dane w modelu hierarchicznym bazy danych użytkownik musi przedrzeć się począwszy od samej tabelikorzenia poprzez wszystkie gałęzie do interesującego miejsca, co oznacza, że użytkownik musi bardzo dobrze znać strukturę bazy danych. 55
Model hierarchiczny zalety i wady Zalety Wady ł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. ś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 (np. typu wiele-do-wielu). 56
Baza danych model sieciowy Model sieciowy (SMDB) powstał po to aby rozwiązać problemy modelu hierarchicznego. Jego struktura wizualnie przedstawia odwrócone drzewo. Różnica pomiędzy HMBD a SMBD polega na tym, że w modelu sieciowym drzewa mogą dzielić ze sobą gałęzie, a każde drzewo stanowi część ogólnej struktury bazy danych. 57
Baza danych model sieciowy Sieciowy model logiczny definiuje relacje za pomocą kolekcji. Kolekcja jest to struktura, dzięki której można połączyć dwie tabele nadając jednej z nich rolę właściciela a drugiej rolę członka. Kolekcje umożliwiają wprowadzenie relacji jeden-do-wielu, co znaczy, że rekord z tabeli właściciel może być powiązany z wieloma rekordami z tabeli-członka, lecz rekord z tabeliczłonka może być powiązany tylko z jednym rekordem z tabeliwłaściciel. Podobnie jak w przypadku HMBD, każdy rekord w tabeli podrzędnej (tabeli-członka) SMBD musi być powiązany z istniejącym rekordem w tabeli-właścicielu, np. każdy klient musi być podporządkowany określonemu pośrednikowi, lecz pośrednik może nie posiadać żadnych klientów.. 58
Model sieciowy zalety i wady Zalety szybkość odczytu danych, możliwość tworzenia złożonych zapytań, przeszukiwanie możemy zacząć od dowolnej tabeli a następnie poruszać się w górę lub w dół po tabelach z nią powiązanych. Wady należy mieć bardzo dobre wyobrażenie na temat struktury, aby móc szybko i sprawnie poruszać się po bazie danych i uzyskać interesujące nas informacje, niemożność zmiany struktury bazy danych bez ponownego tworzenia obsługujących ja programów. 59
Baza danych model relacyjny Model relacyjny (RMDB) obecnie najczęściej stosowany model logiczny. 60
Baza danych model relacyjny Ważnym przełomem dla obsługi dużych ilości informacji była opublikowana w 1970r. praca E. F. Codd'a p.t. "Relacyjny model logiczny dla dużych banków danych". Autor zauważa w niej, że zastosowanie struktur i procesów matematycznych w zarządzaniu danymi rozwiązuje wiele problemów trapiących poprzednie wersje. Model ten (RMBD) oparty jest na dwóch gałęziach matematyki teorii mnogości i rachunku predykatów pierwszego rzędu. 61
Postulaty Codd a Postulat informacyjny Postulat dostępu Postulat wartości NULL Postulat słownika danych Postulat pełnego języka danych Postulat modyfikowania bazy danych przez perspektywy Postulat modyfikowania danych Fizyczna niezależność danych Logiczna niezależność danych Niezależność więzów spójności Niezależność dystrybucyjna Zabezpieczanie przed operacjami na niższych poziomach abstrakcji 62
Model relacyjny zalety oparcie na solidnych podstawach teoretycznych, zainteresowanie świata nauki oraz biznesu, stabilna pozycja na rynku, optymalizacja zapytań, niezależność od języka programowania, możliwość zarządzania wielką ilością danych, możliwość stosowania złożonych kryteriów wyszukiwania, dobre mechanizmy kontroli dostępu. 63
Model relacyjny wady ograniczona podatność na zmiany, brak środków hermetyzacji i modularyzacji, mało naturalna reprezentacja danych, brak środków do przechowywania informacji proceduralnych, brak złożonych obiektów (z góry ustalony konstruktor), trudność w odwzorowaniu złożonych relacji, niezgodność modelu pojęciowego z implementacyjnym, niezgodność z modelem języków ogólnego przenaczenia. 64
Anatomia relacyjnych baz danych Tabele Pola Rekordy Klucze Perspektywy Relacje: jeden-do-jednego jeden-do-wielu wiele-do-wielu 65
Anatomia RBD pola najmniejsza struktura bazy danych dane mogą być odczytywane i zapisywane jakość informacji zależy od ilości czasu poświęconego na wprowadzenie integralności strukturalnej i integralności danych pole powinno zawierać tylko jedną wartość nazwa pola adekwatna do zawartości 66
Anatomia RBD rekordy 67
Anatomia RBD klucze pola specjalne pełniące szczególne funkcje w tabelach tabele mogą zawierać kilka rodzajów kluczy dwa najważniejsze rodzaje kluczy: klucz główny klucz obcy 68
Anatomia RBD klucze Zaleta systemu obsługi relacyjnych baz danych polega na zdolności do szybkiego wyszukiwania i kojarzenia informacji przechowywanych w odrębnych tabelach. Realizacja tego celu wymaga obecności w tabeli pola lub ich zestawu jednoznacznie identyfikującego każdy rekord zapisany w tabeli. Pole to lub ich zestaw nosi nazwę klucza głównego (podstawowego) tabeli (primary key). Po zdefiniowaniu w tabeli klucza podstawowego, nie będzie można w jego pole wprowadzić wartości już istniejącej w tabeli ani wartości Null (pustej). 69
Anatomia RBD klucze Najważniejsze typy klucza podstawowego: klucze podstawowe jednopolowe klucze podstawowe wielopolowe gdy żadne z pól nie gwarantuje, że wartości w nim zawartych będą unikatowe klucze typu autonumeracja licznik zwiększany automatycznie przy dodawaniu nowego rekordu 70
Anatomia RBD klucz główny Klucz główny pole lub grupa pól jednoznacznie identyfikująca każdy rekord w tabeli wartość klucza identyfikuje konkretny rekord w bazie danych pole klucza (pole kluczowe) identyfikuje tabelę w całej bazie danych wymuszają integralność na poziomie tabel pomagają tworzyć relacje pomiędzy tabelami 71 Każda tabela powinna zawierać klucz główny
Anatomia RBD klucz główny 72
Anatomia RBD klucz obcy Klucz obcy kopia klucza głównego w innej tabeli umożliwia wprowadzanie relacji między tabelami wymusza integralność na poziomie relacji 73
Anatomia RBD klucz obcy 74
Indeksowanie tabeli Pole indeksowane przyspiesza wyszukiwanie i sortowanie tabeli wg indeksowanego pola klucz podstawowy jest zawsze indeksowany niektóre pola nie mogą być indeksowane z uwagi na typ pola indeksy przyspieszają wyszukiwanie, ale mogą też powodować spowolnienie aktualizacji dużych rekordów nie należy stosować indeksu, jeśli indeksowane pola nie są często używane do wyszukiwania, sortowania lub sprzężenia usunięcie indeksu nie powoduje usunięcia pola ani danych wprowadzonych w polu 75
Anatomia RBD perspektywa Perspektywa wirtualna tabela składająca się z kolumn jednej lub większej ilości tabel 76
Anatomia RBD perspektywa 77
Anatomia RBD relacje Relacje powiązanie rekordów jednej tabeli z rekordami innej tabeli Jeden do jednego (1-1) jednemu rekordowi pierwszej tabeli odpowiada jeden rekord z drugiej tabeli Jeden do wielu (1- ) rekordowi (wierszu) w pierwszej tabeli odpowiada wiele rekordów z drugiej tabeli, ale każdemu rekordowi z drugiej tabeli odpowiada tylko jeden dopasowany rekord z pierwszej tabeli. Przykład: do jednego wykonawcy przypisanych jest wiele płyt CD każda płyta CD ma tylko jednego wykonawcę. Wiele do wielu ( - ) czyli wiele rekordów z pierwszej tabeli jest powiązanych z wieloma rekordami z drugiej tabeli 78
Anatomia RBD relacje jeden do jednego Pojedynczemu rekordowi z jednej tabeli odpowiada tylko jeden rekord z drugiej tabeli oraz pojedynczemu rekordowi z drugiej tabeli odpowiada tylko jeden rekord z pierwszej tabeli. W tego typu relacjach istnieje tabela główna i tabela podrzędna. 79
Anatomia RBD relacje jeden do jednego 80
Anatomia RBD relacje jeden do wielu Pojedynczemu rekordowi z jednej tabeli odpowiada wiele rekordów z drugiej tabeli oraz pojedynczemu rekordowi z drugiej tabeli odpowiada tylko jeden rekord z pierwszej tabeli. 81
Anatomia RBD relacje jeden do wielu 82
Anatomia RBD relacje wiele do wielu Pojedynczemu rekordowi z dowolnej tabeli odpowiada wiele rekordów z tabeli komplementarnej. wymagane jest ustanowienie dodatkowej tabeli łączącej tabela łącząca powinna zawierać klucze główne obydwu tabel 83
Anatomia RBD relacje wiele do wielu 84
Anatomia RBD poprawna struktura Niepoprawny projekt bazy danych: stwarza problemy w implementacji zapytań SQL może okazać się, że BD będzie bezużyteczna Jakość bazy danych zależy od ilości czasu poświęconego na etapie projektowania!!! 85
Anatomia RBD poprawna struktura Korygowanie pól Korygowanie tabel Kontrola poprawności relacji 86
Anatomia RBD korygowanie pól nazwa pola powinna odzwierciedlać jego zawartość unikatowe nazwy każdego pola w BD czy pole nie przedstawia więcej niż jednej cechy? czy nie podzielić pola na mniejsze pola? bezpiecznie jest używać nazw pól zaczynających się od litery i mogą zawierać jedynie litery, cyfry i podkreślenie 87
Anatomia RBD struktura pól pole powinno odzwierciedlać cechę której poświęcona jest tabela macierzysta czy pole rzeczywiście powinno znajdować się w danej tabeli? pole powinno zawierać pojedynczą wartość wartości pól nie powinny być wynikiem operacji matematycznej ani konkatenacji brak pól wyliczonych każde pole może występować w bazie tylko jeden raz 88
Anatomia RBD zbędne pola 89
Anatomia RBD eliminacja pól wieloczęściowych 90
Anatomia RBD eliminacja pól wielowartościowych 91
Anatomia RBD eliminacja pól wielowartościowych 92
Anatomia RBD korygowanie tabel - nazwa unikatowa i zrozumiała nazwa tabeli nazwa precyzyjnie i jednoznacznie opisuje jej zawartość nie należy używać skrótów tabela powinna opisywać tylko jeden temat nazwy tabel powinny być w liczbie mnogiej (łatwiej odróżnić wtedy je od nazw pól) 93
Anatomia RBD kontrola poprawności struktur tabela powinna opisywać tylko jeden temat każda tabela powinna mieć klucz główny tabele nie powinny zawierać pól wielowartościowych ani wieloczęściowych eliminacja pól wyliczonych brak zbędnych duplikatów pól 94
Anatomia RBD usuwanie duplikatów pól 95
Anatomia RBD usuwanie duplikatów pól 96
SYSTEM ZARZĄDZANIA BAZĄ DANYCH
System Zarządzania Bazą Danych System zarządzania bazą danych (ang. Database management system, DBMS) to zbiór programów ogólnego przeznaczenia umożliwiających tworzenie i utrzymywanie bazy danych. SZBD umożliwia: definiowanie: określanie typów danych, struktur i ograniczeń konstruowanie: przechowywanie danych na nośniku elektronicznym manipulowanie: odczytywanie danych, wyszukiwanie danych, modyfikowanie danych w celu odzwierciedlenia zmian zachodzących w świecie rzeczywistym 98
Funkcje SZBD Organizowanie danych Wprowadzanie danych Wybieranie danych Usuwanie danych Aktualizowanie danych Zachowanie integralności Zapewnienie bezpieczeństwa danych Zapewnienie bezpieczeństwa współbieżnego dostępu do bazy danych 99
Rodzaje serwerów Serwer plików aplikacje klientów mają bezpośredni dostęp do danych zapisanych w plikach, funkcje SZBD pełnią aplikacje klientów wyposażone w sterowniki dostępu do danych Serwer danych aplikacje klientów uzyskują dostęp do danych za pośrednictwem programu działającego na serwerze, który pełni funkcję SZBD 100
Popularne serwery sieciowych BD 101
Popularne serwery sieciowych BD 102
Systemy zarządzania relacyjnymi BD architektura klient-serwer m. in. Oracle (Oracle Corp.), SQL Server (Microsoft), MySQL, PostgreSQL, FireBird 103
Interakcja klient-serwer w Internecie 104
Model trójwarstwowy sieciowej BD W architekturze 3-warstwowej, pomiędzy stacjami użytkowników, a serwerem bazy danych znajduje się tzw. serwer aplikacji. Jego zadaniem jest udostępnianie umieszczonych na nim aplikacji. Jest to typowa architektura dla aplikacji web'owych. Użytkownik na swojej stacji roboczej posiada tylko przeglądarkę stron www. Aplikacje są udostępniane przez serwer aplikacji w postaci czystych stron html lub w postaci applet'ów Java. W odpowiedzi na polecenia użytkowników realizowane w aplikacjach, serwer aplikacji wysyła odpowiednie żądania do SZBD, który wykonuje polecenia i ich wyniki przesyła do serwera aplikacji, który z kolei przesyła je do aplikacji użytkowników. 105
Model trójwarstwowy sieciowej BD 106
Protokół HTTP 107
Sieciowa BD z wykorzystaniem Javy 108
Pośrednie sięganie do internetowej bazy danych 109
Języki programowania a bazy danych 110
MS ACCESS CHARAKTERYSTYKA PROGRAMU
Charakterystyka programu Access Access jest systemem zarządzania bazami danych działającym w środowisku Windows. Poza przechowywaniem zebranych informacji w tabelach umożliwia on między innymi: szybki dostęp do zebranych informacji porządkowanie danych według różnych kryteriów szybką zmianę sposobu prezentacji danych w formie tabeli, formularza, raportu, strony Web budowanie unikatowych zestawów danych grupowanie danych wykonywanie obliczeń szybkie dołączanie, uzupełnianie, modyfikowanie i usuwanie danych 112
Podstawowe obiekty Tabela Zapytania Formularze Raporty Makropolecenia Moduły 113
Tabela w Access ie Dane są najczęściej uporządkowane w formie tabel. Tabela (table) dwuwymiarowa struktura przechowująca dane dotyczące określonego tematu kolumny atrybuty (pola), określony typ danych wiersze rekordy 114
Inne obiekty Zapytanie (kwerenda) to obiekt bazy danych, który czerpie informacje z jednej lub wielu tabel bądź innych zapytań. Formularz obiekt systemu zarządzania bazą danych, który umożliwia w przystępny sposób przeglądanie, wprowadzanie, usuwanie danych. Raporty służy głównie do wydruku informacji. Umożliwiają automatyczne grupowanie podsumowanie danych. Makra to obiekty automatyzujące pewne funkcje zarządzania bazą danych Moduł umożliwia dostęp do specjalnych struktur przechowujących kod programu. 115
ETAPY PROJEKTOWANIA BAZY DANYCH
Etapy projektowania RBD Etap 1 Określenie celu, jakiemu ma służyć baza danych: jakich informacji ma dostarczyć baza danych jakie zagadnienia będą analizowane w bazie (tabele) jakie informacje mają określać każde zagadnienie (pola w tabelach) konsultacja z przyszłymi użytkownikami bazy danych naszkicować wzory raportów, które powinna wytwarzać zgromadzić formularze do wpisywania danych, które są używane obecnie zapoznać się z działaniem dobrze zaprojektowanych baz danych, podobnych do tej, która ma być utworzona 117
Etapy projektowania RBD Etap 2 Określenie tabel, które są potrzebne w bazie danych: tabela nie powinna zawierać powtarzających się informacji, a informacje nie powinny powtarzać się w różnych tabelach dane wystarczy aktualizować w jednym miejscu każda tabela powinna zawierać informacje tylko na jeden temat dane na temat jednego zagadnienia można przetwarzać niezależnie od danych dotyczących innych zagadnień 118
Etapy projektowania RBD Etap 3 Określenie pól, które są potrzebne w tabelach: należy powiązać każde pole bezpośrednio z zagadnieniem, którego dotyczy tabela nie należy wprowadzać danych pośrednich lub obliczonych (danych, które są wynikiem wyrażenia) należy uwzględnić wszystkie potrzebne informacje informacje należy przechowywać w możliwie najmniejszych jednostkach logicznych (na przykład Imię oraz Nazwisko, a nie Dane personalne) 119
Etapy projektowania RBD Etap 4 Przypisanie polom jednoznacznych wartości w każdym rekordzie Aby program bazy danych mógł powiązać informacje przechowywane w różnych tabelach, każda tabela w bazie danych musi zawierać pole lub zbiór pól, które jednoznacznie określają każdy rekord. Takie pole lub zbiór pól nazywany jest kluczem podstawowym. Klucz podstawowy (primary key) jedno lub więcej pól, których wartości w sposób jednoznaczny identyfikują dany rekord w tabeli. Klucz podstawowy nie może być pusty (NULL) i zawsze musi mieć indeks unikatowy 120
Etapy projektowania RBD Etap 5 Określenie relacji między tabelami Po podzieleniu danych na tabele i zdefiniowaniu pól kluczy podstawowych trzeba określić sposób poprawnego łączenia powiązanych danych w logiczną całość. W tym celu definiuje się relacje między tabelami w bazie danych. 121
Etapy projektowania RBD Etap 6 Wprowadzenie danych i utworzenie innych obiektów bazy danych Zakończenie etapu projektowego: sprawdzenie projektu i wykrycie ewentualnych usterek Po zakończeniu etapu projektowego należy: utworzyć bazę danych i tabele wprowadzić dane do bazy utworzyć potrzebne formularze, strony dostępu do danych, skrypty i moduły 122
Etapy projektowania RBD Etap 7 Testowanie i udoskonalanie bazy danych praktyczna weryfikacja projektu sprawdzenie poprawności wyników zapytań testowanie szybkości działania bazy optymalizacja i reorganizacja bazy, ew. poprawa projektu i utworzenie bazy od nowa testowanie z udziałem użytkowników bazy serwis 123
ETAPY PROJEKTOWANIA PODEJŚCIE UPROSZCZONE (UŻYTKOWE)
Etap 1. Ogólny projekt systemu Założenia związane z projektem: jakie założenia realizować ma baza danych, co przedstawia, dla kogo jest przeznaczona, jakie czynności powinna automatyzować (wprowadzanie informacji, pobieranie danych, tworzenie list itp.). Jest to proces interaktywny, czyli każda zmiana pociąga za sobą konieczność powrotu do poprzednich etapów projektowania w celu wprowadzenia odpowiednich modyfikacji. 125
Etap 2. Projektowanie raportów rozmieszczanie pól Układ pól raportu (przedstawienie go w formie graficznej na kartce). Odpowiednie zestawienia (faktury itp.). 126
Etap 3. Projektowanie danych potrzebne pola danych Organizowanie danych w odpowiedni system. Zebranie wszystkich informacji o polach potrzebnych do otrzymania zakładanych rezultatów (najlepsza metoda - wypisanie wszystkich pól z poszczególnych raportów). Eliminacja powtarzających się pól (należy dopilnować aby nazwy wspólnych pól dla różnych raportów były identyczne). Sprawdzenie, czy możliwe jest rozdzielenie danych w pewne logiczne struktury. Łączenie danych (najtrudniejszy etap tworzenie tabel tylko z pól niezbędnych) Normalizacja niektóre pola wykorzystuje się tylko raz, a inne wiele razy (jest to w zasadzie określanie relacji pomiędzy poszczególnymi tabelami np. jedna dostawa, wiele szczegółów dostawy). Określenie pól unikatowych (często numer lub kod) są to pola wiążące poszczególne relacje. I tak np. numer dostawy wiązałby określoną dostawę ze szczegółami dostawy. 127
Etap 4. Projektowanie tabel i relacji Organizacja pól w tabelach. Zawiązanie relacji. 128
Etap 5. Projektowanie pól zasady wprowadzania danych i weryfikacja poprawności Definiowanie pól, typów i rozmiarów. Opracowywanie zasad poprawności wprowadzanych danych. Projektowanie tabel odnośników (ułatwienie wprowadzania danych poprzez możliwość wybrania elementów z listy na podstawie dodatkowej tabeli). Tworzenie danych testowych (aby przeanalizować jak najwięcej przypadków). 129
Etap 6. Projektowanie formularzy wejście Tworzenie formularzy. 130
Etap 7. Projektowanie menu (automatyzacja) Tworzenie okien z przyciskami lub menu. 131
PODSUMOWANIE W Logicznie skład siedmiostopniowej pogrupowane pola metody można połączyć projektowania w tabele. wchodzą następujące Następnie między etapy: ogólny utworzonymi projekt tabelami systemu, należy projektowanie zawiązać raportów, relacje. danych, tabel, pól, formularzu i menu. Na Podczas początku projektowania opracowania pól ogólnego definiuje się projektu typy i systemu, rozmiary jeszcze zanim każdego zasiądzie z pól danych. się do Na komputera, tym etapie należy należy przemyśleć również całą opracować reguły określające poprawność danych koncepcję wejściowych. rzeczywistego systemu. Pozwoli to zaplanować system, którego implementacja będzie łatwiejsza. Formularze można projektować w oknie projektu formularzy Projektowanie Accessa. Tworzenie raportu formularzy umożliwia ekranowych zaplanowanie ma na wyjścia celu z systemu, lepsze przyjęcie czyli danych systemu otrzymywanych przez jego jako przyszłych wyniki. Projektowanie użytkowników. danych polega na wyłonieniu pól danych z opracowanych W Accessie bazą we danych wcześniejszym można sterować etapie raportów, za pośrednictwem a następnie logicznym przycisków ich poleceń pogrupowaniu. lub systemu menu. 132
MS ACCESS WPROWADZENIE DO PROGRAMU
Okno bazy danych 134
Tryb edycji widok arkusza 135
Tryb projektowania widok projektu 136
Definiowanie tabeli Utworzenie nowej tabeli. Określenie pól (atrybutów) tabeli. Określenie właściwości zdefiniowanych pól. Wyznaczenie klucza podstawowego. Zapisanie projektu. 137
Tworzenie nowej tabeli Kliknąć przycisk Nowy w oknie bazy danych. Wybrać Widok Projektu lub kliknij w Utwórz tabelę w widoku projektu 138
Definiowanie pól tabeli Nadawanie nazw polom w kolumnie Nazwa pola. Nazwa pola może mieć od 1 do 64 znaków. Może składać się z cyfr, liter, spacji (lepiej nie używać), znaków przestankowych (za wyjątkiem! `. [ ] ). Określanie typu danych w kolumnie Typ danych. Wprowadzanie opisu definiowanego pola w kolumnie Opis (opcjonalne). 139
Typy danych Tekst Nota Liczba Data/Godzina Walutowy Autonumer Tak/Nie Obiekt OLE Hiperłącze Kreator odnośników Dowolny tekst do 255 znaków długości. Również liczby, jeśli nie będą wykorzystywane w obliczeniach Długie teksty do 64000 znaków. Wielkość pola dostosowuje się do długości tekstu. Dane numeryczne. Data oraz czas. Kwoty w złotych. Automatycznie nadawany przez program unikalny numer, który nigdy nie ulega zmianie. Typ logiczny. Przyjmowane wartości to Tak/Nie, Prawda/Fałsz, Wł/Wył, -1/0. Dokumenty tekstowe, obrazki, dźwięki, wykresy. Łącze do zasobów internetowych. Dane z innych tabel, które podaje się własnoręcznie. 140
Określanie właściwości pól Rozmiar pola W przypadku tekstu określa maksymalną ilość znaków (domyślnie 50) W przypadku liczb określa zakres liczb (domyślnie Liczba całkowita długa). Opcja Zakres Miejsca dziesiętne Bajt 0-255 Brak Liczba całkowita -32.768 32.767 Brak Liczba całkowita długa -2.147.483.648 2.147.483.647 Brak Podwójna precyzja -1,797*10 308 1,797*10 308 15 Pojedyncza precyzja -3,4*10 38 3,4*10 38 7 141
Określanie właściwości pól Format Zmienia sposób wyświetlania danych. Miejsca dziesiętne Określa liczbę miejsc dziesiętnych (tylko dla typów liczbowych i walutowego). Maska wprowadzania Pozwala na wprowadzanie danych w przygotowanym wcześniej formacie. Tytuł Opcjonalna etykieta używana w widoku arkusza danych, formularzach i raportach (zastępująca nazwę pola). Wartość domyślna Wartość automatycznie wpisywana w nowych polach. Domyślnie dla typów tekstowych wartość domyślna jest łańcuchem pustym, dla typów liczbowych i walutowego wynosi 0. 142
Określanie właściwości pól Reguła poprawności Pozwala na tworzenie wyrażenia sprawdzającego wartość wprowadzaną do pola i nie pozwalającego na podanie błędnej wartości. Komunikat o błędzie Tekst wyświetlany w przypadku niepowodzenia reguły poprawności. Wymagane Określa, czy podanie wartości pola jest konieczne Zerowa długość dozwolona Określa, czy pole będzie akceptować puste łańcuchy znaków, nawet jeżeli została ustawiona właściwość Wymagane. Indeksowane Umożliwia dodanie do pola indeksu, co znacznie przyspiesza dostęp do danych (np. wyszukiwanie czy sortowanie) oraz (jeżeli to konieczne) ogranicza dane do wartości niepowtarzalnych. 143
Formaty danych Właściwości Format można użyć, aby dostosować sposób, w jaki liczby, daty, godziny i teksty będą wyświetlane i drukowane. Właściwość Format wpływa tylko na wygląd danych (sposób wyświetlania danych). Nie ma wpływu na to, jak dane są przechowywane. Można użyć jednego z formatów predefiniowanych lub utworzyć format niestandardowy, używając do tego celu symboli formatowania. Dla dowolnego typu danych można przy tworzeniu niestandardowych formatów używać następujących symboli. 144
Formaty tekstowe i noty Można utworzyć niestandardowe formaty dla pól typu Tekst i Nota używając następujących symboli: Symbol Opis @ Wymagany jest znak tekstowy (albo spacja). & Znak tekstowy nie jest wymagany. < Wszystkie znaki są pisane małymi literami. > Wszystkie znaki są pisane wielkimi literami. Format Dane Wynik > Ala ALA (@-@@)@@-@@- @@ 077545401 (0-77)54-54-01 145
Formaty liczbowe i walutowe Formaty liczbowe Formaty walutowe 146
Formaty daty/godziny i logiczne Formaty daty/godziny. Formaty wyświetlane są zgodnie z ustawieniami systemowymi Formaty logiczne 147
Klucz podstawowy Trzy rodzaje kluczy podstawowych: klucz jednopolowy klucz wielopolowy klucz Autonumeracja Tworzenie klucza podstawowego: wybrać pole (pola), które zostanie użyte jako klucz podstawowy, a następnie wybrać polecenie Klucz podstawowy w menu Edycja wybrać pole (pola) a następnie kliknąć przycisk Klucz podstawowy na pasku narzędzi kliknąć prawym przyciskiem myszy i z menu podręcznego wybrać polecenie Klucz podstawowy zapisać tabelę bez tworzenia klucza, aby Access utworzył pole typu Autonumeracja 148
Klucz podstawowy Ikona klucza podstawowego Edycja - klucz podstawowy Prawy przycisk myszy - klucz podstawowy 149
Tworzenie relacji miedzy tabelami Relacje tworzy się przez wybranie polecenia Relacje w menu Narzędzia lub kliknięcie przycisku Relacje na pasku narzędzi. Otworzy się okno Relacje. Następnie należy wybrać wszystkie tabele z okienka Pokazywanie tabeli i kliknąć przycisk Dodaj. 150
Tworzenie relacji między tabelami Aby utworzyć połączenie, należy zaznaczyć wspólne pole w tabeli pierwszej, przeciągnąć je do drugiej i upuścić na nazwie tego samego pola. Otworzy się okno dialogowe Edytowanie relacji. 151
Integralność referencyjna Integralność referencyjna to zbiór reguł definiujących warunki, w jakich na tabelach będą wykonywane niektóre operacje. Integralność referencyjna dotyczy wyłącznie pól kluczowych (kluczy podstawowych i obcych). /Klucz obcy składa się z jednego lub więcej pól z tabeli podrzędnej, które jednoznacznie określają każdy wiersz w tabeli nadrzędnej./ W czasie każdej operacji związanej z dodawaniem, usuwaniem lub zmianą wartości w polach kluczowych są one sprawdzane. Integralność referencyjna gwarantuje, że w tabeli podrzędnej w polu kluczowym nie pojawi się nigdy wartość, której nie ma w polu kluczowym w tabeli nadrzędnej 152
Integralność referencyjna Więzy integralności nie pozwolą wprowadzić do tabeli Dane_kandydatów symbolu województwa, którego nie ma w tabeli Województwa. Więzy integralności nie pozwolą usunąć z tabeli Województwa rekordu z nazwą województwa, jeżeli jest osoba w Kandydatach, która mieszka w tym województwie. Więzy integralności nie pozwolą usunąć z tabeli Dane_kandydata rekordów osoby, której zainteresowania lub wykształcenie znajduje się jeszcze w tabeli Zain_wyk. 153
Integralność referencyjna Jeśli włączy się wymuszanie integralności, to będzie można jeszcze wybrać opcje Kaskadowo aktualizuj powiązane pola i Kaskadowo usuwaj powiązane rekordy. Wybór pierwszej opcji powoduje, że można zmieniać wartość pola klucza podstawowego w tabeli nadrzędnej i zmiana ta dokona się również w tabeli podrzędnej. Wybór drugiej opcji pozwala na usuwanie rekordów z tabeli nadrzędnej. Jednocześnie zostaną usunięte wszystkie powiązane rekordy z tabeli podrzędnej. 154
MS ACCESS O KWERENDACH
Kwerenda Kwerenda jest zapytaniem skierowanym do tabeli lub innej kwerendy. W wyniku jej wykonania wyświetlone zostaną rekordy tabeli w liczbie i kolejności spełniających warunki zapytania. Kwerenda wybierająca pobiera dane z jednej lub kilku tabel przy użyciu kryteriów określonych przez użytkownika a następnie wyświetla je w żądanym porządku. 156
Podsumowania w kwerendach 157
Konstruktor wyrażeń Przyciski operatorów Pole W środkowej wyrażenia części W konstruktora górnej części znajdują się Konstruktora przyciski często znajduje używanych się pole operatorów. wyrażenia, Po które kliknięciu służy do tworzenia wyrażenia. Dolna wstawia sekcja odpowiedni Konstruktora operator w punkcie wstawiania w polu służy wyrażenia. do tworzenia Aby obejrzeć pełną elementów listę operatorów wyrażenia, używanych które w następnie wyrażeniach, są kliknij wklejane folder w polu Operatory wyrażenia, w lewym aby dolnym zbudować polu, a następnie wyrażenie. odpowiednią W polu kategorię wyrażenia w polu można środkowym. również W prawym bezpośrednio polu zostaną wpisywać wyświetlone poszczególne wszystkie części operatory wyrażenia. należące do przycisku Konstruktor wyrażeń wybranej kategorii. 158
Kwerenda parametryczna Wykonanie kwerendy parametrycznej powoduje wyświetlenie okna dialogowego, w którym należy podać informacje, takie jak kryteria wyszukiwania rekordów czy wartości, które mają być wstawione w polach. Kwerendę można tak zaprojektować, aby użytkownik był pytany o kilka różnych informacji, na przykład o dwie daty. W takim przypadku zostaną znalezione wszystkie te rekordy, które znajdują się między dwoma podanymi datami. 159
Wykonanie kwerendy parametrycznej 160
Zapytania W kwerendach parametrycznych stosować możemy wszystkie uprzednio przedstawione reguły poszukiwań jak: znaki specjalne, wyrażenia, itd., np.: LIKE [Podaj początek nazwiska pracownika] & * > [Podaj kwotę powyżej] Between [wpisz datę początkową:] And [wpisz datę końcową:] 161
Kwerenda krzyżowa Wyświetla wartości sumowane (sumy, zliczenia i średnie) z jednego pola w tabeli i na podstawie jednego zestawu faktów grupuje je po lewej stronie arkusza danych, a na podstawie drugiego zestawu faktów w górnej części arkusza. Pole którego wartość ma zostać użyta w kwerendzie krzyżowej (przecięcie kolumny i wiersza) ustawiamy jako Krzyżowe z opcją Wartość. W kwerendzie może wystąpić tylko jedno takie pole! 162
Tworzenie kwerendy krzyżowej 163
Kwerendy funkcjonalne Kwerenda funkcjonalna pozwala na wprowadzenie zmian w wielu rekordach lub przeniesienie wielu rekordów przy użyciu pojedynczej operacji. Istnieją cztery rodzaje kwerend funkcjonalnych: Kwerendy aktualizujące Kwerendy usuwające Kwerendy dołączające Kwerendy tworzące tabele 164
Kwerenda aktualizująca Kwerenda aktualizująca pozwala na wprowadzanie - przy użyciu pojedynczej operacji globalnych zmian w grupie rekordów w jednej lub wielu tabelach. Projektowanie kwerendy aktualizującej należy rozpocząć od utworzenia kwerendy wybierającej. Kolejnym krokiem jest przetestowanie działania kwerendy. Musimy być pewni, że wybiera dokładnie te rekordy, które chcemy modyfikować. Po wykonaniu zmiany w bazie należy usunąć kwerendę aktualizującą. Przypadkowe jej uruchomienie może spowodować wprowadzenie nieodwracalnych zmian w bazie danych. 165
Kwerenda aktualizująca 166
Kwerenda usuwająca Kwerenda usuwająca pozwala na usunięcie - przy użyciu pojedynczej operacji na usunięcie rekordów w jednej lub wielu tabelach. W przypadku kwerendy usuwającej trzeba określić dodatkowy parametr. Po rozwinięciu listy Usuwanie widoczne są dwie opcje: Gdzie i Skąd. Klikniecie pozycji Gdzie powoduje, ze usuwane będą rekordy spełniające warunek podany w wierszu Kryteria. Klikniecie pozycji Skąd powoduje, ze usuwane będą rekordy z tabeli, której nazwa jest wpisana w wierszu Tabela. 167
Kwerenda usuwająca 168
Kwerenda dołączająca Kwerenda dołączająca dodaje na końcu jednej lub wielu tabel grupę rekordów z jednej lub wielu tabel. Z funkcji tej można skorzystać np. wtedy, gdy po połączeniu firm tworzona jest wspólna baza klientów. Aby uniknąć ponownego wpisywania informacji, które juz istnieją w jednej bazie, można wykonać kwerendę dołączającą. Tworzenie kwerendy: Tworzymy kwerendę wybierającą na bazie tabeli z której chcemy pobrać dane Sprawdzamy działanie Zmieniamy typ na dołączającą Po uruchomieniu wybieramy nazwę tabeli do której chcemy dołączyć rekordy 169
Kwerenda dołączająca 170
Kwerendy tworzące tabele Kwerenda tworząca tabele generuje nowa tabele. Może ona wykorzystywać wszystkie dane przechowywane w jednej lub wielu tabelach lub tylko ich cześć. Kwerendy tworzące tabele są używane do tworzenia tabel, które maja zostać wyeksportowane do innych baz danych Microsoft Access. Tworzenie kwerendy: Tworzymy kwerendę wybierającą Sprawdzamy działanie Zmieniamy typ na tworzącą tabelę Po uruchomieniu wpisujemy nazwę nowej tabeli 171
Kwerendy tworzące tabele 172
MS ACCESS INFORMACJE DODATKOWE
Główne elementy systemu DBMS Modyfikacje schematu Zapytania Aktualizacje Procesor zapytań Moduł zarządzania pamięcią Moduł zarządzania transakcjami Dane Metadane 174
Procesor zapytań Zapytania pytania o dane. Aktualizacje operacje zmiany danych. Modyfikacje schematu zmienia schemat bazy danych, dodaje kolumny do tabel, dodaje indeksy etc, tworzy nowe bazy. Wymaga uprawnień administracyjnych. 175
Moduł zarządzania transakcjami odpowiada za spójność systemu. Musi gwarantować, że kilka jednocześnie przetwarzanych zapytań nie będzie sobie przeszkadzać i że dane nie zostaną utracone. 176
Moduł zarządzania pamięcią Moduł zarządzania plikami (przechowuje dane o miejscu zapisywania plików z danymi na dysku i na polecenie modułu zarządzania buforami przesyła zawartość bloku z dysku do pamięci operacyjnej). Moduł zarządzania buforami (obsługuje pamięć operacyjną. Wybiera z pamięci strony przydzielone do wybranych z dysku bloków). 177
Caveat Emptor Bazy danych są cenne i trzeba je chronić. Bazy danych wymagają konserwacji i administracji. DBMS jest potencjalnym kanałem, przez który cracker może włamać się do systemu. Bazy danych wymagają regularnego sporządzania kopii zapasowych (backup). 178
MS ACCESS ZABEZPIECZENIA
Zabezpieczanie baz danych Access został tak zaprojektowany, aby pozwolić na ochronę bazy danych w odpowiadający nam sposób. Domyślnie, zabezpieczenia są niewidoczne zarówno dla projektanta jak i użytkownika. Aby zrozumieć system zabezpieczeń Accessa, należy zrozumieć cztery podstawowe pojęcia: użytkownicy i grupy mają prawa do obiektów. 180
Pojęcia związane z ochroną danych Użytkownik to osoba, która korzysta z Accessa. Aby skorzystać z zabezpieczonej aplikacji, użytkownik musi podać swoja nazwę, unikalny identyfikator osobowy oraz hasło, co daje mu dostęp do określonych obiektów baz danych. Grupa jest zbiorem użytkowników. Przypisanie użytkownika do danej grupy i nadanie mu uprawnień tej grupy stabilizuje system zabezpieczeń. 181
Pojęcia związane z ochroną danych Prawo (uprawnienie) to zezwolenie na wykonanie określonych operacji na określonych projektach. Np. Otwieranie/Uruchamianie, Administrowanie Czytanie/modyfikowanie projektu, Prawa można nadawać zarówno pojedynczym użytkownikom jak i całym grupom. Obiekt jest jednym z głównych elementów bazy danych (tabela, kwerenda, formularz, makro, raport lub moduł) 182
Użytkownicy i grupy wbudowane Domyślny użytkownik Accessa: Nazwa użytkownika Wchodzi w skład Administrator(Admin) Administratorzy Użytkownicy Domyślne grupy robocze Accessa: Nazwa grupy W skład wchodzą Administratorzy Administrator (Admin) Użytkownicy Administrator (Admin) 183
Użytkownicy i grupy (dodawanie/usuwanie) 184
Poziomy dostępu do baz danych Szyfrowanie/odszyfrowywanie Pokazywanie lub ukrywanie obiektów Użycie hasła Użycie zabezpieczeń na poziomie użytkownika Zapobieganie replikowaniu danych i ustawianiu haseł przez użytkowników Zabezpieczanie kodu języka VBA Zabezpieczanie stron dostępu do danych 185
Szyfrowanie/odszyfrowywanie Najprostsza metoda zabezpieczenia danych. Zaszyfrowanie bazy uniemożliwia jej odczytanie przy użyciu programu narzędziowego lub edytora tekstu. Zaszyfrowaną niezabezpieczoną bazę danych może otworzyć dowolny użytkownik, uzyskując pełen dostęp do wszystkich jej obiektów. Szyfrowanie jest przydatne, jeśli baza danych jest przesyłana drogą elektroniczną lub zapisywana na nośniku (np. dysku CD). 186
Szyfrowanie/odszyfrowywanie Aby zaszyfrować lub odszyfrować bazę danych użytkownik musi być jej właścicielem, lub jeśli baza danych jest zabezpieczona, członkiem grupy Administratorzy. Użytkownik musi mieć także możliwość otwarcia bazy danych w trybie wyłączności. Uwaga: Otwartej bazy danych nie można zaszyfrować ani odszyfrować. 187
Szyfrowanie/odszyfrowywanie W menu Narzędzia wskaż polecenie Zabezpieczenia, a następnie kliknij polecenie Zaszyfruj/Odszyfruj bazę danych. 188
Pokazywanie lub ukrywanie obiektów Inną metodą zabezpieczania obiektów w bazie danych przed przypadkowymi użytkownikami jest ukrywanie obiektów w oknie Baza danych. Jest to najmniej bezpieczna metoda zabezpieczenia, gdyż wyświetlenie ukrytych obiektów jest stosunkowo proste. 189
Pokazywanie lub ukrywanie obiektów Sposób ukrycia danego obiektu 190
Pokazywanie lub ukrywanie obiektów Sposób pokazania ukrytego obiektu 191
Użycie hasła Po ustawieniu hasła podczas każdej próby otwarcia bazy danych pojawia się okno dialogowe z żądaniem podania tego hasła. Podanie niepoprawnego hasła uniemożliwi użytkownikowi otwarcie bazy danych. Metoda ta jest pewna, lecz ogranicza się tylko do otwierania bazy danych. Po jej otwarciu użytkownik ma dostęp do wszystkich obiektów. 192
Utworzenie hasła Po otwarciu bazy danych z menu Narzędzia wybrać polecenie Zabezpieczenia i opcję Ustaw hasło bazy danych, a następnie: Wpisz hasło ponownie wpisz je tutaj Aby otworzyć bazę danych, użytkownicy muszą wpisać właściwe hasło. 193
Typy haseł W programie MS Access używane są trzy typy haseł, zależnie od poziomu dost. użytkowników: hasła bazy danych (jeśli zostanie ustawione, wszyscy użytkownicy muszą wprowadzać to hasło przed uzyskaniem dostępu do bazy danych) hasła zabezpieczenia (jeśli dla grupy roboczej zostały zdefiniowane zabezpieczenia na poziomie użytkownika, można zastosować to hasło) hasła kodu języka VBA (Hasło to służy do ochrony kodu tego języka w modułach standardowych i modułach klas) 194
Użycie zabezpieczeń na poziomie użytkownika Używając zabezpieczeń na poziomie użytkownika, można określić różne poziomy dostępu do istotnych danych i obiektów w bazie danych. Aby uzyskać dostęp do bazy danych zabezpieczonej na poziomie użytkownika, użytkownicy muszą przy uruchamianiu programu MS Access wpisać hasło. Poziom dostępu i obiekty udostępnione dla danego użytkownika są określane na podstawie tego hasła i kodu identyfikacyjnego. 195
Użycie zabezpieczeń na poziomie użytkownika Ustawienie zabezpieczeń ułatwia Kreator zabezpieczeń na poziomie użytkownika. Po uruchomieniu Kreatora zabezpieczeń na poziomie użytkownika można przyznać lub cofnąć uprawnienia dla kont użytkowników i kont grup w danej grupie roboczej dla bazy danych i jej istniejących tabel, kwerend, formularzy, raportów i makr. 196
Przyznawanie uprawnień Otwieranie/Uruchamianie Otwieranie z wyłącznością Czytanie projektu Modyfikowanie projektu Administrowanie Aktualizacja danych Wczytywanie danych Wstawianie danych Usuwanie danych 197
Użycie zabezpieczeń na poziomie użytkownika 198
Zapobieganie replikowaniu danych i ustawianiu haseł przez użytkowników Replikacja proces kopiowania bazy danych, tak aby dwie lub więcej kopii mogło wymieniać aktualizacje danych lub obiekty replikowane. Pozwala również użytkownikowi dodawać pola i wprowadzać inne zmiany w bieżącej bazie danych. W niektórych sytuacjach warto również zapobiec ustawianiu przez użytkowników hasła bazy danych, gdyż uniemożliwiłoby to innym użytkownikom otwarcie bazy danych bez podania tego hasła. 199
Zabezpieczanie kodu języka VBA Kod języka VBA w modułach samodzielnych oraz modułach związanych z formularzami i raportami można chronić hasłem, które wprowadza się na początku sesji. Hasło uniemożliwia nieupoważnionym użytkownikom edycję, wycinanie, wklejanie, kopiowanie, eksportowanie i usuwanie kodu języka VBA. 200
Zabezpieczanie kodu języka VBA 201
SQL WPROWADZENIE DO JĘZYKA