Systemy baz danych
Z. Królikowski
E-mail: Zbyszko.Krolikowski@cs.put.poznan.pl
Literatura
1. Date C. J., An Introduction to Database System, vol. II, Adison-Wesley Pub. Comp., również WNT – W-wa, (seria: Klasyka Informatyki), 2000.
2. Elmasri R., Navathe S., Fundamentals of Database Systems, Adison- Wesley Pub. Comp.,(3th Edition), 1999
3. Garcia-Molina H., Ullman J.D., Widom J., Implementacja systemów baz danych, WNT, 2003 (seria: Klasyka Informatyki)
4. Kim W., Modern Database Systems, Addison-Wesley, ACM Press, 1994.
5. Ullman J.D., Principles of database and knowledge base systems, Vol.
I and II, Computer Science Press, Rockville, Maryland, 1989.
6. J.D. Ullman, J. Widom, Podstawowy wykład z systemów baz danych, WNT, W-wa, 2000 (seria: Klasyka Informatyki)
7. R. Wrembel, W. Wieczerzycki, Projektowanie aplikacji baz danych, Wydawnictwo NAKOM, Poznań, 1997
3
Pojęcia podstawowe
Baza danych jest abstrakcyjnym informatycznym
odzwierciedleniem wybranego fragmentu rzeczywistości, nazywanego „miniświatem” – zmiany w tym świecie są odzwierciedlane w bazie danych
Bazą danych nazywamy kolekcję logicznie spójnych, powiązanych ze sobą danych, które są składowane na komputerowym nośniku danych.
Baza danych jest projektowana, budowana i wypełniana danymi dla określonych celów – ma określoną grupę
użytkowników korzystających w określony sposób z zawartej w niej informacji
Pojęcia podstawowe - cd
Użytkownicy bazy danych – aktorzy na scenie
Analitycy systemowi
Projektanci bazy danych
Użytkownicy końcowi
• naiwni użytkownicy
• dobrze przygotowani użytkownicy Programiści aplikacji
5
Pojęcia podstawowe - cd
Sposób korzystania z bazy danych przez
użytkowników naiwnych ⇒⇒⇒⇒ Formularze ekranowe
Pojęcia podstawowe - cd
Sposób korzystania z bazy danych przez
użytkowników dobrze przygotowanych ⇒⇒⇒⇒ Język SQL
SELECT jakie dane wyszukać
FROM w jakiej tabeli są one przechowywane WHERE warunki wyszukiwania
7
Pojęcia podstawowe - cd
System zarządzania bazą danych (SZBD)
Systemem zarządzania bazą danych (SZBD)
nazywamy zbiór programów umożliwiających tworzenie i eksploatację bazy danych.
SZBD jest oprogramowaniem ogólnego przeznaczenia ułatwiającym procesy definiowania, konstruowania i przetwarzania bazy danych dla różnych aplikacji.
Pojęcia podstawowe - cd
System bazy danych składa się z bazy danych i systemu zarządzania bazą danych.
użytkownicy
moduł zarządzania transakcjami
moduł zarządzania dostępem do danych
SZ BD
transakcje (zapytania)
system bazy danych
schemat
bazy baza
danych danych
9
Pojęcia podstawowe - cd
Użytkownicy kontaktują się z systemem bazy danych za pośrednictwem tzw. transakcji.
Transakcja stanowi elementarną jednostkę pracy, składa się z wielu niepodzielnych akcji, każdej z tych akcji
odpowiada jedno odwołanie do SZBD.
Transakcja jest atomową jednostką pracy, taką że baza danych jest w stanie spójnym (tj. zgodnym z modelowanym miniświatem) przed i po zakończeniu transakcji.
Pojęcia podstawowe - cd
Baza danych to schemat bazy danych i dane
Schemat bazy danych jest opisem struktury (formatu) przechowywanych danych oraz wzajemnych powiązań między nimi
Schemat bazy danych jest definiowany w trakcie projektowania bazy danych
Graficznie schemat bazy danych jest reprezentowany przez diagram schematu
Dane opisują cechy (własności) modelowanych obiektów miniświata. Nie mogą być one jednak właściwie
interpretowane bez użycia schematu.
Zbiór wartości wszystkich danych w bazie danych nazywamy instancją bazy danych (wystąpieniem lub stanem bazy
11
Pojęcia podstawowe - cd
Trzypoziomowa architektura ANSI/SPARC systemu bazy danych
Użytkownicy
Schemat zewnętrzny
Schemat zewnętrzny
. . . Poziom zewnętrzny
Schemat koncepcyjny
Poziom koncepcyjny
Schemat wewnętrzny
Poziom wewnętrzny
Baza danych
Poziom logiczny
Poziom fizyczny
Pojęcia podstawowe - cd
Trzypoziomowa architektura ANSI/SPARC – cd.
Poziom wewnętrzny ⇒ schemat wewnętrzny
Opisuje fizyczną organizację bazy danych – schemat
wewnętrzny stosuje fizyczny model danych i opisuje ścieżki dostępu do danych oraz fizyczną organizację danych
Poziom koncepcyjny (pojęciowy) ⇒ schemat koncepcyjny Opisuje strukturę bazy danych z punktu widzenia
globalnego użytkownika
Poziom zewnętrzny ⇒ schematy zewnętrzne
Każdy schemat zewnętrzny opisuje bazę danych z punktu widzenia jednej grupy użytkowników
13
Pojęcia podstawowe - cd
Trzypoziomowa architektura ANSI/SPARC – cd.
Własności systemu bazy danych wynikające z tej architektury:
niezależność aplikacji i danych
abstrakcyjna reprezentacja danych
różnorodność sposobów widzenia danych fizyczna i logiczna niezależność danych
Pojęcia podstawowe - cd
Fundamentalną cechą systemów baz danych jest zapewnienie wyższego poziomu abstrakcji widzenia danych przez użytkowników, dzięki przesłonięciu szczegółów dotyczących fizycznej organizacji tych danych.
Jak to osiągnąć ?
Model danych – zbiór pojęć stosowanych do opisu struktury bazy danych - struktura ta obejmuje:
typy danych, związki pomiędzy danymi i ograniczenia nałożone na dane;
zbiór operacji służących do definiowania, Modele danych
15
Pojęcia podstawowe - cd Kategorie modeli danych:
Pojęciowe modele danych
Implementacyjne modele danych
Fizyczne modele danych
Model ER UML
...
Relacyjny Obiektowy Przestrzenny
...
Tworzone przez projektanta i administratora
Pojęcia podstawowe - cd
Użytkownik (projektant) bazy danych ma do dyspozycji język dostępu do danych (SQL), składający się z 4
zintegrowanych modułów:
Język manipulowania danymi (ang. Data Manipulation Language – DML), który umożliwia wypełnianie bazy nowymi danymi, ich aktualizację i usuwanie;
Język definiowania danych (ang. Data Definition Language – DDL), który umożliwia definiowanie struktury danych przechowywanych w bazie danych, a więc tworzenie schematu (implementacyjnego);
Język sterowania danymi (ang. Data Control Language – DCL), który umożliwia użytkownikowi bazy danych sterowanie jego transakcjami, np.
ich wycofywanie i zatwierdzanie;
Język zapytań (ang. Query Language), który umożliwia pobieranie z bazy danych informacji zgodnych z wyspecyfikowanymi warunkami.
Relacyjny model danych
Tadeusz Morzy, Zbyszko Królikowski
Model danych
Struktury danych
NOWAK
TARZAN NOWAK JAN
RZEPA MALINIAK KOWALSKI
NOWAK TADEUSZ
MACIEJ JANINA KUBA JÓZEF JAN
47 34 26 19 31 29 56
• Ograniczenia integralnościowe
TARZAN RZEPA JANINA
KUBA
-5
31 !
• Operacje
19
Struktury danych
Baza danych jest zbiorem relacji (tablic)
Relacja, oznaczana dalej R, jest podstawową formą organizacji danych w bazie danych.
Przykładowe rodzaje danych: Nazwisko, Imię, Wiek, Pensja itp. - w teorii relacyjnych baz danych rodzaj danych nazywa się atrybutem i jest oznaczany Aj.
Z każdym atrybutem jest związany zbiór wartości - Zbiór wszystkich możliwych wartości atrybutu Aj jest nazywany domeną i oznaczany dom(Aj).
Domena D jest zbiorem wartości atomowych i jest definiowana przez podanie typu danych, które mogą przyjmować wartości danych danej domeny
Schemat relacji R, oznaczony przez R(A1, A2, ..., An), składa się z nazwy relacji R oraz listy nazw atrybutów A1, A2, ..., An
Pracownicy (Nazwisko, Imię, Wiek, Pensja)
Struktury danych
Dla danego schematu relacji ciąg wartości jego atrybutów nazywa się krotką i oznacza przez t.
<Kowalski, Jan, 35, 2200>
Formalnie: dla danego schematu relacji
S(A
1, ... ,A
n)
krotką nazywa się ciąg wartości <a
1, ... ,a
n>
takich, żea
1 ∈dom(A
1), ... , a
n ∈dom(A
n)
.Pojedyncza krotka t jest uporządkowaną listą n wartości t=<a1, a2, ..., an>, gdzie ai, 1<i<n, jest elementem
dom(Ai) lub specjalną wartością pustą (null value)
21
Struktury danych
Relacją R określoną na danym schemacie relacji nazywa się skończony zbiór krotek. Formalnie
R(A
1, ... ,A
n) = { < a
1, ... ,a
n>: a
1 ∈dom(A
1), ... , a
n ∈dom(A
n) }
,gdzie
R(A
1, ... ,A
n)
jest relacją określoną na schemacie relacjiS(A
1, ... ,A
n)
. AtrybutA
j relacjiR
i będziemy dalej oznaczaćR
i.A
j.Liczbę atrybutów występujących w schemacie relacji nazywamy krotnością relacji.
Struktury danych
Relacja jest zbiorem krotek (k-wartości), które są listami wartości.
konta
ROR
234-112678 11 890,57 zł 10 000 zł
23
Alternatywna definicja relacji
Wyświetlana relacja ma postać tablicy: krotki są wierszami tej tablicy. Nagłówki kolumn są atrybutami
U Zenon
Malinowski 54678
P Jan
Kowalski 54098
Typ uczeln i
Imię Nazwisko
Nr indeksu
relacja krotka
atrybut STUDENCI
Baza danych
Baza danych = zbiór relacji
Schemat bazy danych = zbiór schematów relacji
Relacja = zbiór krotek
Schemat relacji = zbiór { atrybut , typ danej, [ograniczenia integralnościowe] }
Krotka = lista atomowych warto ś ci
25
Charakterystyka relacji
Każda relacja charakteryzuje się następującymi własnościami:
wszystkie jej krotki są różne, jej atrybuty są różne,
kolejność krotek nie ma znaczenia,
kolejność atrybutów nie ma znaczenia,
wartości atrybutów są atomowe lub puste.
Ograniczenia integralnościowe
Ograniczenia kojarzone z obiektami bazy danych, nazywamy ograniczeniami (więzami)
integralnościowymi (ang.
integrity constraints
)Ograniczenia integralnościowe są predykatami, które powinny być spełnione przez określony podzbiór
danych z bazy
Jeśli odpowiednie ograniczenia są spełnione, oznacza to, że określona grupa informacji znajduje się w
stanie spójnym.
System zarządzania bazą danych musi czuwać nad tym, by po każdej modyfikacji zawartości bazy
danych były nadal spełnione więzy integralności
27
Ograniczenia integralnościowe
Ograniczenie domeny atrybutu
Zbiór wartości domeny atrybutu może być zawężony przez wyrażenie logiczne do pewnego podzbioru:
przedziału lub wyliczeniowej listy wartości
Ograniczenie integralnościowe klucza relacji – unikalność krotek relacji
Relacja jest zbiorem krotek, stąd, z definicji zbioru, wszystkie krotki relacji muszą być unikalne
Ograniczenia integralnościowe
Ograniczenie na unikalność krotek relacji (cd)
Każdy podzbiór
SK
atrybutów relacjiR
, taki że dla każdych dwóch krotek ze zbioru r(R) zachodzit1[SK] ≠ t2[SK], jest nazywany nadkluczem (ang.
super key) relacji R. Każda relacja musi mieć co najmniej jeden klucz – cały schemat relacji
SK = {STUDENT.NrIndeksu}
29
Ograniczenia integralnościowe
Ograniczenie na unikalność krotek relacji (cd)
Superklucz może posiadać nadmiarowe atrybuty.
Kluczem K schematu relacji R nazywamy superklucz schematu R o takiej własności, że usunięcie
dowolnego atrybutu A z K powoduje, że K’=K-A nie jest już superkluczem.
Klucz jest minimalnym superkluczem zachowującym własność unikalność krotek relacji
Schemat relacji może posiadać więcej niż jeden klucz
Ograniczenia integralnościowe
Ograniczenie integralności klucza podstawowego
Jeden z kluczy relacji może być wyróżniony jako klucz podstawowy jednoznacznie identyfikujący krotki relacji. W związku z tym klucz podstawowy nie może przyjmować wartości pustych
Pozostałe klucze schematu relacji nazywamy kluczami wtórnymi lub kandydującymi
31
Ograniczenia referencyjne
Dane są relacje
R1
iR2
. PodzbiórFK
atrybutówrelacji
R1
nazywany jest kluczem obcymR1
(ang.foreign key), jeżeli:
Atrybuty w
FK
mają taką samą domenę jak atrybuty klucza podstawowegoPK
relacjiR2
;Dla każdej krotki
t1
relacjiR1
istnieje krotkat2
relacjiR2
, taka że:t1
[FK
] =t2
[PK
], lubt1
[FK
] =null
Przykład
Dane dwie relacje z ograniczeniami referencyjnymi
IdPrac Nazwis ko Etat Plac a S ze f IdZe s p
120 Kowals ki Analityk 850 100 10
100 Tarzan Dyre ktor 1700 10
130 Nowak Re fe re nt 600 100 10
110 J ózie k Kie rownik 1200 100 20
140 Nowacki Analityk 800 110 20
150 Bunio S e kre tarka 700 100 10
Pracownicy
Zespoły
IdZe s p Nazwa Lo kalizac ja Budże t 10 S prze daż Krucza 10 10 000 20 Badania P iwna 30 10 000
33
Przykład (cd)
Wstaw do relacji
Pracownicy
krotkę:t = <120, 'Malinowski', 'Akwizytor', 500, 100, 10>
Zmodyfikuj krotkę relacji
Zespo
ły
:t[Zespoły.IdZesp] = 30 dla t[Zespoły.IdZesp]=20 Usuń krotkę relacji
Pracownicy
, taką że:t[Nazwisko] = 'Tarzan'
Relacyjne języki dostępu do danych
Algebra relacji, rachunek krotek
SQL (Structured Query Language) - IBM, Oracle
Quel - Ingres
QBE (Query by Example) - IBM
35
Standard SQL
1965 - Początek prac nad standardem języka bazy danych (DBTG – CODASYL)
1981 - Początek prac nad standardem języka relacyjnej bazy danych (SQL)
1986 - NDL (Network-structured Data Language) 1986 - SQL86 ANSI
1987 - SQL86 ISO
1989 - SQL89 (ISO/ANSI)
1991 - początek prac nad SQL3 1992 - SQL92 (ISO/ANSI)
1999/2000 – SQL 3 SQL 4
Podstawowe operacje algebry relacji
Operacje na zbiorach
" UNION, INTERSECTION, SET DIFFERENCE
" CARTESIAN PRODUCT, DIVISION
Operacje ‘relacyjne’ (opracowane dla relacyjnego modelu danych)
" SELECT, PROJECT, JOIN
" OUTER JOIN, GROUP BY
37
Podstawowe operacje algebry relacji
Operacje algebry relacji działają na jednej lub wielu relacjach, a ich wynikiem jest relacja. Wyróżnia się następujące operacje:
selekcji, umożliwiający wybór krotek relacji spełniających określone warunki,
projekcji, umożliwiający „okrojenie” relacji do wybranych atrybutów,
połączenia, umożliwiający łączenie krotek wielu relacji
,
Operacja selekcji - SELECT
12358 Celina Arbuz U
12358 Celina Arbuz U
12362 Anastazja Iksińska U
nr_indeksu imię nazwisko typ_
uczelni
Warunek selekcji
12362 Anastazja Iksińska U
Operacja selekcji umożliwia pobranie krotek relacji spełniających określony warunek.
39
Operacja selekcji - SELECT
Przeznaczenie: wyodrębnienie podzbioru krotek relacji, które spełniają warunek selekcji
Notacja: σ<warunek selekcji>
(<Nazwa relacji>),
gdzie warunek selekcji jest zbiorem predykatów postaci:
<nazwa atrybutu><operator relacyjny><litera
ł>
lub
<nazwa atrybutu><operator relacyjny><nazwa atrybutu>
połączonych operatorami logicznymi:
AND
lubOR
. Zbiór operatorów relacyjnych zawiera następujące elementy: {=, ≠, <, ≤, >, ≥}Operacja selekcji - Przykłady
σ
IdPrac = 100(Pracownicy) σ
Płaca > 1000(Pracownicy)
σ
(IdZesp=10 AND Płaca>1000) OR (IdZesp=20) AND Płaca>800)(Pracownicy)
σ
Etat=‘Analityk’ AND (Płaca>=700 AND Płaca<1200)(Pracownicy)
Własności: operacja selekcji jest komutatywna:
σ<war1>
(
σ<war2>(R))=
σ<war2>(
σ<war1>(R))
41
Operacja selekcji w języku SQL
SELECT * FROM studenci WHERE rok_studiów = 4 AND średnia_ocen > 4.5
SELECT * FROM studenci
WHERE UPPER(nazwisko) = ‘MORZY’
OR stypendium < zasiłek SELECT * FROM studenci
WHERE (rok_studiów, typ_studiów, średnia) = (3, ‘podyplomowe’, 5)
Operacja projekcji - Project
Projekcja umożliwia pobranie wartości wybranych atrybutów z wszystkich krotek relacji.
Celina Arbuz U
12358
12358 Arbuz Lista atrybutów
12362 Anastazja Iksińska U
nr_indeksu imię nazwisko typ_
uczelni
12362 Iksińska
43
Operacja projekcji - Project
Przeznaczenie: wyodrębnienie wybranych atrybutów relacji
Notacja: π<lista atrybutów>
(<Nazwa relacji>),
gdzie lista atrybutów jest podzbiorem atrybutów ze schematu relacji
Własności: operacja projekcji nie jest komutatywna.
Składanie operacji projekcji jest możliwe przy spełnieniu pewnych dodatkowych warunków:
π<lista1>
(
π<lista2>(R))=
π<lista1>(R)
jeżeli
lista2
zawiera wszystkie atrybutylisty1
Operacja projekcji - Przykłady
π
Nazwisko, Etat(Pracownicy )
π
Etat(Pracownicy )
π
IdPrac, Nazwisko(Pracownicy )
45
Operacja projekcji w języku SQL (1)
Rozszerzenia języka SQL
Operacje na danych: +, -, *, /
1,22 * cena, cena – rabat, dochód / 12,
Funkcje: arytmetyczne, znakowe, na datach, konwersji, ogólne
UPPER(nazwisko), SIN(k ą t), LN(podstawa), ROUND(sk ł adka, 1),
TO_CHAR(data, ‘Day DD-MM-YYYY)
Usuwanie duplikatów
SELECT [DISTINCT | ALL] ...
Przykłady:
SELECT adres_miasto FROM studenci
SELECT DISTINCT adres_miasto
FROM studenci
47
Porządkowanie relacji wynikowej
ORDER BY wyra
żenie1 [ASC | DESC], ...
SELECT nazwisko FROM pracownicy
ORDER BY zespó
łASC, etat ASC, p
łaca DESC
Składanie operacji
Sekwencja wielu operacji, w której kolejne operacje są wykonywane na pośrednich wynikach operacji poprzednich, może być zastąpiona pojedynczą
operacją złożoną, powstałą przez zagnieżdżenie operacji elementarnych:
Przykłady:
PracownicyZesp10
σIdZesp = 10(Pracownicy) Wynik
πIdPrac, Nazwisko(PracownicyZesp10 )
πIdPrac, Nazwisko
(
σIdZesp = 10(Pracownicy))
49
Operacje na zbiorach
Kompatybilność relacji
Dwie relacje: R(A1, ..., An) i S(B1, ...,Bn) są
kompatybilne, jeżeli mają ten sam stopień i jeżeli dom(Ai) = dom(Bi) dla 1≤i≤n
Operacje na zbiorach
Dane są dwie kompatybilne relacje: R(A1, ..., An) i S(B1, ...,Bn). Operacje sumy, iloczynu i różnicy relacji R i S są zdefiniowane następująco:
Operacje na zbiorach
Suma: Wynikiem tej operacji, oznaczanej przez R∪S, jest relacja zawierająca wszystkie krotki, które
występują w R i wszystkie krotki, które występują w S, z wyłączeniem duplikatów krotek. Operacja sumy jest operacją komutatywną: R∪S = S∪R
Iloczyn: Wynikiem tej operacji, oznaczonej przez R∩S, jest relacja zawierająca krotki występujące zarówno w R i S. Operacja iloczynu jest operacją komutatywną: R∩S = S∩R
Różnica: Wynikiem tej operacji, oznaczonej przez R- S, jest relacja zawierająca wszystkie krotki, które
występują w R i nie występują w S. Operacja różnicy nie jest operacją komutatywną:
R - S
≠S - R
51
Operacje na zbiorach - Przykłady
Imię Nazwis ko Ala Kus ia k Ede k Mus ia ł Ada m Za ją c Ole k Struś
Ola Buba
Uczniowie Instruktorzy
Imię Nazwis ko J a n Kuc
Ede k Mus ia ł Wa ce k Mis ie k
Imię Nazwis ko Ala Kus ia k Ede k Mus ia ł Ada m Za ją c Ole k Struś
Ola Buba
J a n Kuc Wa ce k Mis ie k
Uczniowie ∪∪∪∪ Instruktorzy
Uczniowie ∩∩∩∩ Instruktorzy
Imię Nazwis ko Ede k Mus ia ł
Uczniowie - Instruktorzy
Imię Nazwis ko Ala Kus ia k Ada m Za ją c Ole k Struś
Ola Buba
Instruktorzy - Uczniowie
Imię Nazwis ko J a n Kuc
Wa ce k Mis ie k
Operacje na zbiorach - SQL
SELECT nr_konta, saldo FROM filia_A WHERE saldo > 10000
UNION
SELECT konto_nr, SUM(operacje) FROM filia_B GROUP BY konto_nr
SELECT imię, nazwisko, data_urodzenia FROM filia_A INTERSECT
SELECT imię, nazwisko, data_urodzenia FROM filia_B SELECT imię, nazwisko, data_urodzenia FROM filia_A
EXCEPT
SELECT imię, nazwisko, data_urodzenia FROM filia_B
53
Iloczyn Kartezjański
Iloczyn kartezjański umożliwia konkatenację krotek dwóch (lub więcej) relacji w taki sposób, że każda krotka pierwszej relacji jest łączona z każdą krotką drugiej relacji
X A
B
a b c
A A A
B B B
a b c
a b c
R 1 R 2
Iloczyn Kartezjański
Dane są dwie relacje: R(A1, ..., An) i S(B1, ...,Bm).
Wynikiem iloczynu kartezjańskiego relacji R i S,
oznaczonym przez R x S, jest relacja Q stopnia n+m i schemacie: Q(A1, ..., An, B1, ...,Bm).
Krotkom w relacji Q odpowiadają wszystkie
kombinacje krotek z relacji R i S. Jeżeli relacja R ma nr krotek, a relacja S ma ns krotek, to relacja Q
będzie miała nr*ns krotek
55
Iloczyn Kartezjański - Przykład
Imię Nazwis ko Ala Kus ia k Ede k Mus ia ł Ada m Za ją c
Pracownicy
Nazwa Lo kalizac ja Re kla ma Krucza 10
Ba da nia P iotrowo 3A
Zespoły
Pracownicy x Zespoły
Imię Nazwis ko Nazwa Lo kalizac ja Ala Kus ia k Re kla ma Krucza 10
Ede k Mus ia ł Re kla ma Krucza 10 Ada m Za ją c Re kla ma Krucza 10 Ala Kus ia k Ba da nia Piotrowo 3A Ede k Mus ia ł Ba da nia Piotrowo 3A Ada m Za ją c Ba da mia Piotrowo 3A
Operacja połączenia - JOIN
Operacja ta polega na konkatenacji krotek dwóch (lub więcej) relacji z zastosowaniem określonego warunku połączenia.
Wynikiem połączenia jest podzbiór iloczynu kartezjańskiego relacji.
1 23 5 8 C elin a A rb u z U
C elin a A rbu z
P P
P
A
U n iw ersytet U n iw ersytet
P o litech nika U n iw ersytet
n a zw a typ _
u cze ln i P U
A A ka d em ia
1 2 3 6 2 A n asta zja Iksiń ska U
n r_ in d e ks u im ię na zw isko typ _
u c ze ln i
A n asta zja Iksiń ska
57
Operacja połączenia - JOIN
Przeznaczenie: łączenie na podstawie warunku
połączeniowego wybranych krotek z dwóch relacji w pojedynczą krotkę
Notacja: operacja połączenia relacji R(A1, ..., An) i S(B1, ...,Bm), jest oznaczona jako:
R <warunek połączeniowy> S
gdzie warunek połączeniowy jest zbiorem predykatów połączonych operatorami logicznymi AND. Predykaty są postaci: Ai θ Bj, gdzie Ai i Bj są atrybutami
połączeniowymi, i Ai jest atrybutem R, a Bj jest
atrybutem S, dom(Ai) = dom(Bj), i θ jest operatorem relacyjnym ze zbioru { =, ≠, <, ≤, >, ≥ }.
Operacja połączenia - JOIN
Ogólna postać operacji połączenia, gdzie jest dowolnym operatorem relacyjnym jest nazywana połączeniem typu THETA (ang. THETA JOIN)
Operacja połączenia, dla której θ jest operatorem =, nazywana jest połączeniem równościowym (ang. EQUI JOIN)
Operacja połączenia, dla której θ jest operatorem różnym od =, nazywana jest połączeniem nierównościowym (ang. NON-EQUI JOIN)
Operacja połączenia równościowego, w której jeden z atrybutów połączeniowych jest usunięty ze schematu relacji wynikowej, jest nazywana połączeniem naturalnym (ang. NATURAL JOIN).
Połączenie naturalne jest oznaczane jako: R * S, przy czym
wymagane jest, by atrybuty połączeniowe w obu relacjach miały taką samą nazwę
59
Operacja połączenia - Przykłady
IdPrac Imię Nazwis ko S ze f IdZe s p
100 J a n Miś 10
110 Piotr Wilk 100 10
120 Roma n Lis 100 20
Pracownicy Zespoły
IdZe s p Nazwa 10 Re kla ma 20 Ba da nia
IdPrac Imię Nazwis ko Sze f IdZe s p IdPrac Imię Nazwis ko S ze f IdZe s p
110 Piotr Wilk 100 10 100 J a n Miś 10
120 Roma n Lis 100 20 100 J a n Miś 10
Pracownicy Szef=IdPrac Pracownicy
Pracownicy * Zespoły
IdPrac Imię Nazwis ko S ze f IdZe s p Nazwa
100 J a n Miś 10 Re kla ma
110 P iotr Wilk 100 10 Re kla ma
120 Roma n Lis 100 20 Ba da nia
Operacja połączenia
zewnętrznego – OUTER JOIN
Przeznaczenie: łączenie na podstawie warunku
połączeniowego wybranych krotek z dwóch relacji w pojedynczą krotkę; w przypadku gdy danej krotce relacji nie odpowiada żadna krotka drugiej relacji, krotka ta jest łączona z krotką pustą
Operacja połączenia zewnętrznego
lewostronnego relacji R(A1, ..., An) i S(B1, ...,Bm), jest oznaczona jako:
R <warunek połączeniowy> S
oznacza, że w relacji wynikowej znajdą się krotki odpowiadające wszystkim krotkom relacji R
(lewostronnej).
61
Operacja połączenia
zewnętrznego – OUTER JOIN
• Operacja połączenia zewnętrznego
prawostronnego relacji R(A1, ..., An) i S(B1, ...,Bm), jest oznaczona jako:
R <warunek połączeniowy> S
oznacza, że w relacji wynikowej znajdą się krotki odpowiadające wszystkim krotkom relacji S
(prawostronnej)
Operacja połączenia
zewnętrznego – OUTER JOIN
• Operacja połączenia zewnętrznego
dwustronnego relacji R(A1, ..., An) i S(B1, ...,Bm), jest oznaczona jako:
R <warunek połączeniowy> S
oznacza, że w relacji wynikowej znajdą się krotki odpowiadające wszystkim krotkom relacji R i
wszystkim krotkom relacji S
63
Operacja połączenia
zewnętrznego – Przykład
IdPrac Imię Nazwis ko S ze f IdZe s p
100 J a n Miś 10
110 Piotr Wilk 100 10
120 Roma n Lis 100 20
Pracownicy
Pracownicy <Szef=IdPrac> Pracownicy
IdPrac Imię Nazwis ko S ze f IdZe s p IdPrac Imię Nazwis ko S ze f IdZe s p
100 J a n Miś 10
110 Piotr Wilk 100 10 100 J a n Miś 10
120 Roma n Lis 100 20 100 J a n Miś 10
Definiowanie struktur danych SQL - Typy danych
Typ Przykład użyc ia
CHARACTER/CHAR Tytuł_filmu CHAR(25) CHAR VARYING/VARCHAR Na zwis ko VARCHAR (30) NATIONAL CHAR/NCHAR Mia s to NCHAR (20)
NCHAR VARYING Mia s to NCHAR VARYING (20)
INTEGER/INT Nr_konta INT
NUMERIC (s , p) S a ldo NUMERIC (8, 2) DECIMAL (s , p) Ce na DECIMAL (7, 2)
FLOAT Odle głoś ć FLOAT
REAL S ze rokoś ć REAL
DOUBLE P RECIS ION Wie lkoś ć DOUBLE P RECISION
BIT Fla gi BIT
BIT VARYING P ole _fla gi BIT VARYING
DATE Da ta _urodze nia DATE
TIME P oczą te k_za ję ć TIME
TIME WITH ZONE Cza s _odlotu TIME WITH ZONE TIMES TAMP S potka nie TIMESTAMP
TIMES TAMP WITH ZONE S potka nie TIMESTAMP WITH ZONE