Vous êtes sur la page 1sur 38

3) O Modelo de Dados Relacional

O Modelo de Dados Relacional foi introduzido por E. F. Codd em 1970. Representa o padrão de facto para modelo de dados, sendo implementado pela maioria dos SGBD´s comerciais. Representa um modelo eficiente para a maioria das aplicações comerciais.

Em uma definição informal, o Modelo Relacional é representado por tabelas, linhas, colunas e domínios, dentro de uma única estrutura de dados.

Exemplo:

Nome

CPF

Sexo

Data Nasc.

Profissão

Edison

123456

M

07/03/77

Analista de Sistemas

Pedro

654321

M

01/12/78

Professor

Maria

299299

F

15/05/54

Bióloga

Alfredo

238838

M

13/09/70

Professor

Fátima

445355

F

19/05/78

Médica

Regina

345355

F

17/05/75

Psicóloga

Em uma analogia entre o conceito matemático de relação e a noção trivial de tabela, temos que: cada LINHA da tabela representa uma TUPLA da relação; O NÚMERO DE COLUNAS da tabela representa o GRAU da relação; O NÚMERO DE LINHAS da tabela representa a CARDINALIDADE da relação; Os VALORES PERMITIDOS em cada coluna da tabela representam o DOMÍNIO da relação. Para o exemplo acima, temos uma relação de grau cinco e cardinalidade seis.

O Modelo de Dados é uma representação das necessidades de dados de um determinado ambiente e de como esses dados se relacionam. É uma das primeiras atividades que devem ser executadas ao longo do processo de identificação e compreensão de um ambiente, tendo em vista necessidades de automatização.

É um dos produtos da fase de Análise do Ciclo de Vida de um projeto de desenvolvimento de um sistema. O Modelo entidade-relacionamento (MER) é representado através de Diagrama Entidade Relacionamento (DER). Os próximos itens deste texto detalham cada um de seus componentes.

Construir um Modelo de Dados significa:

  • - Coletar e documentar informações relevantes do ambiente estudado;

- Representar as informações, de forma clara e objetiva, e num formato padrão que possa facilitar o entendimento dos participantes do processo;

  • - Definir, de maneira clara, o escopo do ambiente modelado;

  • - Adquirir o entendimento do ambiente através de refinamentos sucessivos do modelo;

- Representar graficamente as necessidades de informação independente do Software e do Hardware a serem usados na implementação do Sistema.

3.1) Diagrama Entidade Relacionamento (DER)

3.1.1) Entidade

É o conjunto de objetos da realidade modelada sobre os quais deseja- se manter informações no banco de dados. [HEUSER2001]

Chamamos de entidade, qualquer coisa real ou abstrata, de um determinado ambiente, sobre a qual precisamos guardar informações.

[ALVES2003]

Quando estamos modelando o ambiente de uma biblioteca, por exemplo, então as informações a respeito dos livros devem estar representadas pela entidade: Livro. As informações relativas aos usuários da biblioteca poderiam ser representadas pela entidade: Cliente. As informações relativas ao empréstimo de livros seriam representadas pela entidade: Empréstimo. As reservas de livros por: Reserva, e assim por diante. Nesse ambiente as informações da entidade Livro poderiam ser:

nome do livro, ISBN do livro, e título do livro. Para a entidade Cliente poderíamos ter: cpf, nome, endereço e telefone. Para a entidade Empréstimo: data do empréstimo, data provável de devolução e taxa de multa para o caso de devolução com atraso. A entidade Reserva poderia ter: data da reserva, e data provável de disponibilidade do livro.

É claro que as informações representadas por uma entidade depende do ambiente onde ela está inserida. Por exemplo: uma pessoa para o Ministério da Fazenda é vista como um contribuinte de impostos. E dentro deste contexto as informações relevantes de pessoa seriam: cpf, renda anual, despesas médicas, despesas com instrução, etc. Já o Ministério da Educação poderia ter outras necessidades de informações sobre uma pessoa, como por exemplo: cpf, nível de escolaridade, idade, data de nascimento, etc. O Ministério da Saúde, certamente teria interesse em informações sobre saúde: tipo sanguíneo, data de nascimento, etc. Podemos concluir que, uma entidade só deve conter informações que dizem respeito, ou que são necessárias, ao ambiente que representa.

Representação Gráfica:

- Representar graficamente as necessidades de informação independente do Software e do Hardware a serem usados
- Representar graficamente as necessidades de informação independente do Software e do Hardware a serem usados
EMPRÉSTIMO
EMPRÉSTIMO

3.1.2) Relacionamento

É o conjunto de associação entre entidades. [HEUSER2001]

Chamamos de relacionamento a associação entre duas entidades ou entre uma entidade e ela mesma. Para expressar, em um modelo, quais as disciplinas nas quais um aluno está matriculado nós poderíamos definir o

relacionamento: O aluno está matriculado em

O relacionamento para

... expressar os dependentes de um determinado empregado seria:

Empregado tem dependentes. [ALVES2003]

Representação Gráfica: EMPREGADO TEM DEPENDENTE
Representação Gráfica:
EMPREGADO
TEM
DEPENDENTE

3.1.3) Atributo

É o dado que é associado a cada ocorrência de uma entidade ou de um relacionamento. [HEUSER2001]

São partes específicas de uma determinada entidade. [ALVES2003]

Poderiam ser atributos de uma entidade Aluno: nome, número da matrícula, cpf, data de ingresso no curso, endereço, telefone e data de nascimento. Uma entidade Fornecedor poderia ter como atributos: Cgc, nome, Razão Social, Endereço, e Capital Social. Cada entidade tem valores específicos para seus atributos que diferir ou ser iguais aos valores dos atributos de outras entidades de um mesmo tipo de entidade.

Valor de um atributo:

Chamamos valor de um atributo ao conteúdo que um atributo pode Ter. Marcos Ferreira, Rosa Cristina, Deusdete da Cunha poderiam ser valores da entidade Aluno. Casas Bahia, Carrefour, C&A seriam valores do atributo nome da entidade Fornecedor

Domínio de um atributo:

É o conjunto de valores que um atributo pode assumir. Exemplo:

Masculino, Feminino são o domínio do atributo Sexo da entidade Aluno. O atributo Nota da entidade aluno tem o domínio: {número reais de 0 a

10).

Representação Gráfica:

 

ALUNO

 
Nome

Nome

 
Matrícula

Matrícula

 

Características dos Atributos de uma entidade:

Único: cada entidade tem um valor diferente para este atributo. A matrícula de um aluno em um curso é um atributo único porque não existe outro aluno matriculado com o mesmo número de matrícula.

Não-Único: quando o valor pode se repetir em várias entidades. Por exemplo, o aproveitamento de um aluno. Mais de uma aluno pode Ter a mesma nota.

Obrigatório: quando tem que existir um valor para este atributo em toda entidade. Por exemplo, o nome do aluno na entidade ALUNO.

Simples: quando possui um domínio simples. Por exemplo, o atributo sexo tem um domínio simples pois é formado pelo conjunto (único) das letras F e M.

Composto: quando possui mais de um domínio simples. Endereço de uma pessoa, por exemplo. Ele é formado pelos domínios, simples, dos Logradouros, dos Bairros, das Cidades, dos Estados e dos Cep´s.

Representação Gráfica:

Único: cada entidade tem um valor diferente para este atributo. A matrícula de um aluno em

Endereço

 

Rua

Quadra

Lote

Univalorado: quando tem um único valor para cada entidade. Por exemplo, o número de matrícula de um aluno. Cada aluno tem um único número de matrícula.

Multivalorado: quando pode ter mais de um valor para cada entidade. Por exemplo, o telefone de uma pessoa. Uma pessoa pode ter mais de um telefone. O do trabalho e da residência.

Representação Gráfica:

Único: cada entidade tem um valor diferente para este atributo. A matrícula de um aluno em

Telefone

Derivado: quando o seu conteúdo depende do conteúdo de outros atributos. Por exemplo, o total de uma nota fiscal é formado pela soma dos totais de cada item componente da nota fiscal.

Representação Gráfica:

Único: cada entidade tem um valor diferente para este atributo. A matrícula de um aluno em

Total da Nota

Não derivado: quando ele não pode ser obtido a partir de outros atributos. Por exemplo, nome de um aluno.

Identificador: é o atributo ou atributos que identificam uma entidade de um tipo de entidade de maneira única. Por exemplo, a matrícula do estudante. Ou a matrícula do aluno e o código da disciplina no tipo de entidade APROVEITAMENTO.

Representação Gráfica:

Identificador: é o atributo ou atributos que identificam uma entidade de um tipo de entidade de

Matrícula

Em sua representação gráfica, o atributo do tipo identificador deve aparecer sublinhado.

Existem seis tipos de atributos identificadores, também chamados de chaves ou índices. Os atributos componentes dos campos chave não devem permitir valores nulos.

Chave

Descrição

Super chave

É qualquer subconjunto de atributos que

identifica univocamente uma tupla da relação.

Chave

É a super chave minimal. Não se pode tirar nenhum dos seus atributos componentes sem perder a unicidade.

Chave candidata

Qualquer combinação de atributos que pode ser

(alternativa)

chave da relação.

Chave primária

Chave candidata considerada principal. Determina a ordenação lógica das tuplas na relação.

Chave alternativa (única)

Chave candidata que não foi designada como primária.

Chave estrangeira (chave externa)

Permite associação lógica entre tuplas de duas relações. (é a chave primária da outra relação).

Não Identificador: quando o identificador não identifica por si só uma entidade dentro de um tipo de entidades. Por exemplo, o nome do aluno não identifica o aluno dentro to tipo de entidade ALUNO.

3.1.4) Dicionário de Dados

O dicionário

de dados contém as definições

das entidades, dos

relacionamentos e dos atributos de um modelo de dados. [ALVES2003]

3.1.5) Padrões de nomenclatura

Nome do Tipo de Entidade: Letras maiúsculas e no singular. Nome de Relacionamento: Letras maiúsculas e no singular. Nome de Atributo: Inicia com letra maiúscula e o restante minúsculo.

3.1.6) Tipos de Entidades

Entidade Primária

É a entidade que existe por si mesma. Sua identificação completa é feita pelos seus próprios atributos. [ALVES2003]

Ex.:

A

Entidade

ALUNO é uma entidade primária porque é

identificada pelos seus próprios atributos. O seu identificador pode ser o

atributo Matrícula do aluno.

Representação Gráfica:

ALUNO Nome Matrícula
ALUNO
Nome
Matrícula

Entidade Fraca ou Dependente

É a entidade cuja identificação não pode ser feita por seus próprios atributos. Para sua identificação completa precisamos de atributos de outra entidade. [ALVES2003]

Ex.: A entidade DEPENDENTE é uma entidade fraca pois para a sua identificação há que se utilizar atributos da entidade EMPREGADO (A Matrícula do empregado, por exemplo). Ou seja, quando falamos, João Viera (DEPENDENTE) precisamos dizer de quem ele é dependente (EMPREGADO) para que se possa identificá-lo completamente. Assim:

João Vieira é dependente de Francisco da Rocha (EMPREGADO).

Representação Gráfica: EMPREGADO TEM DEPENDENTE Nome Matrícula Código Data Nascimento
Representação Gráfica:
EMPREGADO
TEM
DEPENDENTE
Nome
Matrícula
Código
Data Nascimento

Entidade Associativa

É a entidade que não se identifica por se mesma e sua existência depende da existência de duas ou mais outras entidades. Compõem seu identificador os identificadores das entidades que se associaram para lhe dar origem. [ALVES2003]

Ex.: No diagrama abaixo a entidade, APROVEITAMENTO é uma entidade associativa porque a sua identificação só possível a partir da Matrícula, identificador da entidade ALUNO e de Código, identificador da entidade DISCIPLINA. Ou sejam, quando nos referimos ao aproveitamento 7,3, por exemplo, ele só tem sentido quando associado a uma aluno e a uma disciplina. Assim: João Ribeiro Ferraz (ALUNO) obteve a nota 7,3 (APROVEITAMENTO) em Banco de Dados (DISCIPLINA).

Representação Gráfica: ALUNO DISCIPLINA 1 1 N N APROVEITAMENTO
Representação Gráfica:
ALUNO
DISCIPLINA
1
1
N
N
APROVEITAMENTO

3.1.7) Tipos de Relacionamentos

Relacionamento Tipo Dependência

Chamamos de Relacionamento de Dependência ao relacionamento entre um tipo de entidade primária e um tipo de entidade dependente (fraca). [ALVES2003]

Ex.: O Tipo de entidade EMPREGADO compõe-se de entidades

primárias porque essas entidades são identificadas completamente por seus atributos. É razoável imaginarmos que numa mesma empresa não existam empregados com a mesma matrícula. Já a as entidades de DEPENDENTE são do tipo fraca porque os seus atributos não as identificam completamente. Suponhamos que Pedro Rodrigues seja filho de Francisco Moreira, cujo número de matrícula seja 10. Se falamos apenas Pedro Rodrigues, não o identificamos, porque pode existir outros Pedro Rodrigues filhos de outros empregado que não seja o Francisco Moreira de matrícula 10. Para que Pedro Rodrigues seja completamente identificado precisamos associá-lo ao empregado do qual ele é dependente. Então dizemos: Pedro Rodrigues é dependente de Francisco Moreira de matrícula 10.

Representação Gráfica:

1 N EMPREGADO DEPENDENTE
1
N
EMPREGADO
DEPENDENTE

Tipo de Entidade Primária

Tipo de Entidade Fraca

Relacionamento Tipo Associativo

Um relacionamento

é

do

tipo associativo

se ele relaciona

uma

entidade primária a uma entidade associativa. [ALVES2003]

Ex.: Tanto o relacionamento entre ALUNO e APROVEITAMENTO como o relacionamento entre DISCIPLINA e APROVEITAMENTO são do tipo associativo pois ambos relacionam entidades primárias de ALUNO e DISCIPLINA à entidade do tipo associativa APROVEITAMENTO.

Representação Gráfica:

1

N
N

N

1
1
ALUNO APROVEITAMENTO
ALUNO
APROVEITAMENTO
Tipo de Entidade Primária Tipo de Entidade Fraca Relacionamento Tipo Associativo Um relacionamento é do tipo
 

DISCIPLINA

 
Tipo de Entidade Primária Tipo de Entidade Fraca Relacionamento Tipo Associativo Um relacionamento é do tipo

Entidade Primária Primária

Entidade Associativa

Entidade

3.1.8) Cardinalidade dos Relacionamentos

Havendo um relacionamento entre entidades, é necessário identificar a cardinalidade, ou seja, quantas tuplas da entidade A podem estar associadas com uma tupla da entidade B e vice-versa.

A partir desta verificação, podemos definir os seguintes tipos de relacionamentos:

Relacionamento 1:1

Um elemento de um conjunto de entidades se relaciona apenas com um elemento do outro conjunto.

 

HOMEM

1

HOMEM 1 1 MULHER

1

MULHER

 

Homem

 

Casa

Mulher

r1 João Maria Adão r2 Eva Rui Ana r3
r1
João
Maria
Adão
r2
Eva
Rui
Ana
r3

8

Relacionamento 1:N

Ocorre quando uma ocorrência de entidade se relaciona com várias ocorrências da outra entidade.

 

DEPTO

1

DEPTO 1 N FUNCIONARIO
 

N

FUNCIONARIO

   
 

Depto

Possui

 

Funcionários

Vendas r1 Maria r2 Eva Contabilidad r3 Ana e Rui r4 Ivo r5
Vendas
r1
Maria
r2
Eva
Contabilidad
r3
Ana
e
Rui
r4
Ivo
r5

Relacionamento N:N

Nesse tipo de relacionamento, cada elemento de uma relação X, pode corresponder a vários elementos de uma relação Y, e cada elemento da relação Y pode corresponder a vários elementos da relação X.

Em relacionamento N:N, o relacionamento pode ter ou não atributos. No exemplo abaixo o atributo do relacionamento curso poderia ser a nota do aluno.

N N ALUNO DISCIPLINA Cursa Aluno Disciplina
N
N
ALUNO
DISCIPLINA
Cursa
Aluno
Disciplina
r1 José r2 Matemática Maria r3 r4 Estatística João r5 Física r6
r1
José
r2
Matemática
Maria
r3
r4
Estatística
João
r5
Física
r6

3.1.9) Como nomear os relacionamentos

Substantivo

Utilizar um substantivo que represente a forma como as entidades de associam.

N 1 LOTAÇÃO FUNCIONÁRIO DEPARTAMENTO Verbo Utilizar um verbo que indica uma ação em que uma
N
1
LOTAÇÃO
FUNCIONÁRIO
DEPARTAMENTO
Verbo
Utilizar um verbo que indica uma ação em que uma das entidades é o
sujeito e a outra é o objeto.
N
N
FORNECE
FORNECEDOR
PRODUTO
DEPARTAMENTO

Nome das Entidades

Utilizar os nomes das entidades envolvidas no relacionamento.

1 N CLIENTE CLIENTE PEDIDO PEDIDO
1
N
CLIENTE
CLIENTE
PEDIDO
PEDIDO

3.1.10) Grau de um Relacionamento

O

grau

de

um

relacionamento

é

determinado

pelo número de

entidades que participam do relacionamento.

Quando ocorre um relacionamento que envolve associação entre três ou mais entidades (portanto com grau maior que 2), dizemos haver um relacionamento múltiplo.

Exemplo de relacionamento de grau três:

PRODUTO N N N DEPÓSITO ENTREGA CLIENTE
PRODUTO
N
N
N
DEPÓSITO
ENTREGA
CLIENTE

3.1.11) Generalização de Entidades

Certos conjuntos de entidades de dados (supertipos) podem ser subdivididos em diversas categorias de elementos (subtipos), cada uma se caracterizando por atributos específicos. A este processo denominamos particionamento de conjunto de entidades.Como exemplo poderíamos citar o caso em que a entidade Funcionário pode ser subdividida numa categoria de Professores, em outra de Engenheiros e em outra de Técnicos.

FUNCIONARIO PROFESSOR TECNICO ENGENHEIRO
FUNCIONARIO
PROFESSOR
TECNICO
ENGENHEIRO

3.1.12) Agregação

A agregação é uma extensão do modelo proposto por Peter Chen de forma a permitir o registro do relacionamento de uma entidade com um relacionamento anteriormente criado.

N N CORRENTISTA POSSUI CONTA CORRENTE 1
N
N
CORRENTISTA
POSSUI
CONTA CORRENTE
1
PERTENCE
PERTENCE
 

1

CARTAO MAGNETICO

3.1.13) Auto-relacionamento

É

comum

encontrarmos,

durante o processo de modelagem,

associações de ocorrências de entidades com outras ocorrências do mesmo tipo, o que chamamos de auto-relacionamento. É o caso, por exemplo, de peças que são compostas por partes de outras peças.

Um auto-relacionamento, portanto, é o relacionamento estabelecido entre uma entidade e ela mesma.

Exemplo: chefia é o relacionamento estabelecido entre a entidade funcionário e ela própria, uma vez que tanto o chefe quanto seus subordinados fazem parte do mesmo corpo funcional de uma empresa.

FUNCIONARIO 1 N CHEFIA
FUNCIONARIO
1
N
CHEFIA

3.1.14) Relacionamento Total e Parcial

Podemos classificar os relacionamentos em totais ou parciais. Os relacionamentos totais (ou obrigatórios) são aqueles que participam todas as tuplas de uma entidade. Os relacionamentos parciais (ou opcionais) são aqueles em a participação de todas as tuplas da entidade não é obrigatória.

Parcial 1 N COBRA AGÊNCIA FATURA
Parcial
1
N
COBRA
AGÊNCIA
FATURA

Uma agência pode ter muitas faturas em cobrança, ou pode não ter nenhuma. Uma fatura fica em cobrança em uma agência, pode haver fatura não colocada em agência.

Parcial x Total 1 N POSSUI DEPARTAMENTO DIVISAO
Parcial x Total
1
N
POSSUI
DEPARTAMENTO
DIVISAO

Um determinado departamento pode ter muitas divisões, e pode não ter nenhuma divisão. Uma divisão tem que estar sempre ligada a um só departamento.

Total 1 1 PERTENCE CANDIDATO FICHA INSCRIÇÃO
Total
1
1
PERTENCE
CANDIDATO
FICHA INSCRIÇÃO

Um candidato tem que ter uma, e só uma ficha de inscrição. Uma ficha de inscrição tem que pertencer a um, e só um, candidato.

3.1.15) Cardinalidade mínima e máxima

A cardinalidade mínima é máxima de um relacionamento também pode ser representada no diagrama.

Exemplo: Um funcionário de uma empresa pode possuir zero ou mais dependentes. Cada dependente está relacionado
Exemplo: Um funcionário de uma empresa pode possuir zero ou
mais dependentes. Cada dependente está relacionado a uma, e somente
uma pessoa.
1,1
0,N
POSSUI
FUNCIONARIO
DEPENDENTE

No exemplo acima, a cardinalidade mínima do funcionário em relação ao seus dependentes é zero e a máxima é N. A cardinalidade mínima do dependente em relação ao funcionário é um e a máxima também é 1.

3.1.16) Exercícios (MER)

1) Faça o DER equivalente ao seguinte Modelo Descritivo: Considere parte de um ambiente de banco. Um banco tem várias agências. As contas de uma agência podem se referir a pessoas físicas ou jurídicas. Há contas que podem ter um único titular e contas que podem ter mais de um. Não há contas sem cliente e nenhum cliente da agência sem conta. Uma agência exige necessariamente um banco e não há banco sem agência. As agências fazem empréstimos aos seus clientes há cliente que tem mais de um empréstimo, mas o número de empréstimos de cada agência é limitado a 1000.

2) Quais os possíveis atributos que podem identificar as duas entidades no relacionamento a seguir:

FORNECEDOR

 

NOTA FISCAL

Cgc

 
Cgc Número
 

Número

Nome

   

Série

Razão Social

Data

3) Construir um possível DER a partir do conteúdo do relatório abaixo.

Almoxari-

Endereço

Código

Nome Produto

Quantidade

fado

Produto

  • 234 Rua 15, Centro

A12

Arroz

20

  • 234 Rua 15, Centro

F15

Feijão

150

  • 456 Rua 9, S. Oeste

J14

Açúcar

180

  • 456 Rua 9, S. Oest

V18

Feijão

200

4) Construir possíveis relacionamentos entre as entidades abaixo e identificar pelo menos dois atributos para cada uma delas. As entidades referem-se a um ambiente hospitalar. Entidades: PACIENTE, CIRURGIÃO, CIRURGIA, TIPO DE CIRURGIA.

5) Construir o DER correspondente a um ambiente escolar com as seguintes entidades: DEPARTAMENTO, ALUNO, DISCIPLINA, TURMA, APROVEITAMENTO, PROFESSOR respondendo as seguintes perguntas:

  • 1. Qual professor leciona cada disciplina?

  • 2. Qual a nota do aluno em determinada disciplina e qual o professor que deu a nota?

  • 3. Em qual turma de qual disciplina o aluno está matriculado e quais os professores dessa turma?

  • 4. Em qual departamento o professor está vinculado?

  • 5. Quais as disciplinas que são de responsabilidade de cada departamento?

  • 6. Qual o horário de aula de cada turma?

  • 7. Quantos são os alunos do sexo masculino e quantos são do sexo feminino?

  • 8. Qual a idade de cada aluno?

  • 9. Quais são os pais de cada aluno?

6) Que alterações seriam necessárias fazer DER do exercício anterior, considerando que os pais de um aluno também podem ser estudantes, sem que haja duplicidade de informações no modelo?

7) Identificar os relacionamentos entre as entidades relacionadas abaixo, e para cada entidade identifique, pelo menos, três atributos. Construa o quadro de definição dos atributos para cada entidade. As entidades se referem ao ambiente de um ponto de comércio varejista (por exemplo, uma loja de calçados).

O modelo construído deve responder as seguintes perguntas:

  • 1. Quais Empregados são Empacotadores, Contadores e Vendedores?

  • 2. Qual o Vendedor que Atendeu o Cliente?

  • 3. Quem empacotou os produtos comprados para o cliente?

  • 4. Qual o valor total da compra do Cliente?

  • 5. Quais os clientes que foram atendidos mas que não compraram nada?

  • 6. Se o cliente comprou alguma coisa, quais os produtos comprados?

  • 7. Qual o total de vendas de cada vendedor por dia?

  • 8. Qual o total das vendas correspondentes às mercadorias empacotadas por cada empacotador?

Relação

de

entidades:

Empregado,

Contador,

Empacotador,

Vendedor,

Cliente, Nota Fiscal, Detalhes de Notas Fiscais (Relação de Produtos) e Produto.

Contador (1,1) (1,1) (0,1) 14 (0,1) (0,1)
Contador
(1,1)
(1,1)
(0,1)
14
(0,1)
(0,1)

Empacotador

Empacotador (1,1) Nota Fiscal (1,N) (1,1) Produto (0,N) Detalhes de Nota Fiscal 8) Construir o DER
Empacotador (1,1) Nota Fiscal (1,N) (1,1) Produto (0,N) Detalhes de Nota Fiscal 8) Construir o DER
(1,1) Nota Fiscal (1,N)
(1,1)
Nota Fiscal
(1,N)
 

(1,1)

 

Produto

(0,N)

Produto (0,N) Detalhes de

(1,1)

Detalhes de

 
 

Nota Fiscal

 

8) Construir o DER correspondente à descrição dos relacionamentos abaixo:

Um Item de Pedido de Compra deve se referir a um único Pedido de Compra Um Pedido de Compra deve se referir a um único fornecedor Um Item de Pedido de Compra deve se referir a um e somente um Produto Um Pedido de Compra deve conter 1 ou vários Itens de Pedido de Compra Um Fornecedor pode Ter vários Pedidos de Compra a ele solicitado Um Produto pode ser referido por nenhum ou vários Itens de Pedido de Compra Um Produto deve ser fornecido por um ou vários Fornecedores Um Fornecedor deve fornecedor um ou vários Produtos Um Pedido de Compra pode ser atendido por 1 ou várias Notas Fiscais Um Nota Fiscal deve se referir a um e somente um Pedido de Compra Um Nota Fiscal deve ser constituída de 1 ou mais Itens de Nota Fiscal Um Item de Nota Fiscal deve ser referir a uma única Nota Fiscal

Construir um diagrama problema a seguir:

de E x R e definir todos os seus atributos para o

9) Sou gerente de uma empresa de treinamento que ministra vários cursos de caráter técnico. Ministramos vários cursos, que são identificados por um código, nome e preço. Os cursos “Introdução ao UNIX” e “Programando em C” são alguns de nossos cursos mais populares. A duração de cada curso pode variar de um a quatro dias. Um instrutor pode ensinar vários cursos. Paul Rogers e Maria Gonzales são dois de nossos melhores instrutores. Mantemos aqui o nome e o telefone de cada Instrutor. Agente cria um curso e aloca um instrutor. Os alunos(clientes) podem participar de vários cursos, e vários deles o fazem. O Jamie Brown, da Docegeo, assiste a todo curso que oferecemos. Além do nome, mantemos também o número do telefone dos alunos. Alguns de nossos alunos e instrutores não possuem telefone.

10) Construir um DER e definir todos os seus atributos

para o seguinte

problema de VENDA DE PRODUTOS (Profa. Karin Becker da pucrs).:

Uma firma vende produtos de limpeza. Cada produto é caracterizado por um código único, nome do produto, categoria (e.g. detergente, sabão em pó, sabonete, etc), e seu preço. A categoria é uma classificação criada pela própria firma. A firma possui informações sobre todos seus clientes. Cada cliente é identificado por um código único (também interno à firma), o nome do cliente, endereço (rua, numero, sala, cidade, CEP, UF), telefone, o status do cliente ("bom", "médio", "ruim"), e o seu limite de crédito. Guarda-se igualmente a informação dos pedidos feitos pelos clientes. Cada pedido possui um número, e guarda-se a data de elaboração do pedido. Cada pedido pode envolver de 1 a vários produtos, e para cada produto, indica-se a quantidade deste pedida.

11) Construir um DER seguinte:

e definir todos os seus atributos para o problema

Sou o proprietário de uma pequena loja de vídeo. Temos mais de 3000 fitas aqui e queremos um sistema para controlá-las.

Cada fita contém um número. Para cada filme, precisamos saber seu título e categoria (comédia, suspense, terro, etc). Muitos de nossos filmes tem mais de uma cópia. A cada filme, fornecemos um ID e então controlamos qual filme uma fita contém. O formato de uma fita pode ser Beta ou VHS. Sempre temos uma fita para cada filme, e cada fita tem apenas um filme. Não temos aqui nenhum filme que requeira mais de uma fita.

Freqüentemente, as pessoas alugam filmes pelos atores. John Wayne e Katheerine Hepburn são muito populares. Queremos manter informações sobre os astros que atuam em nossos filmes. Nem todos os filmes são estrelados por astros e só mantemos aqui astros que atuam em filmes do nosso catálogo. Os clientes gostam de saber a data de nascimento de um astro, bem como o seu verdadeiro nome

Temos muitos clientes. Apenas alugamos filmes para pessoas inscritas em nosso vídeo clube. Para cada membro do clube mantemos seu primeiro e último nome, telefone e endereço. Claro que cada membro possui um número de título. Além disso mantemos o status de crédito de cada um.

Queremos controlar os aluguéis de filmes. Um cliente pode alugar vários filmes ao mesmo tempo. Apenas mantemos os aluguéis correntes (pendentes). Não controlamos histórico de locações.

12) Construir um DER e definir todos os seus atributos para o problema a seguir :

Um ambiente de controle de veículos

Uma empresa de grande porte de Goiás, a EMPRESA MODELO S/A, quer fazer o controle de sua frota de veículos. A frota é constituída de vários tipos, Caminhões, Camionetas, e carros pequenos, como Parati, Omega entre outros. De cada veículo a empresa precisa saber, qual o ano de fabricação e modelo, qual o fabricante, se Chevrolet, Volkswagem, Fiat, etc. o tipo, data da compra, tipo de combustível, quilometragem atual, cor e quantidade de passageiros que o veículo pode transportar. Um veículo pode ser usado por qualquer empregado da empresa inclusive dirigindo o veículo. Entretanto, a empresa tem em seu quadro de funcionários motoristas que são chamados quando um empregado precisa usar o veículo mas não sabe dirigir. Em qualquer caso o responsável pelo veículo durante o uso é o motorista do veículo. O controle do uso de um veículo é feito através do preenchimento do formulário chamado OCORRÊNCIA DE USO DE VEÍCULO, no qual devem ser registrados os seguintes dados: Quilometragem no momento do recebimento do carro para uso, Quilometragem no final do uso, o consumo de combustível e o resultado do acerto da viagem. Cada abastecimento deve ser acompanhado de nota fiscal, emitida pelo posto de combustível, demonstrando a quantidade e o valor do abastecimento. Se o uso do veículo é para uma viagem interurbana o motorista recebe um adiantamento para fazer face aos abastecimentos necessários. Esse adiantamento é feito em função do consumo por quilometro rodado do veículo. Ao final da viagem o motorista devolve a diferença dos gastos ou recebe a diferença se, por acaso, as despesas forem maiores que o adiantamento recebido.

Outra questão importante, para a empresa, é o controle de manutenção de cada veículo. Essas manutenções são feitas por auto-mecânicas previamente habilitadas. Um veículo é enviado para manutenção a cada 5000 km rodados ou de seis em seis meses, o que ocorrer primeiro. Então da manutenção precisa saber: O tipo de manutenção (Preventiva, Gratuita, Corretiva), a data da última manutenção e a quilometragem na época da manutenção. Para cada manutenção efetuada a empresa registra quantidade de horas e o valor da mão de obra cobrado, por tipo. Horas de eletricista, de pintura, de mecânico, etc. Além disso são registrados a quantidade e o tipo de peças usadas para a manutenção (embreagem, pastilhas de freio, farol, etc.). Só interessa os dados da última manutenção efetuada. Construir o Modelo de Dados para o problema proposto identificando todos os seus componentes.

13) Construir um DER e definir todos os seus atributos para o problema a seguir :

Um ambiente de treinamento

Uma empresa que dá treinamento na área de informática tem a seguinte programação de cursos. Em cada semestre são programados vários cursos. DBA para o Banco de Dados Oracle, Visual Basic Básico, Visual Basic Avançado e Delphi Básico são alguns de seus cursos. Um curso pode ser ministrado várias vezes no semestre. O curso de DBA Oracle para o primeiro semestre de 1999 teve a seguinte programação: a primeira turma de 15/03/1999 a 30/03/1999 e a Segunda turma de 20/06/99 a 0/07/99. Já o curso de Visual Basic Básico foi programado para: a primeira turma no mesmo período da primeira turma do curso de DBA, e a Segunda turma para o período de 10/08/1999 a 30/08/1999. O

número de alunos matriculados em cada turma é no máximo 30, em razão do reduzido número de computadores para as aulas práticas. Para fazer a matrícula o aluno precisa apresentar: Cpf, nome completo, endereço, telefones de contado e o comprovante do pagamento da taxa de matrícula, que pode ser feito na rede bancária do estado, o curso que pretende fazer e em qual período. No momento da matrícula a cada aluno é atribuído um número que o identifica entre todos os alunos da turma. Se o aluno, eventualmente, volta a cursar mais cursos, o número dele continua o mesmo. Há que manter o registro, para cada aula, de um resumo sucinto da matéria lecionada, da data da aula e da freqüência de cada aluno. A empresa tem o interesse em saber o dia da matrícula de cada aluno e em qual o banco e agência o aluno fez o pagamento da matrícula. Para cada turma de cada curso é alocado um professor cujos dados de interesse são: Cpf, nome, endereço de contato, preço cobrado para o ministrar o curso, telefones para contato e quais os cursos que o professor pode ministrar. Outros dados importantes para a empresa são: valor total das matrículas por turma, por curso, por se mestre e por ano. Considerar a hipótese do professor ser aluno de cursos que não seja de sua especialidade.

14) Construir um DER e definir todos os seus atributos para cada um dos problemas a seguir:

O problema do transporte interurbano de pessoas

O sistema de transporte interurbano, de pessoas, se ascenta no conceito de linhas de ônibus. Uma linha de ônibus é definida pelo estado, através de seus ógãos competentes, e deve satisfazer as necessidades de deslocamentos de pessoas em uma determinada região. Uma linha deve atender a um certo número de cidades e é explorada por uma única empresa de ônibus, o que é conseguido através de licitação pública. Pode existir linhas diferentes atendendo a um mesmo conjunto de cidades. Por exemplo, a linha de ônibus n. 1 atende as cidades de Goiânia, Nerópolis, Petrolina, Jaraguá, Rialma, Ceres, Uruaçu e Porangatu, e é explorada pelo Rápido Araguaia 1 . Já a linha n.2 atende as mesmas cidades, só que em horários diferentes, e é explorada pela Expresso São Luíz.

Uma empresa de ônibus, por exigência do poder público, é obrigada a escalar dois motoristas, por viagem, a cada trecho de 600 Km. Um desses motoristas é responsável pela viagem no trecho que é escalado, e o outro é o seu auxiliar. Por exemplo, nas linhas que servem o percurso de Goiânia a São Paulo, as empresas devem escalar 4 motoristas para a viagem, já que a distância a ser percorrida é maior que 600 Km. Dois motoristas conduzem o ônibus até Uberaba e outros dois, de Uberaba a São Paulo. Outro fato importante é que cada linha tem os pontos certos de parada obrigatória. Caldas Novas, Uberlândia, Uberaba, Ribeirão Preto e Pirassununga são paradas obrigatórias de uma linha Goiânia – Sáo Paulo. Às vezes numa mesma viagem pode ocorrer troca de ônibus, e essa troca não coincide, necessariamente, com a troca de motoristas, ou seja, pode não ocorrer na mesma cidade. Uma viagem é definida como o percurso do trajeto que define uma linha de ônibues.

1 Li nha fictícia.

Uma passagem, relativa a uma viagem, deve indicar o nome do passageiro, seu número de identidade, a origem e destino da passagem, data e hora de embarque, o valor e a plataforma de embarque. A origem e o destino das passagens devem, obrigatoriamente, fazer parte das cidades que compões o trajeto da linha, embora um passageiro possa descer em qualquer ponto ao longo do percurso. Não é permitido, a não ser em caso de incidentes que impedem o tráfego no trajedo da linha, desvio da rota definida. O número de passagens vendidas, não pode, execeder o número de cadeiras do ônibus, ou seja, não há possibilidade de um passageiro viajar em pé. Atraso na chegada em cada cidade de mais de uma hora deve ser comunicado à sede da empresa que responde pela linha. Outra coisa importante, tendo em vista a segurança dos passageiros, é que um motorista só pode ser escalado para um viagem à intervalos de 72 horas. Uma transgressão a esta norma, que é determinada pelo poder público, pode acarretar pesadas multas para a empresa infratora.

A respeito das linhas é bom salientar que ela é definida pelo percurso e pelo sentido do percurso. Ou seja, a linha de Goiânia a São Paulo tem um número diferente da linha São Paulo a Goiânia, embora possam Ter o mesmo trajeto e os mesmos pontos de paradas.

15) Construir um DER e definir todos os seus atributos para cada um dos problemas a seguir:

Um ambiente de uma empresa de transporte

Uma empresa de transporte de cargas faz frete entre vários estados brasileiros. São Paulo, Goiás, Minas Gerais e Mato Grosso são alguns deles. Em cada estado apenas algumas cidades são atendidas. Por exemplo, em Goiás, apenas as cidades de Goiânia, Rio Verde e Anápolis são atendidas. Uma cidade atendida, significa que a empresa transporta mercadorias dessas cidades e para essas cidades. O transporte também se dá entres cidades de estados diferentes. Então quando uma pessoa quer transportar uma mercadoria para outra cidade, ela pode recorrer aos serviços dessa empresa de transporte de cargas.

O valor do frete pode ser pago pelo remetente ou pelo destinatário da mercadoria. Tanto a pessoa que envia a mercadoria, como a que recebe, são considerados clientes da empresa. Eventualmente, empresas também contratam frete. Nesse caso elas são representadas por um representante. O valor do frete pode ser definido em função do peso ou do valor da mercadoria transportada. Como cobrar o frete é uma decisão da empresa transportadora e é definida no momento da contração do frete. Por exemplo, o transporte de tecidos é cobrado em função do peso e o de jóias em função do valor. O preço unitário de cada unidade de peso transportada é válido para qualquer cidade atendida. Cobra-se também do cliente o valor do ICMS da mercadoria transportada e o valor do pedágio pago, se existir, o valor o frete peso, e frete valor. Uma característica da cobrança de ICMS é que cada estado tem sua política própria. Goiás 2 por exemplo quando a mercadoria é transportada para fora do estado a taxa de ICMS é de 17% sobre o valor do frete peso ou frete valor, o que existir, e de 12% para mercadorias transportadas dentro do próprio estado.

2 Índices fictícios

Para cada frete contratado é produzido o documento Conhecimento de Transporte Rodoviário de Carga que tem o seguinte conteúdo: Número do conhecimento, que nunca se repete, e mais: Para o remetente - se pessoa física:

Nome, endereço, telefone e cpf. Se empresa – nome, endereço e telefones do representante e Razão social, Inscrição estadual, Cgc, endereço da empresa e telefones de contato. Para o destinatário o conhecimento deve conter as mesmas informações do remetente. O conhecimento deve conter ainda, o preço da

mercadoria transportada, o valor do ICMS a ser recolhido aos cofres do estado, o

valor do pedágio, se existir, o frete peso ou o frete valor, conforme o caso

A

.. indicação de quem paga o frete, é necessária, se o remetente ou o destinatário do frete e o peso. Precisa-se também da data em que foi realizado o frete, para efeito de registro contábil da empresa transportadora.

E

por

fim

deve-se saber também

qual

foi

o funcionário

da empresa

responsável pela emissão do Conhecimento de Transporte Rodoviário de Carga, neste caso, apenas o número do registro do empregado, na empresa, e o seu nome.

16) Construir um DER e definir todos os seus atributos para os problemas a seguir: Um ambiente rural

A Secretaria de Agricultura do Estado de Goiás quer cadastrar todos os imóveis rurais do estado (fazendas, chácaras, sítios, etc.) para Ter informações da produção de alimentos, por ano. A produção por ano, seria o somatório da produção, de todas as propriedades rurais do estado. São necessárias informações a respeito das propriedades, tais como: dono ou donos da propriedade 3 , data da aquisição, área em hectares, município onde está situado o imóvel, qual o preço de aquisição, a distância do município onde está situada e se existir empregados, trabalhando na fazenda, o nome e data de nascimento devem ser armazenados. Precisa saber quais os produtos que uma propriedade produz, período provável de colheita, quantidade a colher prevista e a quantidade efetivamente colhida além do período de colheita efetivo. Há propriedade que produz vários tipos de produtos. Como por exemplo, a fazenda Macambira, de Goiânia, de propriedade do sr. Francisco Sá Júnior que produz feijão, soja e milho. Já a fazenda Maricá, de Pires do Rio, que pertence ao Sr. Francisco de Pádua que tem como sócio o sr. Olinto Fraga, produz arroz, beterraba e cenoura. É interessante salientar que um imóvel rural pode ser propriedade de uma pessoa jurídica, como por exemplo a fazenda Ribeirão das Águias, município de Formosa do estado de Goiás, que é de propriedade da empresa Produtora de Grãos Ltda., cujos donos são Rodrigo Machado e Ferreira Goulart. Neste caso há que saber quais os donos da empresa. Como há proprietários que são casados é preciso conhecer também qual a esposa de cada proprietário de cada imóvel. Do proprietário, se pessoa física, as seguintes informações deve ser armazenadas: Nome, Carteira de Identidade, Cpf, Data de Nascimento e pelo menos três telefones para contato. Das esposas, quando existirem, guardar o nome, Cpf, se existir, Data de Nascimento, Data do Casamento e Carteira de Identidade. Se o proprietário é uma pessoa jurídica as seguintes informações são necessárias: Nome da Empresa, Razão Social, CGC, qual o dono ou donos da empresa, Inscrição Estadual e Telefones de Contato.

3 Apenas os donos atuais do imóvel

3.2) Mapeamento MER/Modelo Relacional

3.2.1) Mapeamento de Entidades

  • - Entidade Primária

Modelo E/R

ALUNO

Nome

  • Matrícula

Modelo Relacional

ALUNO(Matricula, Nome)

* O atributo identificador da entidade primária deve ser sublinhado. Se a entidade possuir mais de 1 atributo identificador, estes deverão ser sublinhados.

  • - Entidade Primária com atributo composto

Modelo E/R

ALUNO
ALUNO

Nome

3.2) Mapeamento MER/Modelo Relacional 3.2.1) Mapeamento de Entidades - Entidade Primária Modelo E/R ALUNO Nome Matrícula

Matrícula

Endereço Rua Quadra
Endereço
Rua
Quadra

Lote

Modelo Relacional

ALUNO(Matricula, Nome, Rua, Quadra, Lote)

  • - Entidade Primária com atributo multivalorado

Modelo E/R

ALUNO Endereco(0,N) Telefone(0,3) Nome Matrícula
ALUNO
Endereco(0,N)
Telefone(0,3)
Nome
Matrícula

Modelo Relacional

ALUNO(Matricula, Nome, Telefone1, Telefone2, Telefone3) ALUNOENDERECO(Matricula, Endereço)

3.2.2) Entidade Fraca

Modelo E/R EMPREGADO TEM DEPENDENTE Nome Matrícula Código Data Nascimento
Modelo E/R
EMPREGADO
TEM
DEPENDENTE
Nome
Matrícula
Código
Data Nascimento

Modelo Relacional

EMPREGADO(Matricula, Nome) DEPENDENTE(Matrícula, Código, Data Nascimento)

* O atributo Matrícula na entidade DEPENDENTE é chamado de chave estrangeira. * A chave primária da entidade DEPENDENTE é a o conjunto de atributos Matrícula e Código.

3.2.3) Entidade Associativa

Modelo E/R ALUNO DISCIPLINA APROVEITAMENTO
Modelo E/R
ALUNO
DISCIPLINA
APROVEITAMENTO

Modelo Relacional

ALUNO(Matricula, Nome) DISCIPLINA(Código, Nome)

APROVEITAMENTO(Matricula, Código, Nota, Freqüência)

3.2.4) Relacionamento tipo 1:1

Modelo E/R 0 1 0 1 HOMEM MULHER Modelo Relacional HOMEM(Cod_H, Nome) MULHER(Cod_M, Nome, Cod_H) Ou
Modelo E/R
0 1
0 1
HOMEM
MULHER
Modelo Relacional
HOMEM(Cod_H, Nome)
MULHER(Cod_M, Nome, Cod_H)
Ou
HOMEM(Cod_H, Nome, Cod_M)
MULHER(Cod_M, Nome)
3.2.5) Relacionamento tipo 1:N
Modelo E/R
DEPTO
1 1
0 N
FUNCIONARIO
Modelo Relacional
DEPTO(Cod_Depto, Nome)
MULHER(Cod_Func, Nome_Func, Codg_Depto)
3.2.6) Relacionamento tipo N:N
Modelo E/R
1,N
1,N
ALUNO
DISCIPLINA

Modelo Relacional

ALUNO(Matricula, Nome) DISCIPLINA(Código, Nome) ALUNODISCIPLINA(Matricula, Código, Nota, Freqüência)

* O atributo identificador da entidade ALUNODISCIPLINA é formado pelos atributos identificadores das entidades envolvidas na relação.

3.2.7) Relacionamento múltiplo

Modelo E/R

PRODUTO 0,N 0,N 0,N DEPÓSITO ENTREGA CLIENTE
PRODUTO
0,N
0,N
0,N
DEPÓSITO
ENTREGA
CLIENTE

Modelo Relacional

DEPOSITO(Codg_Dep, Nome) PRODUTO(Codg_Prod, Nome) CLIENTE(Codg_Cli, Nome) ENTREGA(Codg_Dep, Codg_Prod, Codg_Cli, Quantidade, Valor)

3.2.8) Generalização de Entidades

Modelo E/R

FUNCIONARIO PROFESSOR TECNICO ENGENHEIRO
FUNCIONARIO
PROFESSOR
TECNICO
ENGENHEIRO

Modelo Relacional

FUNCIONARIO(Codg_Func, Nome, Tipo) PROFESSOR(Codg_Func, Titulação) TECNICO(Codg_Func, Grau_de_Instrução) ENGENHEIRO(Codg_Func, Especialização)

Ou,

FUNCIONARIO(Codg_Func, Nome, Tipo, Titulação, Grau_de_Instrução, Especialização)

* Nome segundo modelo algumas tuplas poderão ter os atributos Titulação, Grau de Instrução e Especialização com valores nulos.

3.2.9) Agregação

Modelo E/R

0,N 0,N CORRENTISTA POSSUI CONTA CORRENTE 1,1
0,N
0,N
CORRENTISTA
POSSUI
CONTA CORRENTE
1,1
PERTENCE
PERTENCE
 

0,1

CARTAO MAGNETICO

Modelo Relacional

CORRENTISTA(Codg_Cor, Nome) CONTACORRENTE(Codg_CCR, Tipo) CORRENTISTACCR(Codg_Cor, Codg_CCR, Número, Saldo) CARTAOMAGNETICO(Codg_CM, Número) CORRENTISTACCRCM(Codg_Cor, Codg_CCR, CodgCM, Validade)

3.2.10) Auto-relacionamento

Modelo E/R

Modelo Relacional

FUNCIONARIO 1 N CHEFIA
FUNCIONARIO
1
N
CHEFIA

FUNCIONARIO(Codg_Func, Nome) CHEFIA(Codg_Func, Codg_FuncChefe)

* Na relação CHEFIA, os atributos Codg_Func e Codg_FuncChefe são chaves estrangeiras da relação funcionário. O conjunto dos dois atributos compõe o atributo identificador da relação.

Ou,

FUNCIONARIO(Codg_Func, Nome, Codg_FuncChefe)

* Neste caso o atributo Codg_FuncChefe poderá permitir valores nulos para os casos em que um funcionário não possuir chefe.

3.2.11) Algoritmo de Mapeamento ER/Relacional

Passo 1 – Para cada tipo de entidade forte E no esquema ER, crie uma relação R inclua todos os atributos simples de E. Inclua somente os atributos componentes simples de cada atributo composto. Escolha uma dos atributos

chave de E como chave primária de R. Se a chave escolhida for composta, o conjunto de atributos simples que a formam juntos formarão a chave primária de

R.

Passo 2 – Para cada tipo de entidade fraca F no esquema ER cujo tipo de entidade forte identificadora é E, crie uma relação R, e inclua todos os atributos simples (ou componentes simples de atributos compostos) de F como atributos de R. Além disso, inclua como chave estrangeira em R os atributos que formam a chave(s) primária(s) da(s) relação(ões) que correspondem ao tipo de entidade forte identificadora. Esse procedimento mapeia o relacionamento identificador de F. A chave primária de R é a combinação da(s) chave(s) primária(s) da(s) entidade(s) forte(s) e da chave parcial do tipo de entidade fraca F, se existir.

Passo 3 – Para cada tipo de relacionamento R binário 1:1 no esquema ER, identifique as relações S e T que correspondam aos tipos de entidades participantes de R. Escolha uma das relações – digamos, S – e inclua como chave estrangeira em S a chave primária de T. É melhor escolher um tipo de entidade com participação total em R para desempenhar o papel de S. Inclua todos os atributos simples (ou componentes simples de atributos compostos) do tipo de relacionamento R 1:1 como atributos de S.

Passo 4 – Para cada tipo de relacionamento binário R 1:N que não seja identificador de entidade fraca, identifique a relação S que representa o tipo de entidade participante no lado N do tipo de relacionamento. Inclua como chave estrangeira de S a chave primária da relação T que representa o outro tipo de entidade participante de R; isto se deve ao fato de que cada instância de entidade do lado N se relaciona a, no máximo, uma instância de entidade do lado 1 do tipo de relacionamento. Inclua todos os atributos simples (ou componentes simples de atributos compostos) do tipo de relacionamento 1:N como atributos de S.

Passo 5 – Para cada tipo de relacionamento binário R M:N, crie uma nova relação S para representar R. Inclua como chaves estrangeiras em S os atributos que formam as chaves primárias das relações que representam os tipos de entidades participantes de R; a combinação dessas chaves estrangeiras formarão a chave primária de S. Também inclua todos os atributos simples do tipo de relacionamento M:N (ou componentes simples de atributos compostos) como atributos de S.

Passo 6 – Para cada atributo multivalorado A, crie uma nova relação R que inclui um atributo correspondente a A mais a chave primária K (como chave estrangeira em R) da relação que representa o tipo de entidade ou tipo de relacionamento que tem A como atributo. A chave primária de R é a combinação de A com K. Se o atributo multivalorado é composto, então inclua somente seus componentes simples.

Passo 7 – Para cada tipo de relacionamento n-ário R, com n > 2, crie uma nova relação S para representar R. Inclua como chaves estrangeiras em S as chaves primárias das relações que representam os tipos de entidades participantes de R. Também inclua todos os atributos simples (ou componentes simples de atributos compostos) como atributos de S. A chave primária de S é, normalmente, a combinação de todas as chaves estrangeiras que referenciam as relações que representam os tipos de entidades participantes de R. No entanto, se a restrição de participação (min,max) de um dos tipos de entidades participantes de R (digamos, E) tiver max = 1, então a chave primária de S pode ser simplesmente a chave estrangeira que referencia a relação E’ correspondente a E, pois, nesse caso, cada entidade e em E participará em, no máximo, uma instância de relacionamento de R e, portanto, pode identificar unicamente essa instância de relacionamento.

Passo 8 – Converta cada especialização com m subclasses {S1,S2,

...

,Sm}

e

superclasse C, onde os atributos de C são {k,a1,

,an}

e k é a chave primária, em

... esquemas de relação usando uma das quatro seguintes opções:

Opção 8.1 – Crie uma relação L para C com atributos Atrs(L) = {k,a1,

i

,an}

... m, com os

e PK(L) = k. Crie uma relação Li para cada subclasse Si, 1

atributos Atrs(Li) = {k}

{atributos de Si} e PK(Li) = k.

Opção 8.2 – Crie uma relação Li para cada subclasse Si, 1

atributos Atrs(Li) = {atributos de Si}

{k,a1,

...

,an}

e PK(Li) = k.

i

m, com

Opção 8.3 – Crie uma única relação L com atributos Atrs(L) = {k,a1,

,an}

... {atributos de Sm} {t} e PK(L) = k. Esta opção é

{atributos de S1}

... para especializações cujas subclasses são disjuntas, e t é um atributo que indica a subclasse à qual cada tupla pertence, se for o caso. Esta opção pode gerar um grande número de valores nulos.

Opção 8.4 – Crie uma única relação L com atributos Atrs(L) = {k,a1,

...

,an}

{atributos de S1}

{atributos de Sm}

{t1,t2,

,tm}

e PK(L) = k. Esta

... opção é para especializações cujas subclasses são sobrepostas, e cada ti, 1 i m, é um atributo booleano que indica se a tupla pertence à subclasse Si.

...

3.2.12) Exemplo

No exemplo acima, temos o seguinte Modelo Relacional: CONSTRUTORA( Numr_Const , Nome_Const); DEPARTAMENTO(Numr_Const, Codg_Depto , Nome_Dpto,

No exemplo acima, temos o seguinte Modelo Relacional:

CONSTRUTORA(Numr_Const, Nome_Const); DEPARTAMENTO(Numr_Const, Codg_Depto, Nome_Dpto, Qtdade_Func); PROJETO(Numr_Depto, Codg_Proj, Nome_Proj, Data_Inicio, Data_Fim);

28

MATERIAL(Codg_Mat, Nome_Mat); PROJETO_MATERIAL(Codg_Proj, Codg_Mat, Quantidade); FORNECEDOR(Codg_Forn, Nome_Forn, Logradouro, Cidade, UF); FORNECEDOR_MATERIAL(Codg_Forn, Codg_Mat, Quantidade, Data, Valor); FUNCIONARIO(Codg_Func, Nome, Data_Nascimento); LIDER(Codg_Func, Gratificação); FUNCIONARIOLIDER(Codg_Func, Codg_Projeto); FUNCIONARIOPARTICIPA(Codg_Func, Codg_Proj, Função, Data_Inicio, Data_Fim); HABILIDADE(Codg_Func, Descrição);

3.3) Dicionário de Dados

Este dicionário de dados tem como objetivo descrever as entidades e os relacionamentos identificados no DER/Modelo Relacional. A seguir, é apresentada uma notação utilizada na taxonomia dos atributos das entidades identificadas. Tal notação será utilizada em todo restante deste curso para descrever os atributos. Posteriormente, as entidades são apresentadas, juntamente com seus respectivos atributos e, em seguida, são listados os relacionamentos entre estas entidades.

Notação utilizada para taxonomia dos atributos.

Entidade <Nome da Entidade>: <Descrição da Entidade>

Nome

Descrição

 

Tipo

MV

CP DV

Observações

 

Nome:

Nome

do

atributo.

Obs.:

O

Atributo

identificador

deve ser

Sublinhado e em negrito. A Cardinalidade de Atributo [<Nome do atributo> (cardinalidade mínima, cardinalidade máxima)] também deve ser representada. Quando não for descrita, o valor assumido será (1,1), ou seja, o atributo é obrigatório e monovalorado.

Ex.: Telefone(0,2). A entidade que possuir este atributo possui no mínimo 0 e no máximo 2 telefones. Sendo que o telefone não é obrigatório.

Descrição: descrição do valor do atributo

Tipos dos atributos:

-T(n): Texto com n caracteres

  • - I(n): Número inteiro com n algarismos

  • - N(n,d): Número decimal com n algarismos no total, sendo d decimais

  • - S/N: Lógico (Sim, Não)

  • - D: Data

  • - M: Campo texto longo

MV: Atributo multivalorado? Seus valores devem ser colocados na coluna observação;

CP: Atributo composto? A composição do atributo deve ser colocada na coluna observação;

DV: Atributo derivado? A derivação do atributo deve ser colocada na coluna observação;

Observações: Toda e qualquer observação a respeito dos atributos.

Ex.: Criar um dicionário de dados a partir do modelo descritivo abaixo:

Uma firma vende produtos de limpeza. Cada produto é caracterizado por um código único, nome do produto, categoria (e.g. detergente, sabão em pó, sabonete, etc), e seu preço. A categoria é uma classificação criada pela própria firma. A firma possui informações sobre todos seus clientes. Cada cliente é identificado por um código único (também interno à firma), o nome do cliente, endereço (rua, numero, sala, cidade, CEP, UF), telefone, o status do cliente ("bom", "médio", "ruim"), e o seu limite de crédito. Guarda-se igualmente a informação dos pedidos feitos pelos clientes. Cada pedido possui um número, e guarda-se a data de elaboração do pedido. Cada pedido pode envolver de 1 a vários produtos, e para cada produto, indica-se a quantidade deste pedida e o valor total desta quantidade.

1º Passo – Criação do DER

2º Passo – mapeamento para o modelo relacional CLIENTE( Código , Nome, Classificação, Limite de Crédito,

2º Passo – mapeamento para o modelo relacional

CLIENTE(Código, Nome, Classificação, Limite de Crédito, Rua, Número, Sala, Cidade, UF, CEP, Telefone)

PRODUTO(Código, Nome, Tipo, Preço)

PEDIDOCLIENTE(CódigoCliente, Número, Data)

PEDIDOPRODUTO(CódigoCliente, NúmeroPedidoCliente, NumeroProduto,Quantidade, Valor_Total)

3º Passo – Criação do Dicionário de Dados

  • a) Descrição das entidades

Entidade CLIENTE: Representa todos os clientes da firma.

Nome

Descrição

Tipo

MV CP

DV

Observações

Código

Código do cliente para controle interno da firma.

I(4)

N

N

N

Quando um novo cliente é cadastrado na firma ele recebe uma

nova numeração.

Nome

Nome completo do

T(50)

N

N

N

cliente.

Classificação

Tipo do cliente

I(1)

N

N

N

0 – Bom, 1 – Médio, 2 – Ruim. Só pode receber os valores 0, 1

e 2.

Limite de Crédito

Limite de crédito do cliente.

N(8,2)

N

N

N

Calculado de acordo com a classificação:

Ruim <= R$ 500,00 Médio <= R$ 1000,00

Bom – Qualquer valor.

Endereço

Endereço completo

S

N

N

do Cliente

Rua

Rua em que o

T(50)

N

N

N

cliente reside

Número(0,1)

Número na rua em

I(5)

N

N

N

que o cliente reside

 

Sala (0,1)

I(5)

N

N

N

Cidade

Cidade em que o

T(50)

N

N

N

cliente reside

UF

UF em que o

T(2)

N

N

N

cliente reside

CEP(0,1)

CEP do endereço

T(10)

N

N

N

Formato 99.999-999

do cliente

 

Telefone(0,2)

Telefone(s) do

T(17)

N

N

N

Formato (0xxxx)

Cliente

9999-9999.

Entidade PRODUTO: Representa todos os produtos que a firma comercializa.

Nome

Descrição

Tipo

MV CP

DV

Observações

Código

Código do produto para controle interno da firma.

I(4)

N

N

N

Quando um novo produto é cadastrado na firma ele recebe

uma nova numeração.

Nome

Nome completo do

T(50)

N

N

N

produto.

Tipo

Tipo do produto

I(1)

N

N

N

0 – Sabão em pó, 1 – Detergente, 2 – Sabonete. Só pode receber os valores 0, 1

e 2.

Preço

Valor do produto

N(8,2)

N

N

N

O valor do produto é definido pela tabela de preços da firma no momento do seu

cadastro.

Entidade PEDIDOCLIENTE: Representa todos os pedidos efetuados pelo

cliente.

Nome

Descrição

Tipo

MV CP

DV

Observações

Número

Número do pedido para controle interno da firma.

I(4)

N

N

N

Quando um novo pedido é cadastrado na firma ele recebe uma

nova numeração.

Data

D

N

N

 

Data do Pedido

N

Formato dd/mm/yyyy

Entidade PEDIDOPRODUTO: Representa todos os produtos existentes em um

Nome

Descrição

Tipo

MV CP

DV

Observações

Quantidade

Quantidade do produto dentro do

I(5)

N

N

N

 

pedido.

Valor_Total

Valor do produto de acordo com a

N(8,2)

N

N

S

Quantidade * Valor do Produto.

quantidade

pedido.

  • b) Descrição dos relacionamentos

FAZ: Representa o fato de um cliente fazer 0 ou vários pedidos e um pedido ser feito por 1 e somente 1 cliente.

Nome Descrição Tipo MV CP DV Observações Número Número do pedido para controle interno da firma.

POSSUI: Representa o fato de um Pedido, que possui um cliente relacionado possuir 1 ou vários produtos e um produto fazer parte de 0 ou vários Pedidos.

Nome Descrição Tipo MV CP DV Observações Número Número do pedido para controle interno da firma.

4) Normalização

A teoria da normalização foi escrita por E.F. Codd em 1970 e consistia em 3 formas normais, ou 3 etapas de normalização onde, em cada etapa, uma relação passa a satisfazer um conjunto de restrições estabelecidas. Posteriormente, a teoria foi estendida pelo autor até a quinta forma normal.

Objetivos da normalização:

  • - Minimização de redundâncias e inconsistências;

  • - Facilidade de manipulação do banco de dados (alteração e recuperação dos dados);

  • - Facilidade de manutenção dos Sistemas de Informação.

Resultados esperados com a normalização

  • - Lista de relações necessárias e seus atributos;

  • - Relações estáveis capazes de suportar mudanças.

Exemplo de normalização

Para podermos aqui estudar a técnica de normalização, tomaremos como exemplo uma estrutura de dados correspondente a um pedido de compra de um cliente para um fornecedor. Temos então como estrutura do pedido:

PEDIDO

Nº DO PEDIDO:

DATA DO PEDIDO:

DATA DA ENTREGA:

 

CGC DO CLIENTE:

NOME DO CLIENTE:

ENDEREÇO DO CLIENTE

CÓD. DO

NOME DO

QUANTIDADE

PREÇO

PREÇO

ITEM

ITEM

UNITÁRIO

TOTAL

         

TOTAL DO PEDIDO:

4) Normalização A teoria da normalização foi escrita por E.F. Codd em 1970 e consistia em

Notação da relação pedido não normalizada:

PEDIDO(Numero, Data, Data_Entrega, CGC_Cliente, Nome_Cliente, Endereço_Cliente, Código_Item, Nome_Item, Quantidade, Preço_Unitário, Preço_Total, Total_Pedido).

Instâncias da relação pedido não normalizada:

PEDIDO 1 11/10 15/10 111 Cli 1 E1 1 Item 1 10 50,00 500,00 660,00 1
PEDIDO
1
11/10
15/10
111
Cli 1
E1
1
Item 1
10
50,00
500,00
660,00
1
11/10
15/10
111
Cli 1
E1
2
Item 2
5
10,00
50,00
660,00
1
11/10
15/10
111
Cli 1
E1
3
Item 3
6
5,00
30,00
660,00
1
11/10
15/10
111
Cli 1
E1
4
Item 4
8
10,00
80,00
660,00

4.1) 1ª FORMA NORMAL

Uma relação está na primeira forma normal se não contiver grupos de repetição.

Solução: devemos desmembrar a relação em uma ou mais relações sem grupos de repetição;

Passos:

  • 1 – Determinar a chave da relação original e a chave de cada grupo de repetição;

  • 2 – Retirar da relação original os grupos de repetição;

  • 3 – Criar nova relação com a chave da relação original e demais atributos do grupo de repetição;

    • 4 – Repetir o passo 3 para cada grupo de repetição.

Notação da relação pedido na primeira forma normal:

PEDIDO(Numero, Data, Data_Entrega, CGC_Cliente, Nome_Cliente, Endereço_Cliente, Total_Pedido).

ITENSDOPEDIDO(Numero do Pedido, Código_Item, Nome_Item, Quantidade, Preço_Unitário, Preço_Total).

Instâncias da relação pedido na primeira forma normal:

PEDIDO

  • 1 11/10

15/10

111

Cli 1

E1

660,00

ITENSDOPEDIDO

  • 1 50,00

1

Item 1

10

500,00

  • 1 10,00

2

Item 2

5

50,00

  • 1 5,00

3

Item 3

6

30,00

  • 1 10,00

4

Item 4

8

80,00

4.2) 2ª FORMA NORMAL

Uma relação está na segunda forma normal se estiver na primeira forma normal e se todos os atributos não chaves são dependentes de toda chave e não apenas parte da chave.

Solução: desmembrar a relação de modo que não haja atributo não chave dependente de apenas parte da chave;

Passos:

  • 1 – Retirar da relação original o atributo que dependa de parte da chave;

  • 2 – Criar nova relação com a chave da relação original da qual o(s) atributo(s) depende(m) e o(s) atributo(s) que depende(m) dessa chave.

Notação da relação pedido na segunda forma normal:

PEDIDO(Numero, Data, Data_Entrega, CGC_Cliente, Nome_Cliente, Endereço_Cliente, Total_Pedido).

ITENSDOPEDIDO(Numero do Pedido, Código_Item, Quantidade, Preço_Total).

ITEM(Código_Item, Nome_Item, Preço_Unitário).

Instâncias da relação pedido na primeira forma normal:

PEDIDO

  • 1 11/10

 

15/10

111

Cli 1

E1

660,00

 

ITENSDOPEDIDO

 
  • 1 500,00

1

10

  • 1 50,00

2

5

  • 1 30,00

3

6

  • 1 80,00

4

8

 

ITEM

  • 1 50,00

Item 1

 
  • 2 10,00

Item 2

  • 3 5,00

Item 3

  • 4 10,00

Item 4

4.3) 3ª FORMA NORMAL

Uma relação está na terceira forma normal se estiver na segunda forma normal e se todos os atributos não chave forem independentes entre si.

Solução: desmembrar a relação de modo que os atributos não chave sejam dependentes exclusivamente da chave.

Passos:

  • 1 – Retirar da relação original os atributos que dependam de outro atributo não

chave;

  • 2 – Criar uma nova relação para cada atributo que possui outro(s) atributo(s) dependente(s) dele.

Notação da relação pedido na terceira forma normal:

PEDIDO(Numero, Data, Data_Entrega, CGC_Cliente, Total_Pedido).

CLIENTE (CGC_Cliente, Nome_Cliente, Endereço_Cliente).

ITENSDOPEDIDO(Numero do Pedido, Código_Item, Quantidade, Preço_Total).

ITEM(Código_Item, Nome_Item, Preço_Unitário).

Instâncias da relação pedido na primeira forma normal:

 

PEDIDO

 

1

11/10

15/10

111

660,00

CLIENTE

 

111

Cli 1

E1

 

ITENSDOPEDIDO

 
  • 1 1

10

500,00

  • 1 2

5

50,00

  • 1 3

6

30,00

  • 1 4

8

80,00

 

ITEM

 
  • 1 Item 1

 

50,00

 
  • 2 Item 2

 

10,00

  • 3 Item 3

 

5,00

  • 4 Item 4

 

10,00

 

5) Referências Bibliográficas

[CHATZ1999]

Sistema de Banco de Dados. A. Silberchatz, H. Korth, S. Sudarshan. Makron Books, 3ª edição, 1999.

[HEUSER2001]

Projeto de Banco de Dados. C. A. Heuser. Editora Sagra Luzzato, 3ª edição, 1999.

[ALVES2003]

Apostila de Banco de Dados 1. A. L. Alvez. UCG, 2003.

[OLIVEIRA2001]

Introdução a Banco de Dados – Notas de Aula. J. L. Oliveira. UFG, 2002.