Escolar Documentos
Profissional Documentos
Cultura Documentos
1
Introdução a Banco de Dados
- EMENTA –
– Conceitos em Sistemas de Banco de Dados.
– Modelo Entidade-Relacionamento Estendido.
– Modelo relacional. Álgebra relacional. Linguagem
de consulta SQL.
– Restrições de integridade. Dependência funcional.
Triggers.
– Projeto de banco de dados relacional. Normalização.
– Estruturas de arquivos e meios de armazenamento.
Indexação e Hashing.
– Processamento de consultas. Transformações de
expressões relacionais.
– Transações ACID. Teoria da serializabilidade.
– Controle de concorrência. Recuperação. Segurança.
– Novas tecnologias. Bancos de dados objetorelacional.
Bancos de dados orientados a objetos.
2
Introdução
• Uso inicial dos computadores
processamento de dados numéricos
processamento serial
linguagens de programação de baixo nível
ênfase no algoritmo (fluxograma)
dados internos ao programa
3
Introdução
• Evolução do hardware e do software
processamento de dados alfanuméricos
linguagens de programação de alto nível
grande volume de dados
sistema de arquivos
dados ainda cativos dos programas
economia de tempo e memória
usuários “on line” e “batch”
4
Introdução
• Bancos de dados
autonomia dos dados em relação aos
programas
segurança de dados
compartilhamento
consultas complexas
ênfase nos dados
• BD Não Convencionais
5
Conceitos Básicos em Banco
de Dados
• Principais Conceitos
Banco de Dados (BD)
Sistema de Gerência de Banco de Dados
(SGBD)
Sistema de Banco de Dados (SBD)
Projeto de Banco de Dados
Modelos de Dados
6
Definindo Banco de Dados
(BD)
7
Banco de Dados (BD)
Um Banco de Dados é um modelo (representação)
de uma parte da realidade (mini-mundo).
8
Banco de Dados (BD)
O BD contém informações que circulam pela
aplicação além de abstrações de elementos da
própria aplicação.
– Ex.: Um BD para uma aplicação de distribuição de
energia elétrica armazena informação sobre consumo
mensal como também a descrição de cada
consumidor.
9
SGBD
• Sistema de Gerenciamento de Banco de Dados
(SGBD) é uma coleção de programas que permite
aos usuários criar e manter um banco de dados.
• SGBD é um software de propósito geral que facilita
10
SGBD
Definição do BD:
Construção do BD:
• Processo de carga inicial dos dados em um meio de
armazenamento controlado pelo SGBD.
Manipulação do BD:
• Execução de operações de consulta e recuperação de
dados.
• Atualização de dados para refletir as mudanças no
mini-mundo.
• Geração de relatórios a partir dos dados do BD.
11
Programa de Aplicação
• Realiza as funções da aplicação.
– Ex: cálculo do consumo mensal de energia elétrica,
a partir dos dados de leitura dos medidores.
• Garante as restrição de integridade (RI) que não
12
Programa de Aplicação
13
Sistema de Banco de Dados
(SBD)
• Sistema de software composto pelos
programas de aplicação, pelo SGBD e
pelo BD, para um determinado conjunto
de aplicações.
14
Sistema de Banco de Dados
(SBD)
15
Sistema de Banco de Dados
(SBD)
Vantagens do uso de SBD
Diminui a redundância dos dados.
Padroniza a definição e o acesso aos dados, através
da DDL (linguagem de definição de dados) e da
DML (linguagem de manipulação de dados).
Assegura independência física dos dados.
Garante independência lógica dos dados.
Garante a consistência dos dados em caso de falhas
de hardware ou software (S.O., SGBD, programas
de aplicação).
16
Sistema de Banco de Dados
(SBD)
Garante a consistência dos dados em ambiente
multiusuário, onde mais de um programa pode
acessar, de forma concorrente, os mesmos dados.
Auxilia na manutenção das restrições de integridade
da aplicação, evitando que testes de consistência
sejam repetidos em programas de aplicação.
O usuário tem uma visão abstrata dos dados, onde
detalhes do meio de armazenamento são escondidos.
17
Sistema de Banco de Dados
(SBD)
18
Independência de Dados
Independência lógica de dados
modificações na definição dos dados (esquema
lógico), na maioria das vezes, não afetam os
programas de aplicação.
capacidade de mudar o esquema lógico sem
necessidade de modificar programas de aplicação e
esquemas externos.
apenas definição de visões e mapeamentos devem
ser alterados.
Exemplo:
acrescentar um campo a um registro
acrescentar uma definição de tipo de registro
19
Independência de Dados
Independência física de dados
alterações em estruturas de armazenamento
(esquema físico/interno) não afetam os
programas de aplicação.
capacidade de mudar o esquema interno sem
necessidade de alterar o esquema lógico (ou
externos)
Exemplo:
reorganização física de arquivos
criação de estruturas de acesso adicionais
20
Sistema de Banco de Dados
(SBD)
O que se espera de um SBD:
Compartilhamento de dados por aplicações
diversas
Controle de autorização de acesso a dados
Redundância de dados controlada
evita duplicação de esforços
reduz espaço de armazenamento
21
Sistema de Banco de Dados
(SBD)
O que se espera de um SBD (Cont.)
Acesso a dados através de diferentes interfaces
Modelagem de relacionamentos complexos entre
dados
Garantia de restrições de integridade da aplicação
Garantia de consistência física dos dados
Transações devem seguir as propriedades ACID
Atomicidade, Consistência, Isolamento e Durabilidade
22
Sistema de Banco de Dados
(SBD)
O que se espera de um SBD (Cont.)
Existência de mecanismos de reconstrução
Potencial para imposição de padrões (modelagem
e programação)
Flexibilidade para definir e alterar a definição dos
dados
Redução do tempo de desenvolvimento de
aplicações
Desvantagens do uso de SGBD
Overhead para prover segurança, controle de
concorrência, recuperação e funções de integridade.
23
Sistema de Banco de Dados
(SBD)
Usuários do SBD: Atores e Papéis
Administrador do Banco de Dados (DBA):
Responsável pelos esquemas físico e lógico
do BD. Gerencia o controle de acesso aos
dados. Monitora a performance do SBD.
Projetista de Banco de Dados (DB Designer)
Identifica os requisitos da aplicação e com
auxílio do usuário, cria o modelo conceitual
do BD. Junto com o DBA, estende e modifica
o modelo lógico.
24
Sistema de Banco de Dados
(SBD)
Usuários do SBD: Atores e Papéis
Analista/Programador de Aplicação (Analista de Sistemas)
Define e projeta a informatização da aplicação,
incluindo seu conjunto de programas. Usa os
esquemas conceitual e lógico do BD.
Usuário Final
Ocasional - acessa ocasionalmente o SBD, mas pode necessitar
de diferentes informações por vez. Escreve suas consultas
diretamente em linguagem de consulta.
Comum - acessa o BD para incluir novos dados e consultar
dados armazenados através de procedimentos padrão. Ex.
caixa de banco
25
Projeto de Banco de Dados
Objetivo:
Trabalho de engenharia para modelar e
definir a estrutura de um banco de dados
que satisfaça as necessidades de
informação dos usuários de uma
organização, tendo em vista um conjunto
específico de aplicações a serem
desenvolvidas.
26
Projeto de Banco de Dados
• Características Básicas:
– Complexidade
Requer a divisão do problema em sub-
partes.
– Multiplicidade de Tarefas
Requer a utilização de uma metodologia de
projeto.
27
28
29
Modelo de Dados
Modelo de Dados
Conjunto de ferramentas conceituais usadas para
a descrição dos dados, relacionamentos entre os
dados e regras de consistência.
Representa:
tipos de dados
relacionamentos
restrições que devem ser mantidas sobre os dados
30
Modelo de Dados
Vários modelos que vêm sendo
desenvolvidos são classificados em três
diferentes grupos:
Modelos lógicos com base em objetos
Modelos lógicos com base em registros
Modelos físicos
31
Modelos de Dados
Modelos lógicos com base em objetos
São usados na descrição dos dados no nível lógico
e de visões.
São caracterizados por dispor de recursos de
estruturação bem mais flexíveis e por viabilizar a
especificação explícita das restrições dos dados
Existem vários modelos nessa categoria
Modelo Entidade Relacionamento
Modelo Orientado a Objetos
32
Modelo
Entidade-Relacionamento
Tem por base a percepção do mundo real
como um conjunto de objetos básicos,
chamados de entidades e do relacionamento
entre eles.
Um entidade é uma “coisa” ou um “objeto”
do mundo real que pode ser identificado por
outros objetos.
Ex: cada pessoa é uma entidade
As contas dos clientes de um banco também
podem ser consideradas como entidades
33
Modelo
Entidade-Relacionamento
As entidades são descritas no banco por meio
de seus atributos.
Um relacionamento é uma associação entre
entidades.
Ex: um relacionamento depositante associa um
cliente a cada conta que ele possui.
Alem das entidades dos relacionamentos, o
modelo E-R representa certas regras, as
quais o conteúdo do banco precisa respeitar
34
Modelo
Entidade-Relacionamento
Um regra importante é o mapeamento das
cardinalidades, as quais expressam o número
de entidades às quais as outras entidade se
relaciona por meio daquele conjunto de
relacionamentos.
Toda a estrutura lógica do BD pode ser
expressa graficamente por meio do diagrama
E-R, cujos construtores dos seguintes
componentes são:
35
Modelo
Entidade-Relacionamento
Retângulos:
Representam os conjuntos de entidades
Elipses
Representam os atributos
Losangos
Representam os relacionamentos entre os
conjuntos de entidades
Linhas
Unem os atributos aos conjuntos de entidades e o
conjunto de entidades aos seus relacionamentos
36
Modelo
Entidade-Relacionamento
Para ilustrar, considere parte de um sistema
de banco de dados de uma instituição
bancária, consistindo em clientes e contas
que eles possuem. O diagrama ER
correspondente é mostrado na figura abaixo.
37
Modelo
Orientado a Objetos
Tem por base um conjunto de objetos
Um objeto contem valores armazenados em
variáveis instâncias dentro do objeto.
Um objeto também contem conjuntos de
códigos que operam esses objetos
Esses conjuntos de códigos são chamados de
métodos.
Os objetos que contém os mesmos tipos de
valores e os mesmos métodos são agrupados
em classes.
38
Modelos
Lógicos com Base em Registros
São assim chamados porque o BD é
estruturado por meio de registros de formato
fixo de todos os tipos
Cada registro define um número fixo de
campos e atributos e cada campo possui
normalmente tamanho fixo
Os três modelos de dados com base em
registros mais utilizados são:
Modelo Relacional
Modelo de Rede
Modelo Hierárquico
39
Modelo Relacional
Utiliza um conjunto de tabelas para
representar tanto os dados como a
relação entre eles
Cada tabela possui múltiplas colunas e
cada uma possui um único nome.
40
Modelo Relacional
41
Modelo de Rede
São representados por um conjunto de
registros
As relações entre estes registros são
representadas por links (ligações), as
quais podem ser vistas pelos ponteiros
42
Modelo de Rede
43
Modelo Hierárquico
Similar ao modelo de rede, pois os dados e
suas relações são representados por registros
e links.
A diferença e que no modelo hierárquico os
registros estão organizados em árvores.
44
Modelo Hierárquico
45
Esquema e Instância
Os bancos de dados mudam através do
tempo à medida que informações são
inseridas ou apagadas.
A coleção de informações armazenadas no
banco de dados em um determinado
momento é chamada de instância do banco
de dados.
O projeto geral do banco de dados é
chamado de esquema de banco de dados.
Os esquemas não mudam com freqüência.
46
Esquema e Instância
Uma analogia com os conceitos de tipos de
dados, variáveis e valores nas linguagens de
programação é útil aqui.
Voltamos à definição do tipo de registro
cliente:
type cliente = record
nome: string;
rua: string;
cidade: string;
end;
47
Esquema e Instância
Note que declarando o tipo cliente, não declaramos
nenhuma variável.
Para declarar tais variáveis numa linguagem do tipo
Pascal, escrevemos:
var cliente1: cliente;
O conceito de um esquema de banco de dados
corresponde à noção de declaração de tipo em
linguagens de programação.
Uma variável de um dado tipo tem um valor
particular em um determinado instante do tempo.
Assim o conceito de valor de uma variável na
linguagem de programação corresponde ao conceito
de uma instância de um esquema de banco de
dados.
48
Esquema e Instância
Os sistemas de bancos de dados possuem diversos
esquemas subdivididos de acordo com os níveis de
abstração discutidos anteriormente.
No nível mais baixo, está o esquema físico;
No nível intermediário, o esquema conceitual
(lógico);
No nível mais alto, um subesquema (visões).
Em geral, os sistemas de bancos de dados suportam
um esquema físico, um esquema conceitual e
diversos subesquemas.
49
Esquema e Instância
50
Linguagem e Interface de BD
51
Linguagem de Definição de
Dados (DDL)
O esquema de dados é especificado por um
conjunto de definições expressas por uma
linguagem chamada DDL (Data-Definition
Languagem)
O resultado da compilação dos parâmetros
DDLs é armazenado em um conjunto de
tabelas que constituem um arquivo especial
chamado dicionário de dados ou diretório de
dados
52
Linguagem de Definição de
Dados (DDL)
Um dicionário de dados é um arquivo
de metadados – isto é, dados a respeito
de dados
Em um sistema de banco de dados,
esse arquivo é consultado antes que o
dado real seja modificado.
53
Linguagem de Manipulação
dos Dados (DML)
Por manipulação de dados entendemos:
A recuperação das informações
armazenadas no banco de dados
Inserção de novas informações no banco
de dados
A remoção de informações do banco de
dados
A modificação das informações do banco
de dados
54
Linguagem de Manipulação
dos Dados (DML)
A linguagem de manipulação de dados
(Data Manipulation Language, DML) é a
linguagem que permite aos usuários fazer o
acesso aos dados ou manipulá-los, conforme
modelo de dados apropriado. Existem
basicamente dois tipos:
DMLs procedurais requerem do usuário a
especificação de qual dado é necessário e de
como obtê-lo;
DMLs não-procedurais requerem do usuário a
especificação de qual dado é necessário sem
especificar como obtê-lo.
55
Linguagem de Manipulação
dos Dados (DML)
DMLs não-procedurais são usualmente mais
fáceis de aprender e usar do que DMLs
procedurais.
Entretanto, se um usuário não necessita
especificar como obter os dados, estas
linguagens podem gerar código não tão
eficiente como o produzido por linguagens
procedurais.
Esta dificuldade pode ser remediada por meio
de várias técnicas de otimização.
56
Linguagem de Manipulação
dos Dados (DML)
Uma consulta (query) é um comando
requisitando a busca de uma informação.
A porção de uma DML que envolve busca de
informações é chamada linguagem de
consulta. Embora tecnicamente incorreto, é
comum utilizar os termos linguagem de
consulta e linguagem de manipulação
de dados como sinônimos.
57
Estrutura geral do sistema
Um sistema de banco de dados é dividido em
módulos que tratam de cada uma das
responsabilidades do sistema geral.
Na maioria dos casos, o sistema operacional
do computador fornece apenas os serviços
mais básicos e o sistema de banco de dados
precisa ser construído sobre essa base.
Portanto, o projeto do sistema de banco de
dados precisa incluir considerações sobre a
interface entre o sistema de banco de dados
e o sistema operacional.
58
Estrutura geral do sistema
Os componentes funcionais de um sistema de
banco de dados incluem:
Gerenciador de arquivos, que gerencia a
alocação do espaço na armazenagem do disco e
as estruturas de dados usadas para representar a
informação armazenada no disco.
Gerenciador do banco de dados, que fornece a
interface entre os dados de baixo nível
armazenados no disco e os programas aplicativos
e de consulta submetidos ao sistema.
59
Estrutura geral do sistema
Componentes funcionais de um sistema de
banco de dados:
Processador de consultas, que traduz os
comandos numa linguagem de consulta para
instruções de baixo nível que o gerenciador do
banco de dados pode interpretar. Além disso, o
processador de consultas tenta transformar uma
requisição do usuário em uma forma compatível e
mais eficiente com respeito ao banco de dados,
encontrando uma boa estratégia para a executar a
consulta.
60
Estrutura geral do sistema
Componentes funcionais de um sistema de
banco de dados:
Pré-compilador da DML, que converte
comandos da DML embutidos em um aplicativo
para chamadas de procedimento normal na
linguagem hospedeira. O pré-compilador precisa
interagir com o processador de consultas pra
gerar o código apropriado.
Compilador da DDL, que converte comandos da
DDL em um conjunto de tabelas contendo
metadados ou "dados sobre dados".
61
Estrutura geral do sistema
Adicionalmente, diversas estruturas de dados são
requeridas como parte da implementação do sistema
físico, incluindo:
Arquivos de dados, que armazenam o banco de dados
propriamente dito.
Dicionário de dados, que armazena metadados sobre a
estrutura do banco de dados. O dicionário de dados é usado
com freqüência. Assim, deve-se dar grande ênfase no
desenvolvimento de um bom projeto e implementação
eficiente do dicionário.
Índices, que fornecem acesso rápido aos itens de dados
guardando determinados valores.
62
63