• Nie Znaleziono Wyników

Pojęcia podstawowe

N/A
N/A
Protected

Academic year: 2021

Share "Pojęcia podstawowe"

Copied!
64
0
0

Pełen tekst

(1)

Systemy baz danych

Z. Królikowski

E-mail: Zbyszko.Krolikowski@cs.put.poznan.pl

(2)

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)

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

(4)

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)

5

Pojęcia podstawowe - cd

Sposób korzystania z bazy danych przez

użytkowników naiwnych ⇒⇒⇒⇒ Formularze ekranowe

(6)

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)

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.

(8)

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)

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.

(10)

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)

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

(12)

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)

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

(14)

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)

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

(16)

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.

(17)

Relacyjny model danych

Tadeusz Morzy, Zbyszko Królikowski

(18)

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)

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)

(20)

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, że

a

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)

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 relacji

S(A

1

, ... ,A

n

)

. Atrybut

A

j relacji

R

i będziemy dalej oznaczać

R

i

.A

j.

Liczbę atrybutów występujących w schemacie relacji nazywamy krotnością relacji.

(22)

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)

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

(24)

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)

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.

(26)

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)

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

(28)

Ograniczenia integralnościowe

Ograniczenie na unikalność krotek relacji (cd)

Każdy podzbiór

SK

atrybutów relacji

R

, taki że dla każdych dwóch krotek ze zbioru r(R) zachodzi

t1[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)

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

(30)

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)

31

Ograniczenia referencyjne

Dane są relacje

R1

i

R2

. Podzbiór

FK

atrybutów

relacji

R1

nazywany jest kluczem obcym

R1

(ang.

foreign key), jeżeli:

Atrybuty w

FK

mają taką samą domenę jak atrybuty klucza podstawowego

PK

relacji

R2

;

Dla każdej krotki

t1

relacji

R1

istnieje krotka

t2

relacji

R2

, taka że:

t1

[

FK

] =

t2

[

PK

], lub

t1

[

FK

] =

null

(32)

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)

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'

(34)

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)

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

(36)

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)

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

,

(38)

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)

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

lub

OR

. Zbiór operatorów relacyjnych zawiera następujące elementy: {=, ≠, <, ≤, >, ≥}

(40)

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)

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)

(42)

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)

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 atrybuty

listy1

(44)

Operacja projekcji - Przykłady

π

Nazwisko, Etat

(Pracownicy )

π

Etat

(Pracownicy )

π

IdPrac, Nazwisko

(Pracownicy )

(45)

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)

(46)

Usuwanie duplikatów

SELECT [DISTINCT | ALL] ...

Przykłady:

SELECT adres_miasto FROM studenci

SELECT DISTINCT adres_miasto

FROM studenci

(47)

47

Porządkowanie relacji wynikowej

ORDER BY wyra

ż

enie1 [ASC | DESC], ...

SELECT nazwisko FROM pracownicy

ORDER BY zespó

ł

ASC, etat ASC, p

ł

aca DESC

(48)

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)

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:

(50)

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)

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

(52)

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)

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

(54)

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)

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

(56)

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)

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 { =, ≠, <, ≤, >, ≥ }.

(58)

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)

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

(60)

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)

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)

(62)

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)

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

(64)

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

Cytaty

Powiązane dokumenty

n inplementacyjne modele danych stosowane to transformacji wcześniej przygotowanego modelu koncepcyjnego do konkretnego modelu danych bazy danych, a więc do postaci, która jest

2. stack segment) segment pamięci w którym przechowywane są chwilowe dane procesu. Na stosie utrzymywane są zmienne lokalne procedur, parametry procedur i inne chwilowe

2. stack segment) segment pamięci w którym przechowywane są chwilowe dane procesu. Na stosie utrzymywane są zmienne lokalne procedur, parametry procedur i inne chwilowe

Wystąpiło przerwanie (proces został wywłaszczony) lub też proces dobrowolnie zwolnił procesor. Procedura szeregująca zdecydowała że ten proces ma być wykonywany. Zasób

1) naruszenie zakazu dowodzenia określonych faktów oraz naruszenie zakazu dowodowego bezwzględnego i pozyskanie w ten sposób dowodu sprawia, że dowód ten nie

[r]

‡ Jednym z najprostszych sposobów reprezentowania drzewa jest wykorzystanie dla każdego węzła struktury składającej się z pola lub pól reprezentujących etykietę oraz

Przykazanie pierwsze domaga siê odpowiedzi tego, by Boga stawiaæ na pierwszym miejscu i tylko Jemu oddawaæ czeœæ i uwielbienie. Uznaj¹c Go za najwa¿niejszego w naszym ¿yciu,