Escolar Documentos
Profissional Documentos
Cultura Documentos
• Base de dados:
– registar, actualizar, manter e disponibilizar informação releva nte
Sistema Monotabela
Campos
registo
Sistema Monotabela
• Redundância:
– repetição desnecessária de dados.
• Solução: utilizar mais do que uma tabela.
– uma tabela para registar informação do cliente;
– uma tabela para registar informação sobre produtos;
– uma tabela para registar as encomendas.
• Tabela que relaciona clientes com produtos através de dois campos
CLIENTES PRODUTOS
Código_Cliente Nome Endereço Telefone Código_Produto Produto Modelo Preço
11 Silva Lisboa 665544 101 Martelo M1 250
12 Santo Porto 554433 11 Alicate A1 400
13 Costa Coimbra 332211 121 Tesoura T1 500
14 Castro Faro 443322 131 Serra S1 1500
ENCOMENDAS
Código_Cliente Código_Produto Data_Enc Quantidade
11 111 4/3/96 1
12 101 4/3/96 1
13 131 4/3/96 1
14 121 4/3/96 1
11 101 4/3/96 1
11 121 4/3/96 1
13 111 4/3/96 1
13 131 4/3/96 1
14 111 4/3/96 1
11 131 4/3/96 1
• Modelo Entidade-Relacionamento
– procura criar uma simulação da realidade;
– um conjunto de entidades interagindo umas com outras através de um conjunto
de associações.
• Entidades
– conjunto de elementos do mesmo tipo;
– representadas por rectângulos contendo, no seu interior o nome de entidades;
– caracterizada por um conjunto de atributos.
• Relações
– são representadas por linhas;
– ligar as entidades.
Alunos Disciplinas
• Características do modelo:
– para além das entidades e das associações, há outros factores a ter em conta:
• tipo de relação;
• multiplicidade;
• obrigatoriedade.
• Tipos relação:
– está relacionada com o número de entidades que participam na relação.
Existem três tipos:
• unários: só participa uma entidade;
• binário: participam duas entidades;
• Multiplicidade:
– está relacionada com o número de elementos da entidade que participa na
associação. Temos três tipos:
• 1;
• 1..n;
• n;
• Obrigatoriedade
– se entidade é ou não obrigada a participar no relacionamento;
• Tipos de atributos:
– atómicos:
• não é possível a sua decomposição em unidades mais elementares;
• Exemplo: idade de uma pessoa;
– não atómicos:
• contrário dos atómicos;
• Exemplo: nome de uma pessoa;
• Recomendações
– construir entidades sempre com atributos atómicos;
– entidade deve possuir sempre um atributo a identifique sem ambiguidades
(atributos identificadores)
• Modelo Relacional:
– é o modelo mais utilizado;
– tabelas são os elementos fundamentais deste tipo de modelos;
– cada tabela é constituída por um ou mais campos;
– Regras:
• não pode haver duas colunas com o mesmo nome;
• não deve haver campos vazios;
• domínio de cada atributo deve ser constituído por valores atómicos;
• não deve haver registos duplicados.
• Chave externa
– chave de uma tabela que é incluída noutra.
Chaves externas
Chaves primárias
• 1ª Forma Normal
– só pode haver campos atómicos;
– não pode haver repetição de registos;
• 2ª Forma Normal
– tem de estar na 2ª Forma Normal;
– cada atributo não chave tem de depender da chave da tabela na totalidade, e não
apenas de uma parte dessa chave:
• chave simples: está na 2ª Forma Normal;
• chave composta: existe um atributo que depende apenas de parte de uma chave, então
não está na 2ª Forma Normal.
• 3ª Forma Normal:
– tem de estar na 2ª Forma Normal;
– nenhum atributo não chave pode depender de um atributo que não seja a chave.
SOLUÇÃO
• Em primeiro lugar devemos proceder à construção de um modelo DER
que espelhe a solução para o nosso problema.
– Podemos começar por recolher informação do texto. Devemos começar por
escolher os candidatos a entidades.
• 2ª Forma Normal:
– estar na primeira forma normal; verificar se todos os campos da tabela são
funcionalmente dependentes da chave primária.
• 3ª Forma Normal:
– verificar se todos os atributos não chave dependem apenas da chave da tabela;
– No nosso caso:
• todos os campos da tabela SÓCIO dependem do seu campo de ID;
• todos os campos da tabela SÒCIOSCASSETES dependem do seu campo ID;
• todos os campos da tabela CASSETES dependem do seu campo ID;
• todos os campos da tabela FILMES dependem do seu campo ID;