374 5 JI-ZYK BAZ DANYCH SQL
Ćwiczenie 5.10.2. W ćwiczeniu 4.4.3 została zdefiniowana relacja:
R«1(klasa, pklasa, wiel)
która opisuje sposób powiązania klas w ODL. Krotka (c, d, m) występuje w tej relacji wówczas, gdy między klasami c a d /.ostał określony pewien związek. Gdy związek jest wielowartościowy, wówczas wartością m jest 'wiol', a gdy związek ten jest jednowartościowy, wówczas wartością w jest 'jed'. W ćwiczeniu 4.4.3 wspominaliśmy również, że relację Rei można interpretować jako graf, którego wierzchołkami są klasy, a krawędzie, etykietowane jako m, istnieją między wierzchołkami carf, jeśli w relacji Rei występuje krotka (c, d, m).
a) Należy utworzyć rekurencyjne zapytanie SQL3, w wyniku którego otrzymuje się pary (c, d) takie, że w grafie opisanym powyżej istnieje ścieżka od c do d.
*b) Należy utworzyć rekurencyjne zapytanie $QL3, w wyniku którego otrzymuje się pary' (c, d) takie, że istnieje ścieżka między c a d, której wszystkie odcinki są etykietowane jako jed.
*!c) Należy utworzyć rekurencyjne zapylanie SQL3, w wyniku którego otrzymuje się pary (c, d) takie, że istnieje ścieżka między c a d, na której co najmniej jeden łuk ma etykietę wiel.
d) Należy- utworzyć rekurencyjne zapytanie SQL3, w' wyniku którego otrzymuje się pary (c, d) takie, że istnieje ścieżka między c a d, ale nie ma takiej ścieżki między nimi, na której wszystkie luki miałyby etykiety jca.
!e) Należy utworzyć rekurencyjne zapylanie SQL3, w wyniku którego otrzymuje się pary (c, d) takie, że istnieje ścieżka między cud oraz łuki mają etykiety na przemian jed i wiel.
0 Należy utworzyć rekurencyjne zapylanie SQL3, w wyniku którego otrzy-muje się pary- (c, d) takie, że istnieją ścieżki między rarf oraz. od d do c, i wszystkie hiki na tych ścieżkach mają etykiety jed.
*!Ć\viczenie 5.10.3. Zmodyfikujmy obliczenie relacji Dostępne z rys. 5.23, tak aby występowała tam rekurencja nieliniowa. W tym celu zamieniamy wiersze od 6) do 8) na następujące:
6) (SELECT Pierwsza.z, Druga.do
7) FRCM Dostępne AS Pierwsza, Dostępne AS Druga
8) WHERE Pierwsza.do = Druga.z)
gdzie występują dwie kopie relacji Dostępne: Pierwsza i Druga, których złączenie generuje nowe pary. Jak długie będą ścieżki dołączane do relacji dostępne w Mym kroku obliczania punktu stałego?
♦ SQL: Język SQI. jest powszechnie stosowanym językiem zapytań w relacyjnych systemach baz danych. Największy' wpływ na systemy komercyjne ma standard $QL2 z 1997 r. Oczekuje się wkrótce ukończenia prac nad nowym standardem $QL3.
♦ Zapytania (ąueries) Select-From-Where: Najpopularniejsze zapytar w SQL ma postać select-from-where. Umożliwia ono utworzenie il czynu kartezjańskiego kilku relacji (klauzula FROM), określenie, c krotki spełniają warunek logiczny (klauzula WHERE) i utworzer krotek o zadanej postaci (klauzula SELECT).
♦ Podzapytania {subąueries): Zapytania typu select-from-where moż stosować także jako podzapytania w klauzuli WHERE innego zapytań Można także sprawdzać, czy wyniki podzapytań spełniają warur sformułowane za pomocą operatorów F.XT5TS, IN, all lub ANY.
♦ Zastosowanie działań teoriomnogościowych do relacji (set operat i o on relalions): Można uzyskiwać wyniki sumy, przecięcia i różni teoriomnogościowej, łącząc relacje lub wyniki podzapytań odpowie nio spójnikami: UNION, INTERSECT lub EXCEPT.
♦ Model wielozhioru dla relacji (the bag model of relalions): W sysi mach $QL relacje są postrzegane jako wielozbiory krotek, a nie ja zbiory krotek. Można jednak wymuszać usuwanie kopii krotek, kor* stając ze słowa kluczowego DISTINCT. Natomiast, gdy użyjemy sl wa kluczowego ALL, wynik będzie wielozbiorem w tych sytuacjac w których wielozbiór nie jest standardem.
♦ Agregacje (aggregations): Wartości występujące w jednej kolunn relacji można podsumowywać (agregować), korzystając z jedne z następujących słów kluczowych: SUM, AVG (wartość średnia). Ml MAX lub COUNT. Zanim wykona się agregację, można łączyć kroi w grupy, używając słowa kluczowego GROUP 3Y. Niektóre gru można wyeliminować, stosując słowo kluczowe HAVING.
♦ Instrukcje modyfikujące (tnodfication statements): W SQL jest d puszczalna zmiana krotek w relacjach. Możemy wprowadzać no\ krotki do relacji, korzystając z instrukcji INSERT, usuwać krotki z i lacji za pomocą DELETE oraz zmieniać wartości w krotkach, stosuj UPDATE.
♦ Definicja danych {data definition): W SQL istnieją specjalne poleceń które służą do deklarowania elementów schematu bazy danych, lnstri cja CREATE TABLE służy do deklarowania schematu przechowywał relacji (nazywanej w SQL tabelą), spccy fi kując atrybuty oraz ich ty[ Można także używać polecenia CREATE DOMAIN, które umożliw ia c finiowanie nazw typów danych. Nazwy te potem można slosow w deklaracjach schematów relacji. W tych instrukcjach CREATE moż także określać domniemane wartości atrybutów oraz dziedzin.
♦ Zmiany schematów (altering schemas): Właściwości schematu moż zmieniać, korzystając z instrukcji ALTER. Umożliwia ona dodanie 1 usunięcie atrybutu ze schematu relacji lub zmianę wartości domn manych związanych z atrybutami lub dziedzinami. Można także 1< rzystać z instrukcji DROP, która służy do usuwania elementów scł matu bazy takich jak relacje lub dziedziny.