Generatory 3.0
SBD • Systemy Baz Danych (383 pytania)
Wygeneruj test
#
Instrukcja SELECT służy do:
sprowadzania rekordów z bazy danych
wstawiania rekordów do bazy danych
usuwania rekordów z bazy danych
aktualizacji rekordów w bazie danych
#
Instrukcja INSERT służy do:
sprowadzania rekordów z bazy danych
wstawiania rekordów do bazy danych
usuwania rekordów z bazy danych
aktualizacji rekordów w bazie danych
#
Instrukcja DELETE służy do:
sprowadzania rekordów z bazy danych
wstawiania rekordów do bazy danych
usuwania rekordów z bazy danych
aktualizacji rekordów w bazie danych
#
Instrukcja UPDATE służy do:
sprowadzania rekordów z bazy danych
wstawiania rekordów do bazy danych
usuwania rekordów z bazy danych
aktualizacji rekordów w bazie danych
#
INDEKS w bazie danych przyśpiesza:
wyszukiwania rekordów w bazie danych
wstawiania rekordów do bazy danych
usuwania rekordów z bazy danych
autoryzację użytkowników w bazie danych
#
Instrukcja COMMIT służy do:
wycofywania zmian w bazie danych
wstawiania rekordów do bazy danych
zatwierdzania zmian w bazie danych
aktualizacji rekordów w bazie danych
#
Instrukcja ROLLBACK służy do:
wycofywania zmian w bazie danych
zatwierdzania zmian w bazie danych
usuwania rekordów z bazy danych
aktualizacji rekordów w bazie danych
#
Instrukcja GRANT służy do:
przyznawania uprawnień w bazie danych
zatwierdzania zmian w bazie danych
odbierania uprawnień w bazie danych
aktualizacji rekordów w bazie danych
#
Instrukcja REVOKE służy do:
przyznawania uprawnień w bazie danych
zatwierdzania zmian w bazie danych
odbierania uprawnień w bazie danych
wycofywania zmian w bazie danych
#
Instrukcja ALTER TABLE służy do:
tworzenia tabeli
usuwania tabeli
zmiany schematu tabeli
aktualizacji indeksów założonych na tabeli
#
Jaka jest wartość wyrażenia Null=Null:
jest nieokreślone
True
False
Null
#
Jaka jest wartość wyrażenia True OR Null:
jest nieokreślone
True
False
Null
#
Jaka jest wartość wyrażenia False OR Null:
jest nieokreślone
True
False
Null
#
Jaka jest wartość wyrażenia False AND Null:
jest nieokreślone
True
False
Null
#
Jaka jest wartość wyrażenia True AND Null:
jest nieokreślone
True
False
Null
#
Jaka jest wartość wyrażenia NOT Null:
jest nieokreślone
True
False
Null
#
Co będzie wynikiem realizacji instrukcji SELECT * FROM Emp WHERE EmpNo=EmpNo OR
EmpNo=NULL
relacja Emp
relacja pusta
instrukcja jest niepoprawna
#
Co będzie wynikiem realizacji instrukcji SELECT * FROM Emp WHERE EmpNo=EmpNo AND
NULL=EmpNo
relacja Emp
relacja pusta
instrukcja jest niepoprawna
#
Relacja R ma atrybut a. Jaka liczba może być wynikiem wykonania instrukcji SELECT Count(*) FROM
R WHERE a=a
0
1
zawsze tyle jaka jest liczebność relacji R.
dowolna liczba całkowita
#
Relacja R ma atrybut a. Jaka liczba może być wynikiem wykonania instrukcji SELECT Count(*) FROM
R WHERE a<a
zawsze 0
1dowolna liczba całkowita
tyle jaka jest liczebność relacji R.
#
Encji odpowiada w relacyjnej bazie danych:
wiersz w tabeli
kolumna w tabeli
tabela
klucz obcy
#
Związkowi jednoznacznemu odpowiada w relacyjnej bazie danych:
kolumna w tabeli
klucz obcy
indeks w tabeli
wartość NULL
#
Związkowi wieloznacznemu odpowiada w relacyjnej bazie danych:
klucz obcy
tabela
kolumna w tabeli
wiersz w tabeli
#
Atrybutowi w relacyjnej bazie danych odpowiada:
kolumna w tabeli
wiersz w tabeli
tabela
indeks w tabeli
#
Jednoznacznemu identyfikatorowi odpowiada w relacyjnej bazie danych:
kolumna w tabeli
indeks w tabeli
klucz obcy
klucz główny
#
Spójność referencyjna dotyczy faktu:
wartością klucza obcego może być null lub wartość odpowiadającego mu klucza głównego
wartości w kolumnie nie powtarzają się
wartości w kolumnie nie mogą zależeć ani od części klucza ani nawet przechodnio od klucza
w każdej tabeli powinien istnieć dokładnie jeden klucz
#
III postać normalna dotyczy faktu:
wartością klucza obcego może być null lub wartość odpowiadającego mu klucza głównego
wartości w kolumnie nie powtarzają się
wartości w kolumnie niekluczowej nie mogą zależeć ani od części klucza ani nawet przechodnio od
klucza
w każdej tabeli powinien istnieć dokładnie jeden klucz
#
Które ze sformułowań są prawdziwe w modelu relacyjnym:
wartości w kolumnie są przechowywane w kolejności posortowanej
wiersze nie powtarzają się
kolejność kolumn jest nieistotna
wartości w kolumnie nie powtarzają się
#
Które ze sformułowań są prawdziwe w modelu relacyjnym:
wiersze nie mają tożsamości obiektowej
związek jednoznaczny reprezentuje się przy pomocy klucza obcego
związek wieloznaczny reprezentuje się przy pomocy klucza obcego
klucze obce muszą być typu całkowitego
#
Które ze sformułowań są prawdziwe w modelu relacyjnym:
tabela jest konkretną reprezentacją relacji
dla klucza jednoznacznego jest automatycznie zakładany indeks
dla klucza obcego jest automatycznie zakładany indeks
dla klucza głównego jest automatycznie zakładany indeks jednoznaczny
#
Które ze sformułowań są prawdziwe w modelu relacyjnym:
klucz obcy nie może być częścią klucza główego
klucz główny nie może być częścią klucza obcego
wartości klucza głównego nie mogą się powtarzać
wartości klucza obcego nie mogą się powtarzać
#
Zależność złączeniowa jest uogólnieniem zależności wielowartościowej w następującym sensie:
dotyczy rozbicia tabeli na dokładnie dwie tabele,
dotyczy rozbicia tabeli na dokładnie trzy tabele,
dotyczy rozbicia tabeli na więcej niż dwie tabele,
dotyczy rozbicia tabeli na co najmniej dwie tabele,
#
Postać normalna Boyce'a-Codda dotyczy faktu:
wartością klucza obcego może być null lub wartość odpowiadającego mu klucza głównego
każda nietrywialna zależność funkcyjna jest zależnością od nadklucza,
wartości w kolumnie niekluczowej nie mogą zależeć ani od części klucza ani nawet przechodnio od
klucza
w każdej tabeli powinien istnieć dokładnie jeden klucz
#
Które z poniższych stwierdzeń są prawdziwe:
jedyną poprawną, nietrywialną zależnością funkcyjną jest zależność do klucza,
należy starać się użyć najmniejszej możliwej liczby tabel,
w tabeli nie powinno być żadnych niekontrolowanych redundancji,
należy wszystkie związki jednoznaczne zastąpić związkami jednojednoznacznymi.
#
Które z poniższych stwierdzeń są prawdziwe:
każdy fakt przechowywany w bazie danych powinien być w niej wyrażany tylko na jeden sposób,
należy starać się użyć najmniejszej możliwej liczby tabel,
należy skonsultować z użytkownikiem poprawność skonstruowanego modelu danych,
należy spytać się użytkownika czy schemat tabel jest w III postaci normalnej.
#
Dany jest schemat relacyjny R={Miasto, Ulica, Kod}, F = {Miasto,Ulica->Kod; Kod->Miasto}. W której
postaci normalnej jest ten schemat:
I postać normalna;
II postać normalna,
III postać normalna,
postać normalna Boyce'a-Codda.
#
Studenci mają pomysły. Każdy pomysł dotyczy pewnej rzeczy. Każdy pomysł przychodzi do głowy
dokładnie jednemu studentowi. Student może się podzielić pomysłem z kolegami-studentami. Który
ze schematów jest najodpowiedniejszy z punktu widzenia zasad projektowania baz danych:
Studenci(id_studenta, imię, nazwisko, adres, id_pomysłu)
Pomysły(id_pomysłu, rzecz, opis)
Koledzy(id_kolegi, imię, nazwisko, id_studenta, id_pomysłu)
Studenci(id_studenta, imię, nazwisko, adres, id_kolegi)
Pomysły(id_pomysłu, rzecz, opis, id_studenta)
Koledzy(id_kolegi, imię, nazwisko, id_studenta, id_pomysłu)
Studenci(id_studenta, imię, nazwisko, adres)
Pomysły(id_pomysłu, rzecz, opis, id_studenta)
Koledzy(id_pomysłu, id_kolegi)
Studenci(id_studenta, imię, nazwisko, adres)
Pomysły(id_pomysłu, rzecz, opis, id_studenta, id_kolegi)
#
Studenci lubią się, są sobie obojętni lub nie znoszą się (nie ma innej możliwości). Który ze
schematów jest najodpowiedniejszy z punktu widzenia zasad projektowania baz danych :
Studenci(id_studenta, imię, nazwisko)
Koledzy(id_kolegi, imię, nazwisko, id_studenta, id_stosunku_do)
Stosunek(id_stosunku_do, stosunek_do)
Studenci(id_studenta, imię, nazwisko)
Koledzy(id_kolegi, imię, nazwisko, id_studenta, stosunek_do)
Studenci(id_studenta, imię, nazwisko)
Lubi(id_studenta, id_kolegi)
Nie_znosi(id_studenta, id_kolegi)
Obojętny(id_studenta, id_kolegi)
Studenci(id_studenta, imię, nazwisko)
Lubi(id_studenta, id_kolegi)
Nie_znosi(id_studenta, id_kolegi)
#
W domach mieszkają zwierzęta domowe. Niektóre zwierzęta zjadają się wzajemnie. Domy mogą być
położone obok siebie. Jaki schemat zgodny z zasadami projektowania schematów baz danych jest
najodpowiedniejszy dla organizacji zajmującej się ochroną zwierząt:
Domy(id_domu, adres, id_zwierzę)
Zwierzęta(id_zwierzę, rodzaj, id_zw_zjadane)
Domy(id_domu, adres)
Zwierzęta(id_zwierzę, id_rodzaju, id_domu)
Rodzaje(id_rodzaju, rodzaj)
Obok_siebie(id_domu1, id_domu2)
Zjada(id_rodz_je, id_rodz_zjadane)
Domy(id_domu, adres)
Zwierzęta(id_zwierzę, id_rodzaju, id_domu)
Rodzaje(id_rodzaju, rodzaj)
Sąsiedzi(id_zwierzę1, id_zwierzę2)
Zjada(id_rodz_je, id_rodz_zjadane)
Domy(id_domu, adres, id_zwierzę, rodzaj)
Obok_siebie(id_domu1, id_domu2)
Zjada(id_zw_je, id_zw_zjadane)
#
W filmach grają aktorzy. Każdy film ma dokładnie jednego reżysera i jednego lub więcej scenarzystę.
Który z poniższych schematów jest najodpowiedniejszy z punktu widzenia zasad projektowania baz
danych:
Filmy(id_filmu, tytuł, reżyser, gaża_reżysera)
Aktorzy(id_aktora, nazwisko,rola, id_filmu, gaża)
Scenarzyści(id_scenarzysty, nazwisko, id_filmu, gaża)
Filmy(id_filmu, tytuł, id_reżysera, gaża_reżysera)
Osoby(id_osoby, nazwisko)
Aktorzy(id_aktora, id_filmu, rola, gaża)
Scenarzyści(id_scenarzysty, id_filmu, gaża)
Filmy(id_filmu, tytuł, id_reżysera)
Osoby(id_osoby, nazwisko)
Zespół(id_osoby, id_filmu, rola, gaża)
Zespół(tytuł_filmu, nazwisko_osoby, rola, gaża)
#
Politycy należą do partii politycznych (czasami je zmieniają, czasami dokonują ich podziału). Partie
polityczne, przed wyborami, tworzą koalicje wyborcze. Który z poniższych schematów jest
najodpowiedniejszy z punktu widzenia zasad projektowania baz danych:
Politycy(id_polityka, imię, nazwisko)
Partie(id_partii, nazwa, od, do)
Koalicje(id_koalicji, data_wyborów)
Członkowie(id_partii, id_osoby, od, do)
W_koalicji(id_partii, id_koalicji, od, do)
Osoby(id_osoby, imię, nazwisko, id_partii)
Partie(id_partii, nazwa, id_koalicji)
Politycy(id_osoby, id_partii, od, do)
Koalicje(id_koalicji, data_wyborów)
Partie(id_partii, nazwa, koalicja, polityk, od, do)
Politycy(id_polityka, imię, nazwisko, id_partii, od, do)
Partie(id_partii, nazwa, od, do)
Koalicje(id_koalicji, data_wyborów)
W_koalicji(id_partii, id_koalicji, od, do)
#
Studenci planują, czym chcieliby się zajmować w swojej przyszłej pracy zawodowej i jakie
stanowiska chcieliby pełnić. Który z poniższych schematów jest najodpowiedniejszy z punktu
widzenia zasad projektowania baz danych:
Studenci(id_studenta, imię, nazwisko)
Zajęcia(id_zajęcia, nazwa)
Stanowiska(id_stanowiska, nazwa)
Kto_co(id_studenta, id_stanowiska, id_zajęcia)
Studenci(id_studenta, imię, nazwisko, rok)
Zajęcia(id_zajęcia, nazwa)
Stanowiska(id_stanowiska, nazwa)
Jakie_zajęcie(id_studenta, id_zajęcia)
Jakie_stanowisko(id_studenta, id_stanowiska)
Studenci(imię, nazwisko, rok, zajęcie, stanowisko)
Studenci(id_studenta, imię, nazwisko,rok)
Kto_co(id_studenta, stanowisko, zajęcie)
#
W PJWSTK ma powstać baza danych zbierająca informacje o umiejętnościach przydatnych w pracy
zawodowej, o przedmiotach, które uczą tych umiejętności oraz o książkach, w których umiejętności
są opisane. Który z poniższych schematów jest najodpowiedniejszy z punktu widzenia zasad
projektowania baz danych:
Umiejętności(umiejętność, przedmiot, książka)
Przedmioty(id_przedmiotu, nazwa, semestr)
Książki(ISBN, tytuł, autorzy)
Umiejętności(id_umiejętności, id_przedmiotu, nazwa, opis, ISBN, od_strony, do_strony)
Przedmioty(id_przedmiotu, nazwa, semestr)
Książki(ISBN, tytuł, sygnatura)
Umiejętności(id_umiejętności, nazwa, opis)
Gdzie(id_umiejętności, ISBN, od_strony, do_strony)
Na(id_umiejętności, id_przedmiotu)
Przedmioty(id_przedmiotu, nazwa, semestr)
Egzemplarze_książek(sygnatura, tytuł, autorzy, nr_półki)
Umiejętności(id_umiejętności, nazwa, opis)
Gdzie(id_umiejętności, sygnatura, od_strony, do_strony)
#
W PJWSTK powstaje baza danych z informacjami, jakie oprogramowanie jest zainstalowane w
poszczególnych salach - z myślą o prowadzeniu w nich ćwiczeń z odpowiednich przedmiotów. Który
z poniższych schematów jest najodpowiedniejszy z punktu widzenia zasad projektowania baz
danych:
Sale(numer_sali, nazwa_programu, wersja, ile_instalacji)
Programy(nazwa_programu, wersja, nazwa_przedmiotu)
Programy(id_programu, firma, nazwa, wersja)
Przedmioty(id_przedmiotu, nazwa)
Sale_programy(nr_sali, id_programu, ile_instalacji)
Przedmioty_programy(id_przedmiotu, id_programu)
Programy(id_programu, firma, nazwa, wersja, nazwa_przedmiotu)
Sale_programy(nr_sali, id_programu, wersja, ile_instalacji)
Sale(id_sali, numer, ile_komputerów)
Programy(id_programu, firma, nazwa, wersja)
Przedmioty(id_przedmiotu, nazwa)
Sale_programy(id_sali, id_programu, wersja, ile_instalacji)
Przedmioty_programy(id_przedmiotu, id_programu, wersja)
#
Który ze schematów bazy danych dla biblioteki jest najodpowiedniejszy z punktu widzenia zasad
projektowania baz danych. Baza powinna przechowywać informacje o klientach, książkach i
wypożyczeniach (wielkie litery oznaczają klucz główny):
Klient(ID_KLIENTA, imię, nazwisko, adres)
Książka(ID_KSIąŻKI, tytuł, autor)
Wypożyczenie(ID_KLIENTA, id_książki, data_wypożyczenia, data_zwrotu)
Klient(ID_KLIENTA, imię, nazwisko, adres)
Książka(ID_KSIąŻKI, tytuł, autor)
Wypożyczenie(ID_KLIENTA, ID_KSIąŻKI, data_wypożyczenia, data_zwrotu)
Klient(ID_KLIENTA, imię, nazwisko, adres)
Książka(ID_KSIąŻKI, tytuł, autor)
Wypożyczenie(ID_KLIENTA, ID_KSIąŻKI, DATA_WYPOŻYCZENIA, data_zwrotu)
Klient(ID_KLIENTA, imię, nazwisko, adres)
Książka(ID_KSIąŻKI, tytuł, autor)
Wypożyczenie(ID_KLIENTA, ID_KSIąŻKI, DATA_WYPOŻYCZENIA, DATA_ZWROTU)
#
Potrzebna jest baza danych do ewidencji studentów i ich ocen. Który ze schematów bazy danych
jest najodpowiedniejszy z punktu widzenia zasad projektowania baz danych:
Student(id_studenta, imię, nazwisko)
Ocena(id_oceny, ocena, data_wystawienia, nazwa_przedmiotu)
Student(id_studenta, imię, nazwisko)
Ocena(id_oceny, ocena, data_wystawienia, id_przedmiotu, id_studenta)
Przedmiot(id_przedmiotu, nazwa)
Student(id_studenta, imię, nazwisko, id_oceny)
Ocena(id_oceny, ocena, data_wystawienia, id_przedmiotu)
Przedmiot(id_przedmiotu, nazwa)
Student(id_studenta, imię, nazwisko, ocena)
Przedmiot(id_przedmiotu, nazwa, id_studenta)
#
Wiedząc, że tabela TEST ma następującą strukturę:
id
pole1
pole2
number(5)
varchar2(30)
varchar2(30)
Zaznacz, które z poniższych wyrażeń są poprawnymi składniowo instrukcjami języka SQL:
INSERT INTO TEST(ID,POLE1,POLE2) SELECT EMPNO,ENAME,JOB FROM EMP;
INSERT INTO TEST(ID,POLE1,POLE2) VALUES(SELECT EMPNO,ENAME,JOB FROM EMP);
INSERT INTO TEST VALUES(12345, 'KOWALSKI');
#
Chcesz usunąć z bazy wyzwalacz TRG_TEST. Które polecenie zastosujesz?
DELETE FROM USER_TRIGGERS WHERE TRIGGER_NAME = 'TRG_TEST';
DELETE TRIGGER TRG_TEST;
REMOVE TRIGGER TRG_TEST;
DROP TRIGGER TRG_TEST;
#
Dana jest tabela Osoby(Imie, Nazwisko, Zarobki). Które z następujących instrukcji są składniowo
poprawnymi instrukcjami SQL w Oracle:
UPDATE Osoby WHERE Nazwisko='KOWALSKI';
UPDATE Osoby SET Nazwisko=USER;
SELECT Osoby.Nazwisko, Osoby.Imie, Osoby.Zarobki WHERE Osoby.Zarobki >1000;
SELECT Osoby.Nazwisko, Osoby.Imie, Osoby.Zarobki ORDER BY Osoby.Zarobki;
SELECT Osoby.Nazwisko, Osoby.Imie, Osoby.Zarobki HAVING Osoby.Zarobki>1000;
SELECT Osoby.Nazwisko, Osoby.Imie, Osoby.Zarobki FROM Osoby HAVING Osoby.Zarobki>1000;
SELECT Osoby.Nazwisko, Osoby.Imie, Osoby.Zarobki FROM Osoby GROUP BY Osoby.Nazwisko;
INSERT INTO Osoby VALUES ('Jan', 'Kowalski', 2000) WHERE USER = 'KOWALSKI';
INSERT INTO Osoby SELECT * FROM Osoby WHERE USER = 'KOWALSKI';
INSERT INTO Osoby SELECT * FROM Osoby WHERE Nazwisko = 'KOWALSKI';
INSERT INTO Osoby SELECT Nazwisko, Imie FROM Osoby WHERE USER = 'KOWALSKI';
DELETE FROM Osoby WHERE USER='KOWALSKI';
DELETE FROM Osoby WHERE 'JANKOWSKI'='KOWALSKI';
DELETE FROM Osoby WHENEVER Osoby.Zarobki<1000;
SELECT Osoby.Nazwisko, Osoby.Imie, Osoby.Zarobki FROM Osoby WHERE Osoby.Zarobki >1000
#
Dane są dwie tabele Osoby(Imie, Nazwisko, Zarobki, Id_działu) oraz Działy(Id_działu, Nazwa). Które z
następujących instrukcji są poprawnymi instrukcjami SQL w Oracle:
SELECT Osoby.Nazwisko, Osoby.Imie, Osoby.Id_działu WHERE Działy.Nazwa='PRAWNY';
INSERT INTO Osoby(Imie, Nazwisko,Zarobki) VALUES ('Jan', 'Kowalski', 2000);
DELETE FROM Osoby WHERE Id_działu=(SELECT Id_działu FROM Działy WHERE Nazwa='BUFET');
UPDATE Osoby DELETE Nazwisko=USER;
#
Dane są dwie tabele Osoby(Imie, Nazwisko, Zarobki, Id_działu) oraz Działy(Id_działu, Nazwa). Które z
następujących instrukcji są poprawnymi instrukcjami SQL w Oracle:
SELECT Osoby.Nazwisko, Działy.Nazwa FROM Osoby, Działy WHERE Osoby.Id_działu=Działy.Id_działu
GROUP BY Osoby.Nazwisko;
INSERT INTO Osoby VALUES ('Jan', 'Kowalski', 2000) WHERE Osoby.Id_działu = 23;
DELETE FROM Osoby, Działy WHERE Osoby.Nazwisko='KOWALSKI' AND Działy.Nazwa='KASA';
UPDATE Osoby SET Id_działu=NULL;
#
Dane są dwie tabele Osoby(Imie, Nazwisko, Zarobki, Id_działu) oraz Działy(Id_działu, Nazwa). Które z
następujących instrukcji są poprawnymi instrukcjami SQL w Oracle:
SELECT Osoby.Nazwisko, COUNT(Działy.Nazwa) FROM Osoby, Działy WHERE
Osoby.Id_działu=Działy.Id_działu GROUP BY Osoby.Nazwisko;
INSERT INTO Osoby VALUES ('Jan', 'Kowalski', 2000) WHERE Osoby.Id_działu = 23;
DELETE FROM Osoby, Działy WHERE Osoby.Nazwisko='KOWALSKI' AND Działy.Nazwa='KASA' AND
Osoby.Id_działu=Działy.Id_działu;
UPDATE Osoby SET Id_działu=NULL WHERE COUNT(*)<5;
#
Dane są dwie tabele Osoby(Imie, Nazwisko, Zarobki, Id_działu) oraz Działy(Id_działu, Nazwa). Które z
następujących instrukcji są poprawnymi instrukcjami SQL w Oracle:
SELECT Osoby.Nazwisko, COUNT(Działy.Nazwa) FROM Osoby, Działy WHERE
Osoby.Id_działu=Działy.Id_działu GROUP BY Osoby.Nazwisko HAVING COUNT(Id_działu)<2;
INSERT INTO Osoby VALUES ('Jan', 'Kowalski', 2000) WHERE Osoby.Id_działu = 23;
DELETE FROM Osoby, Działy WHERE Osoby.Nazwisko='KOWALSKI' AND Działy.Nazwa='KASA' AND
Osoby.Id_działu=Działy.Id_działu;
UPDATE Osoby SET Id_działu=NULL WHERE 5>(SELECT COUNT(*) FROM Działy);
#
Dane są dwie tabele Osoby(Imie, Nazwisko, Zarobki, Id_działu) oraz Działy(Id_działu, Nazwa). Które z
następujących instrukcji są poprawnymi instrukcjami SQL w Oracle:
SELECT Osoby.Nazwisko, Działy.Nazwa FROM Osoby, Działy WHERE Osoby.Id_działu=Działy.Id_działu
GROUP BY Osoby.Nazwisko HAVING COUNT(Działy.Id_działu)<2;
INSERT INTO Osoby VALUES ('Jan', 'Kowalski', 2000);
DELETE FROM Osoby WHERE Osoby.Nazwisko='KOWALSKI' AND Działy.Id_działu=22;
UPDATE Osoby SET Id_działu=NULL WHERE 5>(SELECT COUNT(*) FROM Działy);
#
Dana jest tabela Osoby(imie, nazwisko, zarobki). Które z następujących instrukcji są poprawnymi
instrukcjami SQL w Oracle:
SELECT imie, nazwisko, zarobki FROM osoby UNION SELECT imie, nazwisko FROM osoby;
SELECT AVG(zarobki) FROM osoby;
SELECT imie, nazwisko FROM osoby WHERE zarobki = MAX(zarobki);
SELECT imie, nazwisko FROM osoby HAVING zarobki = MAX(zarobki);
#
Dana jest tabela Osoby(imie, nazwisko, zarobki, id_dzialu). Które z następujących instrukcji są
poprawnymi instrukcjami SQL w Oracle:
SELECT imie, nazwisko, AVG(zarobki) FROM Osoby GROUP BY id_dzialu;
SELECT id_dzialu, AVG(zarobki) FROM Osoby GROUP BY id_dzialu;
SELECT id_dzialu, AVG(zarobki) FROM Osoby GROUP BY id_dzialu WHERE AVG(zarobki) > 1000;
SELECT AVG(zarobki) from Osoby WHERE zarobki > 1000;
#
Dana jest tabela Osoby(imie, nazwisko, zarobki). Które z następujących instrukcji są poprawnymi
instrukcjami SQL w Oracle:
INSERT INTO Osoby (imie, nazwisko, zarobki) VALUES ('Jan', 'Kowalski', 1000);
INSERT INTO Osoby VALUES ('Jan', 'Kowalski');
DELETE FROM Osoby WHERE Nazwisko LIKE 'Kowalski';
UPDATE Osoby.Nazwisko = 'Kowalski';
#
Wskazać poprawne zapytanie SQL znajdujące pracowników zarabiających minimalną pensję na ich
stanowiskach pracy.
SELECT ename, job, sal FROM emp e WHERE sal = (SELECT MIN(sal)FROM emp WHERE job = e.job);
SELECT ename, job, sal FROM emp WHERE( sal,job) in (SELECT MIN(sal),job FROM emp GROUP BY job );
SELECT ename, job, sal FROM emp WHERE sal = (SELECT MIN(sal)FROM emp GROUP BY job );
SELECT ename, job, MIN(sal) FROM emp GROUP BY job;
#
Wskazać poprawne zapytanie SQL znajdujące dla każdego departamentu ostatnio zatrudnionych
pracowników.
SELECT deptno, ename, hiredate FROM emp WHERE (hiredate, deptno) IN (SELECT MAX(hiredate),
deptno FROM emp GROUP BY deptno);
SELECT deptno, ename, hiredate FROM emp e WHERE (hiredate,) = (SELECT MAX(hiredate) FROM emp
WHERE deptno=e.deptno GROUP BY deptno);
SELECT deptno, ename, hiredate FROM emp WHERE hiredate = (SELECT MAX(hiredate) FROM emp
GROUP BY deptno);
SELECT deptno, ename, MAX(hiredate) FROM emp GROUP BY deptno;
#
Wskazać poprawne zapytanie SQL znajdujące pracowników o najniższych zarobkach w ich działach.
SELECT ename, sal, deptno FROM emp WHERE (sal, deptno) IN (SELECT MIN(sal), deptno FROM
empGROUP BY deptno);
SELECT ename, deptno, sal FROM emp e WHERE sal = (SELECT MIN(sal)FROM emp WHERE deptno = e.
deptno);
SELECT ename, sal, deptno FROM emp WHERE sal IN (SELECT MIN(sal)FROM emp GROUP BY deptno)
SELECT ename MIN(sal), deptno FROM emp GROUP BY deptno)
#
Wskazać poprawne zapytanie SQL znajdujące pracowników, których zarobki są wyższe od pensji
każdego pracownika z departamentu 30.
SELECT ename, sal, job, deptno FROM emp WHERE sal> ALL (SELECT DISTINCT sal FROM emp WHERE
deptno = 30);
SELECT ename, sal, job, deptno FROM emp WHERE sal> (SELECT Max( sal) FROM emp WHERE deptno =
30);
SELECT ename, sal, job, deptno FROM emp WHERE sal> ANY (SELECT DISTINCT sal FROM emp WHERE
deptno = 30);
SELECT ename, sal, job, deptno FROM emp WHERE sal> (SELECT Min( sal) FROM emp WHERE deptno =
30);
#
Wskazać poprawne zapytanie SQL znajdujące stanowiska pracy występujące w działach 10 lub 20.
SELECT DISTINCT job FROM emp WHERE deptno = 10 OR deptno = 20
SELECT DISTINCT job FROM emp WHERE deptno = 10 UNION SELECT DISTINCT job FROM emp WHERE
deptno = 20
SELECT DISTINCT job FROM emp WHERE deptno = 10 AND deptno = 20
SELECT DISTINCT job FROM emp WHERE deptno = 10 INTERSECT SELECT DISTINCT job FROM emp
WHERE deptno = 20
#
Wskazać poprawne zapytanie SQL znajdujące stanowiska pracy występujące zarówno w dziale 10
jak i w dziale 20.
SELECT DISTINCT job FROM emp WHERE deptno = 10 INTERSECT SELECT DISTINCT job FROM emp
WHERE deptno = 20
SELECT DISTINCT job FROM emp WHERE deptno = 10 OR deptno = 20
SELECT DISTINCT job FROM emp WHERE deptno = 10 UNION SELECT DISTINCT job FROM emp WHERE
deptno = 20
SELECT DISTINCT job FROM emp WHERE deptno = 10 AND deptno = 20
#
Wskazać poprawne zapytanie SQL znajdujące pracowników, którzy zarabiają mniej od swoich
kierowników.
SELECT e.ename prac_name, e.sal prac_sal, m.ename kier_name, m.sal kier_sal FROM emp e, emp m
WHERE e.mgr = m.empno AND e.sal < m.sal
SELECT e.ename prac_name, e.sal prac_sal, m.ename kier_name, m.sal kier_sal FROM emp e, emp m
WHERE e.mgr = m.empno AND m.sal < e.sal
SELECT e.ename prac_name, e.sal prac_sal, m.ename kier_name, m.sal kier_sal FROM emp e, emp m
WHERE e.mgr = m.mgr AND e.sal < m.sal
SELECT e.ename prac_name, e.sal prac_sal, m.ename kier_name, m.sal kier_sal FROM emp e, emp m
WHERE e.mgr = m.mgr AND m.sal < e.sal
#
Wskazać poprawne zapytanie SQL znajdujące średnie zarobki tylko tych departamentów, które
zatrudniają więcej niż trzech pracowników.
SELECT deptno, AVG(sal) FROM emp GROUP BY deptno HAVING COUNT (*) > 3;
SELECT deptno, AVG(sal) FROM emp HAVING COUNT (*) > 3;GROUP BY deptno ;
SELECT deptno, AVG(sal) FROM emp GROUP BY deptno WHERE COUNT (*) > 3;
SELECT deptno, AVG(sal) FROM emp WHERE COUNT (*) > 3;GROUP BY deptno ;
#
Wskazać poprawne zapytanie SQL znajdujące stanowiska, na których średni zarobek wynosi 3000
lub więcej.
SELECT job, AVG(sal) FROM emp GROUP BY job HAVING AVG (sal) > =3000;
SELECT job, AVG(sal) FROM emp HAVING AVG (sal) > =3000GROUP BY job;
SELECT job, AVG(sal) FROM emp GROUP BY job WHERE AVG (sal) > =3000;
SELECT job, AVG(sal) FROM emp WHERE AVG (sal) > =3000 GROUP BY job;
#
Wskazać poprawne zapytanie SQL znajdujące departamenty zatrudniające powyżej trzech
pracowników
SELECT deptno, COUNT(*) FROM emp GROUP BY deptno HAVING COUNT (*) > 3;
SELECT deptno, COUNT(*) FROM emp HAVING COUNT (*) > 3 GROUP BY deptno;
SELECT deptno, COUNT(*) FROM emp GROUP BY deptno WHERE COUNT (*) > 3;
SELECT deptno, COUNT(*) FROM emp WHERE COUNT (*) > 3 GROUP BY deptno;
#
Wskazać poprawne zapytanie SQL znajdujące ilość pracowników w dziale mającym siedzibę w
DALLAS.
SELECT COUNT (*) FROM emp, dept WHERE dept.loc = 'DALLAS' AND emp.deptno = dept.deptno GROUP
BY dept.deptno;
SELECT COUNT (*) FROM emp WHERE deptno = (SELECT deptno FROM dept WHERE .loc = 'DALLAS')
SELECT COUNT (*) FROM emp, dept WHERE dept.loc = 'DALLAS' GROUP BY dept.deptno;
SELECT COUNT (*) FROM emp, dept WHERE emp.deptno = dept.deptno GROUP BY dept,deptno HAVING
dept.loc = 'DALLAS';
#
Wskazać poprawne zapytanie SQL znajdujące średni zarobek pracowników z drugiej klasy
zarobkowej.
SELECT AVG(sal ) FROM emp, salgrade WHERE.grade = 2 AND sal BETWEEN losal AND hisal GROUP
BY.grade
SELECT AVG(sal ) FROM emp, salgrade WHERE.grade = 2 AND sal > losal AND sal < hisal GROUP
BY.grade
SELECT AVG(sal ) FROM emp, WHERE sal > (SELECT losal FROM salgrade WHERE.grade = 2) AND sal <
(SELECT hisal FROM salgrade WHERE.grade = 2)
SELECT AVG(sal ) FROM emp, salgrade WHERE.grade = 2 AND sal BETWEEN losal AND hisal ;
#
Wskazać poprawne zapytanie SQL znajdujące trzech najlepiej zarabiających pracowników w firmie ich nazwiska i pensje.
SELECT ename, sal FROM emp e WHERE 3 > (SELECT count (*) FROM emp WHERE e.sal < sal);
SELECT ename, sal FROM emp e WHERE count(*)<3
SELECT ename, sal FROM emp e GROUP BY.deptno HAVING count(*)<3
#
W bloku PL/SQL występują:
deklaracje klas,
sekcja wyjątków,
instrukcje SQL,
instrukcje SQL*Plus.
#
Wśród instrukcji występujących w bloku PL/SQL mogą się znaleźć:
instrukcje SQL*Plus,
deklaracje zmiennych,
instrukcja CREATE TABLE,
instrukcja COMMIT.
#
Wśród instrukcji występujących w bloku PL/SQL mogą się znaleźć:
instrukcja SET SERVEROUTPUT ON,
instrukcja CREATE TABLE,
instrukcja DBMS_OUTPUT.PUT_LINE('Początek transakcji'),
instrukcja ROLLBACK.
#
Wśród instrukcji występujących w bloku PL/SQL mogą się znaleźć:
instrukcja warunkowa,
instrukcja CREATE TABLE,
instrukcja SELECT Table_Name FROM User_Tables,
instrukcja ROLLBACK.
#
Wśród instrukcji występujących w bloku PL/SQL mogą się znaleźć:
podniesienie wyjątku,
deklaracje wyjątków,
instrukcja SELECT * FROM Osoby,
instrukcja ROLLBACK.
#
Kursor w PL/SQL jest to:
rodzaj procedury,
nazwana instrukcja SQL,
obszar roboczy używany do wykonania instrukcji SQL,
narzędzie do podnoszenia wyjątków.
#
Czy definicja kursora w PL/SQL może dotyczyć instrukcji:
INSERT,
SELECT,
DELETE,
UPDATE.
#
Nazwa kursora może się pojawić w następujących kontekstach:
OPEN nazwa_kursora,
SELECT nazwa_kursora,
EXIT WHEN nazwa_kursora%NOTFOUND,
GOTO nazwa_kursora.
#
Klauzula WHERE CURRENT OF nazwa_kursora może wystąpić w instrukcji:
SELECT,
INSERT,
DELETE,
UPDATE.
#
Nazwa wyjątku może się pojawić w następujących kontekstach;
w instrukcji przypisania,
w definicji kursora,
w instrukcji RAISE,
po słowie kluczowym WHEN,
#
Trigger (wyzwalacz) tabelowy może zostać uruchomiony:
przed operacją na tabeli
po operacji na tabeli
bez związku z operacjami na tabeli
przed i po operacji na tabeli
#
Dla każdej tabeli można określić
maksymalnie 2 typy wyzwalaczy
maksymalnie 12 typów wyzwalaczy
maksymalnie 12 wyzwalaczy
dowolną ilość wyzwalaczy
#
Polecenia ROLLBACK i COMMIT dotyczą poleceń SQL
tylko INSERT, UPDATE, SELECT
tylko INSERT, UPDATE, SELECT, DELETE
tylko SELECT, INSERT, UPDATE, SELECT, DELETE
wszystkich poleceń SQL zmieniających zawartość tabel
#
W PL/SQL wynik działania instrukcji SELECT może zostać zapisany w postaci
tabeli
kursora
perspektywy
zmiennej
#
Klauzula "DECLARE Dane_Osoby Osoba%ROWTYPE" jest w PL/SQL
deklaracją zmiennej
deklatracją nowego rekordu
deklaracją nowego typu zmiennej
deklaracją zmiennej wraz z definicją jej typu
#
Kursor w PL/SQL to
typ zmiennej
rodzaj procedury
obiekt o określonych właściwościach i metodach
funkcja debuggera
#
Instrukcja FETCH jest używana w kursorze PL/SQL w celu
przejścia do następnego rekordu
pobrania zawartości rekordu ze źródła danych
przejścia do następnego rekordu i usunięcia poprzedniego rekordu
pobrania zawartości rekordu ze źródła danych i przejścia do następnego rekordu
#
Funkcja NVL służy do
Zamiany napotkanej w tabeli wartości "NULL" na zero
Zamiany napotkanej w tabeli wartości z "NULL" na podaną w argumencie wartość
Zamiany wartości zmiennej z "NULL" na podaną w argumencie wartość
Odpowiedź 2:
"Zamiany napotkanej w tabeli wartości z 'NULL' na podaną w argumencie wartość."
To sformułowanie jest nieco nieprecyzyjne – nie wspomina wprost, że funkcja przyjmuje dwa argumenty
(a dokładniej: że używany jest drugi argument, gdy pierwszy jest NULL). Dodatkowo, stwierdzenie
"napotkanej w tabeli" może sugerować, że funkcja działa tylko na danych pochodzących z tabeli, co nie
jest ograniczeniem NVL. Funkcja NVL może być stosowana do dowolnego wyrażenia.
Odpowiedź 3:
"Zamiany wartości zmiennej z 'NULL' na podaną w argumencie wartość."
Podobnie jak odpowiedź 2, to sformułowanie nie uwzględnia faktu, że NVL przyjmuje dwa argumenty –
chodzi o to, że gdy pierwsza wartość (dowolnego wyrażenia, niekoniecznie zmiennej) jest NULL, zwracana
jest wartość podana jako drugi argument. Ograniczenie do "wartości zmiennej" może być mylące, bo NVL
stosuje się także do kolumn, wyrażeń czy wyników funkcji.
Zamiany wartości podanej w argumencie zmiennej lub komórki perspektywy z "NULL" na podaną w
drugim argumencie wartość
#
Użycie klauzuli UNQUE w deklaracji pola tabeli instrukcji CREATE TABLE oznacza, że:
w tym polu nie może pojawić się wartość NULL
w żadnym innym polu tej tabeli nie można użyć klauzuli UNIQUE
wartości w tym polu nie mogą się powtarzać
na tej kolumnie (polu) zostanie automatycznie zalozony indeks
#
Użycie klauzuli PRIMARY KEY deklaracji pola tabeli instrukcji CREATE TABLE powoduje, że:
To pole staje się polem klucz głównego
W żadnym innym polu tej tabeli nie może zostać użyta klauzula PRIMARY KEY
W polu yum nie może wystąpić wartość "NULL"
Na tej kolumnie (polu) zostanie automatycznie założony indeks
#
Perspektywa (View) w PL/SQL
Jest obiektem przechowującym rekordy wybrane poleceniem SELECT
Jest obiektem utworzonym w oparciu o instrukcję SELECT
Może zostać użyta tak, jak by była tabelą np. w instrukcji SELECT, INSERT, UPDATE
Wiersze (rekordy) perspektywy nie są przechowywane w bazie danych
#
Instrukcja SELECT Table_Name FROM User_Tables
Wypisuje nazwy kolumn z tabeli User_Tables
Wypisuje wszystkie rekordy z perspektywy User_Tables
Zwraca nazwy tabel znajdujących się w obszarze tabel użytkownika
Zwraca nazwy tabel utworzonych przez użytkownika
#
Sekwencja (SEQUENCE) to
Ciąg instrukcji SQL
Obiekt PL/SQL przechowujący procedury, funkcje i wyzwalacze
Obiekt przechowywyany w bazie danych, służący do generowania kluczy głównych i jednozancznych
Typ zmiennej w PL/SQL której użycie generuje autonumerację rekordów tabeli
#
Instrukcja COMMIT
Dotyczy ostatnio wydanego polecenia SELECT, UPDATE albo DELETE
Dotyczy wszystkich poleceń SELECT, INSERT, UPDATE albo DELETE wydanych od ostatniego polecenia
ROLLBACK
Dokonuje trwałej zmiany w zawartości table bazy danych
Wszystkich poleceń INSERT, UPDATE albo DELETE wydanych od ostatniego polecenia COMMIT albo
ROLLBACK
#
Instrukcja CREATE PROCEDURE może się pojawić:
w bloku PL/SQL,
w SQL*Plusie,
w innej procedurze,
w wyzwalaczu.
#
Instrukcja CREATE FUNCTION może się pojawić:
w bloku PL/SQL,
w SQL*Plusie,
w innej funkcji,
w wyzwalaczu.
#
Instrukcja CREATE TRIGGER może się pojawić:
w bloku PL/SQL,
w SQL*Plusie,
w procedurze,
w innym wyzwalaczu.
#
Instrukcja CREATE PACKAGE może się pojawić:
w bloku PL/SQL,
w wyzwalaczu
w innym pakiecie,
w skrypcie SQL*Plus,
#
Instrukcja CREATE PACKAGE BODY może się pojawić:
w bloku PL/SQL,
w wyzwalaczu
w skrypcie SQL*Plus,
w pakiecie.
#
W wyzwalaczu można:
poprosić użytkownika o podanie wartości zmiennej,
na ekranie użytkownika formularza wypisać ostrzeżenie,
sprawdzić czy wartości wstawiane do tabeli są poprawne,
utworzyć nową tabelę.
#
W wyzwalaczu można:
poprosić użytkownika o podanie hasła,
na ekranie użytkownika wypisać komunikat o błędzie,
utworzyć nową tabelę.
porównać ze sobą nową i starą wartość w kolumnie przy UPDATE
#
W wyzwalaczu można:
użyć instrukcji COMMIT,
nie dopuścić do wprowadzenia zmian,
sprawdzić czy wartości wstawiane do tabeli są poprawne,
utworzyć nową tabelę.
#
W wyzwalaczu można:
poprosić użytkownika o podanie wartości zmiennej,
do kolumny klucza głównego tworzonego wiersza wygenerować nową wartość,
sprawdzić która jest godzina,
utworzyć nową tabelę.
#
W wyzwalaczu można:
zrealizować akcję referencyjną NULLIFY,
przekazać informację o błędzie do aplikacji klienta,
sprawdzić czy w danej kolumnie wstawianego wiersza występuje NULL,
utworzyć nowy wyzwalacz.
#
Które mechanizmy wchodzą w skład oprogramowania strony serwera bazy danych:
formularze,
deklaratywne więzy spójności,
wyzwalacze wierszowe,
obiekty OCX.
#
Wśród więzów spójności encji znajdują się:
więzy klucza głównego,
więzy klucza obcego,
zdarzenia formularzowe,
więzy CHECK.
#
Wśród więzów spójności encji znajdują się:
więzy klucza obcego,
więzy klucza jednoznacznego,
blokady,
więzy NOT NULL
#
Wśród więzów spójności referencyjnej znajdują się:
więzy klucza głównego,
więzy klucza obcego,
więzy NOT NULL,,
więzy CHECK
#
Do zapewnienia więzów spójności referencyjnej służą:
wyzwalacze,
klauzula CHECK,
klauzula REFERENCES,
indeksy.
#
Do zapewnienia więzów spójności encji służą:
wyzwalacze,
klauzula CHECK,
klauzula REFERENCES,
indeksy.
#
Które akcje referencyjne są dostępne w Oracle:
RESTRICTED,
NULLIFY,
DEFAULT,
CASCADE.
#
SQL*Plus stanowi:
część serwera bazy danych,
część serwera aplikacji Oracle,
język interakcyjnych poleceń do bazy danych,
klient korzystający z serwera bazy danych.
#
Deklaracja VARIABLE Klient VARCHAR2(30) jest częścią:
SQL,
PL/SQL,
SQL*Plus,
prekompilatora do języka C.
#
Instrukcja ACCEPT Klient PROMPT "Podaj nazwisko klienta: " jest częścią:
SQL,
PL/SQL,
SQL*Plus,
prekompilatora do języka C.
#
Kursor w PL/SQL służy do:
Wprowadzania danych z klawiatury,
Przeglądania i wykonywania operacji na rekordach zwróconych przez zapytanie.
Przyspieszenia wykonywania zapytań.
Obsługi wyjątków.
#
Obiektowa baza danych w Oracle obejmuje:
wielowymiarowość,
kolekcje,
typy obiektowe,
dziedziczenie.
#
Obiektowa baza danych w Oracle obejmuje:
tabele zagnieżdżone,
hermetyzację obiektów,
perspektywy obiektowe,
transformację STAR.
#
W kolumnach bazy danych Oracle można przechowywywać:
duże obiekty binarne,
duże obiekty znakowe,
wskaźniki do obiektów,
zagnieżdżone tabele.
#
Czy są takie instrukcje w Oracle:
CREATE TYPE,
CREATE CLASS,
CREATE METHOD,
CREATE SERVLET.
#
W bazie danych Oracle można zmieniać zawartość następujących typów obiektów:
BLOB,
CLOB,
BFILE,
NCLOB.
#
Standard SQL określa następujące interfejsy programistyczne:
PL/SQL,
Java,
moduły,
osadzony SQL.
#
Standard SQL określa następujące interfejsy programistyczne:
PL/SQL,
Interfejs Poziomu Wywołań CLI,
moduły,
osadzony SQL.
#
Standard SQL określa następujące interfejsy programistyczne:
osadzony SQL
ODBC,
JDBC.
Interfejs Poziomu Wywołań CLI
#
Osadzanie instrukcji SQL w interfejsie osadzonego SQL dotyczy:
cache serwera bazy danych,
słownika danych,
języka programowania,
PL/SQL.
#
Instrukcje osadzonego SQL są poprzedzane słowem kluczowym:
EXEC,
DO,
EXEC SQL,
BEGIN.
#
Instrukcja "SQLExecDirect(hstmt, (SQLCHAR *) sqlsource, SQL_NTS)" dotyczy języka:
PL/SQL,
osadzonego SQL,
Interfejsu Poziomu Wywołań,
ASP.
#
Interfejs JDBC może być używany w:
apletach,
serwletach,
kodzie składowanym w bazie danych,
programach aplikacyjnych.
#
W JDBC zbiór wyników zapytania znajduje się na obiekcie klasy:
Rowset,
RecordSet,
ResultSet,
QuerySet.
#
W zapytaniu "SELECT HelloWorld() FROM Dual;" identyfikator HelloWorld może oznaczać:
funkcję PL/SQL;
klasę Java;
funkcję PL/SQL związaną z metodą klasy Java;
procedurę PL/SQL.
#
Jako obiekty bazy danych Oracle można przechowywać kod języków:
C,
Java,
PL/SQL,
VisualBasic.
#
Aplikacja wykonywana za pomocą internetowego modułu PLSQL wykorzystuje:
serwer WWW Apache;
powiązania ODBC
powiązania bazodanowe,
powiązania JDBC.
#
Aplikacja wykonywana za pomocą internetowego modułu PLSQL wykorzystuje:
powiązania bazodanowe,
transformację STAR,
procedury PL/SQL,
migawki.
#
Aplikacja wykonywana za pomocą Internet Information Servera wykorzystuje:
ODBC,
powiązania bazodanowe,
wielowymiarowość,
skrypty Visual Basica.
#
Aplikacja ASP jest przechowywana jako:
plik tekstowy,
plik binarny,
procedura w bazie danych,
biblioteka DLL.
#
Serwlet jest to:
aplet przechowywany po stronie serwera aplikacji,
obiekt klasy HttpServlet,
metoda klasy HttpServlet,
rodzaj sterownika JDBC.
#
#
Które metody dotyczą zachowania spójności danych przy współbieżnym dostępie:
blokowanie pesymistyczne
przyznawanie uprawnień do obiektów w bazie danych
autoryzowanie dostępu
blokowanie optymistyczne
#
Które metody dotyczą możliwości odtworzenia danych po awarii dysku:
dziennik
repliki
udostępnienie danych na stronach WWW
kopia zapasowa
#
Które metody dotyczą ochrony danych przed nieautoryzowanym dostępem:
kopia zapasowa
wprowadzenie kont i haseł
słownik danych (metadane)
przyznawanie uprawnień do wykonywania operacji na obiektach
#
Własność szeregowalności transakcji oznacza:
konieczność specyfikowania kolejności wykonywania transakcji
wymuszenie na systemie szeregowego wykonywania transakcji
współbieżną realizację transakcji tak jakby były one wykonywane jedna po drugiej
ustalenie priorytetu wykonywania transakcji
#
Dane słownika danych (metadane) są przechowywane w relacyjnej bazie danych:
w specjalnym pliku binarnym w tym samym katalogu co pliki systemu zarządzania bazą danych
nie muszą być przechowywane w bazie danych
w specjalnej bazie danych (budowanej przez administratora)
w specjalnych tabelach w tej samej bazie danych
#
Do odtworzenia stanu bazy danych po awarii procesu użytkownika służą:
dziennik powtórzeń,
pliki śladu,
segmenty wycofań,
kopia zapasowa.
#
Do odtworzenia stanu bazy danych po awarii procesu serwera służą:
dziennik powtórzeń,
pliki śladu,
segmenty wycofań,
kopia zapasowa.
#
Do odtworzenia stanu bazy danych po awarii dysku z danymi służą:
dziennik powtórzeń,
pliki śladu,
segmenty wycofań,
kopia zapasowa.
#
Przy otwieraniu bazy danych przy powtórnym włączeniu komputera po nagłej awarii zasilania są
używane:
dziennik powtórzeń,
pliki śladu,
segmenty wycofań,
kopia zapasowa.
#
Rezerwowa baza danych pracująca w trybie STANDBY otrzymuje z głównej bazy danych:
pliki z danymi,
dziennik powtórzeń,
zarchiwizowany dziennik powtórzeń,
nic nie otrzymuje.
#
Poziom izolacji transakcji READ UNCOMMITED obejmuje następujące własności:
brak traconych modyfikacji,
nie-zatwierdzony odczyt,
nie-powtarzalny odczyt,
fantomy.
#
Poziom izolacji transakcji READ COMMITED obejmuje następujące własności:
brak traconych modyfikacji,
nie-zatwierdzony odczyt,
nie-powtarzalny odczyt,
fantomy.
widać zmiany wprowadzane przez inne transakcje, o ile tamte zakończyły się zatwierdzeniem
#
Poziom izolacji transakcji REPEATABLE READ obejmuje następujące własności:
brak traconych modyfikacji,
nie-zatwierdzony odczyt,
nie-powtarzalny odczyt,
fantomy.
#
Poziom izolacji transakcji SERIALIZABLE obejmuje następujące własności:
brak traconych modyfikacji,
nie-zatwierdzony odczyt,
nie-powtarzalny odczyt,
fantomy.
#
Domyślny poziom izolacji w Oracle obejmuje następujące własności:
brak traconych modyfikacji,
nie-zatwierdzony odczyt,
nie-powtarzalny odczyt,
fantomy.
#
Przy normalnym otwieraniu bazy danych system korzysta z informacji zapisanych w:
pliku kontrolnym,
pliku śladu,
dzienniku powtórzeń,
pliku inicjalizacyjnym instancji.
#
Które mechanizmy są używane do zapewnienia wielowersyjności w bazie danych:
dziennik powtórzeń,
pliki śladu,
segmenty wycofań,
kopia zapasowa.
#
Które mechanizmy są używane w bazie danych przy wykonywaniu transakcji typu READ ONLY:
dziennik powtórzeń,
pliki śladu,
segmenty wycofań,
kopia zapasowa.
#
Które mechanizmy są używane do zapewnienia spójności bazy danych w środowisku współbieżnie
wykonywanych transakcji:
blokady,
perspektywy,
role,
wielowersyjność.
#
Przy wykonywaniu operacji ROLLBACK są wykorzystywane:
dziennik powtórzeń,
segmenty wycofań,
kopia zapasowa,
pliki śladu.
#
Terminy atomowość-spójność-izolacja-trwałość oznaczane skrótem ACID dotyczą:
modelu wykonywania transakcji w bazie danych,
modelu obliczeń w rozproszonej bazie danych,
modelu wykonywania pojedynczej instrukcji SQL,
modelu sprawdzania więzów spójności.
#
Czy jest prawdą:
Z każdą stroną w puli buforów jest wiązany licznik odwołań i bit aktualizacji.
Zmieniana strona jest natychmiast zapisywana na dysk.
Z jednej strony w puli buforów może korzystać tylko jeden użytkownik.
Zawsze najlepszą strategią zastępowania stron jest LRU.
#
Czy format stron z rekordami zmiennej długości zapewnia:
Przesuwanie rekordów po stronie bez zmiany identyfikatora rekordu.
Utrzymywanie spójnej puli wolnych miejsc.
Zamianę miejscami dwóch rekordów na stronie.
Używanie zewnętrznych wskaźników do rekordu.
#
Indeks pogrupowany jest gdy:
pozycje danych są podzielone na osobne partycje,
rekordy danych i pozycje danych indeksu są w związku 1-1,
pozycje danych indeksu z tą samą wartością klucza wyszukiwania znajdują się na tej samej stronie,
uporządkowanie zapisu rekordów danych jest takie samo jak uporządkowanie zapisu pozycji danych
indeksu.
#
Indeks na B+ drzewie zapewnia:
możliwość wypisywania pozycji danych indeksu w kolejności uporządkowanej względem wartości klucza
wyszukiwania,
realizację zapytań równościowych względem wartości klucza wyszukiwania,
realizację zapytań zakresowych względem wartości klucza wyszukiwania,
aktualizację wartości klucza wyszukiwania.
#
Indeks haszowany zapewnia:
możliwość wypisywania pozycji danych w kolejności uporządkowanej względem wartości klucza
wyszukiwania,
realizację zapytań równościowych względem wartości klucza wyszukiwania,
realizację zapytań zakresowych względem wartości klucza wyszukiwania,
aktualizację wartości klucza wyszukiwania.
#
Sortowania w bazie danych używa się przy:
wykonywaniu klauzuli GROUP BY,
budowie początkowego indeksu na B+-drzewie,
wykonywaniu klauzuli DISTINCT,
metodzie złączania Nested Loops Join.
#
Sortowania w bazie danych używa się przy:
wykonywaniu klauzuli ORDER BY,
budowie początkowego indeksu na B+-drzewie,
wykonywaniu klauzuli UNION DISTINCT,
metodzie złączania Sort-Merge.
#
Sortowania w bazie danych używa się przy:
wykonywaniu klauzuli WHERE,
budowie początkowego indeksu na B+-drzewie,
wykonywaniu klauzuli UNION ALL,
metodzie złączania Index Nested Loops Join.
#
Sortowania w bazie danych używa się przy:
wykonywaniu klauzuli EXCEPT,
wykonywaniu klauzuli GROUP BY,
wykonywaniu klauzuli HAVING,
metodzie złączania Nested Loops Join.
#
Sortowania w bazie danych używa się przy:
wykonywaniu klauzuli EXCEPT,
budowie początkowego indeksu na B+-drzewie,
wykonywaniu funkcji agregującej AVG,
metodzie złączania Hash Join.
#
Sortowanie za pomocą B+-drzewa jest lepsze niż sortowanie zewnętrzne, gdy indeks jest:
rzadki,
gęsty,
pogrupowany,
wewnętrzny.
#
Strategia optymalizacyjna "tylko-indeks" stosuje się, gdy:
na tabeli jest założony tylko jeden indeks,
zamiast rozważać tabelę można rozważyć jeden z jej indeksów,
wszystkie kolumny występujące na liście SELECT występują w kluczu wyszukiwania jednego z indeksów,
można usunąć tabelę zostawiając w bazie danych tylko jej indeks.
#
W metodzie Hash Join występuje liczba funkcji haszujących równa:
0,
1,
2,
3.
#
Które stwierdzenia stanowią dobre heurystyki optymalizacji zapytań:
Selekcje wykonuj tak wcześnie, jak tylko możliwe.
Staraj się związać selekcje z iloczynem kartezjańskim, w celu zidentyfikowania rodzaju złączenia relacji.
Wybierz plan wykonania działający "w miejscu" bez pomocniczej relacji.
Wyszukuj wspólne podwyrażenia i wykonuj je tylko raz.
#
Które stwierdzenia stanowią dobre heurystyki optymalizacji zapytań:
Przed przystąpieniem do realizacji zapytania dokonaj analizy możliwych opcji z oszacowaniem ich kosztu.
Staraj się związać selekcje z iloczynem kartezjańskim, w celu zidentyfikowania rodzaju złączenia relacji.
Wykonuj jednocześnie ciągi operacji jednoargumentowych takich jak selekcje i rzuty.
Przetwórz wstępnie plik we właściwy sposób (indeksy, sortowanie).
#
Które z poniższych stwierdzeń są prawdziwe:
Przy warunkach zakresowych istotna jest kolejność atrybutów w kluczu wyszukiwania.
Indeks haszowany na relacji wewnętrznej jest dobry dla metody Index Nested Loops Join.
Pogrupowany indeks na B+ drzewie względem kolumn złączenia jest dobry dla metody Sort-Merge Join.
Metoda Hash Join wymaga istnienia indeksu haszowanego.
#
Które z poniższych stwierdzeń są prawdziwe:
Metoda Sort-Merge Join wymaga istnienia indeksu na B+-drzewie.
Indeks pogrupowany jest użyteczny przy zapytaniach zakresowych a także przy mało-selektywnych
zapytaniach równościowych.
Aktualizacja pól wyszukiwania w indeksach spowalnia INSERT/DELETE/UPDATE.
Tylko jeden indeks może być pogrupowany dla jednej tabeli.
#
Protokół ścisłego blokowania dwufazowego (Strict 2PL) obejmuje warunki:
Każda transakcja musi uzyskać blokadę S na obiekcie zanim odczyta ten obiekt.
Jeśli transakcja trzyma blokadę X na obiekcie, żadna inna transakcja nie ma prawa założyć żadnej blokady
(ani S ani X) na tym obiekcie.
Aby założyć blokadę X transakcja musi zwolnić wszystkie swoje blokady S.
Blokady trzymane przez transakcję są zwalniane gdy tylko nie są jej potrzebne.
Każda transakcja musi uzyskać blokadę X na obiekcie przed zapisaniem go.
Blokady trzymane przez transakcję są zwalniane gdy transakcja kończy się
#
Protokół ścisłego blokowania dwufazowego (Strict 2PL) obejmuje warunki:
Każda transakcja musi uzyskać blokadę X na obiekcie zanim odczyta ten obiekt.
Jeśli transakcja trzyma blokadę S na obiekcie, żadna inna transakcja nie ma prawa założyć żadnej blokady
(ani S ani X) na tym obiekcie.
Blokady trzymane przez transakcję są zwalniane gdy transakcja kończy się.
Z każdą blokadą X powinna być związana odpowiadająca jej blokada S ale nie na odwrót.
#
Protokół ścisłego blokowania dwufazowego (Strict 2PL) obejmuje warunki:
Każda transakcja musi uzyskać blokadę X na obiekcie przed zapisaniem go.
Jeśli transakcja trzyma blokadę S na obiekcie, żadna inna transakcja nie ma prawa założyć żadnej blokady
(ani S ani X) na tym obiekcie.
Dwie współpracujące ze sobą transakcje mogą wspólnie założyć jedną blokadę X.
W pierwszej fazie transakcja zakłada blokady, w drugiej fazie je zwalnia w dowolnej kolejności.
#
Aby zapobiec zakleszczeniu (deadlock) wystarczy:
uzależniać założenie blokady od priorytetu transakcji,
uzależniać założenie nowej blokady od liczby założonych już przez transakcję blokad,
pozwalać tylko jednej transakcji na założenie blokady X,
sprawdzać, czy w grafie oczekiwania na zwolnienie blokady występuje cykl.
#
Fantomem nazywamy:
tabelę, do której nie ma dostępu żaden użytkownik,
wiersz, który został usunięty z tabeli, po tym jak inna transakcja odczytała ją,
wiersz, który został wpisany do tabeli, po tym jak inna transakcja odczytała ją,
wiersz, który został zmieniony, po tym jak inna transakcja odczytała ją.
#
Który rodzaj złączenia jest dobry w rozproszonej bazie danych:
sort-merge join,
hash join,
półzłączenia,
złączenie zewnętrzne.
#
Czy jest prawdą dla protokołu dwu-fazowego zatwierdzania:
jest tylko jeden koordynator,
koordynator podejmuje decyzję "commit", gdy co najmniej jeden z węzłów przesłał mu komunikat "yes",
koordynator podejmuje decyzję "abort", gdy wszystkie węzły nadesłały komunikat "no",
w przypadku awarii sieci jest potrzebna dodatkowa trzecia faza.
#
Czy jest prawdą dla protokołu dwu-fazowego zatwierdzania:
jeden węzeł wyróżnia się jako główny koordynator, a drugi jako zapasowy koordynator,
koordynator podejmuje decyzję "commit", gdy każdy z węzłów przysłal mu komunikat "yes",
tylko koordynator zapisuje komunikaty realizacji protokołu do swojego dziennika powtórzeń,
w przypadku awarii koordynatora jego funkcje przejmuje inny węzeł.
#
Czy jest prawdą:
Bufory bazy danych zawierają używane ostatnio bloki danych z bazy danych.
Bufory bazy danych mogą zawierać zmodyfikowane dane zatwierdzonych transakcji, które jeszcze nie
zostały przepisane na dysk.
Bufory bazy danych zmienione przez niezatwierdzone transakcje mogą zostać przepisane na dysk.
W buforach bazy danych są zapisywane pozycje segmentów wycofań.
#
Segmenty wycofań służą do:
wycofywania nie zatwierdzonych zmian przy odtwarzaniu,
zagwarantowania spójności odczytu,
realizacji transakcji korzystających ze zdjęcia migawkowego danych,
przyśpieszenia wykonywania zapytań.
#
Które z mechanizmów są używane w rozproszonej bazie danych:
dyspozytor,
powiązanie bazodanowe,
wielowersyjność
audyt.
#
Które z mechanizmów są używane w rozproszonej bazie danych:
replikacja danych,
blokady,
transformacja STAR,
partycjonowanie tabeli.
#
Które z mechanizmów są używane w rozproszonej bazie danych:
klaster
migawki,
instrukcja ANALYZE,
serwer równoległy.
#
Które z mechanizmów są używane w rozproszonej bazie danych:
indeks bitmapowy,
powiązanie bazodanowe,
hurtownia danych,
agregacja danych.
#
Które z mechanizmów są używane w rozproszonej bazie danych:
równoległe wykonywanie zapytań,
dwufazowe zatwierdzanie,
dziennik migawki,
audyt.
#
Które z mechanizmów są charakterystyczne dla hurtowni danych:
replikacja danych,
blokady,
transformacja STAR,
partycjonowanie tabeli.
#
Które z mechanizmów są charakterystyczne dla hurtowni danych:
blokady,
perspektywy,
role,
indeksy bitmapowe.
#
Które z mechanizmów są charakterystyczne dla hurtowni danych:
histogram,
audyt,
agregacje,
profil.
#
Które z mechanizmów są charakterystyczne dla hurtowni danych:
instrukcja ANALYZE,
szeregowalność,
wielowymiarowość,
dziennik powtórzeń.
#
Które z mechanizmów są charakterystyczne dla hurtowni danych:
role,
wielowymiarowość,
migawki,
schemat gwiazda.
#
Które obiekty są związane z agregacją w hurtowni danych:
indeks bitmapowy,
perspektywa zmaterializowana,
klaster,
# klauzula GROUP BY.
Dane są tabele P(A,B), Q(B,C). W aplikacji często jest wykonywane zapytanie SELECT P.A,Q.C FROM
P, Q WHERE P.B=Q.B AND Q.B='&Klient'. Która ze struktur danych byłaby najkorzystniejsza:
indeksy na P.B, Q.B;
indeksy na P.A, Q.C;
klaster obejmujący P i Q z indeksem B;
indeks na Q.B.
#
Dane są tabele P(A,B), Q(B,C). W aplikacji często jest wykonywane zapytanie SELECT P.A,Q.C FROM
P, Q WHERE P.B=Q.B. Która ze struktur danych byłaby najkorzystniejsza:
indeksy na P.B, Q.B;
indeksy na P.A, Q.C;
klaster obejmujący P i Q z indeksem B;
indeks na P.B.
#
Dane są tabele P(A,B), Q(B,C). W aplikacji często jest wykonywane zapytanie SELECT P.A,Q.B FROM
P, Q WHERE P.B=Q.B AND Q.C='&Klient'. Która ze struktur danych byłaby najkorzystniejsza:
indeksy na P.B, Q.B;
indeksy na P.B, Q.C;
klaster obejmujący P i Q z indeksem B;
indeks na Q.C.
#
Zastosowanie indeksu przy wyszukiwaniu jest uzasadnione, gdy dzięki niemu ograniczamy się do:
>=50% ogólnej liczby wierszy w tabeli.
<=50% ogólnej liczby wierszy w tabeli.
<=25% ogólnej liczby wierszy w tabeli.
>=25% ogólnej liczby wierszy w tabeli.
#
Zastosowanie strategii tylko indeks jest stosowane, gdy:
na tabeli nie jest założony żaden indeks,
wyszukiwanie jest określone na perspektywie,
wyszukiwanie sprowadza się do przejścia indeksu,
wstawianie sprowadza się do wstawienia do indeksu.
#
Indeks bitmapowy zakłada się na kolumnie:
w której liczba różnych wartości jest duża,
w której liczba różnych wartości jest mała,
gdy wyszukiwanie jest określane przez równość z podanymi wartościami,
gdy zachodzi konieczność sortowania względem wartości w tej kolumnie.
#
Indeks używający B-drzewa zakłada się na kolumnie:
gdy wyszukiwanie po tej kolumnie daje zwykle duży zbiór wyników,
gdy wyszukiwanie po tej kolumnie daje zwykle mały zbiór wyników,
gdy wyszukiwanie często dotyczy największej wartości,
gdy często sortuje się dane względem tej kolumny.
#
Czy istniejący indeks przyśpiesza wykonanie instrukcji SELECT:
nigdy,
zawsze,
czasem.
#
Czy istniejący indeks przyśpiesza wykonanie instrukcji INSERT:
nigdy,
zawsze,
czasem.
#
Czy istniejący indeks przyśpiesza wykonanie instrukcji UPDATE:
nigdy
zawsze
czasem
#
Czy istniejący indeks przyśpiesza wykonanie instrukcji DELETE:
nigdy
zawsze
czasem
#
Czy istniejący indeks przyśpiesza wykonanie instrukcji ROLLBACK:
nigdy
zawsze
czasem
#
Czy istniejący indeks przyśpiesza wykonanie instrukcji COMMIT:
nigdy
zawsze
czasem
#
Użycie których metod może spowodować zmniejszenie liczby przesłań między pamięcią
wewnętrzną i zewnętrzną:
użycie perspektywy,
indeks na kolumnie klucza obcego,
zwykły indeks oparty na B-drzewie dla kolumny o dwóch wartościach,
indeks bitmapowy na kolumnie zawierającej nazwiska klientów.
#
Użycie których metod może spowodować zmniejszenie liczby przesłań między pamięcią
wewnętrzną i zewnętrzną:
zwiększenie liczby buforów,
klaster,
indeks bitmapowy na kolumnie zawierającej płeć klientów,
wykonanie instrukcji SET TRANSACTION READ ONLY.
#
Użycie których metod może spowodować zmniejszenie liczby przesłań między pamięcią
wewnętrzną i zewnętrzną:
dodatkowa tabela pomocnicza,
indeks bitmapowy na kolumnie zawierającej płeć klientów,
wykonanie instrukcji SET TRANSACTION READ ONLY,
zwykły indeks oparty na B-drzewie dla kolumny zawierającej nazwiska osób.
#
Użycie których metod może spowodować zmniejszenie liczby przesłań między pamięcią
wewnętrzną i zewnętrzną:
indeks bitmapowy na kolumnie zawierającej kraj, w którym mieszkają klienci,
wykonanie instrukcji ANALYZE,
wykonanie instrukcji SET TRANSACTION READ ONLY,
#
Ile warunków złączeń potrzeba w zapytaniu aby uniknąć złączenia kartezjańskiego?
liczba tabel minus jeden
liczba kolumn minus jeden
liczba kolumn plus jeden
liczba tabel plus jeden
#
Który z poniższych operatorów zwróci część wspólną wyników zapytań A i B zadanych w Oraclu?
INTERSECT
MINUS
UNION
UNION ALL
#
Polecenie RENAME TABLE służy do:
zmiany nazwy tabeli
w Oraclu nie ma polecenia pozwalającego na zmianę nazwy tabeli
usunięcia tabeli
usunięcia danych z tabeli
#
Perspektywa w PL/SQL:
może zostać użyta tak, jak by była tabelą np. w instrukcji SELECT, INSERT, UPDATE
jest obiektem przechowującym rekordy wybrane poleceniem SELECT
jest obiektem utworzonym w oparciu o instrukcję SELECT
wiersze (rekordy) perspektywy nie są przechowywane w bazie danych
#
Które z poniższych klauzul muszą wystąpić przed GROUP BY (zakładając, że chcemy, aby w ogóle
wystąpiły)?
INTO
FROM
HAVING
WHERE
#
SELECT ename, NVL(sal, 0) "Salary" FROM Emp WHERE Sal IS NULL ORDER BY ename;
0
nic nie zwróci
spację
null
#
Który z poniższych operatorów zwróci sumę zapytań bez eliminacji powtarzających się wierszy?
MINUS
UNION ALL
UNION
INTERSECT
#
Wśród instrukcji występujących w bloku PL/SQL (między BEGIN i END) mogą się znaleźć:
instrukcja DELETE FROM EMP
obsługa wyjątku
podniesienie wyjątku
deklaracje klas
#
W jaki sposób tworzy się funkcję:
CREATE FUNCTION nazwa(lista parametrów) IS
CREATE FUNCTION nazwa(lista parametrów) AS
CREATE FUNCTION nazwa(lista parametrów) RETURN Typ IS
CREATE FUNCTION nazwa(lista parametrów) RETURN Typ AS
#
Używając instrukcji LOCK TABLE można:
dokonać blokady wybranego pojedynczego wiersza
dokonać blokady dowolnej liczby wierszy
dokonać blokady tabeli przed nieuprawnionym dostępem
dokonać blokady tabeli w trybie wyłączności
#
W Oracle przy wykonywaniu instrukcji CREATE PROCEDURE:
są zakładane blokady wyłączne na występujące w treści procedury tabele
są zakładane blokady współdzielone na występujące w treści procedury tabele
nie są zakładane żadne blokady na występujące w treści procedury tabele
nie są zakładane blokady jeśli w treści występują tylko instrukcje SELECT
#
Jakie są rodzaje parametrów procedur
out
null
in out
in
#
Zawartość tabeli tymczasowej może zostać zniszczona
za pomocą instrukcji delete
na koniec sesji
na koniec transakcji
po powtórnym zalogowaniu do bazy
#
Co będzie wynikiem realizacji instrukcji SELECT * FROM Emp WHERE EmployeeID = EmployeeID OR
EmployeeID = NULL
relacja Emp
instrukcja jest niepoprawna
null
relacja pusta
#
Które z poniższych klauzul mogą (ewentualnie muszą) wystąpić przed GROUP BY w Oraclu?
WHERE
ORDER BY
HAVING
FROM
#
Transakcja w bazie danych:
jest zakładana automatycznie przez serwer baz danych od ostatniej instrukcji DML
zmiana zatwierdzona przez COMMIT może być ('cośtam') wycofane przez ROLLBACK
to ciąg instrukcji DML i DQL wykonywanych w bazie danych
mogą być zatwierdzane przez programistę na żądanie
#
Które z poniższych twierdzeń dotyczących polecenia TRUNCATE TABLE są prawdziwe?
można wycofać jego działanie instrukcją ROLLBACK
można nim usunąć tylko całą zawartość tablicy
jest szybsze niż polecenie DELETE TABLE
nie można w nim stosować klauzuli WHERE
#
Jaki będzie efekt wykonania następującego polecenia:
CREATE TABLE Osoby
(imie VARCHAR2(30) PRIMARY KEY, nazwisko VARCHAR2(30) PRIMARY KEY, zarobki NUMBER(7,2))
przy próbie wykonania polecenia wystąpi błąd
zostanie stworzona tabela Osoby, której kluczem głównym będzie pole imie
zostanie stworzona tabela Osoby, której kluczem głównym będzie zbiór złożony z pól (imie, nazwisko)
zostanie stworzona tabela Osoby, której kluczem głównym będzie pole nazwisko
#
W którym z poniższych zapytań jest użyte złączenie zewnętrzne między dwiema tabelami (w
Oraclu)?
SELECT region.region_name, employee.salary FROM region, employee WHERE employee.salary
BETWEEN region.avg_salary AND region.max_salary;
SELECT region.region_name, employee.salary FROM region, employee WHERE region.id =
employee.region_no;
SELECT region.region_name, employee.salary FROM region, employee WHERE region.id =
employee.region_no;
SELECT region.region_name, employeeinfo.last_name FROM employee region, employee employeeinfo
WHERE employeeinfo.id >= region.manager_id;
#
Poziom izolacji transakcji READ COMMITED obejmuje następujące własności:
widać wszystkie modyfikacje wprowadzane przez równolegle trwające transakcje
nie można w nim modyfikować danych w bazie danych
widać zmiany wprowadzane przez inne transakcje, o ile tamte zakończyły się zatwierdzeniem
#
Klauzula START WITH określa:
korzeń drzewa
na jakim poziomie drzewa znajduje się dany wiersz w stosunku do wiersza stanowiącego korzeń
syna dla ojca
#
Wykonujesz następujące zapytanie:
SELECT e1.ename||' pracuje dla' ||e2.ename "Pracownicy i ich szefowie" FROM emp e1, emp e2
WHERE e1.mgr=e2.empno;
Jaki to jest rodzaj złączenia?
kartezjańskie
zewnętrzne
samozłączenie
#
W którym z poniższych zapytań jest użyte złączenie zewnętrzne między dwiema tabelami (w
Oraclu)?
SELECT region.region_name, employee.salary FROM region, employee WHERE region.id =
employee.region_no;
SELECT region.region_name, employee.salary FROM region, employee WHERE region.id =
employee.region_no;
SELECT region.region_name, employeeinfo.last_name FROM employee region, employee employeeinfo
WHERE employeeinfo.id >= region.manager_id;
SELECT region.region_name, employee.salary FROM region, employee WHERE employee.salary
BETWEEN region.avg_salary AND region.max_salary;
#
Relacja R ma atrybut a. Jaka liczba może być wynikiem wykonania instrukcji SELECT Count(*) FROM
R WHERE a=a
zawsze tyle jaka jest liczebność relacji R
dowolna liczba naturalna
1
0
#
Jakie nazwiska zostaną wyświetlone w wyniku tego zapytania:
SELECT ename
FROM emp
WHERE ename LIKE '_A%';
nazwiska, w których litera A występuje na dowolnym miejscu poza pierwszym
nazwiska, w których litera A występuje na drugim miejscu
nazwiska kończące się na A
nazwiska zaczynające się na A
#
Wyzwalacz w T-SQL jest uruchamiany
Po wykonaniu, ale przed zatwierdzeniem polecenia DML
Przed wykonaniem polecenia DML
Po wykonaniu, ale nie można określicz czy przed czy po zatwierdzeniu
Po wykonaniu i zatwierdzeniu polecenia DML
#
Która z poniższych instrukcji w PL/SQL nie zakończy się błędem, przy założeniu, że w tabeli DEPTNO
są dwa rekordy z wartościami Deptno IN (10, 20) oraz prawidłowej deklaracji zmiennej v_deptno
SELECT deptno INTO v_deptno FROM dept WHERE deptno>0;
SELECT deptno INTO v_deptno FROM dept WHERE deptno=10;
SELECT deptno INTO v_deptno FROM dept;
SELECT deptno INTO v_deptno FROM dept WHERE deptno IN (10, 20);
#
Problem fantomów dotyczy sytuacji, w której:
W trakcie działania transakcji inna transakcja wstawiła nowy rekord
W trakcie działania transakcji inna transakcja usunęła rekord
Uzytkownik zobaczył rekord wprowadzony przez innego użytkownika, który nie został zatwierdzony przez
COMMIT
Rekord został w obrębie jednej transakcji wprowadzony (INSERT) i od razu usunięty (DELETE)
#
Wyniki procedury T-SQL mogą być zwrócone przez
Zmienną typu OUTPUT
Zmienną wiązania
Dyrektywę RETURN
Result Set
#
Kopia zapasowa dziennika transakcji:
Jest bezużyteczna, jeśli nie odtworzymy wcześniej pełnej kopii zapasowej
Pozwala wyczyścić dziennik transakcji
Zawiera zmiany w bazie danych wykonane od ostatniej kopii zapasowej dziennika transakcji
Zawiera zmiany w bazie danych wykonane od ostatniej kopii różnicowej
Pozwala na przywrócenie stanu bazy danych do określonego punktu w czasie
#
Pakiet w PL/SQL
W pakiecie mogą być definiowane podprogramy (funkcje i procedury)
Zmienne zadeklarowane w części prywatnej pakietu są widoczne w jego części publicznej
Część prywatna (ciało) pakietu jest opcjonalna
Zmienne zadeklarowane w części publicznej pakietu są widoczne w jego części prywatnej
#
Zintegrowanie w definicji hurtowni danych oznacza, że:
dane są jednolite
dane, raz umieszczone w hurtowni, zazwyczaj pozostają nie zmienione
zbierane dane dotyczą tematu, a nie działań
gromadzone są dane historyczne i każdy fakt opatrzony jest stemplem czasowym
#
W procedurze (PROCEDURE) PL/SQL
Domyślnym typem parametru jest IN OUT
Deklarując parametr procedury nie podaje się jego typu
Deklarując parametr procedury można mu nadać wartość domyślną
Jedynym typem parametru jest IN OUT
#
W funkcji (FUNCTION) PL/SQL
Zwracana jest wartość wyrażenia znajdującego się po instrukcji RETURN
Wywołanie funkcji odbywa się przez jej nazwę
Można użyć instrukcji DQL
Nie można zadeklarować parametru typu OUT
#
Zaznacz poprawne stwierdzenia:
Każda instrukcja SELECT wymaga pobrania danych z dysku twardego
Wynik działania każdej instrukcji UPDATE jest natychmiast po zatwierdzeniu zapisywany w pliku z danymi
Wynik działania każdej instrukcji SELECT jest zapisywany w dzienniku transakcji
Wynik działania każdej instrukcji UPDATE jest natychmiast po zatwierdzeniu zapisywanyw dzienniku
transakcji
#
Które z poniższych instrukcji wypisze tekst Ala123 w SQL Server?
Print 'Ala' + '123';
Print 'Ala' + Cast(123 As Varchar);
Print 'Ala' + 123;
Print 'Ala' + Cast (1+2+3 As Varchar);
#
Dane są dwie tabele Osoby(Imie, Nazwisko, Zarobki, Id_działu) oraz Działy(Id_działu, Nazwa). Które z
następujących instrukcji są poprawnymi instrukcjami SQL w Oracle
SELECT Osoby.Nazwisko, Działy.Nazwa FROM Osoby, Działy, WHERE Osoby.Id_działu =Działy.Id_działu
GROUP BY Osoby.Nazwisko HAVING COUNT (Działy.Id_działu) < 2;
UPDATE Osoby SET Id_działu = NULL WHERE 5>(SELECT COUNT(*) FROM Działy);
DELETE FROM Osoby WHERE Osoby.Nazwisko='KOWALSKI' AND Działy.Id_działu=22;
INSERT INTO Osoby VALUES ('Jan', 'Kowalski', 2000);
#
Które z poniższych instrukcji w SQL Server jest składniowo poprawna (zostanie wykonana)
SELECT empno FROM emp WHERE empno=empno;
SELECT 1 FROM emp WHERE 1<>1;
SELECT 1 FROM emp WHERE 1=1;
SELECT empno FROM emp WHERE empno<>empno;
#
Wskazać poprawne zapytanie SQL (dialekt ORACLE) znajdujące dla każdego departamentu ostatnio
zatrudnionych pracowników
SELECT deptno, ename, hiredate FROM emp WHERE hiredate = (SELECT MAX(hiredate) FROM emp
GROUP BY deptno);
SELECT deptno, ename, hiredate FROM emp WHERE (hiredate, deptno) IN (SELECT MAX(hiredate),
deptno FROM emp GROUP BY deptno);
SELECT deptno, ename, hiredate FROM emp e WHERE hiredate = (SELECT MAX(hiredate) FROM emp
WHERE deptno=e.deptno)
SELECT deptno, ename, MAX(hiredate) FROM emp GROUP BY deptno;
#
Zaznacz poprawne stwierdzenia dotyczące typów LOB:
Istnieją specjalne funkcje operujące na danych LOB.
Można utworzyć wiele kolumn LOB w jednej tabeli.
Na rekordach zawierających dane LOB działają instrukcje SELECT, INSERT, UPDATE, DELETE.
Kolumna LOB może wystąpić wyłącznie w tabeli typu obiektowego.
#
Zaznacz poprawne stwierdzenia dotyczące wielowersyjności w bazach danych:
MS SQL Server realizuje poziom izolacji READ COMMITTED przy pomocy wielowersyjności.
MS SQL Server oferuje mechanizm, dzięki któremu możemy tworzyć statyczne obrazy (migawki) bazy
danych, oparte na wielowersyjności.
Oracle realizuje poziom izolacji READ COMMITTED przy pomocy wielowersyjności.
Poziom izolacji SERIALIZABLE w MS SQL Server jest realizowany przy pomocy wielowersyjności.
#
Aby posortować wyniki zapytania w odwrotnym porządku leksykograficznym przy nazwie sortowanej
kolumny należy wpisać:
nic nie trzeba wpisywać, to domyślny sposób sortowania
DESC
ASC
#
W jaki sposób tworzy się perspektywę z opcją sprawdzania:
pisząc na końcu polecenia tworzenia perspektywy: WITH MAKE SURE OPTION
pisząc na końcu polecenia tworzenia perspektywy: WITH PROVE CORRECT OPTION
nie trzeba nic pisać, ponieważ jest to opcja domyślna
pisząc na końcu polecenia tworzenia perspektywy: WITH CHECK OPTION
#
Jakie znaczenie ma dziennik transakcji w serwerach baz danych?
Pozwala zachować spójność danych po awarii
Pozwala wycofywać transakcje
Pozwala zarządzać uprawnieniami
Pozwala na odtworzenie stanu bazy danych z określonego punktu w czasie
#
Które ze stwierdzeń jest prawdziwe:
perspektywa to to samo co tabela
używając perspektyw możemy w ogóle nie dbać o inne sposoby ochrony danych
perspektywy stanowią element ochrony danych przed niepowołanym lub nieprawidłowym dostępem do
danych
wiersze perspektywy mogą być wyliczane na żądanie
#
Znormalizowany schemat bazy danych:
jest zawsze najbardziej wydajny.
schemat bazy danych nie ma wpływu na wydajność.
można poprawić wydajność zapytań do znormalizowanej bazy danych stosując perspektywy
zmaterializowane.
może być mniej wydajny niż schemat nieznormalizowany.
#
Która z poniższych instrukcji w SQL Server jest składniowo poprawna (zostanie wykonana)
DELETE FROM emp WHERE empno = NULL;
TRUNCATE emp;
INSERT INTO emp (ename, job) SELECT ename, job FROM emp;
UPDATE emp SET sal = sal WHERE sal = sal;
#
Która z poniższych instrukcji PL/SQL prawidłowo podstawia wartość na zmienną (w tabeli EMP jest
14 rekordów)?
SELECT ename INTO v_ename FROM emp;
SELECT v_ename = ename FROM emp WHERE empno = 1234;
DECLARE v_ala Varchar2(10) := 'Ala';
SELECT ename INTO v_ename FROM dummy;
#
Rola w bazie danych:
Jest grupą obiektów bazy danych (tabel, procedur, perspektyw)
Jest obiektem bazy danych pozwalającym łatwiej zakładać indeksy
Jest grupą użytkowników
Może mieć nadane uprawnienia
#
Procedura T-SQL zwraca poprzez Result Set
Wszystkie wiersze ostatniej uruchomionej wewnątrz procedury instrukcji SELECT
Poprzez Result Set mogą być zwracane wyłącznie komunikaty o błędach
Procedura może zwrócić wyniki tylko poprzez zmienną OUTPUT
Ostatni wiersz ostatniej uruchomionej wewnątrz procedury instrukcji SELECT
#
W wyzwalaczu T-SQL
Mogą być deklarowane zmienne
Można używać instrukcji ROLLBACK
Można używać kursororów
Można używać instrukcji DML
#
Serwer baz danych może zarządzać współbieżnością dzięki:
denormalizacji
materializacji
wielowersyjności
rolom
#
Które aksjomaty ACID są zapewnione przez użycie planu szeregowalnego:
atomowość
spójność
izolacja
trwałość
#
Czy replikacja przyśpiesza wykonywanie:
instrukcji SELECT
instrukcji INSERT
instrukcji DELETE
instrukcji UPDATE
#
Dane są dwie tabele Osoby(Imie, Nazwisko, Zarobki, Id_działu) oraz Działy(Id_działu, Nazwa). Które z
następujących instrukcji są poprawnymi instrukcjami SQL w Oracle:
SELECT Osoby.Nazwisko, Działy.Id_działu FROM Osoby, Działy WHERE Osoby.Id_działu=Działy.Id_działu
GROUP BY Osoby.Nazwisko
DELETE FROM Osoby, Działy WHERE Osoby.Nazwisko='KOWALSKI' AND Działy.Nazwa='KASA'
UPDATE Osoby SET Id_działu=NULL
INSERT INTO Osoby VALUES ('Jan', 'Kowalski', 2000)
#
Dana jest tabela Osoby(Imie, Nazwisko, Zarobki). Które z następujących instrukcji są składniowo
poprawnymi instrukcjami SQL w Oracle:
UPDATE Osoby Nazwisko=USER
INSERT INTO Osoby VALUES ('Jan', 'Kowalski', 2000) WHERE USER = 'KOWALSKI'
DELETE FROM Osoby WHERE USER='KOWALSKI'
SELECT Osoby.Nazwisko, Osoby.Imie, Osoby.Zarobki FROM Osoby WHERE Osoby.Zarobki >1000
#
Które z poniższych stwierdzeń są prawdziwe:
należy starać się użyć najmniejszej możliwej liczby tabel
należy wszystkie związki jednoznaczne zastąpić związkami jednojednoznacznymi
w tabeli nie powinno być żadnych niekontrolowanych redundancji
jedyną poprawną, nietrywialną zależnością funkcyjną jest zależność do klucza
#
Użycie klauzuli PRIMARY KEY w deklaracji pola tabeli instrukcji CREATE TABLE powoduje, że:
w żadnym innym polu tej tabeli nie może zostać użyta klauzula PRIMARY KEY
w polu tym nie może wystąpić wartość ?NULL?
na tej kolumnie zostanie automatycznie założony indeks
to pole staje się kluczem głównym
#
Wśród więzów spójności encji znajdują się:
więzy klucza jednoznacznego
więzy NOT NULL
więzy CHECK
więzy klucza głównego,
#
Które z poniższych klauzul muszą wystąpić przed GROUP BY (zakładając, że chcemy, aby w ogóle
wystąpiły)?
INTO
FROM
WHERE
HAVING
#
Jaką wartość dla kolumny "Salary" zwróci to zapytanie?
SELECT ename, NVL(sal, 0) "Salary" FROM Emp WHERE Sal IS NULL ORDER BY ename;
0
spację
nic nie zwróci
null
#
Sortowania w bazie danych używa się przy:
budowie początkowego indeksu na B+-drzewie
wykonywaniu klauzuli UNION DISTINCT
wykonywaniu klauzuli ORDER BY
metodzie złączania Sort-Merge
#
Instrukcja FETCH jest używana w kursorze PL/SQL w celu:
pobrania zawartości rekordu ze źródła danych i usunięcia poprzedniego rekordu
pobrania zawartości rekordu ze źródła danych i przejścia do następnego rekordu
pobrania zawartości rekordu ze źródła danych
przejścia do następnego rekordu
#
Instrukcja FETCH jest używana w kursorze PL/SQL w celu:
pobrania zawartości rekordu ze źródła danych
usunięcia poprzedniego rekordu
pobrania zawartości rekordu ze źródła danych i przejścia do następnego rekordu
przejścia do następnego rekordu
#
Jaki będzie efekt wykonania następującego polecenia:
CREATE TABLE Osoby
(imie VARCHAR2(30) PRIMARY KEY, nazwisko VARCHAR2(30) PRIMARY KEY, zarobki NUMBER(7,2))
zostanie stworzona tabela Osoby, której kluczem głównym będzie pole imie
zostanie stworzona tabela Osoby, której kluczem głównym będzie pole nazwisko
zostanie stworzona tabela Osoby, której kluczem głównym będzie zbiór złożony z pól (imie, nazwisko)
przy próbie wykonania polecenia wystąpi błąd
#
Relacja R ma atrybut a. Jaka liczba może być wynikiem wykonania instrukcji SELECT Count(*) FROM
R WHERE a=a
zawsze tyle jaka jest liczebność relacji R
0
1
dowolna liczba naturalna
#
Wskazać poprawne zapytanie SQL (w Oracle) znajdujące stanowiska pracy występujące zarówno w
dziale 10 jak i w dziale 20.
SELECT DISTINCT job FROM emp WHERE deptno = 10 AND deptno = 20
SELECT DISTINCT job FROM emp WHERE deptno = 10 INTERSECT SELECT DISTINCT job FROM emp
WHERE deptno = 20
SELECT DISTINCT job FROM emp WHERE deptno = 10 UNION SELECT DISTINCT job FROM emp WHERE
deptno = 20
SELECT DISTINCT job FROM emp WHERE deptno = 10 OR deptno = 20
#
Ile warunków złączeń potrzeba w zapytaniu aby uniknąć złączenia kartezjańskiego?
w ogóle
liczba tabel plus jeden
liczba tabel minus jeden
liczba kolumn minus jeden
#
Wskazać poprawne zapytanie SQL (w Oracle) znajdujące stanowiska, na których średni zarobek
wynosi 3000 lub więcej.
SELECT job, AVG(sal) FROM emp HAVING AVG (sal) >= 3000 GROUP BY job
SELECT job, AVG(sal) FROM emp GROUP BY job WHERE AVG (sal) >= 3000
SELECT job, AVG(sal) FROM emp WHERE AVG (sal) >= 3000 GROUP BY job
SELECT job, AVG(sal) FROM emp GROUP BY job HAVING AVG (sal) >= 3000
#
Kursor w PL/SQL jest to:
rodzaj procedury
typ zmiennej
obszar roboczy używany do wykonania instrukcji SQL
narzędzie do podnoszenia wyjątków
#
Kursor w PL/SQL jest to:
rodzaj procedury
typ zmiennej
obszar roboczy używany do wykonania instrukcji SQL
narzędzie do podnoszenia wyjątków
#
Kursor w PL/SQL to:
obiekt o określonych właściwościach i metodach
rodzaj procedury
funkcja debuggera
typ zmiennej
#
Wskazać poprawne (w Oraclu) zapytanie SQL znajdujące średnie zarobki tylko tych departamentów,
które zatrudniają więcej niż trzech pracowników.
SELECT deptno, AVG(sal) FROM emp HAVING COUNT (*) > 3 GROUP BY deptno;
SELECT deptno, AVG(sal) FROM emp GROUP BY deptno HAVING COUNT (*) > 3;
SELECT deptno, AVG(sal) FROM emp GROUP BY deptno WHERE COUNT (*) > 3;
#
Wśród instrukcji występujących w bloku PL/SQL (między BEGIN a END) mogą się znaleźć:
instrukcja CREATE TABLE
instrukcja COMMIT
instrukcje SQL*Plus
deklaracje zmiennych
#
Czy istniejący indeks przyśpiesza wykonanie instrukcji COMMIT?
czasem
zawsze
nigdy
#
W którym z poniższych zapytań jest użyte złączenie zewnętrzne między dwiema tabelami (w
Oraclu)?
SELECT region.region_name, employee.salary FROM region, employee WHERE region.id =
employee.region_no(+);
SELECT region.region_name, employee.salary FROM region, employee WHERE employee.salary
BETWEEN region.avg_salary AND region.max_salary;
SELECT region.region_name, employeeinfo.last_name FROM employee region, employee employeeinfo
WHERE employeeinfo.id >= region.manager_id;
SELECT region.region_name, employee.salary FROM region, employee WHERE region.id =
employee.region_no;
#
Czy istniejący indeks przyśpiesza wykonanie instrukcji DELETE?
zawsze
czasem
nigdy
#
Jaka jest wartość wyrażenia NOT Null?
False
NULL
True
jest nieokreślone
#
Które metody dotyczą ochrony danych przed nieautoryzowanym dostępem?
wprowadzenie kont i haseł
słownik danych
kopia zapasowa
przyznawanie uprawnień do wykonywania operacji na obiektach
#
W którym z poniższych przypadków konieczne jest umieszczenie tekstu w apostrofach (w Oraclu)?
odwołanie do zmiennej typu CHAR w klauzuli WHERE
odwołanie do zmiennej numerycznej w klauzuli WHERE
wyświetlenie myślnika (-) między dwoma połączonymi kolumnami
wskazanie nazw kolumn w klauzuli SELECT
#
W wyzwalaczu T-SQL:
Mogą byc deklarowane zmienne.
Można uzywać instrukcji DML.
Można używać kursorów.
Można używać instrukcji ROLLBACK
#
Jakie znaczenie ma dziennik powtórzeń w serwerach baz danych?
Pozwala wycofywać transakcje.
Pozwala na odtworzenie stanu bazy danych z określonego punktu w czasie.
Pozwala zarządzać uprawnieniami.
Pozwala zachować spójność danych po awarii.
#
Zaznacz poprawne stwierdzenia dotyczące kopii zapasowych w MS SQL Server:
Kopia różnicowa zawiera zmiany miedzy podstawowym plikiem z danymi (mdf), a dodatkowym plikiem z
danymi (ndf).
Kopia różnicowa zawiera zmiany w bazie danych wykonane od ostatniej kopii pełnej.
Kopia różnicowa zawiera zmiany w bazie danych wykonane od poprzedniej kopii różnicowej.
Kopia różnicowa zawiera zmiany w bazie danych wykonane od ostatniej kopii dziennika transakcji.
#
Partycjonowanie tabel polega na:
Podziale tabeli na wiele części względem wartości w wierszach.
Podziale tabeli na schemat oraz zawartość.
Podziale tabeli na wiele plików dyskowych.
Podziale tabel na wiele częsci względem kolumn.
#
W funkcji (FUNCTION) PL/SQL:
Funkcje definiowane w bazie danych moga być użyte w poleceniach SQL.
Nazwa funkcji może zostać przeciążona.
Można użyć instrukcji DQL.
Nie można zadeklarować parametru typu OUT.
#
Jakie są podstawowe składowe diagramów związków encji?
związki
atrybuty
encje
#
Jaki rodzaj związku binarnego jest elementarnym związkiem w hierarchii encji?
związek jedno-jednoznaczny oznaczany symbolem jest.
związek weloznaczny
#
W nagłówku bloku anonimowego w PL/SQL może wystąpić :
TRY
DECLARE
BEGIN
CATCH
#
Wśród instrukcji występujących w bloku PL/SQL mogą się znaleźć:
instrukcja COMMIT
instrukcja DBMS_OUTPUT.PUT_LINE(‘Początek transakcji’),
instrukcja ROLLBACK.
instrukcja warunkowa
#
Które z następujących elementów: atrybuty, encje, związki mogą być argumentami związków?
atrybuty dekryptywne
encje
związki
#
Jak nazywa się notacja zapisu zapytań używana przy ich optymalizacji?
selekcja
algebra zapytań
#
Jakie są specjalne notacje zapytań?
QBE
rachunek relacyjny
algebra relacji
#
Jaki jest model podstawowej jednostki danych poziomu fizycznego bazy danych?
rekord składający się z pól określonych typów danych
tabela
#
Implementacja migawki prostej z opcją REFRESH FAST w głównej bazie danych wymaga utworzenia:
perspektywy
indeksu
dziennika migawki
#
Problem fantomów dotyczy sytuacji w
W trakcie działania transakcji inna transakcja wstawiła nowy rekord
W trakcie działanie transkacji inna usunęła rekord
Użytkownik zobaczyl rekord wprowadzony przez innego użytkownika, który nie został zatwierdzony przez
COMMIT
Rekord został w obrębie jednej transkacji wprowadzony (INSERT) i od razu usunięty (DELETE)
#
Która z instrukcji PL/SQL nie zakończy się błędem , przy założeniu że w tabelki DEPTNO są dwa
rekordy z wartościami Deptno IN (10,20) oraz prawidłowej deklaracji zmiennej v_deptno
SELECT deptno INTO v_deptno FROM dept WHERE deptno = 10;
SELECT deptno INTO v_deptno FROM dept WHERE deptno > 10;
SELECT deptno INTO v_deptno FROM dept WHERE deptno < 20;
SELECT deptno INTO v_deptno FROM dept WHERE deptno = 30;
#
Która z poniższych instrukcji PL/SQL prawidłowo podstawia wartość na zmienną (w tabeli EMP jest
14 rekordów) ?
SELECT ename INTO v_ename FROM emp;
V_ala Varchar2(10) := ‘Ala’;
SELECT ename INTO v_name FROM emp WHERE empno = 1234;
SELECT v_ename = ename FROM emp WHERE empno = 1234;
#
Użycie klauzuli UNIQUE w deklaracji pola instrukcji CREATE TABLE oznacza , że :
Wartości w tym polu nie mogą się powtarzać;
Na tej kolumnie zostanie automatycznie założony indeks
W żadnym innym polu tej tabeli nie można użyć klauzuli UNIQUE
W tym polu nie może pojawić się wartość NULL
#
Procedura T-SQL zwraca poprzez Result Set :
Procedura może zwrócić wynik tylko poprzez zmienna OUTPUT
Wszystkie wiersze ostatniej uruchomionej wewnątrz procedury instrukcji SELECT
Poprzez Result Set mogą być zwracane wyłącznie komunikaty o błędach
Ostatni wiersz ostatniej uruchomionej wewnątrz procedury instrukcji SELECT
#
Która z poniższych instrukcji jest poprawna w T-SQL , jeżeli zostały prawidłowo zadeklarowane
zmienne @empno i @deptno ?
SELECT @empno = 100;
SELECT @empno = @empno;
SELECT @empno = empno FROM emp;
SELECT @empno = Max(empno) FROM emp;
#
Dane są trzy tabele Klienci ( Id_Klienta, Imie , Nazwisko ), Produkty (Id_Produktu , Nazwa , Cena )
oraz Zakupy (Id_Klienta , Id_Produktu , Ilosc ) . Wskaż poprawne zapytania SQL znajdujące nazwy i
ceny produktów , które zostały zakupione przez przynajmniej jednego klienta .
SELECT DISTINCT Nazwa , Cena FROM Zakupy RIGHT OUTER JOIN Produkty ON Produkty.Id_Produktu =
Zakupy.Id_Produktu;
SELECT DISTINCT Nazwa , Cena FROM Produkty, Zakupy WHERE Produkty.Id_Produktu =
Zakupy.Id_Produktu;
SELECT DISTINCT Nazwa , Cena FROM Produkty, Klienci;
SELECT DISTINCT Nazwa , Cena FROM Produkty INNER JOIN Zakupy ON Produkty.Id_Produktu =
Zakupy.Id_Produktu;
#
Które z poniższych stwierdzeń jest prawidłowe w PL/SQL ?
Prawidłową konstrukcję pętli jest WHILE warunek BEGIN ciąg instrukcji END
Prawidłową konstrukcję pętli jest LOOP ciąg instrukcji END LOOP;
Prawidłową konstrukcję pętli jest FOR i IN x … y ciąg instrukcji END LOOP;
Prawidłową konstrukcję pętli jest WHILE warunek LOOP ciąg instrukcji END LOOP;
#
Wskaż poprawne zapytanie SQL (dialekt Oracle) znajdujące pracowników zarabiających minimalną
pensję na ich stanowiskach pracy :
SELECT ename , job , sal FROM emp WHERE (sal,job) IN (SELECT MIN(sal) , job FROM emp GROUP BY job
);
SELECT ename, job MIN(sal) FROM emp GROUP BY job;
SELECT ename, job, sal FROM emp WHERE sal = (SELECT MIN(sal) FROM emp GROUP BY job);
SELECT ename , job, sal FROM emp e WHERE sal = (SELECT MIN(sal) From emp WHERE job = e.job);
#
Co należy do zalet synonimów?
Są środkiem do realizacji niezależności fizycznej danych.
Ochraniają przed niepowołanym lub nieprawidłowym dostępem do danych.
Są środkiem do realizacji niezależności logicznej danych.
Umożliwiają zdefiniowanie poziomu zewnętrznego bazy danych.
#
Do zakładania blokad służą konstrukcje:
ROLLBACK
FOR UPDATE
LOCK TABLE
COMMIT
#
Treść pytaniaTabela (relacja) {Klucze - dużymi literami}. Dany schemat relacyjny Książka
(NAZWISKO_AUTORA, TYTUŁ, Imie_Autora, Kategoria) z zależnościami funkcyjnymi F = {
Nazwisko_Autora -> Imie_Autora Nazwisko_Autora, Tytuł -> Kategoria } jest w:
drugiej postaci normalnej
trzeciej postaci normalnej
pierwszej postaci normalnej
#
Poziom izolowanej transakcji można ustawić za pomocą instrukcji:
ALTER SESSION
SET ISOLATION LEVEL
CREATE TRANSACTION
#
Jakie są role zdefiniowane przez system:
CONNECT
RESOURCE
DBA
#
Wśród uprawnień przyznawanych w instrukcji GRANT występują:
ALTER
EXECUTE
COMMIT
#
Napisanie w SQL*Plus - describe tabela, spowoduje:
wyświetlenie schematu tabeli
utworzenie schematu tabeli
wyświetlenie tylko nazw kolumn w tabeli
#
Tabele PAŃSTWO i RZEKA ( i relacja przepływa przez) połączone są relacją
jeden - wiele
wiele - jeden
wiele- wiele
wymagającą dodatkowej tabeli łączącej
#
Klauzula "DECLARE Dane_Osoby Osoba%ROWTYPE" jest w PL/SQL:
deklatracją nowego rekordu
deklaracją nowego typu zmiennej
deklaracją zmiennej wraz z definicją jej typu
deklaracją zmiennej
#
Które z mechanizmów są używane w hurtowni danych:
transformacja STAR,
partycjonowanie tabeli.
histogram,
agregacje,
#
Które z mechanizmów są używane w hurtowni danych:
indeksy bitmapowe.
instrukcja ANALYZE,
wielowymiarowość,
schemat gwiazda.
#
Pakiet w PL/SQL
Składa się z części publicznej (specyfikacji pakietu) i prywatnej (ciała pakietu)
Deklaracja zmiennych może odbywać się w części publicznej pakietu
Deklaracja zmiennych może odbywać się w części prywatnej pakietu
#
Opcja sprawdzania użyta przy definiowaniu perspektywy ma znaczenie przy wykonywaniu:
instrukcji SELECT
instrukcje DELETE
instrukcji INSERT
instrukcji UPDATE
#
Co należy do zalet perspektyw?
Są środkiem do realizacji niezależności fizycznej danych.
Umożliwiają zdefiniowanie poziomu zewnętrznego bazy danych.
Ochraniają przed niepowołanym lub nieprawidłowym dostępem do danych.
Są środkiem do realizacji niezależności logicznej danych.
#
Tabela (relacja) {Klucze - dużymi literami}. Dany schemat relacyjny Pracownik (DOWOD_OSOBISTY,
Nazwisko, Adres_Prac, Nr_Działu, Nazwa_Działu), z zależnościami funkcyjnymi F = {
Dowod_Osobisty -> Nazwisko, Dowod_Osobisty -> Adres_Prac, Dowod_Osobisty -> Nr_Działu,
Nr_Działu -> Nazwa_Działu} jest w:
drugiej postaci normalnej
postaci B-C
pierwszej postaci normalnej
trzeciej postaci normalnej
#
Zdjęcie blokady założonej na tabeli następuje:
po wykonaniu ROLLBACK
po zapisaniu zmiany do bazy danych
po zmianie hasła
po wykonaniu COMMIT
#
Jak dostać się z zewnątrz do procedury Zatrudnij z parametrami IdPracownika, Nazwisko, Pensja,
NrDziału będącej w pakiecie ObsługaPracownika:
nie da się do niej dostać z zewnątrz
ObsługaPracownika.Zatrudnij(1000, "Kowalski", 2000, 10)
Zatrudnij(1000, 'Kowalski', 2000, 10)
GOTO ObsługaPracownika EXEC Zatrudnij(1000, 'Kowalski', 2000, 10)
#
Które własności wchodzą w skład aksjomatów wykonywania transakcji:
skalowalność
zabezpieczenie przed nieuprawnionym dostępem
wydajność
spójność
#
Z ilu tabel powinna się składać prosta znormalizowana baza zawierająca informacje o częściach,
urządzeniach i przynależności "wiele do wielu" między nimi:
2
4
1
3
#
Która z poniższych instrukcij prawidłowo utworzy tabelę tymczasową w T-SQL
CREATE TABLE #Ala (Ala Int);
CREATE TABLE ##Ala (Ala Int);
SELECT ename, sal INTO #Ala FROM emp;
CREATE TABLE Ala (Ala Int);
#
W procedurze (PROCEDURE) PL/SQL
Deklarując parametr procedury nie podaje się jego typu
Jedynym typem parametru jest IN OUT
Deklarując typ parametru procedury nie podaje się jego rozmiaru
Nazwa procedury może zostać przeciążona
#
Która z poniższych instrukcij jest składniowo poprawna w T-SQL
IF 1 = 1 PRINT 'OK.';
IF NULL = NULL PRINT 'OK';
IF @empno = @empno PRINT 'OK';
WHEN 1 = 1 THEN Print 'OK';
#
Zaznacz poprawne stwierdzenia dotyczące przestrzeni tabel (Oracle) oraz grup plików (MS SQL):
Przestrzeń tabel ma zawsze określony dokładnie jeden plik dyskowy
Grupie plików odpowiada zawsze dokładnie jeden fizyczny dysk twardy
Do przestrzeni tabel można przypisać wiele plików dyskowych
Do przestrzeni tabel można przydzielić określone tabele bazy danych
#
Błąd w PL/SQL
który wystąpił w bloku pomiedzy BEGIN i END jest obsługiwany w sekcji EXCEPTION tego samego bloku
który wystąpił w sekcij deklaracji bloku jest przekazywany do bloku nadrzędnego
który wystąpił w bloku pomiedzy BEGIN i END jest przekazywany do bloku nadrzędnego
który wystąpił w sekcji deklaraji bloku jest obsługiwany w sekcji EXCEPTION tego samego bloku
#
Wskazać poprawne zapytanie SQL (dialekt ORACLE) znajdujące departamenty zatrudniające
powyżej trzech pracowników
SELECT deptno, COUNT(*) FROM emp WHERE COUNT (*) > 3 GROUP BY deptno;
SELECT deptno, COUNT(*) FROM emp GROUP BY deptno HAVING COUNT (*) > 3;
SELECT deptno, COUNT(*) FROM emp GROUP BY deptno WHERE COUNT (*) > 3;
SELECT deptno, job, COUNT(*) FROM emp GROUP BY deptno, job HAVING COUNT(*) > 3;
#
Które z ponizszych sformułowań jest prawdziwe
Kursor umożliwia nawigację po zestawie rekordów odczytanych z bazy
Kursor umożliwia odczytanie wielu wierszy z bazy
Kursor jest buforem przechowującym rekordy odczytane z bazy
Kursor umożliwia podstawienie na zmienne wartości wszystkich pól z rekordu odczytanego z bazy
#
Dane są trzy tabele Klienci(Id_Klienta, Imie, Nazwisko), Produkty(Id_Produktu, Nazwa, Cena) oraz
Zakupy(Id_Klienta, Id_Produktu, Ilosc). Wskaż poprawne zapytania SQL znajdujące imiona i
nazwiska klientów, którzy zakupili co najmniej jeden produkt.
SELECT DISTINCT Imie, Nazwisko FROM Klienci, Zakupy;
SELECT DITINCT Imie, Nazwisko FROM Klienci LEFT OUTER JOIN Zakupy ON Klienci.Id_Klienta =
Zakupy.Id_Klienta;
SELECT DISTINCT Imie, Nazwisko FROM Klienci, Produkty, WHERE Klienci.Id_Klienta =
Produkty.Id_Produktu;
SELECT DISTINCT Imie, Nazwisko FROM Klienci, Zakupy , Produkty, WHERE Klienci.Id_Klienta =
Zakupy.Id_Klienta AND Produkty.Id_Produktu = Zakupy.Id_Produktu;
#
Obiekt bedący generatorem jednoznacznych numerów w Oracle tworzony jest przy pomocy
polecenia:
CREATE AUTONUMBER
CREATE SUCCESSION
CREATE SEQUENCE
CREATE AUTOCOUNTER
#
Która z poniżych instrukcji w SQL Server jest składniowo poprawna (zostanie wykonana)
SELECT empno FROM emp WHERE empno = empno;
SELECT 1 FROM emp WHERE 1 <> 1;
SELECT 1 FROM emp WHERE 1 = 1;
SELECT empno FROM emp WHERE 1 = 'Ala';
#
Deklaracja zmiennej w T-SQL
po jednej dyrektywie DECLARE może pojawić się kilka nazw zmiennych wraz z typami danych,
rozdzielonych przecinkami
może pojawić się w dowolnym miejscu bloku po dyrektywie DECLARE
może wystąpić wyłącznie w wydzielonej sekcji DECLARE
musi zawierać określenie typu danych zmiennej
#
Więzy spójności mogą być definiowane w nastepujących instrukcjach:
ALTER USER
UPDATE
CREATE TABLE
DROP TABLE
#
Polecenia ROLLBACK i COMMIT dotyczą poleceń SQL
wszystkich poleceń SQL zmieniających zawartość tabel
tylko UPDATE, SELECT, DELETE
tylko INSERT, SELECT, DELETE
tylko INSERT, UPDATE, SELECT
#
Zaznacz poprawne stwierdzenia dotyczące wielowersyjności w bazach danych:
Poziom izolacji SERILIZABLE w MS SQL Server jest realizowany przy pomocy wielowersyjności.
Oracle realizuje poziom izolacji READ COMMITTED przy pomocy wielowersyjności.
Oracle oferuje poziom izolacji READ ONLY oparty ma mechanizmie wielowersyjności.
Przy zarządzaniu współbieżnością opartym na wielowersyjności procesy odczytujące mogą działać bez
zakładania blokad.
#
Które z poniższych słów moga być nagłówkami sekcji w bloku anonimowym PL/SQL
BEGIN
EXCEPTION
TRY
DECLARE
#
W wyzwalaczu T-SQL można aktualizować dane:
Z poziomu wyzwalacza nie wolno zmieniać danych w żadnych tabelach
Tylko w tabelach INSERTED i DELETED
Tylko w tabeli, z którą jest związany wyzwalacz
We wszystkich tabelach, poza INSERTED i DELETED
#
Które z poniższych instrukcji może zostać użyta w bloku PL/SQL?
SELECT
ALTER
DROP
COMMIT
#
Które z poniższych stwierdzeń jest prawdziwe w PL/SQL?
W instrukcji warunkowej polecenia po THEN wykonywane są wówczas, gdy warunek przyjmuje wartość
TRUE
Jeżeli w instrukcji warunkwej wartością warunku jest NULL, wówczas nie zostaną wykonane instrukcje po
THEN ani po ELSE.
W instrukcji warunkowej polecenie po ELSE wykonywane są wówczas, gdy warunek przyjmuje wartość
FALSE lub NULL
Jeżeli w instrukcji warunkowej wartością warunku jest NULL, wówczas zostaną wykonane instrukcje po
THEN
#
Instrukacja MERGE
Jest zaimplementowana tylko w PL/SQL
Pozwala zrezygnować z używania instrukcji INSERT i UPDATE
Opiera się na koncepji porównania rekordów w źródle danych (tabeli lub widoku) i obiekcie docelowym
(tabeli lub widoku)
Jest zaimplementowana zarówno w T-SQL jak i PL/SQL
#
Wyzwalcz INSTEAD OF
działa identycznie jak wyzwalacz tybu BEFORE
może być stworzony, any umożliwić wykonanie instrukcji DML na perspektywie
Jest obiektem tworzonym przez polecenie CREATE
może być tworzony na perspektywach
#
Wyzwalcz INSTEAD OF
działa identycznie jak wyzwalacz tybu BEFORE
może być stworzony, any umożliwić wykonanie instrukcji DML na perspektywie
Jest obiektem tworzonym przez polecenie CREATE
może być tworzony na perspektywach
#
Problem niepowtarzalnego odczytu polega na tym, że:
Użytkownik może odczytać dane zmienione przez innego użytkownika, które nie zostały zatwierdzone
przez COMMIT
W dwóch różnych transakcjach tego samego użytkownika odczyt tego samego pola daje różne wyniki
W dwóch równolegle działających tranzakcjach odczyt tego samego pola daje różne wyniki
W dwóch punktach w czasie trwania tej samej transakcji odczy tego samego pola daje różne wyniki
#
Dane są trzy tabele Klienci(Id_Klienta, Imie, Nazwisko), Produkty(Id_Produktu, Nazwa, Cena) oraz
Zakupy(Id_Klienta, Id_Produktu, Ilosc). Wskaż poprawne zapytanie SQL znajdujące imiona i
nazwiska klientów, którzy zakupili co najmniej jeden produkt.
SELECT DISTINCT Imie, Nazwisko FROM Klienci, Zakupy WHERE Klienci.Id_Klienta = Zakupy.Id_Klienta;
SELECT DISTINCT Imie, Nazwisko FROM Klienci LEFT OUTER JOIN Zakupy ON Klienci.Id_Klienta =
Zakupy.Id_Klienta;
SELECT Imie, Nazwisko FROM Klienci;
SELECT DISTINCT Imie, Nazwisko FROM Klienci, Zakupy, Produkty WHERE Klienci.Id_Klienta =
Zakupy.Id_Klienta AND Produkty.Id_Produktu = Zakupy.Id_Produktu;
#
W wyzwalaczu T-SQL
Można użwyać instrukcji ROLLBACK
Mogą być deklarowane zmienne
Można używać instrukcji DML
Można używać kursorów
#
Które z poniższych stwierdzeń dotyczących perspektyw są prawdziwe
używając perspektyw możemy w ogóle nie dbać o inne sposoby ochrony danych
dzięki perspektywom każdy użytkownik bazy danych może mieć dostęp tylko do danych dotyczących jego
działalności w firmie
wiersze zwracane przez perspektywy są odczytywane z tabel na żądanie
wiersze zwracane przez perspektywy są przechowywane w tabelach bazy danych
#
Które z wymienionych instrukcji PL/SQL prawidłowo zadeklarują zmienną (zmienne) w PL/SQL?
DECLARE v_ile INT := 0;
DECLARE v_ala Varchar2(10), v_ile Int, v_data Date;
BEGIN
...
DECLARE
v_ala; v_ola; ,
v_ula Varchar2(10);
BEGIN
...
DECLARE v_dane emp%ROWTYPE
#
Które z niżej wymienionych więzów są więzami spójności referencyjnej
Default
Unique
Refernces
Not NULL
#
Które z poniższych ciągów znaków mogą być prawidłowymi nazwami zmiennych w PL/SQL?
"alamakota"
Lala ma psa
SELECT5
V_SELECT
#
Zakładanie indeksów jest zalecane na:
Kolumnach, po których sortujemy
Kolumnach często występujących w WHERE
kolumnach, w których wartości są często aktualizowane przez instrukcje UPDATE
kluczach obcych
#
W których z wymienionych sytuacji mówimy o problemie fantomów?
Użytkownik zobaczył rekord wprowadzony przez innego użytkownika, który nie został zatwierdzony przez
COMMIT
Rekord został w obrębie jednej transakcji wprowadzony (INSERT) i od razu usunięty (DELETE)
W trakcie działania transakcji inna transakcja wykonała INSERT
W trakcie działania transakcji inna transakcja wykonała DELETE
#
Które z wymienionych mechanizmów są metodami zarządzania współbieżnością?
blokady
denormalizacja
role
wielowersyjność
1 komentarz
#
Zaznacz poprawne stwierdzenia dotyczące kosztu planu wykonania zapytania
Jest wyświetlany w sekundach
Zależy od kosztów operacji wejścia / wyjścia oraz procesora
Może być różny w zależności czy jest to pierwsze uruchomienie zapytania czy kolejne (zapytanie korzysta
z bufora)
Może być inny, jeśli zapytanie będziemy testować na innym komputerze
#
Które z wymienionych instrukcji PL/SQL prawidłowo zadeklarują zmienną (zmienne) w PL/SQL ?
DECLARE
v_ala Varchar2(10);
v_ile Int; v_data Date;
BEGIN
...
DECLARE v_ile INT:=0;
DECLARE v_ile sal%TYPE;
DECLARE v_ile emp.sal%TYPE;
1 komentarz
#
W których z wymienionych sytuacji mówimy o problemie fantomów?
Użytkownik zobaczył rekord wprowadzony przez innego użytkownika, który nie został zatwierdzony przez
COMMIT
Rekord został w obrębie jednej transakcji wprowadzony (INSERT) i od razu usunięty (DELETE)
W trakcie działania transakcji inna transakcja wykonała INSERT
W trakcie działania transakcji inna transakcja wykonała DELETE
#
Jaką wartość dla kolumny Salary zwróci to zapytanie?
SELECT ename, NVL(sal, 0) "Salary" FROM Emp WHERE Sal IS NULL ORDER BY ename;```
0
spację
nic nie zwróci
null
#
Hurtownia danych jest:
zróżnicowana czasowo
zorientowana na działanie
zorientowana na temat
ulotna
znormalizowana
zintegrowana
nieulotna
#
Zróżnicowanie czasowe w definicji hurtowni danych oznacza, że
zbierane dane dotyczą tematu, a nie działań
dane, raz umieszczone w hurtowni, zazwyczaj pozostają niezmienione
dane są jednolite
gromadzone są dane historyczne i każdy fakt opatrzony jest stemplem czasowym
#
Nieulotność w definicji hurtowni danych oznacza, że
gromadzone są dane historyczne i każdy fakt opatrzony jest stemplem czasowym
zbierane dane dotyczą tematu, a nie działań
dane, raz umieszczone w hurtowni, zazwyczaj pozostają nie zmienione
dane są jednolite
0
You can add this document to your study collection(s)
Sign in Available only to authorized usersYou can add this document to your saved list
Sign in Available only to authorized users(For complaints, use another form )