1.Łatwy
Czym jest klucz główny (primary key)?
- AKolumna lub zestaw kolumn jednoznacznie identyfikujący każdy wiersz
- BKolumna, która może zawierać zduplikowane wartości, ale nigdy nie może zawierać NULL
- CHasło do bazy danych
- DPierwsza kolumna każdej tabeli
2.Łatwy
Co robi ROLLBACK w transakcji?
- APowtarza ostatnią instrukcję
- BUsuwa tabelę
- CCofa zmiany dokonane od początku transakcji
- DTrwale zapisuje wszystkie zmiany transakcji na dysku
3.Łatwy
Co gwarantuje ograniczenie UNIQUE nałożone na kolumnę?
- AŻadne dwa wiersze nie mają tej samej wartości różnej od NULL w tej kolumnie
- BWartości w kolumnie są posortowane
- CKolumny nie można zmienić po wstawieniu
- DKolumna automatycznie staje się kluczem głównym tabeli
4.Średni
Które zapytanie wypisuje klientów, którzy nigdy nie złożyli zamówienia?
- ASELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
- BSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id = NULL
- CSELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
- DSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
5.Średni
Tabela ma wiersze, w których col jest NULL. Które wiersze zwraca WHERE col = NULL?
- AŻadnych wierszy, bo wynik porównania jest nieznany
- BBłąd w każdej bazie danych
- CTylko wiersze, w których col jest NULL, tak jak w IS NULL
- DWszystkie wiersze tabeli
6.Średni
Kiedy WHERE EXISTS (podzapytanie) jest prawdziwe dla wiersza?
- AGdy podzapytanie zwraca liczbę większą od zera
- BGdy podzapytanie nie zwraca wartości NULL
- CGdy podzapytanie zwraca co najmniej jeden wiersz
- DGdy podzapytanie zwraca dokładnie jeden wiersz
7.Trudny
Podzapytanie skorelowane to takie, które:
- AUżywa wyłącznie funkcji agregujących
- BWykonuje się tylko raz przed zapytaniem zewnętrznym i buforuje wynik dla każdego wiersza
- CŁączy dwie tabele za pomocą klucza obcego
- DOdwołuje się do kolumn zapytania zewnętrznego i jest obliczane dla każdego jego wiersza
8.Trudny
Tabela enrolment(student_id, course_id, student_name, grade) ma klucz (student_id, course_id). Którą postać normalną narusza?
- APierwszą postać normalną, bo kolumna grade nie zawiera wartości atomowych
- BTylko trzecią postać normalną, bo grade zależy od student_name
- CŻadnej, jest w BCNF
- DDrugą postać normalną, bo student_name zależy tylko od student_id
Klucz odpowiedzi
- 1. A · Kolumna lub zestaw kolumn jednoznacznie identyfikujący każdy wiersz
- 2. C · Cofa zmiany dokonane od początku transakcji
- 3. A · Żadne dwa wiersze nie mają tej samej wartości różnej od NULL w tej kolumnie
- 4. A · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
- 5. A · Żadnych wierszy, bo wynik porównania jest nieznany
- 6. C · Gdy podzapytanie zwraca co najmniej jeden wiersz
- 7. D · Odwołuje się do kolumn zapytania zewnętrznego i jest obliczane dla każdego jego wiersza
- 8. D · Drugą postać normalną, bo student_name zależy tylko od student_id
Pełne rozwiązania krok po kroku: ćwicz ten temat na examproblems.com.