Filozofia jest sztuką życia. Cyceron

Odpowiedzi Bazy Danych

Odpowiedzi Bazy Danych, Bazy danych

[ Pobierz całość w formacie PDF ]
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 danych

patrz pkt. 1
BAZY DANYCH
Opracowanie pytań teoretycznych do kolokwium.
1
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
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
>
<!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
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
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
[ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • happyhour.opx.pl
  • Tematy

    Cytat


    Facil(e) omnes, cum valemus, recta consili(a) aegrotis damus - my wszyscy, kiedy jesteśmy zdrowi, łatwo dajemy dobre rady chorym.
    A miłość daje to czego nie daje więcej niż myślisz bo cała jest Stamtąd a śmierć to ciekawostka że trzeba iść dalej. Ks. Jan Twardowski
    Ad leones - lwom (na pożarcie). (na pożarcie). (na pożarcie)
    Egzorcyzmy pomagają tylko tym, którzy wierzą w złego ducha.
    Gdy tylko coś się nie udaje, to mówi się, że był to eksperyment. Robert Penn Warren