Informacja - wiedza dotycząca obiektów takich jak fakty, zdarzenia, przedmioty, procesy, idee, zawierająca koncepcje, która w określonym kontekście ma określone znaczenie. Dane - reprezentacja informacji, mająca interpretację, właściwą do komunikowania się, właściwą do przetwarzania. Przetwarzanie danych - automatyczne wykonywanie operacji na danych. Operacje na danych - operacje matematyczne, logiczne, sortowanie, kompilowanie, operacje tekstowe, łączenie, zestawianie, wyszukiwanie, drukowanie, redagowanie. Baza danych - kolekcja wzajemnie powiązanych danych przechowywana w pamięciach dyskowych i udostępniania jej użytkownikom na określonych zasadach. Logicznie spojny zbior danych posiadajacych okreslona strukture, na ktorym mozna wykonywac operacje. Reprezentuje fragment swiata rzeczywistego zwanego dziedzina przedmiotowa.
Funkcje DBMS - umożliwia przechowywanie dużej ilości danych. Posługuje się danymi w ich zewnętrznej, użytkowej postaci bez konieczności programowania. Czas reakcji systemu z punktu użytkownika musi być jak najkrótszy. DBMS musi rozwiązywać następujące problemy - możliwość ochrony danych przed niewłaściwym dostępem, współbieżna realizacja operacji bazy danych, redundancja danych, ochrona przed awarią, restart systemu po awarii, sprawdza integralność bazy danych, chroni przed niespójnym stanem, zapewnienie spójności po awariach sprzętowych i programowych. Sklada sie z procesora zapytan, modulu zarzadzania transakcjami, modulu zarzadzania pamiecia i danych (metadanych)
Moduł zarządzania transakcjami - odpowiada za spójność bazy danych i spójność całego systemu. Musi on gwarantować, że wiele jednocześnie przetwarzanych zapytań w systemie nie będzie sobie wzajemnie przeszkadzać oraz, że żadne dane nie zostaną utracone, nawet przy awarii systemu. Współdziała z modułem obsługi zapytań (procesorem zapytań), ponieważ zwykle MZT musi mieć dostęp do szczegółów o danych, na których przetwarza się bieżące zapytania, w celu uniknięcia konfliktów. Poprawność wykonania transakcji jest osiągnięta dzięki własnościom transakcji określanym symbolem ACID. A (atomicity) – niepodzielność, C (consistancy) – spójność, I (isolaton) – izolacja, D (durability) – trwałość.
Moduł zarządzania pamięcią - Wybór właściwych danych z pamięci i w razie potrzeby dostosowanie tych danych do wymagań modułów, które odwołują się do MZP. W prostych systemach baz danych MZP może być tym samym co system plików podstawowego systemu operacyjnego. Wówczas MZP składa się z dwóch modułów - zarządzania plikami (przechowuje dane o miejscu zapisania plików na dysku i na polecenie modułu zarządzania buforami przesyła zawartość bloku lub bloków danych z pliku dyskowego) i zarządzania buforami (obsługuje pamięć operacyjną, wybierając w pamięci operacyjnej strony, które zostaną przydzielone dla wybranych z pliku bloków danych.
Uzytkownicy - użytkownik końcowy, projektanci baz danych, administrator danych, analityk danych, twórca aplikacji, obsługa techniczna
ODBC – standardowe, zwane otwartym łączem z bazami danych. Standard opracowany przez Microsoft na zasadzie interfejsu. ODBC sprowadza się do definiowalnej biblioteki wywołań dostępu do b. d. Umożliwia programiście otworzenie połączenia aplikacji ze środowiskiem b. d. Sprowadzamy dane z b. d. do aplikacji klienta. Program sterownika ODBC odwołuje się do sterowników poszczególnych systemów zarządzania b. d. (DBMS), a te do różnych systemów ZBD.
JDBC - Javowy odpowiednik ODBC, podobnie jak ODBC ten sterownik działa przekazując wywołania sterownikowi JDBC. Używa 2 różnych architektur współpracy z serwerem danych – 1. sterownik JDBC komunikuje się bezpośrednio z serwerem danych i tłumaczy instrukcje JDBC na wywołania rozpoznawane przez daną bazę 2. sterownik JDBC wymienia dane ze sterownikiem ODBC na serwerze i tłumaczy instrukcje JDBC na wywołania ODBC, a dopiero zadaniem sterownika ODBC lub serwera jest komunikacja z serwerem danych
Szeregowany harmonogram transakcji - harmonogram jest szeregowalny (dający się uszeregować), jeżeli wynik działania tego harmonogramu jest równoważny wynikowi otrzymanemu za pomocą pewnego harmonogramu sekwencyjnego. Jeżeli w momencie pojawienia się harmonogramu okaże się że jest on szeregowalny, to transakcja może być wykonywana w systemie bazodanowym. W module zarządzania blokadami sprawdza się czy harmonogram jest szeregowalny. Nie każdy harmonogram jest sprawdzany przy realizacji w implementacjach BD. Większość harmonogramów jest sprawdzana z punktu widzenia operacji zapisu, odczytu, zablokowania, odblokowania. Poprzez program sprawdzający szeregowalność harmonogramu można osiągnąć rozwiązanie problemu impasu. Dla wszystkich jednostek bazy danych wprowadza się jeden lub więcej protokołów przestrzeganych przez wszystkie transakcje.
Problemy z koncepcji zarządzania bazami danych opartej na przetwarzaniu plików - redundancja danych i niezgodność (niespójność, sprzeczność) danych, trudności w dostępie do danych, niekompatybilność danych (dane w różnych plikach, w różnych formatach), wielu współużytkowników bazy danych, problem ochrony, problem integralności danych, problem optymalizacji zapytań do bazy danych
Przykłady komercyjnych systemów zarządzania bazami danych - IBM DB 2, Informix (wchłonięty przez IBM), Microsoft Access 2003, Microsoft SQL Server .Net, Oracle 9i, Postgres, MySQL
model danych - sposób reprezentacji danych (rekordów), a także ich wzajemne powiązanie. Opisują koncepcyjnie dane, specyfikując ogólną strukturę logiczną bazy danych. Dostarczają opisu danych na wysokim poziomie dla implementacji tych modeli. Podzial - model pojęciowy (konceptualny), ,odel logiczny, model fizyczny
model oparty na rekordach - baza danych jest zwykle strukturą niewielu typów rekordów, a każdy taki typ rekordu jest strukturą o stałym formacie, każdy typ rekordu składa się ze stałej ilości tzw. pól, pola w rekordzie są zwykle stałej długości (zależne to jest od implementacji), model oparty na rekordach nie włącza mechanizmów bezpośredniej reprezentacji kodu w bazie danych, oddzielny język jest kojarzony z modelem w celu użycia szybkich zapytań do bazy danych i aktualizacji
model logiczny – opis kolekcji danych przechowywanych w BD niezależnie od fizycznej realizacji, np. rekord, tabela, tablica rekordów, obiekt z definicją metod obsługi obiektu, lista, drzewo itp.
model konceptualny (koncepcyjny) jest to inaczej obraz danych postrzeganych przez użytkownika (sposób wykorzystania, interpretacji danych).
model heirarchiczny - rozwiązanie problemu powtarzalnych grup. Opiera się na stosowaniu rekordów danych, które są złożone z kolekcji innych rekordów. Model ten można porównać do zestawienia materiałowego, które zastosowano w celu pokazania złożoności produktu. Stosując ten model można zoptymalizować przechowywanie danych i uczynić operację poszukiwania odpowiedzi jeszcze bardziej wydajną
model sieciowy - dane w tym modelu reprezentowane są przez rekordy. Związki między danymi są reprezentowane przez wskazania. W sieciowym modelu baz danych wykorzystano pomysł wskaźników wewnątrz bazy danych. Rekordy mogą zawierać odwołania do innych rekordów. Słowniki do przechowywania często powtarzających się nazw. Pojęcie „nil” lub „puste” oznaczające koniec listy.
model relacyjny - dane w tym modelu reprezentowane są przez rekordy umieszczone w tabelach, każda tabela przechowuje rekordy tego samego typu, każda tabela ma określoną stałą dla niej ilość kolumn o unikalnych nazwach, elementy tabeli (atrybuty) są wypełnione atomowymi wartościami, każda krotka tabeli musi być jednoznacznie określona przez wartość atrybutów przypisanych krotce
ewolucja systemow baz danych – sieciowe i hierarchiczne, relacyjne, semantyczne i post-relacyjne, obiektowe
Kluczem nazywa się taki zbiór atrybutów zbioru encji (tabeli), że dla dwóch różnych encji (krotek) nie może on mieć takich samych wartości wszystkich atrybutów ze zbioru klucza. Kluczem jest zbiór takich atrybutów zbioru encji, które jednoznacznie definiują encje z tego zbioru (rozróżnia jednoznacznie krotki tabeli).
Klucz o minimalnej ilości atrybutów jest jednym z kluczy kandydujących (potencjalnych). Klucz kandydujący to kolumna lub zbiór kolumn, które mogą występować jako jednoznaczny identyfikator wierszy w tabeli. W każdej relacji może istnieć wiele kluczy kandydujących.
Klucz główny to jedna lub więcej kolumn tabeli, w których wartości jednoznacznie identyfikują każdy wiersz w tabeli. Każda relacja musi mieć klucz główny. Dzięki temu możemy zapewnić, aby wiersze nie powtarzały się w relacji.
Klucz obcy jest kolumną lub grupą kolumn tabeli, która czerpie swoje wartości z tej samej dziedziny co klucz główny tabeli powiązanej z nią w bazie danych.
Klucz główny w jednej tabeli powtórzony w innej tabeli nazywa się kluczem wtórnym.
dziedzina - podstawową jednostką danych w relacyjnym modelu danych jest element danych. Takie elementy danych są nierozkładalne lub atomowe. Zbiór takich elementów danych tego samego typu nazywamy dziedziną. Dziedzinami są więc zbiory wartości, z których pochodzą elementy pojawiające się w kolumnach tabeli.
Typy relacji między tabelami
1..1 – jednej wartości pola w tabeli T1 odpowiada jedna wartość pola w tabeli T2
1..n – jednej wartości pola w tabeli T1 odpowiada wiele pól w tabeli T2
n..m – wielu wartościom w tabeli T1 odpowiada wiele wartości pola z tabeli T2
Błędna struktura bazy danych - anomalie przy aktualizacji bazy danych, anomalie przy usuwaniu / wstawianiu.
Metodologia projektowania bazy danych - analiza „miniświata” (konstrukcja modelu konceptualnego), transformacja modelu konceptularnego do modelu relacyjnego, tabele i relacje, proces normalizacji danych, tabele i relacje znormalizowane, wybór struktur fizycznych i określenie zasad dostępu do bazy danych, skrojenie systemu.
ERD - metoda graficzna modelowania schematu logicznego bazy danych. Diagramy ERD składają się z trzech głównych elementów: zbioru encji (analogia klasy, encje jako elementy zbioru encji są odpowiednikami obiektów, będących instancjami klasy), atrybutów (element, którego wartość charakteryzuje własność encji) i związków (opisują połączenia między dwoma lub większą liczbą zbiorów encji).
normalizacja - jeden z etapow projektowania schematu relacyjnej bazy danych. celem projektowania jest wyeliminowanie redundancji i anomalii (dolaczania, aktualizacji, usuwania). 1NF=usunięcie danych nieelelmentarnych. 2NF=usunięcie niepełnej zależności funkcjonalnej. 3NF= usunięcie przechodniej zależności funkcjonalnej. 4NF= usunięcie wielowartościwej zależności funkcjonalnej. 5NF=usunięcie połączeniowej zależności funcjonalnej
metody blokowania - metoda całkowitego blokowania wszystkich jednostek lub blokowanie zapisu jednej jednostki, blokowanie wiekszosci, metoda węzła pierwotnego, żetonu w formie pierwotnej, węzła centralnego.
suma mnogościowa – suma krotek dwóch lub więcej relacji (krotki się nie powtarzają); warunkiem poprawności jest wzajemna zgodność pól i ich typów w obu relacjach, z których ta suma powstaje; w SQL: „SELECT nazwisko, imię FROM studenci UNION nazwisko, imię FROM nauczyciel”.
różnica mnogościowa – polega na pobraniu krotek występujących w pierwszej relacji a nie występujących w drugiej; składnia j.w. ale używamy słowa kluczowego MINUS.
serwer stron – przedmiotem zarzadzania sa fizyczne strony dyskowe. klient – aplikacja, menedzer obiektow, plikow/indeksow, pamieci podrecznej <-> serwer menedzer stron pamieci podrecznej, dziennika blokowania, alokacja pamieci we/wy.
języki zapytań do relacyjnych baz danych
ISBL – oparty na algebrze relacji (suma mnogościowa, iloczyn mnogościowy, selekcja, projekcja, łączenie); obowiązuje tu inna notacja zapisu niż w algebrze krotek.
QUEL – język oparty na relacyjnym rachunku krotek; używa się też frazy typu „range is”, która określa zmienną krotkową, która wskazuje te krotki, które należą do danej relacji i spełniają określone warunki; używa się też frazy typu „reprieve into” (<- to na pewno nie po angielsku) – gdzie należy umieścić wyszukane krotki; można zadawać pytania odnośnie dwóch tub więcej tabel; można usuwać, dodawać i sortować krotki; język QUEL został rozszerzony o tzw. funkcje agregujące – obliczenia sumy, min, max w danej kolumnie; QUEL można zanurzyć w języku C.
QBE – (Query By Example) oparty na relacyjnym rachunku dziedzin (kolumn); ma charakter dialogowy, wizualny; zakresem zmiennej jest atrybut a nie cała krotka; działa zasada typu: „szukaj takich krotek, że x<y+30”; wprowadzono funkcje agregujące: suma, min, max, średnia, ilość wystąpień; język wyposażony w mechanizmy typowe dla DML pozwalające na zmianę wartości oraz dodanie nowej tabeli, dodawanie i usuwanie atrybutów
odbieranie użytkownikowi prawa dostępu – REVOKE [przywilej] ON baza_danych.* FROM ‘[użytkownik]'@'[host]' np. revoke all on *.* from ‘guest’@’localhost’
Cechy języków zapytań do baz danych - deklaratywny charakter, zanurzenie w języku programowania, wysoki poziom abstrakcji.
Cechy języka SQL - Jest językiem wysokiego poziomu (4GL) opartym na języku angielskim, jest językiem deklaratywnym (nieproceduralnym) zorientowanym na wynik (użytkownik deklaruj co chce uzyskać, a nie jak to chce zrealizować), SQL nie ma instrukcji sterujących wykonanie programu, Jest często zanurzony w innym języku programowania (np.: C, Fortran, PL, itp.), Nie zawiera w sobie rekurencji, Umożliwia definiowanie struktur danych, wyszukiwanie danych oraz operacje na danych (np.: kasowanie danych, modyfikowanie danych itp., o ile użytkownik ma do tego prawo). Zalety - dekalratywny charakter, wysoki poziom abstrakcji, efektywne mechanizmy realizacji zapytan, czytelnosc i przejrzystosc, standaryzacja, dobre podstawy matematyczne. Wady i ograniczenia - operowanie jedynie na strukturach tablicowych, ograniczenie do danych atomicznych, brak rekurencji i iteracji, brak mozliwosci dedukcji.
Historia SQL - Koniec lat 70 – tych – firma ORACLE (Relational Software Inc.) – pierwsza implementacja praktyczna (komercyjna), 1981 – IBM – SQL/DS. (RDL – Relational Data Language), 1983 – ISO definicja SQL, 1986 – ANSI – pierwszy standard SQL (SQL-86), 1987 – ISO – pierwszy standard SQL : ISO 9075:1987 (E),
1989 – ISO – następny standard SQL : ISO 9076: 1989 (E), (SQL-98), 1992 – ISO – kolejna, wzbogacona wersja : ISO 9075 : 1992 (E), (SQL 2), 1999 – SQL 3.
Sposób wykorzystania SQL - Interaktywny SQL (bezpośredni dostęp do danych za pomocą interpretera SQL), Statyczny SQL (stały (predefiniowany) kod w SQL – może to być zanurzony SQL (tzw. embedded SQL) – kod znajdujący się wewnątrz innego języka programowania lub modułowy SQL, tzn. samodzielne moduły w języku SQL mogą być łączone z modułami innych języków), Dynamiczny SQL (kod SQL generowany dynamicznie przez programy użytkowe – często generowany jest za pomocą interfejsów graficznych lub z poziomu WWW), Definicyjny SQL (kod w SQL generowany przy pomocy narzędzi CASE (Computer Aided Software Enginnering)).
komponenty sql - data definition language, data query language, data manipulation language, instrukcje sterowania danymi.
struktury danych - wiersze i kolumny, tablice, schemat, katalog.
alfabet - litery duże i małe, cyfry, znaki specjalne , ; ( ) . % _ > < = „ + * / - ? : ! spacja, Literały (stałe), zapisywane w cudzysłowiu np.: ‘Warszawa’, Identyfikatory (nazwy), np.: nazwy tabel, kolumn (atrybutów), widoków, schematów, itp., Nazwy poleceń i funkcji - każda instrukcja w SQl zaczyna się słowem kluczowym, może zawierać modyfikatory i kończy się średnikiem, Znak * oznacza wszystkie kolumny (atrybuty) tabeli
sql3 - typy definiowane przez uzytkownika, konstruktory typow dla wierszy, referencji i kolekcji, definiowane przez uzytkownika funkcje i procedury, wspomaganie dla duzych obiektow, wbudowane typy skalarne.
perspektywy (widoki) - tabele wirtualne nie majace bezposredniej reprezentacji w bazie danych; zapamietana jest tylko ich definicja; definicja widoku wykorzystywana jest w momencie odwolywania sie do niego jak do kazdej innej tabeli.
zabezpieczenia baz danych - uwierzytelnianie i autoryzacja, operacje grant / revoke / deny, wykorzystanie widokow, warunki spojnosci bazy danych, archiwowanie i odtwarzanie.
spojnosc - poprawnosc, niesprzecznosc danych w bazie; kazda proba naruszenia zdefiniowanych warunkow zostaje udaremniona, baza danych pozostaje niezmieniona.
rodzaje spojnosci - typ kolumny, unique, primary key, foreign key, check.
...
wips1