Bazy danych - zagadnienia :
1. Podejście plikowe/bazodanowe.
2. Redundacja danych.
3. Pojęcie bazy danych.
4. System zarządzania bazą danych - informacyjny/informatyczny system zarządzania.
5. Piramida informatycznych systemów zarządzania.
6. Budowa systemu baz danych:
a) cechy perspektywy użytkownika,
b) model ANSI-SPARC - założenia,
c) fizyczna i logiczna niezależność danych,
d) architektura klient-serwer (dwu- i trzywarstwowa),
7. Model danych i aspekty modelowania (3):
a) model relacyjny,
b) relacja, cechy relacji: arność, stopień relacji,
c) cechy atrybutów relacji (dziedzina),
d) wartość Null (cechy),
e) integralność danych (encji, dziedzinowa, referencyjna),
f) klucze relacji (podstawowy, obcy),
g) związki między relacjami,
h) encja i jej instancja, związek pomiędzy encjami, atrybut encji,
i) arność związków encji (1-1, 1-wielu, wiele-wielu),
- związek wiele do wielu - dekompozycja,
- encja asocjacyjna,
j) język SQL - definicja, zastosowanie,
- obszary zastosowań DML, DDL, DCL,
- klauzula SELECT,
- kryteria selekcji danych.
1. Podejście plikowe - dane są gromadzone w oddzielnych plikach a dostęp do nich i ich przetwarzanie są możliwe jedynie z wykorzystaniem aplikacji definiujących struktury gromadzonych danych; aplikacje przynależą zwykle do określonych działów organizacji lub użytkowników i nie są współdzielone.
Cechy:
- rozdzielenie danych pomiędzy aplikacjami,
- powielanie tych samych danych w różnych miejscach,
- mocna zależność dane-aplikacja użytkowa,
- niekompatybilne formaty plików,
- utrudnione utrzymanie i konserwacja.
Podejście bazodanowe - rozwiązanie, w którym dane oraz struktury odpowiedzialne za ich przechowywanie zostały oddzielone od aplikacji z nich korzystających; procesy gromadzenia i przetwarzania danych są realizowane z wykorzystaniem systemu zarządzania bazą danych.
Cechy:
- redukcja redundacji,
- kontrola integralności (spójności) danych,
- współdzielenie danych,
- lepsze zarządzanie utrzymaniem i konserwacją danych.
2. Redundacja danych to stan zbioru danych, w którym dane powtarzają się w wielu miejscach, co znacznie utrudnia modyfikację danych; w zbiorach danych z dużą redundacją występują anomalia, które prowadzą do niekontrolowanej utraty danych, problemów z modyfikacją lub dodawaniem nowych danych.
3. Baza danych to współdzielona kolekcja logicznie powiązanych, zintegrowanych danych, utworzona w celu spełnienia wymagań informacyjnych organizacji.
Cechy:
- zasób współdzielony,
- dane są zintegrowane,
- zawiera meta-dane (nazwy tabel, ich pola, powiązania),
- dane są logicznie powiązane.
4. System zarządzania bazą danych to oprogramowanie umożliwiające tworzenie, zarządzanie, utrzymanie i konserwację bazy danych, jak również kontrolowany dostęp do danych.
Elementy składowe:
- sprzęt,
- oprogramowanie,
- dane,
- procedury,
- ludzie.
Informacyjny system zarządzania to zbiór wzajemnie powiązanych komponentów, które są odpowiedzialne za zbieranie, przetwarzanie, gromadzenie i dystrybuowanie informacji w celu wspierania procesów podejmowania decyzji i realizowania działań kontrolnych w organizacji.
Informatyczny system zarządzania to konkretna realizacja systemu informacyjnego firmy, która w procesach gromadzenia i przetwarzania danych wykorzystuje nowoczesne technologie informacyjno-komunikacyjne.
5. Piramida informatycznych systemów zarządzania:
EIS (Executive Information Services) - systemy “Top Managementu”
DSS (Decision Support Systems) - systemy wspomagania decyzji
MIS (Management Information Systems) - systemy informowania kierownictwa
TPS (Transaction Processing Systems) - systemy przetwarzania transakcji
6. Budowa systemu baz danych:
a) mechanizm perspektyw użytkownika realizuje ograniczenie dostępu tylko do danych niezbędnych określonemu użytkownikowi w formie przez niego preferowanej;
cechy:
- pozwalają na wprowadzenie dodatkowego poziomu zabezpieczeń,
- umożliwiają dostosowanie formy prezentacji danych do potrzeb różnych użytkowników lub różnych potrzeb tego samego użytkownika,
- mogą prezentować spójny i niezmienny obraz struktury bazy danych nawet w sytuacji, gdy schemat bazy danych ulega zmianom,
b) założenia modelu ANSI-SPARC:
- wszyscy użytkownicy bazy danych powinni mieć dostęp do tych samych danych,
- każdy użytkownik może mieć własną perspektywę dostosowaną do swoich potrzeb informacyjnych (każdy użytkownik powinien mieć dostęp do tych samych danych, ale musi mieć możliwość wykorzystania różnych form prezentacji, nawet tych samych danych),
- na perspektywę użytkownika nie mają wpływu zmiany wprowadzane w perspektywach innych użytkowników,
- użytkownicy nie muszą znać technicznych szczegółów dotyczących przechowywania danych w pamięci fizycznej komputera,
- administrator bazy danych może zmieniać struktury wykorzystywane do przechowywania danych nie wpływając na schemat bazy danych,
- administrator bazy danych może zmieniać schemat bazy danych na poziomie konceptualnym nie wpływając na perspektywy użytkowników,
- struktury wykorzystywane do przechowywania danych nie powinny być wrażliwe na zmiany w warstwie fizycznej;
c) niezależność danych jest własnością, która powoduje, że system zarządzania bazą danych jest dużo bardziej elastyczny; niezależność danych oznacza, że wyższe warstwy w modelu są odporne na zmiany wnoszone w warstwach niższych; wyróżniamy dwa rodzaje niezależności danych:
- logiczna - własność polegająca na tym, że warstwa zewnętrzna jest odporna na zmiany wnoszone w warstwie konceptualnej; oznacza to, że zmiany wprowadzone w schemacie bazy danych, np. dodanie lub usunięcie encji, modyfikacja atrybutów encji etc., nie spowodują konieczności zmian w perspektywach użytkowników lub aplikacjach użytkowych;
- fizyczna - oznacza, że warstwa konceptualna jest odporna na zmiany wnoszone w warstwie wewnętrznej; w związku z tym schemat bazy danych jest odporny na przenoszenie pliku bazy danych z nośnika na nośnik lub z katalogu do katalogu, zmianę nazwy plików bazy danych, lub przenoszenie obiektów bazy danych pomiędzy plikami,
d) architektura klient-serwer - ścisłe powiązanie między komputerami, klientem a serwerem, w którym klient jest stroną posiadającą pewne potrzeby, które zaspokaja serwer, czyli dostawca usług;
klient może:
- zarządzać interfejsem użytkownika,
- być odpowiedzialny za weryfikację danych wprowadzanych przez użytkownika,
- generować żądania do bazy danych i przekazywać je do serwera,
- prezentować wyniki przesłane przez serwer użytkownikowi;
serwer:
- zajmuje się przetwarzaniem żądań kierowanych do bazy danych,
- autoryzuje odebrane żądania,
- zapewnia integralność danych,
- zarządza katalogiem systemowym,
- obsługuje sytuację równoczesnego dostępu do bazy danych oraz sytuacje wymagające odzyskania utraconych danych.
W zależności od liczby warstw rozróżniamy architektury klient-serwer:
- 2-warstwową - klient jest odpowiedzialny za interfejs użytkownika oraz przetwarzanie logiki biznesowej (warstwowy model oprogramowania) i występuje w roli „grubego” klienta (duża liczba odpowiedzialności), a serwer odpowiada za walidację (sprawdzenie poprawności i zgodności z zadanymi kryteriami) danych wprowadzonych przez użytkownika oraz dostęp do bazy danych,
- 3-warstwową - serwer występuje w dwóch rolach: serwera aplikacji (zajmuje się logiką biznesową) oraz serwera bazy danych (odpowiedzialny za walidację danych oraz procesy związane z dostępem i zarządzaniem bazą danych), klient natomiast zajmuje się obsługą jedynie interfejsu użytkownika („chudy” klient - mała liczba odpowiedzialności),
- n-warstwową - architektura z wprowadzonymi dodatkowymi warstwami.
7. Model danych jest zintegrowanym zbiorem pojęć opisujących dane, związki występujące pomiędzy danymi oraz ograniczenia, które na dane nakłada przedsiębiorstwo.
Definicja modelu danych uwzględnia 3 komplementarne aspekty:
- strukturalny - opisuje wytyczne dotyczące tworzenia struktury modelu,
- przetwarzania - definiuje typy operacji, które mogą być wykonywane na danych oraz strukturach danych,
- integralności danych - precyzuje reguły, dzięki którym można zachować spójność i integralność danych.
a) relacyjny model danych - sposób organizacji danych, opisujący dane z wykorzystaniem (matematycznego) pojęcia relacji; wszystkie atrybuty obiektów grupowane są w relacje, które reprezentowane są przez tabele; relacje są następnie grupowane w schematy relacji,
b) relacja - reprezentowana jest przez tabelę składającą się z kolumn i wierszy;
cechy relacji:
- każda relacja występująca w zbiorze relacji musi mieć unikalną nazwę,
- każdy element krótki (na przecięciu kolumny i wiersza) jest pojedynczą wartością,
- każdy atrybut ma unikatową nazwę w obrębie relacji,
- wartości atrybutów pochodzą z określonych dla nich dziedzin atrybutów,
- kolejność atrybutów w relacji nie ma znaczenia,
- każda krotka jest unikatowa; nie ma takich samych krotek,
- kolejność krotek nie ma znaczenia (teoretycznie);
każda relacja posiada stopień (który określa liczbę atrybutów - kolumn tabeli) i arność (mówi o liczbie krotek relacji - wierszy tabeli),
c) cechy atrybutów relacji:
- opisuje cechę obiektu, którego dane będą przechowywane w bazie danych,
- każdy atrybut relacji reprezentowany jest przez nazwę kolumny w tabeli,
- wartości każdego atrybutu muszą być zgodne z jego dziedziną (zbiór dopuszczalnych wartości, jakie może przyjmować atrybut) - atrybuty wybrane do połączenia tabel muszą czerpać wartości z tych samych dziedzin,
- złożoność atrybutu (prosty - taki, którego wartości nie powinny być rozkładane na prostsze elementy; złożony - powinien zostać podzielony na prostsze elementy),
- wartościowość atrybutu (jednowartościowy - dla jednego obiektu posiada tylko jedną wartość; wielowartościowy - dla jednego obiektu posiada więcej niż jedną wartość),
- może być pochodny - jego wartość może być uzyskana na podstawie wartości innych atrybutów,
d) wartość NULL - informuje zarówno użytkownika, jak i system zarządzania bazą danych o braku danej, która nie jest znana lub nie została jeszcze wprowadzona do systemu,
e) integralność danych - zapewniana jest przez system zarządzania; oznacza tyle, że wprowadzane dane nie są zniekształcone, zachowane są istotne związki pomiędzy danymi, istnieje możliwość jednoznacznej identyfikacji danej w zbiorze danych;
reguły integralności danych:
- integralność encji - niedopuszczalne jest pojawienie się w tabeli w polu klucza podstawowego wartości NULL,
- integralność dziedzinowa - jest zachowana wówczas, gdy wszystkie wartości wprowadzone w krotkach relacji, w ramach poszczególnych atrybutów, są zgodne z określonymi dziedzinami tych atrybutów,
- integralność referencyjna - zapewnia spójność związków pomiędzy relacjami; w dwóch połączonych ze sobą relacjach wartości wprowadzane w ramach atrybutów odgrywających rolę klucza obcego muszą być takie same, jak wartości atrybutów odgrywających rolę klucza podstawowego; dopuszczalne jest istnienie wartości NULL w polu klucza podstawowego,
f) klucz relacji - atrybut lub zbiór atrybutów relacji, wykorzystywany przy zapewnianiu różnych kategorii integralności danych;
kategorie kluczy relacji:
- nadklucz (superklucz),
- klucz kandydujący,
- klucz podstawowy (główny) - jest wybierany spośród kluczy kandydujących i jest odpowiedzialny za unikalność każdej krotki w relacji; wspólnie z kluczem obcym jest wykorzystywany przy łączeniu relacji (tabel) za pomocą związków; każda relacja ma swój klucz podstawowy,
- klucz obcy to atrybut lub zbiór atrybutów, wykorzystywany w celu łączenia relacji (tabel); jest istotnym elementem systemu zapewniania integralności referencyjnej,
- klucz złożony;
g) związek między relacjami reprezentuje istotne powiązanie występujące pomiędzy rekordami (krotkami) tabel,
h) encja - reprezentuje kategorię obiektów, które są na tyle istotne dla firmy, że dane na ich temat powinny być gromadzone i trwale przechowywane w systemie z bazą danych;
instancja encji - konkretny obiekt należący do danej kategorii (encji);
przykłady encji oraz jej encji (Encja - Instancja encji):
- Książka - „Harry Potter i Kamień Filozoficzny”,
- Poziom znajomości języka angielskiego - Płynna w mowie i piśmie;
związek pomiędzy encjami reprezentuje istotne powiązanie występujące pomiędzy instancjami encji;
atrybut encji - dowolny szczegół służący do kwalifikowania, identyfikowania, klasyfikowania, określania ilości lub wyrażania stanu encji;
i) arność związków encji - liczba instancji danej encji powiązanych z instancjami drugiej encji; wyróżniamy związki:
- 1:1 (1 do 1) - realizowany według klucza opcji we wskazanej tabeli,
- 1:wiele - realizowany według klucza opcji w tabeli po stronie `wele'(encja 2) - każda instancja encji 1 powiązana jest z jedną instancją encji 2, instancja encji 2 może być powiązana z jedną, wieloma lub żadną z instancji encji 1,
- wiele:wiele - instancja encji 1 może być powiązana z kilkoma instancjami encji 2 i na odwrót; w celu rozwiązania należy wprowadzić dodatkową tabelę(encję) i 2 związki 1:wiele;
dekompozycja związku wiele:wiele - sam związek w bazie danych ciężko przedstawić; aby mógł powstać taki związek potrzebna jest para związków 1:wiele połączone relacją z encją asocjacyjną;
encja asocjacyjna - wprowadzana w celu zamiany związku wiele:wiele na 2 związki 1:wiele w sytuacji kiedy po jednej stronie związku występuje opcjonalność;
j) SQL - strukturalny język zapytań stosowany do operowania na danych zapisanych w bazie relacyjnej;
zastosowanie:
- wykonywanie wszelkich operacji na danych,
- tworzenie i modyfikacja struktury bazy danych,
- zarządzanie dostępem do danych;
stosowany we wszystkich znanych systemach zarządzania relacyjną bazą danych.
Zakres operacji wykonywanych z wykorzystaniem języka SQL można podzielić na trzy zasadnicze obszary:
- DML (Data Manipulation Language) - język wybierania i modyfikacji danych - przeznaczone do realizacji zapytań (kwerend w środowisku Ms-Access),
- DDL (Data Definition Language) - język definiowania struktury bazy danych - służą do określania schematu bazy danych (wykonywania takich operacji jak: tworzenie, modyfikacja i usuwanie tabel, indeksów oraz związków pomiędzy tabelami),
- DCL (Data Control Language) - język sterowania dostępem do danych - służą do określania uprawnień użytkownika w odniesieniu do obiektów bazy danych.
Klauzula SELECT w połączeniu z klauzulą FROM oraz (opcjonalnie)z pozostałymi klauzulami jest wykorzystywana do opisania zbioru danych, które mają zostać pobrane z bazy danych. Specyfikacja danych obejmuje:
- nazwy pól, które są źródłem danych,
- nazwy tabel zawierających te pola,
- informacje o powiązaniach pomiędzy tabelami,
- kryteria selekcji,
- wymagania odnośnie sortowania wyników.