Dane
ang. data; z łaciny datum - to, co jest dane;
zapis/reprezentacja faktów. Zapis danych nie posiada kontekstu czy znaczenia;
dane powiązane z kontekstem oraz znaczeniem przekształcają się w
informację.
Encja
z łaciny entitas, ens - to co istnieje konkretnie, byt;
to obiekt konkretny, wyróżnialny, mający określoną formę lub własności.
W bazach danych encja/byt reprezentowana jest przez dane, zgodnie z
przyjętą strukturą/modelem.
Atrybut
własność encji (obiektu).
Typ danych
forma reprezentacji danych w komputerze, zbudowane z bitów/batów.
Baza danych
logicznie uporządkowany zbiór danych;
zbiór danych o określonej strukturze, przyjętej z modelu danych;
kolekcja danych, posiadających określone uwarunkowania, związki i schemat;
kolekcja powiązanych i przechowywanych razem rekordów i plików. Plik jest zbiorem rekordów;
baza danych posiada dwa wymiary: logiczny (jak zorganizowane są dane) oraz fizyczny (jak utrwalone są dane).
System bazy danych
komputerowy system zajmujący się utrzymywaniem i zarządzaniem informacją;
system bazy danych składa się z Systemu Zarządzania Bazą Danych oraz jednej lub wielu baz danych.
Element danych
identyfikator opisujący dane w sposób użyteczny dla danego zastosowania;
element danych opisujący najmniejszą jednostkę informacji dla BD;
para określająca nazwę i typ przechowywanej wartości (char).
Repozytorium danych
zbiór elementów danych i metadanych: raporty, programy, systemy.
Jednostka danych
konkretna wartość elementu danych
Model danych
* jako architektura - zbiór zasad posługiwania się danymi:
zbiór reguł określających strukturę danych (definicja danych);
zbiór reguł określających operacje na danych (operowanie danymi);
zbiór reguł określających poprawne stany bazy danych (integralność danych).
*jako projekt - zintegrowany zbiór wymagań dotyczących
danych dla określonej aplikacji.
Generacje modeli BD
proste modele danych (struktura rekordów - pliki - operacje - odczyt/zapis);
klasyczne modele danych (hierarchiczne, sieciowe, relacyjne);
semantyczne modele danych (znaczenie informacji - model obiektowy).
System Zarządzania Bazami Danych
D B M S - Data Base Management System - zbiór programów, bibliotek i narzędzi, które zwalniają programistę od pamiętania o szczegółach przechowywania i zarządzania danymi;
Kontroluje wszelkie operacje na danych, sprawdza zgodność z modelem (schematem, relacjami, warunkami), przyjętymi zasadami bezpieczeństwa, itp.
Podgrupy programów:
rdzeń (realizacja podstawowych funkcji zarządzania danymi),
interfejs (standard/język pośredniczący pomiędzy rdzeniem, a innymi programami, w tym specjalnymi narzędziami DBMS),
narzędzia ( np. projektowanie graficzne, wizualizacja, monitoring, profilowanie zapytań, itp.);
przykładowe programy: Oracle, IBM DB2, Microsoft SQL Server, MySQL, PostgreSQL, itd.
Model warstwowy
poszczególne warstwy mogą być w pewien sposób niezależne od siebie;
współpraca pomiędzy nimi odbywa się poprzez uzgodnione protokoły (interfejsy) - w dowolnym czasie można podmienić daną warstwę zachowując jedynie zgodność z protokołami komunikacji między warstwami )podstawową warstwą jest warstwa fizyczna - najdalej jeśli chodzi o interakcje z użytkownikiem)
model ANSI-SPARC umożliwia ukrycie szczegółów implementacyjnych przed użytkownikiem, warstwa fizyczna składa się z 2 podwarstw, konsekwencje tego: 1) można zmienić nośnik, w żaden sposób nie wpływając na zmianę wewnętrznej organizacji danych; 2) zmiana wewnętrznej organizacji danych w żaden sposób nie wpływa na aplikację (wyższe warstwy).
Struktura danych
forma opisująca konkretną encję, reprezentowana w formie rekordu, zbiór rekordów reprezentuje w systemie komputerowym zbiór encji w świecie rzeczywistym;
zbiór reguł logicznej organizacji danych w bazie danych, opisujący strukturę danych.
Model płaski (prosty)
każdy rekord to zbiór wartości, zgodnie z wymaganiami struktury;
kolekcja rekordów, które nie zależą od siebie → żaden rekord nie jest powiązany (z uwagi na definicję struktury!) z innym rekordem.
Związki pomiędzy encjami
związek jeden do jednego - jedna encja jest w związku z dokładnie jedną, inną encją;
związek jeden do wielu lub wielu do jednego - jedna encja jest powiązana z wieloma, innymi encjami;
związek wiele do wielu - wiele encji
jest powiązanych z wieloma, innymi encjami.
Modele baz danych (podział)
Model sieciowy;
Model hierarchiczny;
Model relacyjny;
Model obiektowy;
Model relacyjno-obiektowy.
Model hierarchiczny
Podstawą hierarchicznego model danych jest struktura danych określana jako drzewo. Począwszy od węzła (wierzchołka) podstawowego, będącego korzeniem drzewa, poprzez krawędzie - rozgałęzienia, dochodzimy do ostatnich zbiorów danych - liści. Przedstawiany poprzez związek „rodzic-potomek”. Rodzic posiada pewną liczbę potomków, potomkowie swoich potomków itd. Drzewo - posiada wiele realizacji związanych z szeregiem dodatkowych warunków. Drzewo binarne dopuszcza podział węzła tylko na dwa podwęzły;
Kod oprogramowania: (struktury+algorytmy=programy) - kontroluje zachowane są wymagania dotyczące danych w strukturze drzewa;
Zasady zgodności danych z wymaganiami dotyczącymi struktury wchodzą w skład tzw. warunków integralności danych;
Operacje: zapis/odczyt drzewa/elementów drzewa (operacja związana z utrwaleniem drzewa w pamięci), wyszukanie elementu drzewa, dodanie elementu drzewa, usunięcie elementu drzewa;
Zastosowania: 1) język znaczników [XML (ang. eXtensible Markup Language, rozszerzalny język znaczników, w którym istnieje tylko jeden główny element (root), zawierający kolejne subelementy, te natomiast mogą obejmować inne subelementy, itd.; powszechnie stosowany do przechowywania danych/informacji oraz reprezentowania wiedzy], 2) Indeksowanie danych - warianty struktury danych typu drzewo.
Model sieciowy
W modelu sieciowym możliwe jest wykorzystanie praktycznie wszystkich typów związków. Model sieciowy jest obecnie bardzo rzadko stosowany. W zakresie wielu powiązań (bez ograniczenia potomek ma tylko jednego rodzica) zastąpił go model relacyjny (dostępny poprzez o wiele prostszy interfejs).
Wady: duże BD posiadają dużą ilość wskaźników, co ogranicza szybkość wyszukiwania.
XML
ang. eXtensible Markup Language - rozszerzalny język znaczników;
dokument budowany jest w oparciu o elementy identyfikowane przez znaczniki;
dokument budowany jest zgodnie z określonymi zasadami składni oraz w oparciu o zdefiniowany alfabet, czyli znaczniki;
wykorzystywane w dokumencie elementy języka, znaczniki, projektowane są przez użytkownika;
jest bazą danych, ale nie jest systemem zarządzania bazą danych;
cele: XML powinien umożliwiać tworzenie dokumentów o strukturze wyznaczanej przez definiowane znaczniki;
Dokument XML powinien być prosty i szybki do utworzenia, czytelny dla twórcy i łatwo interpretowany przez programy komputerowe;
XML powinien być kompatybilny z SGML;
Dokumenty XML powinny być łatwo wymieniane przez Internet i przetwarzane oraz prezentowane w ramach sieci WWW;
XML powinien wspomagać różne typy aplikacji;
Liczba cech opcjonalnych XML powinna być minimalna;
Projektowanie dokumentu XML powinno umożliwiać weryfikację jego poprawności.
Budowa dokumentu XML
posiada strukturę fizyczną i logiczną. Fizycznie dokument XML składa się z encji, logicznie z deklaracji, elementów, komentarzy, instrukcji przetwarzania;
składa się z 3 części: 1) prologu - deklaracja dokumentu, określająca typ i wersje, 2) elementu głównego (root)- który zawierać może kolejne elementy, oraz 3) z zera lub więcej jednostek typu „Misc” Misc ::= Comment | PI | S;
Podstawowe znaki wykorzystywane w definicjach specyfikacji XML i jej pochodnych do określania krotności (następstwa) jednostek: 1) ? występuje raz lub wcale; 2) * występuje jedno-, wielokrotnie lub wcale; 3) + występuje co najmniej raz; 4) [wartość] występuje dokładnie raz, tak jak zapisano; 5) , lista jednostek - sekwencja rozdzielana znakiem „'” ; 6) | zbiór jednostek do wyboru „lub”;
Instrukcja przetwarzania (PI) - zanurzona w dokumencie XML instrukcja dla aplikacji przetwarzającej dokument. Przykładem instrukcji przetwarzania jest prolog;
Komentarz - opis treści dokumentu XML lub inne uwagi zanurzone w dokumencie;
Encje („entities”) - jednostki przechowywania danych, posiadają nazwę i wartość. Encje definiowane są jawnie w schemacie dokumentu. Mogą być wewnętrzne i zewnętrzne. Wewnętrzna encja ma treść taką jaka jest w niej bezpośrednio zapisana. Zewnętrzna encja odwołuje się do zewnętrznego zasobu.
Przestrzenie nazw (namespaces) - zbiory nazw definiujące słownik możliwych znaczników.
DTD
z ang. Document Type Definition - jest częścią rekomendacji XML i stanowi podstawowy (i prosty) sposób definicji schematu (wymagań) dotyczących danych w XML;
wady: 1) ograniczone możliwości definicji struktury dokumentu (np. brak grupowania, referencji, opisów,itp.); 2) brak typów danych innych niż tekstowy, 3) brak możliwości definicji własnych typów danych; 4) brak możliwości definicji kolejności i liczebności występowania elementów (np. liczba wystąpień od 2 do 6); 5) niezgodność ze specyfikacją XML.
XML Schema
umożliwia znaczną eliminację wad dużo w DTD;
Weryfikacja poprawności danego dokumentu XML względem schematu XML Schema wymaga wskazania pliku schematu. Realizowane to jest albo poprzez program dokonujący rozbioru (pliki jako parametry) albo poprzez jawne zapisanie w dokumencie XML referencji do schematu.
XPath
rekomendacja W3C pozwalająca na definiowanie referencji (adresu) do encji. Wykorzystywana jest często do formułowania treści wyszukiwanej w dokumencie XML.
XQuery
pozwala definiować zmienne, funkcje, moduły, itd., jak w wielu językach programowania
Krotka
wiersz w modelu relacyjnym;
reprezentuje uporządkowaną listę elementów. Zapisywana jest z użyciem nawiasów „( )” oraz przecinkiem jako znakiem rozdzielającym elementy;
Krotka n elementowa (n-krotka) to ogólnie n-tka uporządkowana
Relacja
tabela w modelu relacyjnym (w tabeli każda dziedzina jest reprezentowana przez kolumnę (nazwa i typ));
relacją n-członową (n ≥ 2) nazywamy dowolny podzbiór zbioru uporządkowanych n-tek.
Model relacyjny
Model relacyjny związany jest z podstawowa strukturą danych określaną poprzez relację, najczęściej implementowany w oprogramowaniu systemów zarządzania bazami danych (SZBD);
wszystkie dane są reprezentowane koncepcyjnie jako zbiór wartości uporządkowanych w formie wierszy i kolumn zwanych relacją, każda relacja jednoznacznie oznaczana nazwą posiada atrybut zwany kluczem głównym lub podstawowym, kolumna oznaczona kluczem głównym nie może być zerowa, nie może się powtarzać wartość wiersza;
opisywany poprzez trzy podstawowe elementy: 1) strukturę danych (relacje, zwane również tabelami), 2) reguły integralności danych, 3) operatory przetwarzania danych (algebra relacyjna);
Zasady zgodności danych z wymaganiami dotyczącymi struktury wchodzą w skład tzw. warunków integralności danych.
Warunki integralności danych:
model hierarchiczny: każdy rekord musi posiadać własnego rodzica (z wyjątkiem korzenia); dla więcej niż 1 rodzica, rekord musi być skopiowany dla każdego rodzica oddzielnie; usunięcie rekordu oznacza usunięcie rekordów wywodzących się z niego;
model relacyjny: każda encja, reprezentowana w modelu relacyjnym przez krotkę (wiersz) jest unikalna. Unikalność krotki w relacji możemy osiągnąć poprzez zastosowaniem pojedynczej dziedziny (atrybutu, kolumny) lub zbioru dziedzin, których wartości są niepowtarzalne; integralność referencyjna (klucze obce); integralność encji ( klucze podstawowe).
Algebra relacyjna
wybór (z ang. select);
rzut (z ang. project);
unia zwana również sumą (z ang. union);
przecięcie czyli część wspólna (z ang. intersection);
różnica (z ang. difference);
iloczyn zwany kartezjańskim (z ang. product);
iloraz (z ang. divide);
połączenie zwane również złączeniem (z ang. join).
Diagram związków encji
encje i grupy encji (grupa encji to ogólna kategoria/klasa bytów, np. "student"; encja to konkretny byt danej kategorii),;
atrybuty encji (cechy charakterystyczne kategorii, grupy encji);
związki i grupy zwiazków (pomiędzy grupami encji można wyróżnić rodzaje związków;
związek to konkretne powiązanie encji).
Normalizacja (uproszczenie) schematu baz danych
umożliwienie reprezentacji każdej relacji bazy w formie tabeli;
uzyskanie dużej efektywności odczytu danych;
usunięcie niepotrzebnych zależności w relacjach związanych z operacjami dodawania, usuwania i aktualizacji danych;
zredukowanie potrzeby rekonstrukcji relacji w przypadku konieczności dodania nowych typów danych (relacji, atrybutów, związków);
uzyskanie schematu bazy relacyjnej stanowiącego dużą wartość informacyjną dla użytkowników.
Grupy składni języka SQL
SQL DML z ang. Data Manipulation Language - język manipulowania danymi - polecenia odpowiadające za składowanie danych wewnątrz bazy danych (głównie dostęp do danych wewnątrz tabel);
SQL DDL z ang. Data Definition Language - język definicji danych - pozwala na definiowanie nowych struktur danych (tabel, widoków, indeksów itp.);
SQL DCL z ang. Data Control Language - język kontroli nad danymi - polecenia do zarządzania uprawnieniami wewnątrz bazy danych.
DML
zapewnia dostęp do danych zgromadzonych wewnątrz tabel. W wyniku poprawnego działania (na uprawnionych wierszach) każdego z tych poleceń zmienia się postać danych zgromadzonych w bazie danych.
SELECT - pobieranie danych z bazy;
INSERT - wstawianie nowych wierszy;
UPDATE - aktualizacja danych w wierszu;
DELETE - usuwanie wiersza;
PONIŻEJ NIEPOTRZEBNE W ODPOWIEDZI, ALE PRZYDATNE DO 3 ZADANIA
*** ad. SELECT - umożliwia dodatkowo sortowanie, grupowanie oraz zapisywanie wyników do innych kolumn:
SELECT [DISTINCT] <klauzula> FROM <klauzula>
[WHERE <klauzula>]
[GROUP BY <klauzula>]
[HAVING <klauzula>]
[UNION <subselect>]
[ORDER BY <klauzula>]
[SAVE TO TEMP <klauzula>];
SELECT <klauzula> podaje które kolumny z jakich tabel podanych w FROM mają być uwzględnione w tabeli wynikowej
DISTINCT - użyte informuje o tym, że powtarzające się wiersze mają być usunięte
FROM - podaje z jakich tabel dane będą pobierane, gdy tabel jest > 1 SELECT wyznacza produkt kartezjański
WHERE - podaje warunek (logiczny) który każdy z wierszy powinien spełniać, aby mógł zostać wyświetlony w tabeli wynikowej
GROUP BY - pozwala na połączenie wielu wierszy w jeden wiersz, pogrupowany wg zadanej kolumny
HAVING - wybiera grupy pojawiajace sie jako rezultat GROUP BY (podobne do WHERE przy pojed. Wierszach)
UNION - odpowiada relacyjnemu operatorowi unii <subselect> jest zwykłym wywołaniem SELECT FROM WHERE ... użytym wewnątrz innej instrukcji SELECT
ORDER BY - powoduje porządkowanie tabeli wynikowej wg podanej kolumny i zależności (ASC, DESC)
LIMIT n - ogranicza liczbę wyświetlanych krotek do n pierwszych
OFFSET m - powoduje wyświetlanie krotek począwszy od m- tej (głównie w połączeniu z LIMIT)
SAVE TO TEMP - pozwala na zapisanie wyniku w tabeli tymczasowej
Wyzwalacze
(TRIGGER) są zdarzeniami, które można przypisać w określonym miejscu do tabeli;
W przypadku wystąpienia warunku określonego do wyzwolenia triggera wywołana zostanie określona funkcja.
CREATE TRIGGER name
{ BEFORE | AFTER }
{ event [ OR ... ] }
ON table
[ FOR [ EACH ] { ROW |STATEMENT }]
EXECUTE PROCEDURE
funcname( arguments )
Wyzwalacze usuwa się podając nazwę tabeli, na której on działa:
DROP TRIGGER triggername ON tablename
Jedyna modyfikacja dotyczy zmiany nazwy triggera
ALTER TRIGGER name ON table RENAME TO newname
Przyznawanie i odbieranie uprawnień
GRANT - przyznawanie uprawnień
GRANT { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER } [,...] | ALL [ PRIVILEGES]} ON [TABLE] objectname [,...] TO {username | GROUP groupname | PUBLIC } [,...]
REVOKE - odbieranie uprawnień
REVOKE { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER } [,...] | ALL [ PRIVILEGES]} ON [TABLE] object [,...] FROM {username | GROUP groupname | PUBLIC } [,...]
GRANT i REVOKE zarządza uprawnieniami na 4 poziomach:
poziom globalny - uprawnienia do wszystkich baz danych na serwerze;
poziom bazy danych - uprawnienia do wszystkich tabel w danej bazie;
poziom tabeli - uprawnienia do wszystkich kolumn w danej tabeli;
poziom kolumny - uprawnienia do pojedynczych kolumn w danej tabeli.
Transakcja
zbiór operacji na bazie danych, które stanowią w istocie pewną całość;
warunki jakie powinny spełniać transakcje szczegółowo opisują zasady ACID
Funkcje agregacji
za pomocą funkcji agregacji dostępnych w języku SQL, można badać różne statystyki dla zbiorów wartości:
COUNT (*)
MIN (nazwa kolumny)
MAX (nazwa kolumny)
AVG (nazwa kolumny)
Formy SQL
SQL interakcyjny (autonomiczny) - Wykorzystywany jest przez użytkowników w celu bezpośredniego pobierania lub wprowadzania informacji do bazy. Przykładem może być zapytanie prowadzące do uzyskania zestawienia aktywności kont w miesiącu. Wynik jest wówczas przekazywany na ekran, z ewentualną opcją przekierowania go do pliku lub drukarki.
CLI - język poziomu wywołań:
SQL dynamiczny - generowany jest w trakcie pracy aplikacji. Wykorzystuje się go w miejsce podejścia statycznego, jeżeli w chwili pisania aplikacji nie jest możliwe określenie treści potrzebnych zapytań - powstaje ona w oparciu o decyzje użytkownika. Tę formę SQL generują przede wszystkim takie narzędzia jak graficzne języki zapytań. Utworzenie odpowiedniego zapytania jest tu odpowiedzią na działania użytkownika.
SQL statyczny - nie ulega zmianom i pisany jest wraz z całą aplikacją, podczas której pracy jest wykorzystywany. Nie ulega zmianom w sensie zachowania niezmiennej treści instrukcji, które jednak zawierać mogą odwołania do zmiennych lub parametrów przekazujących wartości z lub do aplikacji. Statyczny SQL występuje w dwóch odmianach.
SQL wbudowany (embedded) - oznacza włączenie kodu SQL do kodu źródłowego innego języka. Większość aplikacji pisana jest w takich językach jak C++ czy Java, jedynie odwołania do bazy danych realizowane są w SQL. W tej odmianie statycznego SQL-a do przenoszenia wartości wykorzystywane są zmienne.
POLECEŃ NIE DOPISYWAŁAM WIĘCEJ, BO TROCHĘ BY TO ZAJĘŁO. WYSTARCZY PRZESTUDIOWAĆ TREŚĆ LABORATORIÓW. ;)
Natalia