Bazy danych. Plan wykładu. Operacje w algebrze relacji. Pojcie algebry relacji. Wykład 8: Algebra relacji. SQL - cd

Podobne dokumenty
Technologie baz danych

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

Bazy danych. Plan wykładu. Podzapytania - wskazówki. Podzapytania po FROM. Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych.

Bazy danych. Plan wykładu. Zalenoci funkcyjne. Wykład 4: Relacyjny model danych - zalenoci funkcyjne. SQL - podzapytania A B

Bazy danych. Plan wykładu. Pierwsza posta normalna. Druga posta normalna. Wykład 7: Sprowadzanie do postaci normalnych. DDL, DML

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

Bazy danych. Plan wykładu. Złczenia tabel. Perspektywy cd. Wykład 9: Programowanie aplikacji baz danych po stronie serwera. Sekwencje Wyzwalacze

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

Bazy danych. Plan wykładu. Podstawy modeli relacyjnych. Diagramy ER. Wykład 3: Relacyjny model danych. SQL

Przestrzenne bazy danych Podstawy języka SQL

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

Materiały szkoleniowe. Podstawy jzyka SQL. Prowadzcy Anna Pijanowska - Kunierz Paweł ołnierczyk

Bazy danych. Plan wykáadu. Powtórzenie BCNF i 3NF. Nowa forma redundancji. Wykáad 6: Postaci normalne. SQL - zapytania záo*one.

Relacyjne bazy danych. Podstawy SQL

Język SQL. Rozdział 8. Język manipulowania danymi DML

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Bazy danych. Plan wykáadu. Zale*noci funkcyjne. Wykáad 4: Relacyjny model danych - zale*noci funkcyjne. A B

Wykład 5. SQL praca z tabelami 2

Relacyjne bazy danych. Podstawy SQL

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

Oracle11g: Wprowadzenie do SQL

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

Bazy danych. Plan wykładu. Przetwarzanie zapyta. Etapy przetwarzania zapytania. Wykład 12: Optymalizacja zapyta. Etapy przetwarzanie zapytania

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

SQL (ang. Structured Query Language)

Wybór EUROPEAN będzie rozpoznawał dzień przed miesiącem, natomiast US miesiąc przed dniem.

Bazy danych SQL. Wstp. SQL (Structured( Query Language) strukturalny jzyk zapyta

Wprowadzenie do języka SQL

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

Paweł Rajba

Materiały szkoleniowe. Podstawy języka SQL

Bazy danych 10. SQL Widoki

Zadania SELECT do schematu EDS (EMP, DEPT, SALGRADE)

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

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

Bazy danych. Plan wykładu. Przetwarzanie zapytań. Etapy przetwarzania zapytania. Translacja zapytań języka SQL do postaci wyrażeń algebry relacji

Systemy GIS Tworzenie zapytań w bazach danych

Bazy danych. Plan wykładu. Dekompozycja relacji. Anomalie. Wykład 5: Projektowanie relacyjnych schematów baz danych. SQL - funkcje grupujce

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

3. Podzapytania, łączenie tabel i zapytań

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

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

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

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

Laboratorium Bazy danych SQL 3 1

Szkolenie Oracle SQL podstawy. Terminy lutego 2010 First Minute! 1100zł!

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

Tworzenie widoku CREATE OR REPLACE VIEW [nazwa_widoku] AS SELECT [nazwy_kolumn] FROM [nazwa_tablicy];

Autor: Joanna Karwowska

Wykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Oracle PL/SQL. Paweł Rajba.

Bazy danych Język SQL część 2 Wykład dla studentów matem

Bazy danych. Dr inż. Paweł Kasprowski

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

Wykład 8. SQL praca z tabelami 5

Wykład 6. SQL praca z tabelami 3

Microsoft SQL Server Podstawy T-SQL

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

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

Wykład 05 Bazy danych

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Oracle PL/SQL. Paweł Rajba.

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

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Zarzadzanie transakcjami. Transakcje

PODZAPYTANIE (SUBSELECT)

Model relacyjny. Wykład II

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Podstawy języka SQL cz. 2

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa. Studia Podyplomowe dla Nauczycieli

1 Wstęp do modelu relacyjnego

kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

Grupowanie i funkcje agregujące

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

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

Model relacyjny. Wykład II

Wprowadzenie. Tworzenie widoków

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Język SQL. Rozdział 2. Proste zapytania

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

Widok Connections po utworzeniu połączenia. Obszar roboczy

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

Bazy danych wykład trzeci. Konrad Zdanowski

CREATE USER

SQL Structured Query Language

Komunikacja z bazą danych psql

Zbiór pytań nr 2. 1 Tabela DEPARTMENTS ma następującą strukturę:

RBD Relacyjne Bazy Danych

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z

DMX DMX DMX DMX: CREATE MINING STRUCTURE. Tadeusz Pankowski

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

Przykładowa baza danych BIBLIOTEKA

Transkrypt:

Plan wykładu Bazy danych Wykład 8: Algebra relacji. SQL - cd Algebra relacji operacje teoriomnogociowe rzutowanie selekcja przemianowanie Małgorzata Krtowska Katedra Oprogramowania e-mail: mmac@ii.pb.bialystok.pl SQL DML perspektywy Bazy danych (studia dzienne) 2 Pojcie algebry relacji Algebra relacji obejmuje metody tworzenia nowych, bardziej skomplikowanych relacji na podstawie innego zbioru relacji. Wyróniamy tutaj: wyraenie(operand) - relacja, przedstawiona w postaci nazwy relacji lub jej krotek operatory - rónego typu procedury, które pozwalaj na uzyskanie nowych relacji Algebra relacji jest podstawowym przykładem jzyka zapyta. Operacje w algebrze relacji Działania algebry zbiorów: suma,przecicie i rónica zastosowane do relacji Operacje zawania relacji: selekcja eliminuje pewne wiersze a rzutowanie niektóre kolumny Operacje komponowanie krotek pochodzcych z rónych relacji, np. iloczyn kartezjaski Operacje przemianowania, które nie zmieniaj krotek relacji, ale jej schemat, tzn. nazwy atrybutów lub/i nazw relacji Bazy danych (studia dzienne) 3 Bazy danych (studia dzienne) 4

Suma zbiorów R S - suma zbiorów R i S jest zbiorem elementów, z których kady naley do zbioru R lub do zbioru S, lub do obu równoczenie. Jeli jaki element naley do obu zbiorów, w sumie tych zbiorów wystpuje tylko raz. Odpowiednik w SQL: where deptno=10 union where deptno=30; Przecicie zbiorów R S - przecicie zbiorów R i S jest takim zbiorem, do którego nale tylko te elementy, które wystpuj zarówno w zbiorze S jak i w R. Odpowiednik w SQL where deptno=10 intersect where deptno=30; union all - nie powoduje eliminacji duplikatów Bazy danych (studia dzienne) 5 Bazy danych (studia dzienne) 6 Rónica zbiorów R-S - rónica zbiorów R i S to zbiór, do którego nale tylko te elementy ze zbioru R, które nie nale do S. Odpowiednik w SQL: where deptno=10 minus where deptno=30; Order by w zapytaniach z operatorami zbiorowymi Order by umieszcza si na kocu ostatniego polecenia SELECT Podajemy numer kolumny według, której chcemy sortowa, poniewa na listach wyboru mog wystpowa kolumny o rónych nazwach SELECT empno, ename, sal from emp union select id, name, salary from emp_history order by 2; Bazy danych (studia dzienne) 7 Bazy danych (studia dzienne) 8

Własnoci operacji na zbiorach na listach wyboru składników musi wystpowa taka sama liczba kolumn kolumny wystpujce na tych samych pozycjach na listach musz by tego samego typu w wyniku zapytania zostaj wyeliminowane powtarzajce si wiersze (wyjtek UNION ALL). Nie mona stosowa DISTINCT nagłówki kolumn wyników zapytania s tworzone na podstawie pierwszego rozkazu SELECT ORDER BY umieszcza si tylko raz na kocu całego złoonego zapytania operatory na zbiorach mog wystpowa w podzapytaniach Rzutowanie R1:=Proj L (R2) L - jest list atrybutów z relacji R2 relacja R1 powstaje przez przejcie po wszystkich krotkach relacji R2 i wybór wszystkich atrybutów bdcych na licie L (z zachowaniem kolejnoci) Jeeli wystepuj duplikaty krotek s one usuwane. Bazy danych (studia dzienne) 9 Bazy danych (studia dzienne) 10 Selekcja R1 := SELECT C (R2) C jest warunkiem, który odnosi si do atrybutów relacji R R1 składa si z tych wszystkich krotek relacji R2, które spełniaj warunek C. Iloczyn kartezjaski R3 := R1 * R2 kada krotka k1 relacji R1 jest łaczona z kad krotk k2 relacji R2 złczenie t1t2 jest krotk relacji R3 schemat relacji R3 składa si z atrybutów relacji R1 i nastpnie atrybutów relacji R2 w przypadku gdy atrybuty maj takie same nazwy A w relacjach R1 i R2 naley uywa: R1.A i R2.A Bazy danych (studia dzienne) 11 Bazy danych (studia dzienne) 12

Złczenie naturalne R3 := R1 JOIN R2 Złczenie relacji przez połczenie par krotek, które w jaki sposób sobie odpowiadaj: połczenie w pary tych krotek, które maj takie same wartoci pewnych atrybutów o tych samych nazwach krotka złczenia zawiera tylko jedn kopi powtarzajcych si wartoci R1 r1 r2 R2 Złczenie naturalne Odpowiednik SQL: Wypisa informacje o pracownikach łcznie z nazwami ich departamentów. select * from emp, dept where emp.deptno=dept.deptno; (lub od wersji Oracle 9i) select * from emp NATURAL JOIN dept; select * from emp JOIN dept USING (deptno); Krotka złczenia (r3) Bazy danych (studia dzienne) 13 Bazy danych (studia dzienne) 14 Złczenie teta R3:=R1 JOIN C R2 Relacja R3 jest utworzona w nastpujcy sposób: utworzy iloczyn kartezjaski relacji R1 i R2 z iloczynu kartezjaskiego wybra tylko te krotki, dla których warunek C jest spełniony Odpowiednik SQL: R3:=emp JOIN sal between losal and hisal salgrade select * from emp, salgrade where emp.sal between losal and hisal; Przykład Wypisz nazwiska wszystkich pracowników i nazwiska ich kierowników. Select prac.ename, kier.ename as mgr from emp prac, emp kier where prac.mgr=kier.empno; lub (od wersji Oracle 9i) Select prac.ename, kier.ename as mgr from emp prac JOIN emp kier ON prac.mgr=kier.empno; Bazy danych (studia dzienne) 15 Bazy danych (studia dzienne) 16

Przemianowanie Przemianowanie okrela nowy schemat relacji : nowe nazwy dla atrybutów relacji R1 := RENAME R1(A1,,An) (R2) - tworzy relacj R1 z atrybutami A1,,An i tymi samymi krotkami jak w relacji R2. Wersja uproszczona zapisu: R1(A1,,An) := R2. Odpowiednik SQL: R1(numer_d nazwa_d, miejsce):=dept select deptno as numer_d, dname as nazwa_d, loc as miejsce from dept; Tworzenie złoonych wyrae Tworzenie dowolnie złoonych wyrae, w których ustalanie kolejnoci wykonywania poszcególnych operacji jest okrelane poprzez wykorzystanie nawiasów i znajmo priorytetów operacji 3 notacje: sekwencje odpowiednich przypisa wyraenia z wieloma operatorami drzewa wyrae Bazy danych (studia dzienne) 17 Bazy danych (studia dzienne) 18 Sekwencje operacji Tworzenie tymczasowych relacji Przykład: R3 := R1 JOIN C R2 moe by zapisane jako: R4 := R1 * R2 R3 := SELECT C (R4) Wyraenia z jednym przypisaniem Przykład: złczenie teta R3 := R1 JOIN C R2 moe by zapisane jako: R3 := SELECT C (R1 * R2) Priorytety operatorów relacyjnych: [SELECT, PROJECT, RENAME] (najwyszy). [PRODUCT, JOIN]. INTERSECTION. [UNION, --] Bazy danych (studia dzienne) 19 Bazy danych (studia dzienne) 20

Drzewa wyrae W drzewie wyróniamy licie (wzły kocowe) oraz wzły wewntrzne. Licie s operandami - nazwy relacji Wzły wewntrzne - operatory, które działaj na potomkach danego wzła DML (insert, update, delete) perspektywy złczenia zewntrzne SQL Bazy danych (studia dzienne) 21 Bazy danych (studia dzienne) 22 Wstawianie wierszy Polecenie wstawiania nowych wierszy do tabeli: INSERT INTO nazwa_tabeli [(lista_kolumn)] VALUES (lista_wartoci);) Wstawianie wierszy wybieranych w zapytaniu: INSERT INTO nazwa_tabeli [(lista_kolumn)] SELECT lista_wyrae FROM...; Parametryzowane polecenie INSERT INSERT INTO nazwa_tabeli [(lista_kolumn)] VALUES(&warto1, &warto2,...) Przykład: INSERT INTO dept (deptno, dname, loc) VALUES (&d_numer, &d_nazwa, &d_miasto) Bazy danych (studia dzienne) 23 UPDATE Polecenie UPDATE słuy do zmiany wartoci w istniejcych wierszach: UPDATE tabela [alias] SET kolumna= {wyraenie podzapytanie } [, kolumna= {wyraenie podzapytanie }]... [WHERE warunek] Przykład: Zmieni dane w wierszu pracownika SCOTT: UPDATE emp SET job= salesman, hiredate=trunc(sysdate), sal=sal*1.1 WHERE ename= SCOTT ; Bazy danych (studia dzienne) 24

Przykład Załómy, e mamy informacje o dodatkowych prowizjach dla czci pracowników. S one umieszczone w tabeli commision(empno, comm). Dokona aktualizacji tabeli EMP na podstawie informacji zawartej w tabeli commision. UPDATE emp e SET comm=(select c.comm+e.comm from commision c where c.empno = e.empno) WHERE empno in (select empno from commision); DELETE Polecenie DELETE słuy do usuwania jednego lub wielu wierszy z tabeli. DELETE [FROM] tabela [WHERE warunek]; warunek WHERE okrela, które wiersze naley usun jeeli pominiemy klauzul WHERE wszystkie wiersze zostan pominite. Bazy danych (studia dzienne) 25 Bazy danych (studia dzienne) 26 Perspektywy Co to jest perspektywa jest podobna do okna, przez które ogldamy i modyfikujemy dane tabeli jest definiowana w oparciu o bazow tablic lub inn perspektyw. Jest przechowywana tylko w postaci definiujcego j polecenia SELECT. Jest obiektem wirtualnym - jest tabel, która nie istnieje w sposób rzeczywisty, lecz przez uytkowników jest widziana jak zwykła tabela nie przechowuje danych. Operuje jedynie danymi bazowymi tabeli Dlaczego uywa si perspektyw: aby ograniczy dostp do wszystkich danych tabeli; wybierajc dane z perspektywy jestemy ograniczeni tylko do pewnej czci danych tabeli aby ułatwi uytkownikom pobieranie rezultatów skomplikowanych zapyta za pomoc prostych zapyta aby zwolni uytkowników od wnikania w struktury danych oraz aby udostpni informacj widzian w róny sposób przez rónych uytkowników Tworzenie perspektyw CREATE [ OR REPLACE] VIEW nazwa_perspektywy [kolumna1, kolumna2,...] AS SELECT... Kolumna1 kolumna2... - to nazwy kolumn perspektywy, które musz odpowiada pozycjom z listy SELECT... Jeeli perspektywa o takiej nazwie ju istnieje, a chcemy tylko zmieni tre jej zapytania, musimy wczeniej usun poprzedni perspektyw lub uy opcji OR REPLACE; w definicji perspektywy nie moe wystpi klauzula ORDER BY Bazy danych (studia dzienne) 27 Bazy danych (studia dzienne) 28

Operacje DML na perspektywach Perspektywy mog słuy nie tylko do wybierania wartoci, ale równie do ich modyfikacji opcja WITH CHECK OPTION - pozwala na modyfikacj danych przez perspektyw,ale tylko w ograniczonym zakresie. Mona dodawa i modyfikowa tylko takie wiersze, które nastpnie bd wybrane przez t perspektyw. Ograniczenia operacji DML Operacja DELETE nie jest dozwolona, jeeli perspektywa zawiera jedno z: złczenie tabel funkcje grupowe klauzul GROUP BY kwalifikator DISTINCT pseudokolumn ROWNUM skorelowane podzapytanie CREATE VIEW D10EMP AS select epno, ename, sal from emp where deptno=10; CREATE VIEW D10EMP AS select epno, ename, sal from emp where deptno=10 with check option; Operacji UPDATE nie jest dozwolona, gdy: nie jest dozwolona operacja DELETE perspektywa zawiera kolumn wyraon za pomoc wyraenia (np. Sal*2) Operacja INSERT nie jest dozwolona, gdy: kolumna obowizkowa ( NOT NULL) nie jest wybierana przez perspektyw. Bazy danych (studia dzienne) 29 Bazy danych (studia dzienne) 30 Usuwanie perspektywy DROP VIEW nazwa_perspektywy rozkaz ten powoduje usunicie definicji perspektywy z bazy danych nie narusza wierszy i kolumn bo s one trzymane w tabelach, na których perspektywa była oparta pozostawienie innych perspektyw i aplikacji bazujcych na usunitej perspektywie powoduje błd perspektywa moe by usunita przez swojego właciciela lub administratora Bazy danych (studia dzienne) 31