Modele baz danych

advertisement
Baza danych to kolekcja danych umieszczonych w określony sposób w strukturach odpowiadająca założonemu modelowi danych. W
potocznym ujęciu obejmuje dane oraz program komputerowy wyspecjalizowany do gromadzenia i przetwarzania tych danych. Program
taki (lub zestaw programów) nazywany jest "Systemem zarządzania bazą danych" - ang. DataBase Management System (DBMS).
(Ponieważ określenie "system zarządzania bazą danych" jest niewygodne w użyciu, to często samo oprogramowanie nazywa się również
"bazą danych", lub DBMS'em).
Bazy danych operują głównie na danych tekstowych i liczbowych, lecz większość współczesnych baz umożliwia przechowywanie
danych binarnych typu: grafika, muzyka itp.
Bazy danych można podzielić według struktur danych których używają:
1.
2.
3.
4.
5.
bazy kartotekowe (proste) - każda tablica danych jest samodzielnym dokumentem i nie może współpracować z innymi
tablicami. Do baz tego typu należą liczne programy typu - książka telefoniczna, książka kucharska, spis książek, kaset lub płyt.
Wspólną cechą tych baz jest ich zastosowanie w jednym wybranym celu.
bazy relacyjne (złożone) - wiele tablic danych może współpracować ze sobą. Bazy relacyjne posiadają wewnętrzne języki
programowania, wykorzystujące zwykle SQL do operowania na danych, za pomocą których możemy tworzyć zaawansowane
funkcje obsługi danych. Relacyjne bazy danych (jak również przeznaczony dla nich standard SQL) oparte są na kilku prostych
zasadach:
1. Wszystkie wartości danych oparte są na prostych typach danych.
2. Wszystkie dane w bazie relacyjnej przedstawiane są w formie dwuwymiarowych tabel (w matematycznym żargonie
noszących nazwę "relacji"). Każda tabela zawiera zero lub więcej wierszy (w tymże żargonie - "krotki") i jedną lub
więcej kolumn ("atrybuty"). Na każdy wiersz składają się jednakowo ułożone kolumny wypełnione wartościami, które
z kolei w każdym wierszu mogą być inne.
3. Po wprowadzeniu danych do bazy możliwe jest porównywanie wartości z różnych kolumn, zazwyczaj również z
różnych tabel, i scalanie wierszy, gdy pochodące z nich wartości są zgodne. Umożliwia to wiązanie danych i
wykonywanie stosunkowo złożonych operacji w granicach całej bazy danych.
4. Wszystkie operacje wykonywane są w oparciu o logikę, bez względu na położenie wiersza tabeli. Nie można więc
zapytać o wiersze, gdzie (x=3) bez wiersza pierwszego, trzeciego i piątego. Wiersze w relacyjnej bazie danych
przechowywane są w porządku zupełnie dowolnym - nie musi on odzwierciedlać ani kolejności ich wprowadzania, ani
kolejności ich przechowywania.
5. Z braku możliwości identyfikacji wiersza przez jego pozycję pojawia się potrzeba obecności jednej lub więcej kolumn
niepowtarzalnych w granicach całej tabeli, pozwalających odnaleźć konkretny wiersz. Kolumny te określa się jako
"klucz podstawowy" (primary key) tabeli.
bazy obiektowe
strumieniowe bazy danych
temporalne bazy danych
Podstawowe funkcje bazy danych to:







projektowanie rekordów
o nazwa pola
o długość pola
o rodzaj pola (tekstowe, liczbowe, logiczne)
edycja (dopisywanie, usuwanie, poprawianie rekordów)
sortowanie
wyszukiwanie i selekcja danych
tworzenie zapytań
tworzenie raportów
drukowanie
UWAGA: W potocznym znaczeniu przyjęło się użycie pojęcia Baza danych określając system zarządzania danymi. Jednak w ścisłej
nomenklaturze przez bazę danych rozumiemy zbiór danych zarządzany przez system zarządzania danymi. System zarządzania danymi
zapewnia metody dostępu do danych.
Tabela
From Wikipedia
Skocz do: navigation, szukaj
Tabela - sposób zapisu i przedstawiania informacji, w którym dane umieszcza się w odpowiednio rozmieszczonych polach. Pola te
utworzone są poprzez poziome i pionowe linie. Miejsce pomiędzy dwoma sąsiednimi pionowymi liniami nazywa się kolumną, a miejsce
pomiędzy dwoma sąsiednimi poziomymy liniami nazywa się wierszem. Pierwszy wiersz tabeli nazywa się nagłówkiem. Tabele
umożliwiają szybsze zapoznanie się z niektórymi rodzajami informacji oraz ułatwiają ich porównywanie.
Rekord - struktura danych
Rekord zwany w niektórych językach po prostu strukturą (ang. structure, struct, record) (logiczny odpowiednik to krotka).
Jest to obiekt programistyczny, grupa danych - takiego samego lub różnego typu - posiadająca swoją ustaloną strukturę, oraz możliwość
zmiany i odczytania jego elementów.
W odróżnieniu od tablic zawierających wiele elementów tego samego typu, typem elementu tablicy może być również rekord
(struktura), a tablica może być składową rekordu.
Przykładowy rekord dotyczący osoby pracownika może zawierać np.:






Nazwisko - dana typu string (lub character)
Imię - j.w.
Data urodzenia - dana typu string lub rekord typu data
Miejsce zamieszkania - dana typu string lub rekord typu adres
Data zatrudnienia - j.w.
stanowisko - dana typu string lub rekord typu stanowisko
Użyty tutaj rekord typu data może być definiowany jako:



rok - liczba całkowita lub string (4 cyfry)
miesiąc - liczba całkowita lub string (2 cyfry)
dzień - j.w.
Itd.
Model relacyjny
From Wikipedia
(Przekierowano z Relacyjna baza danych)
Skocz do: navigation, szukaj
Model relacyjny to model baz danych oparty na postulatach relacyjności. Twórcą teorii relacyjnych baz danych jest nieżyjący już Edgar
F. Codd. Postulaty te zostały opublikowane po raz pierwszy w A Relational Model of Data for Large Shared Data Banks.
Dane w modelu relacyjnym są reprezentowane jako zbiór krotek, w szczególności w znormalizowanych bazach danych wszystkie one są
unikalne i nie gra roli ich kolejność, a dostęp do nich jest realizowany za pomocą algebry relacji - czyli dostep do danych definiujemy
poprzez operatory relacyjne takie jak: rzutowanie, selekcja, złączenie, suma, różnica, produkt kartezjański . Ograniczenie redundancji
danych dokonuje się w procesie przejścia do kolejnych postaci normalnych. Zbiory danych powiązane są logicznie za pomocą encji. W
ten sposób uniezależnia się widziany przez użytkownika obraz bazy danych od jej postaci fizycznej.
Na modelu relacyjnym oparta jest relacyjna baza danych (RDBMS ang. Relational Database Management Systems) - baza danych, w
której dane są przedstawione w postaci relacyjnej, gdzie relacja reprezentowana jest przez tablicę (tablica=relacja, stąd nazwa) a tablice
są pewnym zbiorem rekordów o identycznej strukturze i wewnętrznie powiązanych za pomocą związków zachodzących pomiędzy
danymi. Powoduje to ułatwienie zarządzania bazą danych w stosunku do tradycyjnego podejścia, gdzie dane są przechowywane w
postaci strumienia. Takie podejście ułatwia wprowadzania zmian, zmiejszenie możliwość pomyłek, ale dzieje się to kosztem
wydajności. Tradycyjną, nierelacyjną bazą danych jest BerkeleyDB.
Większość współczesnych relacyjnych baz danych korzysta z jakiejś wersji języka SQL pozwalajacego wprowadzać zmiany danych w
bazie i wybieranie informacji z bazy danych. Język ten opiera się na motorze bazy danych, który pozwala zadawać w języku SQL
pewnego rodzaju pytania (kwerendy) i wyświetlać dane, które spełniają warunki zapytania, a także wykonywać operacje wstawiania
danych, usuwania danych i ich aktualizacji. Język SQL zapewnia również zarządzanie bazą danych. Informacja o samej bazie
przechowywana jest w postaci relacji (tabel) wewnątrz bazy danych.
Sukces relacyjnych baz danych leży w istnieniu formalnej matematycznej struktury zwanej rachunkiem relacyjnym, pozwalającym
przeprowadzić automatyczne sprawdzanie pewnych konstrukcji, gwarantującym wykonalnośc pewnych operacji i spójnośc zbiorów
danych. Pierwszy dokument opisujący stosowane do dziś algorytmy zarządzania relacyjnymi bazami danych pt.: "A Relational Model of
Data for Large Shared Data Banks" został opublikowany przez E. F. Codda z laboratoriów IBM w roku 1970-tym.
Zobacz też: obiektowa baza danych, strumieniowa baza danych, dBASE, RDBMS, SQL.
4. Definiowanie kwerend
Istotą baz danych jest stworzenie możliwości efektywnego wyszukiwania informacji. Do tego celu służą kwerendy (ang.query), są one
obok tabel zawierających dane podstawowymi obiektami definiującymi schematy wyszukiwania pożądanej informacji. W MS Access
istnieją dwa języki definiowania kwerend, język SQL (ang. Structured Query Language) oraz język QBE (ang. Query By Example).
4.1 Kwerendy krzyżowe
Kwerendy dają możliwość gromadzenia danych lub wykonywania akcji na danych z kilku tabel lub kwerend. Na przykład można
obejrzeć informacje o klientach wraz z zamównieniami, które zostały przez nich złożone. Aby obejrzeć te informacje, potrzebne są dane
z tabel "Klienci" i "Zamówienia". Jeśli tabele w kwerendzie nie są ze sobą sprzężone program Microsoft Access nie wie, które rekordy
są ze sobą skojarzone, wyświetla więc każdą kombinację rekordów (tak zwany "iloczyn krzyżowy" lub "kartezjański") obu tabel. Jeśli
każda tabela zawiera 10 rekordów, w wynikach kwerendy znajdzie się 100 rekordów (10X10).
4.2 Kwerendy modyfikujące
Kwerendy modyfikujące pozwalają na wprowadzanie zmian w wielu rekordach. Istnieją cztery rodzaje kwerend modyfikujących:
usuwająca, aktualizująca, dołączajca i tworząca tabele.
4.2.1 Kwrenda usuwajaca
Usuwa grupę rekordów z jednej lub kilku tabel. Kwerenda usuwająca może być użyta na przykład do usunięcia produktów, które zostały
wycofane z oferty i na które nie ma zamówień. Użycie kwerendy usuwającej powoduje usunięcie całych rekordów, nie zaś wybranych
pól w rekordach.
4.2.2 Kwerenda aktualizująca
Dokonuje globalnych zmian w grupie rekordów w tabeli lub kilku tabelach. Na przykład można podwyższyć o 10% ceny wszystkich
produktów mlecznych lub dać pięcioprocentową podwyżkę wszystkim pracownikom należącym do określonej kategorii zawodowej. Za
pomocą kwerend aktualizujących można zmieniać dane w istniejących tabelach.
4.2.3 Kwerenda dołączająca
Dodaje grupę rekordów z tabeli lub tabel na końcu innej tabeli lub tabel. Na przykład jeśli firmie przybywają nowi klienci, których dane
znajdują się w osobnej bazie danych, aby uniknąć wpisywania wszystkich tych informacji, można dołączyć je do tabeli "Klienci".
Kwerendy dołączające są również przydatne w następujących sytuacjach:
- Dołączanie pól wybranych na podstawie kryteriów. Na przykład można dołączyć tylko nazwy i adresy klientów o największych
zamówieniach.
- Dołączanie rekordów w sytuacji, gdy część pól jednej tabeli nie ma swoich odpowiedników w drugiej tabeli. Na przykład tabela
"Klienci" w przykładowej bazie danych Northwind ma 11 pól. Jeśli do tej tabeli chcemy dołączyć rekordy z tabeli, w której 9 z 11 pól
jest takich samych, jak w tabeli "Klienci", kwerenda dołączająca uwzględni tylko dane w dopasowanych polach, pozostałe zaś będą
zignorowane.
KWERENDA KRZYŻOWA
Wyświetla zliczone wartości z pola i porządkuje wartości w wiersze i kolumny. Łączy analizy zliczania oraz sumowania. Ma budowę
zbliżoną do tabeli, gdyż składa się z wierszy i kolumn. Każdy wiersz to oddzielny rekord, a kolumna to pole w danym rekordzie.
Niekiedy kwerenda powinna zawierać jedynie ograniczony zakres danych.
KWERENDA MODYFIKUJˇCA
Pozwala na wprowadzenie zmian w wielu rekordach. Istnieją cztery rodzaje kwerend modyfikujących: usuwająca, aktualizująca,
dołączająca i tworząca tabele.
KWERENDA USUWAJˇCA
Usuwa grupę rekordów z jednej lub kilku tabel. Użycie kwerendy usuwającej powoduje usunięcie całych rekordów, nie zaś wybranych
pól w rekordach.
KWERENDA AKTUALIZUJˇCA
Dokonuje globalnych zmian w grupie rekordów w tabeli lub kilku tabelach. Za pomocą kwerend aktualizujących można zmienić dane
w istniejacych tabelach.
KWERENDA DOŁˇCZAJˇCA
Dodaje grupę rekordów z tabeli lub tabel na końcu innej tabeli lub tabel. Kwerendy dołaczające są również przydatne w następujących
sytuacjach:
- dołączanie pól wybranych na podstawie kryteriów;
- dołączanie rekordów w sytuacjach, gdy część pól jednej tabeli nie ma swoich odpowiedników w drugiej tabeli.
KWERENDA TWORZˇCA TABELĘ
Tworzy nowa tabelę z wszystkich lub części danych znajdujących się w jednej lub kilku tabelach. Kwerendy tworzące tabelę są
przydatne w następujacych sytuacjach:
- tworzenie tabel, które maja być eksportowane do innych baz danych programu Microsoft Access;
- tworzenie raportów zawierających dane od określonego momentu;
- tworzenie kopii zapisowej tabeli;
- tworzenie tabeli archiwalnej, zawierającej nieaktualne rekordy;
- poprawianie sprawności działania formularzy i raportów utworzonych na podstawie kwerend korzystających z danych z wielu tabel lub
instrukcji SQL;
Wstęp
Co to jest baza danych?
Nawet nie korzystając z komputerów mamy do czynienia z bazami danych (świadomie lub nieświadomie). Przykładem bazy danych
może być kartka papieru zawierająca dwie tabelki; pierwsza zawiera listę pracowników przedsiębiorstwa wraz z ich danymi
personalnymi: imieniem, nazwiskiem, datą urodzenia, adresem zamieszkania, stanowiskiem służbowym, natomiast druga tabelka
zawiera listę płac dla tych samych pracowników wraz takimi danymi jak: imieniem, nazwiskiem, kwotami płacy zasadniczej, premii,
płacy brutto za miesiąc maj 1999 r:
PRACOWNICY
Imię i nazwisko
Data urodzenia
Adres
Stanowisko
Zenon Adamski
12.09.1960
Sopot ul. Lipowa 10/2
Dyrektor
Zenon Biernacki
01.04.1963
Sopot ul. 23 Marca 23/4
Kierownik brygady
Jerzy Wołoś
09.06.1974
Gdynia ul. Morska 123/6
Murarz-tynkarz
WYNAGRODZENIE ZA M-C MAJ 1999 r.
Imię i nazwisko
Płaca zasadnicza
Premia
Płaca brutto
Zenon Adamski
2000,- zł
300,- zł
2300,- zł
Zenon Biernacki
1500,- zł
100,- zł
1600,- zł
Jerzy Wołoś
800,- zł
50,- zł
850,- zł
Jednak w przypadku dużej ilości informacji lepiej jest przechowywać je w komputerach w postaci bazy danych.
Bazą danych nazywamy zbiór danych w postaci tabel oraz narzędzi stosowanych do gromadzenia, przekształcania oraz wyszukiwania
danych.
Tabelą w bazie danych nazywamy zbiór rekordów opisujących obiekty np. pracownicy zawierających informacje o tych obiektach w
sposób ujednolicony.
Rekord – pojedynczy wiersz w tabeli.
Polem nazywamy najmniejszą część rekordu, która przechowuje jedną daną.
Przykład: W kolejnych kolumnach obu tabelek są zgromadzone dane opisujące pracowników przedsiębiorstwa. Każdy rekord zawiera
dane opisujące jednego pracownika. Każde przecięcie się rekordu z kolumną tworzy pole zawierające pojedynczą daną.
Co to jest relacyjna baza danych?
Nasza przykładowa baza danych składa się z 2 tabel. Po przeprojektowaniu w każdej z nich pojawił się dodatkowy atrybut (pole,
kolumna) o nazwie Nr , który służy do powiązania rekordów pomiędzy obiema tabelami tak, aby nie trzeba było przechowywać imienia
i nazwiska podwójnie. Powiązanie to nazywa się relacją. W tym przypadku relacja wiąże 1 rekord z pierwszej tabeli z 1 rekordem w
drugiej tabeli itd.
Podsumowanie: Relacyjną bazą danych nazywamy bazę danych w postaci tabel połączonych relacjami.
Ogólny schemat logiczny bazy danych
Podsumowanie:Baza danych składa się z tabel, tabele składają się z rekordów, rekordy składają się z pól. Pola mogą przechowywać
elementarne dane, które są niepodzielne, czyli zakładamy, że mniejszych jednostek danych nie ma.
Pojęcia podstawowe
Dana (ang.data) – najmniejsza, elementarna jednostka informacji o obiekcie będąca przedmiotem przetwarzania komputerowego.
Relacyjna baza danych (ang.database) – zbiór danych w postaci tabel połączonych relacjami.
Typ danej (ang. data type) - rodzaj danej, czyli forma zapisu informacji:











znakowy (ang.character) – dana może przybierać tylko wartości znaków pisarskich
liczbowy (ang.number) – dana może przechowywać tylko liczby
logiczny (ang.logical) – dana może przybierać tylko dwie wartości: prawda, fałsz (tak, nie)
data (ang.date) – dana może przyjmować postać daty i czasu np. rok.miesiąc.dzień godz:min:sek
alfanumeryczny (ang.alphanumeric) – dana może przybierać wartości znaków ASCII oraz cyfry
numeryczny (ang.numeric) – wartościami danej mogą być tylko cyfry i znaki: + (plus), - (minus).
walutowy (ang.currency) – dana może przyjmować wartości liczbowe razem z symbolem waluty
notatnikowy (ang.memo) – dana może być oddzielnym zbiorem tekstowym służącym do przechowywania dowolnych opisów.
binarny (ang.binary) – dana może być np. plikiem dźwiękowym lub filmowym.
graficzny (ang.graphic) – dana przechowuje grafikę np. rysunki.
obiektowy (ang.OLE) – dana przechowuje obiekty do których dostęp dokonuje się za pomocą techniki OLE (ang. object
linking and embleding), czyli obiektów tworzonych przez inne aplikacje.
Format danej (ang. data format) – postać wprowadzania i wyświetlania danej np. format 99-999 oznacza, że dana numeryczna może
być wyświetlona jako ciąg 2 cyfr, pojedynczej kreski i 3 cyfr. Format ten może służyć do wprowadzani i wyświetlania kodu
pocztowego.
Rekord (ang.record) – zwany także krotką lub wierszem, to pozioma struktura danych opisująca jeden obiekt. Rekord składa się z pól
opisujących dokładnie cechy obiektu np. pojedynczego pracownika.
Pole (ang. field) – zwane także atrybutem lub kolumną, to struktura danych opisująca pojedynczą daną w rekordzie np. nazwisko
pracownika.
Tabela (ang. table) - nazywamy zbiór rekordów opisujących obiekty w sposób ujednolicony tj. każdy rekord posiada te same nazwy pól.
Uwaga: w niektórych systemach baza danych np. dBase każda tabela nazywana jest bazą danych i jest przechowywana w oddzielnych
plikach.
Klucz podstawowy (ang. primary key field)
Klucz podstawowy (ang. primary key) zwany też kluczem głównym to jedno lub więcej pól, których wartość jednoznacznie identyfikuje
każdy rekord w tabeli. Taka cecha klucza nazywana jest unikatowością. Klucz podstawowy służy do powiązania rekordów w jednej
tabeli z rekordami z innej tabeli. Klucz podstawowy jest nazywany kluczem obcym, jeśli odwołuje się do innej tabeli. Na przykład, w
bazie pracowników kluczem podstawowym może być numer ewidencyjny pracownika.
Klucz podstawowy jednopolowy (ang. single primary key)
Jeśli istnieje pole zawierające dane unikatowe, jak na przykład numer katalogowy czy numer identyfikacyjny, można je zadeklarować
jako klucz podstawowy. Jeśli jednak w polu tym powtarzają się wartości, klucz podstawowy nie zostanie ustawiony. Aby znaleźć
rekordy zawierające te same dane, należy usunąć rekordy o powtarzających się wartościach bądź zdefiniować wielopolowy klucz.
podstawowy.
Klucz podstawowy wielopolowy zwany też kluczem złożonym (ang.composed key)
W sytuacji, gdy żadne z pól nie gwarantuje unikatowości wartości w nim zawartych, należy rozważyć możliwość utworzenia klucza
podstawowego złożonego z kilku pól.
Relacja (ang.relation)
Po podzieleniu danych na tabele i zdefiniowaniu pól kluczy podstawowych trzeba wprowadzić do systemu bazy danych informacje na
temat sposobu poprawnego łączenia powiązanych danych w logiczną całość. W tym celu definiuje się relacje między tabelami.
Typy relacji (ang.relation types)
1. relacja jeden-do-jednego
W relacji jeden-do-jednego każdy rekord w tabeli A może mieć tylko jeden dopasowany rekord z tabeli B, i tak samo każdy rekord w
tabeli B może mieć tylko jeden dopasowany rekord z tabeli A. Ten typ relacji spotyka się rzadko, ponieważ większość informacji
powiązanych w ten sposób byłoby zawartych w jednej tabeli. Relacji jeden-do-jednego można używać do podziału tabeli z wieloma
polami, do odizolowania części tabeli ze względów bezpieczeństwa, albo do przechowania informacji odnoszącej się tylko do podzbioru
tabeli głównej.
2. Relacja jeden-do-wielu
Relacja jeden-do-wielu jest najbardziej powszechnym typem relacji.
W relacji jeden-do-wielu rekord w tabeli A może mieć wiele dopasowanych do niego rekordów z tabeli B, ale rekord w tabeli B ma
tylko jeden dopasowany rekord w tabeli A.
3. Relacja wiele-do-wielu
W relacji wiele-do-wielu, rekord w tabeli A może mieć wiele dopasowanych do niego rekordów z tabeli B i tak samo rekord w tabeli B
może mieć wiele dopasowanych do niego rekordów z tabeli A. Jest to możliwe tylko przez zdefiniowanie trzeciej tabeli (nazywanej
tabelą łącza), której klucz podstawowy składa się z dwóch pól ž kluczy obcych z tabel A i B. Relacja wiele-do-wielu jest w istocie
dwiema relacjami jeden-do-wielu z trzecią tabelą. Na przykład, tabele "Zamówienia" i "Produkty" są powiązane relacją wiele-do-wielu
zdefiniowaną przez utworzenie dwóch relacji jeden-do-wielu z tabelą "Opisy zamówień".
Sortowanie (ang.sorting)
Sortowaniem rekordów nazywamy ich porządkowanie według jakiegoś kryterium. Kryterium to nazwa lub nazwy pól według których
odbywa się sortowanie. Przykładowo może być to sortowanie rosnące (sortuje wartości w porządku rosnącym (od A do Z, od 0 do 9)
lub sortowanie malejące (sortuje wartości w porządku malejącym od Z do A, od 9 do 0).
Zapytanie (ang.query)
Zapytanie, czyli kwerenda to taka konstrukcja językowa, która pozwala na wyszukiwanie danych z bazy danych za pomocą zadawania
pytań. Może to być specjalna konstrukcja języka programowania lub okno graficzne w którym należy podać parametry poszukiwanych
danych. W zaawansowanych systemach baz danych kwerend można używać także do wyświetlania, zmiany i analizy danych.
Kwerenda wybierająca jest najczęściej używanym rodzajem kwerendy. Służy do otrzymywania danych z tabeli lub tabel i
wyświetlania wyników w arkuszu danych, w którym można je następnie przeglądać. Kwerendy wybierające mogą być również używane
do grupowania rekordów i obliczania sum, zliczeń, wyliczania średnich i przeprowadzania innych obliczeń.
Pojęcia zaawansowane
Filtr (ang. filter)
Filtr pozwala na wyszukiwanie rekordów spełniające pojedyncze kryterium lub wiele kryteriów albo sortować rekordy w porządku
rosnącym lub malejącym.
Formularz (ang. screen form)
Formularz, czyli tzw. formatka ekranowa służy do wygodnego wprowadzania, edytowania i usuwania danych w tabeli. Wymienione
operacje wykonuje się za pomocą okna w którym użytkownik obsługuje pola. Znaczenie pól opisane jest za pomocą etykiet, czyli nazw
pól.
Raport (ang.report)
Raportem nazywamy konstrukcję systemu bazy danych, która służy do definiowania postaci i zawartości danych pobieranych z tabel, a
następnie umieszczanych na wydruku.
Procedura (ang.procedure)
Procedurą nazywamy serię poleceń zapisaną w języku programowania baz danych, służącą do wykonywania obsługi na elementach
bazy: tabelach, formularzach, raportach, kwerendach.
Makro (ang. macro)
Ciąg akcji wykonywanych na tabelach, formularzach, raportach, kwerendach uruchamianych przyciskami umieszczonymi w oknie np.
formularza lub gdy wystąpi jakieś zdarzenie np. kasowanie rekordu.
Moduł (ang.module)
Moduł to podprogram w systemie bazy danych, który wykonuje wiele funkcji użytkowych powiązanych ze sobą tematycznie np.
obsługa danych personalnych pracowników lub obliczanie kwot wypłat albo wydruk listy płac. Funkcje te umieszcza się zwykle w menu
głównym aplikacji służącej do przetwarzania danych. W niektórych bazach danych aplikacja ta jest nazywana programem
wykonawczym bazy (ang. run-time system).
System zarządzający bazami (ang.database management system)
Jest to program zarządzający (system bazy danych) bazami danych oraz służący do wykonywania tabel, formularzy, kwerend, raportów,
makr, procedur, podprogramów oraz produkcji gotowych aplikacji.
Najpopularniejsze systemy zarządzania relacyjnymi bazami danych dla komputerów klasy IBM PC to: Access, Dbase, Delphi, FoxPro,
Informix, Paradox.
Program wykonawczy bazy (ang.run-time system)
Gotowa aplikacja bazy danych w postaci pliku(ów ) typu EXE sprzedawana użytkownikowi w celu dostarczenia mu systemu (zbioru
programów) za pomocą którego może on przetwarzać swoje dane bez konieczności znajomości podstaw baz danych .
Pytania kontrolne
Podaj definicję bazy danych.
Omów strukturę pojedynczej tabeli, która jest podstawowym elementem bazy danych.
Podaj definicję tabeli, rekordu, pola.
Jaką bazę danych nazywamy relacyjną?
Wymień co najmniej cztery typy danych.
Podaj definicję klucza podstawowego.
Wyjaśnij pojęcie relacji.
Opisz na czym polega relacja jeden-do-jednego?
Opisz na czym polega relacja jeden-do-wielu?
Opisz na czym polega relacja wiele-do-wielu?
W jakim celu stosuje się indeksowanie pola?
Podaj definicję sortowania.
Podaj definicję kwerendy tj. zapytania.
Opisz przeznaczenie:
a. formularzy,
b. raportów,
c. kwerend.
15. Podaj definicję systemu zarządzani bazami danych.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Co to jest baza danych?
# Co to jest baza danych?
# Wymień rodzaje baz danych i je krótko scharakteryzuj.
# Co to jest relacyjna baza danych?
# Wymień i scharakteryzuj obiekty MS Access (np. tabele).
# Co to jest klucz podstawowy (główny) w bazie danych?
# Co to jest klucz obcy w bazie danych?
BAZA DANYCH
Baza danych to zbiór kartotek i informacji, które można przetwarzać za pomocą odpowiednich programów komputerowych.
Multimedialne bazy danych zawierają pola różnorodnego typu: numeryczne, znakowe, tekstowe, a także wskaźnikowe odnoszące się do
zapamiętanych w komputerze cyfrowych obrazów, animacji, dźwięków. W zależności od charakteru przedmiotu zainteresowania bazy
danych tworzą wielokolumnowe tabele spełniające ścisłe wymogi.
Bazę danych można nazwać bazą informacji, ponieważ obejmuje wszelkiego rodzaju zbiory informacji, które tworzone są za pomocą
kartotek, segregatorów, teczek na dokumenty, itp. Bazy danych umożliwiają szybkie wyszukiwanie informacji według określonego
kryterium nawet z bardzo dużego zbioru.
Informatycy mogą tworzyć programy - systemy informatyczne umożliwiające przetwarzanie danych. Do tworzenia tego typu systemów
używają odpowiednich programów, np.: Access lub FoxPro.
Aby program mógł przetworzyć informacje użytkownik musi je najpierw zgromadzić, np.: na twardym dysku.
Niektóre bazy danych zawierają już pewne informacje wprowadzone przez autorów programów - tak jest na przykład w słownikach czy
encyklopediach. Tymi informacjami mogą być np.: rysunki, animacje, muzyka umieszczone w programie.
Każdy użytkownik komputera może stworzyć własna bazę danych, pod warunkiem, że zna podstawowe metody jej tworzenia. Baza
danych może zawierać jedną lub więcej tabel, w których przechowywane będą połączone informacje.
Tabela bazy danych zwana również arkuszem danych podzielona jest na kolumny i wiersze. Pola tabeli określają rodzaj informacji
zawartych w poszczególnych w poszczególnych kolumnach. Wiersze tabeli to rekordy, zawierają informacje o jednym elemencie tabeli
bazy danych i są ponumerowane. Aby posortować (uporządkować) rekordy, należy wskazać pola, według których mają być
posortowane, oraz ustalić porządek - rosnący lub malejący. Na rekordach można wykonywać różne operacje, np.: usuwanie lub
wstawianie nowych rekordów.
Aby wyszukać informację należy utworzyć kryterium wyboru, które będziemy nazywać zapytaniem lub filtrem.
Ze względu na budowę:
a) Relacyjne bazy danych
b) Hierarchiczne bazy danych
c) Sieciowe bazy danych
d) Obiektowe bazy danych
e) Obiektowo - relacyjne bazy danych
Ze względu na sposób zarządzania nimi:
a) Operacyjne bazy danych
b) Analityczne bazy danych
Wszystkie te typy baz łączą kilka podstawowych cech, które powinny spełniać systemy baz danych:
Możliwość bezpośredniego, interakcyjnego, uzyskiwania informacji z bazy poprzez formułowanie pytań.
Możliwość przechowywania danych w postaci trwałej i zarządzanie pamięcią wtórną, w której przechowuje się informacje bazy danych.
Zapewnienie kontroli jednoczesnego dostępu do danych.
Możliwość odzyskiwania danych w wypadku błędów pracy systemu i ochrony danych przed niepowołanymi użytkownikami.
Analityczne bazy danych. Ten typ baz wykorzystywany jest przede wszystkim do przechowywania danych historycznych i informacji
związanych z pewnymi wydarzeniami. Są to dane, które nie wymagają modyfikowania, są one statyczne tzn. bardzo rzadko, lub w ogóle
nie ulegają zmianom. Bazy te są wykorzystywane po to, aby np. przeanalizować tendencje rynkowe lub na podstawie długoterminowych
danych statystycznych przewidzieć prognozy na przyszłość. Przykładem takiej bazy są np. bazy testów chemicznych lub danych
pomiarowych.
Operacyjne bazy danych. Bazy operacyjne są to bazy 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ą. Zazwyczaj to ten typ bazy można spotkać w różnych organizacjach,
firmach. Przykładem takiej bazy danych są np. bazy inwentaryzacyjne lub bazy obsługi zamówień.
Hierarchiczne bazy danych Jest to pierwsza udana elektroniczna baza danych, do tej pory jeszcze używana w dużych magazynach.
Powstała na początku lat sześćdziesiątych, oparta jest o strukturę drzewiastą o wielu gałęziach. Wszystkie elementy danych w bazie
hierarchicznej są zorganizowane w bardzo logiczny sposób, to znaczy każda wartość obiektu danych jest logicznie powiązaną z jedną
lub kilkoma wartościami innego obiektu danych. Hierarchiczna baza danych ma wiele zalet: przede wszystkim jest łatwa do wdrożenia,
ma bardzo prostą i łatwą do zrozumienia strukturę, oraz zazwyczaj bardzo krótki czas dostępu (o ile baza danych jest poprawnie
napisana oraz poprawnie są stworzone relacje). Wadą takiej bazy jest to, że pozwala zobrazować jedynie relacje jedno-jedno i jednowiele lub wiele-jedno.
Sieciowe bazy danych Jest to zmodyfikowana wersja modelu hierarchicznego, stworzona przede wszystkim w celu rozwiązania
problemów związanych z bazami danych opartych właśnie o model hierarchiczny. Elementy danych w tym modelu, są zorganizowane w
strukturę drzewiasta podobnie jak w przypadku modelu hierarchicznego. Jednak, inaczej niż w modelu hierarchicznym, model sieciowy
pozwala na definiowanie relacji wiele-wiele w postaci struktury drzewiastej bez powtarzania poszczególnych wartości w ramach obiektu
danych. Zaletą sieciowego modelu baz danych jest szybkość, z jaką można odczytać dane, oraz większe możliwości bazy.
Obiektowe bazy danych (ODBMS)Obiektowe bazy danych nie są określone żadnym oficjalnym standardem, nie ma żadnych teorii, czy
nawet ogólnie przyjętego zbioru zasad dotyczących konstruowania obiektowych systemów zarządzania bazami danych (OSZBD). Nie
ma, tak jak jest to w przypadku relacyjnych baz danych, ogólnie przyjętej metody projektowania takich baz, ani jednolitej terminologii
dotyczącej tej tematyki. Obiektowe bazy danych są efektem połączenia koncepcji opracowanych na gruncie: bazy danych, obiektowych
języków programowania i ogólnych rozważań na temat obiektowego postrzegania świata. Jednym z podstawowych celów tego typu
bazy danych jest bezpośrednie odwzorowanie obiektów i powiązań między nimi wchodzących w skład aplikacji na zbiór obiektów i
powiązań w bazie danych. 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 dynamicznie rozwijający się Internet i WWW.
Relacyjno - obiektowe bazy danych (ORDBMS)
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
Operacyjne bazy danych
Operacyjne bazy danych.Bazy operacyjne są to bazy 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ą. Zazwyczaj to ten typ bazy można spotkać w różnych organizacjach,
firmach. Przykładem takiej bazy danych są np. bazy inwentaryzacyjne lub bazy obsługi zamówień.
Analityczne bazy danych
Analityczne bazy danych.Ten typ baz wykorzystywany jest przede wszystkim do przechowywania danych historycznych i informacji
związanych z pewnymi wydarzeniami. Są to dane, które nie wymagają modyfikowania, są one statyczne tzn. bardzo rzadko, lub w ogóle
nie ulegają zmianom. Bazy te są wykorzystywane po to, aby np. przeanalizować tendencje rynkowe lub na podstawie długoterminowych
danych statystycznych przewidzieć prognozy na przyszłość. Przykładem takiej bazy są np. bazy testów chemicznych lub danych
pomiarowych
Relacyjne bazy danych (RDBMS)
Za autora technologii relacyjnych baz danych uważa się E. F. Codda. Ostatecznie standard RDBMS został opracowany przez ANSI
X3H2. Zwykle produkt kwalifikuje się przy pomocy wersji specyfikacji języka SQL’96 ostatni to SQL’92.
Model danych
Dane przechowywane są w tabelach, z których każda ma stalą ilość kolumn i dowolna ilość wierszy. Wiersze odpowiadają
niepodzielnym krotkom (tuple), a kolumny odpowiednim atrybutom (attribute). Kolumny zawierają dane określonego typu, po jednej
wartości w wierszu. Typy są zdefiniowane na etapie projektowania bazy danych i jest ich określona ilość, maja stały rozmiar i zwykle są
to ogólnie znane typy proste (liczba, data, godzina, ciąg znaków, znak, itp.). Każda tabela (relacja) ma zdefiniowany klucz (key) wyróżniony atrybut lub kilka atrybutów, którego wartość jednoznacznie identyfikuje dany wiersz.
Język zapytań
Dane z bazy są wybierane na podstawie wartości z konkretnych pól w krotkach. Zapytania mogą mieć prosta postać i wymagać danych z
wyłącznie jednej tabeli, jak również mogą być bardzo wyrafinowane wymagając od systemu operowania łączeniem (join),
zagnieżdżaniem (nesting), różnica i suma teorii zbiorów (set union/difference) oraz innymi operacjami.
Model obliczeniowy
Wszelkie przetwarzanie danych oparte jest na wartościach pól w krotkach. Krotki nie posiadają uniwersalnego identyfikatora. Nie ma
tez zabezpieczenia przed odnoszeniem się do innego wiersza tej samej tabeli. Przeglądanie wyników zapytań odbywa się przy pomocy
\\\"kursora\\\" umożliwiającego przeglądanie wiersza po wierszu. Podobnie ma się sprawa uaktualniania danych. Manipulacja relacjami
odbywa się w sposób globalny przy użyciu operatorów algebry relacji lub temu podobnych jeżyków - przetwarzanie wiersza po wierszu
nie jest dozwolone.
Relacyjna baza danych dominuje w zastosowaniach komercyjnych: ok. 95% rynku baz danych.
Access jest systemem zarządzania bazami danych, działającym w środowisku WINDOWS. Dzięki specyficznej organizacji bazy danych
w postaci jednego pliku o rozszerzeniu .mdb Access oferuje znacznie bogatsze konwencje dotyczące nazewnictwa obiektów bazy
danych niż systemy, w których pojedynczym obiektom odpowiadają osobne pliki. Został on pomyślany tak, aby pomagać w zbieraniu,
odzyskiwaniu i prezentowaniu danych.
Access oferuje użytkownikom sześć zasadniczych rodzajów obiektów przeznaczonych do budowy systemu bazy danych. Są to tabele,
zapytania, formularze, raporty, makropolecenia i moduły. Każdemu z tych elementów można nadać nazwę składającą się maksymalnie z
64 znaków. Dozwolone są przy tym wszystkie znaki alfanumeryczne ( litery i cyfry ), spacje i znaki specjalne.
(1. Projektowanie bazy danych
Przy pierwszym uruchomieniu okno Accessa nie wygląda zbyt imponująco. Pasek menu zawiera tylko dwie pozycje: Plik i Pomoc.
Pasek narzędzi zawiera szereg przycisków, z których dostępne są na razie: Nowa baza danych, Otwórz bazę danych, Sufler i Pomoc.
Access oferuje cały zestaw pasków narzędzi, które są wyświetlane stosownie do wykonywanych przez nas czynności. Jedną z
ciekawych cech paska narzędziowego jest jego mobilność. Można go przeciągnąć myszką w dowolne miejsce i tak zmienić rozmiar
okienka, w którym wyświetlane są przyciski, by uzyskać największy komfort pracy.
2. Tabela w Accessie
Definiowanie tabeli w Accessie jest rzeczą łatwą, wystarczy bowiem w oknie bazy danych kliknąć zakładkę Tabela, a następnie przycisk
Nowy. Access wyświetli wtedy pole dialogowe z dwoma przyciskami: Kreatory tabel i Nowa tabela. Pierwszy z nich uruchamia jednego
z wielu „pomocników” - podprogramów, których zadaniem jest automatyczne tworzenie obiektów bazy danych według życzeń
użytkownika.
3. Projektowanie zapytań
Projektowanie zapytań odbywa się w oknie projektu zapytania. Aby je otworzyć należy:
- w oknie bazy danych kliknąć zakładkę Zapytanie, a następnie przycisk Nowy
- wybrać polecenie Plik | Nowy | Zapytanie
- kliknąć znajdujący się na pasku narzędziowym przycisk nowego zapytania.
W każdym przypadku pojawi się pole dialogowe z dwoma przyciskami: Kreatory zapytań i Nowe zapytanie. Tylko wybór tego drugiego
spowoduje otworzenie okna projektu zapytania. Pierwszy uruchomi procedurę automatycznego tworzenia zapytań, czyli jednego z
asystentów.
4. Projektowanie formularzy
Aby zbudować nowy formularz na „fundamencie” wybranej tabeli należy wyróżnić jej nazwę w oknie bazy danych i kliknąć przycisk
nowego formularza na pasku narzędziowym. Spowoduje to pojawienie się pola dialogowego Nowy formularz, w którym znajduje się
lista wszystkich tabel i zapytań Wybierz z nazwą wskazaną w oknie bazy danych oraz dwa duże przyciski: Kreatory formularzy i Pusty
formularz. Wybierając jeden z nich decydujemy się na skorzystanie z pomocy Accessa lub na budowę formularza od początku.
5. Projektowanie raportów
Aby utworzyć raport należy wyróżnić jego nazwę w oknie bazy danych i nacisnąć przycisk nowego raportu na pasku narzędzi lub użyć
polecenia Plik | Nowy | Raport. O ile rozwijana lista w polu dialogowym Nowy raport zawiera nazwę właściwego zapytania, klękamy
przycisk Kreator raportów. Pierwszy krok to wybór jednego z kilku dostępnych rodzajów raportów: Jednokolumnowego, Grupy
podsumowania, Wydruku seryjnego S Ford, Podsumowania lub Tabelarycznego.
6. Makropolecenia
Makropolecenia w Accessie to procedury, które można uruchomić i, których działanie powoduje wykonanie jednej lub kilku
predefiniowanych czynności, zwanych także akcjami. Każde makropolecenie to po prostu lista czynności wraz z ich argumentami i
ewentualnymi warunkami, decydującymi o tym, czy dana czynność jest wykonywana czy nie.
Na pojedyncze makropolecenie może składać się nie więcej niż 999 osobnych czynności. Wyrażenie warunkowe musi dać się zapisać za
pomocą maksymalnie 255 znaków. Z tylu też znaków może składać się komentarz, opisujący pojedynczą czynność w makropoleceniu.
Liczba ta jest także górną granicą długości pojedynczego argumentu czynności.
Najważniejsze z zastosowań makropoleceń:
- wykonanie dowolnego polecenia z dowolnego menu dostępnego w Accessie
- stworzenie indywidualnego paska menu wraz z poleceniami dla dowolnego formularza
- obsługa systemowych pól dialogowych, emulacja działań z użyciem klawiatury
- wyświetlanie własnych pól dialogowych z komunikatami
- sprawdzanie poprawności wprowadzanych danych
- zmiana wartości danych w dowolnych detalach formularzy i niektórych detalach raportów
- zmiana wartości prawie wszystkich atrybutów formularzy, raportów, ich sekcji i znajdujących się na nich detali
- filtrowanie wierszy wyświetlanych w formularzu, dowolna zmiana wiersza bieżącego, wyszukiwanie wierszy według
wyspecyfikowanych kryteriów
- otwieranie i zamykanie formularzy, drukowanie raportów, uruchamianie zapytań wyszukujących i modyfikujących, automatyczne
dostarczanie danych dla zapytań z parametrem
- uruchamianie innych aplikacji, zarówno dla Windows, jak i dla DOS-u, wymiana danych pomiędzy aplikacjami, import, eksport i
dołączanie tabel innych baz danych, arkuszy roboczych i plików tekstowych
- uruchamianie i zatrzymywanie makropoleceń, anulowanie zdarzenia, które uruchomiło makropoleceniem, „zamrożenie” ekranu na
czas działania makropolecenia, zatrzymanie aplikacji.
7. Moduły
Moduły są to zbiory procedur i funkcji napisane w języku Access Basic.)
KLUCZ PODSTAWOWY
Klucz podstawowy: jest najważniejszym ze wszystkich kluczy. To on reprezentuje całą tabelą w bazie danych. Musi też spełniać
wszystkie te same kryteria, co klucz kandydujący. Dzięki niemu możliwe jest tworzenie relacji pomiędzy tabelami.
Klucz podstawowy wybieramy spośród kluczy kandydujących. Zasady definiowania klucza podstawowego: 1) Każda tabela powinna
posiadać dokładnie jeden klucz podstawowy ( kluczy kandydujących może być kilka); 2) Wszystkie klucze podstawowe w bazie danych
muszą się od siebie różnić - dwie tabele nie mogą posiadać identycznego klucza podstawowego.
KLUCZ OBCY
Klucz obcy wykorzystywany jest do tworzenia relacji pomiędzy parą tabel. Jest on kombinacją jednego lub więcej atrybutów
przedstawionych w dwóch lub większej liczbie relacji.
2.Opis normalizacji
Normalizacja to proces organizacji danych w bazie danych. Polega on na tworzeniu tabel i ustanawianiu pomiędzy nimi powiązań
według reguł obowiązujących zarówno przy ochronie danych, jak i uelastycznianiu bazy danych przez eliminowanie powtarzających się
i niespójnych zależności.
Powtarzające się dane niepotrzebnie zajmują miejsce na dysku i są przyczyną powstawania problemów z obsługą. Jeśli konieczna jest
zmiana danych istniejących w więcej niż jednej lokalizacji, musi być ona przeprowadzona we wszystkich lokalizacjach w ten sam
sposób. Implementacja zmiany adresu klienta jest o wiele łatwiejsza, jeśli dane są przechowywane tylko w tabeli Klienci i w żadnym
innym miejscu bazy danych.
Co to jest „niespójna zależność” ? O ile przeglądanie tabeli Klienci w poszukiwaniu adresu konkretnego klienta można nazwać
zachowaniem intuicyjnym, to poszukiwanie w tej tabeli pensji, której wypłaty wymaga pracownik od klienta, nie ma żadnego sensu.
Pensja pracownika jest związana z pracownikiem lub zależy od pracownika i dlatego powinna być przeniesiona do tabeli Pracownicy.
Niespójne zależności mogą utrudniać dostęp do danych, ponieważ ścieżka ich odnajdywania może zostać utracona lub uszkodzona.
Istnieje kilka reguł normalizacji baz danych. Każda reguła nosi nazwę „postać normalna”. Jeśli przestrzegana jest pierwsza reguła, o
postaci bazy danych mówi się, że jest „pierwszą postacią normalną”. Jeśli przestrzegane są pierwsze trzy reguły, postać bazy danych
przyjmuje się za „trzecią postać normalną”. Chociaż możliwe są inne poziomy normalizacji, trzecia postać normalna uważana jest za
najwyższy poziom wymagany przez większość aplikacji.
Jak to bywa z wieloma formalnymi regułami i specyfikacjami, rzeczywistość nie zawsze pozwala na ich dokładne odwzorowanie.
Ogólnie, do odnalezienia niedogodności normalizacja wymaga dodatkowych tabel i dla niektórych osób jest to uciążliwe. Przed
podjęciem decyzji o złamaniu jednej z pierwszych trzech reguł normalizacji należy upewnić się, że projekt aplikacji przewiduje
występowanie problemów, takich jak powtarzające się dane lub niespójne zależności.
Do poniższych opisów dodane zostały przykłady.
Pierwsza postać normalna



W poszczególnych tabelach wyeliminuj powtarzające się grupy.
Dla każdego zestawu danych pokrewnych utwórz oddzielną tabelę.
Dla każdego zestawu danych pokrewnych określ klucz podstawowy.
Do przechowywania podobnych danych w jednej tabeli nie należy używać wielu pól. Na przykład rekord służący do śledzenia pozycji
inwentarzowej, która może pochodzić z dwóch różnych źródeł, może zawierać pola Kod sprzedawcy 1 oraz Kod sprzedawcy 2.
Co się zdarzy po dodaniu trzeciego sprzedawcy? Dodawanie pola nie dostarcza odpowiedzi. Wymaga to modyfikacji programu i tabel
oraz nie umożliwia obsługi zmieniającej się dynamicznie liczby sprzedawców. Zamiast tego należy umieścić wszystkie informacje o
sprzedawcach w oddzielnej tabeli o nazwie Sprzedawcy, a następnie połączyć magazyn ze sprzedawcami za pomocą klucza z numerem
pozycji, albo sprzedawców z magazynem za pomocą klucza z kodem sprzedawcy.
Druga postać normalna


Utwórz oddzielne tabele dla zestawów wartości, odnoszących się do wielu rekordów.
Ustal powiązania tabel za pomocą klucza obcego.
Rekordy nie powinny zależeć od niczego innego niż klucz podstawowy tabeli (w razie potrzeby może to być klucz złożony). Rozważmy,
na przykład, adres klienta w systemie księgowym. Obecność adresu konieczna jest w tabeli Klienci, ale również w tabelach
Zamówienia, Wysyłka, Faktury, Należności i Inkaso. Zamiast przechowywać adres w postaci wpisu w każdej tabeli, przechowuje się go
w jednym miejscu: albo w tabeli Klienci, albo w oddzielnej tabeli Adresy.
Trzecia postać normalna

Wyeliminuj pola, które nie zależą od klucza.
Wartości rekordu, które nie są częścią jego klucza, nie należą do tabeli. Zazwyczaj, jeśli zawartość grupy pól odnosi się do więcej niż
jednego rekordu tabeli, należy rozważyć umieszczenie tych pól w oddzielnej tabeli.
Na przykład w tabeli Rekrutacja pracowników może znajdować się nazwa i adres uczelni, którą ukończył kandydat. Do korespondencji
seryjnej potrzebna jest jednak kompletna lista uczelni. Jeśli informacje o uczelniach przechowywane są w tabeli Kandydaci, nie ma
możliwości wyświetlenia listy uczelni bez aktualnych kandydatów. Utwórz oddzielną tabelę Uczelnie i połącz ją z tabelą Kandydaci za
pomocą klucza z kodem uczelni.
WYJĄTEK: Stosowanie reguł trzeciej postaci normalnej, chociaż teoretycznie wskazane, nie zawsze jest praktyczne. Chcąc
wyeliminować wszystkie możliwe wewnętrzne zależności pomiędzy polami tabeli Klienci, należy utworzyć oddzielne tabele dla miast,
kodów pocztowych, przedstawicieli handlowych, klas klienta i innych czynników, które mogą być zduplikowane w wielu rekordach.
Normalizacja oznacza teoretycznie poprawę wydajności. Jednak wiele mniejszych tabel może spowodować spadek wydajności lub brak
możliwości otwarcia pliku i przekroczenie pojemności pamięci.
Bardziej realne może okazać się zastosowanie trzeciej postaci normalnej tylko do często zmienianych danych. Pozostawiając niektóre
pola zależne, zmień projekt aplikacji tak, aby po zmianie dowolnego pola wymagała od użytkownika sprawdzenia wszystkich pól
pokrewnych.
Inne postacie normalizacji
Istnieje czwarta postać normalna, zwana również postacią normalną Boyce'a-Codda (BCNF) oraz piąta postać normalna, ale są one
rzadko wykorzystywane w praktyce. Zlekceważenie tych reguł może skutkować mniej doskonałym projektem bazy danych, ale nie
powinno ono wpływać na funkcjonalność.
Integralność danych
Model relacyjny dostarcza dodatkowych, specyficznych dla siebie postaci reguł integralności:


Integralność encji: każda tabela musi posiadać klucz główny, a wartości klucza głównego muszą być w ramach tabeli unikalne i
nie równe NULL. W szczególności, zapobiega to wystąpieniu w tabeli powtórzeń wierszy.
Integralność referencyjna: każda wartość klucza obcego może być albo równa jakiejś wartości klucza głównego występującej w
tabeli powiązanej, lub (ewentualnie) NULL. Pociąga to za sobą konieczność określenia reguły postępowania w wypadku
usuwania wiersza z tabeli powiązanej, co mogłoby unieważnić niektóre wartości kluczy obcych w tabelach do niej się
odnoszących. W grę wchodzą trzy postacie takiej reguły:
o Restricted: usunięcie wiersza jest zabronione, dopóki nie zostaną usunięte lub odpowiednio zmodyfikowane wiersze z
innych tabel, których wartości kluczy obcych stałyby się wskutek tej operacji nieważne;
o Cascades: usunięcie wiersza powoduje automatyczne usunięcie z innych tabel wszystkich wierszy, dla których
wartości kluczy obcych stały się nieważne;
o Nullifies: nieważne wartości kluczy obcych ulegają zastąpieniu przez NULL.
Hierarchiczny model danych
W modelu hierarchicznym dane są na zasadzie rekordów nadrzędnych-podrzędnych, tzn. rekordy przypominają strukturę drzewa. Każdy
rekord (za wyjątkiem głównego) jest związany z dokładnie jednym rekordem nadrzędnym.
Dane w takim modelu są znajdowanie na zasadzie wyszukiwania rekordów podrzędnych względem rekordu nadrzędnego. Przykładem
takiego modelu może być struktura katalogów na dysku twardym komputera.
[Edytuj]
Relacyjny model danych (RDBMS)
Relacyjny model baz danych został wymyślony przez E.F. Codda na przełomie lat 70. i 80. zeszłego stulecia. Standard RDBMS został
ostatecznie opracowany przez ANSI X3H2. Dane w takim modelu przechowywane są w tabelach, z których każda ma stałą liczbę
kolumn i dowolną liczbę wierszy. Każda tabela (relacja) ma zdefiniowany klucz danych (key) - wyróżniony atrybut lub kilka takich
atrybutów, którego wartość jednoznacznie identyfikuje dany wiersz. Wyszukiwanie danych odbywa się za pomocą odwołania się
programu do danego klucza i identyfikacji danego wiersza za pomocą tegoż.
Obiektowe bazy danych (ODBMS)
Obiektowe bazy nie są zdefiniowane żadnym oficjalnym standardem. Obowiązujący obecnie standard opracowany przez ODMG został
opublikowany w 1993 roku. Jednym z podstawowych celów modelu obiektowego jest bezpośrednie odwzorowanie obiektów i powiązań
miedzy nimi wchodzących w skład aplikacji na zbiór obiektów i powiązań w bazie danych. Dzięki mechanizmom obiektowym można
tez zwiększyć niezależność danych od aplikacji poprzez przeniesienie procedur obsługi danych (w postaci metod) do systemu
zarządzania baza.
Model danych
Model danych w obiektowych bazach danych posługuje się pojęciami takimi jak klasy, atrybuty, metody, udostępnia identyfikatory
obiektów (OID), hermetyzacje danych oraz metod i wielokrotnego dziedziczenia.
Obiektowe bazy danych łącza własności obiektowości i obiektowych języków programowania z możliwościami systemów
bazodanowych. Rozszerzają możliwości obiektowych jeżyków programowania (takich jak C++, Java czy Smalltalk) czyniąc z nich
narzędzia do łatwego i efektywnego tworzenia systemów baz danych zmniejszając stopień złożoności i ilość kodu programów.
Język zapytań
Obiektowo zorientowany język staje się zarówno językiem programowania jak i językiem bazy danych, zapewniając bezpośrednia
zależność miedzy obiektem w aplikacji a obiektem w bazie. Z takiej bezpośredniej zależności korzystają języki definicji danych,
przetwarzania danych oraz zapytań. OBDMS zostały do tej pory zintegrowane z językami C++, C, Smalltalk, Java oraz LISP.
Standard ODMG-93 dostarcza dodatkowo język OQL. Język ten nie jest w pełni kompatybilny z SQL’86 i SQL92. Pomija zupełnie
pojecie typu w znaczeniu postrzeganym przez model obiektowy. Wynik zapytania w języku OQL może natomiast być struktura,
literałem, obiektem lub zbiorem obiektów. Większość baz obiektowych jest jednak wyposażona w SQL w celu zapewnienia zgodności
ze standardem ODBC (Object Database Connectivity).
Model obliczeniowy
Mimo, ze podobnie jak w RDBMS, wciąż możliwe są zapytania deklaratywne, głównym sposobem tworzenia i modyfikacji obiektów
jest korzystanie bezpośrednio z odpowiedniego dla bazy obiektowego języka programowania. Ponadto tworzone obiekty otrzymują
unikalne identyfikatory niezmienne w czasie, które mogą być wykorzystywane przez inne obiekty w celu definiowania powiązań z tymi
obiektami. Zwykle identyfikatory są konwertowane na wskaźnik do pamięci w chwili wczytywania konkretnego obiektu - uzyskujemy
dzięki temu skrócenie dostępu do obiektu gdy jest on obecny np. w pamięci podręcznej.
Liczące się na rynku ODBMS
Jasmine [Computer Associates], Gemstone, O2, Object Store [Object Design], Objectivity/DB [Objectivity], Versant ODMBS
[Versant].
Co to jest obiektowa baza danych?
1: Zbiór obiektów, ich stan, zachowanie się i związki występujące między nimi określone są zgodnie z obiektowym modelem danych.
2: Jest to system, który umożliwia zarządzanie bazą danych, zorientowany obiektowo.
3: Jest to system, który dziedziczy wszystkie zasadnicze cechy technologii obiektowej (istnienie złożonych obiektów, tożsamość
obiektów, enkapsulacja danych i procedur, dziedziczenie, funkcje polimorficzne, rozszerzalność o nowe typy danych) i baz danych
(trwałość danych, oddzielenie logicznego i fizycznego poziomu danych, zarządzanie wielodostępem, odtwarzanie spójnego stanu
danych po awariach, zapytania ad hoc, zarządzanie transakcjami i in.).
Co to jest obiektowy model danych?
Model danych, w którym wykorzystano cechy obiektowości tj.: pojęcie klasy i obiektów klasy, enkapsulacja (encapsulation),
mechanizm identyfikacji obiektów (object identity), dziedziczenie (inheritance), przeciążanie funkcji (overriding) i późne wiązanie (late
binding).
Co to jest obiekt?
Obiekt jest podstawowym pojęciem dla obiektowości. Obiekt reprezentuje sobą konkretny pojedynczy byt (książkę, osobę, samochód),
charakteryzowany poprzez opis stanu (atrybuty obiektu) i zachowania tego bytu (metody obiektu). Opis ten jest realizowany przy użyciu
klasy.
Co to jest klasa i obiekty klasy?
Klasa jest zbiorem obiektów o jednakowej strukturze wewnętrznej (atrybutach i metodach). O obiektach w tym rozumieniu mówi się, że
są obiektami pewnej klasy. Opis stanu obiektów klasy realizowany jest za pomocą atrybutów natomiast opis zachowania się obiektów za
pomocą metod (procedur, operacji), które można wykonywać dla obiektów tej klasy. Czym różnią się pojęcia obiektu, klasy oraz
obiektów klasy dla obiektowych baz danych od tych samych pojęć dla popularnych obiektowych języków programowania? Pojęcia te są
z reguły zgodne dla OBD i obiektowych języków programowania (np. C++, Smalltalk itp.). Różnice mogą być spowodowane tym, iż
pojęcia te nie zawsze są rozumiane jednakowo w różnych językach programowania a nawet w różnych podejściach do obiektowych baz
danych.
Co to są atrybuty?
Atrybuty stanowią opis statycznej struktury klasy i obiektów, opis ich poszczególnych cech. Wyróżnia się:
a) atrybuty klasy czyli tzw. atrybuty dzielone (shared attributes) np.: zestaw nadklas danej klasy oraz atrybuty wspólne dla wszystkich
obiektów (czyli występujące jednorazowo dla wszystkich obiektów klasy a nie dla każdego obiektu osobno),
b) atrybuty obiektów klasy czyli zbiór atrybutów występujących każdorazowo wraz z występowaniem obiektu; atrybuty te mogą być
proste (należące do prostych typów danych) lub złożone.
Co to są metody?
Metody stanowią opis dynamicznych zachowań obiektów, czyli operacje widocznych na zewnątrz obiektu a pozwalające dokonywać
manipulacji na danych; metoda aktywowana jest przez komunikat adresowany do tzw. obiektu docelowego (target object) i w
standardowym przypadku operuje wyłącznie na danych wchodzących w skład tego obiektu.
Jak definiujemy metodę?
Definicja metody składa się z: deklaracji (signature), która określa nazwę metody, nazwy i klasy argumentów, klasę rezultatów (o ile
metoda zwraca rezultat) oraz ciała (body), które określa implementację metody i składa się z serii instrukcji w jakimś języku
programowania.
Jakie elementy składają się na standardowy opis klasy?
Są to następujący elementy:
a) nazwa klasy,
b) cechy (atrybuty) klasy;
c) opis statycznej struktury obiektów: zbiór atrybutów obiektów klasy,
d) opis dynamicznych zachowań obiektów: zbiór definicji metod.
hierarchiczna baza danych
baza danych o drzewiastej strukturze powiązań; rekordy w hierarchicznej bazie danych są powiązane jednokierunkowo: rekord
"pierwotny" bazy tego typu może być związany z wieloma "rekordami potomnymi", natomiast rekord potomny może
wskazywać tylko na jeden rekord pierwotny; taka organizacja bazy podnosi wydajność oprogramowania bazy danych, ale
utrudnia przeprowadzanie modyfikacji struktury danych; pierwsze realizacje hierarchicznych baz danych powstały we
wczesnych latach 60., m.in. dla maszyn IBM serii 360.
Modele baz danych
Modele danych
Model hierarchiczny
Cechy podstawowe






struktura danych ma postać drzewa
węzły -- typy opisywanych obiektów
łuki -- zwi±zki typu ojciec-syn
drzewo jest uporz±dkowane, tj. na każdym poziomie kolejno¶ć węzłów jest okre¶lona
opis obiektu (rekord) zbudowany z pól zawieraj±cych dane opisuj±ce obiekt
zwi±zki zrealizowane jako wskaĽniki
Przykład
Hierarchiczna struktura danych
Języki obsługi




o charakterze nawigacyjnym
operacje typu:
GET LEFTMOST typ WHERE warunek
GET NEXT typ
Ograniczenia



nie ma zwi±zków typu n-m (np. oddziały pomieszane w kilku budynkach)
tylko jeden rodzaj zwi±zku między dwoma typami obiektów
dodatkowe zwi±zki
(np. pracownik-budynek):
o dodatkowe drzewa hierarchii
o odsyłacze do rekordów "oryginału"
Znaczenie praktyczne


system IBM IMS (1978)
o bardzo wielkie dane zgromadzone
o poprzednik użyty w programie Apollo
nowych projektów nie robi się
Model obiektowy (object-oriented)
Cechy podstawowe




obiekt w bazie reprezentuje obiekt w ¶wiecie zewnętrznym
typ obiektowy (klasa):
o definicja złożonego typu danych (może zawierać inne typy obiektowe lub ich kolekcje)
o procedury (metody) i operatory do manipulowania tymi danymi
tożsamo¶ć obiektu jest niezależna od zawarto¶ci danych
dziedziczenie (inheritance):
o strukturalne: potomek dziedziczy strukturę danych
o behawioralne: potomek dziedziczy metody i operatory
Cechy dodatkowe


enkapsulacja: wnętrze obiektu dostępne jedynie w sposób w nim zdefiniowany
polimorfizm: tak samo nazwane metody i operatory działaj± swoi¶cie w zależno¶ci od klasy obiektu
Przykład
Model obiektowy -- zawieranie i dziedziczenie
Zalety modelu



do¶ć naturalna reprezentacja ¶wiata
łatwo¶ć działania na złożonych obiektach
duża podatno¶ć na zmiany
Znaczenie praktyczne



w zastosowaniach naukowych lub eksperymentalnych
przykłady systemów: GemStone, O2
przewidywana ewolucja baz relacyjnych w kierunku obiektowo-relacyjnych
Klucze
Klucz główny (primary key)





funkcja: jednoznaczne identyfikowanie wiersza tabeli
budowa:
o ogr. deklaratywne primary key
o dla UID z atrybutów -- odpowiednie kolumny
o dla UID zawieraj±cego zwi±zki -- kolumny odpowiednich kluczy obcych
o wszystkie kolumny klucza głównego musz± być obowi±zkowe (not null)
poż±dane cechy:
o niezmienno¶ć
o mała długo¶ć (wydajno¶ć!)
sztuczne klucze główne:
o klucz numeryczny
o mechanizm do generowania unikalnych numerów (tzw. sekwencja)
z kluczem głównym jest z reguły zwi±zany indeks unikalny
Klucze obce



funkcja: realizuj± zwi±zki
budowa:
o dodatkowe kolumny klucza obcego odpowiadaj±ce kolumnom wskazywanego klucza głównego
o ogr. deklaratywne foreign key
sposób obsługi kasowania/modyfikacji wskazywanego klucza głównego:


o restrykcja
o kaskada
reprezentacja łuku:
o dwa osobne klucze obce opcjonalne
o dodatkowy warunek wykluczania (ograniczenia check lub wyzwalacz)
należy rozważyć zdefiniowanie indeksu dla klucza obcego
Rozkład relacji i normalizacja




redundancję usuwa się przez rozkład relacji
rozkład odwracalny: można odwrócić przez naturalne zł±czenie
rozkład relacji powinien doprowadzić do tzw. postaci normalnej
rozkład relacji nie powinien powodować utraty zależno¶ci istniej±cych w relacji pierwotnej
Pierwsza postać normalna




relacja jest w 1NF gdy wszystkie atrybuty s± atomowe -- prostych typów
1NF jest wymogiem dla rachunku relacyjnego, a więc i języków zapytań
kontrprzykłady:
o atrybut tablicowy
o zbiór
Uwaga: Dalej będzie mowa jedynie o relacjach spełniaj±cych 1NF
Druga postać normalna



relacja jest w 2NF gdy każdy atrybut niekluczowy (nie należ±cy do klucza wła¶ciwego) jest zależny funkcyjnie od całego
klucza wła¶ciwego
przyczyn± braku 2NF jest zwykle błędne poł±czenie danych
kontrprzykład: spis przepustek
o nazwisko zależy funkcyjnie od id prac., czyli od fragmentu klucza
o rozkład IB, IN doprowadza do 2NF
# Id prac.
# Budynek
Nazwisko
Trzecia postać normalna






# Id
prac.
relacja jest w 3NF gdy
o jest w 1 NF i
o każdy atrybut niekluczowy jest bezpo¶rednio zależny funkcyjnie od całego klucza wła¶ciwego
możliwe przypadki naruszenia 3NF:
o naruszenie 2NF
o istnienie zależno¶ci tranzytywnej (a więc niebezpo¶redniej) od klucza wła¶ciwego
przyczyn± braku 3NF jest zwykle błędne poł±czenie danych
3NF jest zazwyczaj wystarczaj±ca dla usunięcia praktycznie ważnych anomalii
każdy schemat można doprowadzić do 3NF zachowuj±c:
o zależno¶ci
o odwracalno¶ć rozkładu
kontrprzykład
o jest 2NF, bo klucz jest jednoatrybutowy
o zależno¶ć tranzytywna: I S P
(pensja zależy funkcyjnie od stanowiska)
o rozkład INS, IP doprowadza do 3NF
Nazwisko
Stanowisko
Pensja
Postać normalna Boyce-Codda




relacja jest w BCNF gdy każda nietrywialna zależno¶ć funkcyjna jest zależno¶ci± od klucza (niekoniecznie wła¶ciwego)
w BCNF zależno¶ci tranzytywne nie istniej± w ogóle
nie każdy schemat można doprowadzić do BCNF z zachowaniem zależno¶ci
kontrprzykład: relacja w 3NF z anomaliami:
o istniej± tu klucze: MU, UK
(nazwy ulic mog± się powtarzać w różnych miastach, zakładamy że nazwy miast się nie powtarzaj±)
o
o
o
o
występuj± zależno¶ci:
anomalie: usuwaj±c ulicę możemy utracić informację o mie¶cie
schemat jest w 3NF: brak atrybutów niekluczowych
schemat nie jest w BCNF: K nie jest kluczem
o
o
schemat jest nierozkładalny do BCNF bez utraty zależno¶ci
Miasto

Ulica
Kod
najczę¶ciej zależno¶ci prowadz±ce do braku BCNF nie s± istotne z punktu widzenia projektu
Czwarta postać normalna



relacja jest w 4NF gdy je¶li każda nietrywialna zależno¶ć wielowarto¶ciowa jest zależno¶ci± od klucza (niekoniecznie
wła¶ciwego)
schemat doprowadza się do 4NF przez rozkład
kontrprzykład:
o istniej± zależno¶ci
o
o
o
o
Zajęcia
i
nie ma zależno¶ci funkcyjnych
jest więc BCNF
występuje nadmiar informacji: powtórzone dane podręczników i wykładowców
rozkład ZW, ZP doprowadza do 4NF
Wykładowca
Podręcznik
Zwi±zki między postaciami normalnymi
4NF => BCNF => 3NF => 2NF => 1NF
1.1. Definicje
W szerokim znaczeniu:
Baza danych. Zorganizowany zbiór informacji, zawierający jednolity rodzaj danych.
W węższym znaczeniu
Baza danych (ang. data base). Zbiór uporządkowanych, powiązanych ze sobą tematycznie danych zapisanych w pamięci komputera



Każda BD jest złożona z elementów o określonej strukturze: rekordów lub obiektów.
Z BD związane są z nią mechanizmy zarządzania, określające m. in. zasady porządkowania, wyszukiwania, edycji i
modyfikacji
Potocznie bazą danych określa się także oprogramowanie do tworzenia i zarządzania bazami danych
o
Źródło: na podst. A. Rydzewski: Ilustrowany słownik techniki komputerowej, Warszawa 1995
Definicja techniczna:
Baza danych to zestaw związanych ze sobą obiektów (tablic, formularzy, raportów, kwerend i zbiorów poleceń) utworzonych i
zorganizowanych przez system zarządzania bazą danych (database manegement system - DBMS)
o
Źródło: P. Dyson: Leksykon komputerowy. Warszawa 1994
Zatem baza danych to:


DBMS (system zarządzania bazą danych)
Zbiór obiektów (np. plik)
Database manegement system [DBMS] (system zarządzania bazą danych - oprogramowanie użytkowe, które steruje danymi w bazie
danych. Oprogramowanie to zajmuje się m. in.: organizacją, przechowywaniem, odzyskiwaniem, ochroną i nadzorem nad integralnością
danych. DBMS może także: formatować raporty, importować i eksportować dane, a także dzięki własnemu językowi skryptów
formułować zapytania (query)
o
Źródło: P. Dyson: Leksykon komputerowy. Warszawa 1994
Definicja prawna:
Baza danych oznacza zbiór danych lub jakichkolwiek innych 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
o
Źródło: USTAWA z dnia 27 lipca 2001 r. o ochronie baz danych // Dz.U. z 2001 r. Nr 128, poz. 1402. - Toż tryb dostępu:
http://ks.sejm.gov.pl:8009/proc3/ustawy/3121_u.htm
1.2 KLUCZOWE POJĘCIA
Rekord (zapis) podstawowa jednostka informacji z bazie danych zawierająca pełny zestaw informacji o gromadzonych obiektach (np.
opis bibliograficzny, dane teleadresowe itp.)
Wyróżniamy dwa podstawowe typy rekordów:

Jednostopniowe, tzn. takie, rekord dzieli się na pola. W schemacie tym rekordy symbolizują wiersze tabeli, zaś polami są
kolumny
Pola
Tytuł
Autor
Rekordy

Podtytuł
Miasto
Rok
Kowalski, Jan
Poezje
Warszawa 2001
Kowalski, Jan
Wspomnienia
Wrocław
2001
Wysocka, Ewa
Wspomnienia
młodość Wrocław
1999
……
Wielostopniowe, tzn. takie, rekord dzieli się na pola, pola zaś na podpola. Bazy tego typu mają własne, zróżnicowane interfejsy
(nie są to tabele, lecz wyświetlane sekwencyjnie formularze)
Przykładowy rekord:
Hasło
Nazwisko
Kowalski
Imię
Strefa 1
Tytuł
Poezje
Podtyt.
Strefa 2
Wyd.
Wyd. 3
Równol.
Strefa 4
Miejsce
Warszawa
Wydawca
Jan
Data
(1945-1998)
PIW
Rok
2001
1.3 Typologia baz danych (wybrane podziały)
1.
Ze względu na zastosowany model danych wyróżniamy:
o
bazy kartotekowe o tzw. płaskiej strukturze (np. ISIS, MAK). W modelu tym:
 istnieje tylko jeden typ rekordów
 powtarzające się dane są fizycznie wpisywane do każdego rekordu (cechuje je duża redundancja)
 bazy tego typu nieekonomicznie zarządzają zasobami i są trudne do reorganizacji
Przykład bazy kartotekowej
Rekord 1
Rekord 2
Rekord 3
N: Kowalski, Jan
T: Poezje
M: Kraków R: 2000
N: Kowalski, Jan
T: Wspomnienia
M: Wrocław R: 2001
N: Wysocka, Ewa
T: Filozofia
M: Kraków R: 2001
o
bazy strukturze relacyjnej (np. Access). W modelu tym:
 istnieje kilka źródeł danych (tabel) połączonych tzw. relacjami
 brak powtarzających się danych, gdyż te są zwykle wydzielone jako osobna tabela
 bazy tego typu można łatwo modyfikować
 łatwiejszy jest nadzór nad utrzymaniem integralności danych
 bazy tego typu ekonomicznie zarządzają zasobami (cechuje je mała redundancja)
5. Strukturalny język zapytań SQL


6.
Zaimplementowany w większości profesjonalnych DBMSach np. Oracje, DB2, Sybase, Accessie, czy MySQL. W przypadku
Accessa język ów jest raczej rzadko wykorzystywany bezpośrednio do pracy w konsoli. Zwykle pośrednikiem pomiędzy SQL a
użytkownikiem są kwerendy, makra itp. SQL umożliwia łatwą współpracę różnych baz danych i wykorzystanie ich w
systemach internetowych i rozproszonych.
Definicja: Struktured query language [SQL] (strukturalny język zapytań) - w relacyjnych DBMS język zapytań wynaleziony
przez IBM dla użycia na dużych komputerach. Został no też zaadaptowany przez Oracle Corporation do zastosowania na inne
platformy (w tym PC). SQL jest obecnie standardem w większości profesjonalnych DBMS, szczególnie opartych na
architekturze klient-serwer … SQL zawiera ok. 60 poleceńi jest używany do tworzenia i modyfikacji zapytań o raz sterowania
dostępem do danych zorganizowanych w tablicach. SQL może być używany zarówno jako interfejs interaktywny, jak również
jako wbudowane polecenia w programie aplikacji [na podst. P. Dyson: Leksykon komputerowy. Warszawa 1994)
Inne mechanizmy:
1. Raporty - czyli wydruki
2. Formularze (Access), maski (MAK) - interfejsy ekranowe (inaczej: sposoby prezentacji danych)
3. Makra (skrypty) - miniprogramy wspomagające wykonywanie szeregu kolejnych czynności (np. sterowanie formularzami)
4. Moduły (fragmenty kodu źródłowego w języku programowania wysokiego poziomu, np. Visual Basic, C++ itp.) - moduły pełnią tę
samą funkcje co marka. Są stosowane do projektowania skomplikowanych operacji. Np. obliczeń, skalowania, interakcyjnych
interfejsów itp.
5. Mechanizmy grupowej modyfikacji (np. kwerendy aktualizujące w Accesie, czy procedury MAKa)
6. Strony dostępu (formularze umożliwiające dostęp przez www, Access 2000 i nowsze)

(Wyżej wymienione pojęcia są wspólne dla wszystkich baz danych!!!)
1.6. Typ danych (na przykładzie Accessa)

Zależnie od rodzaju danych jakie będziemy gromadzić w określonym polu. W bazie możliwe jest określenie różnych typów
danych (wybrane)








Tekst (pozwala na wpisanie do pola maksymalnie 255 znaków) - (1 B)
Memo/nota (65,535 znaków), ale zajmuje dużo pamięci !!! (16 B)
Liczba (konieczne wtedy, gdy chcemy dokonywać obliczenia na danym polu) (1,2,4,8 lub 16 B)
Data/Godzina (8 B)
Waluta (8 B)
Autonuemer (4 lub 16 B)
Tak/Nie (1 B) (tzw. „ptaszek”)
Obiekt Ole (umożliwia dołączanie do bazy obiektów multimedialnych i różnych plików, np. muzyką, rysunki, filmy,
dokumenty tekstowe, archiwa itp.) - do 1 GB
Hiperłącze (umożliwia aktywowanie danych jako link)

Systemy zarządzania bazami danych – podstawy DBMS
Omówione dotąd narzędzia (i szereg innych, do których postaram się nawiązać w formie dygresji w dalszym ciągu wykładu) stwarzają
niezłe możliwości elektronicznego przechowywania i przetwarzania danych, jednak w wielu sytuacjach nie są one wystarczające.
Szczególnie w większych organizacjach (firmach, instytucjach) pojawia się zapotrzebowanie na bardziej jednolity i systematyczny
model zarządzania wielkimi ilościami informacji, a przechowywanie danych np. w plikach tekstowych o określonym ad hoc formacie,
przetwarzanych za pomocą tworzonych każdorazowo dla wąskich potrzeb skryptów i programów opartych na standardowych
narzędziach manipulacji plikami i ich zawartością nie wystarcza. Dla wypełnienia tego zapotrzebowania stworzono właśnie systemy
zarządzania bazami danych (Database Management Systems, DBMS), które stanowią główny temat naszych zajęć. O istnieniu potrzeby
skorzystania z DBMS w danej sytuacji świadczyć mogą następujące czynniki:





powiązane ze sobą informacje przechowywane są oddzielnie (w różnych plikach, i być może na różnych komputerach),
uzyskanie odpowiedzi na zapytania wymagające czerpania informacji z różnych zbiorów danych staje się częstą potrzebą i
okazuje się coraz trudniejsze;
coraz częściej pojawiają się zadania, których wykonanie wymaga przenoszenia informacji poza komputerem i przetwarzania
niezautomatyzowanego, np. raporty tworzone przez jeden z działów organizacji muszą być przekazywane do dalszego
przetwarzania innemu działowi zanim przyjmą postać ostateczną, z koniecznością pośredniej konwersji formatów itp. zabiegów
,,ręcznych'', stwarzających okazje do powstawania błędów i opóźnień;
te same dane są powielane w wielu różnych plikach, obsługiwanych przez różne narzędzia, prowadząc do zbędnej komplikacji
systemu, nadmiernych kosztów i trudności w utrzymaniu spójności danych;
rosnąca objętość informacji zaczyna przekraczać możliwości dotychczas używanych narzędzi, prowadząc do spadku
wydajności systemu;
coraz trudniejsze staje się pogodzenie potrzeby wspólnego dostępu wielu użytkowników do tych samych danych z
koniecznością utrzymania ich integralności, tj. ,,porządku'', zgodności z założonymi formatami i z aktualnym stanem
faktycznym, oraz ze złożonymi formami kontroli dostępu, tj. wymogiem wyraźnego definiowania zakresu dopuszczalnych
operacji dla każdego użytkownika.
Łatwo jest wymienić wiele przykładów sytuacji, w których skorzystanie z DBMS jest wskazane:


dane personalne o pracownikach większej firmy lub instytucji wykorzystywane są równolegle np. przez dział kadr, dział
płacowy, dział socjalny i być może jeszcze inne. Zarazem część tych danych (np. o wysokości wynagrodzeń) może mieć
charakter poufny, na mocy przepisów wewnętrznych firmy lub praw ogólnych, dostęp do odczytu danych (a tym bardziej ich
modyfikacji) musi być ściśle reglamentowany i udostępniany jedynie w zakresie koniecznym dla zadań danego użytkownika;
dane o stanie magazynu firmy muszą być zarazem modyfikowane na podstawie raportów o sprzedaży, jak i dostępne dla działu
zaopatrzenia w celu odpowiedniego uzupełniania zapasów; może z nich równiez korzystać np. dział marketingu w celu
planowania promocji.
Inne typowe obszary zastosowań aplikacji opartych na DBMS to systemy finansowo-księgowe, bazy danych o klientach firmy, spisy
abonentów danej usługi (telekomunikacja, elektrownie itp.), systemy ewidencji ludności, katalogi asortymentu, katalogi biblioteczne, i
wiele innych.
Właściwości DBMS
Z bazą danych w używanym tu węższym znaczeniu, i z systemem zarządzania bazą danych (DBMS), mamy do czynienia wtedy, gdy
dane przechowywane są w sposób scentralizowany w jednym miejscu, i ponadto wszelkie działania na tych danych zarządzane są w
sposób scentralizowany, poprzez wyspecjalizowane w tym celu oprogramowanie. Oznacza to m. in., że w bazie danych przechowywane
informacje ujęte są w pewną logiczną strukturę, ,,rozumianą'' przez DBMS, i operacje na danych definiuje się w terminach tej logicznej
struktury (a nie w
terminach np. umiejscowienia danych w konkretnym pliku, z punktu widzenia systemu plików obsługiwanego przez system
operacyjny). Omówimy teraz krótko główne właściwości DBMS, pożądane z punktu widzenia wcześniejszych uwag o zastosowaniach.





Współdzielenie danych
Informacje przechowywane w bazie danych są zazwyczaj przeznaczone do wykorzystania przez wielu użytkowników, często w
tym samym czasie. DBMS ma więc za zadanie zapewnić efektywne mechanizmy wielodostępu. W tym celu często stosuje się
w budowie DBMS tzw. model klient-serwer: programy używane przez użytkowników (klienci) są oddzielone od programu
bezpośrednio wykonującego operacje na danych (serwera); zazwyczaj klienci komunikują się z serwerem poprzez mechanizmy
sieciowe, korzystając z określonego protokołu komunikacji -- umożliwia to uruchamianie klientów na innych komputerach niż
serwer, co zwiększa bezpieczeństwo (dostęp klientów do serwera jest ograniczony do operacji możliwych w ramach protokołu)
i odciąża serwer np. od zadań związanych z końcową obróbką i prezentacją danych będących wynikiem zapytania.
Integracja danych
Centralne składowanie wszystkich danych dotyczących danego obszaru działalności umożliwia uniknięcie zbędnych powtórzeń
tych samych informacji -- ułatwiając utrzymanie spójności, oraz usprawnia uzyskiwanie odpowiedzi na pytania złożone -wymagające czerpania informacji z różnych logicznie zbiorów danych.
Integralność danych
Łatwiej jest również utrzymać poprawność i aktualność informacji składowanej centralnie; ponadto powierzenie faktycznych
operacji na danych jednemu, dobrze sprawdzonemu programowi serwera zmniejsza ryzyko naruszenia integralności danych w
stosunku do sytuacji, gdy operacje te wykonywane są za pomocą wielu, tworzonych niezależnie i często ad hoc narzędzi.
Bezpieczeństwo danych
Scentralizowanie dostępu do danych umożliwia zastosowanie w DBMS własnego mechanizmu kontroli i autoryzacji dostępu,
bardziej szczegółowego aniżeli umożliwia to sam system operacyjny w stosunku do dostępu do plików. Dzięki wykorzystaniu
modelu klient-serwer nie jest konieczne, aby każdy użytkownik posiadał dostęp do maszyny serwera bazy danych poprzez inne
mechanizmy, aniżeli protokół komunikacyjny danego DBMS.
Abstrakcja i niezależność danych
Ponieważ końcowy użytkownik bazy danych jest oddzielony przez DBMS od wewnętrznych mechanizmów działania bazy
danych, formatu zapisu itp., i ma tylko do czynienia (poprzez program klienta i ew. protokół komunikacji) jedynie z logiczną
strukturą danych, to ułatwia to rozwijanie aplikacji korzystających z tych danych w kierunku nowych zastosowań czy np.
wprowadzenie zmian w wewnętrznej organizacji bazy danych bez konieczności zmian w klientach.
Zadania DBMS
Jądro DBMS -- w modelu klient-serwer, program serwera -- zajmuje się faktycznymi operacjami związanymi z dostępem do fizycznego
zapisu danych na urządzeniach pamięci masowej. Operacje te zlecane są przez programy klienckie, z którymi ma bezpośrednio do
czynienia użytkownik końcowy, zazwyczaj za pośrednictwem mechanizmów komunikacji sieciowej. ,,Językiem'' w jakim się
komunikują klienci z serwerem jest określony protokół wyższego poziomu (aplikacyjny). Niestety, w przeciwieństwie do np. protokołu
HTTP używanego w sieci WWW, protokoły baz danych klient-serwer nie są zestandaryzowane -- DBMS każdego producenta posługuje
się właściwym sobie protokołem. Nierzadko powstaje więc potrzeba posłużenia się dodatkowym pośrednictwem w postaci tzw.
middleware (np. sterowniki ODBC), aby uwolnić się od konieczności korzystania jedynie z narzędzi dostarczonych przez producenta
jądra DBMS w budowie programów klienckich -- za cenę mniejszej wydajności i dodatkowej komplikacji systemu.
Zadania realizowane przez jądro DBMS można sklasyfikować w sposób następujący:
1.
2.
3.
Zarządzanie zbiorami danych
o tworzenie nowych zbiorów (jednostek logicznej struktury DBMS, tj. baz danych, tabel, ...)
o usuwanie zbiorów
o modyfikowanie struktury zbiorów
o wstawianie, aktualizowanie i usuwanie danych
Wyszukiwanie informacji
w odpowiedzi na zapytania otrzymane od programów klienckich, jądro bazy danych zwraca dane będące wynikiem
odpowiedniego przeszukania bazy danych, a programy klienckie zajmują się ich prezentacją użytkownikowi po ewentualnej
dalszej obróbce;
Zarządzanie bazą danych jako całością
o tworzenie kont użytkowników
o definiowanie uprawnień dostępu
o monitorowanie działania bazy danych
Download