• Nenhum resultado encontrado

apr-SIMD-04

N/A
N/A
Protected

Academic year: 2021

Share "apr-SIMD-04"

Copied!
75
0
0

Texto

(1)

Sistemas de Informação e

Modelagem de Dados

(2)

Cristiano Biancardi 2

Banco de Dados

Projeto Lógico

Um aspecto fundamental dos modelos

lógicos consiste em estabelecer de que

forma serão armazenados os dados do

sistema.

Deve ser feito levando em consideração a

abordagem que será utilizada: Relacional,

OO, Hierárquica, Redes.

Modelagem conceitual de dados (MER) deve

ser adequado a abordagem considerada.

A representação é independente dos

dispositivos ou meios de armazenamento

físico das estruturas de dados por ela

(3)

Banco de Dados

Banco de Dados Relacionais

Atualmente, a plataforma de

implementação para

armazenamento de dados mais

difundida.

Iremos usar o Modelo relacional.

(4)
(5)

Banco de Dados

Modelo Relacional : Definições

Relação:

– Tabela bidimensional organizada

em linhas e colunas.

– Representa uma entidade do

(6)

Banco de Dados

– Grau da Relação: Número de colunas da tabela. Ex: 6

– Linha (Tupla): Representa uma instância da entidade.

• Ex: Funcionário 0789 do conjunto de Funcionários.

– Colunas: Representam os vários atributos do conjunto de entidades ou classe.

• Ex: Matrícula, Nome, CPF, Endereço, Dt-Nasc, Dt-Adm.

– Célula: Item de dado elementar da linha i, coluna j.

(7)

Banco de Dados

Chaves Candidatas: Ocorrem quando em uma relação existe mais de uma combinação de atributos possuindo a propriedade de

identificação única. Ex: Matrícula, CPF

Chave Primária: Atributo ou combinação de atributos que possuem a propriedade de

identificar de forma única uma linha da tabela. Corresponde a um atributo determinante do Modelo Conceitual

.

– Ex: Matrícula

Chave Estrangeira: Ocorre quando um atributo de uma relação for chave primária em outra

(8)

Banco de Dados

Modelo Relacional : Definições

Ligações:

– Representam os relacionamentos do Modelo

E/R.

– A ligação entre duas entidades é feita, em

geral, transportando-se a chave de uma

entidade para outra (item transposto).

• Exemplo:

– a chave da tabela Departamentos foi transposta para a tabela Funcionários.

– “Departamentos” é denominada relação origem e “Funcionários” relação destino.

– no caso de relacionamentos muitos-para-muitos, é necessário criar uma nova tabela, dita Tabela Associativa, que deverá ter as chaves das duas tabelas relacionadas.

(9)

Banco de Dados

(10)

Banco de Dados

Nenhum campo componente de uma chave primária pode ser nulo;

Cada célula de uma relação pode ser vazia (exceto de uma chave primária), ou ao contrário, conter no máximo um único valor;

A ordem das linhas é irrelevante;

Não há duas linhas iguais;

Cada coluna tem um nome e colunas distintas devem ter nomes distintos;

Usando-se os nomes para se fazer referência às colunas, a ordem destas torna-se irrelevante;

(11)

Banco de Dados

Cada tabela recebe um nome próprio distinto do nome de qualquer outra tabela da base de dados;

Os valores de uma coluna são retirados todos de um mesmo conjunto, denominado domínio da

coluna;

Duas ou mais colunas distintas podem ser definidas sobre um mesmo domínio;

Um campo que seja uma chave estrangeira ou um item transposto só pode assumir valor nulo ou um valor para o qual exista um registro na tabela

onde ela é chave primária.

(12)

Banco de Dados

Diagrama Relacional

Um Diagrama Relacional é a

representação gráfica das ligações entre

tabelas de um modelo relacional.

(13)

Banco de Dados

No exemplo:

– a coluna Matrícula foi transposta para a

relação Departamentos.

– O contrário também poderia ser feito, isto é,

transpor Código para Funcionários.

• Escolhemos esta solução porque há poucos

funcionários que são gerentes, enquanto todos os departamentos têm gerentes.

• Assim, a coluna Matrícula Chefe não terá valores vazios e dizemos que ela é mais densa do que a coluna resultante da transposição de Código.

(14)

Banco de Dados

Elementos do DER

Nesta apresentação são considerados:

– As tabelas são representadas por retângulos, com uma

referência à chave primária da tabela em cima.

– No caso das chaves transpostas (estrangeiras), serão

representadas em cima do retângulo da relação destino, com um subscrito “t”.

– Atributos não são representados nos diagramas, mas sim em dicionário de dados.

(15)

Banco de Dados

Diagrama Relacional

– As ligações, que derivam dos relacionamentos, são

representadas por linhas contínuas, associadas aos símbolos abaixo:

(16)

Banco de Dados

Se B for total em R (todo B está associado a um A), é melhor colocar a chave de (#A) em B. Caso contrário, é melhor colocar a chave de B(#B) em A.

(17)

Banco de Dados

Todo departamento tem um empregado gerente, mas nem todo empregado gerencia um departamento.

(18)

Banco de Dados

Transpor a chave do conjunto de entidades de cardinalidade máxima 1 para a tabela que representa o conjunto de entidades cuja cardinalidade máxima é N.

(19)

Banco de Dados

Um Departamento pode estar associado a vários Funcionários, mas um Funcionário só pode estar associado a um Departamento, logo transpor a chave primária

Departamentos para Funcionários.

(20)

Banco de Dados

Cria-se uma terceira tabela que tenha a chave das duas entidades que participam do relacionamento N:N (agregado). Se existirem atributos do relacionamento, estes deverão ser colocados na nova tabela. Cada tabela se associa com a tabela gerada da seguinte forma: 1 - N

(21)

Banco de Dados

Regras de Tradução do Modelo E/R para o Relacional

Um aluno pode cursar várias disciplinas e uma disciplina pode ser cursada por vários alunos. É preciso saber o período em que a disciplina foi cursada pelo aluno.

(22)

Banco de Dados

Criar uma chave #A' a ser colocada na própria tabela que representa A.

(23)

Banco de Dados

Regras de Tradução do Modelo E/R para o Relacional

Um empregado é gerenciado por outro empregado e um empregado é gerente de vários outros empregados.

(24)

Banco de Dados

Assim como feito para qualquer relacionamento N:N, devemos criar uma tabela de ligação com as chaves #A e #A't, transformando a ligação N:N em duas ligações 1:N.

(25)

Banco de Dados

(26)

Banco de Dados

Cria-se uma tabela para o supertipo e tantas tabelas quantos forem os subtipos, todos com a mesma chave.

(27)

Banco de Dados

(28)

Banco de Dados

Regras de Tradução do Modelo E/R para o Relacional

1. Criar tantas colunas quantas necessárias para representar o atributo. Esta solução, contudo, pode, em muitos casos, não ser eficiente segundo uma perspectiva de

armazenamento de dados.

(29)

Banco de Dados

Normalização

Finalizado o MER, passa-se para o processo de

normalização.

Processo baseia-se no conceito de forma normal.

Forma normal: regra que deve ser obedecida por

uma tabela para que esta seja considerada bem

projetada.

Objetivos:

– Reagrupar informações para eliminar redundâncias

de dados

– Reagrupar informações para eliminar estruturas

inexistentes no modelo ER (atributos multivalorados)

Existem diversas formas normais.

(30)

Banco de Dados

Exemplo de Tabela Aninhada: linha

de Projeto

(31)

Banco de Dados

(32)

Banco de Dados

– Alternativas:

• Construir uma única tabela com

redundância de dados

• Construir uma tabela para cada

(33)

Banco de Dados

– uma única tabela

• Uma tabela na qual os dados das linhas

externas à tabela aninhada são

repetidos para cada linha da tabela

aninhada

• Exemplo

– ProjEmp (CodProj, Tipo, Descr, CodEmp,

Nome, Cat, Sal, DataIni, TempAl)

– Dados do projeto aparecem repetidos para

(34)

Banco de Dados

– uma tabela para cada tabela

aninhada

• Cria-se uma tabela referente a

própria tabela que está sendo

normalizada e uma tabela para cada

tabela aninhada

• Exemplo:

– Proj (CodProj, Tipo, Descr)

– ProjEmp (CodProj,CodEmp, Nome, Cat,

(35)

Banco de Dados

– Para fins práticos

• preferimos a segunda alternativa

(decomposição de tabelas)

– Quando houver diversas tabelas

aninhadas, eventualmente com

diversos níveis de aninhamento,

fica difícil visualizar a tabela na

(36)

Banco de Dados

Segunda alternativa:

– Passo 1:

• Criar uma tabela na 1FN referente a

tabela não normalizada

• A chave primária da tabela na 1FN é

(37)
(38)

Banco de Dados

– Passo 2:

• Para cada tabela aninhada

– criar uma tabela na 1FN composta pelas

seguintes colunas:

» a chave primária de cada uma das

tabelas na qual a tabela em questão está aninhada

(39)
(40)

Banco de Dados

– Passo 3:

• Definir as chaves primárias das

tabelas na 1FN que correspondem a

tabelas aninhadas.

(41)
(42)
(43)
(44)
(45)
(46)

Banco de Dados

– Outro exemplo:

• Dados referentes a alunos de uma universidade.

• Cada registro contém informações referentes a um aluno. • O registro do aluno contém seu código, seu nome, uma

lista de ingressos m cursos e ma lista de disciplinas

cursadas. A lista de ingressos em curso contém o código do curso em que o aluno ingressou junto com o semestre de ingresso no curso. A lista de disciplinas cursadas

contém um entrada para cada disciplina que o aluno cursou. Para cada disciplina cursada é informado seu código, junto com os diversos semestres em que o aluno cursou a disciplina. Para cada semestre é informado o semestre e a nota qu o aluno obteve na disciplina no semestre em questão.

(47)
(48)

Banco de Dados

Dependência funcional

– Para entender 2FN e 3FN

• é necessário compreender o conceito de

dependência funcional.

– Em uma tabela relacional, diz-se que –

uma coluna C2 depende funcionalmente

de uma coluna C1 (ou que a coluna C1

determina a coluna C2) quando,

• em todas linhas da tabela, para cada valor

de C1 que aparece na tabela, aparece o mesmo valor de C2.

(49)

Banco de Dados

– Cada valor de código está associado

sempre ao mesmo valor de salário:

(50)
(51)

Banco de Dados

Passagem à 2FN

– Objetiva eliminar um certo tipo de

redundância de dados

– Exemplo:

• (CodProj, CodEmp, Nome, Cat, Sal, DataIni,

TempAl)

– Dados referentes a empregados

(Nome, Cat e Sal)

• Redundantes, para os empregados que

(52)
(53)
(54)

Banco de Dados

– Dependência parcial

(55)

Banco de Dados

– Tabela 1FN e que possui apenas uma

coluna como chave primária

• não contém dependências parciais

• É impossível uma coluna depender de uma

parte da chave primária, quando a chave primária não é composta por partes

– Conclusão

• Toda tabela 1FN que possui apenas uma

coluna como chave primária já está na 2FN

(56)
(57)

Banco de Dados

– Também

• Tabela que contenha apenas colunas

chave primária

• Impossível atributo não chave

depender de parte da chave (tabela

não tem colunas não chave)

• Tabela sem colunas não chave já está

(58)
(59)
(60)

Banco de Dados

(61)

Banco de Dados

Passagem à 3FN

– Trata de um outro tipo de redundância

– Exemplo

– Considerar

• salário (coluna Sal) é determinado pela

categoria funcional (coluna Cat)

• Salário que é pago a uma categoria funcional

é armazenado tantas vezes quantos

empregados possui a categoria funcional

(62)
(63)

Banco de Dados

(64)

Banco de Dados

(65)

Banco de Dados

(66)

Banco de Dados

Exercício:

ATRIBUTO CONTEÚDO

Cd-ordem-compra Código chave da ordem de compra

Dt-emissão Data de emissão da ordem de compra

Cd-fornecedor Código do fornecedor

Nm-fornecedor Nome do fornecedor

En-fornecedor Endereco do fornecedor

Cd-material Código do material ( n vezes)

Ds-material Descrição do material ( n vezes)

Qt-comprada Quantidade comprada ( n vezes)

Vl-unitário Valor unitário do material ( n vezes)

Vl-total-item Valor total do item ( n vezes)

Vl-total-ordem Valor total da ordem de compra

(67)

Banco de Dados

cd-ordem

-compradt-emissaocd-fornece-dor nm-forne-cedor end-forne-cedor vl-total

cd-ordem-compracd-materialds-materialqt-comptadavl-unitariovl-total-item Ordem de compra ordem de compra - item 1 N ordem-compra ordem-compra-item Possui

Exemplo (1FN)

(68)

Banco de Dados

ordem de compra - item

cd-ordem-compracd-mate-rial qt-comptadavl-total-item

material rialcd-mate-ds-materialvl-unitario

1 N

ordem-compra ordem-compra- item

material 1 N Possui Contém

Exemplo (2FN)

(69)

Banco de Dados

ordem de compra –

item

cd-ordem-compracd-mate-rial qt-comptadavl-total-item

Material

cd-mate-rial ds-materialvl-unitario cd-ordem

-compradt-emissaocd-fornece-dor vl-total

Ordem de compra

Fornecedor

cd-forne-cedor nm-forne-cedor end-forne-cedor

Exemplo (3FN)

(70)

Banco de Dados

1 N

ordem-compra ordem-compra-item

material 1 N fornecedor 1 N Recebe Possui Contém

Formas Normais

(71)

Banco de Dados

(72)
(73)
(74)
(75)

Referências

Documentos relacionados

15.6 - Os pedidos de esclarecimentos referentes a este processo licitatório deverão ser enviados ao pregoeiro, até três dias úteis anteriores à data fixada para abertura da

A: convidou pro aniversário, a gente foi no aniversário dele, e agora quinze dias atrás eu fui no aniversário da minha filha, e a minha filha foi em outro aniversário porque ela fez

Este trabalho prop˜oe o PVFS-Store, um sistema de armazenamento distribu´ıdo baseado no modelo chave-valor, cujo objetivo ´e permitir o controle da localidade dos dados

Diferentemente do prazo fixado para pagamento dos precató- rios, as RPVs são depositadas pelos Tribunais Regionais Federais nos bancos ofi- ciais, mensalmente, obedecido o prazo de

Se por alguma razão você não puder comparecer ao médico para fazer uso da medicação na data marcada, o ERANFUL ® pode ser administrado 3 dias antes ou 3 dias depois desta data.

(UNICAMP – 2011) O sangue humano costuma se classificado em diversos grupos, sendo os sistemas ABO e Rh os métodos comuns de classificação. A primeira tabela

A comunicação desenvolve o tema de aplicação do conceito gestão do risco precisamente ao risco de gestão dos recursos hídricos, focando os processos de decisão e de

É muito usado nos arquivos de configuração para adicionar informações que não serão executadas, como por exemplo o nome do autor do arquivo, in- formações de como proceder