Bazy danych - Wkuwanko.pl

Transkrypt

Bazy danych - Wkuwanko.pl
Plan wykładu
• Algebra relacji
Bazy danych
–
–
–
–
Wykład 8: Algebra relacji. SQL - cd
operacje teoriomnogo ciowe
rzutowanie
selekcja
przemianowanie
• SQL
– DML
– perspektywy
Małgorzata Kr towska
Katedra Oprogramowania
e-mail: [email protected]
Bazy danych (studia dzienne)
Poj cie algebry relacji
Operacje w algebrze relacji
• Działania algebry zbiorów: suma,przeci cie i ró nica
zastosowane do relacji
• Algebra relacji obejmuje metody tworzenia nowych, bardziej
skomplikowanych relacji na podstawie innego zbioru relacji.
Wyró niamy tutaj:
• Operacje zaw ania relacji: selekcja eliminuje pewne wiersze a
rzutowanie niektóre kolumny
– wyra enie(operand) - relacja, przedstawiona w postaci nazwy relacji
lub jej krotek
– operatory - ró nego typu procedury, które pozwalaj na uzyskanie
nowych relacji
• Operacje komponowanie krotek pochodz cych z ró nych relacji,
np. iloczyn kartezja ski
• Algebra relacji jest podstawowym przykładem j zyka zapyta .
Bazy danych (studia dzienne)
2
• Operacje przemianowania, które nie zmieniaj krotek relacji, ale
jej schemat, tzn. nazwy atrybutów lub/i nazw relacji
3
Bazy danych (studia dzienne)
4
Suma zbiorów
Przeci cie zbiorów
• R∪S - suma zbiorów R i S jest zbiorem elementów, z których
ka dy nale y do zbioru R lub do zbioru S, lub do obu
równocze nie. Je li jaki element nale y do obu zbiorów, w
sumie tych zbiorów wyst puje tylko raz.
• R∩S - przeci cie zbiorów R i S jest takim zbiorem, do którego
nale tylko te elementy, które wyst puj zarówno w zbiorze S
jak i w R.
• Odpowiednik w SQL
• Odpowiednik w SQL:
select job from emp
where deptno=10
intersect
select job from emp
where deptno=30;
select job from emp
where deptno=10
union
select job from emp
where deptno=30;
union all - nie powoduje eliminacji duplikatów
Bazy danych (studia dzienne)
5
tylko te
• Order by umieszcza si na ko cu ostatniego polecenia SELECT
• Podajemy numer kolumny według, której chcemy sortowa ,
poniewa na listach wyboru mog wyst powa kolumny o
ró nych nazwach
• Odpowiednik w SQL:
select job from emp
where deptno=10
minus
select job from emp
where deptno=30;
Bazy danych (studia dzienne)
6
Order by w zapytaniach z operatorami
zbiorowymi
Ró nica zbiorów
• R-S - ró nica zbiorów R i S to zbiór, do którego nale
elementy ze zbioru R, które nie nale do S.
Bazy danych (studia dzienne)
SELECT empno, ename, sal
from emp
union
select id, name, salary
from emp_history
order by 2;
7
Bazy danych (studia dzienne)
8
Własno ci operacji na zbiorach
Rzutowanie
• na listach wyboru składników musi wyst powa taka sama liczba
kolumn
• kolumny wyst puj ce na tych samych pozycjach na listach
musz by tego samego typu
• w wyniku zapytania zostaj wyeliminowane powtarzaj ce si
wiersze (wyj tek UNION ALL). Nie mo na stosowa DISTINCT
• nagłówki kolumn wyników zapytania s tworzone na podstawie
pierwszego rozkazu SELECT
• ORDER BY umieszcza si tylko raz na ko cu całego zło onego
zapytania
• operatory na zbiorach mog wyst powa w podzapytaniach
Bazy danych (studia dzienne)
• R1:=ProjL(R2)
• L - jest list atrybutów z relacji R2
• relacja R1 powstaje przez przej cie po wszystkich krotkach
relacji R2 i wybór wszystkich atrybutów b d cych na li cie L (z
zachowaniem kolejno ci)
• Je eli wystepuj duplikaty krotek s one usuwane.
9
Bazy danych (studia dzienne)
Selekcja
Iloczyn kartezja ski
• R1 := SELECTC (R2)
• R3 := R1 * R2
– C jest warunkiem, który odnosi si do atrybutów relacji R
– R1 składa si z tych wszystkich krotek relacji R2, które spełniaj
warunek C.
Bazy danych (studia dzienne)
10
– ka da krotka k1 relacji R1 jest łaczona z ka d krotk k2 relacji R2
– zł czenie t1t2 jest krotk relacji R3
– schemat relacji R3 składa si z atrybutów relacji R1 i nast pnie
atrybutów relacji R2
– w przypadku gdy atrybuty maj takie same nazwy “A” w relacjach
R1 i R2 nale y u ywa : R1.A i R2.A
11
Bazy danych (studia dzienne)
12
Zł czenie naturalne
Zł czenie naturalne
• R3 := R1 JOIN R2
• Zł czenie relacji przez poł czenie par krotek, które w jaki
sposób sobie odpowiadaj :
• Odpowiednik SQL: Wypisa informacje o pracownikach ł cznie z
nazwami ich departamentów.
– poł czenie w pary tych krotek, które maj takie same warto ci
pewnych atrybutów o tych samych nazwach
– krotka zł czenia zawiera tylko jedn kopi powtarzaj cych si
warto ci
R1
select * from emp, dept
where emp.deptno=dept.deptno;
(lub od wersji Oracle 9i)
select *
from emp NATURAL JOIN dept;
select *
from emp JOIN dept USING (deptno);
R2
r1
r2
Krotka zł czenia (r3)
Bazy danych (studia dzienne)
13
Bazy danych (studia dzienne)
Zł czenie teta
14
Przykład
• R3:=R1 JOINC R2
• Relacja R3 jest utworzona w nast puj cy sposób:
• Wypisz nazwiska wszystkich pracowników i nazwiska ich
kierowników.
– utworzy iloczyn kartezja ski relacji R1 i R2
– z iloczynu kartezja skiego wybra tylko te krotki, dla których
warunek C jest spełniony
Select prac.ename, kier.ename as mgr
from emp prac, emp kier
where prac.mgr=kier.empno;
• Odpowiednik SQL:
• R3:=emp JOINsal between losal and hisal salgrade
lub (od wersji Oracle 9i)
• select * from emp, salgrade
Select prac.ename, kier.ename as mgr
from emp prac JOIN emp kier ON prac.mgr=kier.empno;
where emp.sal between losal and hisal;
Bazy danych (studia dzienne)
15
Bazy danych (studia dzienne)
16
Przemianowanie
Tworzenie zło onych wyra e
• Przemianowanie okre la nowy schemat relacji : nowe nazwy dla
atrybutów relacji
• R1 := RENAMER1(A1,…,An)(R2) - tworzy relacj R1 z atrybutami
A1,…,An i tymi samymi krotkami jak w relacji R2.
• Wersja uproszczona zapisu: R1(A1,…,An) := R2.
• Tworzenie dowolnie zło onych wyra e , w których ustalanie
kolejno ci wykonywania poszcególnych operacji jest okre lane
poprzez wykorzystanie nawiasów i znajmo priorytetów operacji
• 3 notacje:
– sekwencje odpowiednich przypisa
– wyra enia z wieloma operatorami
– drzewa wyra e
• Odpowiednik SQL: R1(numer_d nazwa_d, miejsce):=dept
select deptno as numer_d, dname as nazwa_d, loc as miejsce
from dept;
Bazy danych (studia dzienne)
17
Bazy danych (studia dzienne)
Sekwencje operacji
Wyra enia z jednym przypisaniem
• Tworzenie tymczasowych relacji
• Przykład: zł czenie teta R3 := R1 JOINC R2 mo e by zapisane
jako: R3 := SELECTC (R1 * R2)
• Przykład:
• R3 := R1 JOINC R2 mo e by zapisane jako:
• Priorytety operatorów relacyjnych:
–
–
–
–
R4 := R1 * R2
R3 := SELECTC (R4)
Bazy danych (studia dzienne)
18
19
[SELECT, PROJECT, RENAME] (najwy szy).
[PRODUCT, JOIN].
INTERSECTION.
[UNION, --]
Bazy danych (studia dzienne)
20
Drzewa wyra e
SQL
• W drzewie wyró niamy li cie (w zły ko cowe) oraz w zły
wewn trzne.
• DML (insert, update, delete)
• perspektywy
• zł czenia zewn trzne
– Li cie s operandami - nazwy relacji
– W zły wewn trzne - operatory, które działaj na potomkach danego
w zła
Bazy danych (studia dzienne)
21
Bazy danych (studia dzienne)
Wstawianie wierszy
UPDATE
• Polecenie wstawiania nowych wierszy do tabeli:
• Polecenie UPDATE słu y do zmiany warto ci w istniej cych
wierszach:
INSERT INTO nazwa_tabeli [(lista_kolumn)]
VALUES (lista_warto ci);)
UPDATE tabela [alias]
SET kolumna= {wyra enie | podzapytanie }
[, kolumna= {wyra enie | podzapytanie }]...
[WHERE warunek]
• Wstawianie wierszy wybieranych w zapytaniu:
INSERT INTO nazwa_tabeli [(lista_kolumn)]
SELECT lista_wyra e FROM....;
Przykład:
Zmieni dane w wierszu pracownika SCOTT:
• Parametryzowane polecenie INSERT
INSERT INTO nazwa_tabeli [(lista_kolumn)]
VALUES(&warto 1, &warto 2,...)
Przykład:
INSERT INTO dept (deptno, dname, loc)
VALUES (&d_numer, &d_nazwa, &d_miasto)
Bazy danych (studia dzienne)
22
UPDATE emp
SET job=‘salesman’, hiredate=TRUNC(SYSDATE), sal=sal*1.1
WHERE ename=‘SCOTT’;
23
Bazy danych (studia dzienne)
24
Przykład
DELETE
• Załó my, e mamy informacje o dodatkowych prowizjach dla
cz ci pracowników. S one umieszczone w tabeli
commision(empno, comm). Dokona aktualizacji tabeli EMP na
podstawie informacji zawartej w tabeli commision.
• Polecenie DELETE słu y do usuwania jednego lub wielu wierszy
z tabeli.
DELETE [FROM] tabela
[WHERE warunek];
• UPDATE emp e
SET comm=(select c.comm+e.comm
• warunek WHERE okre la, które wiersze nale y usun
• je eli pominiemy klauzul WHERE wszystkie wiersze zostan
pomini te.
from commision c
where c.empno = e.empno)
WHERE empno in (select empno from commision);
Bazy danych (studia dzienne)
25
Bazy danych (studia dzienne)
Perspektywy
•
•
Tworzenie perspektyw
Co to jest perspektywa
– jest podobna do „okna”, przez które ogl damy i modyfikujemy dane tabeli
– jest definiowana w oparciu o bazow tablic lub inn perspektyw .
– Jest przechowywana tylko w postaci definiuj cego j polecenia SELECT.
Jest obiektem wirtualnym - jest tabel , która nie istnieje w sposób
rzeczywisty, lecz przez u ytkowników jest widziana jak zwykła tabela
– nie przechowuje danych. Operuje jedynie danymi bazowymi tabeli
CREATE [ OR REPLACE] VIEW nazwa_perspektywy
[kolumna1, kolumna2, ...]
AS
SELECT ....
• Kolumna1 kolumna2 ... - to nazwy kolumn perspektywy, które
musz odpowiada pozycjom z listy SELECT...
• Je eli perspektywa o takiej nazwie ju istnieje, a chcemy tylko
zmieni tre jej zapytania, musimy wcze niej usun
poprzedni perspektyw lub u y opcji OR REPLACE;
• w definicji perspektywy nie mo e wyst pi klauzula ORDER BY
Dlaczego u ywa si perspektyw:
– aby ograniczy dost p do wszystkich danych tabeli; wybieraj c dane z
perspektywy jeste my ograniczeni tylko do pewnej cz ci danych tabeli
– aby ułatwi u ytkownikom pobieranie rezultatów skomplikowanych zapyta
za pomoc prostych zapyta
– aby zwolni u ytkowników od wnikania w struktury danych oraz aby
udost pni informacj widzian w ró ny sposób przez ró nych
u ytkowników
Bazy danych (studia dzienne)
26
27
Bazy danych (studia dzienne)
28
Operacje DML na perspektywach
Ograniczenia operacji DML
• Perspektywy mog słu y nie tylko do wybierania warto ci, ale
równie do ich modyfikacji
• Operacja DELETE nie jest dozwolona, je eli perspektywa zawiera
jedno z:
–
–
–
–
–
–
• opcja „WITH CHECK OPTION” - pozwala na modyfikacj danych
przez perspektyw ,ale tylko w ograniczonym zakresie. Mo na
dodawa i modyfikowa tylko takie wiersze, które nast pnie b d
wybrane przez t perspektyw .
CREATE VIEW D10EMP
AS
select epno, ename, sal
from emp
where deptno=10;
CREATE VIEW D10EMP
AS
select epno, ename, sal
from emp
where deptno=10
with check option;
Bazy danych (studia dzienne)
• Operacji UPDATE nie jest dozwolona, gdy:
– nie jest dozwolona operacja DELETE
– perspektywa zawiera kolumn wyra on za pomoc wyra enia (np. Sal*2)
• Operacja INSERT nie jest dozwolona, gdy:
– koluMna obowi zkowa („NOT NULL) nie jest wybierana przez perspektyw .
29
Usuwanie perspektywy
DROP VIEW nazwa_perspektywy
• rozkaz ten powoduje usuni cie definicji perspektywy z bazy
danych
• nie narusza wierszy i kolumn bo s one trzymane w tabelach, na
których perspektywa była oparta
• pozostawienie innych perspektyw i aplikacji bazuj cych na
usuni tej perspektywie powoduje bł d
• perspektywa mo e by usuni ta przez swojego wła ciciela lub
administratora
Bazy danych (studia dzienne)
zł czenie tabel
funkcje grupowe
klauzul GROUP BY
kwalifikator DISTINCT
pseudokolumn ROWNUM
skorelowane podzapytanie
31
Bazy danych (studia dzienne)
30

Podobne dokumenty