Odpowiedzi Bazy Danych

background image

BAZY DANYCH

Opracowanie pytań teoretycznych do kolokwium.

1. Co to jest model danych? Wymień poznane modele danych. Scharakteryzuj jeden z nich.
Model danych jest to 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)

Poznane modele danych:

model płaski (prosty)

każdy rekord to zbiór wartości, stworzony zgodnie z definicją danych (strukturą DB)

żaden rekord nie jest powiązany z innym rekordem

model hierarchiczny (drzewiasty)

począwszy od korzenia drzewa, poprzez krawędzie - rozgałęzienia dochodzi się do ostatnich
zbiorów danych – liści

typowy przykład: system plików (korzeń: C:; rozgałęzienia: foldery; liście: pliki), XML

system często przedstawiany poprzez związek „rodzic-potomek”. Rodzic posiada pewną liczbę
potomków, potomkowie ci mogą mieć swoich potomków itd. itd.

zasady integralności takiego systemu:

każdy rekord (z wyjątkiem pierwszego rodzica - korzenia drzewa) musi posiadać własnego,
jednego rodzica (jeśli ma mieć dwóch, musi zostać skopiowany!)

usunięcie danego rekordu oznacza usunięcie wszystkich potomków

model sieciowy

możliwe jest powiązanie dowolnego rekordu z wieloma innymi i szerzej możliwe są związki wiele
do wielu

tworzona jest sieć powiązań i dlatego model nazywany jest modelem sieciowym

wada: duży rozmiar bazy powiązań przy dużej objętości danych, a więc słaba wydajność ich
przetwarzania

model relacyjny

relacja jest zbiorem krotek

relacja może być reprezentowana poprzez tabelę, każdy wiersz tabeli to zapis krotki

w tabeli każda dziedzina jest reprezentowana przez kolumnę (nazwa i typ)

wartości danej dziedziny muszą być niezłożone (atomowe), czyli nie mogą być krotkami

każda krotka (wiersz) musi być unikalna (jak to zapewnić?)

można utworzyć kilka relacji do reprezentowania rzeczywistości oraz powiązać krotki (wiersze)
poszczególnych relacji (tabel)

obiektowy model danych

obiektowo-relacyjny model danych

2. Wyjaśnij pojęcia: dane, struktury danych , model danych, krotka, encja, atrybut, typ danych
dane
– zapis (reprezentacja) faktów, bez kontekstu czy też znaczenia (np. czerwony, 40).
encja – pojedynczy byt posiadający atrybuty
krotka - reprezentuje uporządkowaną listę elementów, zapisywana z użyciem nawiasów oraz przecinkiem
jako znakiem rozdzielającym elementy, np. (1, 3, 5, 34).
atrybut – cecha (własność) encji (obiektu)
typ danych - forma reprezentacji danych w komputerze (varchar, int, float etc.)
struktura danych – opis typu przechowywanych danych i ich rzeczywistego znaczenia (deklaracja kolumn
w tabeli)
model danychpatrz pkt. 1

BAZY DANYCH

Opracowanie pytań teoretycznych do kolokwium.

1

background image

3. Co to jest normalizacja danych? Czemu ona służy.
Normalizacja danych to proces mający na celu minimalizację przechowywanych danych i eliminację
powtarzających się. Główna idea polega na jak najczęstszym linkowaniu do danych i unikaniu
niepotrzebnych duplikatów. Taki sposób projektowania bazy zwiększa bezpieczeństwo danych i zmniejsza
ryzyko powstania niespójności. Dokonuje się tego poprzez odpowiednie dostosowanie struktury danych do
danych w bazie przechowywanych.
Cele normalizacji:

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

4. Dokonaj podziału składni języka SQL. Scharakteryzuj wybraną grupę poleceń.
Data Definition Language (DDL)
- grupa składni języka SQL pozwalająca na definiowanie nowych struktur
danych (tabel, widoków, indeksów itp.) (polecenia: CREATE, ALTER, DROP)
Data Manipulation Language (DML) – polecenia odpowiadające za składowanie danych wewnątrz bazy
danych (głównie dostęp do danych wewnątrz tabel) (polecenia: INSERT, UPDATE, DELETE)
Data Query Language (DQL) - grupa złożona z jednej instrukcji SELECT, pozwalająca na uzyskanie dostępu
do danych i wywoływanie funkcji – dzięki którym uzyskuje się znacznie większe możliwości operowania na
danych
Data Control Language (DCL) – polecenia do zarządzania uprawnieniami wewnątrz bazy danych (patrz
pkt. 9
)

5. Co to są wyzwalacze? Jak tworzy się i korzysta z wyzwalaczy w relacyjnych bazach danych?
Trigger, po polsku nazywany procedurą wyzwalaną, jest funkcją zdefiniowaną przez użytkownika
wywoływaną, gdy pojawi się jakieś wydarzenie (event) w tabeli. W PostgreSQL można wywoływać
triggery przed/po wstawieniu, modyfikacji lub usunięciu rekordu. Triggery mogą być wykonywane
raz dla całej instrukcji (statement level) lub po kolei dla każdego modyfikowanego rekordu (row
level).

KOD [TWORZENIE TRIGGERA]:

CREATE TRIGGER nazwa BEFORE|AFTER
INSERT|UPDATE|DELETE

ON tabela
FOR EACH

ROW|STATEMENT
EXECUTE PROCEDURE procedura(parametry);

Funkcja procedura musi zwracać typ TRIGGER!.

KOD [USUWANIE TRIGGERA]:

DROP TRIGGER nazwa ON tabela;

6. XML a bazy danych. Rozwiń zagadnienie.
XML (ang. eXtensible Markup Language) - rozszerzalny język znaczników

znaczników – dokument budowany jest w oparciu o elementy identyfikowane przez znaczniki (tagi)

język – dokument budowany jest zgodnie z określonymi zasadami składni, oraz w oparciu o
zdefiniowany alfabet (czyli znaczniki)

rozszerzalny – wykorzystywane w dokumencie elementy języka (znaczniki) projektowane są przez
użytkownika (projektanta schematu dokumentu)

W języku baz danych możemy mówić o XML-u jako hierarchicznej bazie danych (tylko danych, bez żadnego
systemu zarządzania nimi).

BAZY DANYCH

Opracowanie pytań teoretycznych do kolokwium.

2

background image

KOD [PRZYKŁADOWY XML]:

<?xml version="1.0" encoding="UTF-8"
standalone="no"?>

<!DOCTYPE pracownicy SYSTEM "pracownicy.dtd">
<pracownicy>

<pracownik>
<daneOsobowe>

<imie>Izabela</imie>
<nazwisko>Nowakowska</nazwisko>

</daneOsobowe>
</pracownik>

<pracownik>
<daneOsobowe>

<imie>Zygfryd</imie>
<drugieImie>Zenobiusz</drugieImie>

<nazwisko>Wawrzyniak</nazwisko>
</daneOsobowe>

<dział>Public Relations</dział>
</pracownik>

</pracownicy>

Kontrola poprawności danych może być realizowana np. za pomocą DTD (ang. Document Type Definition)
(patrz 2 linijka w przykładowym kodzie XML).

KOD [DTD]:

<!ENTITY wlasciciel "Jacek W. Ruminski">

<!ENTITY kontakt "&wlasciciel;

jwr@eti.pg.gda.pl

">

<!ELEMENT pracownicy (pracownik+)>
<!ELEMENT pracownik (daneOsobowe, dział?)>


<!ELEMENT daneOsobowe (imie, drugieImie?,

nazwisko)>
<!ELEMENT imie (#PCDATA)>

<!ELEMENT drugieImie (#PCDATA)>
<!ELEMENT nazwisko (#PCDATA)>


<!ELEMENT dział (#PCDATA)>

<!ATTLIST element nazwa_atr typ_danych wymagania>

<!ATTLIST PROSTOKAT WYSOKOSC CDATA #REQUIRED>

SYMBOLE A LICZEBNOŚĆ ZBIORU:

bez symbolu Element lub zbiór elementów występują tylko jeden raz. Jest to sposób domyślny.
?

Element lub zbiór elementów występują co najwyżej raz.

+

Element lub zbiór elementów występują przynajmniej raz.

*

Element lub zbiór elementów występują dowolną ilość razy.

WYMAGANIA ATRYBUTÓW:

#REQUIED: wymagany bezwzględnie

#FIXED: ustalony na stałe

#IMPLIED: opcjonalny

TYPY DANYCH:

PCDATA: tekst parsowany

CDATA: tekst

NMTOKEN: słowo (ciąg znaków)

NMTOKENS: ciąg słów

inne

Alternatywą dla DTD jest też XML Schema (w odróżnieniu od DTD sam będący XML'em).

BAZY DANYCH

Opracowanie pytań teoretycznych do kolokwium.

3

background image

Podstawowe cele XML:

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

7. Co to są funkcje w bazach danych. Jak funkcje się tworzy i jak z nich korzysta.
Funkcje w bazie danych to podprogramy zdefiniowane albo przez twórców bazy danych (przykładowo dla
PostgreSQL-a sin(), pi() etc.) operujące najczęściej na atrybutach krotek.

KOD [DEKLARACJA FUNKCJI]:

CREATE FUNCTION pkola(float) RETURNS float
LANGUAGE 'plpgsql'

AS '
BEGIN

RETURN 3.1415*$1*$1;
END;

';

KOD [UŻYCIE ZADEKLAROWANEJ FUNKCJI]:

SELECT pkola(1);
SELECT promien, pkola(promien) AS pole

FROM okregi;

8. Co to są funkcje agregacji? Podaj przykłady.
Funkcje agregacji
dokonują analizy na grupie krotek. W odróżnieniu od zwykłych funkcji, operują na
grupach krotek, ale zwracają pojedynczy wynik. Np. gdy wykonamy funkcję sin(id_klienta) to zwróci ona tyle
wyników na ilu krotkach się ona wykonała, natomiast funkcje takie jak max(), min(), avg(), variance(),
stdev() czy count() zwrócą pojedynczy wynik.

KOD [PRZYKŁADY FUNKCJI AGREGACJI]:

SELECT count(*) FROM gatunek;

SELECT count(imie) FROM klient;
SELECT max(id_klienta) FROM klient;

SELECT min(id_klienta) FROM klient;
SELECT avg(id_klienta) FROM klient;

9. W jaki sposób przydziela się i odbiera uprawnienia w bazach danych?
Do przydzielania i odbierania przwilejów służą funkcje GRANT i REVOKE

KOD [UPRAWNIENIA]:

GRANT typ_operacji ON nazwa tabeli
TO username|groupname;

REVOKE typ_operacji ON nazwa_tabeli FROM user;

W zależności od poziomu uprawnień dla użytkownika, można nadać mu prawo tylko do odczytu (select),
tylko do umieszczania danych (insert), czy też wszystkich (all privileges) Do wygodnego zarządzania
uprawnieniami, zarówno dla indywidualnych użytkowników, jak i grup można użyć ról.

10. Co to są struktury danych?
Struktura danych to definicja uporządkowanego przechowywania danych na komputerze. W praktyce
sprowadza się do nazwania przechowywanych atrybutów i zdefiniowania typu dla każdego z nich (tablica
char'ów, float etc.)

BAZY DANYCH

Opracowanie pytań teoretycznych do kolokwium.

4

background image

11. Co to są związki w bazach danych. Opisz podstawowe rodzaje związków.
Związki w bazie danych to relacje pomiędzy poszczególnymi rekordami w bazie danych, modelujące
rzeczywiste relacje pomiędzy obiektami, których dane przechowywane są w bazie.
Podstawowe rodzaje związków:

związek jeden do jednego (dokładnie jedna encja jest w związku z dokładnie jedną, inną encją.

związek jeden do wielu / 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)

12. Co to jest normalizacja danych? Jakie są podstawowe cele normalizacji?
Patrz pkt. 3

13. Wymień operacje w algebrze relacyjnej. Krótko scharakteryzuj wybraną (zadana przez
prowadzącego)

wybór (z ang. select): działa na tabeli generując nową tabelę zawierającą te krotki tabeli oryginalnej,
które spełniają zadany warunek.

SELECT * FROM tabela WHERE warunek;

rzut (z ang. project): działa na pojedynczej tabeli generując nową tabelę zawierającą tylko wybrane
kolumny ze wszystkich zadeklarowanych w strukturze tabeli.

SELECT kolumna_1, kolumna_2 FROM tabela;

unia zwana również sumą (z ang. union): działa na kilku tabelach, zwracając w wyniku tabelę
zawierającą sumę krotek ze wszystkich tabel (UNION: bez duplikatów; UNION ALL: z duplikatami)

SELECT * FROM tabela_1;
UNION|UNION ALL

SELECT * FROM tabela 2;

przecięcie czyli część wspólna (z ang. intersection): działa na kilku tabelach, zwracając w wyniku
tabelę zawierającą krotki występujące we wszystkich z tych tabel.

SELECT * FROM tabela_1;

INTERSECT
SELECT * FROM tabela 2;

różnica (z ang. difference): działa na dwóch tabelach, zwracając w wyniku tabelę zawierającą krotki
występujące w tabeli_1, a nie występujące w tabeli_2.

SELECT * FROM tabela_1;
EXCEPT|MINUS

SELECT * FROM tabela 2;

iloczyn kartezjański (z ang. product): operator dwuargumentowy, generujący nową tabelę na
podstawie wszystkich możliwych kombinacji tabel Tabela_1 i Tabela_2.

SELECT * FROM tabela_1, tabela_2;

SELECT t1.cecha, t2.inna, t2.i_to FROM tabela_1 t1, tabela_2 t2;

iloraz (z ang. divide): odwrotność iloczynu; nie ma zdefiniowanego operatora.

połączenie zwane również złączeniem (z ang. join): operator generujący nową relację R3 na
podstawie dwóch relacji wejściowych R1 i R2. Jest to operacja iloczynu z zadanym warunkiem
wyboru.

SELECT * FROM tabela_1

INNER|OUTER|LEFT|RIGHT JOIN tabela_2
ON warunek;

14. W jaki sposób zapisuje się relacje wiele-do-wielu w relacyjnych bazach danych?
Zostaje utworzona dodatkowa tabela w bazie danych realizująca pojedyncze „posiadanie”, w której każda
encja przechowuje identyfikatory rekordów, które są ze sobą powiązane.

15. Co to są postacie normalne? Jakich zależności dotyczą?
Postacie normalne to powszechnie używane standardy postaci relacji w bazie danych. Bazę doprowadza się
do postaci normalnej celem uniknięcia nadmiarowości przechowywanych danych. Pierwsza postać
normalna, tj. atomowość każdego elementu krotki jest wymogiem każdego współczesnego systemu
bazodanowego.

BAZY DANYCH

Opracowanie pytań teoretycznych do kolokwium.

5

background image

16. Co to są widoki. Do czego służą?
Widok jest to inaczej definicja zapytania utrwalona w specjalnej tabeli w bazie danych. Każde odwołanie się
do widoku powoduje wykonanie zapisanego w nim zapytania na aktualnym obrazie (stanie) bazy danych.
Używane do często uruchamianych zapytań typu SELECT, pozwalają na przyspieszenie wykonania, a także
czytelność kodu aplikacji wykorzystującej DB i łatwość ew. modyfikacji i naprawy błędów.

KOD [DEFINICJA WIDOKU]:

CREATE VIEW nazwa_widoku
AS select_query;

KOD [UZYCIE WIDOKU]:

SELECT * FROM nazwa_widoku;

17. Co to są transakcje? Jakie reguły powinny być spełnione przy korzystaniu z transakcji?
Transakcja pozwala na zgrupowanie pewnego ciągu zdarzeń w bazie danych w jedną nierozerwalną całość.
Każda transakcja spełnia podstawowe reguły określane jako ACID (atomic, consistent, isolated, durable):
atomowość, spójność, izolacja, trwałość.
Atomowość - Każda transakcja musi zostać wykonana w całości, albo nie wykona się w ogóle
Spójność - system bazodanowy po wykonaniu transakcji będzie spójny (nie nastąpi złamanie zasad
integralności danych)
Izolacja – w zależności od poziomu izolacji transakcji (patrz pkt. 18) dwie równolegle przeprowadzane
transakcje nie spowodują niespójności danych
Trwałość – nawet w przypadku awarii systemu zarządzania bazą podczas trwania transakcji, system potrafi
uruchomić się i udostępnić spójne, nienaruszone dane

KOD [TRANSAKCJE]:

BEGIN|START

--KOD SQL
COMMIT|END|ROLLBACK

COMMIT (END) zatwierdza transakcję, ROLLBACK anuluje ją.

18. Co to jest poziom izolacji transakcji? Jakie znasz poziomy? Jakie poziomy zaimplementowano w
PostrgeSQL-u?

Poziom izolacji transakcji to stopień uniezależnienia transakcji od siebie nawzajem. Im wyższy poziom
izolacji tym większa pewność, że podczas wykonywania jednej transakcji zmiany dokonywane w tym samym
czasie przez inne transakcje nie wpłyną na nią.

1. read uncommitted (odczyt niezatwierdzony) – brak izolacji, jedna transakcja może odczytywać

wiersze, na których działają inne transakcje

2. read committed (odczyt zatwierdzony) - transakcja może odczytywać tylko wiersze już

zatwierdzone

3. repeatable read (odczyt powtarzalny) - transakcja widzi zmiany zatwierdzone już po jej

rozpoczęciu przez inne transakcje oraz ma zapewnioną powtarzalność odczytu, gwarantuje to te
same wyniki przy każdym czytaniu

4. serializable (szeregowalne) - pełna izolacja, transakcja przez cały czas jej trwania ma dostęp do

danych z momentu jej rozpoczęcia, nie widzi zmian przeprowadzonych przez inne transakcje

PostgreSQL, bedąc w zgodzie z normą przyjmie w zapytaniu wszystkie 4 poziomy izolacji, jednakowoż
read_uncommited i read commited są zaimplementowane jako read commited, a repeatable read i
serialize jako serialize.

19. Omówić wybrany poziom izolacji transakcji (odczyt zatw. / odczyt niezatw. / powtarzalny
odczyt/ szeregowalne)
Patrz pkt. 18.

BAZY DANYCH

Opracowanie pytań teoretycznych do kolokwium.

6

background image

20. W jaki sposób można dokonywać blokad w bazach danych i po co się stosuje blokady?

Blokowanie tabel ma na celu izolację i ochronę danych w przypadku jednoczesnego używania bazy przez
wielu użytkowników. Zabezpiecza ona dane przed możliwym wystąpieniem niespójności i niezgodności z
modelem danych. Jest podstawą działania transakcji (patrz pkt. 17).

KOD [BLOKOWANIE TABEL]:

LOCK TABLE films IN SHARE MODE | EXCLUSIVE MODE;

21. Zasady tworzenia interfejsu użytkownika w bazach danych.

Interfejs powinien być maksymalnie dostosowany do danych w nim przechowywanych, aby był jak
najwygodniejszy dla użytkownika końcowego

Powinien być szybki i wydajny

Zabezpieczony przed atakami typu SQL Injection itd.

Użytkownik od strony interfejsu powinien mieć przyznane najniższe możliwe uprawnienia (tylko te,
które są wymagane do pełnej funkcjonalności interfejsu)

22. Podstawowe metody dostępu do danych z poziomu aplikacji.
– ODP22

BAZY DANYCH

Opracowanie pytań teoretycznych do kolokwium.

7


Wyszukiwarka

Podobne podstrony:
bazy danych odpowiedzi
Odpowiedzi3, Politechnika Śląska MT MiBM, Semestr III, Bazy danych
odpowiedzi na bazy danych, informatyka
Odpowiedzi1, Politechnika Śląska MT MiBM, Semestr III, Bazy danych
Odpowiedzi5, Politechnika Śląska MT MiBM, Semestr III, Bazy danych
Odpowiedzi2, Politechnika Śląska MT MiBM, Semestr III, Bazy danych
Odpowiedzi4, Politechnika Śląska MT MiBM, Semestr III, Bazy danych
Bazy danych - egzamin bez odpowiedzi
bazy danych odpowiedzi
Odpowidzi na bazy danych Magda

więcej podobnych podstron