ORGANIZACJA I ZARZĄDZANIE INFORMACJĄ W BAZIE DNYCH. – podstawowe pojęcia. 1. Definicja bazy danych, Baza danych to uporządkowany zbiór danych z pewnej dziedziny tematycznej, zorganizowany w sposób ułatwiający dostęp do danych i operowanie nimi według określonych kryteriów. W każdym przypadku na podstawie danych gromadzonych w bazie, możemy uzyskiwać dane określonego typu Bazy danych istniały dużo wcześniej zanim pojawiły się komputery. Klasycznym przykładem bazy danych może być kartoteka w bibliotece czy też w przychodni lekarskiej. Można uznać, że najprostszą formą bazy danych jest tabela. Także dziennik lekcyjny jest bazą danych. Są w nim dane z pewnej dziedziny tematycznej, są one uporządkowane, w taki sposób, aby łatwy był do nich dostęp i łatwość zarządzania nimi. Dane w dzienniku lekcyjnym posortowane są według nazwiska, podzielone na dane podstawowe, dane adresowe, dane o frekwencji, o wynikach w nauce czy zachowaniu. 2. Komputerowa baza danych. Komputerowa baza danych składa się z bazy danych właściwej, w której w plikach bazodanowych zorganizowana jest struktura bazy oraz systemu zarządzania bazą danych (DBMS — Data Base Management System), który zarządza danymi w bazie, umożliwia ich przetwarzanie (wykonuje operacje na danych). Komputerowe bazy danych i systemy zarządzania nimi w postaci rozbudowanych nieraz aplikacji zastąpiły tradycyjne metody przechowywania danych w wielu dziedzinach życia. Dzięki nim zostaje usprawnione działanie firm i instytucji, uzyskuje się szybki dostęp do informacji oraz oszczędza czas użytkowników bazy. 3. Rodzaje baz danych oraz ich charakterystyka Ze względu na sposób przetwarzania i udostępniania danych wyróżniamy trzy rodzaje baz danych: baza jednostanowiskowa, To najprostszy przypadek bazy danych. Zarówno baza, jak i system zarządzania nią są zainstalowane tylko na jednym komputerze. Dostęp do bazy w danym momencie posiada tylko jeden uprawniony użytkownik. W bazach tego typu nie występuje więc problem równoczesnego dostępu do danych (współdzielenia plików) przez kilku użytkowników bazy. Warto zwrócić uwagę, że dostęp do bazy ma tylko jeden użytkownik w tym samym czasie co w ogólności nie wyklucza dostępu do bazy więcej niż jednego użytkownika. Przykład. Wyobraźmy sobie, że w małej bibliotece jest baza danych jednostanowiskowa, gdzie na jednym komputerze jest baza danych z kartoteką książek. Taką bazę może obsługiwać np. dwóch uprawnionych użytkowników. Jeden od godziny 8 – 13, drugi od 13 – 18, lecz w tym samym czasie dostęp do bazy będzie miał tylko jeden z nich. baza ze współdzieleniem plików, W przeciwieństwie do bazy jednostanowiskowej rozwiązanie ze współdzieleniem plików zapewnia równoczesny dostęp do danych wielu użytkownikom. Oznacza to, że baza, jak i system zarządzania nią jest dostępny na wielu komputerach, które pracują w sieci komputerowej. W ten sposób modyfikacja danych z poziomu jednego komputera jest automatycznie uwzględniana na innych stanowiskach komputerowych mających dostęp do tej bazy. W bazach tego typu współdzielone są jedynie pliki 1 danych, jednak przetwarzanie samych danych odbywa się na każdym komputerze oddzielnie. Bardzo istotnym elementem bazy danych ze współdzieleniem plików jest to, że jeżeli, którykolwiek z użytkowników bazy dokona jej modyfikacji, zmiana ta jest automatycznie widoczna przez pozostałych użytkowników bazy. Przykład: Wyobraźmy sobie przedsiębiorstwo, np. hurtownię, która prowadzi elektroniczną gospodarkę magazynową. Firma jest duża i magazyn obsługuje kilkunastu pracowników. Każdy dostarczony lub wydany towar wprowadzany jest do bazy danych. Baza danych jest współdzielona przez wszystkich pracowników. Jeżeli jeden z nich wyda towar zdejmując go z ewidencji w bazie danych, pozostali widzą tę zmianę. W przeciwnym wypadku jeżeli towar byłby wydany z magazynu, a informacja ta nie widoczna w bazie danych mogłoby dojść do sprzedania towaru, którego fizycznie nie ma w magazynie. baza typu klient – serwer. W dużych bazach, do których konieczny jest równoczesny dostęp z wielu stanowisk, praktykowany jest system klient—serwer. W takim systemie baza danych wraz z systemem zarządzania znajduje się na specjalnym komputerze zwanym serwerem bazy danych. Odpowiada on za zarządzanie danymi, ich przetwarzanie i udostępnianie. Z serwerem komunikują się połączone w sieć komputery użytkowników zwane klientami. Komputer klient wysyła odpowiednie zapytanie lub polecenie do serwera bazy danych, ten przetwarza dane, a wynik przetwarzania przesyła do komputera klienta. W systemie klient – serwer pracuje większość baz danych w sieci Internet. Zasadnicza różnica pomiędzy bazą danych klient – serwer, a bazą ze współdzieleniem plików polega na tym, że w bazie danych ze współdzieleniem plików przetwarzanie danych jest po stronie każdego komputera (na każdym komputerze zainstalowany jest system zarządzania bazą danych), natomiast w bazie klient-serwer wyszukiwanie, modyfikowanie wykonywanie operacji jest po stronie serwera 4. Modele baz danych oraz ich charakterystyka: Bazy danych mogą różnić się pod względem sposobu, w jaki dane są zorganizowane i powiązane ze sobą. Ze względu na strukturę danych rozróżniamy bazy: kartotekowe, relacyjne, hierarchiczne, sieciowe i obiektowe. baza hierarchiczna, Najstarszym modelem baz danych jest model hierarchiczny. W tym modelu baza ma strukturę drzewiastą z jednym punktem początkowym i wieloma rozgałęzieniami, podobną. np. do struktury drzewa folderów na dysku komputera czy struktury typowego drzewa genealogicznego. Struktura hierarchiczna opiera się na modelu rodzic – potomek. Zbiór nadrzędny nazywany rodzicem. Zawiera on określoną liczbę podzbiorów nazywanych potomkami, które z kolei zawierają kolejne podzbiory itd. W modelu hierarchicznym zbiór nadrzędny może mieć wiele podzbiorów, jednak każdy podzbiór ma tylko jeden zbiór nadrzędny. baza sieciowa, Odmianą bazy hierarchicznej jest baza sieciowa. Nazwa ”sieciowa” wynika stąd, że baza posiada strukturę danych przypominającą. sieć. W odróżnieniu od bazy hierarchicznej, w bazie sieciowej dowolny zbiór danych może zostać powiązany z każdym innym. Oznacza to, że w tym przypadku podzbiór (czyli potomek) może być powiązany z wieloma zbiorami nadrzędnymi (rodzicami) lub z żadnym zbiorem. 2 baza obiektowa Bazy opierające się na modelu obiektowym łączą cechy programów komputerowych tworzonych za pomocą. nowoczesnych języków programowania obiektowego z cechami aplikacji bazodanowych. Operują one na obiektach (czyli zbiorach połączonych danych i procedur umożliwiających manipulowanie tymi danymi) i tzw. klasach obiektów. baza kartotekowa, Baza kartotekowa jest również nazywana bazą dwuwymiarową. Bazy tego typu posiadają najprostszą strukturę składającą się tylko z jednej tabeli, w której zgromadzone są wszystkie dane. Nazwa ”kartotekowa” wzięła się stąd, że każdy rekord takiej bazy można przedstawić w postaci pojedynczej karty, zawierającej wszystkie informacje w nim zapisane. Zastosowanie baz tego typu ogranicza się do gromadzenia małych ilości danych dotyczących jednego tematu. baza relacyjna. Bazy relacyjne to obecnie najpopularniejsza grupa baz danych. W bazach tego typu dane są przechowywane nie w jednej, lecz w wielu tabelach, przy czym każda tabela przechowuje dane na określony temat. Dodatkowo pomiędzy tabelami tworzone są specjalne powiązania zwane relacjami. Dzięki nim możliwe jest uzyskiwanie informacji z bazy na wiele sposobów, poprzez kojarzenie ze sobą danych pochodzących z różnych tabel. Podstawowe pojęcia związane z relacyjną bazą danych i systemem zarządzania nią. 5. Definicja tabeli. Dane w bazie danych są przechowywane w strukturach zwanych tabelami. Tabele są podstawowymi obiektami baz danych. Przechowują one dane wykorzystywane przez inne obiekty, np.. zapytania, formularze czy raporty. Tabela (table) - zbiór (kolekcja) powiązanych ze sobą danych w bazie danych, przedstawiony jako układ poziomych wierszy nazywanych rekordami (krotkami) i pionowych kolumn nazywanych polami rekordu. Tabele zawierają dane różnego typu. Wszystkie rekordy tej samej tabeli bazy danych posiadają taką samą liczbę pól. Liczba pól oraz typ danych przechowywanych w polach rekordu jest określana na etapie projektowania tabeli 6. Niepożądane zjawiska występujące w jednotabelarycznej bazie danych złożonej z dużej ilości różnotematycznych danych. Normalizacja bazy danych. - redundancja (powielanie się danych w bazie) - anomalie związane z usuwaniem danych z bazy (usuwając zbędne dane przy okazji usuwamy dane istotne gdyż wszystkie dane znajdują się w jednym rekordzie wierszu) - anomalie związane z modyfikacją danych (to zjawisko łączy się poniekąd z redundancją, gdyż jeżeli te same dane powielają się wiele razy to modyfikacją również musi być wykonana wiele razy) Normalizacja bazy danych polega na podzieleniu danych na kilka (wiele) tabel tematycznych i powiązanie ich ze sobą za pomocą relacji. Po znormalizowaniu bazy danych pozbywamy się ww. niepożądanych zjawisk. 7. Klucze w relacyjnych bazach danych: klucze podstawowe, Aby w bazie danych możliwe było szybkie wyszukiwanie i łączenie danych z tabel 3 (np. za pomocą zapytań ( formularzy), każdy rekord tabeli powinien zawierać pole, za pomocą którego byłby jednoznacznie identyfikowany w bazie. Pole tego typu nazywane jest kluczem podstawowym. Klucz podstawowy tworzony jest w oparciu o nie powtarzające się dane. Możliwe jest również, aby rekord byt identyfikowany w tabeli za pośrednictwem kombinacji kilku pól —wówczas mamy do czynienia z kluczem podstawowym wielopolowym. Właściwe określenie klucza podstawowego pozwala uniknąć możliwości powtórzeń rekordu w tabeli bazy danych, ponieważ pole klucza podstawowego nie może przechowywać powtarzających się danych. klucze obce. Oprócz kluczy podstawowych w tabelach sa tworzone także klucze obce. Klucz obcy to nazwa pola, które w jednej tabeli jest kluczem podstawowym, a w drugiej jest polem łączącym te tabele. Np. w bazie „biblioteka” pole 0 nazwie lDucznia jest kluczem podstawowym tabeli Uczniowie, ale pole o tej samej nazwie w tabeli Wypożyczenia jest już kluczem obcym. W oparciu o te pola mogą być tworzone relacje pomiędzy tabelami. 8. Definicja relacji. W relacyjnych bazach danych pomiędzy odpowiednimi polami rekordów różnych tabel tworzone jest powiązanie nazywane relacją. Relacja (relation) — powiązanie pomiędzy parą tabel bazy danych za pomocą pola klucza podstawowego jednej tabeli i odpowiadającego mu pola klucza obcego w drugiej tabeli. Utworzenie relacji pomiędzy polami tabel jest możliwe tylko wówczas, gdy pola kluczy (podstawowego I obcego) zawierają ten sam typ danych. 9. Typy relacji. Relacje występujące w bazie danych mogą być typu: jeden do jednego (1 - 1) — czyli jednemu rekordowi pierwszej tabeli odpowiada jeden rekord w drugiej tabeli; jeden do wielu (1 - ∞) czyli jednemu rekordowi pierwszej tabeli odpowiada wiele rekordów w drugiej tabeli, ale każdemu rekordowi drugiej tabeli odpowiada tylko jeden rekord w pierwszej tabeli. Przykładem takiej relacji może być relacja pomiędzy tabelą Uczniowie i tabelą Wypożyczenia w bazie danych „biblioteka”; wiele do wielu (∞ - ∞) czyli wiele rekordów pierwszej tabeli jest powiązanych z wieloma rekordami w drugiej tabeli. Spośród wymienionych typów relacji w bazach danych najczęściej występują relacje typu ,,jeden do wielu”. Najrzadziej spotykanym typem relacji jest ,,jeden do jednego’, ponieważ zwykle dane, które znajdują się w różnych tabelach i są powiązane taką relacją, można umieścić w tej samej tabeli. Jednak i zastosowanie tego typu relacji jest niekiedy uzasadnione. Tabela występująca w relacji ,,jeden do wielu” po stronie ,,jeden” to tabela podstawowa, z kolei tabela po stronie ,,wiele” nazywana jest tabelą połączoną. 10. Reguły integralności baz danych – definicja, przykłady. Reguły integralności bazy danych to reguły zapewniające poprawność i spójność danych w bazie. Są one określane zarówno na poziomie pól (np. poprzez określanie typu danych, nakładanie ograniczeń w postaci tzw. maski wprowadzania itp.), jak i na poziomie tabel i relacji. W przypadku relacji są to reguły zapewniające poprawność związków między rekordami powiązanych tabel, np. w przytoczonym wcześniej przykładzie bazy danych „biblioteka” mogą to być reguły uniemożliwiające usunięcie 4 rekordu z tabeli Uczniowie, jeżeli jest on powiązany z rekordem lub rekordami w tabeli Wypożyczenia. 11. Indeksowanie bazy danych. Jedną z operacji częściej wykonywanych w bazie jest wyszukiwanie rekordów spełniających określone kryteria. Czas wyszukiwania zależy od tego, czy dane w bazie są uporządkowane czy nie. Technicznym sposobem realizacji procesu porządkowania rekordów w bazie jest jej indeksowanie. Polega ono na tworzeniu informacji (w niektórych systemach np. w postaci pliku na dysku) o tym, w jakiej kolejności powinny być podawane rekordy, aby spełniały kryterium uporządkowania. Indeksowanie może odbywać się według jednego lub kilku pól w bazie danych. Np. gdy tabela bazy danych jest indeksowana względem pola (a tym samym kolumny) Nazwisko, wówczas w bazie zostanie zapisana informacja o alfabetycznym ułożeniu wszystkich nazwisk w tej kolumnie. 12. Definicja zapytania – kwerendy. Zapytanie (nazywane w niektórych systemach także kwerendą to obiekt bazy danych, który czerpie informacje z jednej lub wielu tabel bądź innych zapytań. Zapytania mogą także aktualizować dane w tabelach, usuwać je, jak i wykonywać na nich obliczenia. Zapytanie (query) — obiekt bazy danych, umożliwiający wyszukiwanie danych w bazie według określonych kryteriów oraz umożliwiający przeprowadzanie ich analizy i modyfikacji. 13. Podstawowe typy zapytań: wybierające (wirtualne tabele – perspektywy), funkcjonalne. Jednym z podstawowych typów zapytań w bazach są zapytania wybierające. Tworzą one wirtualne tabele (zwane także perspektywami), które przedstawiają informacje pobrane według określonych kryteriów ze wskazanych (na etapie projektowania zapytania) tabel lub innych zapytań. Tabele te istnieją jedynie przez czas działania zapytania. Przy ponownym wywołaniu zapytania tabela zostanie ponownie utworzona. Oprócz zapytań wybierających istnieją zapytania funkcjonalne. Potrafią one modyfikować (np. usuwać) dane w tabelach, na których bazują. Z myślą o formułowaniu zapytań w bazach danych stworzono specjalny język programowania — język SQL (Structured Query Language). 14. Definicja formularza i rodzaje formularzy. Formularz to obiekt systemu zarządzania bazą danych, zwykle przedstawiany w postaci karty, na której widoczne są wszystkie wymagane dane oraz narzędzia (np. przyciski nawigacyjne) ułatwiające obsługę formularza. Formularze bazują na tabelach lub zapytaniach (kwerendach). Odpowiednio zaprojektowany formularz umożliwia także wykonywanie obliczeń na danych. Formularz (form) — obiekt systemu zarządzania bazą danych, który umożliwia w przystępny sposób przeglądanie, wprowadzanie, usuwanie i edytowanie danych. Formularz kolumnowy umożliwia wypełnianie w danej chwili zawartości pól tylko jednego rekordu, w przeciwieństwie do formularza tabelarycznego i formularza w postaci arkusza danych, które równocześnie potrafią zaprezentować wszystkie rekordy tabeli (kwerendy), z którą są związane. Formularz może pełnić także role podformularza. Podformularz (zwykle tabelaryczny lub w postaci arkusza danych) jest umieszczany na innym formularzu w celu umożliwienia wyświetlania danych 5 pochodzących z rożnych tabel lub kwerend. W systemach baz danych spotyka się formularze kolumnowe, tabelaryczne i w postaci arkusza danych 15. Definicja raportu. Raporty prezentują dane zawarte w bazie. Podobnie jak formularze, raporty odwołują sic do tabel bazy danych bądź zapytań oraz umożliwiają wykonywanie obliczeń na danych. W przeciwieństwie jednak do formularza, raport może jedynie pobierać dane z bazy, nie potrafiąc ich modyfikować. Raport (report) — obiekt systemu zarządzania bazą danych, którego zadaniem jest pobieranie danych z bazy (tabeli, zapytania) w celu ich wydrukowania na drukarce lub wyświetlenia na ekranie monitora. 16. Filtrowanie bazy danych. Szukając wśród rekordów tabeli tych, które spełniają zadane kryteria, korzystne jest użycie filtru. Filtry, w przeciwieństwie do zapytań wybierających, nie zmieniają danych, a jedynie umożliwiają wyselekcjonowanie informacji z bazy. Filtrowanie (filter) — funkcja systemu zarządzania bazą danych, pozwalająca selekcjonować rekordy według zadanych kryteriów. W wyniku działania filtru widoczne są jedynie rekordy, które spełniają kryterium filtrowania. 17. Sortowanie bazy danych. Rekordy dodawane do tabeli lub tabel bazy danych są w nich umieszczane w kolejności ich wprowadzania. Dlatego też, aby zmienić kolejność rekordów, należy przeprowadzić sortowanie rekordów. Odbywa się ono zwykle według jednego lub kilku pól rekordu. Sortowanie (sort) — funkcja systemu zarządzania bazą danych polegająca na odpowiednim ułożeniu rekordów bazy danych według zadanej kolejności (np. rosnąco) i sposobu (np. według jednego lub kilku pól rekordów). 6