Bazy danych 10. Z łą czenia i transakcje P. F. Góra semestr letni 2004/05.

Slides:



Advertisements
Podobne prezentacje
Bazy danych 4. Algebra relacji P. F. Góra
Advertisements

Procedury wyzwalane Procedura wyzwalana (ang. trigger) - stanowi kod użytkownika przechowywany wewnątrz bazy i uruchamiany w określonych sytuacjach np.
KLUB MIŁOŚNIKÓW HARREGO POTTERA
Bazy danych II Instrukcja SELECT Piotr Górczyński 25/08/2001.
Język SQL Część II.
Bazy danych - SQL.
Podejście relacyjne Podejście relacyjne opiera się na wykorzystaniu do przedstawiania danych modelu relacyjnego i zarządzania nimi matematycznego modelu.
Bazy danych 9. SQL — Różności P. F. Góra semestr letni 2004/05
Bazy danych 7. Postaci normalne P. F. Góra semestr letni 2004/05
2. Modelowanie baz danych
Bazy danych 1.Wiadomo ś ci wst ę pne P. F. Góra semestr letni 2004/05.
Bazy danych 8. SQL podstawy P. F. Góra semestr letni 2004/05.
4. Relacyjny model baz danych
Bazy danych II Instrukcja INSERT Piotr Górczyński 25/08/2001.
25/08/ Bazy danych II Piotr Górczyński Instrukcja UPDATE.
25/08/ Bazy danych II Piotr Górczyński MS Access – Action Query.
Odwzorowania relacyjno-obiektowe Hibernate Tranzakcyjność i bezpieczeństwo danych.
Metody autoryzacji użytkowników wymaga integracji z systemem operacyjnym nie wymaga logowania mała pewność mechanizmu wymaga logowania duża pewność mechanizmu.
Wykład 10 Prowadzący: dr Paweł Drozda
Język definicji danych (Data Definition Language)
WYZWALACZE (TRIGGERY) Wyzwalacz jest specjalnym rodzajem procedury składowanej, która może być wykonana w odpowiedzi na jedną z trzech sytuacji: UPDATE.
SQL-owskie szlaki górskie
SQLDziałanie select * from tab_kredyt wyświetla wszystko z tab_kredyt select Kredytobiorca, Bank, rodzaj, data_zawarcia, klasyfikacja from tab_kredyt.
SQL select kredytobiorca,bank, rodzaj, data_zawarcia, klasyfikacja,kwota, terminzapadalnosci-data_zawarcia iledni from tab_kredyt where (terminzapadalnosci-data_zawarcia)>1095.
POWTÓRZENIE Główne elementy składni SQL: Zasady ogólne
Wykład 3 Wojciech Pieprzyca
Zarządzanie transakcjami
SQL - język relacyjnych i obiektowo-relacyjnych baz danych
WYKONYWANIE ZAPYTAŃ Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Relacyjne Bazy Danych (Oracle) Prezentacja jest współfinansowana.
Odwzorowania relacyjno-obiektowe Hibernate Tranzakcyjność i bezpieczeństwo danych.
REKLAMY INTERNETOWE Autorka : Patrycja Kempa. REKLAMA – co to takiego ?! REKLAMA - to informacja po łą czona z komunikatem perswazyjnym. Zazwyczaj ma.
Język SQL – ciąg dalszy DML (Data Manipulation Language)
Zarządzanie transakcjami Wykład S. Kozielski. Zarządzanie transakcjami Transakcja – jedna lub więcej operacji na bazie danych stanowiących pewną logiczną
Język SQL (Structured Query Language) DDL (Data Definition Language)
Hiperłącza Co to jest? Autor: dalej.
SQL – zapytania posumowanie
SQL – Structured Query Language (3)
Przetwarzanie w oknie - nowa siła zapytań
MySQL – ODBC - ACCESS.
25 PRZYKAZA Ń. 1. Nie dyskutuj z go ś ciem, który ma nad Tob ą pó ł litra przewagi!
Walk ę matematyczn ą prowadzi ł a z nami pani mgr El ż bieta Maciejewska.
Tworzenie bazy danych – mySQL
Pytanie to coraz cz ęś ciej nasuwa si ę przeci ę tnemu cz ł owiekowi chc ą cemu stworzy ć now ą sie ć w domu. Pytanie to coraz cz ęś ciej nasuwa si.
Instrukcje: CREATE, INSERT, UPDATE, DELETE, DROP
MySQL bazy danych dla witryny
SQL - Structured Query Language
Opracowanie: mgr Tomasz Durawa
Jak zacząć w MS SQL? USE master; GO IF DB_ID (Nbaza') IS NOT NULL DROP DATABASE baza; GO CREATE DATABASE baza; GO USE baza; GO.
Mateusz Siuda klasa IVa
Jak można nauczyć korzystania z prawdopodobieństwa.
PL/SQL – dalsza wędrówka
SQL – część II.
1 SBD, L.Banachowski Podstawy SQL - języka relacyjnych i obiektowo-relacyjnych baz danych (SQL2, SQL'1999, Oracle) Powtórzenie wyk ł adu 3.
1 SBD, L.Banachowski Zaawansowane cechy SQL Powtórzenie wyk ł adu 5.
Autor: Damian Urbańczyk
Kalendarz 2020.
1 Zarządzanie transakcjami Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000.
Slajd 1© J.Rumiński Jacek Rumiński  Bazy danych Kontakt: Katedra Inżynierii Biomedycznej, pk. 106, tel.: , fax: ,
1 SBD, L.Banachowski Oprogramowanie strony serwera cz. 1 Powtórzenie wyk ł adu 6.
Komendy SQL do pracy z danymi
Relacja (ang.relation) Po podzieleniu danych na tabele i zdefiniowaniu pól kluczy podstawowych trzeba wprowadzić do systemu bazy danych informacje na temat.
Projektowanie Aplikacji Internetowych
Przewodnik po raportach rozliczeniowych w Condico Clearing Station (Rynek finansowy)
Tworzenie odwołania zewnętrznego (łącza) do zakresu komórek w innym skoroszycie Możliwości efektywnego stosowania odwołań zewnętrznych Odwołania zewnętrzne.
1 Definicja danych: Do utworzenia tabeli służy instrukcja CREATE TABLE, wymagająca podania nazwy tworzonej tabeli, nazwy każdej kolumny w tej tabeli, typu.
1 Procedury i funkcje CREATE PROCEDURE nazwa ([proc_parameter[,...]]) [characteristic...] routine_body CREATE FUNCTION nazwa ([func_parameter[,...]]) RETURNS.
Warszawska Wyższa Szkoła Informatyki Andrzej Kuska Promotor : dr inż. Paweł Figat Konsultant : mgr inż. Andrzej Ptasznik.
Relacyjny model danych. 2 Model danych Struktury danych Ograniczenia integralnościowe Operacje.
„Relacyjne Bazy Danych (Oracle)”
Zapis prezentacji:

Bazy danych 10. Z łą czenia i transakcje P. F. Góra semestr letni 2004/05

Bazy danych - wykład 102 Z łą czenia gdy potrzebujemy informacji z kilku powi ą zanych tabel SELECT T 1.A 1, T 1.A 2, T 2.B 1 FROM T 1 JOIN T 2 ON WHERE ; nazwa_tabeli. nazwa_kolumny

Bazy danych - wykład 103 Przyk ł ad Faktury(NrFaktury, NrDostawcy, Kwota, …) Dostawcy(NrDostawcy, Nazwa, NrKonta, …) SELECT Kwota, NrKonta FROM Faktury JOIN Dostawcy ON Faktury.NrDostawcy=Dostawcy.NrDostawcy WHERE NrFaktury=12345; SELECT Kwota, NrKonta FROM Faktury NATURAL JOIN Dostawcy WHERE NrFaktury=12345; równo ść powtarzaj ą cych si ę kolumn

Bazy danych - wykład 104 mysql> CREATE TABLE Faceci -> (Nr SMALLINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, -> Imie VARCHAR(16), -> Wiek SMALLINT UNSIGNED) -> ENGINE=InnoDB; Query OK, 0 rows affected (0.11 sec) Dla MySQL! mysql> CREATE TABLE Kobiety -> LIKE Faceci; Query OK, 0 rows affected (1.19 sec) mysql> DESCRIBE Kobiety; | Field | Type | Null | Key | Default | Extra | | Nr | smallint(5) unsigned | NO | PRI | NULL | auto_increment | | Imie | varchar(16) | YES | | NULL | | | Wiek | smallint(5) unsigned | YES | | NULL | | rows in set (0.19 sec) Nowa tabela utworzona na wzór starej, z dziedziczeniem nazw i w ł a ś ciwo ś ci kolumn etc. wykorzystamy to za chwil ę

Bazy danych - wykład 105 mysql> SELECT * FROM Faceci ORDER BY Imie ASC, Wiek DESC; | Nr | Imie | Wiek | | 4 | George | 17 | | 3 | Harry | 31 | | 1 | John | 24 | | 5 | John | 21 | | 6 | Keith | 30 | | 2 | Peter | 28 | rows in set (0.00 sec) mysql> SELECT * FROM Kobiety ORDER BY Imie; | Nr | Imie | Wiek | | 2 | Ann | 23 | | 6 | Beth | 30 | | 1 | Betty | 17 | | 4 | Joan | 31 | | 5 | Margaret | 29 | | 7 | Meredith | 33 | | 8 | Scarlet | 19 | | 3 | Susan | 24 | rows in set (0.00 sec)

Bazy danych - wykład 106 mysql> SELECT Faceci.Imie AS Pan, Faceci.Wiek AS WiekPana, -> Kobiety.Imie AS Pani, Kobiety.Wiek AS WiekPani -> FROM Faceci NATURAL JOIN Kobiety; Empty set (0.01 sec) mysql> SELECT Kobiety.Imie AS Pani, Faceci.Imie AS Pan -> FROM Kobiety JOIN Faceci ON Kobiety.Nr=Faceci.Nr; | Pani | Pan | | Betty | John | | Ann | Peter | | Susan | Harry | | Joan | George | | Margaret | John | | Beth | Keith | rows in set (0.01 sec) Zbiór pusty, bo z łą czenie naturalne wymaga ł oby równo ś ci wszystkich trzech kolumn

Bazy danych - wykład 107 mysql> SELECT Faceci.Imie AS Pan, Faceci.Wiek AS WiekPana, -> Kobiety.Imie AS Pani, Kobiety.Wiek AS WiekPani -> FROM Faceci JOIN Kobiety ON Faceci.Wiek < Kobiety.Wiek -> ORDER BY WiekPana, Pan, WiekPani; | Pan | WiekPana | Pani | WiekPani | | George | 17 | Scarlet | 19 | | George | 17 | Ann | 23 | | George | 17 | Susan | 24 | | George | 17 | Margaret | 29 | | George | 17 | Beth | 30 | | George | 17 | Joan | 31 | | George | 17 | Meredith | 33 | | Peter | 28 | Margaret | 29 | | Peter | 28 | Beth | 30 | | Peter | 28 | Joan | 31 | | Peter | 28 | Meredith | 33 | | Keith | 30 | Joan | 31 | | Keith | 30 | Meredith | 33 | | Harry | 31 | Meredith | 33 | rows in set (0.01 sec)

Bazy danych - wykład 108 Prawe z łą czenie SELECT … FROM T 1 RIGHT JOIN T 2 ON WHERE ; Prawie jak zwyk ł e z łą czenie, z tym, ż e wiersze z prawej tabeli nie maj ą ce odpowiedników w lewej tabeli s ą uzupe ł niane warto ś ciami NULL Kolejno ść tabel jest istotna!

Bazy danych - wykład 109 mysql> SELECT * FROM -> Faceci RIGHT JOIN Kobiety -> ON Faceci.Nr = Kobiety.Nr; | Nr | Imie | Wiek | Nr | Imie | Wiek | | 1 | John | 24 | 1 | Betty | 17 | | 2 | Peter | 28 | 2 | Ann | 23 | | 3 | Harry | 31 | 3 | Susan | 24 | | 4 | George | 17 | 4 | Joan | 31 | | 5 | John | 21 | 5 | Margaret | 29 | | 6 | Keith | 30 | 6 | Beth | 30 | | NULL | NULL | NULL | 7 | Meredith | 33 | | NULL | NULL | NULL | 8 | Scarlet | 19 | rows in set (0.07 sec)

Bazy danych - wykład 1010 mysql> SELECT * FROM -> Kobiety RIGHT JOIN Faceci -> ON Faceci.Nr = Kobiety.Nr; | Nr | Imie | Wiek | Nr | Imie | Wiek | | 1 | Betty | 17 | 1 | John | 24 | | 2 | Ann | 23 | 2 | Peter | 28 | | 3 | Susan | 24 | 3 | Harry | 31 | | 4 | Joan | 31 | 4 | George | 17 | | 5 | Margaret | 29 | 5 | John | 21 | | 6 | Beth | 30 | 6 | Keith | 30 | rows in set (0.00 sec)

Bazy danych - wykład 1011 mysql> SELECT Kobiety.* -> FROM Kobiety JOIN Faceci ON Kobiety.Nr = Faceci.Nr -> WHERE Faceci.Nr IS NULL; Empty set (0.04 sec) mysql> SELECT Kobiety.* -> FROM Kobiety LEFT JOIN Faceci ON Kobiety.Nr = Faceci.Nr -> WHERE Faceci.Nr IS NULL; | Nr | Imie | Wiek | | 7 | Meredith | 33 | | 8 | Scarlet | 19 | rows in set (0.00 sec) Konstrukcje JOIN i LEFT JOIN s ą cz ę sto traktowane jako synonimy, ale to nieprawda: Je ż eli w tabeli znajduj ą cej si ę po prawej stronie ON w konstrukcji LEFT JOIN nie ma ż adnych wierszy, dla prawej tabeli u ż yty zostanie wiersz z samymi warto ś ciami NULL; Znajd ź wiersze tabeli Kobiety nie maj ą ce odpowiedników w tabeli Faceci

Bazy danych - wykład 1012 And now for something completely different…

Bazy danych - wykład 1013 Transakcje Pojedynczy u ż ytkownik: 1. Ochrona szczególnie wa ż nych fragmentów – albo wykonuj ą si ę w ca ł o ś ci, albo wcale. System wielodost ę pny: 1.(jak wy ż ej) 2. Ró ż ne procesy klienckie odwo ł uj ą ce si ę do tej samej bazy (tabeli) nie mog ą si ę ze sob ą k ł oci ć. Np. przy przelewie pieni ę dzy z konta A na konto B trzeba zmodyfikowa ć salda obu kont.

Bazy danych - wykład 1014 Zasady ACID Atomicity – atomowość. Consistence – spójność. Isolation – izolacja. Durability – trwałość.

Bazy danych - wykład 1015 Wielodost ę p co mo ż e pój ść ź le? 1.Niespójno ść odczytów jedna transakcja mo ż e odczyta ć dane zmieniane przez drug ą transakcj ę, chocia ż transakcja ta nie zatwierdzi ł a jeszcze zmian. 2.Niepowtarzalno ś c odczytów transakcja odczytuje dane, nieco pó ź niej odczytuje je ponownie, a odczytane dane s ą inne, mimo i ż transakcja odczytuj ą ca nie zosta ł a jeszcze zatwierdzona. 3.Odczyty fantomowe jedna tabela dodaje wiersz, druga transakcja aktualizuje wiersze. Nowy wiersz powinien by ć zaktualizowany, a nie jest.

Bazy danych - wykład 1016 Poziomy izolacji ANSI Poziom izolacjiNiespójno ść odczytów Niepowtarzalno ść odczytów Odczyty fantomowe Read uncommitted OK Read committed NieOK Repeatable read Nie OK SerializableNie W MySQL ignorowane

Bazy danych - wykład 1017 Jak to robimy w SQL? BEGIN WORK; zapytanie 1 ; zapytanie 2 ; … zapytanie N ; COMMIT; Zmiany zostają zatwierdzone BEGIN WORK; zapytanie 1 ; zapytanie 2 ; … zapytanie N ; ROLLBACK; Zmiany zostają odwołane MySQL: SET AUTOCOMMIT=1; wszystkie instrukcje zatwierdzane automatycznie; SET AUTOCOMMIT=0; wszystko trzeba jawnie zatwierdza ć ; Transakcje tylko dla tabel InnoDB!

Bazy danych - wykład 1018 Ryzyko zwi ą zane z transakcjami Długo działające transakcje blokują dostęp innych użytkowników do danych, na których działa transakcja, dopóki nie zostanie ona zatwierdzona lub odwołana. Należy unikać transakcji wtedy, gdy wymagana jest interakcja z użytkownikiem – nalezy najpierw zebrać wszytskie dane, a dopiero potem rozpoczynać transakcji

Bazy danych - wykład 1019 (B)lokowanie tabel LOCK TABLES nazwa tabeli [READ | WRITE]; –Blokowanie w trybie READ chc ę czyta ć tabel ę i w tym czasie nie zezwalam innym na zapis; –Blokowanie w trybie WRITE chc ę zmienia ć zawarto ść tabeli i w tym czasie nie zezwalam innym ani na zapis, ani na odczyt; Zastrze ż enia takie same, jak dla transakcji: nie blokowa ć zbyt d ł ugo i niepotrzebnie. UNLOCK TABLES; zwalnia wszytskie zablokowane tabele.