P y t a n i a i o d p o w i e d z i n a E g z a m i n – B a z y D a n y c h I b y W e e R ( m o d B o l e k )
Strona 1
Wykład 1 (4.10.2010)
1. Definicja BD, Dane, SBD, SZBD
Bazy danych – zbiór danych, których zadaniem jest reprezentowanie pewnego fragmentu
świata rzeczywistego; jest projektowana, tworzona i utrzymywana z punktu widzenia
przydatności dla określonych zastosowao
Dana – to symbol lub zbiór symboli reprezentujący jakiś fakt (zdarzenie lub pojęcie); dana
posiadająca znaczenie (semantykę) to informacja; dane w bazach danych mają strukturę
zgodną z regułami właściwymi dla przyjętego modelu danych
SBD – System baz danych
System zarządzania bazą danych – zbiór programów umożliwiających zarządzanie baz
danych:
definiowanie – określenie typów i struktur danych
konstruowanie – umieszczanie danych na nośniku i przechowywanie ich
manipulowanie – zapytania i aktualizacje
udostępnianie wielu użytkownikom i aplikacjom
2. Podaj własności danych w bazach danych
Trwałośd
o dowolnie długi czas przechowywania
o niezależnośd od działania aplikacji
o nie mogą byd utracone
Duży rozmiar wolumenu
o dane nie mieszczą się w pamięci operacyjnej (wymagana pamięd zewnętrzna)
o danych jest zbyt dużo dla ich liniowego przeglądania przez użytkowników
Złożonośd
o złożonośd strukturalna i złożonośd zależności pomiędzy danymi
o złożonośd semantyczna (znaczeniowa)
3. Wymagania stawiane systemom baz danych
Spójnośd baz danych
Efektywne przetwarzanie danych
Poprawne modelowanie świata rzeczywistego
Autoryzacja dostępu do danych
Współbieżnośd dostępu do danych
Metadane
4. Jakie możliwości powinien oferować system zarządzania bazą danych?
Powinien mied następujące funkcjonalności:
język bazy danych – tworzenie, definiowanie, wyszukiwanie, pielęgnacje
struktury danych – efektywne składowanie i przetwarzanie dużych wolumenów
danych
optymalizacja dostępu do danych
współbieżny dostęp do danych
P y t a n i a i o d p o w i e d z i n a E g z a m i n – B a z y D a n y c h I b y W e e R ( m o d B o l e k )
Strona 2
autoryzacja dostępu do danych
wielośd interfejsów dostępu do bazy danych
zapewnianie bezpieczeostwa danych zagrożonego awaryjnością środowiska
sprzętowo – programowego
5. Co oznacza spójność baz danych?
Jest to jedno z wymagao stawianych wobec systemu baz danych:
poprawnośd danych z punktu widzenia przyjętych kryteriów:
o wierne odzwierciedlenie
o spełnienie ograniczeo nałożonych użytkowników
odpornośd na anomalie będące wynikiem współbieżności dostępu do baz danych
odpornośd na błędy, awarie i inne anomalne sytuacje, wynikające z zawodności
środowiska sprzętowo – programowego
odpornośd na błędy użytkowników
6. Co to są metadane?
Jest to jedno z wymagao stawianych wobec systemu baz danych:
dane o danych, strukturach dostępu, użytkownikach i ich prawach
Wykład 2 (11. 10.2010)
1. Definicja modelu danych
Model danych – zbiór ogólnych zasad posługiwania się danymi dotyczący:
struktury danych
operacji na danych
ograniczeo integralności dla danych określający, które stany bazy danych są
poprawne
2. Cechy modelu relacyjnego
dane przedstawione w postaci dwuwymiarowych tabel (relacja)
każda relacja ma jednoznaczną nazwę
porządek kolumn nie jest istotny
porządek wierszy nie jest istotny
nie są dozwolone wiersze identyczne
wartości w kolumnach są atomowe
każda tabela zawiera zero lub więcej wierszy (krotka) i jedną lub więcej kolumn
(atrybut) określonego typu
można wprowadzad wartości unikalne, NULL, NOT NULL
zawiera kolumny z niepowtarzalnymi wartościami – określanymi jako kolumny-klucz
3. Operacja projekcji
przeznaczenie – wyodrębnienie wybranych atrybutów relacji
notacja:
π
atrybuty
(nazwa relacji)
- „atrybuty” jest podzbiorem atrybutów
P y t a n i a i o d p o w i e d z i n a E g z a m i n – B a z y D a n y c h I b y W e e R ( m o d B o l e k )
Strona 3
Własności – operacja projekcji nie jest przemienna
Składanie operacji projekcji jest możliwe jeżeli lista2 zawiera wszystkie atrybuty lista1
π
lista1
(π
lista2
(R)) = π
lista1
(R)
Przykłady:
o π
Nazwisko
(Pracownicy)
select Nazwisko from Pracownicy
o π
Nazwisko Etat Płaca
(Pracownicy)
select Nazwisko, Etat, Płaca from Pracownicy
4. Operacja sumowania relacji
wynikiem tej operacji, oznaczonej przez R ᴗ S, jest relacja zawierająca wszystkie
krotki, które występują w R i wszystkie krotki, które występują w S, z wyłączeniem
duplikatów krotek
operacja sumy jest operacją przemienną
R ᴗ S = S ᴗ R
5. Operacja selekcji
przeznaczenie – wyodrębnienie podzbioru krotek relacji, które spełniają warunek
selekcji
notacja σ
warunek
relacji (nazwa relacji)
o warunek selekcji jest zbiorem predykatów postaci
<atrybut><operator relacyjny><literał> lub
<atrybut><operator relacyjny><atrybut>
predykaty są łączone operatorami logicznymi AND lub OR
własności – operacja selekcji jest przemienna
σ
war1
(σ
war2
(R)) = σ
war2
(σ
war1
(R))
6. Kompatybilność relacji
Dwie relacje: R(A
1
, …, A
n
) i S(B
1
, …, B
n
) są kompatybilne, jeżeli mają ten sam stopieo i
jeżeli dom(A
1
) = dom(B
1
) dla 1 < i < n
Wykład 3 (18. 10. 2010)
1. Co oznaczają skróty DDL, DML, DCL ?
DDL (Data Definition Language) – język definiowania danych:
o stosowany do tworzenia i usuwania struktur danych oraz do modyfikowania
istniejących struktur
o aktualizuje metadane przechowywane w słowniku danych
o polecenia (CREATE, ALTER, DROP, TRUNCATE, COMMENT, RENAME)
DML (Data Manipulation Language) – język manipulowania danymi:
o stosowany przy określaniu transakcji wykonywanych na bazie danych
o używany do określania poleceo, które realizują działania wstawiania,
usuwania i zmian danych
o polecenia (SELECT, INSERT, DELETE, UPDATE)
P y t a n i a i o d p o w i e d z i n a E g z a m i n – B a z y D a n y c h I b y W e e R ( m o d B o l e k )
Strona 4
DCL (Data Control Language) – język kontroli danych:
o przeznaczony do wykorzystywania przez administratora bazy
o stosowany do definiowania użytkowników BD oraz przyznawania im
uprawnieo
o polecenia (GRANT, REVOKE)
2. Kiedy stosuje się aliasy?
Jeżeli tworzymy zapytanie z kilku tabel to istnieje możliwośd, że nazwy pól w tych tabelach
pokryją się. W celu rozróżnienia tych pól można umieścid zaraz za nazwą pola lokalny alias (AS
nowa_nazwa), który jest aktualny tylko w czasie wykonywania zapytania. Aliasy lokalne
stosowane są również w sytuacji, gdy potrzebne jest uproszczenie nazwy tabeli, bądź jej
skrócenie w celu zwiększenia czytelności.
3. Kiedy można zmienić typ danych w kolumnie tabeli?
Wtedy i tylko wtedy, gdy tabela jest pusta lub zawiera jedynie pola o wartościach NULL.
4. Wymienić wszystkie warunki integralności
każdy rekord powinien byd powiązany z rekordem nadrzędnym właściwego typu
zawartośd każdego pola rekordu musi odpowiadad typowi danych z definicji danego
typu rekordu
Więzy integralności:
NOT NULL – pseudo-wartośd NULL nie jest dozwolona w danej kolumnie (domyślnie NULL
jest dopuszczalna)
PRIMARY KEY – kolumna stanowi klucz główny
FOREIGN KEY – kolumna stanowi klucz obcy
UNIQUE – kolumna stanowi klucz jednoznaczny (wartości w kolumnie nie powtarzają się)
CHECK – warunek jaki ma byd spełniony dla wartości w wierszu
5. Kiedy stosuje się klauzulę CONSTRAINT i gdzie się ją umieszcza?
bezpośrednio po specyfikacji kolumny, której dotyczy warunek:
CREATE TABLE nazwa_tabeli (... nazwa_kolumny typ [(rozmiar)]
{CONSTRAINT nazwa_warunku typ_warunku [warunek]}, ...);
CREATE TABLE ZESP (... nazwa varchar2(20) constraint
nazwa_wielkimi_literami CHECK (nazwa=UPPER(nazwa), ...);
po zdefiniowaniu całej tabeli:
typ_warunku [warunek]}, ...);
CREATE TABLE Prac (... definicje wszystkich kolumn … CONSTRAINT
etat_i_dodatki CHECK (placa_dod IS NULL or etat = ‘pilot’)
...);
6. Co oznacza słowo kluczowe CHECK ?
Jest to warunek jaki ma byd spełniony dla wartości w wierszu
P y t a n i a i o d p o w i e d z i n a E g z a m i n – B a z y D a n y c h I b y W e e R ( m o d B o l e k )
Strona 5
7. Różnice między typami DATE i TIMESTAMP
TIMESTAMP – typ przeznaczony dla daty i czasu. Połączenie typów DATE i TIME. Jego
długośd wynosi z separatorami 19 pozycji (z opcją WITH TIME ZONE - 25) . Dodatkowo można
sprecyzowad ułamkowe części sekund. Zakres: 1970-01-01 00:00:00 do roku 2037.
DATE – typ używany do przechowywania daty. Składa się z 3 pól: YEAR (rok), MONTH
(miesiąc), DAY (dzieo). Razem z separatorami ilośd pozycji wynosi 10. Zakres: 1000-01-01 do
9999-12-31.
Wykład 4 (25. 10. 2010)
1.
Podaj przykład zastosowania funkcji konwertującej
select to_char('255','xxx') from dual
Konwersja liczby na string w formacie HEX. Pierwszym argumentem jest liczba, którą chcemy
przekonwertowad, natomiast drugim jest maska formatowania (liczba wynikowych znaków
jaką możemy wyświetlid).
2. Obliczyć ilość dni od początku roku do dnia dzisiejszego
SELECT ROUND(CURRENT_DATE - to_date('01-01-2010', 'DD-MM-
YYYY')) FROM dual
3. Jak zamienić w napisie wszystkie znaki $ na & ?
SELECT REPLACE('$$$ff$$', '$', '&') FROM dual
Pierwszy parametr to tekst, który ulegnie transformacji, drugi, to jaką wartośd zamienid, a
trzeci, to docelowa wartośd.
4. Kiedy stosuje się klauzulę GROUP BY ?
Kiedy trzeba dzielid wiersze tablicy na grupy, np. w celu zliczenia ilości różnych etatów
pracowników.
5. Różnice w interpretacji dwóch cyfr roku dla formatów YY i RR
Format DD-MM-YY zawsze określa dwie cyfry roku w bieżącym stuleciu, kiedy więc wpiszemy
28-05-08, rok zostanie przetłumaczony na 2008.
Format DD-MM-RR jest formatem domyślnym w BD Oracle. Ostatnie dwie cyfry roku będą
tłumaczone w następujący sposób:
Dwie ostatnie cyfry
bieżącego roku mieszczą się
w przedziale:
Podane dwie ostatnie cyfry roku mieszczą się w przedziale:
0-49
50-99
0-49
zwracana jest data w
bieżącym stuleciu
zwracana jest data w
poprzednim stuleniu
50-99
zwracana jest data w
następnym stuleciu
zwracana jest data w
bieżącym stuleciu
P y t a n i a i o d p o w i e d z i n a E g z a m i n – B a z y D a n y c h I b y W e e R ( m o d B o l e k )
Strona 6
6. Jak policzyć ilość wierszy zwracanych przez SELECT ?
Poprzez użycia słowa kluczowego COUNT(*), np.:
SELECT COUNT(*) as 'Liczba klientów' FROM customer;
Wykład 5 (8. 11. 2010)
1. Definicja złączenia naturalnego
Specjalny rodzaj połączenia równościowego. W wyniku złączenia naturalnego kolumna (albo
kolumny) złączeniowe występuje tylko raz.
Warunki równości dotyczą wszystkich par kolumn o takich samych nazwach:
- SELECT * FROM prac NATURAL JOIN zesp;
Warunki równości dotyczą jednej pary kolumn:
- SELECT * FROM prac JOIN zesp USING (id_zesp);
- SELECT nazwa, count(*) FROM prac p NATURAL JOIN zesp z GROUP
BY nazwa;
Tak więc złączeniem naturalnym relacji jest zbiór wszystkich możliwych połączeo krotek
relacji, przy których ich wspólne atrybuty mają takie same wartości.
2. Różnice między złączeniem wewnętrznym a zewnętrznym
Złączenie wewnętrzne kojarzy ze sobą rekordy występujące w dwóch lub więcej tabelach
i zwraca w wyniku tylko pasujące rekordy. W złączeniu wewnętrznym występuje słowo
kluczowe INNER JOIN - w tabeli, powstającej w wyniku złączenia, znajdują się jedynie wiersze,
które spełniają warunki złączenia.
Złączenie zewnętrzne rozszerza rezultat złączenia wewnętrznego o te wiersze jednej lub obu
tabel, dla których nie odnaleziono odpowiedników w drugiej tabeli. Wiersze stanowiące
rozszerzenie są wypełnione wartością NULL. W złączeniu zewnętrznym występuje słowo
kluczowe OUTER JOIN - w tabeli powstającej w wyniku złączenia, mogą znajdowad się
wszystkie wiersze z jednej lub wielu tabel nawet te, które nie spełniają warunku złączenia.
3. Do czego służy operator EXISTS ?
EXISTS jest używany w podzapytaniach. Za jego pomocą określa się czy podzapytanie zwróciło
jakiekolwiek rekordy (jeżeli szukane rekordy istnieją, to w przypadku polecenia SELECT są one
wyświetlane na ekranie). Operator EXISTS zwraca wartośd TRUE jeżeli podzapytanie zwraca
co najmniej jedną wartośd, w przeciwnym wypadku jest to wartośd FALSE.
4. Co to jest podzapytanie ?
Zapytanie wewnątrz innego zapytania (polecenie SELECT zagnieżdżone w innym
poleceniu SELECT)
Operatory: = ,<, >, <>, <= , >= , IN, ANY , ALL
Może wystąpid wszędzie tam, gdzie system spodziewa się zbioru wartości czyli
w klauzulach SELECT, HAVING, WHERE, FROM
SELECT kol_1, kol_2 FROM nazwa_tabeli WHERE kol_n operator
‘wartość’ AND kol_m operator_2 (SELECT kol_i FROM nazwa_tabeli
WHERE warunek) ORDER BY kol_j;
P y t a n i a i o d p o w i e d z i n a E g z a m i n – B a z y D a n y c h I b y W e e R ( m o d B o l e k )
Strona 7
5. W jakiej części polecenia SELECT może wystąpić podzapytanie?
Podzapytanie najczęściej umieszcza się w warunkach w klauzulach WHERE i HAVING
zapytania zewnętrznego, niektóre SZBD dopuszczają również stosowania podzapytao
w klauzulach SELECT i FROM.
6. Definicja podzapytania skorelowanego
jest wykonywane raz dla każdego wiersza przeglądanego przez zapytanie zewnętrzne
operuje na wartościach atrybutów przekazanych przez zapytanie zewnętrzne
zawsze posiada odwołanie do atrybutu zapytania zewnętrznego
może obsłużyd wartośd null
SELECT kol1, kol2, … FROM tabela WHERE koln >= (SELECT kolx
FROM tabela WHERE kolx = kol2);
Wykład 6 (15.11.2010)
1. Czym jest SQL*PLUS ?
SQL*Plus umożliwia:
wykonywanie
instrukcji
SQL
pobierających,
modyfikujących,
dodających
i usuwających dane z BD
formatowanie, zapamiętywanie, drukowanie w formie raportów i wykonywanie
obliczeo na wynikach zapytania
wykonywanie instrukcji SQL do tworzenia zmieniania i usuwania tabel BD
tworzenie bloków anonimowych, podprogramów i wyzwalaczy przy użyciu języka
PL/SQL
2. Zmienne tymczasowe
definiuje się wewnątrz instrukcji przez podanie nazwy poprzedzonej znakiem &
służy do interaktywnego podstawiania wartości oraz nazw tabel i kolumn
SELECT nazwisko FROM prac WHERE id_zesp=&numer_zespolu;
SELECT nazwisko, &n_kol FROM &n_tab WHERE &n_kol=&n_war;
można uniknąd powtarzania wpisywania wartości zmiennej stosując &&
SELECT nazwisko &&n_kol FROM &n_tab WHERE &&n_kol=&n_war;
3. Podać 3 sposoby tworzenia zmiennej zdefiniowanej
1. Sposób:
Definiowana poleceniem DEFINE do momentu jej usunięcia przez stwórcę lub
zakooczenia programu SQL*PLUS.
Tworzenie : DEFINE nr_zespolu = 20
Usunięcie: UNDEFINE nr_zespolu
Użycie: SELECT * FROM prac WHERE id_zesp = &nr_zespolu;
P y t a n i a i o d p o w i e d z i n a E g z a m i n – B a z y D a n y c h I b y W e e R ( m o d B o l e k )
Strona 8
2. Sposób:
VARIABLE zm NUMBER (lub CHAR lub VARCHAR) – deklaracja zmiennej zm
EXECUTE :zm := wyrażenie – ustawianie wartości dla zmiennej zm
PRINT zm – wypisanie wartości zmiennej zm
Po ustaleniu wartości dla zmiennej można jej używad w instrukcjach SQL i PL/SQL
poprzedzając nazwę dwukropkiem (w tym wypadku - :zm )
3. Sposób:
Deklaracja:
ACCEPT nazwa_zmennej[typ][FORMAT format][PROMPT tekst][HIDE]
Przykład deklaracji:
ACCEPT id_pracownika FORMAT 99 PROMPT ‘Podaj numer
pracownika’
Przykład użycia:
SELECT * FROM prac WHERE id_prac=&id_pracownika
4. Blok anonimowy
Fragment kodu, który nie jest zachowywany, ani nie ma nazwy (wykonywany tylko
w aktualnej sesji lub umieszczony w skrypcie). Budowa bloków:
DECLARE
deklaracje obiektów PL/SQL jak zmienne, stałe, wyjątki, procedury, funkcje
BEGIN
ciąg instrukcji do wykonania
EXCEPTION
obsługa wyjątków (błędów)
END;
5. Które instrukcje SQL można umieszczać w blokach PL/SQL ?
SELECT, INSERT, UPDATE, DELETE, COMMIT, ROLLBACK.
6. Jak wyświetlić wartość zmiennej w bloku PL/SQL ?
SET SERVEROUTPUT ON
DECLARE
zmienna NUMBER(9,2) := 23;
BEGIN
DBMS_OUTPUT.PUT_LINE (zmienna);
END;
7. Jak wyświetlić wartość zmiennej z bloku PL/SQL poza tym blokiem ?
VARIABLE zmienna NUMBER
BEGIN
:zmienna := 23;
END;
/
PRINT zmienna;
P y t a n i a i o d p o w i e d z i n a E g z a m i n – B a z y D a n y c h I b y W e e R ( m o d B o l e k )
Strona 9
Wykład 7 (22.11.2010)
1. Instrukcja SQL%ROWCOUNT
Instrukcja ta służy do pokazania, ile wierszy zwróciło dane (ostatnie) zapytanie.
2. Różnice między zmienną typu wierszowego a zmienną rekordową
Typy rekordowe mogą byd zagnieżdżone. Typ ten nie musi byd związany z istniejącą strukturą
jakiejkolwiek tabeli. Może mied dowolną ilośd pól – oszczędnośd pamięci (natomiast typ
wierszowy ma dokładnie tyle pól ile kolumn ma odpowiadająca tabela). Przy stosowaniu
typu rekordowego, jeśli zmienimy specyfikację kolumn w tabeli, nie ma potrzeby
aktualizowania kodu (w przypadku zmiennej wierszowej taka potrzeba jest).
3. Różnice między funkcją a procedurą
procedura wykonuje określone akcje bez zwracania konkretnej wartości, natomiast
funkcja wykonuje obliczenia i zwraca konkretną wartośd do środowiska, które ją
wywołało
funkcje można wywoływad bezpośrednio poprzez zapytanie SQL, natomiast
procedury nie
4. Procedura składowana
Procedura składowana to jeden z elementów implementacji bazy danych. Procedura jest
umiejscowiona bezpośrednio w systemie bazy danych, a nie po stronie klienta. Zwiększa to
szybkośd jej działania i upraszcza opracowanie oraz implementację systemu. Możliwe jest
zagnieżdżanie procedur - wywoływanie jednej procedury z kodu innej. Stosuje się je do
wykonywania powtarzających się, logicznie takich samych operacji na bazie danych, nie
wymagających ingerencji ze strony użytkownika.
tworzenie:
CREATE PROCEDURE nazwa_procedury (parametry) [tutaj instrukcje
do wykonania]
odwołanie się do niej:
CALL nazwa_procedury ('Argumrnt’);
usunięcie:
DROP PROCEDURE nazwa_procedury;
5. Typy parametrów w definicji podprogramu
parametr domyślny := lub DEFAULT
można określid tryb w jakim wartości są przekazywane do podprogramu:
o IN (domyślnie) - wewnątrz parametr zachowuje się jak stała, nie można zmienid
wartości
o OUT - wewnątrz parametr zachowuje się jak zmienna, która nie została zdefiniowana,
jej wartośd jest przekazywana do jednostki nadrzędnej
o IN OUT - możliwe przekazywanie wartości do podprogramu i na zewnątrz
dla trybu OUT i IN OUT można użyd NOCOPY - przesyłanie przez referencje a nie przez
wartośd