Upload
internet
View
140
Download
0
Embed Size (px)
Citation preview
Asterio K. Tanaka
BANCO DE DADOS(Fundamentos e Projeto)
Asterio K. Tanakahttp://www.uniriotec.br/~tanaka
ORÁCULOConsultoria de Sistemas
Rio de Janeiro Utilização por terceiros autorizada com citação da fonte.
Asterio K. Tanaka
Programa deaplicação de BDSGBD Programa deaplicação de BD
Programa deaplicação
dadose
regras
SISTEMA DE INFORMAÇÃO
Sistema de informação:- Organização- Pessoas- Tecnologia
- hardware- software- telecomunicações
Asterio K. Tanaka
Evolução dos Sistemas de Informação
• 50-60’s: programas com dados armazenados
• 60-70’s: sistemas de arquivos
• 70-90’s: sistemas de bancos de dados
• 90’s - ? (depois da WWW): sistemas de informações para Web (WIS)
Asterio K. Tanaka
Programa com dados armazenados
Programa com gerência de arquivos
Programa deaplicação de BD
Sistema deGerência
de BD
Programa com gerência de arquivos
Programa com gerência de arquivos
Programa deaplicação de BD
Programa deaplicação de BD
arquivosde dados
bancode dados
Programa com dados armazenados
Programa com dados armazenados
Programa deaplicação de BD
MiddleWare
Programa deaplicação de BDAplicaçõesFontes
dedados
MiddleWareMiddleWare
Asterio K. Tanaka
Mini-mundo Banco de
Dados
Usuários
Aplicações
• Coleção autodescritiva de dados relacionados, logicamente coerentes e com algum significado inerente.
• Projetado, construído e povoado com dados para um propósito específico.
• Grupo de usuários e Aplicações pré-concebidas.
Banco de DadosConceitos Básicos
Asterio K. Tanaka
Um Ambiente (simplificado) de Sistema de Banco de Dados
Definiçãodo BD
(Metadados)
BDarmazenado
Consultas / Programas de Aplicação
Software para processarconsultas / programas
Software para acessardados armazenados
Usuários / Programadores
Sistema de BD
SGBD
Asterio K. Tanaka
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
Asterio K. Tanaka
Processamento de uma Aplicação
Sistema Operacional
Área de Entrada e Saída
Base deDados
Armazenados
CatálogoSistema /Dicionáriode Dados
SGBD
Área Local deDados
Programa deAplicação
10
12
11
76
9854
3
2 1
Fluxo de Dados
Fluxo de Controle
Asterio K. Tanaka
Características dos Sistemas de Bancos de Dadosversus Sistemas de Arquivos
• Natureza auto-contida de um sistema de banco de dados
– metadados armazenados num catálogo ou dicionário de dados
• Independência entre programas e dados
– estrutura dos arquivos de dados armazenada no catálogo separadamente dos programas de acesso
• Abstração de dados
– representação conceitual dos dados através de modelos de dados
• Suporte de múltiplas visões de dados
– diferentes perspectivas ou visões de usuários
• Suporte a transações
– compartilhamento de dados e processamento multiusuário
Asterio K. Tanaka
A Arquitetura de Três Esquemas
VisãoExterna 1
VisãoExterna n
Esquema Conceitual
Esquema Interno
Usuários finais
. . .NÍVEL EXTERNO
NÍVEL CONCEITUAL
NÍVEL INTERNO
mapeamento externo/conceitual
mapeamento conceitual/interno
Asterio K. Tanaka
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:
Capacidade de mudar o esquema conceitual sem ter que mudar esquemas externos ou programas de aplicação.
• Independência física de dados:
Capacidade de mudar o esquema interno sem ter que mudar o esquema conceitual
Asterio K. Tanaka
MODELOS DE DADOS
• Uma coleção de conceitos, construídos com base em mecanismos de abstrações, que são usados para descrever um conjunto de dados e as operações para manipular os dados.
• Representação:
– sintaxe de linguagem
– notação gráfica
Asterio K. Tanaka
Categorias de Modelos de Dados• Modelos conceituais:
representam a realidade a um nível alto de abstração (ex: ER, modelos semânticos, OO)
• Modelos lógicos ou de implementação:
suportam descrições de dados que possam ser processadas por computador (ex: hierárquico, em rede, relacional, relacional-objeto, OO).
• Modelos físicos:
descrevem como os dados são armazenados no computador através de informações como tipos de arquivos, formatos e ordenação de registros, caminhos de acesso (ex: várias formas de estruturas de arquivos).
Asterio K. Tanaka
Esquema Conceitual Entidade-Relacionamento
EMPREGADO
DEPARTAMENTO
PROJETO
DEPENDENTE
supervisiona
emprega
trabalha
gerencia
possui
controla
Data início
NúmeroNome
NumeroNomeLocal
Horas
CPFNomeData nascimentoSexoEnderecoSalario
NomeSexodata nascimentoRelacionamento
supervisionadosupervisor
(1,1) (1,N)
(0,N)(1,N)
(0,N)(0,N)
(0,N)
(0,N)
(0,N)
(1,1)
(1,1)
(0,1)
Asterio K. Tanaka
Esquema ConceitualDiagrama de Classes - UML
Asterio K. Tanaka
Um esquema de banco de dados relacional
Nome CPF Data-Nasc Endereço Sexo Salário Supervisor Dept
Nome Número
Num-Dept Localidade
Nome Número Local Dept
CPF-Emp Num-Proj Horas
CPF-Emp Nome-Dep Sexo Data-Nasc Relacionamento
EMPREGADO
DEPARTAMENTO
LOCALIZACAO
PROJETO
TRABALHO
DEPENDENTE
Gerente Num Dept Data-Inicio
GERENCIA
Asterio K. Tanaka
Uma instância de banco de dados relacional
Nome CPF Data-Nasc Endereço Sexo Salário Supervisor Dept
Nome
Num-Dept Localidade
Nome Núm Local Dept
CPF-Emp Num-Proj Horas
CPF-Emp Nome-Dep Sexo Data-Nasc Relacionamento
EMPREGADO
DEPARTAMENTO
LOCALIZACAO
PROJETO
TRABALHO
DEPENDENTE
JoaoFrankAliciaJaneRamonJoyceAhmadJames
123456789333445555999887777987654321666884444453453453987987987888665555
09Jan5508Dez4519Jul5820Jun3115Set5231Jul6229Mar5910Nov27
333445555888665555987654321888665555333445555333445555987654321 nulo
Santos,SPSantos,SPTatui,SPLins,SPMarilia,SPSantos,SPSantos,SPSantos,SP
MMFFMFMM
3000040000250004300038000250002500055000
55445541
PesquisaAdministracaoSede
541
333445555987654321888665555
22Mai8801Jan9219Jun91
14555
SantosCampinasLinsBauruSantos
123456789123456789666884444453453453453453453333445555333445555333445555333445555999887777999887777987987987987987987987654321987654321888665555
ProdutoXProdutoYProdutoZInformat.Reorgan.Beneficios
123102030
LinsBauruSantosCampinasSantosCampinas
555414
1231223102030101030302020
32,5 7,540,020,020,010,010,010,010,030,010,035,05,020,015,0nulo
333445555333445555333445555987654321123456789123456789123456789
AliceTeoJoyAbnerMiguelAliceBeth
FMFMMFF
05Abr7625Out7303Mai4829Fev3201Jan7831Dez7805Mai57
FilhaFilhoEsposaEsposoFilhoFilhaEsposa
Num
541
Num CPF Inicio
GERENCIA
Asterio K. Tanaka
Funcionalidades de um SGBD
• Controle de redundância
• Compartilhamento de dados
• Controle de acesso
• Múltiplas interfaces
• Representação de relacionamentos
• Cumprimento das restrições de integridade
• Capacidade de “backup” e restauração
Asterio K. Tanaka
Controle de Redundância
Redundância de dados
Problemas da redundância de dados:
• duplicação de esforço para manter os dados atualizados;
• desperdício de espaço de armazenamento;
• possibilidade de inconsistência dos dados
Armazenamento em um único local no banco de dados
X
Redundância para melhorar o desempenho das consultas.
Asterio K. Tanaka
Compartilhamento de Dados
• Sistemas multiusuários
• Controle de concorrência
• Transações atômicas
Asterio K. Tanaka
Controle de Acesso
Segurança e autorização
• 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;
• acesso de usuários paramétricos restrito apenas a transações “enlatadas”;
• proibição de uso de software privilegiado, como o software de criação de contas.
Asterio K. Tanaka
Múltiplas Interfaces
• Linguagens de consulta para usuários casuais;
• Linguagens de programação para programadores de aplicações;
• Interfaces gráficas com formulários (telas) e menus para usuários paramétricos;
• Interfaces para administração do banco de dados;
• Linguagem natural.
Asterio K. Tanaka
Cumprimento das Restrições de Integridade
• Tipo de dado (domínio)
• Unicidade de itens de dados (chave)
• Integridade referencial
• Restrições derivadas da semântica dos dados
Cumprimento automático pelo SGBD
ou
Especificação em programas de aplicação
Asterio K. Tanaka
Capacidade de Backup e Restauração
Casos de falha de hardware ou de software.
Backup e restauração (“recovery”) : consistência de estado do banco de dados.
Asterio K. Tanaka
Pessoal envolvido em grandes sistemas de bancos de dados
• Classe dos administradores
– administrador de sistema
– administrador de dados
– administrador de BD (ABD)
– pessoal de operação e suporte
Asterio K. Tanaka
• Classe dos desenvolvedores
– projetistas do BD
– analistas de sistemas
– programadores de aplicações
• Classe dos usuários finais
– usuários ocasionais
– operadores de aplicações
– usuários sofisticados
Asterio K. Tanaka
Ambiente de BD - Papéis
• Administrador do Sistema– instala e mantém o SGBD
– necessário bom conhecimento do SO
– tem os mais altos privilégios
• Administrador do BD– responsável por criar e manter BDs
– tem privilégios nos BDs que gerencia
• Administrador de Dados– responsável pelo ambiente de dados da organização
Asterio K. Tanaka
AD versus ABD• Administração de Dados está voltada para o
planejamento conceitual e a organização dos recursos de dados
– modelagem de dados, desenvolvimento de políticas e padrões para uso e gerência dos dados, treinamento de usuários, coordenação de atividades com projetistas de sistemas e usuários
• Administração de Banco de Dados está voltada para aspectos técnicos associados a um ambiente específico de um sistema de gerenciamento de banco de dados, no que diz respeito à operação e manutenção física de um ou mais BDs.
Asterio K. Tanaka
1. Participar dos levantamentos de dados, eventos/funções e regras de negócio junto às
áreas funcionais da Empresa;
2. Elaborar e acompanhar a confecção dos modelos Conceituais de Dados;
3. Participar da compatibilização do planejamento de sistemas com os modelos de
Dados;
4. Responsabilizar-se pela qualidade e compatibilidade dos modelos de dados com os
modelos de implementação;
5. Planejar e coordenar a evolução dos Banco de Dados da Empresa;
6. Definir, manter e auditar os metadados do Dicionário de Dados;
7. Participar da elaboração e ajuste da MDS;
8. Disseminar pela organização a utilização da AD;
9. Normatizar a administração e utilização dos dados em ambientes centralizado e
cliente/servidor;
10. Participar da pesquisa de softwares de apoio à AD, ADB e correlatos.
Funções do Administrador de Dados
Asterio K. Tanaka
Funções do Administrador de Banco de Dados1. Definição e organização da Base de Dados
- Construir o Modelo Lógico/Físico da Base de Dados;- Promover o Espaço Físico para o armazenamento;- Manter a organização Física da Base de Dados;- Manter o Dicionário/Diretório de Dados;- Manter o nível de desempenho nas operações a Base de Dados.
Proteção da Base de Dados- Controlar as operações sobre a Base de Dados;- Manter a integridade dos Dados;- Controlar o uso correto de mecanismos de recuperação;- Detectar violações de regras; Resolução de conflitos.
Especificação da documentação- Descrição da Base de Dados;- Padrões; Procedimentos de Utilização; Senhas de Acesso;- Estatísticas de Desempenho;- Procedimentos de Recuperação;- Facilidades para ambientes de teste;- Diretrizes para Treinamento.
Suporte- Escolha, Instalação, Manutenção e suporte ao uso do SGBD;- Participação na escolha do software SGBD e seus produtos afins;- Contato com os Fornecedores.
Asterio K. Tanaka
Bancos de dados não são sempre a solução
• Sobrecustos
– Alto investimento inicial
– Custo da generalidade do SGBD
– “Overhead” de processamento
• Quando NÃO usar bancos de dados
– Volume de dados pequeno, aplicações simples, bem definidas. Mudanças não são esperadas.
– Requisitos estritos de tempo real.
– Acessos múltiplos e concorrentes não são necessários.