Banco de
Dados
Bibliografia de Banco de Dados
Livros-texto (entre muitos outros):
• Banco de Dados, Uma Visão Prática,Felipe Machado e
Mauricio Abreu, Ed Érica, 1999.
• Modelagem Coceitual e Projeto de Banco de Dados, Paulo
Cougo, EdCampus, 1997.
Introdução
Conceitos Básicos
• Conjunto de dados sobre o qual uma comunidade de
usuários realiza operações de recuperação e atualização.
• Um BD representa algum aspecto do mundo real, chamado “mini-mundo” ou
“universo de discurso”. As mudanças no mini-mundo são refletidas no banco
de dados.
Usuários
Mini-mundo
Banco
de
Dados
Aplicações
Conceitos Básicos
• Um banco de dados computadorizado pode ser criado e mantido por um grupo de
programas de aplicação escritos especificamente para aquela tarefa ou por um
SISTEMA DE GERÊNCIA DE BANCOS DE DADOS (SGBD).
• Um SGBD é uma coleção de programas de propósito geral que facilita o processo de
definir, construir e manipular bancos de dados para várias aplicações.
– Definir um banco de dados significa especificar os tipos de dados a serem
armazenados juntamente com uma descrição detalhada de cada tipo.
– Construir o banco de dados é o processo de armazenar os dados em algum
meio de armazenamento controlado pelo SGBD.
– Manipular um banco de dados compreende certas funções como consultar o
banco de dados para recuperar dados específicos, atualizar o banco de dados
para refletir mudanças percebidas no mini-mundo e produzir relatórios a partir
dos dados.
• O banco de dados e o SGBD juntos são chamados genericamente de SISTEMA DE
BANCOS DE DADOS.
Bancos de Dados
Conceitos Básicos
• SGBD
Coleção de programas de propósito geral que
facilita o processo de definir, construir e manipular
banco de dados para várias aplicações
• Sistema de Banco de Dados
Sistema de Banco de Dados
Usuários / Programadores
Sistema de BD
Consultas / Programas de Aplicação
SGBD
Software para processar
consultas / programas
Software para acessar
dados armazenados
Definição
do BD
(Meta-dados)
BD
armazenado
Um exemplo de banco de dados
Aluno
Nome
Número
Área
José
Antonio
17
8
INF
INF
Nome
Disciplina
I.C.C.
Estruturas de Dados
Matemática Discreta
Bancos de Dados
Pré-Requisito
Histórico-Escolar
Número
Créditos
Dept
INF1310
INF3320
MAT2410
INF3380
4
4
3
3
INF
INF
MAT
INF
No_Curso
No_Pre-Req
INF3380
INF3380
INF3320
INF3320
MAT2410
INF1310
No_Aluno
No_Curso
Grau
17
17
8
8
8
8
MAT2410
INF1310
MAT2410
INF1310
INF3320
INF3380
B
C
A
A
B
A
Sistemas de Informação
• SISTEMA DE INFORMAÇÃO
– dados;
– SGBD;
– o hardware e o sistema operacional;
– as pessoas que usam e administram os dados;
– os programas de aplicação que acessam e atualizam os
dados;
– os programadores que desenvolvem essas aplicações.
Mundo
Real
?!
Desenvolver um projeto de
sistema de informação consiste
em traduzir um “problema” do
mundo real numa “solução” que
envolve a organização, pessoas e
tecnologia (hardware e software).
SISTEMA DE INFORMAÇÃO
dados
e
regras
SGBD
Programa
de
Programa
de
Programa
de
aplicação
de
BD
aplicação
de
aplicaçãoBD
Mundo
Real
Requisitos
de Dados
Coleta/Especificação
de Requisitos
Requisitos
Funcionais
Projeto Conceitual
Análise Funcional
Projeto Lógico
Projeto Funcional
Projeto Físico
Programação
dados
e
regras
SGBD
Programa
de
Programa
de
Programa
de
aplicação
de
BD
aplicação
de
aplicaçãoBD
Evolução dos Sistemas de Informação
Programa com
Programa com
dados
Programa
armazenados
com
dados armazenados
dados armazenados
Programa com
Programa com
Programa
com
gerência
de arquivos
gerência de arquivos
gerência de arquivos
dados
dados
SGBD
Programa de
Programa de
Programa
de
aplicação
de BD
aplicação de BD
aplicação de BD
Evolução dos Bancos de Dados
(Khoshafian 1995)
Sistemas de arquivos
BD hierárquico
BD em rede
BD relacional
Linguagens
OO
Hipermídia
Modelos
semânticos
Inteligência
artificial
BD OO
BD “inteligente”
Objetos
complexos
Information
retrieval
Evolução dos Bancos de Dados
dados
SGBD
Programa de
Programa de
Programa
de
aplicação
de BD
aplicação de BD
aplicação de BD
regras
Regras permitem disvincular certos procedimentos dos programas
de aplicação
Bancos de Dados Centralizados
(Década de 70)
hardware + sistema operacional
Programa de
aplicação de BD
dados
SGBD
terminais
locais
Programa de
aplicação de BD
Programa de
aplicação de BD
modem
terminais
remotos
Redes de Microcomputadores
(Década de 80)
cabo da rede
microcomputadores (estações de trabalho)
cada vez mais poderosos
Arquitetura Cliente/Servidor
com Servidor de Arquivos
Servidor
de Arquivos
cabo da rede
Programa
+ SGBD
Programa
+ SGBD
Servidor
de Impressão
Arquitetura Cliente/Servidor com
Servidor de Bancos de Dados
SGBD
Servidor de
Banco de Dados
Servidor
de Arquivos
cabo da rede
Programa
Programa
Servidor
de Impressão
Arquitetura Cliente/Servidor com Múltiplos
Servidores de Bancos de Dados Cooperativos
(Década de 90)
gateway
modem
mainframe
Comunicação BDs via Web
Pessoal envolvido em grandes sistemas de
bancos de dados
• Usuários (“atores em cena”)
– projetistas do BD
– administradores do BD (ABD) :
– usuários finais
- ocasionais
- paramétricos
- sofisticados
- analistas de sistemas
- programadores de aplicação
Pessoal envolvido em grandes sistemas de
bancos de dados
•Usuários (“atores em cena”)
– projetistas do BD : responsáveis por identificar
os dados a serem armazenados no BD e por
escolher as estruturas apropriadas para
representar e armazenar esses dados.
Comunicação c/ usuários p/ identificação de
visões.
– administradores do BD (ABD) : responsáveis
pela autorização do acesso ao BD e pela
coordenação e monitoração do seu uso.
Pessoal envolvido em grandes sistemas de
bancos de dados
•Usuários (“atores em cena”)
– usuários finais
- ocasionais : tipicamente gerentes e
tomadores de decisão.Utilizam-se de ling.
consultas sofisticadas.
- paramétricos : usuários de transações
“enlatadas”, por exemplo, caixas de bancos,
funcionários de reservas em companhias
aéreas.
- sofisticados : engenheiros, cientistas,
analistas de negócios.Utilizam-se das
facilidades do SGBD.
Pessoal envolvido em grandes sistemas de
bancos de dados
•Usuários (“atores em cena”)
– analistas de sistemas : determinam os
requisitos dos usuários finais, especialmente
dos ocasionais e paramétricos, e desenvolvem
especificações de transações que satisfaçam
esses requisitos.
– programadores de aplicação : implementam as
especificações das transações como
programas, testando-os, corrigindo-os e
documentando-os.
Pessoal envolvido em grandes sistemas de
bancos de dados
•Pessoal de suporte (“trabalhadores atrás da cena”)
– projetistas e implementadores de SGBD : projetam
e implementam o SGBD como um software produto.
– projetistas e implementadores de ferramentas :
projetam e implementam pacotes de software que
facilitam o projeto e o uso do BD e ajudam a
melhorar o desempenho do SGBD.
– operadores e pessoal de manutenção e suporte :
responsáveis pelo funcionamento do ambiente de
hardware e software do sistema de BD.
Funcionalidades de um SGBD
• Controle de redundância
• Compartilhamento de dados
• Controle de Acesso
• Persistência p/ Objetos e Estrut. de
Dados
• Inferência através de Regras de Dedução
• Múltiplas interfaces
• Representação de relacionamentos
• Cumprimento das restrições de
integridade
• Capacidade de “backup” e restauração
Controle de Redundância
• Redundância
Problemas:
• duplicação de esforço para manter os dados atualizados;
• desperdício de espaço de armazenamento;
• possibilidade de inconsistência dos dados
Quando a redundância é necessária:
SGBD deve ser capaz de controlar a redundância para
evitar inconsistências.
Compartilhamento de Dados
• Sistemas multiusuários
Controle de Concorrência
Controle de Acesso
Subsistema de segurança e autorização
Mecanismos usuais de controle de acesso:
• senhas para usuários e para grupos de usuários;
• restrição de acesso a parte do banco de dados;
• proibição de executar certas operações, por exemplo
atualização;
• acesso de usuários paramétricos
transações “enlatadas”;
restrito
apenas
a
• proibição de uso de software privilegiado, a ex. do software
de criação de contas.
Persistência p/ Objetos e Estruturas de
Dados
Capacidade dos Banco de Dados de se
integrarem a linguagens de programação de
alto nível de forma a permitir que as
estruturas criadas pelas LPs fiquem
armazenadas definitivamente no BDs.
Inferência através de Regras de
Dedução
Capacidade de permitir a definição de regras no SGBD que
permitam deduzir novas informações a partir dos fatos
armazenados.
Regras:
adolescentes são todos aqueles que têm entre 14 e 18 anos
• carioca: cidadão natural do RJ
• engenheiros: todo aquele que tem diploma de curso de
Engenharia
Consulta:
“Quais os adolescentes cariocas que são engenheiros”?
Múltiplas Interfaces
Um SGBD deve prover uma variedade de interfaces de
usuário.
Tipos de interfaces:
• linguagens de consulta para usuários casuais;
• linguagens de programação para programadores
de aplicações;
• formulários (telas) para usuários paramétricos;
• menus;
• linguagem natural.
Representação de Relacionamentos
O SGBD deve ter a capacidade de representar uma
variedade de relacionamentos complexos entre os
dados, bem como recuperar e atualizar dados
relacionados de uma maneira fácil e eficiente.
Cumprimento das Restrições de Integridade
Restrições:
• forma de verificação da consistência dos dados no BDs
Restrições de integridade mais complexas:
• Unicidade de itens de dados;
• Integridade referencial (um registro em uma tabela que
referencia outra tabela deve referenciar um registro existente
na outra tabela)
• Restrições derivadas da semântica dos dados (exemplo: um
aluno não pode fazer a mesma disciplina mais de uma vez).
Capacidade de Backup e Restauração
O SGBD deve prover facilidades para restaurar o banco de
dados em caso de falha de hardware ou de software.
sub-sistema de backup e restauração: responsável por
assegurar que o banco de dados é restaurado para seu
estado anterior à execução do programa.
Benefícios adicionais dos Bancos de Dados
• Potencial para o estabelecimento
cumprimento de padrões
e
o
• Flexibilidade de mudanças
• Redução no tempo de desenvolvimento de
novas aplicações
• Disponibilidade de informação atualizada
• Economia de escala
Bancos de dados não são sempre a solução
• Sobrecustos
– Alto investimento inicial e
hardware adicional.
possível
necessidade de
– Custo da generalidade do SGBD para definição e
processamento dos dados.
– “Overhead” para garantir segurança,
concorrência, recuperação e integridade.
controle
de
• Quando NÃO usar BDs
– O volume de dados é pequeno e as aplicações são simples,
bem definidas. Mudanças não são esperadas.
– Existem requisitos estritos de tempo real que não podem
ser satisfeitos por causa do “overhead” do SGBD.
– Acessos múltiplos e concorrentes não são necessários.
Modelo, Esquema, Instância
Percepção
abstrata da
realidade
Modelo
regras para
estruturar dados
Percepção da
estrutura da
realidade
Esquema
estático,
invariante no tempo
(Intensão)
regras para
verificar validade
Descrição da
realidade
num dado
momento
Instância
dinâmico,
variante no tempo
(Extensão)
Modelo, Esquema, Instância
Aluno
esquema
Nome
Número
Área
José
Antonio
17
8
INF
INF
Nome
Disciplina
I.C.C.
Estruturas de Dados
Matemática Discreta
Bancos de Dados
Pré-Requisito
Histórico-Escolar
Número
Créditos
Dept
INF1310
INF3320
MAT2410
INF3380
4
4
3
3
INF
INF
MAT
INF
No_Curso
No_Pre-Req
INF3380
INF3380
INF3320
INF3320
MAT2410
INF1310
No_Aluno No_Curso
17
17
8
8
8
8
modelo relacional
(tabelas)
MAT2410
INF1310
MAT2410
INF1310
INF3320
INF3380
instância
Grau
B
C
A
A
B
A
A Arquitetura de Três Esquemas
Usuários finais
NÍVEL EXTERNO
Visão
Externa 1
...
mapeamento
externo/conceitual
NÍVEL CONCEITUAL
Esquema Conceitual
mapeamento
conceitual/interno
NÍVEL INTERNO
Esquema Interno
Visão
Externa n
Arquitetura de Banco de Dados
• Nível Interno: descreve as estruturas de acesso e
armazenamento do BD;
• Nível Conceitual: decreve toda a estrutura do BD a
nível de propriedades, relacionamentos, restrições
etc, sem os detalhes de implementação física. Um
modelo conceitual (por ex. ERE) é utilizado nessa
etapa.
• Nível externo: corresponde às visões específicas dos
usuários.
Visões
exemplo: companhia aérea
1- Empregados
(nome, cpf, end, tel, filiação, dep)
2- Equipamentos
(n0 avião,marca,tipo,capac,
tripulação, revisão)
3- Funções
(nomefunção,salário,qualificação,
serviço, tipo_equipam)
4-Vôo
(linha, tipo_equipam, n0horas,
serviço_bordo, horário)
Aplicações:
•Folha pagamento
(1,3)
•Equipe tripulação
(1,2,3)
•Manutenção equip
(1, 2)
•Reserva vôo
(2,4)
•Escala manutenção
(1,2,3)
Independência de Dados
Capacidade de mudar o esquema num nível de um
sistema de banco de dados sem ter que mudar o
esquema no nível seguinte mais alto.
Independência lógica de dados:
Independência física de dados:
Linguagens de Bancos de Dados
• Linguagem de definição dos dados (LDD)
•
Linguagem de definição do armazenamento (LDA)
•
Linguagem de definição das visões (LDV)
– (Usualmente a LDD incorpora a LDA e a LDV)
•
Linguagem de manipulação dos dados (LMD)
– Alto nível ou não procedural : orientada a conjuntos
– Baixo nível ou procedural : orientada a registros
– (Às vezes, a LDD e a LMD confundem-se na mesma linguagem.
Exemplo : SQL)
•
Linguagem hospedeira
– Linguagem de programação na qual comandos da LMD são embutidos.
Interfaces de Bancos de Dados
• Interfaces baseadas em menus (listas de opções)
• Interfaces gráficas
• Interfaces baseadas em formulários (telas)
• Interfaces de linguagem natural
• Interfaces para usuários paramétricos
• Interfaces para o ABD
Componentes de um SGBD
usuários
ocasionais
ABD e equipe
Comandos
em LDD
Comandos
privilegiados
Consulta de
alto nível
programadores
de aplicações
Programas de
aplicação
usuários
paramétricos
Pré-compilador
Processador
de consultas
Compilador
da LDD
Catálogo/
Dicionário
de Dados
Compilador
da linguagem
hospedeira
Comandos
em LMD
Compilador
da LMD
Transações
compiladas
Processador
do BD em tempo
de execução
Gerenciador
dos dados
armazenados
Subsistema de controle de
concorrência / backup / restauração
Banco de dados armazenado
Classificação dos SGBDs
• Critério principal de classificação: modelo de dados
Relacional, Redes, Hierárquico, Relacional Objeto
e Orientado a Objetos.
• Outros critérios:
– Número de usuários
Monousuário, Multiusuário
– Número de locais (“sites”)
Centralizado, Distribuído (homogêneo, heterogêneo)
– Preço (US$)
100 a 3.000 (monousuários, PC), 10.000 a 100.000 (a
maioria), 100.000 a 300.000 (alguns mais elaborados)
– Propósito
Geral, Específico
PROJETO DE BANCOS DE DADOS
Foco : dados
Mini-Mundo
Coleta e Análise
de Requisitos
Requisitos de Dados
Projeto Conceitual
Independente
de SGBD
Esquema Conceitual
Projeto Lógico
Específico para
um SGBD
Esquema Lógico
Projeto Físico
Esquema Físico
Banco de Dados Hierárquicos
Segue o estilo de um organograma empresarial (DiretoriaDivisão-Seção-Setor) ou de biblioteca (Exata-MatemáticaAlgebra Linear-Vetores). Este modelo é capaz de representar
este tipo de organização de forma direta, mas apresenta
inconvenientes quando esta situação não aparece claramente
com relações de hierarquia.
Fábrica
Financeiro
Receber
Comercial
Injeção
Extrusão
Pagar
Contábil
Vendas
Marketing
Paulo
Pedro
Vinícius
Carlos
Vilma Sílvia
Dagoberto Juracy
Ernesto Sandra
Paula
Pedrinho
Richard
João
Banco de Dados em Rede
Neste modelos os dados são dispostos em registros,
previamente classificados em classes que descrevem a
estrutura de determinado tipo de registro. Os registros são
descritos em relações de conjuntos onde são estabelecidas as
ligações lógicas entre eles.
Informática
André
Paulo
Carla
Download

BANCOS DE DADOS