Views | Controlo de acesso aos dados

7
ADMINISTRAÇÃO DE BASES DE DADOS Views Como forma de controlo no acesso aos dados Carlos Pampulim Caldeira www.di.uevora.pt/~ccaldeira www.ecologiadosdados.com/ www.linkedin.com/in/carlospampulimcaldeira

Transcript of Views | Controlo de acesso aos dados

Page 1: Views | Controlo de acesso aos dados

ADMINISTRAÇÃO DE BASES DE DADOS

ViewsComo forma de controlo no acesso aos dados

Carlos Pampulim Caldeirawww.di.uevora.pt/~ccaldeira

www.ecologiadosdados.com/

www.linkedin.com/in/carlospampulimcaldeira

Page 2: Views | Controlo de acesso aos dados

Tabela Colaborador

CREATE TABLE ccaldeira."Colaborador"("Número" INTEGER,"Nome" VARCHAR2(100) NOT NULL,"Data de Nascimento" DATE NOT NULL,"Vencimento" NUMBER NOT NULL, CONSTRAINT "cp_Colaborador" PRIMARY KEY ("Número"))TABLESPACE "UNIVERSIDADE";

CREATE VIEW ccaldeira."Funcionário" ("Número", "Nome", "Data de Nascimento") AS SELECT "Número", "Nome", "Data de Nascimento“ FROM ccaldeira."Colaborador"

Page 3: Views | Controlo de acesso aos dados

Tabela Colaborador

SELECT * FROM ccaldeira."Funcionário";

Page 4: Views | Controlo de acesso aos dados

INSERT INTO ccaldeira."Funcionário" VALUES(1000, 'Tótó', TO_DATE('2003/05/03'));

Erro na inserção dados pela view

Error starting at line : 15 in command -INSERT INTO ccaldeira."Funcionário" VALUES(1000, 'Tótó', TO_DATE('2003/05/03'))Error report -SQL Error: ORA-01400: cannot insert NULL into ("CCALDEIRA"."Colaborador"."Vencimento")01400. 00000 - "cannot insert NULL into (%s)"*Cause: An attempt was made to insert NULL into previously listed objects.*Action: These objects cannot accept NULL values.

Page 5: Views | Controlo de acesso aos dados

UPDATE ccaldeira."Funcionário" SET "Nome" = 'Pato Malvado' WHERE "Número" = 999;

Log:1 rows updated.

SELECT * FROM ccaldeira."Colaborador";

View modifica tabela de base

Page 6: Views | Controlo de acesso aos dados

CREATE VIEW ccaldeira."Funcionário" ("Número", "Nome", "Data de Nascimento","Ordenados<2000") AS SELECT "Número", "Nome", "Data de Nascimento", "Vencimento" FROM ccaldeira."Colaborador" WHERE "Vencimento" < 2000;

View Funcionário com partição horizontal

Page 7: Views | Controlo de acesso aos dados

SELECT * FROM ccaldeira."Funcionário";

View Funcionário com partição horizontal