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



Podobne dokumenty
Bazy danych 2. Wykład 3. Metodologia projektowania baz danych (projektowanie fizyczne)

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

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

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

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

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Paweł Rajba

Relacyjne bazy danych. Podstawy SQL

Wykład 2. SQL 1 Structured Query Lenguage

Autor: Joanna Karwowska

Bazy danych 6. Klucze obce. P. F. Góra

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

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

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

Wykład 8. SQL praca z tabelami 5

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

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

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

SQL - DDL. 1 Tabele systemowe. 2 Typy danych

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

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

Wykład 4. SQL praca z tabelami 1

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

Relacyjne bazy danych. Podstawy SQL

SQL język zapytań (query language) cz.1

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

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

Bazy danych - Materiały do laboratoriów VIII

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

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

Bazy danych 10. SQL Widoki

Język SQL, zajęcia nr 1

Systemy GIS Tworzenie zapytań w bazach danych

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

Uprawnienia, role, synonimy

Bazy danych 2. Wykład 4 Structured Query Language (SQL)

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

Ćwiczenie 14 autoryzacja

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

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

Bazy danych 9. SQL Klucze obce Transakcje

Język SQL, zajęcia nr 2

Przestrzenne bazy danych Podstawy języka SQL

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

Oracle11g: Wprowadzenie do SQL

Cele. Definiowanie wyzwalaczy

Wykład :45 BD-1 W_3

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

Bazy danych 7. SQL podstawy

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Aspekty aktywne baz danych

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

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

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

Wykład 5 Charakterystyka języka SQL. Elementy obliczeń relacyjnych.

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

Bazy danych. Dr inż. Paweł Kasprowski

Bazy danych 9. Klucze obce Transakcje

Bazy danych 9. Klucze obce Transakcje. P. F. Góra

SQL 4 Structured Query Lenguage

Zasady transformacji modelu DOZ do projektu tabel bazy danych

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

Bazy danych Ćwiczenia projektowe

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

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

SQL w języku PL/SQL. 2) Instrukcje języka definicji danych DDL DROP, CREATE, ALTER, GRANT, REVOKE

Wykład 5. SQL praca z tabelami 2

Zaawansowane bazy danych i hurtownie danych studia zaoczne II stopnia, sem. I

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)

SQL (ang. Structured Query Language)

Zbiór pytań nr 5. 2 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu

ACESS- zadania z wykorzystaniem poleceń SQL

Przykładowa baza danych BIBLIOTEKA

Obiekty bazy danych DB2

Projektowanie systemów baz danych

Wykład 05 Bazy danych

CREATE USER

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

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

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

Fizyczna struktura bazy danych w SQL Serwerze

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Baza danych inside. Biologiczne Aplikacje Baz Danych

MS SQL Język definiowania danych (DDL): ćwiczenia

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

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

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

Bazy danych i usługi sieciowe

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

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

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

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

Bazy danych Ćwiczenia projektowe

STANDARDY JĘZYKA SQL CECHY JĘZYKA SQL WADY I ZALETY

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

Transkrypt:

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

Dziedzina (DOMAIN) Dziedzina to zdefiniowany przez uŝytkownika zbiór dopuszczalnych wartości definiowany niezaleŝnie od definicji tabel Składnia CREATE DOMAIN NazwaDziedziny [AS] TypDanych [[NOT] NULL] [DEFAULT wartość_domyślna] [CHECK (warunek_selekcji)] Warunek selekcji moŝe odnosić się do innej tabeli Do zmiany nazwy dziedziny uŝywamy polecenia ALTER DOMAIN o składni ALTER DOMAIN NazwaDziedziny RENAME NowaNazwa Dziedzinę usuwamy poleceniem DROP DOMAIN NazwaDziedziny [RESTRICT CASCADE]

Dziedzina (DOMAIN) Przykład1 CREATE DOMAIN Płeć AS CHAR NOT NULL DEFAULT 'M' CHECK (VALUE IN ('M', 'K')); Przykład 2 CREATE DOMAIN NumerBiura AS CHAR(4) NULL CHECK (VALUE IN (SELECT biuronr FROM Biuro));

Tworzenie tabeli (CREATE TABLE) CREATE TABLE [ właściciel.]nazwatabeli ( { definicja kolumny[,...]} [ograniczenie dla tabeli[,...]) definicja kolumny : nazwa_kolumny typ_danych [ [ NOT ] NULL ] [UNIQUE] [ DEFAULT wartość_domyślna ] [ ograniczenie dla kolumny [... ]] ograniczenie dla kolumny : [ CONSTRAINT nazwa_ograniczenia ] { PRIMARY KEY REFERENCES NazwaTabeli [( nazwa_kolumny ) ] [ akcja ] } CHECK ( warunek ) ograniczenie dla tabeli: [ CONSTRAINT nazwa_ograniczenia ] {UNIQUE ( nazwa_kolumny[,...] ) PRIMARY KEY ( nazwa_kolumny1[,... ]) CHECK ( warunek ) ograniczenie klucza obcego} ograniczenie klucza obcego FOREIGN KEY [(nazwa_kolumny[,...] ) ] REFERENCES NazwaTabeli [(nazwa_kolumny[,... ]) ] [akcja] [ CHECK ON COMMIT] akcja : ON { UPDATE DELETE }{ CASCADE SET NULL SET DEFAULT RESTRICT }

Więzy integralności NO ACTION lub RESTRICT - uniemoŝliwia usunięcie (modyfikację) krotki z relacji nadrzędnej jeśli występują jakiekolwiek krotki od niej zaleŝne. CASCADE usunięcie (modyfikacja) krotki nadrzędnej pociąga za sobą usunięcie (modyfikację) wszystkich związanych z nią krotek podrzędnych; jeśli krotka podrzędna pełni rolę nadrzędną w innym związku, analogiczna operacja usuwania (modyfikacji) powinna być wykonana dla krotek podrzędnych tego związku. SET NULL usunięcie krotki nadrzędnej pociąga za soną automatyczne nadanie wartości pustych odpowiednim kluczom obcym wszystkich krotek SET DEFAULT usunięcie krotki nadrzędnej pociąga za soną automatyczne nadanie wartości domyślnych odpowiednim kluczom obcym wszystkich krotek podrzędnych.

Tworzenie tabeli (CREATE TABLE) Przykład 1. RównowaŜne sformułowania CREATE TABLE Product ( product_num INTEGER PRIMARY KEY); CREATE TABLE Product ( product_num INTEGER, PRIMARY KEY ( product_num ) Przykład 2 Nieokreślona kolumna w klauzuli FOREIGN KEY CREATE TABLE library_books ( isbn CHAR(20) PRIMARY KEY, copyright_date DATE, title CHAR(100), author CHAR(50), FOREIGN KEY location REFERENCES room)

Tworzenie tabeli (CREATE TABLE) Przykład 3. CREATE TABLE Orders ( order_num INTEGER NOT NULL PRIMARY KEY, date_ordered DATE, name CHAR(80)); CREATE TABLE Order_item ( order_num INTEGER NOT NULL, item_num SMALLINT NOT NULL CHECK(item_num<100), PRIMARY KEY (order_num, item_num), FOREIGN KEY (order_num) REFERENCES Orders (order_num) ON DELETE CASCADE)

Tworzenie tabeli (CREATE TABLE) Przykład 4. CREATE TABLE borrowed_book ( date_borrowed DATE NOT NULL DEFAULT CURRENT DATE, date_returned DATE, book CHAR(20) REFERENCES library_books (isbn), PRIMARY KEY (book), CONSTRAINT GoodDate CHECK( date_returned >= date_borrowed ));

Modyfikacja tabeli (ALTER TABLE) Polecenie ALTER TABLE pozwala zmienić strukture tabeli, która została utworzona Składnia ISO zawiera sześć opcji dodanie nowej koumny do tabeli usunięcie kolumny z tabeli dodanie nowych więzów tabeli usunięcie więzów tabeli ustalenie wartości domyślnej dla kolumny usunięcie wartości domyślnej kolumny zmiana nazwy tabeli, kolumny i reguły

Modyfikacja tabeli (ALTER TABLE) Składnia: ALTER TABLE NazwaTabeli [ADD [COLUMN] {definicja kolumny}] [DROP [COUMN] NazwaKolumny [RESTRICT CASCADE] [ADD [CONSTRAINT [nazwa_ograniczenia]] ograniczenie dla tabeli] [DROP CONSTRAINT nazwa_ograniczenia [RESTRICT CASCADE] [ALTER NazwaKolumny modyfikacja_kolumny] [ALTER nazwa_ograniczenia CHECK ( nowy_warunek ) modyfikacja kolumny : SET DEFAULT wartość domyślna DROP DEFAULT ADD [ CONSTRAINT ] nazwa_ograniczenia CHECK ( warunek ) DROP CONSTRAINT nazwa_ograniczenia

Modyfikacja tabeli (ALTER TABLE) Przykład 1. ALTER TABLE employee ADD office CHAR(20) DEFAULT 'Boston' Przykład 2. ALTER TABLE employee DELETE office Przykład 3. ALTER TABLE customer ADD sales_contact INTEGER REFERENCES employee (emp_id) ON UPDATE CASCADE ON DELETE SET NULL

Modyfikacja tabeli (ALTER TABLE) Przykład 4. ALTER TABLE Personel ALTER stanowisko DROP DEFAULT Przykład 5. ALTER TABLE Personel ALTER płeć SET DEFAULT K' Przykład 6. ALTER TABLE Nieruchomość DROP CONSTRAINT PracownikNadzorującyNieZaDuŜo

Usuwanie tabeli (DROP TABLE) Usuwamy tabelę pleceniem DROP TABLE Składnia DROP TABLE NazwaTabeli [RESTRICT CASCADE] Polecenie DROP TABLE usuwa tabelę wraz z wszystkimi wierszami, jeŝeli chemy tylko usunąć wiersze stosujemy polecenie DELETE

Tworzenie indeksów (CREATE INDEX) Indeks jest struktura przyspieszającą wyszukiwanie wierszy w tabeli Składnia CREATE [ UNIQUE ] INDEX nazwa_indeksu ON NazwaTabeli ( NazwaKolumny [ ASC DESC ] [,...]) Jeśli w poleceniu występuje klauzula UNIQUE system będzie kontrolował unikalność wartości kolumny czy kolumn, według których jest tworzony indeks Najlepiej jest tworzyć unikalne indeksy w momencie tworzenia tabeli Przykład 1. CREATE INDEX employee_name_index ON employee ( emp_lname ASC, emp_fname DESC ) Usuwamy indeks poleceniem DROP INDEKS nazwa_indeksu

Wybór indeksów Wskazówki dotyczące tworzenia listy poŝądanych indeksów NaleŜy utworzyć indeks dla klucza głównego (jeśli nie robi tego BDMS) Jeśli często występują odwołania do klucza obcego, warto utworzyć dla niego indeks (jeśli nie robi tego BDMS). NaleŜy utworzyć indeks pomocniczy dla kolumn, które nie są kluczami głównymi ani kluczami obcymi, ale mogą być uŝywane w złoŝonych powiązaniach NaleŜy utworzyć indeksy pomocnicze dla atrybutów intensywnie wykorzystywanych w: Kryteriach selekcji ORDER BY GROUP BY Innych operacjach wymagających sortowania

Wybór indeksów Wskazówki dotyczące tworzenia listy poŝądanych indeksów Nie naleŝy indeksować małych relacji NaleŜy unikać indeksowania często modyfikowanego atrybutu bądź relacji Nie jest wskazane indeksowanie atrybutu słuŝącego realizacji zapytań, których wynikiem jest istotna frakcja krotek w relacji (>25%) NaleŜy unikać indeksowania atrybutów składających się z długich łańcuchów

Wybór indeksów Z utrzymywaniem i uŝywaniem indeksów wiąŝe się dodatkowy koszt, na który składa się m.in.: Koszt dodania nowego rekordu indeksowego do kaŝdego indeksu pomocniczego przy kaŝdym dodaniu krotki do relacji; Koszt modyfikacji indeksów pomocniczych wynikający z odpowiednich modyfikacji krotek w relacji; Wzrost rozmiaru pamięci dyskowej; MoŜliwość obniŝenia wydajności na etapie optymalizacji zapytań, będąca wynikiem rozwaŝania przez optymalizator uŝycia kaŝdego z indeksów Przy dodawaniu indeksów pomocniczych naleŝy rozwaŝyć, czy ten dodatkowy koszt zostanie zrekompensowany poprzez uzyskaną dzięki indeksowi poprawę wydajności.

Perspektywy (VIEW) Perspektywy tworzymy poleceniem CREATE VIEW Składnia CREATE VIEW nazwa_perspektywy [ ( column-name [,...] ) ] AS zapytanie_select [ WITH CHECK OPTION ] Przykład 1. Perspektywa pozioma CREATE VIEW PersonelBiura3 AS SELECT * FROM Personel WHERE biuronr='003'; Przykład 2. Perspektywa pionowa CREATE VIEW Pesonel3 AS SELECT prcowniknr, imię, nazwisko, stanowisko, płeć FROM PersonelBiura3

Perspektywy (VIEW) Przykład 3. Perspektywa grupująca i perspektywa złą łączenia CREATE VIEW LiczbaNieruchomościPracownika (biuronr, pracowniknr, liczba) AS SELECT p.biuronr, p.pracowniknr, COUNT(*) FROM Personel p, Nieruchomość d WHERE p.pracowniknr=d.pracowniknr GROUP BY p.biuronr, p.pracowniknr; Usuwanie perspektywy wykonujemy za pomocą polecenia DROP VIEW Składnia DROP VIEW nazwa_perspektywy [RESTRICT CASCADE]

Modyfikowanie danych poprzez perspektywy (VIEW) Standard ISO nakłada kilka ograniczań na moŝliwość definiowania i wykorzystywania perspektyw. Nie wolno wykonywać złączenia perspektywy grupującej z tabelą bazową lub inna perspektywą JeŜeli kolumna perspektywy jest wyliczana jako funkcja agregująca, to nazwa takiej kolumny moŝe pojawić sie tylko w klauzulach SELECT lub ORDER BY zapytań wykorzystujących tę perspektywę. Przykład 4. błędna formuła SELECT COUNT(liczba) FROM LiczbaNieruchomościPracownika Przykład 5. błę łędna formuła SELECT * FROM LiczbaNIeruchomościPracownika WHERE liczba>2

Modyfikowanie danych poprzez perspektywy (VIEW) Istnieje moŝliwość dokonywania modyfikacji danych poprzez perspektywy Standard ISO stwierdza, Ŝe perspektywa jest modyfikowalna wtedy i tylko wtedy gdy: Wiersz dodany poprzez perspektywę musi spełniać więzy integralności tabeli bazowej Nie występuje w niej opcja DISTINCT, czyli w wyniku zapytania nie są usuwane powtórzenia wierszy KaŜdy element na liście SELECT zapytania definiującego perspektywę jest nazwa kolumny (a nie stalą, wyraŝeniem, czy funkcją agregującą) i Ŝadna kolumna nie występuje więcej niŝ jeden raz. W klauzuli FROM jest określona tylko jedna tabela, czyli istnieje tylko jedna tabela źródłowa dla perspektywy - w ten sposób wykluczone są perspektywy oparte na złączeniach, czy sumie UNION W zapytaniu definiującym perspektywy nie występuje klauzula GROUP BY Klauzula WHERE nie zawiera Ŝadnego zagnieŝdŝonego podzapytania SELECT, w którym występuje odwołanie do tabeli znajdującej się na liście FROM

Klauzula WITH CHECK OPTION Klauzula WITH CHECK OPTION gwarantuje, Ŝe wiersze, które nie spełniają warunku WHERE zapytania definiującego, nie mogą być dodane poprzez perspektywę do tabeli (tzw. wiersze migrujące) Przyakład 6: CREATE VIEW PersonelBiura3 AS SELECT * FROM Personel WHERE biuronr='003 WITH CHECK OPTION; UPDATE PersonelBiura3 SET biuronr= B005 WHERE pracowniknr= SG37

Wady i zalety perspektyw Zalety perspektyw NiezaleŜność danych perspektywa moŝe reprezentować spójny i niezmienny obraz struktury bazy danych pomimo zmian dokonywanych w tabelach bazowych (pomimo dodawania i usuwania kolumn, zmiany związków, dzielenia tablic, zmiany ich struktury i nazwy) Poprawa bezpieczeństwa kaŝdy uŝytkownik moŝe otrzymać uprawnienia do bazy danych poprzez niewielki zbiór perspektyw, które zawierają potrzebne mu dane Uproszczenie zapytań Dostosowanie do uŝytkownika Integralność danych klauzula WITH CHECK OPTION

Wady i zalety perspektyw Wady perspektyw Ograniczona moŝliwość modyfikacji pewnych danych nie moŝna modyfikować poprzez perspektywy Ograniczenia struktury jeśli tworzona była perspektywa ze wszystkich kolumn tabeli i dodaliśmy nowe kolumny, to nie będą one występowały w perspektywie Wydajność korzystanie z perspektyw moŝe spowodowac spadek wydajności

Mechanizmy bezpieczeństwa (GRANT) Mechanizm bezpieczeństwa jest oparty na takich elementach jak: Identyfikatory uŝytkowników Prawa własności Prawa dostępu Administrator bazy danych (DBA) wyróŝniony uŝytkownik DBA ma moŝliwość tworzenia nowych uŝytkowników KaŜde polecnie SQL wykonywane jest w imieniu pewnego uŝykownika KąŜdy obiekt stworzony w DBMS ma swojego właściciela jest on jedyną osoba, która i ma do niego pełny dostęp Identyfikator uŝytkownika jest wykorzystywany do określenia, do jakich obiektów bazy danych uŝytkownik ma dostęp i jakie operacje moŝe na nich wykonywać

Mechanizmy bezpieczeństwa (GRANT) Osoba z uprawnieniami administratora bazy danych moŝe tworzyć uŝytkowników oraz grupy uŝytkowników Tworzenie uŝytkowników i grup odbywa się w następujący sposób Składnia: GRANT CONNECT TO nazwa_uŝykownika [, ] IDENTIFIED BY password [, ] gdzie nazwa_uŝytkownika jest teŝ nazwą grupy, której będzie moŝna nadać uprawnienia podobnie jak uŝytkownikowi Administrator moŝe następnie nadać utworzonemu uŝytkownikowi uprawnienia DBA, RESOURCES, GROUP Składnia GRANT {DBA RESOURCE GROUP} TO nazwa_uŝytkownika [, ]

Mechanizmy bezpieczeństwa (GRANT) Aby utworzyć grupę musimy utworzonemu uŝytkownikowi, który ma być grupą, nadać uprawnienia grupy Składnia: GRANT GROUP, TO nazwa_uŝytkownika [, ] Następnie moŝemy przypisać uŝytkowników do grupy Składnia: GRANT MEMBERSHIP IN GROUP nazwa_grupy [, ] TO nazwa_uŝytkownika [, ]

Prawa dostępu (GRANT) Prawa dostępu do tabel opisane w standardzie ISO to: SELECT - umoŝliwia odczyt danych MoŜe być limitowany do kolumn INSERT - umoŝliwia dodawanie wierszy do tabeli UPDATE - umoŝliwia modyfikację danych MoŜe być limitowany do kolumn DELETE - umoŝliwia usuwanie wierszy z tabeli ALTER - umoŝliwia wydanie polecenia ALTER TABLE Polecenia zmiany struktury tabeli! REFERENCES - umoŝliwia dodawanie kluczy obcych i indeksów MoŜe być limitowany do kolumn ALL PRIVILLEGES - daje uprawnienia do wszystkich powyŝszych operacji

Prawa dostępu (GRANT) UŜytkownik, który tworzy tabelę staje sie jej właścicielem i uzyskuje do niej pełny dostęp UŜytkownik, który tworzy pespektywę staje sie jej właścicielem, ale niekoniecznie posiada do niej pełne prawa - prawa INSERT, UPDATE i DELETE do perspektywy jej właściciel uzyskuje tylko wtedy gdy posiada odpowiednie prawa do tabel występujących w perspektywie Składnia GRANT {ALL [ PRIVILEGES ], ALTER, DELETE, INSERT, REFERENCES [ ( nazwa_kolumny [,... ]) ], SELECT [ ( nazwa_kolumny [,...] ) ], UPDATE [ ( nazwa_kolumny [,...] ) ]} ON NazwaTabeli TO {nazwa_uŝytkownika [,...] PUBLIC} [ WITH GRANT OPTION ] Klauzula WITH GRANT OPTION pozwala zbywać uzyskane prawo innym uŝytkownikom

Prawa dostępu (GRANT) Prawa dostępu moga byc przekazywane przez: DBA Właściciela tabeli UŜytkowników z opcją WITH GRANT OPTION UŜytkownik będący członkami grupy dziedziczą tylko i wyłącznie prawa dostępu do tabel, ale nie dziedziczą praw DBA, RESOURCE, GROUP UWAGA: Grupa moŝe tworzyć tabelę jeśli ma uprawnienia co najmniej RESOURCE logując się nazwą_uŝytkownika będącego nazwą grupy

Prawa dostępu (GRANT) Prawa dostępu do tabel odbierane są poleceniem REVOKE Składnia REVOKE [GRANT OPTION FOR]{lista_praw ALL[PRIVILEGES]} ON NazwaTabeli FROM {lista_identyfikatorów_uŝytkowników PUBLIC} [RESTRICT] [CASCADE] Inne uprawnienia mogą być usuwane przez administratora za pomocą polecenia Składnia REVOKE specialne_uprawnienia [, ] FROM userid [, ] Gdzie specialne_uprawnienia CONNECT DBA GROUP MEMBERSHIP IN GROUP userid,... RESOURCE

Prawa dostępu (GRANT) UŜytkownicy mogą tworzyć procedury składowane (o tym później). UŜytkownik moŝe wykonywać taką procedurę o ile ma do niej uprawnienia. Prawo wykonywania procedury nadawane jest poleceniem GRANT Składnia GRANT EXECUTE ON procedure_name TO nazwa_uŝytkownika [, ] Prawo wykonywania procedury odbierane jest poleceniem REVOKE Składnia REVOKE EXECUTEON procedure-name FROM userid [, ]

Dziękuję za uwagę