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
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"
Tabela Colaborador
SELECT * FROM ccaldeira."Funcionário";
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.
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
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
SELECT * FROM ccaldeira."Funcionário";
View Funcionário com partição horizontal

Views | Controlo de acesso aos dados

  • 1.
    ADMINISTRAÇÃO DE BASESDE 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
  • 2.
    Tabela Colaborador CREATE TABLEccaldeira."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"
  • 3.
    Tabela Colaborador SELECT *FROM ccaldeira."Funcionário";
  • 4.
    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.
  • 5.
    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
  • 6.
    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
  • 7.
    SELECT * FROMccaldeira."Funcionário"; View Funcionário com partição horizontal