Modelagem de dados – MER Entidade / Tabela

Propaganda
Disciplina: Banco de Dados I – Prof. AP
Modelagem de dados – MER
Entidade / Tabela
O modelo de entidade e relacionamento é o mais utilizado atualmente, devido a sua
simplicidade e eficiência. Baseia-se na percepção de mundo real, que consiste em uma coleção
de objetos básicos, chamados entidades e relacionamentos entre esses objetos. Você poderá
usar ou não um software para modelagem de dados.
A modelagem de dados consiste em uma série de análises conceituais e lógicas para encontrar
a melhor disposição possível de armazenamento e manutenção das informações no banco de
dados.
Várias notações
Existem muitas notações para diagrama de entidades e relacionamentos. A notação original foi
proposta por Peter Chen e é composta de entidades (retângulos), relacionamentos (losangos),
atributos (círculos) e linhas de conexão (linhas) que indicam a cardinalidade de uma entidade
em um relacionamento. Chen ainda propõe símbolos para entidades fracas e entidades
associativas.
As notações modernas abandonaram o uso de símbolos especiais para atributos, incluindo a
lista de atributo, de alguma forma, no símbolo da entidade. Consideramos as notações como
as mais interessantes na atualidade:




IDEF1X, utilizada pela ferramenta CA-ERwin, bastante difundida no mercado;
Engenharia de Informação, bastante difundida e também presente como notação no
CA-ERwin;
Notação de Setzer, difundida no Brasil por seu autor;
Notação de Ceri, Bertini e Navathe [B32], pouco difundida, mas com aspectos teóricos
interessantes.
Nota: Além do CA-ERwin, podemos encontrar a notação de Engenharia da Informação nos
programas de modelagem como o: TOAD Data Modeler, Visual Paradigm, DB Designer, Oracle
Data Modeler e outros.
Exemplos de Notações
Veja nas figuras abaixo, três tipos de notações utilizadas na modelagem de dados.
1
Disciplina: Banco de Dados I – Prof. AP
Notação Peter Chan
Figura 1 - Diagrama Peter Chen – Ferramenta BR Modelo
2
Disciplina: Banco de Dados I – Prof. AP
Notação Engenharia da Informação.
Figura 2 - Diagrama MER (Pé de galinha) – Engenharia da Informação – Ferramenta DB Designer
Notação IDEF1X
Figura 3 - Diagrama MER – IDEFX1 - Ferramenta Power Designer
3
Disciplina: Banco de Dados I – Prof. AP
Tabelas
Todos os dados de um banco de dados relacional (BDR) são armazenados em tabelas. Uma
tabela é uma simples estrutura de linhas e colunas. Em uma tabela, cada linha contém um
mesmo conjunto de colunas.
Em um banco de dados podem existir uma ou centenas de tabelas, sendo que o limite pode
ser imposto tanto pela ferramenta de software utilizada, quanto pelos recursos de hardware
disponíveis no equipamento.
As tabelas associam-se entre si através de regras de relacionamentos, estas regras consistem
em associar um ou vários atributo de uma tabela com um ou vários atributos de outra tabela.
Exemplo: A tabela funcionário relaciona-se com a tabela cargo. Através deste relacionamento
esta última tabela fornece a lista de cargos para a tabela funcionário.
Modelo teórico usado para representar conceitualmente um BD, Idealizado por Codd (1970).
Baseado numa estrutura de dados simples chamada relação. É o modelo mais amplamente
usado, principalmente em aplicações convencionais de BD.
Registros (ou tuplas)
Cada linha formada por uma lista ordenada de colunas representa um registro, ou tupla. Os
registros não precisam conter informações em todas as colunas, podendo assumir valores
nulos quando assim se fizer necessário.
Resumidamente, um registro é uma instância de uma tabela, ou entidade.
Exemplo: O empregado Pedro é uma instância (registro) da tabela funcionário, e a função
Analista Comercial é a instância (registro) da tabela cargo. Uma associação entre estas duas
tabelas criaria a seguinte instância de relacionamento: Pedro é Analista Comercial, onde o
verbo ser representa uma ligação entre os registros distintos.
Colunas
As colunas de uma tabela são também chamadas de tribunas. Ex.: O campo Nome, ou
endereço de uma tabela de um BD relacional.
Chave
As tabelas relacionam-se umas as outras através de chaves. Uma chave é um conjunto de um
ou mais atributos que determinam a unicidade de cada registro.
Por exemplo, se um banco de dados tem como chaves Código do Produto e ID Sistema, sempre
que acontecer uma inserção de dados o sistema de gerenciamento de banco de dados irá fazer
uma consulta para identificar se o registro já não se encontra gravado na tabela. Neste caso,
um novo registro não será criado, resultando esta operação apenas da alteração do registro
existente.
4
Disciplina: Banco de Dados I – Prof. AP
A unicidade dos registros, determinada por sua chave, também é fundamental para a criação
dos índices.
Temos três tipos de chaves:



Chave Primária: (PK - Primary Key) é a chave que identifica cada registro dando-lhe
unicidade (sem repetições). A chave primária nunca se repetirá.
Chave Estrangeira: (FK - Foreign Key) é a chave formada através de um
relacionamento com a chave primária de outra tabela. Define um relacionamento Não
Identificado entre as tabelas.
Chave Composta: (PK + FK ou FK + PK) é combinação de dois ou mais atributos como
chaves para criação de um identificador único, comum em relacionamentos
Identificados.
Entidade
Atributos
Tabela
Coluna
Registro
IdEmpresa
100
101
Tabela Empresa
razaoSocial
Senac SP
Comercial Santos
Cnpj
12.456.456/0001-50
15.456.789/0001-66
Tipos de Entidade
- Primária (Forte) – Existe por si mesma, não precisa de outra entidade para existir – Exemplo:
Entidade Produto;
- Dependente (Fraca) – Depende de outra entidade para existir – Exemplo: Entidade Bairro;
5
Disciplina: Banco de Dados I – Prof. AP
- Associativa (Dependente de 2 ou + entidades) – Precisa de 2 ou mais entidades para ter
utilidade – Exemplo: Entidade Compra.
Tipos de Atributo
- Simples: São chamados também por atributos atômicos. Eles não são divisíveis.
- Compostos: Os atributos compostos podem ser divididos em partes menores, ou subpartes,
os quais representariam atributos básicos mais simples com significados independentes. Por
exemplo, um atributo endereço pode ser subdividido em: rua, cidade, estado e cep.
Poderíamos também dividir o atributo rua em: número, nome-rua e número-apartamento.
Atributos deste tipo formam uma hierarquia.
- Monovalorados: São atributos que possuem apenas um valor para uma entidade em
particular. Por exemplo, o CPF é um atributo monovalorado para uma entidade pessoa.
- Multivalorados: São atributos que possuem um ou mais valores para o mesmo. Por exemplo,
o atributo idioma de uma entidade aluno pode conter os valores inglês e francês. Para um
outro aluno poderia conter apenas um valor - espanhol. Para um terceiro aluno, poderíamos
ter 3 valores para este atributo.
- Derivados/Calculados: Que podem ser obtidos através de um cálculo. Por exemplo, idade
(que pode ser obtida através de um cálculo com a data de nascimento de uma pessoa) ou total
do pedido (que a soma dos itens adquiridos)
Nota: Campos calculados ou derivados não costumam ser armazenados no banco de dados.
O importante em guardar os dados Persistentes e não os dados Transientes como são
conhecidos.
Desafio: Quais são os tipos de atributos mais desejados em um modelo lógico?
Opcionalidade/Obrigatoriedade
Um atributo pode ser obrigatório ou opcional, adotando-se uma palavra reservada para
identificar está situação. Exemplo:
Nome Cliente – Not Null (Obrigatório)
E-mail Cliente – Null (Opcional)
Relacionamentos do MER
Identificado – A chave primária vai da entidade pai para entidade filha compondo a chave
primária (PK + FK ou FK + PK) da entidade filha.
6
Disciplina: Banco de Dados I – Prof. AP
Não Identificado – A chave primária vai da entidade pai para entidade filha apenas como um
atributo de chave estrangeira (FK)
Auto-Relacionamento (Recursivo) – Um atributo da entidade se relaciona com outro
atributo de chave primária da mesma entidade, criando um auto-relacionamento para
resolução de problemas hierárquicos.
Generalização / Especialização (Subtipo) – Uma entidade filha herda as características
(atributos) de uma entidade pai. Exemplo: Entidade Pessoa -> Entidade Pessoa Física e
Entidade Pessoa Jurídica.
Observação: O relacionamento muitos para muitos (N:N) deve ser resolvido, criando-se uma
nova entidade centralizadora, que receberá as chaves primárias de ambas as tabelas
envolvidas. No Erwin no menu action > transformation > Resolve Many to Many
Relationship.
Cardinalidade
1 : 1 – Um para Um - Exemplo: Um Pedido gera uma Nota Fiscal ou uma Nota Fiscal é gerada
por um Pedido
1 : N – Um para Muitos - Exemplo: Um Cliente pode ter um ou muitos (N) Pedidos
N : N – Muitos para Muitos – Exemplo: Um Pedido contém muitos (N) Produtos, um Produto
aparece em muitos (N) Pedidos.
Obs.: O relacionamento N : N deverá ser resolvido para implementação física do Banco de
Dados, adotando-se as FNs (Formas Normais).
Tipos de Modelo MER
Modelo conceitual
A modelagem conceitual baseia-se no mais alto nível e deve ser usada para envolver o
cliente. Os exemplos de modelagem de dados vistos pelo modelo conceitual são mais fáceis
de compreender, já que não há limitações ou aplicação de tecnologia específica. O diagrama
de dados que deve ser construído aqui, chama-se, Diagrama de Entidade e Relacionamento,
onde deverá ser identificado todas as entidades e os relacionamentos entre elas. Este
diagrama é a chave para a compreensão do modelo conceitual de dados.
7
Disciplina: Banco de Dados I – Prof. AP
Modelo lógico (DER)
O modelo lógico já leva em conta algumas limitações e implementa recursos como
adequação de padrão e nomenclatura, define as chaves primárias e estrangeiras. Deve ser
criado levando em conta os exemplos de modelagem de dados criados no modelo conceitual
aplicando-se as formas normais (FNs).
Modelo físico
No modelo físico fazemos a modelagem física do modelo de banco de dados. Leva-se em
conta as limitações impostas pelo SGBDR (Sistema Gerenciado de Banco de Dados
Relacional) escolhido e deve ser criado sempre com base nos exemplos de modelagem de
dados produzidos no item anterior, modelo lógico. Leva-se em consideração o tipo de dados
8
Disciplina: Banco de Dados I – Prof. AP
e seu comprimento (exemplo: VARCHAR (100) ) e o nome da coluna física da tabela a ser
criada, que pode ser uma abreviação do nome do atributo do modelo lógico.
Padrões Adotados nos Exercícios.





Entidade: Nome no singular em letra maiúsculas, sem preposição e sem acentuação
ou ç. Exemplos: CLIENTE, PEDIDO COMPRA, ENDERECO PESSOA.
Atributos: Primeira letra maiúscula de cada palavra, sem acentuação, ç ou
preposição e colocando o tipo de dado lógico do atributo. Exemplos: Nome Cliente,
Data Nascimento Cliente, Valor Produto, Nome Produto, Data Venda.
Relacionamentos: Colocar as palavras chaves nos relacionamentos para ajudar na
compreensão do modelo. Exemplo: aloca/alocado; contém/contido;
compõe/composto.
Opcionalidade: Definir a opcionalidade (Null ou Not Null).
Notação Utilizada: IE – Information Engineering (Engenharia da Informação).
Notação Cardinalidade:
9
Disciplina: Banco de Dados I – Prof. AP
Formas Normais:
Atividade: Fazer uma pesquisa sobre as formas normais 1FN, 2FN, 3FN, 4 FN e 5FN.
Colocar exemplos explicando o processo de normalização.
Pode ser feito em equipe de até 4 pessoas. Data limite 11/09/2014, apresentar em sala
de aula para os demais colegas, 10 minutos cada equipe – levar a apresentação em
formato .ppt, .pptx ou .pdf.
Equipe 1 – 1FN <Colocar os nomes dos integrantes>
Equipe 2 – 2FN <Colocar os nomes dos integrantes>
Equipe 3 – 3FN <Colocar os nomes dos integrantes>
Equipe 4 – 4FN e 5FN <Colocar os nomes dos integrantes>
10
Download