2. Scharakteryzować model obiektowej bazy danych?
Model danych, w którym wykorzystano cechy obiektowości tj.: pojęcie klasy i obiektów klasy, enkapsulacja, mechanizm identyfikacji obiektów , dziedziczenie ,przeciążanie funkcji ,, i późne wiązanie
Model obiektowy - kolekcja obiektów, do rekordów danych dołą-czane są mechanizmy obsługujące dane, obiekt jest pakietem da-nych i procedur, dane są trzymane w atrybutach obiektu, procedury są definiowane za pomocą metod obiektu, metody są uaktywniane przez komunikaty przekazywane między obiektami.
Np. ORION, INIS
Cechy podstawowe
• obiekt w bazie reprezentuje obiekt w świecie zewnętrz-nym
• typ obiektowy (klasa):
• definicja złożonego typu danych (może zawierać inne ty-py obiektowe lub ich kolekcje)
• procedury (metody) i operatory do manipulowania tymi danymi
• tożsamość obiektu jest niezależna od zawartości danych
• dziedziczenie (inheritance):
• strukturalne: potomek dziedziczy strukturę danych
• behawioralne: potomek dziedziczy metody i operatory
2. Co rozumie się pod pojęciem „logiczny model danych”?
Model logiczny danych - 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 koncepcyjny jest to inaczej obraz danych postrzeganych przez użytkownika (sposób wykorzystania, interpretacji danych).
2. Co rozumie się pod pojęciem „fizyczny model danych”?
Model fizyczny danych - sposób fizycznej realizacji modelu logicznego
2. Jakie modele logiczne danych wyróżnia się w systemach baz danych?
-hierarhiczny
-oparty na rekordach
-sieciowy
-relacyjny
2. Scharakteryzuj model sieciowy bazy danych.
-dane SA reprezentowane przez rekordy
-zwiazki miedzy danymi SA reprezentowane przez wskazania
- w modelu tym możemy zdefiniowac relacje typu wiele -wiele
- modelu sieciowym każdy element obiektu danych Region zawsze występuje jako tylko jedna podgałąź
Model sieciowy - rekordy lub paczki rekordów w postaci sieci al-bo listy jedno lub dwukierunkowej zamkniętej w pierścień. Po-wstały w 1971 roku, organizacja zajmująca się tym modelem CO-DASYL
Np. IMAGE (IBM)
Cechy podstawowe
• struktura danych ma postać grafu (sieci)
• wierzchołki grafu - typy obiektów
• łuki w grafie - wiązania między typami
• opis obiektu (rekord) zbudowany z pól zawierających dane opisujące obiekt
• reprezentacja wiązań (wskaźniki):
• odesłanie bezpośrednie (jednowart.)
• odesłanie inwersyjne (wielowart.)
• wiązanie codasylowe
2. Scharakteryzuj model relacyjny bazy danych.
-dane w tym modelu reprezentowane SA przez rekordy umieszczone w tabelach
-kazda tabela przechowuje rekordy tego samego typu
-kazda tabela ma okreslona stala ilość kolumn o unikalnych nazwach (pierdoli się przy wyszukiwaniu jak SA takie same)
-elementy tabeli (atrybuty) SA wypelnione atomowymi wartościami
-kazda krotka tabeli musi być jednoznacznie okreslona przez wartość klucza tabeli
- modelu sieciowym każdy element obiektu danych Region zawsze występuje jako tylko jedna podgałąź
2. Scharakteryzuj model hierarchiczny bazy danych.
-rekordy sa zorganizowane w drzewa
Model hierarchiczny był pierwszym modelem baz danych skon-struowany na bazie rekordów, dzięki hierarchii szybsze wyszuki-wanie, rekordy zmiennej długości o specjalnym znaczniku końca, najczęściej w formie drzew zrównoważonych, stosowane mechani-zmy nizania (poruszanie się w dwóch kierunkach drzewa), wyko-rzystywane np. w budowie sprzętu - baza danych opisująca części
Np. IMS
Cechy podstawowe
• struktura danych ma postać drzewa
• węzły - typy opisywanych obiektów
• łuki - związki typu ojciec-syn
• drzewo jest uporządkowane, tj. na każdym poziomie ko-lejność węzłów jest określona
• opis obiektu (rekord) zbudowany z pól zawierających dane opisujące obiekt
• związki zrealizowane jako wskaźniki
3. Co oznacza skrót SQL?
Structured Query Language
3. Co oznacza skrót DDL?
Data Definition Language - umożliwia definiowanie struktury danych zawartych w bazie.
3. Co oznacza skrót DML?
Data Manipulation Language - umożliwia wypełnienie, modyfikowanie i usuwanie danych z bazy.
3. Co to są więzy integralności w bazie danych?
-Jest to system reguł zapewniajacych poprawność związków miedzy krotkami tabel o ile te tabele sa powiazane relacja wynikajaca z istnienia kluczy obcych i głównych.sa to takie reguły ktore sa za każdym razem sprawdzane gdy w bazie dokonujemy jakichkolwiek zmian.
Mamy następujące wiezy integralności
a)jednoznaczności
b)intgralnosci referencyjnej
c)dziedziczone lub domenowe
d)globalne
3. Jak wykrywa się impasy w systemach baz danych? Podać metody.
Sytuacja, w której każdy element zbioru S dwóch lub większej ilości transakcji czeka na blokadę jednostki właśnie zablokowanej przez pewną transakcję ze zbioru S nazywa się impasem (deadlock). Najprostszą metodą wykrycia impasów jest metoda oparta na rysowaniu grafu oczekiwań. Wierzchołkami takiego grafu są transakcje, a krawędzie tego grafu oznaczają, że transakcja T1 czeka na zablokowanie jednostki, która jest blokowana przez T2.
Jeżeli taki graf oczekiwań zostanie utworzony i w grafie tym będą występowały cykle, to mamy wówczas dowód na istnienie impasu. Jeżeli taki impas zostanie wykryty, to trzeba zacząć ponownie wykonywać jedną z powodujących ten impas transakcji, a wyniki dotychczasowego działania tej transakcji muszą być usunięte z bazy danych.
Istnieje kilka sposobów na pokonanie tego problemu:
Każda transakcja zgłasza od razu swoje żądania blokowania zaś system albo przydzielała je wszystkie albo w przypadku gdy jedna lub więcej blokad cząstkowych jest już nałożona przez inne transakcje, nie przydziela takiej blokady i powoduje, że cała taka transakcja oczekuje na blokadę.
Przypisuje się jednostkom pewne arbitralne uporządkowanie i wymaga się by wszystkie żądały blokad w tej kolejności.
Nie robi się nic by zapobiegać impasom. Bada się za to okresowo żądania blokowania i sprawdza, czy impas występuje. Stosuje się tu zazwyczaj metodę opartą na rysowaniu grafu oczekiwań. Wierzchołkami takiego grafu są transakcje, a jego krawędzie oznaczają, że transakcja T1 czeka na zablokowanie jednostki która jest zablokowana przez T2
Jeżeli taki graf oczekiwań zostanie utworzony i w grafie tym będą występowały cykle to mamy wówczas dowód na istnienie impasu. Jeżeli taki impas został wykryty, to trzeba zacząć ponownie wykonywać jedną z powodujących ten impas transakcję, a wyniki dotychczasowego działania tej transakcji muszą być usunięte z BD. Taki proces ponownego startu przy impasie może być i często jest skomplikowany jeśli nie opracowano specjalnego sposobu zapisu zmian w BD.
3. Co oznaczają skróty O2, GemStone?
Są to: znane systemy zarządzania obiektowymi bazami danych
3. Co oznacza skrót ODBC, JDBC?
ODBC - Open DataBase Conectivity - Standard dostępu do baz danych. Pozwala na komunikację programów z bazami danych na poziomie systemu. ODBC definiuje niskopoziomowy zbiór funkcji umożliwiających aplikacji klienta i serwera wymianę danych i przekazywanie instrukcji bez konieczności posiadania dokładnych informacji o budowie zarówno klienta jak i serwera. Dotyczy to dowolnych operacji wykonywanych na połączeniu aplikacji klient/serwer niezależnie od tego czy klient i serwer działają na tym samym czy na różnych komputerach a nawet na różnych platformach zarówno programowych jak i sprzętowych.
JDBC - Java DataBase Connectivity - jest interfejsem programistycznym, skonstruowanym w i przeznaczonym dla języka Java, który umożliwia ustandaryzowany dostęp do większości obecnych na rynku systemów bazodanowych.
3. Co oznacza skrót OQL?
4. Na czym polega przechodnia zależność funkcyjna między danymi w bazie danych?
Niech x i y będą podzbiorami atrybutów relacji R .Powiemy ze y zalezy funkcjonalnie od x co zapiszamy symbolicznei x->y jeżeli nie jest możliwe by w relacji R znalzly jednoczenie 2 krotki które by mialy rozne wartości x i jednoczesnie mialy rowne wartości y
4. Co to jest klucz potencjalny w bazie danych?
Kolumna lub zbiór kolumn, jednoznacznie identyfikujących każdy wiersz. Klucz główny tabeli wybierany jest spośród jej kluczy potencjalnych.
4. Jak definiuje się pole kluczowe w bazie danych?
4. Do czego służą klucze w relacyjnych bazach danych ? Podać dwa przykłady pól kluczowych.
-służą do rozróżnienia wszystkich krotek danej relacji, do której ten klucz przynależy
4. Co to jest klucz główny w relacyjnej bazie danych?
Jest to minimalny klucz relacji. Inaczej: Kolumna lub zbiór kolumn, jednoznacznie identyfikujących każdy wiersz. Jako przykład podać można kolumnę z numerem faktury w tabeli, której wiersze reprezentują kompletne faktury. Numer każdej faktury jest unikalny i jednoznacznie ją identyfikuje; w tabeli nie ma innego rekordu (wiersza) o tym samym numerze faktury. Wystarczy zapamiętać sam numer, aby móc w dowolnej chwili za jego pomocą odwołać się do całego wiersza. Numer pełni zatem rolę klucza. Na podstawie kolumn, tworzących klucz główny, buduje się zwykle indeks, przyspieszający dostęp do wierszy tabeli.
4. Wymienić typy związku między polami bazy danych.
-jeden do wielu (takie związki powinna zawierać dobra baza danych )
-jeden do jeden
-wiele do wielu (wiele wystąpień w jednej tabeli odpowiada wielu wystąpienia tej wartości w drugiej tabeli )
4. Wyjaśnić kiedy atrybut X relacji R jest w pełni funkcjonalnie zależny od atrybutu Y tej relacji.
Atrybuty Y są w pełni funkcjonalnie zależne od atrybutów X, jeśli Y jest funkcjonalnie zależny od X, ale nie jest funkcjonalnie zależny od żadnego właściwego podzbioru X.
4. Wyjaśnić kiedy atrybuty X,Y,Z relacji R są połączeniowo zależne funkcjonalnie.
5.Opisać operację złączenia (JOIN) dwóch tabel w relacyjnej bazie danych w języku SQL. Podać dwa przykłady.
Operacja JOIN łączy dwie lub więcej tabel wg. wspólnych kolumn w jedna. Jest operacja odwrotna do normalizacji.
SELECT nazwisko FROM kierunki JOIN studenci USING (nr_kierunku) WHERE studenci plec='n' GROUP BY nazwisko;
5. Opisać operację sumy mnogościowej dwóch tabel w relacyjnej bazie danych w języku SQL. Podać przykład.
Unia (suma)
Unia powoduje zsumowanie zbiorów krotek dwóch lub więcej relacji (bez powtórzeń). Warunkiem poprawności tej operacji jest zgodność liczby i typów atrybutów pobranych z relacji źródłowych.
W poniższym przykładzie krotki relacji studenci, okrojone w wyniku projekcji do atrybutów imię i nazwisko, są sumowane z okrojonymi w ten sam sposób krotkami relacji nauczyciele.
select imię, nazwisko from studenci union select imię, nazwisko from nauczyciele;
Przekrój (intersect)
Wynikiem przekroju jest iloczyn zbiorów krotek dwóch lub więcej relacji, tzn. zbiór krotek występujących jednocześnie w tych relacjach. Podobnie jak w przypadku sumy, warunkiem poprawności tej operacji jest zgodność liczby i typów atrybutów pobranych z relacji źródłowych.
W poniższym przykładzie jest wyznaczany przekrój krotek relacji studenci, okrojonych w wyniku projekcji do atrybutu nazwisko, z okrojonymi w ten sam sposób krotkami relacji nauczyciele. Innymi słowy, odszukane zostają nazwiska występujące zarówno w relacji studenci jak i nauczyciele.
select nazwisko from studenci intersect select nazwisko from nauczyciele;
Różnica (minus)
Operacja ta polega na pobraniu krotek występujących wyłącznie w pierwszej relacji spośród relacji źródłowych.
Select nazwisko from studenci minus select nazwisko from nauczyciele where typ_uczelni = `U'
W poniższym przykładzie są wyznaczone te nazwiska z relacji studenci, które nie występują jednocześnie w podzbiorze krotek relacji nauczyciele, ograniczonym w wyniku selekcji warunkiem typ_uczelni = `U'.
select nazwisko from studenci minus select nazwisko from studenci where typ_uczelni = `U';
5. Opisać operację różnicy mnogościowej dwóch tabel w relacyjnej bazie danych w języku SQL. Podać przykład
patrz wcześniej
5. Opisać operację rzutowania (PROJECT) tabel w relacyjnej bazie danych w języku SQL. Podać przykład
Projekcja umożliwia pobranie wartości wybranych atrybutów, wymienionych po słowie kluczowym select z wszystkich krotek relacji. W poniższym przykładzie zostaną pobrane wartości atrybutów nr_indeksu i nazwisko ze wszystkich krotek relacji studenci.
select nr_indeksu, nazwisko from studenci;
5. Opisać operację iloczynu mnogościowego dwóch tabel w relacyjnej bazie danych w języku SQL. Podać przykład.
patrz przekrój
5. Co to jest równozłączenie? Podać przykład użycia takiej operacji oraz wynik równozłączenia.
Równozłączenie jest to operacja na bazie danych polegająca na połączeniu dwu tabel z uwzględnieniem wyłącznie wierszy, których wartości w kolumnach złączenia (określanych domyślnie przez klucz główny jednej tabeli i klucz obcy drugiej) są takie same
Równozłączenie jest to operacja na bazie danych polegająca na połączeniu dwu tabel z uwzględnieniem wyłącznie wierszy, których wartości w kolumnach złączenia (określanych domyślnie przez klucz główny jednej tabeli i klucz obcy drugiej) są takie same
5. Podać przykład definiowania tabeli bazy danych w SQL
CREATE TABLE `columns_priv` (
`Host` char(60),
`Db` char(64),
`User` char(16),
`Table_name` char(64),
`Column_name` char(64)NOT NULL default '',
PRIMARY KEY (`Host`)
)
5. Wyjaśnić pojęcie perspektywy w relacyjnych bazach danych.
Logiczna reprezentacja podzbioru danych tabeli. Sama perspektywa nie jest zbiorem danych, lecz skompilowanym zapytaniem SQL, do którego można się odwoływać, tak jak do tabeli. Perspektywa zapewnia na ogół dostęp do podzbioru kolumn, wierszy albo zarówno kolumn, jak i wierszy.
6. Pola kluczowe w tabeli ZLECENIA oznaczono znakiem #. W jakiej postaci normalnej jest następująca tabela i dlaczego?
Nazwa pola |
Charakterystyka |
# Nr_zlecenia |
|
Nazwa zlecenia |
|
# NIP_wykonawcy |
|
# NIP_klienta |
|
Data_zlecenia |
|
# ID_zlecenia |
|
Imię_wykonawcy |
|
Nazwisko_wykonawcy |
|
Nazwisko_klienta |
|
Nazwa_wykonawcy |
|
Adres_kliebta |
|
Opis_zlecenia |
|
Koszt_zlecenia |
|
Telefon_klienta |
|
Telefon_wykonawcy |
|
Nr_konta_zleceniodawcy |
|
Nr_konta_wykonawcy |
|
Jeśli tabela jest w niższej postaci normalnej niż 5NF, to doprowadzić ją do postaci znormalizowanej.
6. Pola kluczowe w tabeli PRZEWOZY_AUTOKAROWE oznaczono znakiem #. W jakiej postaci normalnej jest następująca tabela i dlaczego?
Nazwa pola |
Charakterystyka |
# nr_rejstracyjny_autobusu |
|
Dzień_wyjazdu |
|
Cel_podrózy |
|
#Typ_podróży |
|
#Nr_kierowcy |
|
Nazwisko_kierowcy |
|
Rok_produkcji_autobusu |
|
Jeśli tabela jest w niższej postaci normalnej niż 5NF, to doprowadzić ją do postaci znormalizowanej.
6. Pola kluczowe w tabeli KASA_CHORYCH oznaczono znakiem #. W jakiej postaci normalnej jest następująca tabela i dlaczego?
Nazwa pola |
Charakterystyka |
# Pesel_pacjenta |
|
Nazwisko_pacjenta |
|
Imię_pacjenta |
|
Adres_miejscowość |
|
Adres_ulica |
|
Adres_nr_domu |
|
# Nr_kasy_chorych |
|
# ID_lekarza |
Nr prawa wykonywania zawodu |
Nazwisko_lekarza |
|
Imię_lekarza |
|
Jeśli tabela jest w niższej postaci normalnej niż 5NF, to doprowadzić ją do postaci znormalizowanej.
6. Pola kluczowe w tabeli PRZEWOZY_PKP oznaczono znakiem #. W jakiej postaci normalnej jest następująca tabela i dlaczego?
Nazwa pola |
Charakterystyka |
# Id_pociągu |
|
# NR_kursu |
|
Przystanek_docelowy |
|
# Typ_pociągu |
|
Ilość_wagonów |
|
Ilość_miejsc_siedzących |
|
# Nr_motorniczego |
|
Nazwisko_motorniczego |
|
Jeśli tabela jest w niższej postaci normalnej niż 5NF, to doprowadzić ją do postaci znormalizowanej.
6. Pola kluczowe w tabeli ZGŁOSZENIA_TAXI oznaczono znakiem #. W jakiej postaci normalnej jest następująca tabela i dlaczego?
Nazwa pola |
Charakterystyka |
# ID_taxi |
|
Nazwisko_kierowcy |
|
# nr_kursu |
|
Nazwisko_pasażera |
|
Adres_pasażera |
|
Czas_zgłoszenia |
|
# Nr_Rejonu_taxi |
|
Uwagi_o_zgłoszeniu |
|
Jeśli tabela jest w niższej postaci normalnej niż 5NF, to doprowadzić ją do postaci znormalizowanej.
6. Pola kluczowe w tabeli PRODUKTY oznaczono znakiem #. W jakiej postaci normalnej jest następująca tabela i dlaczego?
Nazwa pola |
Charakterystyka |
# ID_produktu |
|
Nazwa_produktu |
|
# Id_dostawcy |
|
Nazwa_dostawcy |
|
Wielkość opakowania |
|
# Rodzaj_opakowania |
|
Jeśli tabela jest w niższej postaci normalnej niż 5NF, to doprowadzić ją do postaci znormalizowanej.
6. Pola kluczowe w tabeli DZIAŁKI_REKREACYJNE oznaczono znakiem #. W jakiej postaci normalnej jest następująca tabela i dlaczego?
Nazwa pola |
Charakterystyka |
# Id_działki |
|
# Kod_drzewa_owocowego |
|
Ilość_drzew |
|
Kod_krzewu |
|
Ilość_krzewów_o_danym_kodzie |
|
Opis_działki |
|
Jeśli tabela jest w niższej postaci normalnej niż 5NF, to doprowadzić ją do postaci znormalizowanej.
6. Pola kluczowe w tabeli DEALERZY oznaczono znakiem #. W jakiej postaci normalnej jest następująca tabela i dlaczego?
Nazwa pola |
Charakterystyka |
# ID_DEALERA |
|
Nazwisko_imię |
|
# Kod_firmy_kosmetycznej |
|
Nazwa_firmy |
|
Jeśli tabela jest w niższej postaci normalnej niż 5NF, to doprowadzić ją do postaci znormalizowanej.
7. Do czego służy klauzula „group by”? Podać przykład jej użycia
Grupowania dokonuje się przy pomocy klauzuli GROUP BY z podaniem atrybutów definiujących grupy. Jeśli mamy GROUP BY A1, ⃛, Ak dzielimy relację na grupy tak, że krotki są w tej samej grupie wtedy i tylko wtedy, gdy pasują do wszystkich atrybutów A1, ⃛, Ak.
7. Do czego służy klauzula „order by” ? Podać przykład jej użycia
7. Czy można w zapytaniach używać zapytań zagnieżdżonych i kiedy?
7. Co zapis „select * from pracownicy” i kiedy jest taki zapis poprawny w zapytaniach do bazy danych.
7. Do czego służy count( ) ? Podać przykład jej użycia
7. Do czego służą aliasy w zapytaniach selekcyjnych? Podać przykład ich użycia.
7. Do czego służy „order by desc” ? Podać przykład jej użycia
7 Do czego służy klauzula „having”? Podać przykład jej użycia
8. Opisać architekturę ODBC zorientowaną na serwer bazy danych.
W wielowarstwowej konfiguracji, sterownik przesyła zapytanie SQL do serwera, który przetwarza (wykonuje) to zapytanie.
Aplikacja, sterownik i zarządca sterowników znajdują się w ramach systemu zwanego zwykle klientem. Źródło danych jak i oprogramowanie realizujące kontrolę dostępu do danych znajduje się w tej sytuacji zazwyczaj na innym komputerze zwanym serwerem.
8. Na czym polega dostęp do bazy danych w architekturze klient-serwer?
Architektura klient-serwer
Istnieją dwa sposoby realizacji dostępu do bazy danych w architekturze klinet-serwer:
Rozwiązanie oparte na serwerze plików oraz na serwerze SQL. Pierwsze ma wiele wad (brak gwarancji jednolitego systemu zarządzania np. współbieżnością, szybkością dostępu), natomiast drugie wspiera optymalizację zapytań, współbieżność oraz standardowe odwołania do systemu zarządzania (SQL).
Koncepcja klient serwer, wykorzystująca serwery bazodanowe (SQL) zaczęła się rozwijać wraz z rozwojem sieci komputerowych. Wówczas wymyślono, aby system posiadał dwa rodzaje aplikacyj: jedną na komputerze (komputerach) klienta, drugą na serwerze (serwerach). Oprócz tego na rozwój architektury klient-serwer ma wpływ Internet w tym WWW (dostęp do serwerów poprzez adresy URL, środowisko graficzne).
W tej architekturze aplikacje mogą być dzielone na moduły i odpowiednie moduły (np. formularz) są przesyłane do odpowiednich klientów. Dodatkowo mechanizmy internetu wykorzystuje się w sieciach wewnętrznych firm (intranety).
Do tych celów opracowano trójwarstwowy model zarządzania, gdzie poszczególne warstwy odbierają dane i dokonują na nich ściśle określonych działań, a w przypadku błędu komunikat o nim przesyłają do źródła danych. Żadna z warstw nie powiela pracy innych.
Wyróżnia się 3 warstwy:
1.Dolną -odpowiedzialną za dostęp do bazy danych. Realizuje ona bezpoścredni dostęp do bazy poprze sterowniki oraz aplikacje sieciowe. Warstwa ta odbiera instrukcje-zapytania SQL z warstwy średniej i je wykonuje. Odpowiedź z bazy danych przekazuje warstwie środkowej.
2.Środkową -warstwę reguł dziedziny danych. Tworzy ona kod odpowiedzialny za implementację reguł spójności danych, zgodności formatu. Te reguły wymuszają na aplikacji odpowiednią modyfikację bazy danych. Pobiera z warstwy górnej zadania -instrukcje do wykonania. Porównuje je z regułami i przesyła do dolnej warstwy, a wyniki otrzymane od niej i potwierdzenie wykonania przekazuje do warstwy górnej
3.Górną -interface użytkownika. Zajmuje się ona prezentacją danych i instrukcyj w komputerze użytkownika. Odbiera od niego dane i przekazyuje warstwie środkowej i wyświetla otrzymane od niej dane lub komunikaty o błędzie. Projekt interface'u nazywa się kodem prezentacji. Zawiera on: sposób podiału na ekrany, przepływ informacji pomiędzy ekranami, ułożenie pól na ekranie, sposób prezentacji komunikatów, rodzaje symulacji graficznej, użycie kolorów, grafiki etc.
Warstwy to logiczne części aplikacji rozdzielone funkcjami. Warstwy górna i dolna nie zależą od sposobu przechowywania bazy danych, której struktura jest znana jedynie warstwie środkowej, która może być scalona z górną. Gdy warstwom odpowiadają rożne programy to pełnią rolę klienta albo serwera, przy czym warstwa górna jest zawsze klientem, dolna serwerem. Można mówić o klientach jedno- i wielowarstwowych.
Do dostępu do baz danych stosuje się standardowe sterowniki. Najpopularniejszym jest standard ODBC (Open DataBase Connectivity) by Microsoft. Inne to Java DBC (JDBC) by Sun, DataBase Engine (DBE) by Borland.
W standardzie ODBC stewrownik ODBC umieszcza się pomiędzy bazą danych a aplikacją. Dla różnych systemów baz danych są różne sterowniki ODBC, przy czym można wyróżnić 2 architektury:
1. zorientowana na klienta (najpopularniejsza): sterownik ODBC jest umieszczany na komputerze klienta (PC+Windows); kżdy sterownik używa specjalnego oprogramowania sieciowego do połączenia się z serwerem; aplikacja korzysta z menedżera sterowników ODBC, wybierającego odpowiedni sterownik dla odpowiedniego systemu b.d.
2. zorientowana na klienta: tu do komunikacji wystarczy standardowy sterownik komunikacji sieciowej, zaś sterowniki ODBC znajdują się na serwerze ODBC (który może lecz nie musi być związany bezpośrednio z jednym serwerem b.d.); maszyna klienta potrzebuje tylko „ogólnego” sterownika ODBC; serwer wymaga jednego sterownika dla każdego systemu b.d.
Z kolei Interface JDBC może pracować w dwóch trybach: z lub bez pośrednictwa sterowników ODBC.
Przy wykorzystywaniu Internetu (intranetu) jako medium łączącego klienta z serwerem można skorzystać z języków programowania wykorzystywanych w Internecie:
-HTML -formularze HTML są przesyłane na serwer i wykonywane przez skrypty CGI lub PHP
-Applety Javy®- wykorzystujące formularze HTML lub sterowniki JDBC lub ODBC.
W realizacji dostępu z wykorzystaniem Internetu (intranetu) warstwę środkoa często umieszcza się na oddzielnym serwerze warstwy środkowej (jek w ODBC, JDBC i CGI), który dopiero komunikuje się z serwerem bazy danych. Ponadto za efektywniejszą uważa się realizację klienta jednowarstwowego.
8. Na czym polega dostęp do bazy danych w architekturze z serwerem plików?
9.Opisać metodę blokowania dwufazowego transakcji w bazie danych.
Polega on na tym, że każda transakcja przebiega w dwóch fazach: zablokowania i odblokowania, więc nie ma oddzielnego odblokowania. Moment założenia wszystkich blokad nazywa się punktem akceptacji. Zapis realizuje się dopiero w fazie odblokowania, a jednostka zostaje odczytana w fazie blokady. Można dodatkowo założyć, że jednostka zablokowana i zwolniona, może mieć nową blokadę dopiero po jakimś czasie. Inaczej wygląda harmonogram szeregowalności, graf będzie multigrafem, gdzie niektóre ścieżki mogą być traktowane wariantowo. Algorytm jest podobny do poprzednich. Ta metoda jest najczęściej implementowana w SZBD. Jest połączona z wypełnieniem i realizacją dziennika transakcji.
9. Na czym polega metoda optymistyczna zarządzania współbieżną realizacją dostępu do bazy danych.
Metody optymistyczne współbieżnej realizacji operacji na BD polegają na synchronizacji transakcji. Do metod tych zaliczamy metodę opartą o etykiety - znaczniki czasowe oraz metody tzw. walidacji. Metoda optymistyczna nie traci czasu na blokady oraz na ich usuwanie. Czas poświęcony na powtórzenie transakcji, które muszą zostać odrzucone może być znacznie krótszy niż czas zużyty na oczekiwanie na blokady lub usuwanie impasu. Metoda optymistyczna jest efektywna pod warunkiem, że małe jest prawdopodobieństwo konfliktu dwóch transakcji. Szansa wzajemnego oddziaływania dwóch transakcji wykonywanych w tym samym czasie jest mała pod warunkiem, że każda z nich ma dostęp tylko do drobnego fragmentu BD. Dla omawianych metod niejako zakłada się wprowadzenie uporządkowania sekwencyjne-go i wykrywania jego naruszeń. Efekt taki można uzyskać jeśli posiada się system tworzenia tzw. znaczników czasowych (timestemps).
Znaczniki czasowe są nadawane pojawiającym się transakcjom do obsługi. Znaczniki czasowe są liczbami generowanymi w każdym takcie zegara. Takty wewnętrznego zegara komputera występują z tak dużą częstotliwością, że dowolne dwa zdarzenia (np. zgłoszenie trans-akcji) nie mogą zajść w tym samym takcie. Wynika stąd, że każdej transakcji nadaje się inny znacznik czasowy, który jest bieżącym czasem zegara. Znacznik czasowy nadajemy w chwili inicjalizacji transakcji lub w momencie jej odczytu lub zapisu na dysk. Żadne dwie transakcje nie mają tego samego znacznika czasowego. Za kryterium poprawności sposobu ich przyporządkowania przyjmujemy, że transakcje powin-ny zachowywać się tak, jak gdyby kolejność ich znaczników była uporządkowaniem sekwencyjnym transakcji. Znaczniki liczbowe będą du-żymi liczbami. Dla większości zastosowań wystarczy 16 - bitowy znacznik czasowy dla każdej transakcji. Rozważymy teraz w jaki sposób za pomocą znaczników czasowych zmusza się nie odrzucone transakcje do tego, by zachowywały się tak, jak gdyby były wykonywane se-kwencyjnie. Dla każdej jednostki BD zapamiętuje się dwa czasy:
czas odczytu - największy znacznik czasowy należący do dowolnej transakcji odczytującej tę jednostkę.
czas zapisu - największy znacznik należący do dowolnej transakcji zapisującej tę jednostkę.
Robiąc to można uzyskać wrażenie, że transakcji wykonywana jest w jednej chwili wskazywanej przez jej znacznik czasowy. Znaczniki cza-sowe przypisane transakcji i zapamiętywanie czasów odczytu i zapisu służą do sprawdzenia, czy nie zdarza się nic fizycznie niemożliwego.
nie jest możliwe by transakcja mogła odczytać wartość jednostki, jeśli tę jednostkę zapisano już po wykonaniu tej transakcji. Inaczej mówiąc transakcja ze znacznikiem czasowym t1 nie może odczytać jednostki o czasie zapisu t2 takim, że t2 > t1.Jeśli transakcja chce tego dokonać, to należy ja odrzucić i ponownie rozpocząć. (1)
nie jest możliwe by transakcja mogła zapisywać jednostkę, jeśli stała wartość tej jednostki ma być później odczytana. Oznacza to, że transakcja ze znacznikiem t1 nie może zapisać jednostki o czasie odczytu t2, jeśli t2 > t1. Taką transakcję trzeba odrzucić. (2)
Nie budzi wątpliwości, ze dwie transakcje mogą odczytywać te same jednostki bez jakiegokolwiek konfliktu, tzn. transakcja ze znacz-nikiem t1 może czytać tą samą jednostkę o czasie odczytu t2 jeśli t2 > t1. Mniej oczywistym wydaje się fakt, że nie trzeba odrzucać transak-cji ze znacznikiem t1, jeśli próbuje ona zapisać jednostkę o czasie zapisu t2, nawet jeśli t2 > t1.Fakt ten uzasadniamy w następujący sposób: jednostka jest zapisywana przez transakcję t1 a następnie przez t2 w uporządkowaniu sekwencyjnym opartym na znacznikach czasowych. Widać jednak z warunków (1) i (2), że między chwilami t1 i t2 jednostka nie jest odczytywana przez żadną transakcję gdyż w przeciwnym razie jej czas odczytu przekroczyłby czas t1, w którym zapisuje ją pierwsza transakcja. Spowodowałoby to odrzucenie transakcji na mocy punktu (2). Wynika stad, że przestrzegając pewnych reguł i wykonując transakcje ze znacznikami czasowymi zamiast blokowania można zachować uporządkowanie sekwencyjne
9. Omówić metodę całkowitego blokowania wszystkiego w dostępie do bazy danych.
9. Omówić większościową metodę blokowania w dostępie do bazy danych.
Porównanie metod: Metoda całkowitego blokowania vs. Metoda Większościowa
Zapis.
Przy zapisie nieco lepsza jest metoda większościowa, bo wymaga średnio mniej komunikatów na zapis.
Odczyt.
Jeśli typowe transakcje wymagają równej liczby blokad całkowitych i blokad zapisu, to żadna z tych metod nie ma przewagi, na-wet przy policzeniu całkowitej liczby komunikatów lub przy przypisaniu większej wagi komunikatom krótkim niż długim. Faktycznie dla n = 1 obie metody są identyczne. Z drugiej strony, jeśli większość blokad zakłada się dla odczytu, to znacznie przydatniejsza jest metoda cał-kowitego blokowania wszystkiego a jeśli przeważają blokady całkowite, to lepsza jest metoda większościowa.
Ponadto metoda większościowa spisuje się lepiej w następujących sytuacjach:
Transakcje często współzawodniczą o blokadę tej samej jednostki.
Sprawiamy, że transakcje, chcąc zablokować jednostkę, żądają blokad we wszystkich węzłach lub w ich większości.
Przy zastosowaniu metody całkowitego blokowania wszystkiego, każda z dwóch realizujących transakcji rozpoczętych w mniej więcej tym samym czasie potrafi prawdopodobnie zapewnić sobie blokady co najmniej jednej kopii jednostki o którą współzawodniczą. Ta sytuacja powoduje impas: są to sytuacje wykrywalne ale czasochłonne. Pobierają one zarówno czas rzeczywisty, ponieważ każda transakcja czeka dopóty, dopóki impas nie zostanie usunięty, jak i czas systemowy, gdyż często jest niezbędne wykonywanie procedury wykrywania impasu. Przy zastosowaniu metody większościowej jedna transakcja zawsze uzyska zablokowanie drugiej, podczas gdy druga może czekać lub być odrzucona.
9. Omówić metodę węzła pierwotnego w dostępie do bazy danych.
Podejście w którym odpowiedzialność odpowiedzialność blokowanie konkretnej jednostki spoczywa na jednym konkretnym wezle .Dla każdej jednostki może to być inny wezel albo w systemie jest jeden wezel którym zarzadza się blokadami wszystkich kopii.Wytepuje tablica z adresami kopii pierwotnych. za pomoca tej tablicy dostajemy się do danego węzła i blokujemy i uzyskujemy informacje ze nie można założyć blokady. metoda jest efektywna ale niezbyt bezpieczna przy awariach.
9. Omówić metodę żetonu kopii pierwotnej w dostępie do bazy danych
Metoda żetonu w formie pierwotnej
Modyfikacją powyższej jest metoda, która dodatkowo w węźle pierwotnym wydaje żetony (odczytu i zapisu). Są to inaczej uprawnienia przyznawane określonym węzłom sieci. Dla dowolnej jednostki A może istnieć jeden żeton zapisu i wiele żetonów odczytu. Żetony te są przekazywane z węzła do węzła. Posiadanie przez węzeł żetonu zapisu A może zapewnić transakcji wykonywanie w tym węźle zablokowa-nia całkowitego lub zapisu. Jeżeli węzeł ma żeton odczytu jednostki A, to może zapewnić blokowanie jej zapisu transakcji, która jest w tym węźle, ale nie zapewnia blokowania całkowitego. Ta metoda nazywana jest metodą żetonu kopii pierwotnej.
Jeżeli transakcja zarządza całkowitego zablokowania jednostki A, to należy spowodować by do tego węzła został przesłany żeton zapisu A. Gdy w węźle nie ma żetonu to przesyłamy komunikaty do pozostałych węzłów zawierających jednostkę z żądaniem wyrzeczenia się że-tonu. Wszystkie żetony odczytu i zapisu muszą dojść do tego węzła.
Z każdego węzła zawierającego jednostkę A mogą być przesłane trzy komunikaty:
1) o zrzeczeniu się żetonu (zapisu i odczytu);
2) o stwierdzeniu braku żetonu w węźle;
3) informacja, że węzeł nie może zrzec się żetonu, bo trwa blokada jednostki A
Występują dodatkowe uwarunkowania: węzeł żądający żetonu musi wiedzieć do jakich węzłów trzeba wysłać komunikaty. Baza posia-da rejestr posiadanych żetonów dla węzłów. Komunikaty wymagają potwierdzenia. Węzeł który pierwszy chce modyfikować jednostkę re-zerwuje węzeł dla siebie. Inne transakcje są niejako odrzucane. To prowadzi do wielokrotnego żądania blokowania jednostki do zapisu. Że-ton zapisu to 3n komunikatów krótkich
Żądanie odczytu jednostki A - ogólna zasada jest taka sama (też są żetony). Różnica jest taka, że jeżeli w węźle pojawi się transakcja żądająca odczytu A i jednostka posiada żeton odczytu, to nie ma komunikatów przesyłanych na zewnątrz. Jeżeli jednostka nie posiada żąda-nego żetonu, żąda żeton odczytu i sprawdza czy nie dokonuje się jakiś żeton. Odpowiedź z innych węzłów może być:
1) węzeł może przekazać żeton odczytu;
2) węzeł nie ma żadnego żetonu dla jednostki A;
3) węzeł nie może oddać takiego żetonu, bo zawiera transakcję całkowicie blokującą jednostkę A;
Gdy węzeł może dokonywać operacji odczytu to przesyłane jest 3n (4n) komunikatów. Jeżeli w węźle nie ma jednostki A, to potrzebny jest jeszcze długi komunikat odczytujący wartość A z innego węzła.
Metoda żetonu kopii pierwotnej wymaga większej ilości przesłanych komunikatów.
Główną zaletą jest to, że jeżeli w danym węźle wykonuje się większość transakcji dotyczących danej jednostki, to z reguły żeton zapisu znajduje się w tym węźle.
Metoda węzła pierwotnego nie jest metodą bezpieczną (gdy zachodzi węzeł pierwotny).
9. Omówić metodę węzła centralnego w dostępie do bazy danych
Metoda węzła centralnego
Metoda ta polega na przypisaniu odpowiedzialności za blokowanie jednemu węzłowi. Węzłem pierwotnym jest tylko jeden węzeł-centralny. Nie musi zawierać kopii jednostki którą należy blokować. Blokada zapisu: do węzła centralnego przesyłane jest żądanie blokady zapisu. Jeżeli blokada nie może nie może być zapewniona to do źródła wysyła się odpowiedni komunikat. Żeby sprawdzić czy blokada jest założona węzeł centralny wysyła komunikaty do węzłów z kopiami. Jeżeli blokada może być założona to węzeł z kopią wysyła wartość do węzła żądającego blokady. Często jest potrzebny dodatkowy komunikat do węzła z kopią o konieczności przesłania żądanej wartości. Na podobnych zasadach odbywa się blokowanie całkowite dla modyfikowania jednostki. Węzeł żądający blokady wysyła na koniec żądanie zdjęcia blokady.
Niestety opisywana metoda jest wolniejsza od poprzedniej. Kolejną jej wadą jest to, że większość komunikatów jest przesyłana od / do węzła centralnego, a zatem węzeł centralny jest wąskim gardłem przy komunikacji. Dodatkowo metoda ta nie jest bezpieczna - szczególnie w przypadku awarii węzła centralnego cały mechanizm obsługi staje się bezużyteczny. Są jednak metody wykrywające awarie węzła centralne-go i przejmujące jego funkcje.
9. Opisać metodę blokowania hierarchicznego transakcji w bazie danych.
Metoda hierarhicznego blokowania
W niektórych bazach danych można zakładać blokady na całe relacje, krotki, wybrane elementy. Gdy w systemie jest możliwe powyż-sze blokowanie, to nazywamy ją metodą hierarchicznego blokowania. Jeżeli weźmiemy zbyt małe jednostki do blokowania, to możemy otrzymać niespójność bazy danych. Ważne jest jaką jednostką dysponujemy. Całą bazę możemy rozpatrywać jako hierarchię drzewiastą, ko-rzeń to baza danych, a kolejne wierzchołki to relacje. Dla relacji można wyznaczać kolejne jednostki, które możemy blokować.
Metodę hierarchiczną opracował Grey. Oparta jest ona na większej ilości blokad:
1) współdzielna i wyłączna (S i X),
2) intencjonalna blokada współdzielna (IS),
3) intencjonalna blokada wyłączna (IX),
4) blokada mieszana (SIX), która jest połączeniem S i IX.
10. Wymienić zasady optymalizacji czasowej zapytań do bazy danych.
Zasady optymalizacji zapytań:
• selekcję wykonuje się tak szybko jak to możliwe - selekcja wpływa znacznie na czas wykonywania zapytań rzędy wielkości, gdyż ma tendencję do zawężania pośrednich wyników obliczeń wielokrokowych
• niektóre selekcje można łączyć z poprzedzającym je iloczynem kartezjańskim w celu utworzenia złączeń - złączenie lub równozłączenie jest efektywniejsze od iloczynu kartezjańskiego
• można łączyć ciągi operacji jednoargumentowych, jak selekcje lub rzuty, w jedną operację wieloargumentową
• wyszukiwanie wspólnych podwyrażeń - jeżeli wynik wspólnego podwyrażenia (pojawiającego się więcej niż jeden raz) nie jest dużą relacją i można go odczytać z pamięci pomocniczej szybciej niż ponownie obliczyć, to korzystnie jest wcześniej go wyliczyć.
• wstępne operacje na plikach - sortowanie i tworzenie plików indeksowych ułatwia efektywne kojarzenie wartości z różnych plików. Stałe utrzymywanie indeksów i plików posortowanych może nie być ekonomiczne, ale celowe może być chwilowe tworzenie indeksu lub sortowanie w celu zrealizowania zapytania
Większość tych reguł opiera się na przekształceniach wyrażeń algebraicznych
10. Scharakteryzować rozproszone bazy danych z replikacją danych.
w tym systemie postrzegalne tabele znajduja się w wersji orginalu i kopii .wystepuje tam n węzłów i każdy z nich może zawierac m kopii dowolnej tabeli bazy danych .W n węzłach znajduja się po 1 orginale każdej tabeli .przy aktualizacji musimy zapewnic żeby kopie były identyczne oryginałami.musimy zablokowac jednostki bazy danych do wykonania operacji.czesto mamy do czynienia z sytuacja ze gdy modyfikujemy bazy danych to oprocz blokowania bazy blokujemy również kopie .
10. Na czym polega optymalizacja kosztowa w bazie danych z replikacją danych.
Podstawowym kryterium jest koszt, przy czym są dwie metody optymalizacji:
- przechodzi się do II punktu optymalizacji czasowej (ale koszt na I miejscu)
- ilość komunikatów ma być minimalna
Exampla:
RACHUNKI (O, R, S) O - oddział K - id klienta
KREDYTY (O, P., W) R - id. Rachunku A - adres
WŁAŚCICIELE (R, K) S - saldo rachunku
DŁUŻNICY (P., K) P.- nr kredytu
KLIENCI (K, A) W - wartość kredytu
KLIECI - tabela wielokrotnego użytku (jest w n kopiach)
Baza ta może być fragmentowana (2 rodzaje fragmentacji)
I) Fragmentacja pozioma.
Każdy węzeł bazy danych obejmuje tabele z podziałem na oddziały (u nas są 3 oddziały). Warunek kojarzony z poziomą fragmentacją bazy - dozór
σg ( R ) - selekcja R ze względu na dozór g
Istnienie dozorów w optymalizacji zapytań w rozproszonej bazie danych sprowadza się do optymalizacji tak jak w scentralizowanej bazie.
R=ORSK, relacja R składa się z tych kolumn oraz
R =R1R2R3
R1 = σO=1 ( R ), R2 = σO=2 ( R ), R3 = σO=3 ( R ), gdzie O=1 oznacza oddział pierwszy
A1 = σO=1 ( Rachunki )
A2 = σO=2 ( Rachunki )
A3 = σO=3 ( Rachunki )
σO=1 (R) = σO=1 (A1 |x| H1) H - zbiór właścicieli związanych z danym
σO=2 (R) = σO=2 (A2 |x| H2) oddziałem.
σO=3 (R) = σO=3 (A3 |x| H3)
Ta relacja R może być przedstawiona za pomocą sumy relacji . Dla klientów oddziału 1 wprowadzono dodatkowy warunek by każdy klient miał rachunek >1000
Zapytanie o R ={O,R,S,K) możemy przekształcić w relacje związaną z rozpisanymi wartościami:
10. Wymienić metody rozproszenia bazy danych.
10. Scharakteryzować zastosowania obiektowych baz danych.
Obiektowe bazy danych są wykorzystywane przede wszystkim w systemach z dużą liczbą użytkowników oraz olbrzymią pojemnością danych. Niektóre aplikacje zawierają do 1 TB danych. Główne branże, w których zastosowanie mają obiektowe bazy danych to:
• Transport / Komunikacja - 19.6 %
• Produkcja - 16.1 %
• Rozwój oprogramowania - 14.3 %
• Finanse i bankowość - 14.3 %
• Consulting - 10.6 %
Inne dziedziny to: badania naukowe, wydawnictwo, lotnictwo, zdrowie i medycyna.
Przykłady projektów wykorzystujących obiektowe bazy danych:
• System łączności bezprzewodowej
• System rezerwacji lotniczej
• Komputerowy system symulacji chorób PhysioLabs/ENTELOS
• DLR, komputerowy system analizy danych klimatycznych
• System łączności telefonii komórkowej IRRIDIUM/Motorola
• Rozproszony system obsługo klientów
• GIS ( systemy informacji przestrzennej
10. Scharakteryzować zastosowania dedukcyjnych baz danych
Wszedzie tam gdzie konieczne staje się przewidywanie automatyczne, czyli systemy sztucznej inteligencji itp.
10. Scharakteryzować zastosowania temporalnych baz danych.
Zagadnienie czasu, wykorzystują uwarunkowania czasowe. Występuje problem kwantu czasu. SQL nie ma mechanizmów czasowych, trzeba rozbudować język o te mechanizmy „TSQL”. Klauzula where zmodyfikowana o zależności dotyczące czasu (atrybut czasowy w określonym przedziale) Można np. zapytać o wartość czasu pomiędzy dwoma miesiącami. Klauzule first, second, third - można określić kto był pierwszym odbiorcą towaru. Klauzula moving window, która pozwala przeglądać BD w określonym przedziale czasowym. Są odpowiedzią na wyzwanie, że statyczne dla potrzeb podejmowania decyzji powinny określać zmieniającą się rzeczywistość.
11. Podaj które zdania z podanego wykazu są prawdziwe:
Ochrona baz danych obejmuje nie tylko ochronę dostępu i ochronę spójności bazy danych. - PRAWDA
Ochrona spójności baz danych obejmuje zachowanie jednoznaczności danych oraz zachowanie więzów
Zachowanie więzów integralności obejmuje tzw. więzy referencyjne, domenowe i globalne.
Więzy globalne nie są krotkowymi więzami CHECK i asercjami.
11. Podaj które zdania z podanego wykazu są prawdziwe:
Więzy krotkowe CHECK nie są widoczne z poziomu innych relacji. - PRAWDA
Asercje stanowią niezależne elementy schematu relacji - PRAWDA
Słowo kluczowe CHECK może wystąpić w definicji asercji. - PRAWDA
Każdy atrybut, który występuje w asercji musi w niej być zdefiniowany np.: z użyciem „select-from-where” - PRAWDA
11. Podaj które zdania z podanego wykazu są prawdziwe:
Ochrona spójności baz danych obejmuje zachowanie jednoznaczności danych oraz zachowanie więzów - PRAWDA
Więzy globalne to nie obejmują więzów krotkowych CHECK a obejmują jedynie asercje.
Zachowanie więzów integralności obejmuje tzw. więzy referencyjne, domenowe i globalne.
Ochrona baz danych obejmuje ochronę dostępu i ochronę spójności bazy danych. - PRAWDA
11. Podaj które zdania z podanego wykazu są prawdziwe:
Więzy krotkowe CHECK są zawsze widoczne z poziomu tylko jednej relacji. - PRAWDA
Asercje stanowią niezależne elementy schematu relacji - PRAWDA
Każdy atrybut, który występuje w asercji musi w niej być zdefiniowany np.: z użyciem „select-from-where”
Słowo kluczowe CHECK nie może wystąpić w definicji asercji.
11. Podaj które zdania z podanego wykazu są prawdziwe:
Ochrona baz danych obejmuje tylko ochronę dostępu ochronę spójności bazy danych.
Ochrona spójności baz danych obejmuje zachowanie jednoznaczności danych oraz zachowanie więzów
Więzy globalne to krotkowe więzy CHECK i asercje. - PRAWDA
Zachowanie więzów integralności obejmuje tzw. więzy referencyjne, domenowe i globalne.
11. Podaj które zdania z podanego wykazu są prawdziwe:
Więzy krotkowe CHECK nie są widoczne z poziomu innych relacji.
Asercje stanowią niezależne elementy schematu relacji
Słowo kluczowe CHECK może wystąpić w definicji asercji.
Atrybut, który występuje w asercji nie musi w niej być zdefiniowany.
11. Podaj które zdania z podanego wykazu są prawdziwe:
Ochrona baz danych obejmuje ochronę dostępu i ochronę spójności bazy danych.
Ochrona spójności baz danych obejmuje zachowanie jednoznaczności danych oraz zachowanie więzów
Zachowanie więzów integralności obejmuje tzw. więzy referencyjne, domenowe i globalne.
Więzy globalne to krotkowe więzy CHECK i asercje.
11. Podaj które zdania z podanego wykazu nie są prawdziwe:
a) Więzy krotkowe CHECK nie są widoczne z poziomu innych relacji.
Asercje stanowią zależne elementy schematu relacji
Słowo kluczowe CHECK nie może wystąpić w definicji asercji.
Każdy atrybut, który występuje w asercji musi w niej być zdefiniowany np.: z użyciem „select-from-where”
12. Czy prawdziwe jest zdanie: SQLSTATE jest specjalną zmienną w SQL2?
Tak; jest to string, który zawiera informacje odnośnie tego czy i jakie problemy wystąpiły w związku z właśnie wykonaną instrukcją SQLa
12. Czy prawdziwe jest zdanie: Kursor pobiera wartości z kolejnych krotek relacji (tabeli) lub wyników zapytania.
TAK
12. Czy prawdziwe jest zdanie: Instrukcja EXEC SQL FETCH przesuwa kursor do kolejnej krotki zakresu kursora.
TAK, jak kursor dojdzie do końca to odpowiedni kod błędu jest ustawiany w SQLSTATE
12. Czy prawdziwe jest zdanie: EXEC CLOSE SQL <nazwa_kursora> zamyka kursor zdefiniowany na bazie danych.
Nie, do zamknięcia służy polecenie EXEC SQL CLOSE
12. Czy prawdziwe jest zdanie: Do nadawania uprawnień użytkownikowi używa się m.in. instrukcji grant. tak
12. Czy prawdziwe jest zdanie: Do odebrania uprawnień użytkownikowi używa się w SQL operacji recove z opcją cascade. Nie,do odbierania służy REVOKE
12 Czy prawdziwe jest zdanie: : Do odebrania uprawnień użytkownikowi używa się w SQL operacji recove z opcją restrict. NIE
12. Czy prawdziwe jest zdanie: Do odebrania uprawnień użytkownikowi używa się w SQL operacji grant. Nie; uprawnienia
13.Podaj przykład demaskacji danych w statystycznej bazie danych.
13. Wymień metody ochrony statystycznych baz danych
13. Scharakteryzuj krótko metody zakłócania danych w statystycznych bazach danych?
13. Scharakteryzuj krótko metody ograniczania rozmiaru zbioru zapytań w dostępie do statystycznych baz danych?
13. Scharakteryzuj krótko metody ograniczania pokrycia zbiorów danych w dostępie do statystycznych baz danych?
13. Scharakteryzuj krótko metody ograniczania rozmiaru zbioru zapytań w dostępie do statystycznych baz danych?
13. Scharakteryzuj krótko metody ochrony statystycznych baz danych oparte na partycjowaniu?
13. Scharakteryzuj krótko metody ochrony statystycznych baz danych oparte na księgowaniu zapytań.?
14. Na czym polega nieadekwatność statyczna relacyjnych baz danych.
Nie istnieje odwzorowanie zgodne z rzeczywistym światem. Posługując się rzeczywistością tworzymy nierzeczywiste bazy danych
14. Na czym polega nieadekwatność dynamiczna relacyjnych baz danych.
polega na tym ze baza danych opisuje tylko strukturę danych bez możliwości dołączenia do tych struktur operacji, metod przetwarzania i obróbki tych danych. W związku z tym metody muszą być wpisane w aplikację która się do tych struktur odnosi.
14. Scharakteryzować krótko bazy danych z wersjami obiektów.
14. Scharakteryzować krótko bazy danych z wersjami baz danych.
14. Wymienić metody zarządzania współbieżnością w obiektowych bazach danych?
14. Na czym polega nieadekwatność dynamiczna relacyjnych baz danych.
14. Co to jest obiekt generyczny w obiektowych bazach danych.
14. Na czym polega wersjowanie w obiektowych bazach danych.
15. Podać (cztery) przykładowe systemów zarządzania relacyjnymi bazami danych.
Access i FoxPro firmy Microsoft, Paradox firmy Corel, InterBase, BDE firmy Borland. Do dużych przeznaczonych dla komputerów klasy mainframe, przykładowo: Oracle, DB2, Informix, Sybase, Microsoft SQL Server
15. Wymień funkcje agregujace stosowane w SQL.
Min(), max(), sum(), avg(), count()
15. Podać (chociaż trzy) przykładowe nazwy systemów obiektowych baz danych.
ODB2 (Jasmine) ,GemStone ,MATISSE, OSMOS,POET, VERSANT,ODBMS,O2.
15. Co to są niejednorodne systemy baz danych?
15. Na czym polega dwufazowe wypełnianie transakcji.
15. Do czego służą dzienniki baz danych?
15. Czy można stosować reguły przemienności projekcji z selekcją i dlaczego?
15. Czy można stosować reguły przemienności iloczynu kartezjańskiego z selekcją i dlaczego?
16. (obiektowe mapowanie)
18. Przypuśćmy, że mamy bazę danych przedsiębiorstwa inwestycyjnego składającą się z następujących artybutów: M(makler), B(biuro maklera), A(akcjonariusz), K(kapitał), I(ilość akcji posiadanych przez akcjonariusza) i D(dywidendy płatne z kapitału). Znaleźć klucz do relacji R=MBKIAD. Uzasadnić odpowiedź.
18. Przypuśćmy, że mamy bazę danych przedsiębiorstwa inwestycyjnego składającą się z następujących artybutów: M(makler), B(biuro maklera), A(akcjonariusz), K(kapitał), I(ilość akcji posiadanych przez akcjonariusza) i D(dywidendy płatne z kapitału). Ile kluczy ma schemat relacji R=MBKIAD. Uzasadnić odpowiedź.
18. Przypuśćmy, że mamy bazę danych przedsiębiorstwa inwestycyjnego składającą się z następujących artybutów: M(makler), B(biuro maklera), A(akcjonariusz), K(kapitał), I(ilość akcji posiadanych przez akcjonariusza) i D(dywidendy płatne z kapitału). Baza danych jest reprezentowana przez tabele AKI, KD, AM oraz MB. Czy taka reprezentacja jest zgodna z zasadami projektowania bazy danych. Uzasadnić odpowiedź.
18. Przypuśćmy, że mamy bazę danych przedsiębiorstwa inwestycyjnego składającą się z następujących artybutów: M(makler), B(biuro maklera), A(akcjonariusz), K(kapitał), I(ilość akcji posiadanych przez akcjonariusza) i D(dywidendy płatne z kapitału). Baza danych jest reprezentowana przez tabele AKI, AM, KD oraz AKB. Czy taka reprezentacja jest zgodna z zasadami projektowania bazy danych. Uzasadnić odpowiedź
18. Przypuśćmy, że mamy bazę danych przedsiębiorstwa inwestycyjnego składającą się z następujących artybutów: M(makler), B(biuro maklera), A(akcjonariusz), K(kapitał), I(ilość akcji posiadanych przez akcjonariusza) i D(dywidendy płatne z kapitału). Baza danych jest reprezentowana przez tabele AKI, AM, KD oraz AKB. Czy taka reprezentacja jest zgodna z zasadami projektowania bazy danych. Uzasadnić odpowiedź
18. Przypuśćmy, że mamy bazę danych przedsiębiorstwa inwestycyjnego składającą się z następujących artybutów: M(makler), B(biuro maklera), A(akcjonariusz), K(kapitał), I(ilość akcji posiadanych przez akcjonariusza) i D(dywidendy płatne z kapitału). Baza danych jest reprezentowana przez tabele AKI, KD, AM oraz MB. Czy taka reprezentacja jest zgodna z zasadami projektowania bazy danych. Uzasadnić odpowiedź.
18. Przypuśćmy, że mamy bazę danych przedsiębiorstwa inwestycyjnego składającą się z następujących artybutów: M(makler), B(biuro maklera), A(akcjonariusz), K(kapitał), I(ilość akcji posiadanych przez akcjonariusza) i D(dywidendy płatne z kapitału). Znaleźć klucz do relacji R=MBKIAD. Uzasadnić odpowiedź.
18. Przypuśćmy, że mamy bazę danych przedsiębiorstwa inwestycyjnego składającą się z następujących artybutów: M(makler), B(biuro maklera), A(akcjonariusz), K(kapitał), I(ilość akcji posiadanych przez akcjonariusza) i D(dywidendy płatne z kapitału). Ile kluczy ma schemat relacji R=MBKIAD. Uzasadnić odpowiedź.
19. Niech R i S będą relacjami przedstawionymi poniżej
Relacja R |
|
Relacja S |
||
|
|
|
||
Pole1 |
Pole2 |
|
Pole2 |
Pole3 |
A |
B |
|
B |
C |
C |
B |
|
E |
A |
D |
E |
|
B |
D |
Oblicz R∪S. W wyniku sumy pominąć nazwy atrybutów.
19. Niech R i S będą relacjami przedstawionymi poniżej
Relacja R |
|
Relacja S |
||
|
|
|
||
Pole1 |
Pole2 |
|
Pole2 |
Pole3 |
A |
B |
|
B |
C |
C |
B |
|
E |
A |
D |
E |
|
B |
D |
Oblicz R-S. W wyniku różnicy pominąć nazwy atrybutów.
19. Niech R i S będą relacjami przedstawionymi poniżej
Relacja R |
|
Relacja S |
||
|
|
|
||
Pole1 |
Pole2 |
|
Pole2 |
Pole3 |
A |
B |
|
B |
C |
C |
B |
|
E |
A |
D |
E |
|
B |
D |
Oblicz R×S (złączenie naturalne).
19. Niech R i S będą relacjami przedstawionymi poniżej
Relacja R |
|
Relacja S |
||
|
|
|
||
Pole1 |
Pole2 |
|
Pole2 |
Pole3 |
A |
B |
|
B |
C |
C |
B |
|
E |
A |
D |
E |
|
B |
D |
Oblicz πPole1(R).
19. Niech R i S będą relacjami przedstawionymi poniżej
Relacja R |
|
Relacja S |
||
|
|
|
||
Pole1 |
Pole2 |
|
Pole2 |
Pole3 |
A |
B |
|
B |
C |
C |
B |
|
E |
A |
D |
E |
|
B |
D |
Oblicz σPole1=Pole3(R×S) .
19. Niech R i S będą relacjami przedstawionymi poniżej
Relacja R |
|
Relacja S |
||
|
|
|
||
Pole1 |
Pole2 |
|
Pole2 |
Pole3 |
A |
B |
|
B |
C |
C |
B |
|
E |
A |
D |
E |
|
B |
D |
Oblicz σPole1=”A”(R) × σPole2=”B”(S).
19. Niech R i S będą relacjami przedstawionymi poniżej
Relacja R |
|
Relacja S |
||
|
|
|
||
Pole1 |
Pole2 |
|
Pole2 |
Pole3 |
A |
B |
|
B |
C |
C |
B |
|
E |
A |
D |
E |
|
B |
D |
Oblicz πPole1(R) × πPole2(S).
19. Niech R i S będą relacjami przedstawionymi poniżej
Relacja R |
|
Relacja S |
||
|
|
|
||
Pole1 |
Pole2 |
|
Pole2 |
Pole3 |
A |
B |
|
B |
C |
C |
B |
|
E |
A |
D |
E |
|
B |
D |
Oblicz πPole1(R) ×πPole2(S) (gdzie × oznacza równozłączenie).
20. Niech baza danych zawiera trzy następujące tabele z atrybutami zawartymi w nawiasach okrągłych obok nazw tabel: BYWA (PIWOSZ, BAR), PODAJĄ(BAR, PIWO) oraz LUBI(PIWOSZ, PIWO). Podaj wyrażenie algebry relacji lub zapytanie w SQL by znaleźć piwoszy pijących w tym samym barze co piwosz lubiący piwo „LECH”.
SELECT piwosz FROM bywa, podaja, lubi WHERE bywa.piwosz= AND lubi.piwo=”LECH” GROUP BY
20. Niech baza danych zawiera trzy następujące tabele z atrybutami zawartymi w nawiasach okrągłych obok nazw tabel: BYWA (PIWOSZ, BAR), PODAJĄ(BAR, PIWO) oraz LUBI(PIWOSZ, PIWO). Podaj wyrażenie algebry relacji lub zapytanie w SQL by znaleźć piwoszy bywających w barze, w którym podają piwo, które lubią ci piwosze.
20. Niech baza danych zawiera trzy następujące tabele z atrybutami zawartymi w nawiasach okrągłych obok nazw tabel: BYWA (PIWOSZ, BAR), PODAJĄ(BAR, PIWO) oraz LUBI(PIWOSZ, PIWO). Podaj wyrażenie algebry relacji lub zapytanie w SQL by znaleźć piwoszy w tym samym barze co piwosz lubiący podawany w tym barze gatunek piwa, które lubi „KOWALSKI”
20. Niech baza danych zawiera trzy następujące tabele z atrybutami zawartymi w nawiasach okrągłych obok nazw tabel: BYWA (PIWOSZ, BAR), PODAJĄ(BAR, PIWO) oraz LUBI(PIWOSZ, PIWO). Podaj wyrażenie algebry relacji lub zapytanie w SQL by znaleźć piwoszy lubiących pić piwo podawane w barze „POD LIPĄ”.
20. Spółdzielnia „Szczęśliwa Dolina” utrzymuje bazę danych, w której przechowuje informacje o saldach swoich członków, ich zamówieniach, potencjalnych dostawcach i cenach dostawczych w następujących tabelach, w których atrybuty podano w nawiasach okrągłych:
CZŁONKOWIE(NAZWISKO, ADRES, SALDO)
ZAMÓWIENIA(NR_ZAMÓWIENIA, NAZWISKO, TOWAR, ILOŚĆ)
DOSTAWCY(NAZWA_DOSTAWCY, ADRES_DOSTAWCY, TOWAR, CENA).
Podaj wyrażenie algebry relacji lub zapytanie w SQL by znaleźć tych członków spółdzielni, którzy mają ujemne saldo i zamówili towar u dostawcy „FRICO”.
20. Spółdzielnia „Szczęśliwa Dolina” utrzymuje bazę danych, w której przechowuje informacje o saldach swoich członków, ich zamówieniach, potencjalnych dostawcach i cenach dostawczych w następujących tabelach, w których atrybuty podano w nawiasach okrągłych:
CZŁONKOWIE(NAZWISKO, ADRES, SALDO)
ZAMÓWIENIA(NR_ZAMÓWIENIA, NAZWISKO, TOWAR, ILOŚĆ)
DOSTAWCY(NAZWA_DOSTAWCY, ADRES_DOSTAWCY, TOWAR, CENA).
Podaj wyrażenie algebry relacji lub zapytanie w SQL by znaleźć tych dostawców, towary i ceny dla wszystkich dostawców dostarczających co najmniej jeden towar zamawiany przez „NOWAKA”
20. Spółdzielnia „Szczęśliwa Dolina” utrzymuje bazę danych, w której przechowuje informacje o saldach swoich członków, ich zamówieniach, potencjalnych dostawcach i cenach dostawczych w następujących tabelach, w których atrybuty podano w nawiasach okrągłych:
CZŁONKOWIE(NAZWISKO, ADRES, SALDO)
ZAMÓWIENIA(NR_ZAMÓWIENIA, NAZWISKO, TOWAR, ILOŚĆ)
DOSTAWCY(NAZWA_DOSTAWCY, ADRES_DOSTAWCY, TOWAR, CENA).
Podaj wyrażenie algebry relacji lub zapytanie w SQL by znaleźć tych dostawców, którzy dostarczają towar zamówiony przez „KOWALSKIEGO”
20. Spółdzielnia „Szczęśliwa Dolina” utrzymuje bazę danych, w której przechowuje informacje o saldach swoich członków, ich zamówieniach, potencjalnych dostawcach i cenach dostawczych w następujących tabelach, w których atrybuty podano w nawiasach okrągłych:
CZŁONKOWIE(NAZWISKO, ADRES, SALDO)
ZAMÓWIENIA(NR_ZAMÓWIENIA, NAZWISKO, TOWAR, ILOŚĆ)
DOSTAWCY(NAZWA_DOSTAWCY, ADRES_DOSTAWCY, TOWAR, CENA).
Podaj wyrażenie algebry relacji lub zapytanie w SQL by znaleźć tych dostawców, którzy dostarczają towar zamówiony przez członków spółdzielni, którzy mają ujemne salda.
Hurtownia danych (ang. data warehouse) rodzaj bazy danych, która jest zorganizowana i zoptymalizowana pod kątem pewnego wycinka rzeczywistości. Hurtownia danych jest wyższym szczeblem abstrakcji niż zwykła relacyjna baza danych (choć do jej tworzenia używane są także podobne technologie). W skład hurtowni wchodzą zbiory danych zorientowanych tematycznie (np. hurtownia danych klientów). Dane te często pochodzą z wielu źródeł, są one zintegrowane i przeznaczone wyłącznie do odczytu.
W praktyce hurtownie są bazami danych integrującymi wszystkie pozostałe systemy bazodanowe w firmie. Ta integracja polega na cyklicznym zasilaniu hurtowni danymi systemów produkcyjnych (może być tych baz lub systemów dużo i mogą być rozproszone).
Architektura bazy hurtowni jest zorientowana na optymalizację szybkości wyszukiwania i ich najefektywniejszą analizę zawartości. Stąd bywa, że hurtownie danych nie są realizowane za pomocą relacyjnych baz danych, gdyż takie bazy ustępują szybkością innym rozwiązaniom.
W zależności od rodzaju hurtowni dane w jej rekordach mogą być zagregowane lub zawierać nawet informacje szczątkowe. W praktyce oznacza to, że pewne dane w hurtowni nie są przechowywane w postaci rozdrobnionej a tylko jako ich suma.
Przykład: Tak stać się może, gdy mamy do czynienia z hurtownią danych sprzedaży, wtedy nie będą występowały w niej poszczególne pozycje na fakturach a jedynie kwoty faktur, gdyż to jest podstawą analizy. (Oczywiście to osoby korzystające z hurtowni określają, jakie dane są dla nich użyteczne).
Użytkownicy końcowi hurtowni, czyli najczęściej zarząd firmy, korzystają z danych hurtowni poprzez różne systemy wyszukiwania danych (np. OLAP).
T2
T1
T1 czeka na odblokowanie jednostki zablokowanej przez T2
T2
T1