Bazy danych w07 07 id 81703 Nieznany

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

SQL

SQL

łą

łą

czenie tabel,

czenie tabel,

podzapytania

podzapytania

i widoki

i widoki

Wykład 7

20.11.2007

Antoni Dydejczyk

http://www.ftj.agh.edu.pl/~antek

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Plan wyk

Plan wyk

ł

ł

adu

adu



Łączenie tabel - powiązania krzyżowe, wewnętrzne i zewnętrzne



Powiązania 1-1, 1-n i n-m w deklaracjach SQL



Polecenie JOIN: LEFT, RIGHT, FULL oraz INNER



Porównywanie zbiorów - słowa kluczowe

UNION, INTERSECT, EXCEPT



Zapytania podrzędne - powiązane i niepowiązane



Wirtualne tabele tworzone w standardzie SQL

widoki (perspektywy)

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Poprzedni wyk

Poprzedni wyk

ł

ł

ad

ad

Polecenie SELECT - używamy do pobierania danych z bazy.

Struktura polecenia SELECT:

SELECT

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje

FROM

nazwy tabel lub widoków

WHERE

warunek (wybieranie wierszy)

GROUP BY

nazwy kolumn

HAVING

warunek (grupowanie wybieranych wierszy)

ORDER BY

nazwy kolumn lub pozycje kolumn

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Poprzedni wyk

Poprzedni wyk

ł

ł

ad

ad

Omówione słowa kluczowe :

DISTINCT

- wyszukanie nie powtarzających się wierszy

IN

- wskazanie zbioru wartości dla warunku

BETWEEN

- wskazanie zakresu wartości dla warunku

LIKE

- określenie wartości dla warunku

Omówione funkcje agregujące:

SUM(), AVG(), MIN(), MAX(), COUNT()

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Poprzednie wyk

Poprzednie wyk

ł

ł

ady

ady

-

-

SQL

SQL

DDL

DML
DML

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Łą

Łą

czenie tabel

czenie tabel

Powiązania krzyżowe

Tworzą iloczyn kartezjański pomiędzy dwoma zbiorami danych.

Powiązania wewnętrzne

Tworzą podzbiór iloczynu kartezjańskiego pomiędzy dwoma zbiorami.
Wymagają klauzuli warunkowej w celu określenia kryteriów jakie
muszą być spełnione, aby rekordy były powiązane.

Powiązanie zewnętrzne

Podobnie do powiązań wewnętrznych tworzy podzbiór iloczynu
kartezjańskiego. Różnica polega na tym, że zwraca co najmniej jeden
egzemplarz każdego wiersza z określonego zbioru. Jest to albo zbiór
pierwszy, albo drugi, względnie obydwa w zależności od rodzaju
powiązania zewnętrznego. Brakujące wartości kolumn dla pustych
części wiersza, które nie spełniają powiązania, zwracane są jako
wartości NULL.

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Łą

Łą

czenie tabel

czenie tabel

Standardowo:

SELECT lista_kolumn
FROM tabela [, tabela, ... ]
[ WHERE warunek ]

SELECT *
FROM tabela1, tabela2

--> iloczyn kartezjański

SELECT *
FROM tabela1, tabela2
WHERE tabela1.atr1 = tabela2.atr2

AND tabela1.atr12 = tabela2.atr22 ;

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Diagram ER

Diagram ER

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Łą

Łą

czenie tabel

czenie tabel

-

-

przyk

przyk

ł

ł

ad

ad

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Relacja jeden - do - jeden

Reprezentuje jedna tabela ( dwie )

osoba (id, nazwisko, imię)
opis_osoby (id, PESEL, NIP, kolor_oczu, ... )

powiązanie pomiędzy relacjami: osoba.id i opis_osoby.id

SELECT id, nazwisko, imię, PESEL, NIP
FROM osoba, opis_osoby
WHERE osoba.id = opis_osoba.id

AND nazwisko = ‘Kowalski’;

Łą

Łą

czenie tabel

czenie tabel

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Łą

Łą

czenie tabel

czenie tabel

-

-

przyk

przyk

ł

ł

ad

ad

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Łą

Łą

czenie tabel

czenie tabel

-

-

przyk

przyk

ł

ł

ad

ad

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Łą

Łą

czenie tabel

czenie tabel

Relacja jeden - do - wielu

Reprezentują dwie tabele

osoba (id, nazwisko, imię)
opis_osoby (id, PESEL, NIP, kolor_oczu, ... )
adres (ida, id, miasto, kod)

powiązanie pomiędzy tabelami: osoba.id, opis_osoby.id i adres.id

SELECT nazwisko, imię, miasto
FROM osoba, adres
WHERE osoba.id = adres.id

AND id = 1 ;

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Łą

Łą

czenie tabel

czenie tabel

-

-

przyk

przyk

ł

ł

ad

ad

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Łą

Łą

czenie tabel

czenie tabel

-

-

przyk

przyk

ł

ł

ad

ad

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Łą

Łą

czenie tabel

czenie tabel

Relacja wiele - do - wielu

Reprezentują dwie tabele plus tabela łącząca

osoba (id, nazwisko, imię)
opis_osoby (id, PESEL, NIP, kolor_oczu, ... )
adres (ida, id, miasto, kod)
kamienica (idk, miasto, kod, ulica, numer,nazwa)
osoba_kamienica (id, idk)

SELECT O.nazwisko, K.nazwa, K.miasto
FROM osoba O, kamienica K, osoba_kamienica OK
WHERE O.id = OK.id AND K.idk = OK.idk

AND K.miasto = ‘Krakow’ ;

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Łą

Łą

czenie tabel

czenie tabel

-

-

przyk

przyk

ł

ł

ad

ad

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Łą

Łą

czenie tabel

czenie tabel

-

-

przyk

przyk

ł

ł

ad

ad

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Łą

Łą

czenie tabel

czenie tabel

Łączenie tabel wykorzystujące słowo kluczowe – JOIN (standard SQL2).

Złączenia tabel - wewnątrz polecenia FROM

wewnętrzne

[INNER] JOIN

zewnętrzne

LEFT [OUTER] JOIN
RIGHT [OUTER] JOIN
FULL [OUTER] JOIN

Składnia

SELECT list_kolumn
FROM tabela1 JOIN tabela2 ON warunek1
WHERE warunek2

Uwaga:

Polecenia powyższe należą do standardu SQL2 wobec tego nie są
reprezentowane we wszystkich implementacjach serwerów SQL.

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Łą

Łą

czenie tabel

czenie tabel

-

-

przyk

przyk

ł

ł

ad

ad

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Łą

Łą

czenie tabel

czenie tabel

-

-

przyk

przyk

ł

ł

ad

ad

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Łą

Łą

czenie tabel

czenie tabel

-

-

przyk

przyk

ł

ł

ad

ad

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Łą

Łą

czenie tabel

czenie tabel

-

-

przyk

przyk

ł

ł

ad

ad

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Łą

Łą

czenie tabel

czenie tabel

-

-

przyk

przyk

ł

ł

ad

ad

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Łą

Łą

czenie tabel

czenie tabel

-

-

przyk

przyk

ł

ł

ad

ad

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Łą

Łą

czenie tabel

czenie tabel

-

-

przyk

przyk

ł

ł

ad

ad

SELECT
[Zrodlo].[id_nucl],

[Izotop].[id],

[Izotop].[nuclid],

[Izotop].[polokres],

[Izotop].[jedn],

[Zrodlo].[aktywnosc],

[Zrodlo].[typ_aktyw],

[Zrodlo].[data],

(

select data_aktywnosc from dane_rozne

) AS data_aktyw,

(

data_aktyw

-[Zrodlo].[data])*24 AS czas,

Exp(-Log(2)*((abs(

czas

)+

czas

)/2)/([izotop].[polokres]*(

select wsp_licz/wsp_mian

from jedn_t12 where jedn_t12.id_jedn=izotop.jedn

))) AS fact,

[zrodlo].[aktywnosc]*

fact

AS aktyw_nowa,

[osoba].[nazwisko],

[Aktywnosc].[typ_aktyw]

FROM ((Izotop INNER JOIN Zrodlo ON [Izotop].[id]=[Zrodlo].[id_nucl])

INNER JOIN Osoba ON [Zrodlo].[id_os]=[Osoba].[id])
INNER JOIN Aktywnosc ON

[zrodlo].[typ_aktyw]=[Aktywnosc].[id_aktyw];

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

S

S

ł

ł

owa kluczowe

owa kluczowe

UNION, INTERSECT, EXCEPT

UNION, INTERSECT, EXCEPT

Słowa kluczowe UNION, INTERSECT i EXCEPT służą do łączenia lub pomijania
danych w wierszach. Wartości kolumn są porównywane i na podstawie tego
porównania tworzony jest nowy zestaw wyników. Słowa kluczowe używamy
pomiędzy dwoma zapytaniami SQL. Zestawy wyników są porównywane i na
podstawie tego porównania wiersze są włączane lub pomijane do zestawu wyników.

UNION

Para zapytań połączonych słowem kluczowym UNION połączy wszystkie
wiersze zawierające wspólne identyfikatory w jeden wspólny zestaw wyników.

INTERSECTION

Para zapytań połączonych słowem INTERSECT spowoduje, że wiersze, których
nie można znaleźć w obu zbiorach będą pominięte.

EXCEPT

Para zapytań połączonych słowem kluczowym EXCEPT spowoduje, że wiersze,
które znaleziono w obu zbiorach będą pominięte. W wyniku znajdą się tylko te
wiersze, które znajdują się po lewej stronie słowa kluczowego EXCEPT, a nie ma
ich po prawej stronie.

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Operator UNION

Operator UNION

Operator umożliwia łączenie wyników kilku zapytań w
jednym zestawieniu. Wyniki pojawiaj
ą się jakby zostały
wybrane z jednej tabeli, podczas gdy pochodz
ą z wielu tabel.

Składnia:

SELECT lista_kolumn
FROM tabela [, tabela, ... ]
[ WHERE warunek ]

UNION [ ALL ]

SELECT list_kolumn
FROM tabela [, tabela, ... ]
[ WHERE warunek ]

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Operator UNION

Operator UNION

osoba (id, nazwisko, imie)
adres (ida, id, miasto, ... )
kamienica (idk, miasto, ...)

SELECT miasto
FROM adres

UNION ALL

SELECT miasto
FROM kamienica ;

Sortowanie - automatycznie - od kolumny lewej

bez opcji ALL

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Operator UNION

Operator UNION

-

-

przyk

przyk

ł

ł

ad

ad

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Operator UNION

Operator UNION

-

-

przyk

przyk

ł

ł

ad

ad

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Operator UNION

Operator UNION

-

-

przyk

przyk

ł

ł

ad

ad

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Operator INTERSECT

Operator INTERSECT

Operator umożliwia utworzenie zapytania zwracającego tylko
wiersze wspólne dla wybranych zapyta
ń.

Składnia:

SELECT lista_kolumn
FROM tabela [, tabela, ... ]
[ WHERE warunek ]

INTERSECT

SELECT list_kolumn
FROM tabela [, tabela, ... ]
[ WHERE warunek ]

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

 SELECT isbn FROM editions

INTERSECT

SELECT isbn FROM shipments

GROUP BY isbn HAVING count(id) > 2 ;

Isbn
------------
0001000210
1313332222
3333431414
4444444442

Operator INTERSECT

Operator INTERSECT

-

-

przyk

przyk

ł

ł

ad

ad

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Operator EXCEPT

Operator EXCEPT

Operator umożliwia utworzenie zapytania zwracającego
tylko wiersze, które wyst
ępują w zbiorze po lewej stronie
operatora.

Składnia:

SELECT lista_kolumn
FROM tabela [, tabela, ... ]
[ WHERE warunek ]

EXCEPT

SELECT list_kolumn
FROM tabela [, tabela, ... ]
[ WHERE warunek ]

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

 SELECT last_name, first_name FROM authors

EXCEPT

SELECT last_name, first_name

FROM authors AS a (author_id)
NATURAL INNER JOIN books
ORDER BY first_name ASC ;

Last_name | first_name
--------------------------------
A... | A....
Z... | B....
C.... | D....

Operator EXCEPT

Operator EXCEPT

-

-

przyk

przyk

ł

ł

ad

ad

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Podzapytania

Podzapytania

(zapytania podrz

(zapytania podrz

ę

ę

dne)

dne)

Co to jest podzapytanie ?

Najprościej, instrukcja SELECT zagnieżdżona w innej instrukcji SQL,
która dostarcza dla tej drugiej danych wejściowych.

Kwestię zapytań podrzędnych można rozważać w kilku
aspektach:

 Typ powiązania pomiędzy zapytaniem nadrzędnym i podrzędnym,
 Podzapytania mogą być wykorzystane w kilku typach instrukcji

języka SQL,

 Wykorzystanie podzapytań zależy typu danych zwracanych przez te

zapytania,

 Część podzapytań można zastąpić przez złączenie.

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Wyróżniamy podzapytania:

niepowiązane - brak odwołań do zapytania nadrzędnego.

powiązane -

pozycje z listy SELECT zapytania
nadrzędnego wykorzystywane są
wewnątrz klauzuli WHERE podzapytania.

Podzapytania

Podzapytania

(zapytania podrz

(zapytania podrz

ę

ę

dne)

dne)

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Podzapytanie

Podzapytanie

niepowi

niepowi

ą

ą

zane

zane

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Podzapytanie

Podzapytanie

powi

powi

ą

ą

zane

zane

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Podzapytanie z klauzulą IN i odpowiednie zapytanie
zrealizowane zł
ączeniem.

 SELECT person_fname, person_lname

FROM People
WHERE person_id IN ( SELECT director_id FROM movies )
AND person_id IN (

SELECT DISTINCT cast_member_id FROM cast_movies ) ;

 SELECT person_fname, person_lname

FROM Movies, Cast_Movies, People
WHERE

person_id = cast_member_id AND person_id = director_id ;

Podzapytania

Podzapytania

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Podzapytanie z klauzulą NOT IN .

 SELECT person_fname, person_lname

FROM People
WHERE person_id NOT IN ( SELECT director_id FROM movies )

 SELECT DISTINCT person_fname, person_lname, movie_title

FROM People LEFT JOIN Movies

ON (People.person_id = Movies.director_id)

WHERE

Movies.movie_title IS NULL ;

Podzapytania

Podzapytania

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Podzapytania

Podzapytania

klauzule EXISTS, ANY, ALL

klauzule EXISTS, ANY, ALL

Klauzule stosowane dla podzapytań.

SELECT lista_kolumn FROM tabela
WHERE EXISTS ( podzapytanie)

EXISTS

-

jeżeli podzapytanie zwraca dowolną wartość, to klauzula

EXISTS zwraca wartość logiczną prawda.

NOT EXISTS

wykorzystywana do znajdowania wierszy, dla których

powiązane podzapytanie nie zwraca żadnych wartości.

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Podzapytania

Podzapytania

klauzule EXISTS, ANY, ALL

klauzule EXISTS, ANY, ALL

Klauzule stosowane dla podzapytań.

SELECT lista_kolumn FROM tabela
WHERE warunek (ANY|ALL) ( podzapytanie )

ANY

-

wartość bieżącego wiersza jest porównywana z każdą

wartością podzapytania w oparciu o operator porównania.
Je
żeli jedno zwraca wartość prawdę, to całe porównanie jest
prawd
ą.

ALL

-

podobnie jak ANY, jednak jeżeli jedno porównanie da fałsz, to

cała klauzula przyjmie wartość fałsz.

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Podzapytania

Podzapytania

klauzula EXISTS

klauzula EXISTS

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Polecenie SELECT

Polecenie SELECT

-

-

przyk

przyk

ł

ł

ad

ad

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Podzapytania

Podzapytania

klauzula ANY

klauzula ANY

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Podzapytania

Podzapytania

realizacja INTERSECT

realizacja INTERSECT

select miasto from adres ;

select miasto from kamienica ;

select miasto from adres
where miasto in

( select miasto from kamienica ) ;

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

 SELECT S.studio_name, M.movie_title, (10000*M.gross) AS Receipts

FROM Movies M, Studios S
WHERE S.studio_id = M.studio_id

AND

( M.gross*10000) <
( SELECT SUM(payment) FROM Cast_Movies CM
WHERE M.movie_id = CM.movie_id ) ;

 SELECT S.studio, M.movie_title, (10000*M.gross) AS Receipts,

SUM(CM.payment) AS PAYMENT

FROM Studios S, Movies M, Cast_Movies CM
WHERE S.studio_id = M.studio_id AND CM.movie_id = M.movie_id
GROUP BY M.studio_name, M.movie_title, M.gross
HAVING (M.gross*10000) < SUM(CM.payment) ;

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Widoki

Widoki

Widok ( ang. viewed tables), wirtualne tabele tworzone w
standardzie SQL.

Widok tworzymy poleceniem CREATE VIEW
z istniejących tabel.

Korzyści płynące z widoków:

 wygoda
 ukrywanie efektów normalizacji
 ograniczenie dostępu do danych
 tworzenie warstwy abstrakcji

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Polecenie SELECT

Polecenie SELECT

-

-

przyk

przyk

ł

ł

ad

ad

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Wygoda

Wygoda

(z

(z

łą

łą

czenia, funkcje agreguj

czenia, funkcje agreguj

ą

ą

ce,

ce,

podzapytania

podzapytania

)

)

 CREATE VIEW Movie_With_Studio

AS
SELECT movie_title, budget, gross, studio_name,

studio_city, studio_state

FROM Movies, Studios
WHERE Movies.studio_id = Studios.studio_id ;

 SELECT movie_title, studio_name

FROM Movie_With_Studio ;

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

 CREATE VIEW Cities_And_States (city,state)

AS
SELECT studio_city, studio_state

FROM Studios

UNION
SELECT person_city, person_state

FROM People

UNION
SELECT city, state

FROM Locations ;

 SELECT * FROM Movie_With_Studio

Wygoda

Wygoda

(z

(z

łą

łą

czenia, funkcje agreguj

czenia, funkcje agreguj

ą

ą

ce,

ce,

podzapytania

podzapytania

)

)

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Ograniczenie dost

Ograniczenie dost

ę

ę

pu do danych

pu do danych

 CREATE VIEW Movies_Minus_Finacials

AS
SELECT movie_id, studio_id, release_date,

director_id FROM Movies ;

 SELECT * FROM Movies_Minus_Financials ;

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Tworzenie warstwy abstrakcji

Tworzenie warstwy abstrakcji

Aliasy kolumn

 CREATE VIEW Movies_Finacials ( title, budget, gross)

AS
SELECT movie_title, budget, gross FROM Movies ;



SELECT * FROM Movies_Financials ;

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Antoni Dydejczyk, Bazy danych, w08_04, 10.11.2004

Widok pojedynczej tabeli

 CREATE VIEW Texas_Phone_List

AS
SELECT person_fname, person_lname, person_phone

FROM People

WHERE person_state = ‘TX’ ;

 SELECT * FROM Texas_Phone_List ;

Tworzenie warstwy abstrakcji

Tworzenie warstwy abstrakcji

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Wady:

 Ograniczona możliwość modyfikacji

 Ograniczenie struktury

 Wydajność

Pojęcia:

 Rozkład widoku

 Materializacja widoku

Widoki

Widoki

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Widoki

Widoki

-

-

modyfikowanie

modyfikowanie

Uaktualnianie widoków jest możliwe, kiedy każdy wiersz
widoku odpowiada dokładnie jednemu wierszowi w tabeli, lub
w tabelach na których został zbudowany.

Konstrukcje łamiące tą zasadę:

 funkcje agregujące

 operator DISTINCT

 użycie klauzul GROUP BY i HAVING

 wyrażenia matematyczne

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Reguły standardu ANSI nie dopuszczają również modyfikacji
danych zawartych w widokach, które korzystają z
następujących konstrukcji:

 odwołania do wielu tabel poprzez podzapytania, dowolny

typ złączenia ( łącznie z operatorami UNION )

 odwołanie w widoku do innych niemodyfikowalnych

widoków

Widoki

Widoki

-

-

modyfikowanie

modyfikowanie

background image

Antoni Dydejczyk, Bazy danych, wykład 7

WFiIS, Katedra Informatyki Stosowanej, 2007

Pytania ...

Pytania ...


Wyszukiwarka

Podobne podstrony:
Bazy danych w03 07 id 81702 Nieznany
Bazy danych w02 07 id 81701 Nieznany
Bazy danych w13 07 id 81707 Nieznany
Bazy danych w12 07 id 81706 Nieznany (2)
Bazy danych w10 07 id 81705 Nieznany
Bazy danych 07 id 81462 Nieznany (2)
bazy danych pierwsza zarowka id Nieznany
Bazy Danych [tryb zgodnosci] id Nieznany (2)
HYDROLOGIA 07 id 207788 Nieznany
hih kolo kolo2 07 id 709394 Nieznany
I CSK 304 07 1 id 208210 Nieznany
Fizjologia Cwiczenia 07 id 1743 Nieznany
III CSK 302 07 1 id 210245 Nieznany
G2 PB 02 B Rys 3 07 id 185395 Nieznany
al1 w07 zima2011 id 54569 Nieznany (2)
CwiczenieArcGIS 07 id 125941 Nieznany
DAB 07 id 130775 Nieznany

więcej podobnych podstron