Systemy baz danych. Z. Królikowski.

Podobne dokumenty
INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

Relacyjny model danych

1 Wstęp do modelu relacyjnego

Model relacyjny. Wykład II

PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

Model relacyjny. Wykład II

Baza danych jest abstrakcyjnym informatycznym odzwierciedleniem. Baza danych jest logicznie spójnym zbiorem danych posiadających

Bazy danych. Dr inż. Paweł Kasprowski

Relacyjny model danych. Relacyjny model danych

Wprowadzenie do języka SQL

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Przestrzenne bazy danych Podstawy języka SQL

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

Algebra relacji. nazywamy każdy podzbiór iloczynu karteziańskiego D 1 D 2 D n.

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Bazy danych. Algebra relacji

LITERATURA. C. J. Date; Wprowadzenie do systemów baz danych WNT Warszawa 2000 ( seria Klasyka Informatyki )

BAZY DANYCH. Wykład 1: Wprowadzenie do baz danych. Marcin Czajkowski. Przygotowanie wykładu: Małgorzata Krętowska

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

K1A_W11, K1A_W18. Egzamin. wykonanie ćwiczenia lab., sprawdzian po zakończeniu ćwiczeń, egzamin, K1A_W11, K1A_W18 KARTA PRZEDMIOTU

System zarządzania bazą danych SZBD (ang. DBMS -Database Management System)

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Język SQL. Rozdział 2. Proste zapytania

PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W NOWYM SĄCZU SYLABUS PRZEDMIOTU. Obowiązuje od roku akademickiego: 2011/2012

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Systemy GIS Tworzenie zapytań w bazach danych

Dr Michał Tanaś(

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe

Bazy danych Wykład zerowy. P. F. Góra

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Projektowanie relacyjnych baz danych

Wykład 2. Relacyjny model danych

Wykład 6. SQL praca z tabelami 3

Ref. 7 - Język SQL - polecenia DDL i DML

Autor: Joanna Karwowska

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

PRZEWODNIK PO PRZEDMIOCIE

Relacyjne bazy danych

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

P o d s t a w y j ę z y k a S Q L

Wykład :45 BD-1 W_3

Bazy danych - wykład wstępny

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Rozdział 1 Wprowadzenie do baz danych. (c) Instytut Informatyki Politechniki Poznańskiej 1

Bazy danych. Dr Henryk Telega. BD 10/11 Wykład 1 1

Agnieszka Ptaszek Michał Chojecki

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

mail: strona: konsultacje: na stronie (po wcześniejszym umówieniu drogą mailową)

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Wykład 5. SQL praca z tabelami 2

Post-relacyjne bazy danych

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

PRZEWODNIK PO PRZEDMIOCIE

Bazy danych i usługi sieciowe

BAZY DANYCH Podstawowe pojęcia

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

LITERATURA. Wprowadzenie do systemów baz danych C.J.Date; WNT Warszawa 2000

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

SQL Structured Query Language

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Baza danych. Modele danych

S y s t e m y. B a z D a n y c h

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

Paweł Rajba

Wykład 8. SQL praca z tabelami 5

Sylabus do programu kształcenia obowiązującego od roku akademickiego 2014/15

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Relacyjny model baz danych, model związków encji, normalizacje

Relacyjne bazy danych. Podstawy SQL

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Technologie baz danych

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Temporalne bazy danych

Wykład I. Wprowadzenie do baz danych

BAZY DANYCH algebra relacyjna. Opracował: dr inż. Piotr Suchomski

KARTA PRZEDMIOTU 1,5 1,5

RBD Relacyjne Bazy Danych

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Systemy baz danych. mgr inż. Sylwia Glińska

SQL Structured Query Language

Wprowadzenie do baz danych

Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) stacjonarne (stacjonarne / niestacjonarne)

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

BAZY DANYCH. Wykłady dla studentów Wydziału Matematyki i Informatyki UAM. Dr inż. Anna Stachowiak B4-27

SQL Structured Query Language

Bazy danych 2. Wykład 1

Tadeusz Pankowski Relacyjne bazy danych. są podstawą zachodniej cywilizacji

Relacyjne bazy danych. Podstawy SQL

Język SQL podstawy zapytań

Bazy danych. Informacje podstawowe

Transkrypt:

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