Bazy danych – zbiorcze pytania i odpowiedzi
Elementy DBMS
DMBS – Data Base Management System, System zarządzania bazą danych, jest to cześć systemu bazy danych (który składa się z DBMSu i Bazy danych), elementami DBMS są:
Moduł Zarządzania Transakcjami
Moduł Zarządzania Pamięcią
Procesor Zapytań
Dane/Metadane
Dana jest relacja, ustalamy jej klucz oraz wskazujemy funkcjonalność przechodnią (przechodnią zależność funkcyjną?)
Kluczem relacji (kluczem głównym) nazywamy taki z kluczy kandydujących, który składa się z najmniejszej ilości atrybutów i najlepiej określa poszczególne krotki. Klucz taki musi jednoznacznie identyfikować każdą z krotek, nie może się powtarzać (musi być unikalny) i nie może być pusty (nie może mieć wartości NULL).
Zależność funkcyjna – wystąpienie danej wartości A zależy od wystąpienia wartości B
Przechodnia zależność funkcyjna – wartość A zależy od B a wartość B zależy od C, więc A jest przechodnio zależne funkcyjnie od C
Mnożenie tablicowe zapytaniem SQL
SELECT a.wartosc, b.wartosc, a.wartosc*b.wartosc AS wynik FROM a JOIN b ON a.id=b.id
Moduł Ben-Zvi, gdzie występuje i do czego służy
Jest to moduł występujący w temporalnych bazach danych, czyli bazach danych przechowujących oprócz rekordów dane dotyczące czasu kiedy dane były poprawne, a kiedy nie, przydatne jeśli wyniki operacji na danych zależą od ich aktualności lub przedawnieniu.
Na moduł ten składa się 5 znaczników czasu:
Tes – czas kiedy dane zaczęły być aktualne
Trs – czas kiedy zarejestrowano, że dane są aktualne
Tee – czas kiedy dane przestały być aktualne
Tre – czas kiedy zarejestrowano, że dane nie są aktualne
Td – czas kiedy dane przestały być aktualne w bazie
Normalizacja:
I postać normalna – atrybuty są atomowe (niepodzielne)
II postać normalna – wszystkie atrybuty są w pełni zależne od klucza głównego relacji ( od całości tego klucza)
III postać normalna – brak przechodnich zależności funkcjonalnych
IV postać normalna – brak wielowartościowych zależności funkcjonalnych
V postać normalna – brak połączeniowych zależności funkcjonalnych
Co to jest ROLLBACK WORK
ROLLBACK WORK jest poleceniem SQLa służącym do anulowania zmian wprowadzonych do bazy. Zmiany wprowadzane do bazy za pomocą komend UPDATE, INSERT, DELETE nie są wprowadzane na stałe do fizycznych danych, dopóki nie zostanie wydane polecenie COMMIT WORK, ROLLBACK WORK jest poleceniem, które działa odwrotnie, tzn. nie potwierdza wprowadzonych zmian.
Baza danych, a hurtownia danych
Baza danych to zbiór danych do których można odwoływać się za pomocą zapytań w formie transakcji, otrzymujemy w wyniku dane wybrane z danych bazy. Jest to rodzaj systemu OLTP (Online Transaction Processing). Poprzez transakcje rejestruje się zmiany stanów rzeczy. Hurtownie danych są zbiorami narzędzi, które pośredniczą pomiędzy systemami OLTP, a systemami OLAP (Online Analitycal Processing), które pozwalają na analizę danych. HD są narzędziami pomagającymi w procesie decyzyjnym podejmować w odpowiednim czasie, z odpowiednim kosztem dobre decyzje. Hurtownie danych operują na bazach danych (zazwyczaj na więcej niż jednej), HD zawierają dane archiwalne, statystyki, ostatnie wyniki analiz.
ACID – co to i do czego jest stosowane
ACID to zbiór reguł, które powinny być spełniane przez transakcje, jest stosowany w modułach MZT systemów DBMS.
ACID to:
Atomicity – atomowość transakcji, albo transakcja wykona się w całości albo wcale
Consistency – spójność, po wykonaniu transakcji baza będzie dalej spójna
Isolation – izolacja, transakcje wykonują się niezależnie od siebie, zazwyczaj nie powinny widzieć zmian dokonywanych przez inne
Durability – trwałość, w razie awarii systemu, system powinien się normalnie uruchomić i posiadać prawidłowe dane
Dostęp do bazy na podstawie stempli czasowych
Każda transakcja przychodząca do bazy dostaje swój stempel czasowy zależny od taktów zegara, transakcje operują na kopiach danych. Każdy obiekt w bazie posiada 2 stemple czasowe, jeden ostatniej czytającej transakcji, drugi ostatniej aktualizującej transakcji. W momencie zakończenia transakcji jej stempel czasowy jest porównywany z wartościami stempli czasowych obiektów na których transakcja operowała. W zależności od wartości porównań transakcje są wykonywane ponownie lub nie.
Poprawność relacji
Relacja jest poprawna, jeśli jest w 5 FN.
Co oznacza PRIMARY KEY i do czego służy
PRIMARY KEY oznacza klucz główny tabeli, czyli atrybut lub grupę atrybutów wybraną spośród kluczy kandydujących do jednoznacznej identyfikacji krotek tabeli (klucz główny nie może się powtarzać w obrębie tabeli i nie może mieć wartości NULL). PRIMARY KEY służy w SQLu do określania kolumny (kolumn) tabeli, którą tworzymy, zawierającej klucz główny tej tabeli.
Co to jest ścieżka
Ścieżka to zagnieżdżony ciąg atrybutów ułatwiający określanie predykatów w złożonej hierarchii klas w obiektowych bazach danych. Obiekt przechowujący ciąg kolejnych nazw zagnieżdżonych atrybutów nazywany jest zmienna ścieżkową, wyróżniamy zmienne skalarne i zbiorowe.
Co to jest 2PL
2PL to mechanizm dynamicznego dwufazowego blokowania. Transakcje mogą zakładać dwa typy zamków – S (do odczytu) i X (do aktualizacji). Jeśli na ziarno został nałożony zamek S to blokowane są możliwości zakładania zamków X, jeśli na ziarno nałożono zamek X to blokowane są możliwości założenia jakiegokolwiek innego zamka. Dzięki temu dane nie mogą być zaktualizowane w trakcie odczytu przez jakąś inną transakcję. Dodatkowo prowadzony jest dziennik i graf czekania oraz ochrona prze zakleszczeniem.
Zapytanie SQL służące do zwiększenia pensji Janowi Kowalskiemu jeśli jego pensja jest większa niż 2000
UPDATE tabela SET pensja=1.2*(SELECT pensja FROM tabela WHERE nazwisko=Kowalski AND imie=Jan) WHERE nazwisko=Kowalski AND imie=Jan AND pensja>2000
Metody radzenia sobie z awariami w bazach danych.
Backup – tworzenie kopii bezpieczeństwa danych co pewien czas
Log – tworzenie dzienników operacji na bazie
Recovery – przywracanie bazy na podstawie backup’ów lub log’ów
Chechpoint – migawkowe zrzuty transakcji
Replication – tworzenie kopii na nośnikach fizycznie i geograficznie oddalonych
Rollback – cofanie zmian na podstawie log’ów
Federacyjne BD
Federacyjna BD to baza danych składająca się z wielu baz danych, które są autonomiczne, ale połączone w przezroczystą całość, tzn. użytkownik widzi je jako jedną bazę. Podbazy zachowują pełną autonomię, pokazują dane poprzez perspektywy, przez co część danych może być ukrywana. Takie podejście zapewnia bezpieczeństwo, autonomię i efektywność.
Model hierarchiczny BD
W modelu tym rekordy logicznie uszeregowane są w drzewa, w których każdy rekord zawiera zbiór rekordów, połączenia są tworzone poprzez zawieranie się. Dzięki zastosowaniu tego modelu wyszukiwanie danych w bazie jest szybkie.
Model sieciowy BD
W modelu tym rekordy powiązane są między sobą za pomocą wskaźników (pointer), poszczególne rekordy wskazują na inne rekordy, występuje też specjalny wskaźnik tzw. nil lub pusty, mówiący o końcu listy.
Typy danych w modelu relacyjnym
Typ łańcuchowy (string)
Typ numeryczny (numeric)
Typ logiczny (logical)
Typ walutowy
Typ daty/godziny
Autonumer
Hiperłącze
Typ notatnikowy (memo)
DDL
Data Definition Language – język definicji danych, podjęzyk języka zapytań do baz danych, służący do definiowania danych, tworzenia tabel.
Przykłady:
CREATE TABLE
DROP TABLE
SQL: kasowanie tabeli, kasowanie kolumny, kasowanie rekordu
Kasowanie tabeli: DROP TABLE tabela
Kasowanie kolumny: ALTER TABLE tabela DROP kolumna
Kasowanie rekordu: DELETE FROM tabela WHERE cos=cos
Wymienić i opisać funkcje procesora DBMS
Obsługa zapytań – przetworzyć zapytanie i zwrócić jego wynik
Aktualizacja i modyfikacja danych i metadanych – na podstawie zapytań dokonuje modyfikacji danych (pośredniczy) i schematów
Optymalizacja zapytań – przekształcenie zapytań tak, by były wykonane jak najmniejszym kosztem
Jest punktem przechodnim do pozostałych modułów – jeśli zapytanie będzie przechodziło do innego modułu DBMS to musi przejść przez procesor zapytań
Wymienić funkcje i zadania DBMS:
Realizowanie zapytań do bazy
Kontrola redundancji danych (nadmiarowości)
Kontrola użytkowników i autoryzacja
Zarządzanie współbieżnością transakcji
Zarządzanie blokowaniem transakcji
Modyfikowanie, dodawanie, usuwanie danych
Planowanie wykonywania transakcji
Udostępnianie interfejsów
Realizowanie zabezpieczeń przed awariami
Model logiczny oparty na rekordach
Jest to schemat relacji pomiędzy rekordami, czyli zbiorami atrybutów. W schemacie tym pokazane są rekordy i zależności między nimi, różne od fizycznego ułożenia danych, tzn. jak połączenia są interpretowane, a nie jak faktycznie fizycznie wyglądają, np. czy dane są ułożone w formie drzew. Jest to zbiór informacji o systemie.
Ziarnistość
Rodzaj jednostki podlegającej operacjom kopiowania, odczytu, zapisu itp. Wyróżniamy ziarna grube i miałkie, grube to np. bazy danych w całości, relacje, natomiast miałkie to pole, kilka pól. Ziarnistość ma również znaczenie przy zakładaniu zamków, czy zamki są zakładane na całą bazę, czy tylko na dany rekord.
UNIQUE i NOT NULL
Są to modyfikatory występujące przy definiowaniu tabel, określające jakie cechy mają spełniać wartości w danej kolumnie. UNIQUE mówi o tym, że wartości w kolumnie nie mogą się powtarzać, natomiast NOT NULL mówi o tym że wartość w kolumnie nie może być NULL (pusta). Wykorzystywane przede wszystkim przy kolumnach zawierających klucze główne tabel.
Zalety federacyjnej BD
Autonomiczność podbaz
Podbazy prezentują tylko dane wybiórcze poprzez perspektywy
Wysokie bezpieczeństwo
Możliwość pracy na wielu BD jak na jednej
Możliwość złączenia wielu BD oddalonych od siebie
Duża efektywność pracy
Time-split (raczej chodzi o TIME-SLICE)
Służy do dookreślenia przedziału czasowego w zapytaniach do temporalnych baz danych, tj. poprzez to słowo kluczowe określamy z jakiego okresu czasu dane nas interesują.
Opisać model logiczny hurtowni danych
Hurtownie danych to zbiór narzędzi pośredniczących między systemami OLTP (Online Transaction Processing), a OLAP (Online Analytical Processing). Są narzędziami ułatwiającymi podejmowanie dobrych decyzji w zarządzaniu, przy małych kosztach. Integrują dane z wielu źródeł pozwalając na ich analizę, zawierają dane statystyczne i historyczne.
Model logiczny HD opiera się o warstwy (połączone ze sobą):
Warstwa najniższa – uporządkowane dane z baz danych i nieuporządkowane dane z plików tekstowych oraz np. arkuszy kalkulacyjnych
Magazyn danych operacyjnych – dane w postaci baz danych, ulotne aktualne
Centralna hurtownia danych – zawiera ukierunkowane, nieulotne, zintegrowane bazy danych
Lokalne hurtownie danych – zawiera dane silnie zagregowane, mogące służyć w procesie decyzyjnym
Warstwa metadanych – dane statystyczne, dane o użytkownikach i o pozostałych warstwach, dane kontrolne
DML
Data Manipulation Language – język manipulacji danych, podjęzyk języka zapytań do baz danych. Pozwala na modyfikację, tworzenie i kasowanie danych.
Przykłady:
INSERT INTO
DELETE
Wady i zalety obiektowych BD
Wady:
Mało specjalistów
Niepełna specyfikacja
Brak optymalizacji zapytań
Niedopracowane mechanizmy obsługi
Nie wiadomo jakie koszta migracji dużych systemów
Zalety:
Lepsza reprezentacja rzeczywistości
Połączenie danych z operacjami na nich
Hermetyzacja
Dziedziczenie
Możliwość tworzenia własnych typów danych
Wersjonowanie
Duża efektywność, która wciąż rośnie
SQL: zmiana nazwy kolumny i dodanie kolumny
Zmiana nazwy kolumny – ALTER TABLE tabela RENAME COLUMN stara_nazwa nowa_nazwa
Dodanie kolumny – ALTER TABLE tabela ADD COLUMN kolumna
Opisać architekturę klient-broker-serwer
Architektura ta opiera się o trzy aplikacje. Aplikację klienta który wyświetla wyniki i pozwala wysyłać zapytania do BD, brokera który odbiera zapytania i przekierowuje odpowiednio przetworzone do serwera BD oraz wysyła wyniki otrzymane od serwera do klienta oraz serwera który przetwarza zapytania od brokera. Broker jest swego rodzaju pośrednikiem, który umożliwia zadawanie zapytań do wielu BD bez troszczenia się o ich różne implementacje wewnętrzne.
MZT
MZT – Moduł zarządzania transakcjami, służy do kontroli transakcji i ich planowania. Musi gwarantować, że jeśli transakcja będzie wykonywana to będzie zgodna z ACID. Musi planować ich wykonanie, dbać o blokowanie i rozwiązywanie zakleszczeń, zabezpieczać przed wzajemnym przeszkadzaniem.
AVG – co oznacza i przykład użycia
AVG jedna z funkcji agregujących, pozwalająca na wyznaczenie średniej wartości atrybutu w grupie.
SELECT nazwa, AVG(pensja) FROM place GROUP BY nazwa
Architektura dostępu do serwera stron
Dostęp do serwera z BD odbywa się poprzez strony i dwie aplikacje wymieniające się nimi. Jest aplikacja kliencka, która przetwarza dane (strony), pozwalająca na interakcję z użytkownikiem i aplikacja serwerowa przetwarzająca strony i zarządzająca danymi/pamięcią. Strony to zbiory danych.
Klucz potencjalny, funkcje klucza, podać dwa przykłady
Klucz potencjalny to kolumna lub grupa kolumn która jednoznacznie identyfikuje poszczególne krotki tabeli, nie może się on powtarzać i nie może mieć wartości NULL. Spośród kluczy potencjalnych (kandydujących) wybierany jest jeden i staje się on kluczem głównym. Funkcjami klucza jest identyfikacja rekordów tabeli, umożliwienie połączeń między tabelami, umożliwienie wyszukiwania rekordów na postawie jego wartości.
Przykłady:
Tabela składająca się z pól: PESEL , data urodzenia, data śmierci, imię, nazwisko Klucz potencjalny – PESEL
Tabela składająca się z pól: uczelnia, wydział, numer albumu, imię, nazwisko Klucz potencjalny – uczelnia+wydział+numer albumu
Różnica mnogościowa, opisać, przykład zapytania i wynik
Różnica mnogościowa to inaczej różnica kartezjańska dwóch tabel. Różnicę można stosować jeśli w dwóch tabelach (lub projekcjach) jest zgodna liczba i nazwy kolumn, w wyniku dostajemy te rekordy z tabeli pierwszej, które nie występują w tabeli drugiej.
SELECT imie, nazwisko FROM pracownicy EXCEPT (SELECT imie, nazwisko FROM klienci)
W wyniku otrzymamy wszystkich pracowników, którzy nie byli klientami
Podobnie suma mnogościowa – UNION
Iloczyn mnogościowy – INTERSECT
Słowny opis encji, czy jest poprawnie sformułowana, jakie występują zależności
Encja to zbiór atrybutów służących do opisania jakiegoś obiektu. Encje sformułowane są poprawnie jeśli opisują obiekt w pełni oraz są znormalizowane, tzn. ich atrybuty są atomowe, zależą w od klucza w pełni, nie występują przechodnie, wielowartościowe i połączeniowe zależności funkcjonalne. Zależności między różnymi encjami mogą być typu:
Jeden do jednego
Jeden do wielu
Wiele do wielu
Opisać meta dane w odniesieniu do HD
Metadane to dane o danych. W HD są to dane dotyczące użytkowników HD, statystyki użycia, dane historyczne, raporty, słowniki danych (definicje baz i relacji), numery wersji itp. Metadane w HD przechowywane są w osobnej warstwie (najwyższej), zwanej warstwą metadanych i służą do kontrolowania działania systemu.
Architektury dostępu do relacyjnych baz danych
W związku z tym, że cholera wie o co chodzi w tym pytaniu to:
Dostęp do danych poprzez selekcje (wybieranie krotek spełniających kryteria), projekcję (wybieranie kolumn spełniających kryteria) lub perspektywy (wybrane krotki i kolumny z jednej lub wielu tabel)
W odniesieniu do rozproszonych BD:
Klient – serwer
Klient – multiserwer (wiele serwerów)
Koleżeńska (p2p)
Architektura oparta na oprogramowaniu pośredniczącym (nie ma klientów i serwerów, tylko wymiana przezroczysta przez oprogramowanie pośredniczące)
OLTP i OLAP
OLTP – Online Transaction Processing, systemy przetwarzania transakcyjnego, w których rejestrowane są zmiany stanu rzeczy w formie transakcji, charakteryzują się krótki i prostymi transakcjami, operują na danych wyłączeni poprzez transakcje i mechanizmy z nimi związane, nie wspomagają procesu analizy danych.
OLAP – Online Analytical Processing, systemy przetwarzania analitycznego, w których dane są analizowane na podstawie np. poprzednich wyników zapytań, wielu źródeł itp. Pozwalają na podejmowanie decyzji, są ważnym narzędziem decyzyjnym, dostarczają odpowiednich narzędzi analitycznych.
Systemy OLTP i OLAP nie są ze sobą bezpośrednio zgodne, aby zgodność taką wprowadzić stosuje się Hurtownie Danych.