Visões. Definição de Visões



Documentos relacionados
Visões ... Esquema Externo n. Esquema Externo 1. Esquema Lógico. Usuários finais/aplicações

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

Comandos de Manipulação

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha.

Banco de Dados. Prof. Antonio

SQL (Structured Query Language)

SQL (Structured Query Language)

SQL (Structured Query Language)

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

MySQL: Controle de Acesso

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Introdução ao SQL. Aécio Costa

Modelo Relacional - Manipulação

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Integridade dos Dados

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Projeto e Implementação

Segurança de Acesso a Banco de Dados no MS SQL Server

SQL (Structured Query Language)

Administração de Usuários e Privilégios no Banco de Dados

Subconsultas ou Consultas Aninhadas

Banco de Dados I. 1. Conceitos de Banco de Dados

Exercícios de Lógica Exercícios de Fixação 08

A criação de utilizadores no MySQL pode passar pela utilização de dois comandos: - Create user; - Grant;

Banco de Dados. Structured Query Language SQL. Prof. Walteno Martins Parreira Jr 1.

select nome from Médicos where codm in (select codm from Consultas where data = 06/06/13 )

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

S Q L 31/03/2010. SQL - Structured Query Language Linguagem de Consulta Estruturada

S Q L 15/01/2013. Enfoques de SQL. Enfoques de SQL SQL. Usos de SQL. SQL - Origem/Histórico. Gerenciamento de Dados e Informação

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

Structured Query Language (SQL) Aula Prática

O que são Bancos de Dados?

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs

SQL. Prof. Márcio Bueno.

Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. (

Introdução a Sistemas de Bancos de Dados

SQL BÁSICO. Introdução. Prof. Suelane Garcia. Linguagem SQL (Structured Query Language)

A linguagem SQL

EXEMPLOS DE COMANDOS NO SQL SERVER

SQL. Autor: Renata Viegas

Prof.: Clayton Maciel Costa

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Tarefa Orientada 16 Vistas

Linguagem de Consulta Estruturada SQL- DML

A Linguagem SQL. Introdução a Banco de Dados DCC 011

Marcelo Henrique dos Santos

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

SQL S Q L. Introdução. Enfoques de SQL. SQL - Origem/Histórico. Usos de SQL. SQL - Vantagens. Banco de Dados. Fernando Fonseca Ana Carolina

Memória de aula Semanas 15 e 16

Fundamentos dos Sistemas de Informação Organização de Dados e Informações

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes

Faculdade Lourenço Filho - ENADE

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Linguagem SQL. Comandos Básicos

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS

SQL Structured Query Language

Comandos DDL. id_modulo = id_m odulo

Fundamentos do Sistema Gerenciador de Banco de Dados

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Sumário Introdução Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL A Composição deste Livro 3

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

Aplicações - SQL. Banco de Dados: Teoria e Prática. André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013

SQL Structured Query Language. SQL Linguagem de Definição de Dados. SQL Structured Query Language. SQL Structured Query Language

SQL (STRUCTUREDQUERY LANGUAGE)

SGBD. Funções Básicas de um SGBD



ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

A & F Consultoria em Sistemas e Treinamentos 2014 af.tecnoserv@gmail.com. A linguagem SQL. Autor: Hélio de Almeida Fonte: Wikipédia

Sistemas de Banco de Dados

NOME SEXO CPF NASCIMENTO SALARIO

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

UNIVERSIDADE FEDERAL FLUMINENSE PÓLO UNIVERSITÁRIO DE RIO DAS OSTRAS FACULDADE FEDERAL DE RIO DAS OSTRAS CURSO DE CIÊNCIA DA COMPUTAÇÃO

BANCO DE DADOS Parte 4

4.6. SQL - Structured Query Language

Views. uma view é uma tabela virtual. não existe fisicamente na BD. é definida à custa de outras tabelas ou views. CREATE VIEW <nome> AS <query>;

Escrito por Sex, 14 de Outubro de :12 - Última atualização Seg, 26 de Março de :33

Prova de Fundamentos de Bancos de Dados 2 a Prova

Tarefa Orientada 15 Manipulação de dados

Banco de Dados. Maurício Edgar Stivanello

SQL. Hélder Antero Amaral Nunes

Programação SQL. Manipulação de Dados. DML Data Manipulation Language

BANCO DE DADOS CONCEITOS BÁSICOS

Transcrição:

Visões Visão tabela derivada a partir das tabelas do BD tabela virtual isto é transparente para usuários e aplicações visões são manipuladas como tabelas normais do BD Visões fazem parte dos esquemas externos da arquitetura de um SGBD Esquema Externo 1 Usuários finais/aplicações... Esquema Externo n Esquema Lógico Definição de Visões Exemplo o setor de câncer do hospital lida apenas com dados de pacientes que têm esta doença Definição em SQL create view PacCâncer (código, paciente, idade) as select codp, nome, idade from Pacientes where problema = câncer ; tabela base 1

Definição de Visões Especificação da visão mantida no DD a consulta que a define Definições recursivas são permitidas create view PacCanJovens as select * from PacCâncer where idade < 21; Dependência Visão X Tabela/Visão Base drop {table view} nome [restrict cascade] SQL padrão (não vale para o SQL-Server!) Operações DML sobre Visões São executadas na(s) tabela(s) base Exemplos select * from PacCâncer where paciente like J% ; delete from PacCâncer where idade > 90; select codp, nome, idade from Pacientes where problema = câncer and nome like J% ; delete from Pacientes where problema = câncer and idade > 90; Considerações toda visão é passível de consulta nem toda a visão é passível de atualização 2

Situação 1 create view DadosMed as select codm, nome, CPF, especialidade from Médicos; create view Horários as select data, hora from Consultas; I / A nas visões DadosMed e Horários? Situação 1 create view DadosMed as select codm, nome, CPF, especialidade from Médicos; create view Horários as select data, hora from Consultas; I nas visões DadosMed e Horários? Conclusão 1 uma visão atualizável deve preservar a chave primária da tabela base mapeamento 1-1 entre tupla da visão e tupla da base 3

Situação 2 create view ConsultasMedPac (med, pac, nroconsultas) as select codm, codp, count(*) as total from Consultas group by codm,codp; I / A na visão ConsultasMedPac? Situação 2 create view ConsultasMedPac (med, pac, nroconsultas) as select codm, codp, count(*) as total from Consultas group by codm,codp; I / A na visão ConsultasMedPac? Conclusão 2 uma visão atualizável deve conter atributos que tenham correspondência direta com atributos da tabela base mapeamento 1-1 entre atributo da visão e atributo da tabela base 4

Situação 3 supor que a chave primária na tabela Consultas é (codm, codp, data, hora) create view ConsultasMP (codigom,especialidade,codigop, data) as select Médicos.codm, especialidade, codp, data from Médicos join Consultas on Médicos.codm = Consultas.codm; Situação 3 create view ConsultasMP (codigom,especialidade,codigop, data) as select Médicos.codm, especialidade, codp, data from Médicos join Consultas on Médicos.codm = Consultas.codm; intenção: o médico de código 13 transferiu as suas consultas do dia 15/12/06 para o médico de código 15 update ConsultasMP set codigom = 15 where códigom = 13 and data = 15/12/06 ; 5

Situação 3 create view ConsultasMP (codigom,especialidade,codigop, data) as select Médicos.codm, especialidade, codp, data from Médicos join Consultas on Médicos.codm = Consultas.codm; intenção: o médico de código 13 transferiu as suas consultas do dia 15/12/06 para o médico de código 15 update ConsultasMP set codigom = 15 where códigom = 13 and data = 15/12/06 ; Problemas: - nulos em atributos da chave primária - inclusão em várias tabelas (?) Situação 3 create view ConsultasMP (codigom,especialidade,codigop, data) as select Médicos.codm, especialidade, codp, data from Médicos join Consultas on Médicos.codm = Consultas.codm; Conclusão 3 uma visão atualizável deve ser derivada de apenas uma (1) tabela base garantia de um mapeamento sempre 1-1 entre uma tupla da visão e uma tupla do BD 6

Atributo definido no predicado da visão não é um atributo da visão create view PacCâncer (código, paciente, idade) as select codp, nome, idade from Pacientes where doença = câncer ; tuplas incluídas em PacCâncer não serão vistas por ela! solução: trigger que define doença = câncer Atributo definido no predicado da visão é um atributo da visão create view MédicosJovens as select codm, nome, especialidade, idade from Médicos where idade < 35; [ with check option; ] cláusula with check option controle de valores válidos para os atributos da visão que fazem parte do seu predicado inclusão ou alteração em MédicosJovens» apenas idades < 35 serão permitidas! 7

Uso de Visões Vantagens independência lógica dos dados cada usuário ou aplicação enxerga a porção do BD que deseja acesso eficiente plano de acesso otimizado! segurança de acesso cada usuário ou aplicação enxerga a porção do BD que tem permissão Problemática de visões atualizáveis limita o uso de visões tema de pesquisa na área de BD Autorização de Acesso Objetivo proteção contra acessos mal intencionados Subsistema de Autorização de Acesso (SAA) controla quais dados um usuário/grupo de usuários pode ter acesso controla quais operações um usuário/grupo de usuários pode realizar sobre estes dados Funções do subsistema de autorização especificação de autorizações verificação de autorizações 8

Funções do Subsistema de AA Cadastro de usuários/grupos login + password Especificação de autorizações envolve três dimensões agente (usuário ou grupo) grânulo (BD, tabela, atributos, atributo, tuplas,...) operação (select, update, create,...) DBA superusuário (pode tudo!) alguns privilégios são exclusivos dele» recovery do BD, configuração de parâmetros do SGBD,... concede/retira (revoga) privilégios de acesso outros agentes todos os privilégios de acesso aos grânulos (BDs e tabelas) que criou concede/revoga privilégios para estes grânulos a outros agentes Classificação de AA 1. Baseadas no grânulo + operação é ou não é válido para todos os usuários permissões públicas ou secretas 2. Baseadas nas três dimensões grânulo + operação + agente utiliza matrizes de autorização de acesso 3. Baseadas em restrições utiliza visões 9

Matriz de AA G 1 G 2 G 3... G n A 1 A 2 A 3... select select, delete, exec select, insert select, update create select, update, grant A m create select, insert Matriz de AA SQL Server Uma matriz por usuário/grupo para cada BD select update insert... exec ambulatórios X médicos X X... consultas X X 10

Visões Maior flexibilidade na definição de grânulos independentes ou dependentes de valor Exemplos create view Med as select CRM, nome,rg, especialidade from Médicos create view MedOrtoped as select CRM, nome, idade from Médicos where especialidade = ortopedia acesso apenas a alguns atributos (indep. valor) acesso apenas a alguns atributos e tuplas (dep. valor) Outras Considerações sobre AA Premissa básica quem não consulta não pode atualizar Administrar corretamente permissões sobre tabelas e visões responsabilidade do DBA exemplo não faz sentido uma mesma permissão sobre uma tabela base e uma visão derivada dela 11

Autorização de Acesso em SQL Concessão de acesso grant {all privileges listaprivilégios} on grânulo to {listausuários public} [with grant option] grant all to {listausuários public} Exemplos grant select, insert on Médicos to U1, U2 with grant option grant update on (idade, problema) Pacientes to U2 grant select on Consultas to public grant all privileges on Ambulatórios to U1,U2, U4 grant exec on RemoveConsultasAntigas to U1 grant all to U5 Autorização de Acesso em SQL Retirada de acesso revoke[grant option for]{all privileges listaprivilégios} on grânulo from listausuários[cascade] revoke all from {listausuários public} Exemplos revoke all privileges on Ambulatórios from U1, U4 revoke delete on Pacientes from U3 revoke select on Médicos from U1 cascade revoke all from U5 12