Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --7
- Cechy transakcji: spójność, niepodzielność, izolacja, trwałość.
- Spojnosc - dane sa zgodne z otaczajaca rzeczywistoscia
- Niepodzielnosc - transakcja dziala jako calosc, jezeli jest jeden blad TO cala transakcja jest cofana
- Izolacja - transkacja nie ma wplywu na pozostale transakcje
- Trwalosc - transakcja jest trwala
- --6
- Etapy przetwarzania zapytań:
- Analiza składniowa - zapytanie jest analizowane pod wzgledem poprawnosci polecenia
- Sprawdzenie spójnosci - sprawdzane jest czy zapytanie zwroci cokolwiek
- Optymalizacja zapytania - zapytanie jest optymalizowane (optymalizacja statyczna lub dynamiczna, kosztowa lub regułowa)
- Wykonanie zapytania
- Zwrot wyników lub kom. bledow
- --1
- CREATE VIEW perspektywa1 AS
- SELECT m.id_mech, m.imie, m.nazwisko, m.data_zatrud, m.id_spec
- FROM mechanik m, naprawa n, samochody s
- WHERE m.id_mech = n.id_mech AND n.id_sam = s.id_sam
- AND s.KRAJ_PROD = (
- SELECT s.kraj_prod
- FROM samochody s
- WHERE s.poj_sil > (
- SELECT AVG(poj_sil) FROM samochody)
- GROUP BY (s.kraj_prod)
- ORDER BY COUNT(s.id_sam)
- FETCH FIRST ROW only);
- --2
- SELECT m.nazwisko, m.imie, s.nazwa
- FROM mechanik m, specjalnosc1 s, naprawa n
- WHERE m.id_mech = n.id_mech AND n.data IN (
- SELECT n.data
- FROM naprawa n, samochody s
- WHERE n.id_sam = s.id_sam AND s.rok_prod = (
- SELECT MIN(rok_prod) FROM samochody))
- AND s.id_spec = m.id_spec;
- --3 ilosc napraw gdzie najmniej czesci i mechanik o najdluzszym stazu
- SELECT COUNT(COUNT(n.id_nap))
- FROM naprawa n, mechanik m, cz_napraw cz
- WHERE n.id_mech = m.id_mech AND m.data_zatrud = (
- SELECT MIN(data_zatrud) FROM mechanik)
- AND cz.id_nap IN (
- SELECT cz.id_nap
- FROM cz_napraw cz
- WHERE cz.id_nap = n.id_nap
- GROUP BY cz.id_nap
- HAVING COUNT(cz.id_czesci) = (
- SELECT MIN(cz.id_czesci)
- FROM cz_napraw cz
- WHERE cz.id_nap = n.id_nap
- GROUP BY cz.id_nap))
- GROUP BY n.id_nap;
- --4
- SELECT s.marka, s.model
- FROM samochody s
- WHERE s.poj_sil > (
- SELECT AVG(poj_sil)
- FROM samochody
- WHERE marka = s.marka);
- --5
- UPDATE magazyn
- SET cena = cena * 1.1
- WHERE id_czesci IN (
- SELECT cz.id_czesci
- FROM cz_napraw cz, naprawa n
- WHERE cz.id_nap = n.id_nap AND n.id_mech IN (
- SELECT n.id_mech
- FROM naprawa n, samochody s
- WHERE n.id_sam = s.id_sam AND s.kraj_prod IN (
- SELECT s.kraj_prod
- FROM samochody s
- WHERE s.marka = 'OPEL')
- GROUP BY n.id_mech
- HAVING COUNT(n.id_nap) = (
- SELECT MAX(COUNT(n.id_nap))
- FROM naprawa n, samochody s
- WHERE n.id_sam = s.id_sam AND s.kraj_prod IN (
- SELECT s.kraj_prod
- FROM samochody s
- WHERE s.marka = 'OPEL')
- GROUP BY n.id_mech)));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement