Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Expresso do Relacionamento
Necessidade de incluir campos nas tabelas para que os relacionamentos sejam efetivados. Campo de identificao nica em uma entidade: Chave Primria; Primria; Uma entidade que contem a Chave Primria de Outra Entidade ter, neste campo, uma Chave Estrangeira. A ligao a comparao dos valores da Chave Primria com os da Chave Estrangeira em ambas as tabelas.
Expresso do Relacionamento
Se temos uma consulta marcada para o dia 13/07/2007 as 15:00 e a Dra. Joana, Pediatra eles s estaro relacionados se, e somente se:
O campo CRM na tabela consulta na ocorrncia 13/07/2007, 15:00 for igual ao valor do campo CRM na tabela Mdico na ocorrncia Joana, Pediatra. CRM da Consulta = CRM do Mdico
Relacionamento Lgico:
Consulta Cod 07 12 21 35 47 CRM 0345-6 0234-5 0345-6 0234-5 0789-0 DtCons 05/07/07 08/07/07 13/07/07 19/07/07 21/07/07 HrCons 08:00 09:00 15:00 11:00 13:00 CRM 0123-4 0234-5 0345-6 Quais os Mdicos que tm consulta marcada no perodo da manh? 0456-7 0789-0 Medico Mdico Joana Mrio Joana Josefa Ana Especialidade Cardiologista Clnico Pediatra Cardiologista Ortopedista
4
Evitando confuses
Em uma escola cada aluno registrado por nmero, nmero, nome e endereo pode cursar uma e somente uma disciplina; disciplina; As disciplinas podem ser cursadas por um ou mais alunos. alunos. As disciplinas so registradas por cdigo e nome da disciplina. Uma vez matriculado um aluno em uma disciplina registra-se a data e a hora do curso do aluno. registra5
Evitando confuses
Interpretando o diagrama:
Um aluno cursa uma disciplina enquanto uma disciplina cursada por muitos alunos.
A data e hora do curso so atributos que pertencem ao Curso, mas onde aloc-lo? alocSo campos da tabela Aluno pois possuem uma nica existncia para cada ocorrncia de aluno.
1 Cursa 1 1
Aluno
N N
Disciplina
6
Modelo Conceitual
Entidade Aluno Atributos Numero Nome Endereco DataCurso HoraCurso CodDisciplina Disciplina Relacionamentos com Disciplina 1:1 Parcial
Disciplina
Disciplina
Disciplina
Disciplina
Valor Nulo
Nulo no zero Exemplo:
CodDisciplina, DataCurso e HoraCurso CodDisciplina,
Evitando confuses
Interpretando o diagrama:
Um aluno cursa uma ou mais disciplinas enquanto uma disciplina cursada por um ou mais alunos.
A data e hora do curso so informaes que pertencem ao Curso, mas onde alocar esses So campos do atributos?
1 N Cursa N 1
relacionamento Curso pois possuiria vrias existncias nas tabelas aluno e disciplina. (Redundncia)
Aluno
N N
Disciplina
14
Modelo Conceitual
Entidade Aluno Atributos Numero Nome Endereco Relacionamentos com Disciplina 1:N Parcial com Aluno 1:N Parcial ATRIBUTOS
Curso
DtCurso HrCurso
15
Curso
DtCurso HrCurso
16
Disciplina *#CodDisciplina com Aluno 1:N #Disciplina Parcial RELACIONAMENTO ATRIBUTOS *CodCurso Curso DtCurso HrCurso
17
Disciplina *#CodDisciplina com Aluno 1:N #Disciplina Parcial RELACIONAMENTO ATRIBUTOS *CodCurso Numero CodDisciplina DtCurso HrCurso
Curso
18
4 Otimizar o modelo
Entidade Aluno Atributos *#Numero Nome Endereco Relacionamentos com Disciplina 1:N Parcial
Disciplina *#CodDisciplina com Aluno 1:N #Disciplina Parcial RELACIONAMENTO ATRIBUTOS *CodCurso *Numero *CodDisciplina DtCurso HrCurso
Curso
20
Definio
Objetivo:
Melhorar a organizao, a recuperao, a alterao e a atualizao dos dados armazenados.
Mat Nome 001 Joo 019 Marisa 021 Pedro 039 Joana 045 Mrio
Tel1
Tel2
Depto
Projeto
DtAl
PrazoAl 30 90 60 60 30
24
1234-5678 7890-1234 Produo Reciclagem 21/05/08 123478901234-5678 8901-2345 Vendas 12348901Reciclagem 17/05/08 Intranet Intranet 22/06/08 21/05/08 3645-6789 7788-9901 Produo Reciclagem 21/06/08 364577885678-9012 7997-8890 Produo Reciclagem 18/05/08 567879975678-9012 8998-9989 Vendas 56788998-
90
Produo Reciclagem 21/05/08 Reciclagem 17/05/08 Intranet Intranet 22/06/08 21/05/08 Produo Reciclagem 21/06/08 Produo Reciclagem 18/05/08 Vendas
Pedrina Vendas
*Mat Nome CodDep 001 019 021 032 039 045 Joo Marisa Pedro Pedrina Joana Mrio 03 02 03 02 03 02
PrazoAl 30 90 60 60 30 90
1 1 N N N N 1 N 1 1
1
lota
1 1 1 1 1 N N N N 1
N 1
Telefone
tem
Funcionario
aloca
Projeto
Vendedor
Para existir uma Data de Alocao de um funcionrio precisa apenas Alocao existir um funcionrio cadastrado? *Mat Nome CodDep DtAl PrazoAl 001 019 021 032 039 045 Joo Marisa Pedro Pedrina Joana Mrio 03 02 03 02 03 02 21/05/08 17/05/08 21/06/08 22/06/08 18/05/08 21/05/08 30 90 60 60 30 90
29
A Data de Alocao depende de um funcionrio a ser alocado, mas depende tambm de um Projeto onde o funcionrio possa ser alocado.
A Data da Alocao depende da chave primria do funcionrio e da chave primria do projeto
30
10
Banco de Dados
Exerccio Modelo de Negcio: Comrcio
11
Exemplo: Comrcio
Os produtos so registrados pela descrio, valor unitrio e quantidade de cada produto, pelo setor onde o produto est contido e a data de fabricao dos produtos perecveis; Os cliente so cadastrados pelo nome, endereo1, nome, endereo1, endereo2 e CPF de cada cliente, pela quantidade e total da venda de cada produto a cada cliente
Cada cliente pode comprar um ou mais produtos, produtos, enquanto cada produto pode ser vendido para um ou mais clientes. clientes.
34
Modelo Conceitual
Entidade Atributos Relacionamentos Descricao Quantidade com Cliente 1:N ValorUnitario Parcial Setor DtFabricacao Nome Endereco1 Endereco2 CPF QtdVenda TotalVenda
Produto
Cliente
Cliente
Venda
Produto
35
Cliente
36
12
Produto
Cliente
37
Produto
Cliente
38
Anomalias de Atualizao:
De Incluso
Cada cliente novo deve se relacionar a uma quantidade de produtos vendidos Cada produto, mesmo que no seja perecvel, exige o produto, preenchimento do campo Data de Fabricao A cada produto cadastrado em um setor j existente obriga o recadastramento do setor
De Alterao
Os clientes no podem ter mais de trs endereos e no clientes endereos podem ser pesquisados por qualquer dado do endereo. endereo. A atualizao do endereo de um cliente ou do nome de um setor ser muito difcil
De Excluso
Cada venda excluda exclui tambm o registro do cliente e 39 vice-versa vice-
13
1FN
Todas as entidades e atributos com relacionamentos devem ter ao menos uma chave primria Cada dado um campo, cada campo um dado No devem haver atributos multivalorados
Entidade Atributos *CodProduto CodSetor #Descricao Quantidade ValorUnitario *CodSetor #Setor *CodProduto DtFabricacao Relacionamentos com Cliente 1:N Parcial com Perecivel 1:1 Parcial com Setor 1:1 Parcial com Produto 1:N Total com Produto 1:1 Total
40
Produto
Setor Perecivel
1FN ...continuao
Entidade Atributo *CodCliente Nome #CPF QtdVenda TotalVenda Relacionamento com Produto 1:N Parcial com Endereco 1:N Total
Cliente
RELACIONAMENTO Venda
*CodEndereco Tipo com Cliente 1:N Logradouro Endereco Bairro Parcial Cidade CEP
EnderecoCliente
41
2FN
Todas as tabelas devem estar na primeira forma normal No devem haver atributos que dependam parcialmente da chave primria (depedncia funcional parcial)
Entidade Atributos *CodProduto CodSetor #Descricao Quantidade ValorUnitario *CodSetor #Setor *CodProduto DtFabricacao Relacionamentos com Cliente 1:N Parcial com Perecivel 1:1 Parcial com Setor 1:1 Parcial com Produto 1:N Total com Produto 1:1 Total
42
Produto
Setor Perecivel
14
2FN ...continuao
Entidade Atributo *CodCliente Nome CPF QtdVenda TotalVenda Relacionamento com Produto 1:N Parcial com Endereco 1:N Total RELACIONAMENTO ATRIBUTOS *CodVenda CodProduto CodCliente QtdVenda TotalVenda *CodCliente *CodEndereco
Cliente
Venda
*CodEndereco Tipo Logradouro com Cliente 1:N Endereco Bairro Parcial Cidade CEP
EnderecoCliente
43
3FN
Todas as tabelas devem estar na segunda forma normal No devem haver atributos que dependam de campos no chave (depedncia funcional transitiva)
Entidade Atributos *CodProduto CodSetor #Descricao Quantidade ValorUnitario *CodSetor #Setor *CodProduto DtFabricacao Relacionamentos com Cliente 1:N Parcial com Perecivel 1:1 Parcial com Setor 1:1 Parcial com Produto 1:N Total com Produto 1:1 Total
44
Produto
Setor Perecivel
3FN ...continuao
Entidade Atributo *CodCliente Nome #CPF QtdVenda TotalVenda Relacionamento com Produto 1:N Parcial com Endereco 1:N Total RELACIONAMENTO ATRIBUTOS *CodVenda CodProduto CodCliente QtdVenda TotalVenda *CodCliente *CodEndereco
Cliente
Venda
*CodEndereco Tipo Logradouro com Cliente 1:N Endereco Bairro Parcial Cidade CEP
EnderecoCliente
45
15
Modelo EntidadeEntidadeRelacionamento
Endereco Setor
1 N
N
tem
N 1 1 N N N N 1
1 N 1 1
1
lota
1 1 1 1
N
Cliente
N
Produto
Vende
1
e
1
Perecivel
46
16