Banco de Dados - Sistemas de Gerenciamento de Banco de Dados
Banco de Dados. Bibliografia de Banco de Dados Livros-texto (entre muitos outros): Banco de Dados,...
Transcript of Banco de Dados. Bibliografia de Banco de Dados Livros-texto (entre muitos outros): Banco de Dados,...
Banco de Banco de DadosDados
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çãoConceitos 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.
Mini-mundo Banco de
Dados
Usuários
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 DadosConceitos Básicos
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
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
• SGBD
• Sistema de Banco de Dados
Sistema de Banco de DadosSistema de Banco de Dados
Definiçãodo BD
(Meta-dados)
BDarmazenado
Consultas / Programas de Aplicação
Software para processarconsultas / programas
Software para acessardados armazenados
Usuários / Programadores
Sistema de BD
SGBD
Um exemplo de banco de dados
Aluno Nome Número Área
Antonio 8 INF
Disciplina Nome Número Créditos Dept
Estruturas de DadosMatemática DiscretaBancos de Dados
INF3320MAT2410INF3380
433
INFMATINF
Pré-Requisito No_Curso
INF3380INF3320
No_Pre-Req
MAT2410INF1310
Histórico-Escolar No_Aluno No_Curso Grau
178888
INF1310MAT2410INF1310INF3320INF3380
CAABA
Sistemas de InformaçãoSistemas 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.
Programa deaplicação de BDSGBD Programa deaplicação de BD
Programa deaplicação
dadose
regras
?!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
MundoReal
Requisitosde Dados
Projeto Conceitual
Projeto Lógico
Projeto Físico
Coleta/Especificaçãode Requisitos
RequisitosFuncionais
Análise Funcional
Projeto Funcional
Programação
Programa deaplicação de BDSGBD Programa deaplicação de BD
Programa deaplicação
dadose
regras
MundoReal
Programa com dados armazenados
Programa com gerência de arquivos
Programa deaplicação de BDSGBD
Programa com gerência de arquivos
Programa com gerência de arquivos
Programa deaplicação de BD
Programa deaplicação de BD
dados
dados
Programa com dados armazenados
Programa com dados armazenados
Evolução dos Sistemas de Informação
Evolução dos Bancos de Dados(Khoshafian 1995)
Sistemas de arquivos
BD em rede BD hierárquico
BD relacional
LinguagensOO
Modelossemânticos
Objetoscomplexos
BD OO Informationretrieval
InteligênciaartificialHipermídia
BD “inteligente”
Evolução dos Bancos de DadosEvolução dos Bancos de Dados
Programa deaplicação de BD
SGBD
Programa deaplicação de BD
Programa deaplicação de BD
dados
regras
Regras permitem disvincular certos procedimentos dos programas de aplicação
Bancos de Dados CentralizadosBancos de Dados Centralizados
hardware + sistema operacional
Programa deaplicação de BD
SGBD
Programa deaplicação de BD
Programa deaplicação de BD
dados
(Década de 70)(Década de 70)
terminaislocais
modem
terminaisremotos
Redes de MicrocomputadoresRedes de Microcomputadores
microcomputadores (estações de trabalho)cada vez mais poderosos
(Década de 80)(Década de 80)
cabo da rede
Arquitetura Cliente/Servidor Arquitetura Cliente/Servidor com Servidor de Arquivoscom Servidor de Arquivos
Servidorde Arquivos
Servidorde Impressão
Programa+ SGBD Programa
+ SGBD
cabo da rede
Arquitetura Cliente/Servidor com Arquitetura Cliente/Servidor com Servidor de Bancos de DadosServidor de Bancos de Dados
Servidorde Arquivos
Servidorde Impressão
Programa
Servidor deBanco de Dados
SGBD
Programa
cabo da rede
Arquitetura Cliente/Servidor com Múltiplos Arquitetura Cliente/Servidor com Múltiplos Servidores de Bancos de Dados CooperativosServidores de Bancos de Dados Cooperativos
(Década de 90)(Década de 90)
modem
gateway
mainframe
Comunicação BDs via Web
Pessoal envolvido em grandes sistemas de Pessoal envolvido em grandes sistemas de bancos de dadosbancos 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 Pessoal envolvido em grandes sistemas de bancos de dadosbancos 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 Pessoal envolvido em grandes sistemas de bancos de dadosbancos 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 Pessoal envolvido em grandes sistemas de bancos de dadosbancos 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 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.
Pessoal envolvido em grandes sistemas de Pessoal envolvido em grandes sistemas de bancos de dadosbancos de dados
Funcionalidades de um SGBDFuncionalidades 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ânciaControle 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 AcessoControle 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 restrito apenas a transações “enlatadas”;
• proibição de uso de software privilegiado, a ex. do software de criação de contas.
Persistência p/ Objetos e Estruturas de Persistência p/ Objetos e Estruturas de DadosDados
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 Inferência através de Regras de DeduçãoDedução
Capacidade de permitir a definição de regras no SGBD que permitam deduzir novas informações a partir dos fatos armazenados.
Regras: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:Consulta:
“Quais os adolescentes cariocas que são engenheiros”?
Múltiplas InterfacesMúltiplas Interfaces
Um SGBD deve prover uma variedade de interfaces de usuário.
Tipos de interfaces: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 RelacionamentosRepresentaçã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 IntegridadeCumprimento das Restrições de Integridade
Restrições: Restrições:
• forma de verificação da consistência dos dados no BDs
Restrições de integridade mais complexas: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çãoCapacidade 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 DadosBenefícios adicionais dos Bancos de Dados
• Potencial para o estabelecimento e o cumprimento de padrões
• 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çãoBancos de dados não são sempre a solução
• SobrecustosSobrecustos
– Alto investimento inicial e possível necessidade de hardware adicional.
– Custo da generalidade do SGBD para definição e processamento dos dados.
– “Overhead” para garantir segurança, controle de concorrência, recuperação e integridade.
• Quando NÃO usar BDsQuando 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ânciaModelo, Esquema, Instância
Modelo
Instância
Esquema
Percepçãoabstrata da realidade
Percepção daestrutura darealidade
Descrição darealidade num dadomomento
regras para estruturar dados
regras para verificar validade
(Intensão)(Intensão)
(Extensão)(Extensão)
estático, invariante no tempo
dinâmico,variante no tempo
Aluno Nome Número Área
Antonio 8 INF
Disciplina Nome Número Créditos Dept
Estruturas de DadosMatemática DiscretaBancos de Dados
INF3320MAT2410INF3380
433
INFMATINF
Pré-Requisito No_Curso
INF3380INF3320
No_Pre-Req
MAT2410INF1310
Histórico-Escolar No_Aluno No_Curso Grau
178888
INF1310MAT2410INF1310INF3320INF3380
CAABA
Modelo, Esquema, InstânciaModelo, Esquema, Instânciamodelo relacional
(tabelas)
esquema
instância
A Arquitetura de Três Esquemas
VisãoExterna 1
VisãoExterna 1
VisãoExterna n
VisãoExterna n
Esquema ConceitualEsquema Conceitual
Esquema InternoEsquema Interno
Usuários finais
. . .NÍVEL EXTERNONÍVEL EXTERNO
NÍVEL CONCEITUALNÍVEL CONCEITUAL
NÍVEL INTERNONÍVEL INTERNO
mapeamento externo/conceitual
mapeamento conceitual/interno
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õesVisões
exemploexemplo: : companhia aéreacompanhia 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 DadosInterfaces 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
Comandos em LDD
Comandos privilegiados
Consulta dealto nível
Programas deaplicação
Comandos em LMD
TransaçõescompiladasCompilador
da LDDCompilador
da LMD
Processadorde consultas
Processadordo BD em tempo
de execução
Compiladorda linguagemhospedeira
Subsistema de controle deconcorrência / backup / restauração
Gerenciadordos dados
armazenados
Banco de dados armazenado
Catálogo/Dicionáriode Dados
ABD e equipe usuáriosocasionais
programadoresde aplicações
usuáriosparamétricos
Pré-compilador
Classificação dos SGBDsClassificaçã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 DADOSPROJETO DE BANCOS DE DADOS
Requisitos de Dados
Projeto Conceitual
Projeto Lógico
Projeto Físico
Esquema Conceitual
Esquema Físico
Esquema Lógico
Coleta e Análisede Requisitos
Mini-Mundo
Independentede SGBD
Específico paraum SGBD
Foco : dados
Banco de Dados Hierárquicos Banco de Dados Hierárquicos
Segue o estilo de um organograma empresarial (Diretoria-Divisão-Seção-Setor) ou de biblioteca (Exata-Matemática-Algebra 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 Comercial
Injeção Extrusão Pagar Receber Contábil Vendas Marketing
Paulo Vinícius Vilma Sílvia Dagoberto Juracy RichardPedro Carlos Ernesto Sandra Paula Pedrinho João
Sabemos que Paulo é "filho" da Injeção que por sua vez é "filha" da Fábrica.
Banco de Dados em Rede 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