knowt logo

Prova Banco de Dados II (Old)

=== SEGURANÇA ===

  • Requisitos BD corporativo:

    • Gerenciar e fornecer acesso

    • Controle de disponibilidade para usuários

    • Controlar leitura e escrita

    • Restringir acesso a colunas específicas

  • Todo banco tem um administrador (DBA)

  • Schema é uma coleção de objetos (tabelas, views, sequences)

  • Privilégios:

    • Determinam o que um usuário pode fazer no banco

    • Fornecem permissões para executar comandos SQL

    • Privilégios de sistema indicam permissões que o usuários terá no banco (criar sessão, tabelas, views)

    • Privilégios de objeto para manipular o conteúdo dos objetos (editar tabelas, views, procedure)

=== VIEWS ===

  • Tabela virtual definida por um select

  • View não existe no banco como um conjunto de dados armazeados

  • Vantagens:

    • Restringe acesso ao banco

    • Consultas complexas ficam simples

    • Recupera dados de diferentes tabelas, schemas e databases

    • Permite acesso a grupos de usuários baseado em seus critérios particulares

  • Quando uma visão é utilizada, o Servidor Oracle executa as seguintes operações:

    • Recupera a definição da visão no dicionário de dados (USER_VIEWS)

    • Confere os privilégios de acesso para a tabela básica da visão

    • Os dados são recuperados a partir das tabelas básicas

  • É possível usar DML (insert, update, delete)

  • Se a view for criada usando “WITH READ ONLY“ não dá pra usar DML

  • Visão simples:

    • Uma única tabela

    • Não utiliza funções ou agrupamento de dados

    • Pode executar operações DML

  • Visão complexa:

    • Várias tabelas

    • Utiliza funções ou grupos de dados

    • Normalmente não permite operações DML

  • Erros comuns:

    • DUPLICATE COLUMN NAME: duas colunas com mesmo nome na query

    • MUST NAME THIS EXPRESSION WITH A COLUMN ALIAS: a query tem um count, sum, etc, e a expressão não recebeu um apelido

=== STORED PROCEDURES ===

  • Server pra resolver problemas complexos, direto no banco

  • Cada procedure é um módulo de código que pode ser executado a parti de:

    • Procedures

    • Trigger

    • Aplicação cliente

    • Como parte de um SELECT

  • Vantagens:

    • Melhora o desempenho das aplicações

    • Reduz o volume de dados trafegados na rede

    • Melhora a manutenção do software

    • Melhora a segurança no acesso aos dados

  • Quando usar:

    • Se a operação pode ser feita no servidor, sem pedir dados do usuários

    • Se a operação processar muitas linhas

    • Se a operação é usando com frequência

    • Se a operação é usada por vários módulos ou processos diferentes

  • Cursores:

    • Usados para nomear áreas de memória e acessar os dados

  • Triggers:

    • São blocos de código

    • Armazenados dentro do banco

    • Disparados sempre que uma instrução SQL (evento DML) for aplicada para uma tabela específica

    • Aplicações:

      • Auditoria

      • Replicação de dados

      • Controle de dados

      • Segurança e integridade

    • Precauções:

      • Evite criar triggers que dupliquem regras já definidas em CONSTRAINTS do banco

      • Cuidado ao criar triggers que disparem por uma instrução em uma tabela, para que ela não efetue a mesma operação na própria tabela porque isso iria disparar a trigger N vezes, travando a execução.

=== OTIMIZAÇÃO ===

  • Indices:

=== VAIR CAIR NA PROVA ===

  • Funções parser

  • Baseado em custos

  • Prática: uma trig, uma view uma functionp

Prova Banco de Dados II (Old)

=== SEGURANÇA ===

  • Requisitos BD corporativo:

    • Gerenciar e fornecer acesso

    • Controle de disponibilidade para usuários

    • Controlar leitura e escrita

    • Restringir acesso a colunas específicas

  • Todo banco tem um administrador (DBA)

  • Schema é uma coleção de objetos (tabelas, views, sequences)

  • Privilégios:

    • Determinam o que um usuário pode fazer no banco

    • Fornecem permissões para executar comandos SQL

    • Privilégios de sistema indicam permissões que o usuários terá no banco (criar sessão, tabelas, views)

    • Privilégios de objeto para manipular o conteúdo dos objetos (editar tabelas, views, procedure)

=== VIEWS ===

  • Tabela virtual definida por um select

  • View não existe no banco como um conjunto de dados armazeados

  • Vantagens:

    • Restringe acesso ao banco

    • Consultas complexas ficam simples

    • Recupera dados de diferentes tabelas, schemas e databases

    • Permite acesso a grupos de usuários baseado em seus critérios particulares

  • Quando uma visão é utilizada, o Servidor Oracle executa as seguintes operações:

    • Recupera a definição da visão no dicionário de dados (USER_VIEWS)

    • Confere os privilégios de acesso para a tabela básica da visão

    • Os dados são recuperados a partir das tabelas básicas

  • É possível usar DML (insert, update, delete)

  • Se a view for criada usando “WITH READ ONLY“ não dá pra usar DML

  • Visão simples:

    • Uma única tabela

    • Não utiliza funções ou agrupamento de dados

    • Pode executar operações DML

  • Visão complexa:

    • Várias tabelas

    • Utiliza funções ou grupos de dados

    • Normalmente não permite operações DML

  • Erros comuns:

    • DUPLICATE COLUMN NAME: duas colunas com mesmo nome na query

    • MUST NAME THIS EXPRESSION WITH A COLUMN ALIAS: a query tem um count, sum, etc, e a expressão não recebeu um apelido

=== STORED PROCEDURES ===

  • Server pra resolver problemas complexos, direto no banco

  • Cada procedure é um módulo de código que pode ser executado a parti de:

    • Procedures

    • Trigger

    • Aplicação cliente

    • Como parte de um SELECT

  • Vantagens:

    • Melhora o desempenho das aplicações

    • Reduz o volume de dados trafegados na rede

    • Melhora a manutenção do software

    • Melhora a segurança no acesso aos dados

  • Quando usar:

    • Se a operação pode ser feita no servidor, sem pedir dados do usuários

    • Se a operação processar muitas linhas

    • Se a operação é usando com frequência

    • Se a operação é usada por vários módulos ou processos diferentes

  • Cursores:

    • Usados para nomear áreas de memória e acessar os dados

  • Triggers:

    • São blocos de código

    • Armazenados dentro do banco

    • Disparados sempre que uma instrução SQL (evento DML) for aplicada para uma tabela específica

    • Aplicações:

      • Auditoria

      • Replicação de dados

      • Controle de dados

      • Segurança e integridade

    • Precauções:

      • Evite criar triggers que dupliquem regras já definidas em CONSTRAINTS do banco

      • Cuidado ao criar triggers que disparem por uma instrução em uma tabela, para que ela não efetue a mesma operação na própria tabela porque isso iria disparar a trigger N vezes, travando a execução.

=== OTIMIZAÇÃO ===

  • Indices:

=== VAIR CAIR NA PROVA ===

  • Funções parser

  • Baseado em custos

  • Prática: uma trig, uma view uma functionp

robot