Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Aula 3 - Modelagem de Dados

Fazer download em pptx, pdf ou txt
Fazer download em pptx, pdf ou txt
Você está na página 1de 46

MODELAGEM DE

DADOS
Banco de Dados I
Modelo de dados

■ Modelo para organização dos dados de um BD


– define um conjunto de conceitos para a representação de
dados
■ exemplos: entidade, tabela, atributo, ...
– existem modelos para diferentes níveis de abstração de
representação de dados
■ modelos conceituais
■ modelos lógicos
■ modelos físicos
Projeto de Banco de Dados
Três etapas:
• Modelo Conceitual
constrói-se um modelo conceitual, na forma de diagrama
entidade-relacional
• Projeto Lógico
Transforma-se um modelo conceitual em um modelo
lógico, onde se define como ele será implementado
• Projeto Físico
o modelo de BD é enriquecido com detalhes
Modelo Conceitual

■ O modelo conceitual é uma descrição do banco de dados de


forma independente ao SGBD

■ A técnica mais difundida é a Abordagem Entidade-Relacional


(ER) Representado pelo Diagrama Entidade-Relaciona
Modelo Entidade-Relacionamento

■ O modelo de dados ER (MER) não possui ligação nenhuma com SGBD.


■ Preocupa-se apenas com a utilização dos dados e não na estrutura lógica
de tabelas.
■ Modelo de alto nível, utilizado para apresentar o que foi informado no
levantamento de requisitos.
■ Deve ser de fácil entendimento, pois o seu principal objetivo é a
validação dos requisitos com o cliente.
Modelo Entidade-Relacionamento
■ Exemplo
Modelo Entidade-Relacionamento

Exemplo
Modelo Lógico
■ Modelo de dados que representa a estrutura de dados em um banco de dados
conforme vista pelo usuário do SGBD.

■ Ou seja, a organização em forma de tabela


■ Define:
• Quais tabelas
• Nome das tabelas
• Quais colunas
• Nome das colunas
TipoDeProduto Produto
PKCodTipoProd:int PKCodProd: int
Modelo Lógico DescrTipoProd: string DescrProd : string
PrecoProd :decimal(10,2)
FKCodTipoProd: int
■ Exemplo:
– Primeira tabela
– TipoDeProduto (CodTipoProd, DescrTipoProd)

– Segunda tabela
– Produto (CodProd, DescrProd, PrecoProd, CodTipoProd)
CodTipoProd referência TipoDeProduto
Modelo Lógico
■ Suporte a métodos de acesso
– especificamente dos conceitos de modelo (DDL)
■ dados, seus domínios, relacionamentos e restrições
– manipulação de conceitos modelados (DML)
■ Esquema lógico de BD
– resultado da especificação dos dados de um domínio de aplicação
em um modelo de BD
Modelo Relacional

■ Definido em 1970 (E. Codd – IBM/Califórnia)


■ Modelo com uma sólida base formal
– teoria dos conjuntos
■ Modelo simples
– estruturas tabulares
– poucos conceitos
■ Linguagens declarativas para a manipulação de dados
– álgebra relacional e cálculo relacional (formais)
– SQL (comercial)
Modelo Relacional - características

■ Organização dos dados


– conceitos do modelo
■ atributo, relação, chave, ...
■ Integridade
■ restrições básicas para dados e relacionamentos
■ Manipulação
– linguagens formais e SQL
Modelo Relacional - Organização

■ O modelo apresenta cinco conceitos:


– domínio
– atributo
– tupla
– relação
– chave
Domínio
■ Conjunto de valores permitidos para um dado
■ Exemplos
– inteiro, string (domínios básicos)
– data, hora (domínios compostos)
– [0, 120], (‘M’, ‘F’) (domínios definidos)
■ Para um domínio existem operações válidas
– inteiro (somar, dividir, i1 maior que i2, ...)
– data (extrair dia, extrair mês, d1 anterior a d2, ...)
■ Definição de domínios de dados
– DDL (+RIs)
Atributo

■ Um item de dado do BD
■ Possui um nome e um domínio
■ Exemplos
– nome: string
– idade: [0,120]
Tupla

■ Um conjunto de pares (atributo, valor)


– define uma ocorrência de um fato do mundo real ou de um
relacionamento entre fatos
■ • Valor de um atributo
– definido no momento da criação de uma tupla
– deve ser
■ compatível com o domínio OU NULL (valor inexistente ou indeterminado)
■ atômico (indivisível: não-estruturado e monovalorado)
■ Exemplo
– aluno: {(nome, ‘João’), (idade, 34), (matrícula, 03167034), ...}
Relação
■ Composto por um cabeçalho e um corpo
– Cabeçalho
■ número fixo de atributos (grau da relação)
■ atributos não-ambíguos
■ Corpo
– número variável de tuplas (cardinalidade da relação)
– ordem não é relevante
– na teoria, uma relação é um conjunto de tuplas
– na prática, uma relação é uma coleção de tuplas
■ neste caso, uma relação é chamada tabela
Chave
■ Conjunto de um ou mais atributos de uma relação
■ Tipos de chaves
– chave primária
■ atributo(s) cujo (combinação de) valor(es) identifica(m)
unicamente uma tupla em uma relação
■ conceitos associados
– chaves candidatas e chaves alternativas
■ exemplos
– alunos: matrícula
– cidades: (nome, estado)
Chave
■ Tipos de chaves
– chave estrangeira
■ atributo(s) de uma relação R1 que estabelece(m) uma
equivalência de valor com a chave primária de uma relação R2
■ se fk é uma chave estrangeira em R1 que faz referência à chave
primária pk de R2 então:
– domínio(fk) = domínio(pk)
■ R1 e R2 podem ser a mesma relação
■ exemplos
– alunos: curso (referência a um código de curso)
– cursos: código
Modelo Entidade-Relacionamento
■ modelo baseado na percepção do mundo real, que consiste em
um conjunto de objetos básicos chamados entidades e nos
relacionamentos entre esses objetos

■ Objetivo: facilitar o projeto de banco de dados, possibilitando a


especificação da estrutura lógica geral do banco de dados
Diagrama Entidade-Relacionamento

■ A estrutura lógica geral de um banco de dados pode ser expressa


graficamente por um Diagrama Entidade- Relacionamento
■ Componentes do Diagrama E-R (Peter Chen):
– Retângulos: representam conjuntos-entidade
– Elipses: representam atributos
– Losangos: representam conjuntos-relacionamento
– Linhas: ligam atributos a conjuntos-entidade e conjuntos-
entidade a conjuntos-relacionamento
MER - Entidade
■ Pode ser conhecida também como tabela, representando um
conjunto de atributos da realidade modelada, sobre os quais se
deseja manter informações no banco de dados, composta de
campos e registros
■ Um entidade sempre representa um assunto específico, que
pode ser tanto um objeto ou um evento
MER - Entidade
■ Representada por um retângulo
■ Exemplo

Empregado Departamento
MER - Atributo
■ Serve para associar informações a ocorrências de entidades ou de
relacionamentos
■ Os atributos não são representados graficamente para não sobrecarregar
os diagramas. Utiliza-se uma representação textual que aparece
separadamente do MER
■ Campos de uma tabela no BD
Chaves
■ Garante que cada registro de uma tabela de BD possa ser corretamente
identificado.
■ São usadas para que seja possível desenvolver o relacionamento entre as
entidades, auxiliando a impor a integridade no desenvolvimento de um
BD
Chave primária
■ Os dados armazenados nos campos chave primária deves ser únicos para
cada registro do banco de dados.
■ É usada para impor integridade à tabela, para ajudar a estabelecer
relacionamento com outras tabelas e para identificar precisamente e fazer
referência a um registro específico dentro da tabela.
Chave estrangeira
■ Estabelece o relacionamento entre duas entidades ou tabelas
■ Relacionamento um para muitos  chave primária de um e a chave
estrangeira do outro.
Exemplo
■ Entidade e seus atributos

cidade
nome
estado
cod_forn

Fornecedor
Relacionamentos
■ Relacionamento: estrutura que indica a associação de
elementos de duas ou mais entidades

N N
Fornecedor Pedido Produto
Cardinalidade
■ Um-para-um (1-1)
– Chave estrangeira em uma das entidades.
■ Um-para-muitos (1-N)
– Chave estrangeira na direção muitos.
■ Muitos-para-muitos (N-N)
– Requer tabela extra para representá-lo.
Chaves no Modelo E-R
■ Entidade Fornecedor: cod_forn
■ Entidade Produto: cod_prod
■ Relacionamento Pedido: cod_forn e cod_prod
Auto-Relacionamento
■ Relaciona elementos de um conjunto-entidade E a elementos desse
mesmo conjunto-entidade
Agregação
■ Uma limitação do modelo E-R é que não é possível expressar
relacionamentos entre relacionamentos.
■ Agregação é uma abstração através da qual relacionamentos são tratados
como entidades de nível superior
Agregação
Exemplo – Modelo ER

■ Considere um BD com o nome CLINICA e seus requisitos.


■ O BD deve armazenar o registro dos médicos:
– CRM (código único);
– Nome;
– Endereço;
– Telefone;
– Especialidade.
Exemplo – Modelo ER
■ O registro dos pacientes:
– CPF (código único);
– Nome;
– Endereço;
– Telefone;
■ As consultas:
– Cada consulta é realizada por um médico e para um paciente;
– Deve possuir um código identificador;
– A data da consulta;
– Observações
Exemplo – Modelo ER
■ Os exames passados nas consultas:
– Código identificador;
– Nome do exame;
– Resultado.
Exemplo – Modelo ER
Exemplo – Modelo ER
■ O MER possui 3 elementos principais:
– Entidades
– Atributos
– Relacionamentos
– Cardinalidade
Exemplo – Modelo ER ATRIBUTOS

RELACIONAME
NTO ENTIDAD
E
Estudo de caso 1
■ Uma instituição bancária deseja controlar o movimento de suas contas-
corrente.
■ A instituição possui agências espalhadas por várias cidades, e o seu
cadastro contém informações sobre o código, nome, e endereço onde a
agência fica localizada.
■ No cadastro de clientes, deve-se manter informações sobre nome, CPF e
endereço de cada cliente.
■ As informações sobre contas-corrente são identificadas por um número, e
devem fornecer o saldo atualizado das mesmas.
Estudo de caso 2
■ Uma empresa de agenciamento de mão-de-obra pretende informatizar o cadastro de
profissionais, candidatos a empregos temporários. Pretende-se construir um banco de
dados onde se possa manter os dados cadastrais dos profissionais, e seus contratos
temporários com as empresas-clientes.
■ O profissional é identificado por um número de controle e, além desta identificação,
ficam registrados seu nome, endereço, data de nascimento e profissão.
■ Os contratos de mão-de-obra temporária são feitos individualmente (um contrato para
cada profissional), com as empresas-clientes. Cada contrato é identificado por um
número único, e nele são registrados a empresa contratante, a vigência do contrato (data
de início e de término), e o valor pago por hora trabalhada. As empresas-clientes são
identificadas pelo CNPJ, e possuem um nome e endereço.
Estudo de caso 3
■ Um clube de danças ensina danças de salão, tanto individualmente como
em grupo. Este clube emprega dois tipos de instrutores: professores
assalariados de tempo integral, e professores de tempo parcial.
■ Os instrutores de tempo integral recebem semanalmente uma quantia fixa,
e os de tempo parcial são pagos por uma noite ou por aula individual dada.
■ O gerente deste clube gostaria de adquirir um sistema de informações, para
controlar os estudantes e as aulas que eles freqüentam. Este gerente
também gostaria de saber quantas e quais tipos de aulas cada professor
ministrou.
Estudo de caso 4
■ Um instituto de opinião pública vai realizar uma pesquisa em todos os estados da região
sul do Brasil, para levantar dados sócio-econômicos sobre os domicílios e as pessoas
que neles residem.
■ Para isso, o instituto contratou cerca de 5.000 entrevistadores, que percorrerão os 150
municípios escolhidos para a coleta. Os domicílios são classificados, de acordo com sua
finalidade, em particulares (aqueles cuja finalidade é a moradia de pessoas), e em
coletivos (hotéis e quartéis).
■ Todos domicílio entrevistado possui um código, e devem ter guardadas as informações
de sua localização (rua, bairro, cidade e estado). Nos domicílios particulares, são
pesquisados o número de televisões e rádios existentes. Nos domicílios coletivos, são
levantadas as informações de idade, sexo e grau de instrução.
Estudo de caso 5

■ Uma clínica veterinária, especializada no tratamento de cães e gatos, pretende informatizar o


seu sistema de controle de vacinas, de forma a melhorar a notificação aos clientes sobre a data
e o tipo de vacina a ser aplicada em qualquer um dos animais cadastrados na clínica.
■ Os clientes, quando são cadastrados na clínica, são identificados por um código numérico, e
devem fornecer o nome, sobrenome, telefone e endereço completo (rua, número,
complemento, bairro, cidade, estado, CEP).
■ Para cada animal, que também é identificado por um código numérico, são registrados o nome,
data de nascimento, espécie, raça, cor e sexo.
■ As vacinas, por sua vez, também são identificadas por um código numérico, e possuem nome,
nome do laboratório fabricante, e lote de fabricação.
■ Quando o animal é vacinado, deve ser feito o registro da data de aplicação, o código da
próxima vacina a ser tomada, e a respectiva data.
Estudo de caso 6
■ Uma loja que comercializa artigos de informática resolveu expandir a sua forma de
atuação no mercado, e passou a aceitar pedidos de compra por telefone.
■ Os clientes, ao ligarem para a loja para fazerem seus pedidos, são obrigados a fornecer o
nome, sobrenome, telefone e endereço completo (rua, número, complemento, bairro,
cidade, estado, CEP).
■ Os pedidos de compra são identificados por um número de controle, e contém as
informações da data em que foi feito o pedido, e a forma de pagamento (cheque,
dinheiro, ou cartão).
■ Os artigos comercializados na loja possuem um código, nome e preço unitário

Você também pode gostar