Upload
carlos-pampulim-caldeira
View
1.363
Download
2
Embed Size (px)
Citation preview
Desenho de Bases de DadosDatabase Design
Carlos Pampulim Caldeirahttp://www.di.uevora.pt/~ccaldeira
Com base em Mullins Cap. 4
Administração de Bases de Dados
Database Design (2/n)
Fundamental:•Desenho do modelo de dados•Modelo empresarial•Diagrama do modelo de dados relacional•Diagrama UML
Descoberta de entidades, atributos e relações:
• Lista de verbos, nomes, adjectivos• Busca de múltiplas fontes de informação• Contextualização dos termos
Database Design (3/n)
Do modelo lógico ao físico:
• Conhecimento aprofundado dos objectos e estruturas físicas do SGBDR• Indexação, integridade referencial, restrições, tipos de dados• DDL (data definition language)
Database Design (6/n)
Estrutura física
• Não é apenas:– Construir tabelas, colunas– Regras de integridade e índices
• Tabelas atribuídas a ficheiros especiaisTabelas atribuídas a ficheiros especiais
Tablespace: questões
• Cálculo do espaço necessário para armazenar os dados das tabelas
• Tipo de ficheiro
Database performance design
• A questão fundamental é saber quantos índices criar e de que tipo
• Um índice é um caminho alternativo
• Diferentes tipos de índices
Índice BitMap
‘Male’ 1000011101
‘Female’ 0110000010
‘Unknown’ 0001100000
Resultado: as linhas 1,6,7,8 e 10 indicam pessoas do sexo masculino; as 2, 3 e 9 indicam o sexo feminino e as 4 e 5 como sendo desconhecido.
Outros formas de optimização
• Hashing
• Clustering
• Desnormalização (Mullins desnormalization guide)
– Morte da desnormalização
Views
São construções virtuais do SGBDR que facilitam o funcionamento de alguns procedimentos, uma view pode ser considerada uma tabela lógica.
• Segurança no acesso aos dados• Simplifica a estrutura dos dados• Renomeia tabelas e colunas• Assegura derivação de dados• Melhora o acesso a alguns dados
Views
• Em condições normais: sem subqueries, nem campos calculados, nem campos repetidos e respeitando a(s) chave(s) primária(s) é possível utilizar as views para alterar ou inserir dados na(s) tabela(s) que suportam uma view.