Prévia do material em texto
Banco de Dados I
Prof. Andreiwid Corrêa
Prof. Tiago Carvalho
(Material adaptado do Prof. Felipe Alves do IFRN)
Tecnologia em Análise e Desenvolvimento de Sistemas
MODELO DE DADOS
MODELAGEM CONCEITUAL, MER E ESQUEMA RELACIONAL
Agenda
• Parte I – Modelagem
– Introdução à Modelagem Conceitual
– Fundamentos de Abstração de Modelos
• Parte II – MER
– Introdução ao Modelo Entidade-Relacionamento
– Entidades, Relacionamentos e Atributos
• Parte III – Exercícios
PARTE I – MODELAGEM
Introdução à Modelagem Conceitual
Introdução à Modelagem Conceitual
• Modelagem de um BD é o processo de:
– Descrição dos Tipos de Informações que estão
armazenadas em um BD por meio de um modelo
• Por exemplo:
– Pode informar que o BD armazena informações sobre
produtos e que, para cada produto, são armazenados seu
código, preço e descrição
“O modelo não informa quais produtos estão
armazenados, apenas que tipo de informações contém”.
Introdução à Modelagem Conceitual
• Para construir um modelo de dados, usa-se uma linguagem de
modelagem de dados
• Existem linguagens textuais e linguagens gráficas
• É possível descrever os modelos em diferentes níveis de
abstração e com diferentes objetivos
• O conjunto de descrições que modela os dados de um sistema
recebe o nome de Esquema de BD (ou simplesmente Esquema)
Introdução à Modelagem Conceitual
• Um modelo de dados é construído do exercício mental de
Abstração, para entender um determinado “Negócio”
– A Realidade é Nebulosa e Informal
• Pela Abstração de fatos é possível entender a Realidade
• Assim, fatos quando Observados:
– Representam o funcionamento de um negócio
• Compreendido o negócio, é possível a criação do Modelo
Introdução à Modelagem Conceitual
• O que é um Modelo?
– Algo que represente bem um problema
• Como o Analista cria?
– Concentra-se nos fatos relevantes para criar o Modelo
– Não deve preocupar-se em simular o procedimento atual
– Deve Retratar as necessidades de informação no Modelo
• Então, para criar um Modelo de Dados, o Analista deve
– Identificar o problema
– Registrar os acontecimentos
– Automatizar o “processo”
Introdução à Modelagem Conceitual
• “Pensando” no Modelo de Dados (para um “Mini-mundo”)
– BD: registro de fatos; representam estados; reflete a realidade
– Modelo Conceitual
• Representa o problema
• Fornece Visão Geral dos dados e relacionamentos
• 1ª Fase do Projeto: Representação em Alto nível
• Não trata detalhes do SGBD
– Modelo Lógico
• Descrição da Estrutura de BD
• Esquema Lógico de Dados, considera os Tipo de BD
• Esquema Relacional (ainda não considera SGBD)
– Modelo Físico
• Estrutura “Física”: campos, índices, tamanhos, tipos de dados
• Definição de formas de acesso ao SGBD em específico
• Etapa final: criação do Esquema (SQL DDL) para implementação
Introdução à Modelagem Conceitual
PARTE I – MODELAGEM
Fundamentos de Abstração de Modelos
Introdução à Modelagem Conceitual
• Fundamentos de Abstração
– Percepção mental de uma porção do mundo real
– Processo mental para representar objetos isolando
características menos relevantes
– Destacar propriedades mais importantes
– Fundamental para Modelagem
– Pode ser abordada de 3 maneiras:
• Classificação
• Agregação
• Generalização
Introdução à Modelagem Conceitual
• Abstração por Classificação
– Classe de Objetos com propriedades comuns
– Pode ser representada em 2 níveis:
• A classe e seus membros
Introdução à Modelagem Conceitual
• Abstração por Agregação
– Classes de objetos compostas de outras classes
– Entender objetos como uma composição de partes
• Ou decomposição de partes
Introdução à Modelagem Conceitual
• Abstração por Generalização
– Classes de objetos relacionados
– Subconjunto de objetos que podem ser “categorizados”
PARTE II – MER
Introdução ao Modelo Entidade-Relacionamento
Introdução ao MER
• Objetivos da Modelagem de dados:
– Representar o ambiente observado
– Documentar e normalizar
– Fornecer processos de validação
– Observar processos de relacionamentos entre
objetos
• Um projeto de BD inicia-se pelo Projeto Conceitual
– Adotando uma abordagem que será o de:
• Entidades e Relacionamentos
Introdução ao MER
• O Modelo Entidade-Relacionamento ou modelo ER
– Foi definido por Peter Chen em 1976
– Baseado na Teoria Relacional de E.F. Codd 1970
– Anos depois, atualizado por alguns pesquisadores
– Com o tempo, diversas extensões e notações foram definidas
• Fundamentado em 2 regras (segundo Chen):
• A visão da realidade pode ser descrita pelo
relacionamento entre entidades
• Cada entidade e relacionamento podem ter atributos
Introdução ao MER
• O Modelo Entidade-Relacionamento
– Utiliza conceitos de abstração para criação
– Atualmente é o padrão para Modelagem Conceitual de BD
• Modelo simples, envolvendo poucos conceitos
• Representação gráfica de fácil compreensão
– Um esquema de BD usando o modelo ER também pode ser
chamado de Esquema ER
– É representado por um Diagrama ER
Introdução ao MER
• O Modelo Entidade-Relacionamento
– Destinado para construção de Projetos de BDs
– Pode ser usado também para modelar Negócios ou Estrutura
de Dados
– A Modelagem Conceitual de Dados com ER, produz um
“modelo conceitual do sistema”
Introdução ao MER
• Um modelo ER
– Não apresenta procedimentos, regras ou fluxo de dados
– Objetivo:
• Descrever a realidade
• Entender o negócio
• Procedimentos não interessam neste ponto
– Segundo Chen, a representação pode ser feita usando:
• Entidades
• Atributos
• Relacionamentos
PARTE II - MER
Entidades, Relacionamentos e Atributos
MER - Entidades
• No modelo ER
– Fatos da realidade são retratados por elementos básicos, e
chamando de Entidade
MER - Entidades
• Entidades representam objetos do mundo real
– Possuem: Características, Identidade, Significado
– “Alguma coisa” do negócio (problema)
• A informação desta “coisa” é importante
– No modelo conceitual
• Pode ser considerada como conjunto de dados
• Representa uma “classe de dados” do problema
• São representadas como Tabelas no modelo relacional
– Cada linha da tabela representa um instância da entidade
MER - Entidades
• Exemplo de Entidades
MER - Entidades
• Exemplo de Entidades em um Aeroporto
MER - Entidades
• Exemplo de Entidades em um Aeroporto
Documentos
Transportadora
Avião
Tripulação
Bagagem
MER - Entidades
Resumindo
• Entidade: Abstração de um fato do mundo real para o qual se
deseja manter seus dados no BD
• Simbologia: Retângulo nomeado
• Denota um conjunto de ocorrências do fato e não apenas um
único elementos
– Semelhante a classes de entidades em Programação OO
MER - Relacionamento
MER - Relacionamento
• Relacionamento é um fato que "liga” 2 objetos do mundo real
– Fato que liga duas tabelas no modelo físico
• Geralmente representados por verbos
– VERBO = Expressão de um fato
• No mundo real, geralmente entidades não estão “soltas”
– Estão Relacionadas de alguma forma lógica
MER - Relacionamento
• Abstração de uma associação entre (ocorrências de) entidades
• Simbologia
– Losango nomeado
• Denota um conjunto de ocorrências de relacionamentos
MER - Relacionamento
• Relacionamento
– Interpretação do significado de um relacionamento
MER - Relacionamento
• Exemplos de Relacionamentos
– As Pessoas Moram em Apartamentos
– Os Apartamentos Formam Condomínios
– Os Condomínios Localizam-se em Ruas
– As Ruas Estão em uma Cidade
MER - Relacionamento
MER - Relacionamento
• Exercício 1: Considerando as seguintes expressões que
representam uma realidade, crie um MER para representar
esta realidade.
– Os alunos cursam disciplinas;
– As disciplinas pertencem a departamentos;
– Os departamentos pertencem a faculdades;
– As faculdades localizam-se em cidades.
Por enquanto, modele as entidades e relacionamentos
MER - Relacionamento
• Exercício 2: Considerando as seguintes expressões que
representam uma realidade,crie um MER para representar
esta realidade.
– Os funcionário trabalham em projetos;
– Os Projetos são gerenciados por Gerentes de Projeto;
– Os GPs reportam-se aos Diretores;
– Os Diretores apresentam resultados ao CEO
– O CEO dirige uma Empresa
Por enquanto, modele as entidades e relacionamentos
MER - Relacionamento
Cardinalidade
• Cardinalidade máxima
– Qtd máxima de ocorrências de entidades que podem estar
associadas a uma ocorrência de outra entidade
– Exemplo:
• Um empregado está lotado no máximo em 1 dpto
• Um dpto tem N empregados lotados nele
MER - Relacionamento
Cardinalidade
• Cardinalidade máxima
MER - Relacionamento
Cardinalidade
• Cardinalidade mínima
– Indica se a participação das ocorrências de entidades no
relacionamento é obrigatória ou opcional
– Notação de par de cardinalidade: (Mínima, Máxima)
• Exemplo:
– (1,1) Um empregado obrigatoriamente está lotado em 1 dpto
– (0,N) Um dpto pode ter até N empregados lotados nele (ou nenhum)
MER - Relacionamento
Cardinalidade
• Exemplos
MER - Relacionamento
Autorelacionamento
• Representa uma associação entre ocorrências de uma mesma
entidade
• Exige a identificação de papéis
• Exemplo:
– Um empregado pode ser supervisionado por no máximo 1 empregado
– Um empregado pode supervisionar N empregados
MER - Relacionamento
Autorelacionamento
• Interpretação
– E1 é supervisor de E3
– E8 é supervisionado por E6
MER - Relacionamento
Relacionamento N-ário
• Abstração de uma associação entre N (ocorrências de)
entidades
– Exemplo
• Relacionamento ternário
• Um produto em uma cidade pode ser entregue por no máximo 1
distribuidor
MER - Atributos
Atributo
Atributo
MER - Atributo
Atributos
• Abstração de uma Propriedade de uma entidade ou de um
relacionamento
MER - Atributos
Características de Atributos
• Possui um domínio: Valores permitidos (tipo de dados)
• Uma instância de entidade é descrita pelo conjunto de todos
os pares (atributo, valor)
– Ex. {(id_cliente,2302), (nome, José), (end, rua 10)...}
• Atributos podem ser Simples ou Compostos
– Ex.: atributo endereço = rua + numero + bairro
• Atributos derivados, derivam de outro atributo
– Ex.: Atributo idade pode ser derivado de data nascimento
• Atributos com valor Nulo
– Valor desconhecido / inexistente / não se aplica
MER - Atributos
Classificação dos atributos
• Obrigatórios ou Opcionais
• Monovalorados ou multivalorados
• Simples ou compostos
MER - Atributos
Identificação de entidades
• Atributos identificadores distinguem ocorrências de uma
entidade umas das outras
• Garantem o acesso individualizado a uma ocorrência de
entidade no BD
• Notação: círculo preenchido
MER - Relacionamento
Identificando Relacionamentos
• Um relacionamento é identificado implicitamente pelo
conjunto de identificadores das ocorrências de entidades que
participam dele
MER - Relacionamento
Identificando Relacionamentos
• Há casos em que o identificador de uma entidade é composto
não somente por atributos da própria entidade mas também
por relacionamentos dos quais a entidade participa
MER - Relacionamento
Generalização/Especialização
• Definição de atributos e/ou relacionamentos particulares a
um subconjunto de ocorrências (especializações) de uma
entidade genérica
• Implica na Herança de propriedades
MER - Relacionamento
Generalização/Especialização
• Classificação
– Total
• Para cada ocorrência da entidade genérica existe
sempre uma ocorrência em uma das entidades
especializadas
– Parcial
• Nem toda ocorrência da entidade genérica possui uma
ocorrência correspondente em uma entidade
especializada
MER - Relacionamento
Generalização/Especialização: Total x Parcial
MER - Relacionamento
Generalização/Especialização
• Existem alguns autores definem que possam ser classificadas
também em Exclusiva e não-exclusiva
– Exclusiva
• Uma ocorrência de entidade genérica tem apenas uma
especialização
– Não Exclusiva
• Uma ocorrência de entidade genérica pode ter mais de
uma especialização
MER - Relacionamento
Generalização/Especialização: Exclusiva x Não Exclusiva
MER - Relacionamento
Entidade associativa
• Questões
– Como saber os medicamentos prescritos em uma
consulta?
– Como modelar esta associação se “Consulta” é um
relacionamento?
MER - Relacionamento
Entidade associativa
• Solução
– O relacionamento Consulta torna-se uma entidade associativa
MER - Relacionamento
Restrições do MER
• Não é capaz de expressar todas as restrições de negócio de um
determinado domínio (aplicação)
• Uma documentação em anexo pode ser necessária
• Exemplo
– Um empregado não pode ser supervisor dele mesmo
MER - Relacionamento
Restrições do MER
• Outro exemplo: Restrições de negócio:
– O tipo de um aluno deve ser graduação (G) ou pós-graduação (PG)
– O tipo de uma disciplina deve ser graduação (G) ou pós-graduação (PG)
– Um aluno de G não pode estar cursando uma disciplina de PG
– Um aluno de PG não pode estar cursando uma disciplina de G
PARTE III – EXERCÍCIOS
Exercícios
MER - Relacionamento
• Exercício 1(B): Considerando as seguintes expressões que
representam uma realidade, crie um MER para representar
esta realidade.
– Os alunos cursam disciplinas;
– As disciplinas pertencem a departamentos;
– Os departamentos pertencem a faculdades;
– As faculdades localizam-se em cidades.
Agora inclua as cardinalidades e os atributos
MER - Relacionamento
• Exercício 2(B): Considerando as seguintes expressões que
representam uma realidade, crie um MER para representar
esta realidade.
– Os funcionário trabalham em projetos;
– Os Projetos são gerenciados por Gerentes de Projeto;
– Os GPs reportam-se aos Diretores;
– Os Diretores apresentam resultados ao CEO
– O CEO dirige uma Empresa
*Agora inclua as cardinalidades e os atributos
MER - Relacionamento
• Exercício 3: Suponha que você precise de um sistema para
controlar viagens (de seu cônjuge). Você tenha em casa
algumas malas com várias cores, tamanhos, materiais
diferentes, com rodas, sem rodas. Em malas você deseja
colocar roupas, sapatos e produtos de higiene. Crie um
modelo para este problema.
MER - Relacionamento
• Exercício 4: Construa um diagrama ER para uma seguradora
de carros em que cada cliente possui um ou mais carros.
Cada carro tem associado a quantidade de acidentes
registrados.
MER - Relacionamento
• Exercício 5: Um órgão Universitário possui um sistema para
controle de disciplinas, com número, título, créditos, roteiro
e pré-requisitos; alunos, com RA, nome e curso ; professores,
com RU, nome, departamento; disciplinas oferecidos, com
número da disciplina, ano, semestre, professor, curso e
turma; e matrículas. Construa um ER para este problema.
Represente as restrições (Total ou Parcial).