cw6 08 stud, Studia, bazy danych, LABORATORIUM I-SZY STOP


Ćwiczenie 6

  1. AUTORYZACJA DOSTĘPU

W SZBD Oracle dostęp do danych realizuje się przy użyciu poleceń grant i revoke. W celu udostępnienia obiektów innym użytkownikom systemu nadajemy im odpowiednie przywileje poleceniem grant o formacie:

grant przywileje

on obiekt

to użytkownik;

W przypadku relacji i perspektyw jest możliwe nadanie poniższych przywilejów:

select

odczyt danych z relacji

insert

wstawianie krotek do relacji

update

uaktualnianie krotek relacji

delete

usuwanie krotek relacji

alter

zmiana schematu relacji

index

tworzenie indeksów relacji

all

wszystkie

Dostęp do cudzej relacji wymaga, oprócz uzyskania odpowiedniego przywileju, poprzedzeniem nazwy relacji identyfikatorem jej właściciela. Długie i niewygodne nazwy mogą być zastępowane ich synonimami, które definiujemy za pomocą polecenie create synonym o następującym formacie:

create [public] synonym nazwa for obiekt;

public- synonim dostępny dla wszystkich użytkowników bazy danych. Prawo ich tworzenia posiada administrotor. Pominięcie słowa public spowoduje utworzenie synonim prywatnego użytkownika

obiekt - obiekt bazy danych.

Np.:

SQL> create synonym pr

i odwołanie się do relacji poprzez synonim:

SQL> select * from pr;

Jeśli określony obiekt chcemy udostępnić wszystkim użytkownikom, to zamiast jego identyfikatora piszemy public, np.:

SQL>grant select

Nadanie przywileju jednemu użytkownikowi nie ogranicza możliwości jego nadania innemu, za wyjątkiem, gdy w poleceniu grant użyjemy klauzuli with grant option. Np.:

SQL>grant select

Synonim prywatny usuwamy poleceniem

SQL> drop synonym nazwa;

a publiczny - poleceniem:

SQL> drop public synonym nazwa;

Administrator SZBD jest jedynym użytkownikiem, który może rejestrować nowych użytkowników w systemie poleceniem o formacie:

grant przywilej to użytkownik identified by hasło;

najczęściej używanymi przywilejami to:

connect możliwość dołączenia się do SZBD

resource możliwość tworzenia obiektów obiektów bazy danych, np. relacji, liczników,

dba możliwość definiowania użytkowników oraz pełnego dostępu do obiektów i funkcji SZBD

W celu odwołania nadanego przywileju stosujemy polecenie revoke o formacie:

revoke przywileje

on relacja/perspektywa

from użytkownicy;

Zadania do samodzielnego wykonania

Zad. 1. W bazie danych zostało utworzonych 2 użytkowników stud1 i stud2. Jako użytkownik stud2 utworzyć relacje prac_stud2 zawierającą dane z relacji prac. Użytkownik stud1 może wyświetlać zawartość tej relacji poleceniem:

SQL> select * from prac_stud1;

Zad. 2. Zmodyfikować prawa użytkownika stud1 do relacji prac_stud2 tak, aby mógł wykonywać na niej wszystkie operacje DML i DDL oraz nadawać przywileje innym użytkownikom do tej relacji.

II WSPÓŁBIEŻNA REALIZACJA TRANSAKCJI

Użytkownik może manipulować danymi za pomocą poleceń SQL*Plus tzw. Tryb ad hoc) lub za pośrednictwem aplikacji. Związane jest to z wystąpieniem określonej transakcji, którą możemy traktować jako funkcję przejścia bazy danych ze stanu S1 do stanu S2. Ponieważ z każdej bazy danych korzysta wielu użytkowników, wazne jest aby kilka transakcji było wykonywanych współbieżnie. Problem określania poprawnego uporządkowania akcji współbieżnie wykonywanych transakcji jest rozwiązywany trzema grupami metod:

Rozszerzeniem SZBD Oracle jest wyróżnienie dwóch klas transakcji - DML i DDL. Transakcje DML składają się z dowolnej liczby poleceń języka manipulowania danymi i zapytań i traktowane są niepodzielnie (atomowo). Transakcje DDL zawierają dokładnie jedno polecenie języka definiowania danych. Początkiem transakcji DDL jest jej pierwsze polecenie, a końcem jedno z poniższych zdarzeń:

Operacje wykonywane pomiędzy dwoma poleceniami commit - to pojedyncza transakcja. Oprócz blokad zakładanych niejawnie przez SZBD, użytkownik ma możliwość ustawienia blokady relacji za pomoca polecenia lock table o formacie:

lock table nazwa_relacji in tryb [nowait];

tryb - może przyjmować różne wartości - najczęściej share i exclusive,

nowait - powoduje natychmiastowe przerwanie próby blokowania relacji, jeśli nie może ona być założona, np.:

SQL>lock table zesp in exclusive mode;

Uwaga:

Jeśli chcemy częściowo zachować daną transakcję, można to zrobić przy użyciu tzw. punktu zachowania poleceniem savepoint. Polecenie to ma format:

Savepoint nazwa_punktu_zachowania;

III. ZWIĘKSZANIE EFEKTYWNOŚCI DOSTĘPU DO RELACJI

Efektywność dostępu do relacji podwyższa się poprzez indeksowanie plików dyskowych (przechowujących relacje), który to plik jest porządkowany wg wartości klucza o wartościach numerycznych, znakowych i stanowiących kombinację tych pól.

Najczęściej stosowanym jest indeks o strukturze B-drzewa, którego podstawą konstrukcji jest założenie, że ponieważ indeks jest plikiem, może posiadać on również swój indeks.

W systemie Oracle indeksy są implementowane za pomocą tzw. zrównoważonych B-drzew, będących rozszerzeniem B-drzew. Wyróżnia się 3 typy indeksów:

unique

zapewnia unikalność wartości atrybutów, na których został założony

non unique

zapewnia możliwie najszybszą realizację zapytań

compressed

typ domyślny, minimalizujący pamięć przeznaczoną na reprezentacje indeksu

non compressed

minimalizuje czas dostępu do indeksu

single column

założony na pojedynczym atrybucie

concatenated

na skonkatenowanych atrybutach

W celu utworzenia indeksu stosujemy polecenie create indeks o formacie:

create [unique[ index nazwa_indeksu

on relacja (atrybut1, atrybut2);

Przykład:

SQL>create unique index i_zesp

2 on prac (id_zesp);

Zadania do samodzielnego wykonania

Zad. 3. Utworzyć unikalny indeks na atrybucie nazwisko relacji prac. Co się stanie po wykonaniu poleceń:

Zad. 4. Zdefiniować indeksy na odpowiednich atrybutach tak, aby przyspieszyć wykonanie poniższego polecenia:

SQL> select p.nazwisko, p.zatrudniony, s.nazwisko, s.zatrudniony

LABORATORIUM z BAZ DANYCH

ORACLE

4



Wyszukiwarka

Podobne podstrony:
cw4 08 stud, Studia, bazy danych, LABORATORIUM I-SZY STOP
cw6 1 08, Studia, bazy danych, LABORATORIUM I-SZY STOP
cw8 1 03stud, Studia, bazy danych, LABORATORIUM I-SZY STOP
cw 10 03, Studia, bazy danych, LABORATORIUM I-SZY STOP
cw8 03stud, Studia, bazy danych, LABORATORIUM I-SZY STOP
cw 11 03, Studia, bazy danych, LABORATORIUM I-SZY STOP
bd2 06 211b, bd2 06 211b id14, Bazy Danych 2 - Laboratorium
BD gr D, Studia, Bazy danych, Wszystkie zestawy na BD
POLU CW1, Studia, bazy danych
Polu cw2, Studia, bazy danych
CW4CD, Studia, bazy danych
bazy danych laboratoria 3

więcej podobnych podstron