fundamentos de banco de dados e modelagem de dados 2 - modelagem.pdf · visão materializada ......
TRANSCRIPT
Universidade Federal de Mato GrossoInstituto de ComputaçãoPós Graduação Lato Sensu em Banco de Dados
Fundamentos de Banco de Dadose
Modelagem de Dados
Prof. Dr. Josiel Maimone de [email protected]
Abril - 2015
Pós Graduação Lato Sensu em Banco de DadosDisciplina: Fundamentos de Banco de Dados e
Modelagem de Dados
Aula 2 Modelagem de Dados
Abril – 2015
Tópicos
➔ Conceitos básicos➔ O que é Modelagem de Dados?
➔ Modelo Entidade Relacionamento➔ MER-Estendido➔ Exemplos➔ Exercícios
Modelagem ➔ Um modelo
➔ representação idealizada de um sistema a ser construído;
➔ simplificação da realidade que ajuda a entender um problema complexo;
➔ consiste ➔ de notações gráficas e textuais que representam
as partes essenciais de um sistema➔ considera diversas perspectivas diferentes e
complementares.➔ está inserida em diversos artefatos do
desenvolvimento de software
Artefatos
➔ IC - UFMT
[Amber2001]
6
Engenharia de Software na prática
Modelagem ➔ No contexto de Banco de Dados uma
modelagem é a representação dos dados que serão armazenados.
➔ não envolve a manipulação➔ não envolve o processamento➔ não envolve a forma de visualização
O que é Modelagem➔ Arquitetura de Banco de Dados
SGBD
Conexão
Aplicação
Visão
Várias visões
O que é Modelagem➔ Arquitetura de Banco de Dados
SGBD
Conexão
Aplicação
Visão
Conceitual
Física
Lógica
O que é Modelagem➔ Arquitetura de Banco de Dados
SGBD
Conexão
Aplicação
Visão
Conceitual
Física
Lógica● Próxima do Usuário Final● Longe de Tecnologia● Representação por Diagramas
O que é Modelagem➔ Arquitetura de Banco de Dados
SGBD
Conexão
Aplicação
Visão
Conceitual
Física
Lógica
● Próxima da Programação● Depende da Tecnologia● Representação por Modelo do SGBD
● relações (tabelas)● cursores
O que é Modelagem➔ Arquitetura de Banco de Dados
SGBD
Conexão
Aplicação
Visão
Conceitual
Física
Lógica
● Próxima do DBA● Próxima do Armazenamento● Representação por estrutura de dados
● listas, ● registros, ● blocos, ● setores, ● trilhas
O que é Modelagem➔ Arquitetura de Banco de Dados
SGBD
Conexão
Aplicação
Visão
Conceitual
Física
Lógica
Modelagem Física➔ O Projeto Físico envolve
➔ definir os locais de armazenamento dos dados
➔ Disk array➔ RAID
➔ Tamanho e organização de arquivos➔ Tablespaces➔ Segmentos➔ Extensões➔ Blocos
➔ Arquivos de recuperação (redo log)➔ Organização e local
Modelagem Física➔ O Projeto Físico envolve (cont.)
➔ Métodos de Acesso➔ B-Tree➔ Bitmap➔ Hash
➔ Organização de Armazenamento➔ Visão➔ Visão Materializada➔ Cluster
Modelagem Física➔ O Projeto Físico envolve (cont.)
➔ Tamanho de memória➔ SGA➔ Cache/Buffer➔ Área de Programa➔ Área de dados➔ Pool compartilhado➔ ...
Modelagem Física➔ O Projeto Físico envolve (cont.)
➔ Métodos de Acesso➔ B-Tree➔ Bitmap➔ Hash➔ GIST (PostgreSQL)➔ Cartuchos (Oracle)
➔ Organização de Armazenamento➔ Cluster
➔ Backup
Modelagem Lógica➔ O Projeto Lógico envolve
➔ Definição de tabelas➔ Inserção dos dados (previsão)➔ Definição das Consultas e Relatórios
➔ Quais➔ Quantidade e freqüência (previsão)
➔ Procedimentos Armazenados➔ Tipos de Conexão➔ Direitos de Acesso
➔ Direitos e Papéis
Modelagem Conceitual➔ O Projeto Conceitual
➔ ????????
20
Modelagem Conceitual
➔ Normalmente parte-se de um documento que descreve o mundo real
➔ Levantamento de requisitos➔ Metáforas
➔ remetem a experiências já conhecidas pelos usuários
➔ Metodologias como Extremme Programming colocam a metáfora como obrigatória.
➔ Priorizado o que tem valor para o cliente e para o negócio
21
Levantamento de Requisitos➔ Descrição detalhada da organização e
seu ambiente computacional➔ Questões organizacionais
➔ objetivos➔ estrutura➔ operações➔ problemas
➔ Ambiente/sistema Computacional➔ objetivos➔ escopo e fronteiras➔ origem das informações e usuários➔ necessidades do usuário final
22
Modelagem Conceitual
➔ Modelos Conceituais ou Semânticos➔ Modelo Entidade-Relacionamento➔ Modelos semânticos recaem sobre o conceito
de Abstrações: os construtores Semânticos do modelo são organizados como ocorrências de abstrações.
➔ Abstrair consiste em desconsiderar detalhes da informação disponível para ter-se uma visão mais geral (mais abstrata).
23
Modelagem Conceitual
➔ A conceituação do modelo apoia-se no processo de modelagem tal como é desenvolvido pelos analistas
OS TRÊS REINOS
ReinoReal
Reino da Representação
Reino Imaginário
Percepção
Modelagem Implementação
24
Modelagem Conceitual
➔ No processo de Percepção da aplicação, o projetista não entende determinados detalhes do mundo real. Esses detalhes não são sequer imaginados.
ReinoReal
Reino da Representação
Reino Imaginário
Percepção
Modelagem Implementação
25
Modelagem Conceitual
➔ No processo de Modelagem da aplicação, o projetista desconsidera outros detalhes do mundo real, por não ser de interesse modelá-los.
ReinoReal
Reino da Representação
Reino Imaginário
Percepção
Modelagem Implementação
26
Modelagem Conceitual
➔ Tanto na Percepção quanto na modelagem, os detalhes descartados não são colocados no sistema implementado.
➔ A Abstração coloca os detalhes, bem como os dados abstratos no sistema implementado. Assim, o sistema pode “ver” os dados com mais ou menos detalhe, conforme o interesse.
ReinoReal
Reino da Representação
Reino Imaginário
Percepção
Modelagem Implementação
27
Modelagem Conceitual
➔ A conceituação do modelo apoia-se no processo de modelagem tal como é desenvolvido pelos analistas
➔ OS TRÊS REINOS
ReinoReal
Reino da Representação
Reino Imaginário
Percepção
Modelagem Implementação
Modela-se o que é percebido (entendido).
Do entendido: Modela-se (ou representa-se) somente aquilo
que é de interesse para o sistema que
está sendo estudado.
Modelagem de Dados
➔ Modelo Entidade Relacionamento
➔ Proposto em 1976
P. Chen, ''The Entity-Relationship Model - Toward a Unified View of Data,'' ACM Trans. on Database Systems, Vol. 1, No. 1, March 1976.
Modelagem de Dados
➔ O Modelo Entidade Relacionamento possui apenas 2 abstrações (construtores semânticos).
➔ Qualquer informação do Mundo Real pode ser representada escolhendo-se apenas entre:
➔ Entidades;
➔ Relacionamentos;
Modelo ER
➔ Entidades
➔ Representa algo do Mundo Real;➔ Alguns autores denominam
➔ entidade e➔ conjunto de entidades
➔ Usaremos a denominação➔ instância de entidade e ➔ entidade
Modelo ER
➔ Entidades
➔ Composta de Atributos➔ Representam as propriedades da Entidade quando
isolada.➔ Representação:
NomeEntidade
atributo1
atributo2atributo2
atributo5
atributo3
atributo6
atributo4
Modelo ER - Entidade
➔ Exemplo:
Paciente
cpf
atributo2telefone
rua
idade
bairro
endereço
dataNascimento
nome
cidadeestado
Modelo ER - Entidade
➔ Tipos de Atributos
➔ Monovalorado➔ armazena apenas 1 valor.
➔ Multivalorado➔ armazena vários valores.
➔ Ex:
Pacienteatributo2telefone
nome
Modelo ER - Entidade
➔ Tipos de Atributos
➔ Chave➔ Identifica uma instância da entidade.
➔ Ex:
Paciente cpf
Modelo ER - Entidade
➔ Tipos de Atributos (cont.)
➔ Composto➔ possui subatributos
➔ Ex:
Paciente
rua
bairro
endereço
cidade
estado
Modelo ER - Entidade
➔ Tipos de Atributos (cont.)
➔ Derivado➔ Seu valor é obtido a partir de outro(s) atributo
➔ Ex:
Pacienteidade
dataNascimento
Modelo ER
➔ Relacionamentos
➔ Representam as interações entre as Entidades➔ Representação:
NomeEntidade2NomeEntidade1 Ação
Modelo ER - Relacionamento
➔ Exemplo
MédicoPaciente possui
Modelo ER - Relacionamento
➔ Cardinalidade
➔ Representa a forma como cada instância da entidade participa no relacionamento.
➔ Tipos:➔ 1:1 – cada instância da entidade pode se relacionar
com apenas um instância da outra entidade.➔ 1:N – cada instância da entidade pode se relacionar
com várias instâncias da outra entidade.➔ N:M – cada instância da entidade pode se relacionar
com várias instâncias da outra entidade e vice-versa.
Modelo ER - Relacionamento
➔ Cardinalidade
➔ Representação:
NomeEntidade2NomeEntidade1 AçãoN1
NomeEntidade2NomeEntidade1 AçãoMN
NomeEntidade2NomeEntidade1 Ação
Modelo ER - Relacionamento
➔ Multiplicidade
➔ Representa a forma como cada instância da entidade participa no relacionamento.
➔ Expressa a participação mínima e máxima➔ Tipos:
➔ n..m – n é o valor mínimo e m o máximo;➔ * – zero ou mais;➔ + – um ou mais
➔ Obs: seu posicionamento é o inverso da cardinalidade.
Modelo ER - Relacionamento
➔ Multiplicidade
➔ Representação:
NomeEntidade2NomeEntidade1 Ação*
NomeEntidade2NomeEntidade1 Ação(1..5)
Modelo ER - Relacionamento
➔ Atributo
➔ Representa a informação que surge somente quando as entidades se relacionam.
➔ Representação:
NomeEntidade2NomeEntidade1 Ação*
atributo
Modelo ER - Relacionamento
➔ Atributo
➔ Exemplo
DisciplinaAluno CursouMN
nota
Modelo ER - Relacionamento
➔ Participação Total
➔ Representa que a instância da entidade é obrigada a participar no relacionamento.
➔ Exemplo:➔ Toda peça cadastrada deve estar relacionada com o
motor.
PeçaMotor possui
Modelo ER - Relacionamento
➔ Cardinalidade
➔ Representação:
NomeEntidade2NomeEntidade1 Ação*
NomeEntidade2NomeEntidade1 Ação(1..5)
Modelo ER - Relacionamento
➔ Grau de um Conjunto Relacionamento➔ número de entidades que participam no
relacionamento.➔ Tipos
➔ Unário – envolve 1 entidade (autorrelacionamento)
➔ Binário – envolve 2 entidades➔ Ternário – 3 entidades➔ . . .
Modelo ER - Relacionamento
➔ Relacionamento Ternário
FuncionárioCliente compra
Produto
Modelo ER - Relacionamento
➔ Papéis
➔ Representa o papel da entidade no relacionamento.
➔ Obrigatórios em autorrelacionamentos➔ Exemplo:
Empregado gerencia
é_gerenciado
gerencia
Modelo ER - Relacionamento
➔ Entidade Fraca
➔ Sua instância existe somente se ligada à uma instância da entidade forte.
➔ Exemplo:➔ Turma só existe se ligado à uma disciplina.
TurmaDisciplina possui Turmapossui
51
Exercício
➔ Apresentar o Diagrama Entidade Relacionamento (DER) da seguinte mini-especificação(10 minutos):
”Uma clínica médica deseja informatizar seu sistema. Para isso sabe-se que é preciso armazenar informações dos pacientes e médicos. Cada paciente é atendido por apenas um médico. Em cada atendimento é preciso armazenar a data e hora, bem como um diagnóstico e a descrição do atendimento. É necessário armazenar os dados pessoais dos médicos e dos pacientes. Para os médicos é preciso incluir as especialidades que possuem.Deseja-se obter relatórios mensais envolvendo os pacientes que desenvolveram determinada doença e o remédio utilizado.”
Modelagem de Dados
➔ Modelagem Conceitual:
O que são entidades na organização?
Como essas entidades interagem?
Quais informações são importantes para tratamento?
Quais são as restrições de integridade e as regras de negócio?
Modelo ER
➔ Dicas➔ entidade ou atributo?
➔ Se controle maior então deve ser entidade
➔ entidade ou relacionamento?
➔ Se é ação então é relacionamento
➔ relacionamento binário ou n-ário?
➔ Usar sempre que possível relacionamento binários.
E-R Estendido: Especialização
➔ Proposto inicialmente por: J. Smith and D. Smith, ''Database Abstractions: Aggregation and Generalization,'' ACM Trans. on Database Systems, Vol. 2, No. 2, June 1977.
➔ Abstrações➔ Especialização / Generalização➔ Agregação
E-R Estendido: Especialização
➔ Especialização/Generalização➔ Especialização
➔ instâncias de uma mesma entidade são distingüiveis de outras instâncias do conjunto.
➔ têm atributos ou relacionamentos que não se aplicam ao conjunto todo.
➔ Generalização é o inverso.➔ É estabelecido um relacionamento do tipo É_UM (IS_A)
entre as especializações e a generalização.➔ Herança de propriedades
➔ uma especialização herda todas as propriedades➔ atributos e ➔ relacionamentos
E-R Estendido: Especialização
FuncionárioCliente
Pessoa
➔ ExemploE
speci alizaç ão
Gen
eral
izaç
ão
É_U
M
E-R Estendido: Especialização
➔ Especialização/Generalização➔ Cobertura
➔ restrições sobre o relacionamento➔ Tipos:
➔ Parcial / Total➔ Indica se existe instância da generalização ou
somente das especializações.➔ Exclusivo / Sobreposição
➔ Indica se a instância da especialização pertence ao conjunto de somente uma entidade ou de várias entidades
E-R Estendido: Especialização
T, E
FuncionárioCliente
Pessoa
➔ Exemplo
cpf
nome
salário
depto
preferência
endereço
E-R Estendido: Especialização
T, E
FuncionárioCliente
Pessoa
➔ Exemplo
cpf
nome
salário
depto
preferência
endereço
Atributos genéricos
Atributos específicos
Atributos específicos
Exemplo de especialização
E-R Estendido
➔ Abstração de Agregação➔ corresponde à idéia de que elementos de modelagem
podem associar-se, formando outros objetos que representam essa ssociação.
➔ A Abstração de Agregação corresponde à idéia de que associações entre entidades também correspondem a entidades.
MédicoPaciente atende
Consulta
data
E-R Estendido: Agregação
➔ Abstração de Agregação➔ Uma agregação ocorre em duas situações:
➔ Quando é necessário identificar-se cada relacionamento (o relacionamento tem chave);
➔ Quando é necessário mais de um relacionamento envolvendo as mesmas entidades.
E-R Estendido: Agregação
➔ Abstração de Agregação➔ 1o. Caso: O relacionamento tem um identificador
próprio:➔ Nesse caso, embora seja possível identificar a
entidade agregação por um identificador próprio, ela também pode ser identificada também pelo relacionamento entre as entidades que participam do relacionamento:
AlunoProfessor orienta
título
E-R Estendido: Agregação
➔ Abstração de Agregação➔ 1º. Caso: O relacionamento tem um identificador
próprio:➔ Nesse caso, embora seja possível identificar a
entidade agregação por um identificador próprio, ela também pode ser identificada também pelo relacionamento entre as entidades que participam do relacionamento:
AlunoProfessor orienta
título
Projeto
E-R Estendido: Agregação
➔ Abstração de Agregação➔ 2º. Caso: Pode haver mais de um relacionamento
envolvendo as mesmas entidades:➔ Nesse caso, para identificar a entidade agragação,
deve-se identificar as entidades que participam do relacionamento, além de ser necessário complementar esse identificador com atributos próprios da entidade agregação.
MédicoPaciente atende
data
Paciente não pode ser atendido mais
de uma vez!
E-R Estendido: Agregação
➔ Abstração de Agregação➔ 2º. Caso: Pode haver mais de um relacionamento
envolvendo as mesmas entidades:➔ Nesse caso, para identificar a entidade agragação,
deve-se identificar as entidades que participam do relacionamento, além de ser necessário complementar esse identificador com atributos próprios da entidade agregação.
MédicoPaciente atende
data
Consulta
Modelo ER
➔ Exercício 2➔ Descreva a situação representada pelo DER abaixo:
Planta
Ornamental Frutífera
nome
altura
tipo_ambiente
flor
nome
peso
AduborecebeN M
quantidade
Adubagem
data
Funcionário
faz
N
1
código
nome
data_admissão
cargo
possui1 1
nome
composição
Fruta
época
tempo_maturação
P, S
Modelo ER
➔ Exercício 3“Um vendedor de frutas decidiu criar um sistema que manipule as informações relacionadas com seu negócio. As informações desejadas para armazenamento estão relacionadas com as frutas e verduras disponibilizadas aos clientes. Para cada fruta deseja-se armazenar seu nome, peso, época de venda, calorias, custo e preço. Para as verduras deseja-se saber seu nome, durabilidade, validade, preço, peso. Sabe-se que os tipos de fruta são: bocaiúva, jambo e carambola. As bocaiúvas são vendidas em sacos, cujo valor é adicionado ao custo dessa fruta. Para melhor atender os clientes, um cadastro é mantido com os dados pessoais (nome, endereço, telefone, etc) e as frutas preferidas. Além disso, deseja-se saber de cada cliente quais são os membros de sua família para identificar qual fruta da época é mais adequada para ser oferecida. Deseja-se gerar no final de cada mês um relatório de vendas. Outro relatório importante é o de frutas da época para saber no mês anterior quais frutas serão encomendadas e vendidas no mês seguinte.”
Algoritmo básico para Modelagem
➔ Partindo de um texto que descreve/especifica um sistema, devem ser utilizados os seguintes passos como um guia para determinar qual deve ser a ação mais significativa a ser tomada num determinado instante, para obter uma modelagem que represente o mais fielmente possível o sistema especificado.
Algoritmo básico para Modelagem (15 Passos)
1.Grifar palavras importantes para a compreensão do sistema;
2.Separar as palavras grifadas em duas colunas, uma para substantivos, e uma para verbos;
3.Classificar, “a princípio”,
➔ os substantivos como sendo:➔ Conjunto de entidades, Atributos, Papéis,
Valores de Atributos, Definições da Base;➔ E os verbos como sendo:
➔ Relacionamentos, Ações (Procedimentos), Regras
Algoritmo básico para Modelagem (15 Passos)
4.Vincular uma chave para cada Conjunto de Entidade;
a)Avaliar cada atributo, verificando se ele poderia ser chave de alguma entidade.
5.Vincular cada Conjunto de Entidades os seus atributos;
6.Vincular a cada Atributo seus valores:
a)Verificar se cada Atributo não pode ser promovido a Conjunto de Entidade;
b)Verificar se cada Conjunto de Entidades não pode ser rebaixado para Atributo ou Valor;
Repetir os passos de 4 a 6 até estabilizar
Algoritmo básico para Modelagem (15 Passos)
7.Vincular cada conjunto de Relacionamentos as entidades que assumem cada papel do relacionamento;
8.Colocar os papéis nos respectivos Conjuntos de Relacionamentos;
a)Veririficar os papéis que não existam em nenhum conjunto de relacionamento, e criar o conjunto de relacionamento adequado;
b)Verificar as palavras marcadas como conjuntos de relacionamentos que são apenas papéis de outros conjuntos de relacionamentos;
9.Vincular a cada conjunto de relacionamento os seus atributos.
Algoritmo básico para Modelagem (15 Passos)
10. Redistirbuir os atributos restantes entre os conjunto e entidades e de relacionamentos ou papéis;
Repetir os passos 3 a 10 até estabilizar
11. Verificar as ações e Regras. Se elas sempre se refererem a dados que já estão modelados, desconsiderá-las; senão identificar quais são esses dados e repetir os passos 2 a 11;
Algoritmo básico para Modelagem (15 Passos)
12.As definições da base são descartadas;
a)Verificar se existem conjuntos de entidades que têm apenas uma instância. Se houver, verificar se todos os seus relacionamentos são de cardinalidades 1:1 ou 1:N. Nesse caso, descartar cada conjunto de entidade nessa situação e seus conjuntos de Relacionamentos.
13.Verificar cada conjunto de relacionamento para confirmar que apenas os papéis indicados são necessários, senão criar os que faltam e vincular os conjuntos de entidades adequados.
Algoritmo básico para Modelagem (15 Passos)
14.Verificar se cada conjunto de relacionamentos de ordem N > 2 não pode ser “desmembrado” em 2 ou mais conjuntos de Relacionamentos de ordem menor.
15.Verificar todos os Conjuntos de Entidades que são fracos para algum conjunto de Relacionamentos.
76
Modelagem Conceitual
➔ Modelagem de Regras de Negócio e Restrições
➔ O MER facilita representação dos dados contudo não aborda a manipulação desses dados
➔ Regras de negócio devem ser colocadas no Dicionário de Dados
➔ Arquitetura N-camadas as regras de negócio devem ser distribuídas nas diversas camadas.
Dever de Casa
➔ Trazer DER do Projeto com no mínimo ➔ 10 Entidades.➔ 2 Especializações➔ 1 Agregação
➔ Fazer representação equivalente em UML.
Referências➔ Rob; Coronel; Database Systems: Design, Implementation, and Management, Fifth Edition.
➔ Database Architecture and Implementation www.cs.ust.hk/~dimitris/COMP530/530.html
➔ Silberschatz, A.; Korth, H.F.; Sudarshan,S.; ”Database System Concepts”; Fifth Edition; 2008.
➔ Traina, C. ; Apostila de Modelagem de Dados; ICMC-USP; www.gbdi.icmc.usp.br; 2000;