Wiadomości wprowadzające
1. Idea bazy danych
Baza danych to zbiór, zasób informacji.
Baza danych to metoda strukturalizacji zarządzania informacją. Może być rozumiana różnorako:
dotyczy fragmentu rzeczywistości i stanowi kolekcje danych;
część systemu informacyjnego;
aplikacja bazy danych (oprogramowanie);
system informacyjny (sprzęt).
2. Cechy bazy danych.
Cechy (postulaty) bazy danych:
trwałość (aplikacja powinna działać przez długi okres czasu),
zgodność z rzeczywistością (dane musza być aktualizowane).
3. Podział baz danych - ogólna charakterystyka i przykładowe zastosowania poszczególnych typów.
Ze względu na budowę:
relacyjne bazy danych;
Tzw. problem jednej tabeli
Dzięki takiemu układowi zyskujemy zmniejszenie wielkości tabeli. Jest to tzw. relacyjne ustrukturalizowanie informacji, gdyż np. przy autorach będą skierowania do innej tabeli.
Dziennik szkolny jest prymitywnym przykładem bazy danych.
Twórca relacyjnego modelu danych jest E. F. Codd
terminologia matematyczna- baza danych to zbiór relacji;
relacja jest prezentowana przez tabele (kolumny i wiersze).
hierarchiczne bazy danych;
Hierarchiczne bazy danych- jest to pierwsza udana elektroniczna baza danych, do tej pory jeszcze używana w dużych magazynach. Oparta jest o strukturę drzewiastą o wielu gałęziach. Wszystkie elementy danych są zorganizowane w bardzo logiczny sposób, tzn. każda wartość obiektu danych jest logicznie powiązana z jedną lub kilkoma wartościami innego obiektu danych.
Zalety hierarchicznej bazy danych:
bardzo prosta i łatwa do zrozumienia struktura,
zazwyczaj bardzo krótki czas dostępu (o ile baza danych jest poprawnie napisana oraz poprawnie są stworzone relacje).
Wada:
- pozwala zobrazować jedynie relacje jedno- jedno i jedno-wiele lub wiele- jedno, ale nie wiele- wiele.
sieciowe bazy danych;
Sieciowe bazy danych- jest to zmodyfikowana wersja modelu hierarchicznego, stworzona przede wszystkim w celu rozwiązania problemów związanych z bazami danych opartymi o model hierarchiczny (co robić z rozrzuconymi hurtowniami).
Każdy użytkownik widzi stany magazynowe wielu magazynów (w różnych miastach) i może zabookować (zarezerwować) towar.
Wymaganie: gdy hurtownik sprawdzi i zabookuje coś, to wszyscy użytkownicy tej bazy muszą to widzieć.
Elementy danych w modelu sieciowym są zorganizowane w strukturę drzewiastą podobnie jak w przypadku modelu hierarchicznego. Inaczej niż w modelu hierarchicznym model sieciowy pozwala na definiowanie relacji wiele- wiele w postaci drzewiastej bez powtarzania poszczególnych wartości w ramach obiektu danych (wprowadza ograniczona relację wiele- wiele).
Zaletą sieciowego modelu danych jest szybkość, z jaką można odczytać dane oraz większe możliwości bazy.
Wymagania są niewielkie- to może być badziewne łącze, nawet telefoniczne, też łącze, które dzielimy.
obiektowe bazy danych;
Obiektowe bazy danych (ODBMS) - nie są określone żadnym oficjalnym standardem, nie ma żadnych teorii, zasad, dotyczących konstruowania obiektowych systemów zarządzania bazą danych (OSZBD). Nie ma, tak jak jest w przypadku relacyjnych baz danych, ogólnie przyjętej metody projektowania takich baz, ani jednolitej terminologii.
Są efektem połączenia koncepcji opracowanych na gruncie: baz danych, obiektowych języków programowania i ogólnych rozważań na temat obiektowego postrzegania świata.
Jednym z podstawowych celów tego typu baz danych jest bezpośrednie odwzorowanie obiektów i powiązań między nimi, wchodzących w skład aplikacji na zbiór w bazie danych.
(Np. w Visual Basic przycisk jest obiektem i ma swoje właściwości, tzw. klasy).
Cechą ODBMS jest to, że pozwala na przechowywanie danych o dowolnej strukturze, zdefiniowanej przez projektanta, co powoduje, że taka baza sprawdza się wszędzie tam, gdzie relacyjna baza danych napotyka trudności, przede wszystkim chodzi tutaj o dynamicznie rozwijający się Internet i WWW.
obiektowo-relacyjne bazy danych.
ORDBMS jest stosunkowo nowym modelem baz danych, który powstał w wyniku ewolucji systemów relacyjnych w kierunku obiektowych. Posiada wszystkie cechy bazy relacyjnej rozszerzonej o możliwości bazy obiektowej, chodzi tutaj przede wszystkim o możliwość przechowywania danych multimedialnych, przestrzennych, czy np. abstrakcyjnych; co do tej pory dla bazy relacyjnej nie było możliwe do uzyskania. Jednocześnie prosty interfejs powoduje, że ORDBMS są zdecydowanie bardziej \"przyjazne\" dla przeciętnego użytkownika w porównaniu z bazami obiektowymi
Ze względu na sposób zarządzania nimi:
operacyjne bazy danych;
Operacyjne bazy danych- są wykorzystywane wszędzie tam, gdzie istnieje potrzeba nie tylko na gromadzenie danych, ale również na możliwość ich modyfikowania.
Ten typ baz przechowuje dane dynamiczne, tzn. takie, które ulegają ciągłym zmianom
i przedstawiają aktualny stan rzeczy, której dotyczą.
Cele: ulepszyć biznes, przewidzieć, zauważyć tendencje.
Najpopularniejsze w firmach, organizacjach, handlu, np. sklep.
Przykłady: bazy inwentaryzacyjne, bazy obsługi zamówień.
analityczne bazy danych.
Analityczne bazy danych- wykorzystywane są przede wszystkim do przechowywania danych historycznych i informacji związanych z pewnymi wydarzeniami.
Zawierają dane, które nie wymagają modyfikowania, są one statyczne- bardzo rzadko,
w ogóle nie ulegają zmianom.
Są wykorzystywane po to, aby np. przeanalizować tendencje rynkowe lub na podstawie długoterminowych danych statystycznych przewidzieć prognozy na przyszłość.
Każda analityczna baza danych jest źródłem pieniędzy.
Przykłady: bazy testów chemicznych, danych pomiarowych
Bazy oparte o relacyjny model danych
4. Charakterystyka typów relacji:
relacje typu jedno - jedno,
Spośród trzech typów relacji, relacje jedno- jedno stanowią najprostsze powiązanie pomiędzy obiektami danych.
Aby opisać relacje musimy założyć następujące zasady dotyczące pracowników i biur:
każde biuro może mieć tylko jednego pracownika;
każdy pracownik może być przyporządkowany tylko do jednego biura.
typu jedno - wiele
Jest to bardzo realistyczny model, dlatego, że w praktyce rzadko zdarza się, aby w biurze pracowała tylko jedna osoba.
typu wiele - wiele.
Są najbardziej złożonym sposobem łączenia obiektów przy projektowaniu baz danych. Każdy element jednego obiektu danych jest związany z kilkoma obiektami innego obiektu danych i odwrotnie.
5. Pojęcia:
tablica,
O nie opiera się model relacyjny.
W relacyjnym modelu baz danych wszystkie elementy danych oraz relacje pomiędzy obiektami danych są zorganizowane w tabele danych.
Tabele danych wykorzystuje się do przechowywania elementów danych związanych
z konkretnymi obiektami.
Analogicznie, wszystkie relacje pomiędzy obiektami są zapisane jako elementy danych
w tabelach.
W efekcie bazy danych według modelu relacyjnego składa się ze zbioru tabel danych.
rekord,
Rekord (krotka)- jest to typ danych złożony z określonej liczby danych innych typów. Jest to struktura składowa tabeli. Elementy rekordu zwykle nazywa się polem (atrybutem). W szczególnych przypadkach pojedyncze pole może być innym rekordem.
pole;
Pole (atrybut)- jest najmniejszą strukturą w relacyjnym modelu baz danych. Pola są wykorzystywane do jednostkowych danych.
Wyróżniamy pola;
segmentowe- jest to pole, które zawiera więcej niż jeden typ wartości;
jednowartościowe- pole, które zawiera pojedynczą wartość określonego typu;
wielowartościowe- pole, które zawiera wiele wartości tego samego typu;
wyliczeniowe- pole, które jest wynikiem operacji matematycznej przepracowanej na wartościach innych pól.
Typy pól są zdefiniowane na etapie projektowania bazy danych i jest ich określona ilość, mają stały rozmiar i zwykle są to ogólnie znane typy proste (liczba, data, godzina, ciąg znaków, itp.).
dziedzina.
Dziedzina- zbiór wartości, do którego należą aktualne wartości w danej kolumnie.
Np. przy imieniu i nazwisku dziedzina będą znaki tekstowe danego języka; nie mogą się tam pojawić znaki sterujące, cyfry.
Dziedzinę należy określić w schemacie pojęciowym bazy i nadać jej nazwę. Kolumny z nią związane mogą mieć lecz nie muszą tej samej nazwy.
Pola unikalne i niepuste.
Pola unikatowe (unique):
system bazy danych sprawdza, czy zawartość pola nie pokrywa się z już istniejącymi rekordami;
niemożliwe jest wprowadzenie dwóch rekordów o identycznej zawartości pola unikatowego;
klucz podstawowy jest z definicji polem unikatowym.
Pola niepuste (not null):
system bazy danych sprawdza, czy pole posiada zawartość, zapobiega wprowadzeniu rekordu z polem pustym, jeżeli pole to ma atrybut not null;
klucz podstawowy (i kandydujący) jest z definicji polem niepustym.
6. Klucze (identyfikatory) tablic:
Dzięki kluczom jest możliwe definiowanie relacji.
Poprawnie zdefiniowanie kluczy umożliwia płynną pracę z bazą danych.
Dzielą się na kilka rodzajów, z których każdy pełni bardzo ważną rolę w strukturze relacyjnej bazy danych:
wiodący,
kandydujący,
klucz kandydujący- każda tabela posiada przynajmniej jeden taki klucz. Jest to pole lub zestaw pól, które jednoznacznie identyfikuje pojedynczy rekord w danej tabeli.
Np. w dzienniku szkolnym jest to pole lp.; może to być również pole segmentowe: imię, nazwisko, imię ojca.
Aby któreś pole mogło zostać określone jako pole klucza kandydującego, musi bezwarunkowo spełniać pewne kryteria:
musi jednoznacznie identyfikować każdy rekord w tabeli, do której należy, co umożliwia później odwołanie się do danych w każdym rekordzie;
musi zawierać unikatowe wartości;
nie może zawierać wartości zerowej, ponieważ dla programu wartość zerowa
w rzeczywistości oznacza brak wartości, czyli nie ma możliwości na odwołanie się do tego rekordu;
nie może być polem segmentowym;
składa się z minimalnej liczby pól niezbędnych do uzyskania niepowtarzalności (nie wystarcza imię, nazwisko, imię ojca, to jeszcze imię matki i rozmiar buta);
jego wartość nie może być w żadnym stopniu opcjonalna (tak/ nie);
musi bezpośrednio określać wartość każdego pola w tabeli;
jego wartość powinno się modyfikować tylko w wyjątkowych przypadkach.
Inaczej mówiąc musi to być pole (lub kilka pól) niepowtarzalnych w całej tabeli (nie płeć,
a np. PESEL, nr polisy itp.).
Nie ma znaczenia, czy klucz kandydujący będzie się powtarzać w obrębie wielu tabel, nie może on się powtarzać w obrębie jednego wywołania (tabeli).
podstawowy,
klucz podstawowy- jest najważniejszy ze wszystkich kluczy- reprezentuje całą tabelę
w bazie danych. Musi tez spełniać wszystkie te same kryteria, co klucz kandydujący. Dzięki niemu możliwe jest tworzenie relacji pomiędzy tabelami. Musi być unikalny
w stosunku do wszystkich kluczy w tabeli. To pojedynczy wpis, który będzie charakteryzował całą tabelę.
Np. klucz podstawowy to numer klasy- 4b.
Najważniejsze typy klucza podstawowego:
klucze podstawowe jednopolowe,
klucze podstawowe wielopolowe- gdy żadne z pól nie gwarantuje, że wartości w nim zawarte będą unikatowe,
klucze typu „autonumeracje”- licznik zwiększany automatycznie przy dodawaniu nowej tabeli (rekordu), np. w MS Access.
Po zdefiniowaniu w tabeli klucza podstawowego, nie będzie można w jego pole wprowadzić wartości już istniejącej w tabeli, ani wartość Null (pustej).
Klucz podstawowy wybierany jest spośród kluczy kandydujących!!!
Zasady definiowania klucza podstawowego:
każda tabela powinna posiadać dokładnie jeden klucz podstawowy (kluczy kandydujących może być kilka);
wszystkie klucze podstawowe w bazie danych muszą się od siebie różnić- dwie tabele nie mogą posiadać identycznego klucza podstawowego.
obcy;
Klucz obcy wykorzystywany jest do tworzenia relacji pomiędzy para tabel.
Jest on kombinacją jednego lub więcej atrybutów przedstawionych w dwóch lub większej liczbie relacji.
Bardzo często będzie nową tabelą; może być kluczem podstawowym innej tabeli, np. do jednej szkoły chodzi rodzeństwo- w dzienniku jednego odwołanie do brata z innej klasy (klucz obcy).
7. Indeksowanie tabel.
Pole indeksowane- przyśpiesza 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 przyśpieszają wyszukiwanie, ale mogą też powodować spowolnienie aktualizacji dużych rekordów.
Nie należy stosować indeksu, jeśli indeksowane pola nie są używane do wyszukiwania, sortowania lub sprzężania.
Usunięcie indeksu nie powoduje usunięcia pola, ani danych wprowadzonych w polu.
Indeks- to zbiór danych ułatwiających szybkie dotarcie do informacji.
System zarządzania bazą danych.
8. Pojęcie transakcji.
Transakcja- jest sekwencją instrukcji, po wykonaniu której baza danych pozostaje spójna (spójność- zgodność z modelowaną rzeczywistością).
Transakcja jest operacją atomową, tzn. system zarządzania bazą danych wykonuje po kolei instrukcje wchodzące w skład transakcji i w przypadku niepowodzenia którejkolwiek z nich wycofuje instrukcje uprzednio wykonane.
9. Języki stosowane w bazach danych - celowość ich użycia:
język definiowania danych (Data Definition Language - DDL), który umożliwia definiowanie struktury danych przechowywanych w bazie, czyli tworzenie schematu implementacyjnego (implementacja- wdrożenie bazy danych);
język manipulowania danymi (Data Manipulation Language - DML), który umożliwia wypełnianie, modyfikowanie i usuwanie informacji z bazy danych;
język sterowania danymi (Data Control Language - DCL), który umożliwia sterowanie transakcjami (tez wycofanie się z nich);
język zapytań (Query Language). który umożliwia pobieranie z bazy informacji zgodnych z podanymi warunkami (najczęściej z niego korzystamy, np. w Google; najpopularniejszy SQL).
Systemy baz danych będące w powszechnym użyciu
10. Portale oraz złożone witryny internetowe jako przykład obiektowych baz danych.
Przykłady wykorzystania obiektowych baz danych:
serwer www:
dane przechowywane na serwerze www składają się ze stron napisanych w języku html
Strony są połączone między sobą odsyłaczami
Każda strona składa się z następujących podstron, które z kolei składają się z następujących podstron, tworząc tym samym strukturę hierarchiczną
Taka architektura może być doskonale opisana za pomocą modelu obiektowego
Coraz częściej serwery www przechowują dane natury multimedialnej, które można opisywać jako obiekty
Internetowa baza danych
Architektura trójwarstwowa
Warstwa klient- komputer podłączone do Internetu, przeglądarki internetowej
Warstwa środkowa- serwer www mechanizm obsługi skryptów
Warstwa bazy danych- SZBD, pliki bazy danych
System klient- serwer
Elementy internetowej bazy danych:
Serwer www z dostosowaniem skryptów
Baza danych- mySQL
Interpreter skryptów- PHP
Strony www statyczne (HTML)- formularze
Skrypty JavaScript- kontrolowanie poprawności danych
Skrypty PHOP lub CGI- przetwarzanie danych generowanie dynamizmu stron www
11. Bazy multimedialne - problemy związane z ich zaprojektowaniem oraz wdrożeniem.
MBD to bazy danych których przeznaczeniem jest przechowywanie i wyszukiwanie danych dotyczących zawartości multimedialnych. Baza danych jest multimedialna, jeżeli w kryteriach wyszukiwania można uwzględnić dane multimedialne, nie mające postaci tekstowej, np. bazy danych fraz muzycznych, zapytanie w postaci dźwiękowej wprowadzone za pomocą mikrofonu lub instrumentu.
PROBLEMY zw. z zaprojektowaniem:
opracowanie właściwego algorytmu parametryzacji
opracowanie właściwego algorytmu dopasowania wzorców
PROBLEMY zw. z wdrożeniem:
mogą nie być szybkie
programy typu OCR popełniają błędy, aczkolwiek np. „Fine Reader” uczy się na podstawie tego, co już poprawiliśmy
12. Idea stosowania baz rozproszonych.
Rozproszone bazy danych są stosowane ze względu na zwiększoną wydajność przetwarzania na wielu komputerach jednocześnie.
Jeżeli mamy
bazy „klient- serwer”- jeden serwer, wielu klientów,
serwery lustrzane - optymalizacja dostępu
to mówimy o rozproszonych systemach baz danych - wiele serwerów, centralizacja magazynowania danych. Często są bazami obiektowymi.
13. Baza MS Access; charakterystyka płaszczyzn projektanta i użytkownika.
płaszczyzna projektanta (możliwy pełny dostęp poprzez model danych),
płaszczyzna użytkownika (tworzenie formularzy, dzięki którym jest możliwy dostęp do danych),
wyszukiwanie, modyfikacja, dopisywanie, usuwanie danych- w obu płaszczyznach,
na podstawie mechanizmów płaszczyzny projektanta możliwe jest tworzenie płaszczyzny użytkownika (interfejs użytkownika).
14. Zagrożenia dla współczesnego człowieka mogące wynikać z powszechnego użycia systemów baz danych.
Kiedy używać systemów zarządzania bazą danych (SZBD)?:
duża ilość danych
jednoczesny dostęp wielu użytkowników
istnieją powiązania pomiędzy danymi
więcej niż jeden rodzaj rekordu
ograniczenia danych (np. długość pola)
potrzeba uzyskiwania raportów z danych
potrzeba szybkiego wyszukiwania danych wg kryteriów
potrzeba łatwego dodawania, usuwania i modyfikowania danych
6