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 2
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 3
Pojęcia podstawowe - cd Użytkownicy bazy danych aktorzy na scenie Analitycy systemowi Projektanci bazy danych Programiści aplikacji Użytkownicy końcowi naiwni użytkownicy dobrze przygotowani użytkownicy Administrator systemu bazy danych 4
Pojęcia podstawowe - cd Sposób korzystania z bazy danych przez użytkowników naiwnych Formularze ekranowe 5
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 6
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. 7
Pojęcia podstawowe - cd System bazy danych składa się z bazy danych i systemu zarządzania bazą danych. użytkownicy transakcje (zapytania) S Z B D moduł zarządzania transakcjami moduł zarządzania dostępem do danych system bazy danych schemat bazy danych baza danych 8
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. 9
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 10 danych)
Pojęcia podstawowe - cd Trzypoziomowa architektura ANSI/SPARC systemu bazy danych Użytkownicy Schemat zewnętrzny... Schemat zewnętrzny Poziom zewnętrzny Poziom logiczny Schemat Poziom koncepcyjny koncepcyjny Schemat wewnętrzny Poziom wewnętrzny Poziom fizyczny Baza danych 11
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 12
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 13
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ąć? Modele danych 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, wyszukiwania i uaktualniania bazy danych 14
Pojęcia podstawowe - cd Kategorie modeli danych: Pojęciowe modele danych Implementacyjne modele danych Model ER UML... Relacyjny Obiektowy Przestrzenny... Fizyczne modele danych Tworzone przez projektanta i administratora 15
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 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 manipulowania danymi (ang. Data Manipulation Language DML), który umożliwia wypełnianie bazy nowymi danymi, ich aktualizację i usuwanie; 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. 16
Relacyjny model danych Tadeusz Morzy, Zbyszko Królikowski
Model danych Struktury danych JAN TADEUSZ MACIEJ JANINA KUBA JÓZEF JAN NOWAK KOWALSKI NOWAK RZEPA TARZAN MALINIAK NOWAK 47 34 26 19 31 29 56 Ograniczenia integralnościowe Operacje JANINA KUBA RZEPA TARZAN -5 31! 18
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 A j. Z każdym atrybutem jest związany zbiór wartości - Zbiór wszystkich możliwych wartości atrybutu A j jest nazywany domeną i oznaczany dom(a j ). 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(A 1, A 2,..., A n ), składa się z nazwy relacji R oraz listy nazw atrybutów A 1, A 2,..., A n Pracownicy (Nazwisko, Imię, Wiek, Pensja) 19
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=<a 1, a 2,..., a n >, gdzie a i, 1<i<n, jest elementem dom(a i ) lub specjalną wartością pustą (null value) 20
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. 21
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ł 22
Alternatywna definicja relacji Wyświetlana relacja ma postać tablicy: krotki są wierszami tej tablicy. Nagłówki kolumn są atrybutami STUDENCI Nr indeksu Nazwisko Imię Typ uczeln i 54098 Kowalski Jan P krotka 54678 Malinowski Zenon U relacja atrybut 23
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 24
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. 25
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 26
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 27
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} 28
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 29
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 30
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 31
Przykład Dane dwie relacje z ograniczeniami referencyjnymi Pracownicy Id P ra c Nazwisko Etat Placa Szef IdZesp 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 Zespoły IdZe s p Nazwa Lo kalizac ja Budże t 10 Sprzedaż Krucza 10 10 000 20 Badania Piwna 30 10 000 32
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' 33
Relacyjne języki dostępu do danych Algebra relacji, rachunek krotek SQL (Structured Query Language) Quel QBE (Query by Example) - IBM, Oracle - Ingres - IBM 34
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 35
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 36
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, 37
Operacja selekcji - SELECT Operacja selekcji umożliwia pobranie krotek relacji spełniających określony warunek. nr_indeksu imię nazwisko typ_ uczelni 12358 Celina Arbuz U 12362 Anastazja Iksińska U Warunek selekcji 12358 Celina Arbuz U 12362 Anastazja Iksińska U 38
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: {=,, <,, >, } 39
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)) 40
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) 41
Operacja projekcji - Project Projekcja umożliwia pobranie wartości wybranych atrybutów z wszystkich krotek relacji. nr_indeksu imię nazwisko typ_ uczelni 12358 Celina Arbuz U 12362 Anastazja Iksińska U Lista atrybutów 12358 Arbuz 12362 Iksińska 42
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 43
Operacja projekcji - Przykłady π Nazwisko, Etat (Pracownicy) π Etat (Pracownicy) π IdPrac, Nazwisko (Pracownicy) 44
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) 45
Usuwanie duplikatów SELECT [DISTINCT ALL]... Przykłady: SELECT adres_miasto FROM studenci SELECT DISTINCT adres_miasto FROM studenci 46
Porządkowanie relacji wynikowej ORDER BY wyrażenie1 [ASC DESC],... SELECT nazwisko FROM pracownicy ORDER BY zespół ASC, etat ASC, płaca DESC 47
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)) 48
Operacje na zbiorach Kompatybilność relacji Dwie relacje: R(A 1,..., A n ) i S(B 1,...,B n ) są kompatybilne, jeżeli mają ten sam stopień i jeżeli dom(a i ) = dom(b i ) dla 1 i n Operacje na zbiorach Dane są dwie kompatybilne relacje: R(A 1,..., A n ) i S(B 1,...,B n ). Operacje sumy, iloczynu i różnicy relacji R i S są zdefiniowane następująco: 49
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 50
Operacje na zbiorach - Przykłady Uczniowie Imię Nazwis ko Ala Kus ia k Edek Musiał Ada m Zają c Olek Struś Ola Buba Instruktorzy Imię Nazwis ko Jan Kuc Edek Musiał Wacek Misiek Uczniowie Instruktorzy Uczniowie Instruktorzy Imię Nazwis ko Ala Kus ia k Edek Musiał Ada m Zają c Olek Struś Ola Buba Jan Kuc Wacek Misiek Imię Nazwis ko Edek Musiał Uczniowie - Instruktorzy Imię Nazwis ko Ala Kus ia k Ada m Zają c Olek Struś Ola Buba Instruktorzy - Uczniowie Imię Nazwis ko Jan Kuc Wacek Misiek 51
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 52
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 R 1 A B X R2 a b c A A A a b c B B B a b c 53
Iloczyn Kartezjański Dane są dwie relacje: R(A 1,..., A n ) i S(B 1,...,B m ). Wynikiem iloczynu kartezjańskiego relacji R i S, oznaczonym przez R x S, jest relacja Q stopnia n+m i schemacie: Q(A 1,..., A n, B 1,...,B m ). Krotkom w relacji Q odpowiadają wszystkie kombinacje krotek z relacji R i S. Jeżeli relacja R ma n r krotek, a relacja S ma n s krotek, to relacja Q będzie miała n r *n s krotek 54
Iloczyn Kartezjański - Przykład Pracownicy Zespoły Imię Ala Edek Ada m Nazwis ko Kus ia k Musiał Zają c Nazwa Lo kalizac ja Reklama Krucza 10 Badania Piotrowo 3A Pracownicy x Zespoły Im ię Nazwisko Nazwa Lokalizacja Ala Kusiak Reklama Krucza 10 Edek Musiał Reklama Krucza 10 Ada m Za ją c Reklama Krucza 10 Ala Kusiak Badania Piotrowo 3A Edek Musiał Badania Piotrowo 3A Ada m Za ją c Badamia Piotrowo 3A 55
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. nr_indeksu im ię nazwisko typ_ uczelni 12358 Celina A rbuz U 12362 A nastazja Iksińska U P P P A typ_ uczelni P U A nazwa P olitechnika Uniwersytet A kademia Celina A nastazja A rbuz Iksińska Uniwersytet Uniwersytet 56
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(A 1,..., A n ) i S(B 1,...,B m ), 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 { =,, <,, >, }. 57
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ę 58
Operacja połączenia - Przykłady Pracownicy IdPrac Imię Nazwis ko S ze f IdZe s p 100 Jan Miś 10 110 Piotr Wilk 100 10 120 Roman Lis 100 20 Zespoły IdZe s p Nazwa 10 Reklama 20 Badania Pracownicy Szef=IdPrac Pracownicy IdPrac Imię Nazwis ko S ze f IdZe s p IdPrac Imię Nazwis ko S ze f IdZe s p 110 Piotr Wilk 100 10 100 Jan Miś 10 120 Roman Lis 100 20 100 Jan Miś 10 Pracownicy * Zespoły Id P ra c Im ię Nazwisko Szef IdZesp Nazwa 100 Jan Miś 10 Reklama 110 Piotr Wilk 100 10 Reklama 120 Roman Lis 100 20 Badania 59
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(A 1,..., A n ) i S(B 1,...,B m ), jest oznaczona jako: R <warunek połączeniowy> S oznacza, że w relacji wynikowej znajdą się krotki odpowiadające wszystkim krotkom relacji R (lewostronnej). 60
Operacja połączenia zewnętrznego OUTER JOIN Operacja połączenia zewnętrznego prawostronnego relacji R(A 1,..., A n ) i S(B 1,...,B m ), jest oznaczona jako: R <warunek połączeniowy> S oznacza, że w relacji wynikowej znajdą się krotki odpowiadające wszystkim krotkom relacji S (prawostronnej) 61
Operacja połączenia zewnętrznego OUTER JOIN Operacja połączenia zewnętrznego dwustronnego relacji R(A 1,..., A n ) i S(B 1,...,B m ), 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 62
Operacja połączenia zewnętrznego Przykład Pracownicy IdPrac Imię Nazwis ko S ze f IdZe s p 100 Jan Miś 10 110 Piotr Wilk 100 10 120 Roman Lis 100 20 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 Jan Miś 10 110 Piotr Wilk 100 10 100 Jan Miś 10 120 Roman Lis 100 20 100 Jan Miś 10 63
Definiowanie struktur danych SQL - Typy danych Typ Przykład użycia CHARACTER/CHAR Tytuł_filmu CHAR(25) CHAR VARYING/VARCHAR Na zwis ko VARCHAR (30) NATIONAL CHAR/NCHAR Miasto NCHAR (20) NCHAR VARYING Mia s to NCHAR VARYING (20) INTEGER/INT Nr_konta INT NUMERIC (s, p) Saldo NUMERIC (8, 2) DECIMAL (s, p) Cena DECIMAL (7, 2) FLOAT Odległość FLOAT REAL Szerokość REAL DOUBLE P RECIS ION Wie lkość DOUBLE P RECIS ION BIT Fla gi BIT BIT VARYING P ole _fla gi BIT VARYING DATE Da ta _urodze nia DATE TIME P oczą tek_zajęć TIME TIME WITH ZONE Cza s _odlotu TIME WITH ZONE TIMES TAMP S potka nie TIMES TAMP TIMESTAMP WITH ZONE Spotkanie TIMESTAMP WITH ZONE INTERVAL Cza s _pra cy INTERVAL 64