fundamentos de banco de dados e modelagem de dados 2 - modelagem.pdf · visão materializada ......

Post on 19-May-2018

223 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

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 Figueiredojosiel@ic.ufmt.br

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;

top related