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

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

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

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

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

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

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS.

Ćwiczenie zapytań języka bazy danych PostgreSQL

Laboratorium Bazy danych SQL 3 1

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

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

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

Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING.

Relacyjne bazy danych. Podstawy SQL

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

Widok Connections po utworzeniu połączenia. Obszar roboczy

Ćwiczenie 8 DDL. Sekwencje, indeksy, perspektywy. Ćwiczenie 8 DDL. Wymagania: Bazy Danych

Relacyjne bazy danych. Podstawy SQL

Przestrzenne bazy danych Podstawy języka SQL

ACESS- zadania z wykorzystaniem poleceń SQL

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

Paweł Rajba

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

Wprowadzenie do języka SQL

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

Oracle11g: Wprowadzenie do SQL

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

Optymalizacja poleceń SQL Metody dostępu do danych

Procedury wyzwalane. Rozdział 13. Procedury wyzwalane. Cele stosowania procedur wyzwalanych. Definiowanie procedury wyzwalanej DML

Systemy GIS Tworzenie zapytań w bazach danych

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

Język SQL. Rozdział 2. Proste zapytania

Wykład 8. SQL praca z tabelami 5

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

Oracle PL/SQL. Paweł Rajba.

Język PL/SQL. Rozdział 6. Procedury wyzwalane

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Baza danych inside. Biologiczne Aplikacje Baz Danych

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

SQL do zaawansowanych analiz danych część 1.

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

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

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

Grupowanie i funkcje agregujące

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

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

Bazy danych 10. SQL Widoki

Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. Użytkownicy i schematy (1) Użytkownicy i schematy (2) baza danych: ZESP99

Wprowadzenie. Tworzenie widoków

Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. UŜytkownicy i schematy (2) UŜytkownicy i schematy (1) baza danych: ZESP99

Bazy Danych i Usługi Sieciowe

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

1. Wyzwalacze BD (ang. triggers)

bazy danych - heterogeniczność producenci funkcjonalność modele danych protokoły komunikacyjne

Język PL/SQL Procedury i funkcje składowane

Ćwiczenie 14 autoryzacja

Uprawnienia, role, synonimy

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek

Optymalizacja poleceń SQL

Bazy danych i usługi sieciowe

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

"Kilka słów" o strojeniu poleceń SQL w kontekście Hurtowni Danych wprowadzenie. Krzysztof Jankiewicz

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

Język SQL, zajęcia nr 2

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

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

Bazy danych 2. Wykład 5 Structured Query Language (SQL) c.d. DDL

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

SQL w praktyce. Miłej i owocnej nauki!!!

Wykład 5. SQL praca z tabelami 2

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

PL/SQL. Zaawansowane tematy PL/SQL. Piotr Medoń

1 Projekt fizyczny 1. 3 Perspektywy słownika danych Źródła 12

Bazy Danych. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Cwiczenie 4. Połączenia, struktury dodatkowe

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

Język SQL, zajęcia nr 1

Bazy danych - Materiały do laboratoriów VIII

Ćwiczenie rozpocznie się od wprowadzenia do laboratorium, po którym omówimy składnię ę polecenia INSERT pozwalającego ą na wstawianie krotek do

Ćwiczenie 6 - DML. Tworzenie, modyfikacja i usuwanie krotek. Podstawy poleceń COMMIT i ROLLBACK. Ćwiczenie 6 DML. Wymagania: Bazy Danych

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

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

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

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

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

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

Podstawy języka SQL cz. 2

SQL (ang. Structured Query Language)

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

Procedury i funkcje składowane

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

Optymalizacja poleceń SQL Wprowadzenie

Wymagania: Konstrukcja prostych zapytań w języku SQL, umiejętność wykorzystania funkcji wierszowych i agregujących.

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Zarzadzanie transakcjami. Transakcje

Pakiety podprogramów Dynamiczny SQL

Typy Oracle atrybutów relacji Typ NUMBER (1)

Typy Oracle atrybutów relacji Typ NUMBER (1)

Transkrypt:

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

Perspektywa Perspektywa (ang. view) jest strukturą logiczną, udostępniającą wybrane informacje przechowywane w relacjach bazy danych. Własności: definiowana w oparciu o relacje (relacje bazowe) lub inne perspektywy (perspektywy bazowe), nie posiada własnych danych, nie jest materializowana na dysku, przechowywana w postaci zapytania. Cele stosowania: ograniczenie dostępu do danych - zabezpieczenie przed nieautoryzowanym dostępem, uproszczenie schematu bazy danych, uproszczenie zapytań, uniezależnienie aplikacji od zmian w strukturze bazy danych, prezentowanie danych w inny sposób niż dane w relacjach i perspektywach bazowych (m.in. zmiana nazw atrybutów, formatów danych, itp.), dodatkowa kontrola poprawności wprowadzanych danych (perspektywy z kontrolą ograniczeń integralnościowych). 2

Tworzenie perspektywy Polecenie CREATE VIEW: CREATE [OR REPLACE] VIEW nazwa_perspektywy AS [ ( kolumna 1, kolumna 2,...) ] SELECT zapytanie definiujące perspektywę [ WITH READ ONLY WITH CHECK OPTION [ CONSTRAINT nazwa_ograniczenia ] ]; CREATE OR REPLACE VIEW prac_zesp_30 (id, nazwisko, posada, pensja) AS SELECT id_prac, nazwisko, etat, placa_pod FROM pracownicy WHERE id_zesp = 30; SELECT * FROM prac_zesp_30; 3

Perspektywy proste: Rodzaje perspektyw oparte na jednej relacji bazowej, nie zawierają: operatorów zbiorowych, operatora DISTINCT, funkcji grupowych i analitycznych, grupowania, sortowania, klauzul CONNECT BY i START WITH, kolekcji i podzapytań w klauzuli SELECT. Perspektywy złożone: oparte na wielu relacjach i perspektywach bazowych, wykorzystują operatory zbiorowe, funkcje, grupowanie, sortowanie, połączenia, funkcje analityczne, itd. Perspektywy proste mogą służyć do wstawiania, modyfikowania i usuwania krotek z relacji bazowej. Perspektywy złożone służą tylko i wyłącznie do odczytu (istnieją nieliczne wyjątki od tej reguły). 4

Perspektywy modyfikowalne (1) Perspektywa jest modyfikowalna (ang. updatable) jeśli nie zawiera: operatorów zbiorowych, operatora DISTINCT, funkcji grupowej lub analitycznej, klauzul GROUP BY, ORDER BY, CONNECT BY, START WITH, połączeń (z pewnymi wyjątkami), podzapytań w klauzuli SELECT. Jeśli perspektywa zawiera formuły lub pseudokolumny to polecenia INSERT i UPDATE nie mogą dotyczyć tych pseudokolumn. Jeśli perspektywa zawiera połączenie, to operacja DML musi dotyczyć tylko jednej relacji bazowej, a ponadto: Dla operacji INSERT wszystkie wypełniane wartościami atrybuty muszą pochodzić z relacji zachowującej klucz, brak klauzuli WITH CHECK OPTION. Dla operacji UPDATE wszystkie modyfikowane atrybuty muszą pochodzić z relacji zachowującej klucz; nie można stosować klauzuli WITH CHECK OPTION jeśli konieczne jest modyfikowanie wartości atrybutów z warunku połączeniowego; perspektywa nie może zawierać połączenia zwrotnego (przy obecności kl. WITH CHECK OPTION). 5

Perspektywy modyfikowalne (2) Dla operacji DELETE operacja połączenia może dotyczyć tylko jednej relacji zachowującej klucz, w przypadku kilku tabel zachowujących klucz rekordy są usuwane z tabeli pierwszej w kolejności w klauzuli FROM. Relacja zachowuje klucz, jeśli każda unikalna wartość w relacji jest też unikalna w perspektywie. 6

Perspektywy proste Perspektywa prosta: CREATE OR REPLACE VIEW adiunkci (id_prac, nazwisko, placa_pod) AS SELECT id_prac, nazwisko, placa_pod FROM pracownicy WHERE etat = 'ADIUNKT'; 7

Perspektywy złożone (1) Perspektywa złożona niemodyfikowalna oparta na jednej relacji: CREATE OR REPLACE VIEW place_etaty (etat, srednia, maksymalna, liczba) AS SELECT etat, AVG(placa_pod), MAX(placa_pod), COUNT(*) FROM pracownicy GROUP BY etat ORDER BY MAX(placa_pod) DESC; perspektywa jest niemodyfikowalna, ponieważ zawiera funkcje agregujące oraz klauzulę GROUP BY. 8

Perspektywy złożone (2) Perspektywa złożona niemodyfikowalna oparta na wielu relacjach bazowych: CREATE OR REPLACE VIEW prac_zesp_etat (id, id_zesp, nazwisko, nazwa, etat,kategoria) AS SELECT p.id_prac, id_zesp, p.nazwisko, z.nazwa, p.etat, e.nazwa FROM pracownicy p JOIN zespoly z USING (id_zesp) JOIN etaty e ON (p.placa_pod BETWEEN e.placa_min AND e.placa_max) WHERE p.etat IN ('DYREKTOR','ASYSTENT','SEKRETARKA'); perspektywa niemodyfikowalna żadna z trzech tabel nie zachowuje kluczy, krotka z każdej tabeli występuje w perspektywie wielokrotnie. 9

Perspektywy złożone (3) Perspektywa złożona modyfikowalna oparta na wielu relacjach bazowych: CREATE OR REPLACE VIEW prac_zesp (id, nazwisko, nazwa) AS SELECT id_zesp, nazwisko, nazwa FROM pracownicy JOIN zespoly USING (id_zesp); perspektywa modyfikowalna tabela Pracownicy zachowuje klucz, każdy pracownik występuje w perspektywie co najwyżej raz. 10

Perspektywa weryfikująca ograniczenia Perspektywa weryfikująca ograniczenia: CREATE OR REPLACE VIEW prac_minimum (id, nazwisko, placa, etat) AS SELECT id_prac, nazwisko, placa_pod, etat FROM pracownicy WHERE placa_pod < 1000 WITH CHECK OPTION CONSTRAINT za_wysoka_placa; Polecenie, modyfikujące dane udostępniane przez perspektywę, zostanie odrzucone, jeśli w wyniku jego działania zbiór rekordów perspektywy zostałby pomniejszony. UPDATE prac_minimum SET placa = 2000 WHERE nazwisko = 'MAREK'; ORA-01402: naruszenie klauzuli WHERE dla perspektywy z WITH CHECK OPTION Mechanizm działa również dla polecenia INSERT. 11

Kompilowanie perspektywy ALTER VIEW nazwa_perspektywy [COMPILE] [ADD MODIFY DROP CONSTRAINT ograniczenie]; Usuwanie perspektywy DROP VIEW nazwa_perspektywy [CASCADE CONSTRAINTS]; Słownik bazy danych Opis zdefiniowanych perspektyw: USER_VIEWS. Informacje o możliwości uaktualniania danych dostępnych przez perspektywę: USER_UPDATABLE_COLUMNS. 12