Banco de Dados
Revisão de Banco Revisão de Banco de Dadosde Dados
Banco de Dados
Adilson [email protected]
Banco de Dados
Introdução
Sistemas de Gerenciamento de Banco de Dados – Software com recursos específicos para facilitar a manipulação das informações dos bancos de dados e o desenvolvimento de programas aplicativos.
Banco de Dados
Esquematização– Deverá fornecer mecanismos que possibilitem a compreensão do relacionamento existentes entre as tabelas e de sua eventual manutenção.
Controle de Integridade– Deverá impedir que aplicações ou acessos pelas interfaces possam comprometer a integridade dos dados.
Backups– Deverá apresentar facilidade para criar e recuperar cópias dos dados.
Características
Banco de Dados
Características
Controle de Redundâncias– Diminuir a redundância de dados gerenciando processo de armazenamento.
Compartilhamento dos Dados– Deve incluir software de controle de concorrência ao acesso dos dados, garantindo em qualquer tipo de situação a escrita/leitura de dados sem erros.
Controle de Acesso– Deve dispor de recursos que possibilitem selecionar a autoridade de cada usuário.
Interfaceamento– Deverá disponibilizar formas de acesso gráfico.
Banco de Dados
Arquitetura de um SGBD
processador de consultas
gerenciador de
transações
gerenciador de armazenamento
Dados e Metadados
Modificação do esquema
Consulta Modificação dos dados
Banco de Dados
Processador de consultas
É responsável por transformar uma consulta ou modificação solicitados pelo usuário em uma sequência de operações a serem executadas sobre os dados de uma base de dados. O processador de consultas é responsável por:
• executar consultas; • modificar os dados da base de dados (inserir, remover,
modificar) ou metadados (num SGBD relacional inclui nome das relações, nomes dos atributos, tipos de atributos);
• fazer um planejamento (query plan) para obter a melhor maneira de executar uma consulta (ex: usar índice, reordenar as operações, etc);
Banco de Dados
Gerenciador de Transações
Consultas e outras ações são agrupadas em transações, que são unidades que devem ser executadas atomicamente e de forma isolada. A execução de uma transação deve ser durável, ou seja o efeito de uma transação que foi completada deve ser preservada mesmo após uma falha do sistema.
Banco de Dados
Gerenciador de Transações
Consultas e outras ações são agrupadas em transações, que são unidades que devem ser executadas atomicamente e de forma isolada. A execução de uma transação deve ser durável, ou seja o efeito de uma transação que foi completada deve ser preservada mesmo após uma falha do sistema.
uma transação é uma coleção de operações que desempenha uma função lógica única dentro de uma aplicação do sistema de banco de dados
Banco de Dados
Gerenciador de Transações – Requisitos para a execução de uma trqansação.
atomicidade: toda a transação é executada ou nada é feito;
consistência: após uma transação ter sido completada a base de dados satisfaz as condições de consistencias previamente assumidas;
isolamento: se duas transações estão sendo executadas simultâneamente seus efeitos devem ser isolados uma da outra;(locking – controle de concorrência)
Banco de Dados
Gerenciador de Transações – Requisitos para a execução de uma trqansação.
durabilidade: uma vez que o sistema tenha informado que uma transação ocorreu com sucesso, seu efeito não deve ser perdido em caso de falha;(logging – recuperação de falhas)
consiteência – uma transação, uma vez executada, deve garantir a consistência do banco de dados ( ex: atributo a tem valor sempre menor que atributo B).
Banco de Dados
Gerenciador de Armazenamento
gerenciar os acessos feitos à base de dados de acordo com as solicitações feitas pelos níveis mais altos do SGBD;
gerenciar os recursos de disco e de memória. Estas funções poderiam ser executadas pelos sistemas operacionais convencionais. No entanto, seria muito difícil garantir os requisitos fundamentais de uma transação além da manutenção de redundância dos dados.
Banco de Dados
Gerenciador de Armazenamento
motor de execução
(execution engine)
gerenciador de espaço em disco
Disco
gerenciador de buffer
pool
MEMÓRIA
Banco de Dados
Gerenciador de armazenamento (Cont.)
Gerenciador de espaço em disco - gerenciar os espaços livres e ocupados na área reservada para a base de dados;suportar o conceito de páginas como unidade de dados;transferir páginas da (para) a memória. Gerenciador de Buffer Pool - gerenciar a memória principal alocada para o SGBD; alocar e desalocar área de memória para suportar os dados as serem processados.
Banco de Dados
Gerenciador de armazenamento (Cont.)
Motor de Execução - executa cada uma das etapas.do plano de consulta definido pelo processador de consultas. Interage com a maioria dos componentes do SGBD, seja diretamente ou através dos buffers. Suas funções incluem: liberar e requisitar espaço livre em disco ;manter informações sobre as páginas alocadas para cada tabela;organizar os registros dentro de uma página;ser capaz de identificar a página no disco que contém o registro sendo solicitado;suportar estruturas de dados auxiliares para garantir acesso mais rápido à página que contém a informação solicitada;gerenciar o catálogo do sistema, que são estruturas de dados que mantêm informações sobre todas as relações, índices e visões de uma base de dados.
Banco de Dados
Gerenciador de armazenamento (Cont.)
Motor de Execução - executa cada uma das etapas.do plano de consulta definido pelo processador de consultas. Interage com a maioria dos componentes do SGBD, seja diretamente ou através dos buffers. Suas funções incluem:
• liberar e requisitar espaço livre em disco ;• manter informações sobre as páginas alocadas para cada tabela;• organizar os registros dentro de uma página;• ser capaz de identificar a página no disco que contém o registro
sendo solicitado;• suportar estruturas de dados auxiliares para garantir acesso mais
rápido à página que contém a informação solicitada;• gerenciar o catálogo do sistema, que são estruturas de dados que
mantêm informações sobre todas as relações, índices e visões de uma base de dados.
Banco de Dados16
Controle de concorrência
Locking• Um gerente centralizado ou distribuído registra todos os
locks e rejeita pedidos de lock em objetos já alocados a outros processos
• lock para escrita deve ser exclusivo, mas lock para leitura pode ser compartilhado
• Quanto menor a granularidade do lock maior a chance de paralelismo, mas também maior é a chance de deadlock
• Lock em duas fases:• growing: todos os locks são adquiridos• shrinking: todos os locks são liberados
• Strict two-phase locking: a fase shrinking ocorre “instantaneamente” (previne cascade aborts)
Banco de Dados17
Controle otimista
• Os objetos são modificados sem preocupação com concorrência até o fim da transação
• Quando chegar o momento de commit, a transação verifica se outra transação modificou os mesmos objetos que ela tenha modificado
• Se não há conflito, então o commit é feito (repasse de objetos do espaço de trabalho privado), senão é feito um abort
Controle de concorrência
Banco de Dados18
Timestamps• Cada transação recebe um timestamp único
em seu início• Cada objeto no sistema tem um read
timestamp e um write timestamp, dizendo que transação fez a operação
• Se transações são “curtas” e “espaçadas” no tempo, normalmente, quando uma transação fizer acesso a um objeto, os timestamps do objeto serão mais velhos que o timestamp da transação. Caso contrário a transação está “atrasada” e deve ser abortada.
Controle de concorrência
Banco de Dados
Os Bancos de dados centralizados:Características
Dados integrados (mesmo local); Redução de dados duplicados (reduz espaços
dos arquivos);Facilita a implementação do tratamento de
concorrência entre clientes, Não existe inconsistência entre cópias (só 1
cópia) Redundância é indesejável;DBA garante a segurança de todo o sistema;Responsabilidade centralizada
Banco Centralizado X Banco Distribuído
Banco de Dados
Desvantagens (BD centralizado)A centralização dos dados vai de encontro ao objetivo de
tornar os dados mais facilmente disponíveis ao usuário final em aplicações geograficamente dispersas;
Vulnerabilidade maior a falhas;Às vezes não permitem um crescimento gradativo da
capacidade computacional instalada de forma simples e adequada.
Banco Centralizado X Banco Distribuído
Banco de Dados
O Banco de Dados é controlado pelo gerenciador, o SGBD, onde as aplicações são construídas, para se ter acesso à manipulação dos dados.
BD CENTRALIZADO
• É composto por apenas um tipo de BD.
• É encontrado em um só nó da rede.
Banco Centralizado X Banco Distribuído
Banco de Dados
Os bancos de dados distribuídos:Características
Compartilhamento de Dados e controle distribuído
Autonomia; - Crescimento incremental;
Disponibilidade; - Consultas em paralelo;
Desvantagens:Custo de desenvolvimento do software;Grande potencial para bugs; Aumento do overhead de processamento:Devido
à troca de mensagens e à computação adicional para obter a coordenação entre os nós.
Banco Centralizado X Banco Distribuído
Banco de Dados
O sistema de software,o SGBDD, possibilita a gerência da base de dados distribuída e torna a distribuição invisível para o usuário.
BD DISTRIUÍDO
• Pode ser composto por mais de um tipo de BD.
• É encontrado em mais de um nó da rede.
Banco Centralizado X Banco Distribuído
Banco de Dados
Os dados armazenados em Bancos de Dados precisam ser protegidos contra:
• Acessos não autorizados;
• Destruição ou alteração intencional;
• Introdução Acidental de Inconsistências;
Segurança de Dados
Banco de Dados
Existem alguns aspectos a serem considerados sobre segurança, e que são intimamente relacionadas com as decisões a serem tomadas pelo DBA. Entre elas:Aspectos Legais e Éticos. Por exemplo: Num
Banco de Dados de um Banco, será que a pessoa que faz a solicitação referente ao crédito de um cliente, tem direito à informação?
Controles Físicos. Por exemplo: A sala dos servidores deve ficar trancada ou protegida fisicamente de alguma maneira?
Questões Políticas: Como decidir quem tem acesso a o que dentro do banco.
Segurança de Dados
Banco de Dados
Problemas Operacionais: Na adoção de um sistema de senhas, como as senhas são mantidas?
Controle de Hardware: Uso de chaves de proteção?
Segurança do Sistema Operacional: Qual a política de armazenamento e estrutura de arquivos do sistema?
Segurança de Dados
Banco de Dados
O mal uso do banco de dados pode ser considerado:
• Intencional;
• Acidental;
Segurança de Dados
Banco de Dados
A perda acidental pode resultar de:
• Quebras durante o processo de transações;
• Anomalias causadas por acesso concorrente ao BD;
• Problemas de estrutura física (incêndio, inundação ou problema elétrico na estrutura física onde está o servidor);
Segurança de Dados
Banco de Dados
É mais fácil proteger o sistema contra perdas acidentais do que contra acessos maldosos ao Banco de dados. Entre as formas de acesso maldoso estão:
• Leitura não autorizada de dados (roubo de informações);
• Modificação não autorizada de dados;
• Destruição não autorizada de dados;
• Inserção não autorizada de dados.
Segurança de Dados
Banco de Dados
Dois termos são comumente utilizados com sentidos diferentes:
• Segurança de Banco de Dados: Refere-se à proteção contra acessos maldosos;
• Integridade de Banco de Dados: Refere-se à perda acidental de consistência;
Segurança de Dados
Banco de Dados
Com a finalidade de proteger o Banco de Dados, medidas de segurança devem ser tomadas em vários níveis:
• Físico: O sistema de Computadores deve ser fisicamente seguro (o uso de backups será considerado mais à frente);
• Humano: Os usuários devem ser cuidadosamente autorizados (o uso de autorizações de acesso será considerado mais a frente);
• Sistema Operacional: Uma falha no SO, pode servir de meio de acesso não autorizado ao banco;
Segurança de Dados
Banco de Dados
Cópia de dados do banco de dados, inclusive dados de controle, guardados em um local seguro;
Apesar de os SGDBs darem suporte a Backup, as estratégias de Backup são definidas pelo DBA;
Pode ser de dois tipos:• Físico;• Lógico;
Backup
Banco de Dados
Recuperação e Reposição dos dados que foram salvos pelo Backup;
Garantia de que o sistema voltará ao estado anterior à falha;
É função do DBA utilizar um gerenciamento de backup-recovery para cada tipo de erro. Por exemplo, um DBA não comandará um recovery de todos os dados do banco, quando um problema ocorreu apenas em um arquivo de controle.
Recovery
Banco de Dados
Concessão de diferentes tipos de autorização permite ao administrador do banco de dados regular a quais partes do banco de dados, diversos usuários podem fazer acesso;
Autorizações de acesso
Banco de Dados
Um usuário pode ter diferentes formas de autorizações sobre um BD;
Leitura: permite leitura, mas não modificação dos dados;
Inserção: permite inserção de novos dados, mas não modificação dos existentes;
Atualização: Permite atualização de dados, mas não remoção;
Eliminação: Permite a eliminação de dados;
Autorizações de acesso
Banco de Dados
Pode-se atribuir a um usuário todas ou nenhuma dessas autorizações;
Existem outras autorizações que permitem alteração da estrutura das relações, e que são fornecidas e gerenciadas pelo DBA:
Índice: Permite criação ou remoção de índices;Recursos: Permite a criação de novas relações,
gatilhos, procedures;Alteração: Permite a modificação de atributos de
uma relação;Remoção: Permite remoção de relações;
Autorizações de acesso
Banco de Dados
Modelagem
Atividade de modelagem de dados em diversosníveis de abstração• Modelagem conceitual (projeto conceitual)
– abstração de mais alto nível• objetivo: representação dos requisitos de dados do domínio
– independente de modelo de BD• Modelagem lógica (projeto lógico)
– representação da modelagem conceitual em um modelo de BD– ênfase na eficiência de armazenamento
• evitar: muitas tabelas (e junções); tabelas sub-utilizadas, ...
Banco de Dados
Modelagem
• Modelagem física (implementação)– esquema SQL para a modelagem lógica
• dependente de SGBD– ênfase na eficiência de acesso
• implementação de consultas, índices, ...
Banco de DadosProjeto de Banco de Dados
Modelagem Conceitual
• Vantagens– independente de detalhes de implementação em um SGBD
• facilita a compreensão da semântica dos dados de um domínio• melhor compreendido por usuários leigos
– pode ser mapeado para qualquer modelo lógico de BD– facilita a manutenção do modelo lógico e a migração para outro modelo lógico
• processo de engenharia reversa
Banco de Dados
Conceitos do Modelo de Entidade e Relacionamento
ENTIDADE – É uma representação abstrata de um objeto do mundo real.
Observações:Nome da entidade deve ser inscrito no retânguloNome da entidade deve ser um substantivo no singularSe Nome composto separar por HífenUsar terminologia do usuário
Funcionário
Banco de Dados
Conceitos do Modelo de Entidade e Relacionamento
ATRIBUTO – São Propriedades ou características associadas a cada entidade.
• Composição:
• NOME DO ATRIBUTO;
• TIPO (Numérico, caracter , data, datetime);
• TAMANHO;
• DESCRIÇÃO
CHAVE-PRIMÁRIA – É um Atributo ou grupo de atributos que identificam as linhas (PK) geralmente assumem um valor único.
• Não pode ter valor nulo
• Tem como função de garantir a unicidade das linhas
• Também chamado de Atributo determinante
Banco de Dados
Conceitos do Modelo de Entidade e Relacionamento
CHAVE-ESTRANGEIRA – Atributo ou grupo de atributos que fazem referência a atributo ou grupo de atributo de uma outra tabela. São utilizados para criar ligações entre as tabelas.
Banco de DadosProjeto de Banco de Dados
Conceitos do Modelo de Entidade e Relacionamento
Relacionamento– abstração de uma associação entre (ocorrências de) entidades– simbologia: losango nomeado
• denota um conjunto de ocorrências de relacionamentos
Empregados DepartamentosLotação
Banco de DadosProjeto de Banco de Dados
Conceitos do Modelo de Entidade e Relacionamento
A definição de um relacionamento envolve– cardinalidade máxima
• quantidade máxima de ocorrências de entidades que podem estar associadas a uma ocorrência de outra entidade (1 ou N)
Empregados DepartamentosLotação
“um empregado está lotado no máximo em 1 departamento. Um departamento tem até N empregados lotados nele.”
N 1
Banco de DadosProjeto de Banco de Dados
Conceitos do Modelo de Entidade e Relacionamento
Exemplos de Cardinalidade Máxima
Empregados DepartamentosGerência1 1
Empregados ProjetosParticipaN N
Empregados Projetoscoordena1 2
Banco de DadosProjeto de Banco de Dados
Conceitos do Modelo de Entidade e Relacionamento
A definição de um relacionamento envolve– cardinalidade mínima
• indica se a participação das ocorrências de entidades no relacionamento é obrigatória ou opcional
Empregados DepartamentosLotação(0,N) (1,1)
“um empregado obrigatoriamente está lotado no máximo em 1 departamento. Um departamento pode ter até Nempregados lotados nele.”
Banco de DadosProjeto de Banco de Dados
Conceitos do Modelo de Entidade e Relacionamento
Exemplos de Cardinalidade Máxima e mínima
Empregados DepartamentosGerência(1,0) (1,0)
Empregados ProjetosParticipa(0,N)
Empregados Projetoscoordena(1,1) (1,2)
(0,N)
Banco de DadosProjeto de Banco de Dados
Conceitos do Modelo de Entidade e Relacionamento
Auto-Relacionamento– representa uma associação entre ocorrências de uma mesma entidade– exige a identificação de papéis
Empregados Supervisão
Supervisionado
Supervisor
(0, N)
(0,1)
“um empregado pode ser supervisionado por no máximo1 empregado. Um empregado pode supervisionar no máximo N empregados.”
Banco de Dados
Conceitos do Modelo de Entidade e Relacionamento
Relacionamento “N”-ário– abstração de uma associação entre “N” (ocorrências de) entidades– exemplo: relacionamento ternário
Cidade Distribuição Distribuidores
Produtos
(0,n)
(0,n)
(0,1)
Exemplo de determinação de cardinalidade: “um produto emuma cidade pode ser entregue por no máximo 1 distribuidor.”
Banco de Dados
Conceitos do Modelo de Entidade e Relacionamento
Classificações de Atributos– obrigatórios X opcionais– monovalorados X multivalorados– simples X compostos– Identificadores
Empregados ProjetosLotação
(0,N) (0,N)
Nome
Telefones
Endereço
RuaNúmero
Cidade
MatrículaCPF
Banco de Dados
Conceitos do Modelo de Entidade e Relacionamento
Identificação de Relacionamentos– atributos identificadores adicionais podem ser necessários para definir a identificação de um relacionamento
Restrições do Domínio• O modelo ER não é capaz de expressar todas as RIs de um domínio de aplicação– uma documentação em anexo pode ser necessária
Banco de Dados
Modelo Conceitual Modelo Lógico
Produto Tem Estoque1:1
1:1
Cod_ProdNom_Prod
Estoque_Prod
Produtos
Banco de Dados
Modelo Conceitual Modelo Lógico
Departamento Tem Funcionário1:1 0:N
Cod_Dep (CP)Nom_DepSigla_Dep
Departamento
Matricula (CP)Nome
Cod_dep (CE)
Funcionário
Banco de Dados
Modelo Conceitual Modelo Lógico
Dependente Tem Funcionário0:N 1:1
Cod_Depe (CP)Nom_Dep
Matricula (CE)
Dependente
Matricula (CP)Nome
Funcionário
Banco de Dados
Modelo Conceitual Modelo Lógico
Disciplina Cursa Aluno0:N 0:N
Cod_DiscNom_Disc
Carg_Hor_Dis
Disciplina
Matricula (CP)Nome
Aluno
Cod_Disc (CP/CE)Matricula (CP/CE)
Banco de Dados
Modelo Conceitual Modelo Lógico
Funcionário Supervisiona
Matricula (CP)Nome
Matricula2(CE)
Funcionário
1:1
0:N
Banco de Dados
Modelo Conceitual Modelo Lógico
Disciplina Pre_Requisito
Cod_disc (CP)Nome_disc
Carg_Hor_Disc
Disciplina
0:N
0:N
Cod_disc_Pre(CE)Cod_Dis_Pos (CE)
Pre_requisito
Banco de Dados
Banco de Dados Objeto-Relacional
SGBDs Objeto-Relacional combinam os benefícios do modelo Relacional com a capacidade de modelagem do modelo OO
Fornecem suporte para consultas complexas sobre dados complexos
Atendem aos requisitos das novas aplicações e da nova geração de aplicações de negócios
Banco de DadosBanco de Dados Objeto-RelacionalModelos e Linguagens
O modelo de dados OR é uma extensão do modelo Relacional As extensões incluem mecanismos para permitir aos
usuários estender o banco de dados com tipos e funções específicas da aplicação
A linguagem de consulta OR é uma extensão da linguagem SQL para suportar o modelo de objetosAs extensões incluem consultas envolvendo objetos,
atributos multivalorados, TADs, métodos e funções como predicados de busca em uma consulta
Banco de Dados
Modelo de Dados Objeto-Relacional
Permite especificar e utilizar tipos abstratos de dados(TADs) da mesma forma que os tipos de dados pré-definidos
TADs são tipos de dados definidos pelo usuário que encapsulam comportamento e estrutura interna (atributos)
A tabela convencional é estendida para permitir a referência de objetos (referência de tipos), TADs e valores alfanuméricos como domínio de colunas
Banco de Dados
Modelo de Dados Objeto-Relacional
Utiliza referências para representar conexões inter-objetos tornando as consultas baseadas em caminhos de referência mais compactas do que as consultas feitas com junção
Herança é implementada organizando todos os tipos em hierarquias
Utiliza os construtores set, list, multiset ou array para organizar coleções de objetos
Banco de DadosBenefícios do Modelo de Dados Objeto-Relacional
Nova FuncionalidadeAumenta indefinidamente o conjunto de tipos e
funções fornecidas pelo SGBD
Desenvolvimento de aplicações simplificadoReuso de código
ConsistênciaPermite a definição de padrões, código reusável por
todas as aplicações
Banco de DadosLinguagem de Consultas paraBancos de Dados Objeto-Relacional
O resultado de uma consulta ainda consiste de tabelas
Um SGBD Objeto-Relacional ainda é relacional pois suporta dados armazenados em tabelas formadas por linhas e colunas
A linguagem de consultas para BDOR é uma extensão da linguagem SQL, utilizada para definição e manipulação de dados e consultas
Top Related