Buscar

Apostila de Modelagem de Dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

BANCO DE DADOS - UNIVERSIDADE ESTÁCIO DE SÁ - PROF. PAULO BORGES
CURSO DE GRADUAÇÃO TECNOLÓGICA – ANÁLISE E DESENVOLVIMENTO DE SISTEMA
HISTÓRICO DA ANÁLISE DE SISTEMAS
No início dos anos 70 começaram a surgir Metodologias (Técnicas Estruturadas) para tentar disciplinar o processo de Programação e Análise dos Sistemas. Antes disso existiam poucas regras. Basicamente as regras eram restritas à linguagem de programação que se utilizava. Os programadores e analistas utilizavam métodos próprios que dificultavam o entendimento do serviço por pessoas que não estavam diretamente envolvidas no projeto e isso fazia com que os projetos demorassem mais tempo, fossem mais caros e tivessem um custo de manutenção mais elevado.
OBJETIVOS PRIMÁRIOS DAS METODOLOGIAS
Realizar programas de alta qualidade com comportamento previsível
Realizar programas que possam ser facilmente modificáveis
Simplificar programas e o processo de desenvolvimento de programas
Realizar maior planejamento e controle do processo de desenvolvimento
Acelerar o desenvolvimento de sistemas
Diminuir o custo de desenvolvimento de sistemas	
EVOLUÇÃO DAS METODOLOGIAS
Programação Estruturada (início dos anos 70)
Projeto Estruturado (meados dos anos 70)
Análise Estruturada (final dos anos 70)
Modelagem de Dados (anos 80)
Análise Essencial / Análise Orientada à Objetos (anos 90)	
METODOLOGIAS
Atualmente as metodologias existentes para o desenvolvimento de sistemas são utilizadas para orientar e ordenar o trabalho do Analista de Sistemas ao longo do processo de desenvolvimento. Uma boa metodologia deve definir o processo de desenvolvimento, possui modelos para representar abstrações (diagramas) e possuir diretivas para orientação do trabalho.
CICLO DE DESENVOLVIMENTO (CICLO DE VIDA)
Compreende todas as atividades necessárias para definir, desenvolver, testar operar e manter um sistema. Os objetivos principais são:
Definir as atividades a serem executadas;
Prover pontos de controle;
Padronizar o processo de desenvolvimento.
FASES PRINCIPAIS DO CICLO DE VIDA
LEVANTAMENTO
ANÁLISE
PROJETO
IMPLEMENTAÇÃO (CODIFICAÇÃO)
TESTE
IMPLANTAÇÃO
MANUTENÇÃO	
LEVANTAMENTO (ANÁLISE DE REQUISITOS)
Planejamento
Descrição do sistema atual
Construção do modelo do sistema atual (Modelo Gráfico)
Identificação dos problemas do sistema atual
Identificação das necessidades não atendidas pelo sistema atual
Definição dos requisitos para um novo sistema
Formulação de alternativas de solução
Redação do plano do projeto (custo e prazo da solução, responsabilidades, requisitos de qualidade, cronograma)
ANÁLISE
Atividade para qual o analista deve dedicar a maior parte do seu tempo e esforço
Consiste em definir e modelar o que o sistema irá fazer, independente da tecnologia que será utilizada na implementação
É feita uma reavaliação do plano de projeto, principalmente dos custos e benefícios quantificados na fase anterior
PROJETO
Definir a melhor alternativa para implementar, em um dado ambiente computacional, todas as características do sistema definidas na Análise
Os critérios utilizados na escolha das alternativas são: performance, facilidade de uso, facilidade de alteração, segurança (contra acesso indevidos e perdas acidentais de dados) e confiabilidade
IMPLEMENTAÇÃO (CODIFICAÇÃO)
Consiste na codificação dos programas e criação dos arquivos de dados
TESTE
Consiste na definição de casos de testes e na realização de testes unitários do sistema, testes de integração entre os módulos e testes de aceitação (normalmente feitos com os usuários)
IMPLANTAÇÃO
Implantar o sistema nas instalações do usuário
Fornecer os manuais do sistema
Dar carga dos arquivos de dados reais
Treinamento dos usuários
MANUTENÇÃO
Todo trabalho executado após a implantação é chamado de manutenção
Manutenção Corretiva – corrigir erros
Manutenção Adaptativa – adaptar o sistema a uma nova realidade
Manutenção Evolutiva – dotar o sistema de novas capacidades
ANÁLISE DE REQUISITOS
É o primeiro passo no modelo do processo. O que devo fazer e não a forma como será implementado. Serve como contrato entre o desenvolvedor e o comprador
É o processo de aquisição, refinamento e verificação das necessidades do sistema
O objetivo é sistematizar o processo de definição dos requisitos, obtendo uma especificação correta e completa do mesmo para elaboração do Documento de Requisitos
REQUISITOS
É um conjunto de necessidades estabelecido pelo cliente/usuário dos sistema que definem a estrutura e o comportamento do software que será desenvolvido
Os itens dos requisitos são: dados, processos, restrições de negócio, pessoas envolvidas e o relacionamento entre todos esses itens
Existem dois tipos de requisitos: Funcionais (Diretos) e Não Funcionais (Indiretos)
As principais técnicas para obtenção dos requisitos são: Entrevista, Questionário, Inspeção de documentos utilizados nos processos existentes, Observação direta, BRAINSTORMING (reunião de pessoas com diferentes níveis de informação e conhecimento sobre o sistema desejado. Essa discussão é conduzida por um mediador. Diversas cabeças pensam melhor do que uma)
REQUISITOS FUNCIONAIS
Definem a funcionalidade desejada do software, ou seja, definem funções, ações ou operações que poderão vir a ser realizadas pelo sistema, seja por meio de comandos dos usuários ou pela ocorrência de eventos internos ou externos ao sistema
REQUISITOS NÃO FUNCIONAIS
Referem-se às qualidades globais de um software, tais como: fácil manutenção, segurança, facilidade de uso, desempenho, baixo custo, funcionalidade, interfaces, tipos de usuários
CONCEITOS BÁSICOS
Dado
É a representação de um evento.
Informação
É o dado processado por um determinado Sistema de maneira que possa ser utilizado para a tomada de alguma ação/decisão.
 
 SISTEMA
 DADO PROCESSAMENTO INFORMAÇÃO
Computador só armazena dados, gerando informações.
Exemplos :
Data de nascimento = Dado Notas Prova = Dado
Idade = Informação Média = Informação
BANCO DE DADOS
Definições
 Critério de abordagem para a integração de dados e informações da empresa.
 Coleção de dados armazenados e organizados de modo a atender as necessidades dos usuários. 
 Refere-se à especialidade de armazenar, organizar e recuperar os dados num computador e as ferramentas para fazê-lo.
Requisitos para o seu sucesso
 Estar baseado num planejamento global;
 Ser considerado como um recurso corporativo;
 Independer estruturalmente de processos ou aplicações específicas;
 Estar destinado a ser compartilhado por qualquer processo ou aplicação dentro da empresa. 
Sistema de Gerência de Banco de Dados (SGBD)
É usual dizer que os termos Banco de Dados e SGBD são sinônimos, porém o Banco de Dados representa o conteúdo e o SGBD é a ferramenta (software) para manipular o Banco de Dados.
Definimos um SGBD como um conjunto de software para gerenciar (criar, modificar, manipular) um Banco de Dados e para garantir a integridade e segurança dos dados.
Funções de um SGBD
 Integridade dos dados 
Precisão e validade dos dados armazenados.
 Redundância dos dados
Evitar a redundância dos dados.
 Controle dos dados
Dados só poderão ser acessados ou modificados por usuários autorizados.
 Independência dos dados
Permite que o Banco de Dados seja modificado sem necessitar reescrever os programas que já estão prontos. 
 Facilidade de uso
Aplicações são desenvolvidas mais rapidamente e com mais segurança, aumentando a produtividade da programação, tornando os programas mais simples e diminuindo o tempo de manutenção. 
 Uso compartilhado
Permitir que vários usuários acessem o Banco de Dados ao mesmo tempo.
 Portabilidade
Ser independente doSistema Operacional e de qualquer tipo de equipamento.
 Utilitários
É necessário que existam ferramentas de apoio ao SGBD.
 Desempenho
O desempenho do SGBD pode ser medido pelo tempo de resposta e pela eficiência no armazenamento dos dados. O desempenho depende principalmente da arquitetura empregada e da implementação física.
Componentes de um SGBD
 Linguagem de definição de dados (DDL) 
É a linguagem utilizada para definir o conteúdo do Banco de Dados, suas tabelas e seus dados
 Linguagem de manipulação dos dados (DML)
Permite que se façam operações de acesso, inclusão, atualização e eliminação dos dados existentes nos Bancos de Dados pelos programas de aplicação.
Dicionário de Dados
É utilizado para descrever os dados e suas relações em forma totalmente conceitual e independente do seu envolvimento nas diversas aplicações.
 Linguagem de consulta (QUERY)
Permite que o usuário final, com poucos conhecimentos técnicos, possa obter, de forma simples, informações do Banco de Dados.
 Utilitários
Programas auxiliares que realizam diversas operações num Banco de Dados tais como: compactar, reorganizar, recuperar dados, obter cópia do Banco de Dados etc.
Além dos analistas e programadores existem profissionais que trabalham diretamente com o Banco de Dados:
Administrador de Dados (AD)
	 Planeja o Modelo de Dados;
	 Coordena a utilização do Modelo de Dados;
	 Administra o Banco de Dados.	
Administrador do Banco de Dados (DBA)
	 Gerencia o modelo físico do Banco de Dados;
	 Cuida da operacionalidade e eficiência do Banco de Dados.
				 MODELAGEM DE DADOS
Engenharia da Informação
Metodologia utilizada para o Desenvolvimento de Sistemas cujo enfoque principal é o DADO. 
Baseia-se no Princípio da Independência dos Dados, ou seja, os dados possuem estruturas e características inerentes a si mesmos, independentes dos processos que os utilizam ou venham a utilizar.
A idéia principal é levantar as estruturas de dados que vão dar origem aos Bancos de Dados, provendo um fácil acesso aos mesmos. Os dados são estáveis, não são voláteis como os processos.
 O suporte desta metodologia está baseado na técnica de Modelagem de Dados e seus relacionamentos, desenvolvida inicialmente por Peter Chen (1976).
Modelo
 É a representação abstrata e simplificada de um sistema real, com a qual se pode explicar ou testar o seu comportamento, em seu todo, ou em partes.
ex. Planta baixa de um apartamento
 Aeromodelo
 Manequim
O Modelo tem como referência o objeto observado, objeto este que pode ser uma empresa, um departamento, uma função da empresa, um sistema , etc.
Modelagem de Dados
Consiste no processo de levantamento de dados, investigação e análise dos dados e seus relacionamentos, enfocando quais informações são necessárias para o funcionamento do objeto observado, independentemente de como ele funciona. É utilizada como meio para obtenção das estruturas de dados que nos levam ao projeto de banco de dados.
Ao longo do processo de modelagem temos 3 tipos distintos de modelos de dados:
 Modelo Conceitual
 Os objetos(dados), suas características e relacionamentos tem a representação fiel ao ambiente observado, independente de quaisquer considerações físicas e operacionais;
 Representa o objeto observado e suas necessidades presente e futura de informação;
 A partir do Modelo Conceitual deverá ser possível “derivar” diferentes estruturas de implementação, sem haver necessidade de se alterar o Modelo Conceitual;
 Esse modelo está ligado às fases de análise e nunca às fases de projeto;
 Para representar esse modelo utilizamos como técnica a abordagem Entidade-Relacionamento(E-R) que se destina basicamente ao projeto de Banco de Dados.
Modelo Lógico de Dados
 Os objetos, suas características e relacionamentos tem a representação de acordo com as regras de implementação e limitações imposta por algum tipo de tecnologia. Depende do modelo físico da implementação (abordagem relacional / rede / hierárquica);
 Utilizam-se conceitos tais como: chaves de acesso, controle de chaves duplicadas, normalização, integridade referencial, etc;
 Esse modelo está ligado à fase de projeto.
Modelo Físico de Dados
 Utiliza as características físicas de implementação em função do Banco de Dados utilizado;
 Deve obedecer aos requisitos de desempenho do sistema (tempo de resposta, I/O, espaço em disco, etc.);
 Descreve as estruturas físicas de armazenamento dos dados tais como: tamanho dos campos, índices, nomenclaturas, tipo de preenchimento dos campos, etc. 
Estrutura Lógica dos Dados
Representa como acontece a conexão entre as diversas entidades que estão relacionadas entre si, mas não mostra como esta conexão é implementada.
Exemplo:
 
 DEPARTAMENTO
									 	
 EMPREGADO
Para se representar a Estrutura Lógica dos Dados foi introduzido por Bachman uma técnica de diagramação chamada de Diagrama de Estrutura de Dados. Essa técnica tem a finalidade de obter uma visão gráfica do Modelo de Dados. São utilizados os seguintes símbolos:
				O retângulo representa um tipo de entidade 
	
 	A flecha é utilizada para relacionar 2 tipos de entidades. Define a relação existente.
Tipos de Associações
Relação 1:1
A cada ocorrência de uma entidade A corresponde uma única ocorrência de um outro tipo de entidade B.
Exemplos:
	 HOMEM			 PAÍS			 
			casamento			presidência			
			
		 MULHER		 PRESIDENTE		 
Relação 1:N
Define uma estrutura onde a cada ocorrência de um tipo de entidade corresponde 0 a N valores do outro tipo. É a relação básica de estruturas hierárquicas, além de existir freqüentemente em estruturas rede.
Exemplos:
	 PAI			 SISTEMA		 
			paternidade		 componentes-sistema		
			
										
		 FILHO		 PROGRAMA		 
Relação M:N
A relação M:N especifica que M ocorrências de uma certa entidade aponta para N ocorrências de outra entidade.
Exemplos:
	 PROJETO		 PEÇA		 MATÉRIA 
			projeto-pessoal		 peça-fornecedor		 
			
								 matéria-aluno	
										
		 PESSOAL		 FORNECEDOR			ALUNO
As relações M:N são muito comuns, mas não tem suporte direto pelos SGBD mais usuais. É necessário a sua conversão para diversas relações 1:N com a criação de um novo tipo de entidade (freqüentemente denominada de entidade associativa) que passa a relacionar os tipos de entidades anteriores.
		 
Exemplos:
	 PROJETO	 PESSOAL		 PEÇA	 FORNECEDOR	
			
		 APROPRIAÇÃO DE
		 MÃO DE OBRA				 PEDIDO
				 MATÉRIA	 ALUNO		
						 TURMA
Modelos de Bancos de Dados
É um modo de estruturar logicamente as informações. Os principais modelos de Banco de Dados são os seguintes: 
Modelo Relacional, Modelo Orientado a Objeto, Modelo Relacional-Objeto, Modelo Rede e Modelo Hierárquico
 Modelo Relacional
 Utiliza a teoria dos conjuntos como base formal para a descrição de Modelo de Dados
 Se baseia na álgebra relacional e no cálculo relacional
 Os dados são estruturados em tabelas (relações) que são formadas de linhas (tuplas) e colunas (atributos)
 Estrutura de índices separadas dos dados
 Relações são normalizadas
 Integridade referencial mantida pelas aplicações/SGBD
 Permite auto-relacionamento
São exemplos de Bancos de Dados Relacional : DB2, SYBASE, ORACLE, INFORMIX, ACCESS, SQL SERVER, FIREBIRD, POSTGRESQL, MYSQL, PARADOX, INGRES, INTERBASE
	 MODELO ENTIDADE-RELACIONAMENTO (MODELAGEM CONCEITUAL)
 A Lei do Mundo
 O mundo está cheio de coisas que possuem características próprias e que se relacionam entre si.A abordagem Entidade-relacionamento se baseia, conceitualmente, no que está descrito acima. Em função disso podemos definir os conceitos necessários dentro da abordagem E-R:
	Conceitos Básicos 	 Abordagem do Modelo E-R Abordagem Orientada a Objetos
 na “Lei do Mundo” (Modelagem de Dados) (Modelagem da Informação)
 Conjunto de objetos ou elementos Entidades Classes
 individualizados, semelhantes
 Individualização de objetos ou Instâncias ou ocorrências Objetos 
 elementos
 Características próprias Atributos Atributos
 Inter-relacionamento de objetos Relacionamentos Associações
ENTIDADES
São as “coisas” que existem no negócio, ou seja, descrevem o negócio em si e precisamos armazenar dados a seu respeito.
É a representação de um conjunto de informações de mesma característica e suas instâncias (ocorrências) representam o conjunto dessas características (dados).
exemplo: Dado o texto abaixo, extrair as Entidades existentes:
“Uma Clínica Médica necessita controlar as consultas médicas realizadas e marcadas pelos seus médicos e fazer o acompanhamento dos pacientes atendidos.”
Solução:
 
 Consulta Médica (data da consulta, médico, paciente)
 Médico
 Paciente 
ENTIDADES FRACAS
Uma entidade é chamada de fraca se a sua existência depender de outra entidade (chamada de entidade forte).
				BANCO		Entidade Forte
					1,1
 
					 POSSUI	
					1,N
				AGÊNCIA	Entidade Fraca
ENTIDADES ASSOCIATIVAS OU AGREGADAS
Resulta da associação entre duas ou mais entidades sendo sua identificação feita através das entidades que ela associa.
exemplo:
						 POSSUI
	
					 1,M		 1,N
			 PROJETO					FUNCIONÁRIO
 Em função do relacionamento M x N surge então a entidade ALOCAÇÃO.
			M			 N	
	PROJETO		ALOCAÇÃO		 FUNCIONÁRIO				
ATRIBUTOS
São as características inerentes a cada um dos objetos observados (entidades). Os atributos possuem valor.
Através da análise dos atributos, podemos enquadrar um objeto como pertencente a um determinado conjunto distinto.
exemplos:
 	PESSOA
		Escolaridade = nível superior
		Data Nascimento = 19/03/47
		Cidade = Nova Friburgo
	CARRO
		Placa = VFC1234
		Marca = Fiat
		Modelo = Palio EX
RELACIONAMENTOS
É o acontecimento que liga dois objetos no mundo real. Através do mapeamento dos relacionamentos, podemos demonstrar como um objeto se comporta em relação aos demais, qual o seu grau de dependência de outros objetos e qual a associação de dados existente entre eles.
Os relacionamentos podem ser basicamente:
 Entre instâncias de objetos de diferentes tipos;
 Entre instâncias de um mesmo tipo de objeto (auto-relacionamento ou relacionamento recursivo)
exemplo:
		PESSOA			CARRO
					
								
		 PESSOA
	 1,1			
			
			 É PROPRIETÁRIA			 			
	 0,N		
				
		 CARRO
				0,1
		PESSOA				 É CASADA COM
				
			0,1
GRAU OU CARDINALIDADE
		
		PESSOA					PESSOA
	 1,1					DIRIGE
			 DIRIGE
 0,N 							É DIRIGIDO
		 CARRO					 CARRO
	 PETER CHEN				 JAMES MARTIN
RELACIONAMENTO 1:1 (UM para UM)
				1,1		1,1	
		MARIDO			 ESPOSA
					
	
					 É CASADO	
RELACIONAMENTO 1:N (UM para MUITOS)
				1,1		1,N
		EMPRESA				FILIAL	
					
 
					 POSSUI	
RELACIONAMENTO M:N (MUITOS para MUITOS)
				1,M		1,N
		ATLETA				ESPORTE
	
					 PRATICA	
Exercício:
	 Fazer o Diagrama Entidade-Relacionamento considerando as seguintes Entidades: 
ALUNO
DISCIPLINA
PROFESSOR
CURSO
Observações:
	1 – Uma disciplina pertence a somente um curso;
	2 – Um aluno pode cursar diversas disciplinas;
	3 – Um professor pode lecionar diversas disciplinas e uma disciplina pode ser lecionada por diversos professores;
	4 – Considerar a existência de 4 possíveis notas;
	5 – Considerar freqüência como sendo somente um indicativo de aprovação/reprovação. 
Solução do Exercício:
		 1,M					 1,N
	ALUNO				 CURSA			 DISCIPLINA	
									 
									 1,N
 										
						 				
									 MINISTRA	
					
								 1,M
									 PROFESSOR	
		 1,M					 1,N	
	ALUNO								 DISCIPLINA	
						 1,1	
					 PROFESSOR
				 M			 N		
	ALUNO				 CURSA			 DISCIPLINA		
						 M	
						 LECIONA	
						 1	
							
					 PROFESSOR
	 ALUNO	 1,M			 1,N	 DISCIPLINA	
						 1	
 . NOTAS também se relaciona com
 ALUNO / DISCIPLINA
						 N	
					 NOTAS
					
Obs.: NOTAS e FREQUÊNCIA não tem sentido sozinho, são apenas atributos do relacionamento ALUNO / DISCIPLINA (não existem informações a serem guardadas em relação à NOTAS e FREQUÊNCIA)
				 M			 N		
	ALUNO				 CURSA 			 DISCIPLINA					 	
						 M				 1,N	
			 LECIONA				 TEM
						 1				 1,1
					 PROFESSOR			 CURSO	
Obs.: Como sabemos quantas notas existem, apesar de fugir da normalização, adotamos essa solução (redundância controlada).
No exercício anterior, criamos uma estrutura chamada de Agregação. A Agregação acontece quando existe um relacionamento (M:N) entre entidades e por sua vez este relacionamento se relaciona com uma outra entidade. Gráficamente podemos representar essa situação de duas maneiras:
			 M N 	
 
					 M	
					 1	
					 	
				 M 			 N	
						M
						1
Exercícios:
	
	1) Considerando as entidades:
FUNCIONÁRIO
PROJETO
FUNÇÃO
	Temos o seguinte:
		Um funcionário pode trabalhar em vários projetos simultaneamente e cada projeto pode ter vários funcionários. Dependendo do projeto em que o funcionário atue, o funcionário pode ter funções distintas. Todo funcionário tem um gerente que também é funcionário.
		Representar o Diagrama E-R.
	2) Considerando as entidades:
EMPRESA
PESSOA
DEPARTAMENTO
	Temos o seguinte:
		A empresa é formada por várias pessoas que podem ser do tipo: executivos, acionistas, funcionários. Os funcionários estão alocados pelos diversos departamentos da empresa.
		Representar o Diagrama E-R.
Solução dos exercícios:
1)
				1,M			1,N
	 FUNCIONÁRIO					 PROJETO
					 ATUA	
			1,M
			 EXERCE
			1,N
		FUNÇÃO
		1,1	
				M			 N
 FUNCIONÁRIO			 ATUA			 PROJETO
		1,N				M	
						 EXERCE
		 TEM GERENTE
						1
					 FUNÇÃO
2)
				1,1			 1,N	
	 EMPRESA					 PESSOA
				 É FORMADA POR
		1,1
		 PERTENCE
 FUNCIONÁRIOS		EXECUTIVOS	 ACIONISTAS		
				1,N
				1,1
		1,N
			 DEPTO
No exercício acima temos uma estrutura chamada de Generalização-Especialização (GEN-SPEC). Nesse caso, Funcionários, Executivos e Acionistassão especializações de Pessoa (que é a generalização). Pessoa também pode ser chamada de Super-Tipo equanto que as especializações são chamadas de Sub-Tipo. A implementação física desse conceito pode ser feita através de um atributo que indique o tipo de pessoa (identificador).
Modelo Lógico 
A partir do Modelo Conceitual elaborado através do Diagrama E-R, obteremos o Modelo Lógico aplicando um conjunto de regras bem definidas. Essas regras atuarão basicamente em dois grupos distintos de elementos: as estruturas de relacionamento, agregação e especialização de um lado e as entidades e seus atributos de outro.
O Modelo Lógico pode ser obtido através dos seguintes passos:
		1 - Obter o Modelo Conceitual
		2 - Definir o tipo de implementação (Rede, Relacional, O-O)
		3 - Aplicar as regras de derivação específicas
		4 - Adaptar o modelo às necessidades (redundância, desnormalização, etc. São artifícios criados para resolver problemas de desempenho, flexibilidade, independência e segurança)
Modelo Relacional ou Abordagem Relacional
Proposto por Edgard F. Codd (anos 70) está baseado na Teoria dos Conjuntos (Álgebra Relacional). As operações utilizadas para manuseio dos conjuntos podem ser utilizadas sobre estruturas de dados. O Modelo Relacional utiliza o conceito de tabelas, ou seja, a tabela é a visão tabular ou plana representativa de uma relação. O termo Relacional advém do fato de as relações serem implementadas através de uma estrutura de dados relacional.
Os dados são representados em forma de tabelas (relações) através de linhas (tuplas) e colunas (domínios ou atributos).
Vantagens da Abordagem Relacional
	- Independência total dos dados
	- Visão múltipla dos dados
	- Redução na atividade de desenvolvimento / manutenção
	- Melhoria na segurança dos dados
Conceitos
	- Chaves Candidatas
		São as colunas de uma tabela que podem garantir que não haverá linhas repetidas (tuplas).
	- Chave Primária
		Dentre as chaves candidatas, é a coluna escolhida (ou mais de uma coluna) que identifica univocamente uma tupla.
	- Chave Estrangeira
		É uma chave, portanto identifica de modo único uma tupla. Ela não está em seu local original (local de origem) mas sim em um local para onde foi migrada (no estrangeiro). Ela tem um local de origem e lá possui suas características originais (é uma chave primária).
		É através da chave estrangeira que se estabelece o relacionamento entre duas tabelas.
	Obs.: No ambiente relacional uma tabela é acessível por qualquer campo (atributo) independente deste ser declarado como chave ou não. Para isso usamos o recurso do índice que é um recurso físico visando otimizar a recuperação via um método de acesso. Alguns autores chamam o índice de Chave Secundária.
exemplos:
	
	1) Supondo uma tabela que tivesse os seguintes atributos:
		nome do eleitor, data de cadastramento, junta eleitoral, identidade, cpf, título de eleitor, data de nascimento, endereço, etc.
	Poderíamos utilizar para chaves candidatas os seguintes atributos: identidade, cpf ou título de eleitor. Porém, devido as características da tabela, o mais apropriado é que a chave primária fosse o atributo título de eleitor.
	2) Dado o Diagrama E-R abaixo, através do conceito de chave estrangeira será estabelecido o relacionamento descrito:
				1,1		 1,N	
		AUTOR					 LIVROS
				
	
				 PUBLICA	
	Para efetivarmos o relacionamento acima, inserimos na tabela LIVROS o atributo CÓDIGO AUTOR que será considerado como uma chave estrangeira.
				1,1		 1,1
		AUTOR					 LIVROS
	No exemplo acima podemos colocar o atributo CÓDIGO AUTOR na tabela LIVROS ou o atributo CÓDIGO LIVRO na tabela AUTOR. O efeito seria o mesmo. A implementação irá definir que solução adotar.
Derivação do Modelo E-R para o Modelo Lógico (Modelo Relacional)
	Regras:
		1) Mapeamento das Entidades
			Toda Entidade transforma-se em uma tabela.
		2) Mapeamento dos Relacionamentos
			a) Relacionamento 1:N (Entidades distintas)
				 1,1		 1,N	
		 DEPTO				 FUNCIONÁRIO
					 
	
					 TEM	
A Entidade cuja cardinalidade é N, carrega o identificador (chave primária) da Entidade cuja cardinalidade é 1. 
			b) Relacionamento 1:N (envolvendo auto-relacionamento)
						1,N
						
				 FUNCIONÁRIO			 TEM GERENTE
						1,1
Matrícula			Nome			Matrícula Gerente
	 100			Carlos			200
	 200			Maria			200
	 300			Ana			500
	 400			João			500	
 500			Irene			500
Incluir a chave primária da Entidade na própria Entidade como chave estrangeira. 
			c) Relacionamento 1:1 (Entidades distintas)
				 1,1		 1,1	
		 FUNCIONÁRIO				 DEPTO
					
 	
					 CHEFIA	
As Entidades envolvidas neste relacionamento carregarão o identificador da outra conforme a conveniência do projeto.
			d) Relacionamento 1:1 (envolvendo auto-relacionamento)
						1,1
						
					 PESSOA			 CASADA COM
						1,1
Código Pessoa		Nome			Código Cônjuge
	 100			Carlos			200
	 200			Maria			100
	 300			Ana			600
	 400			João			500
 500			Irene			400
	 600			José			300
Incluir a chave primária da Entidade na própria Entidade como chave estrangeira.
			e) Relacionamento M:N (Entidades distintas)
				 1,M		 1,N	
		 ALUNO				 DISCIPLINA
					 
	
					 CURSA	
O relacionamento torna-se uma tabela, carregando os seus próprios atributos (se houver) e os identificadores das Entidades que se relacionam. 
			f) Relacionamento M:N (envolvendo auto-relacionamento)
						0,M
						
					DISCIPLINA			 PRÉ-REQUISITO
						0,N
Código Disciplina	Nome		Código Disciplina	Código Pré-Requisito
	 001		Análise I	002			001
	 002		Análise II	003			002
	 003		Análise III	004			003
	 004		Análise IV	004			005	
 	 005		Projeto I		
		 Tabela Disciplina			 Tabela Pré-Requisito
O relacionamento torna-se uma tabela, carregando os seus próprios atributos (se houver) e o identificador da Entidade que se auto-relaciona.
			g) Estrutura de Generalização-Especialização
					 FUNCIONÁRIO
	
					 
	 ENGENHEIRO		 VENDEDOR		MOTORISTA
O usual é criar um atributo na Entidade supertipo que caracterize os diversos subtipos existentes. (no exemplo acima poderia ser o atributo “cargo” )
			h) Estrutura de Agregação
				M			N
	 AUTOR		 TRABALHA		 EDITORA	 
						1
 
						 PUBLICA
						
						N
					 LIVROS
As agregações devem ser analisadas em 2 etapas:
	- A etapa relativa ao relacionamento M:N que dá origem a uma nova tabela (Entidade);
	- A etapa relativa ao relacionamento entre essa nova Entidade e a outra Entidade.
Aplicam-se nestas duas etapas as regras já vistas anteriormente.
No exemplo acima a tabela Livros receberia a chave primária da tabela Trabalha que é formada pelos atributos Código Autor e Código Editora.
Normalização
Processo formal passo à passo que examina os atributos de uma entidade (tabela) com o objetivo de evitar anomalias observadas na inclusão, alteração e exclusão de tuplas específicas. É um processo necessário à implementação de estruturas relacionais.
Vamos considerar um formulário de pedido que tivesse os atributos descritos abaixo e em função desses atributos aplicar as regras de normalização.
- Número do Pedido
- Prazo de Entrega
- Nome do Cliente
- Endereço do Cliente
- Cidade do Cliente
- UF do Cliente
- CGC do Cliente
- Inscrição Estadual do Cliente
- Código do Produto
- Fornecedor do Produto
- Unidade do Produto
- Quantidade do Produto		Esses atributos se repetem no formulário.
- Descrição do Produto
- ValorUnitário do Produto
- Valor Total do Produto
- Valor Total do Pedido
- Código do Vendedor
- Nome do Vendedor
- Quantidade do Produto no Estoque
 Primeira Forma Normal (1FN - Grupos Repetitivos)
Uma Tabela (Entidade) está na 1FN se:
	- As tuplas da tabela são unívocas, ou seja, o conteúdo da chave primária não pode se repetir;
- As tuplas da tabela não contêm itens repetitivos;
Para se obter entidades na 1FN é necessário decompor cada entidade não normalizada em tantas entidades quantos forem o número de conjuntos de atributos repetitivos.
No nosso exemplo teríamos a seguinte solução para a 1FN:
	Entidade Pedido
- Número do Pedido (Chave Primária)
- Prazo de Entrega
- Nome do Cliente
- Endereço do Cliente
- Cidade do Cliente
- UF do Cliente
- CGC do Cliente
- Inscrição Estadual do Cliente
- Valor Total do Pedido
- Código do Vendedor
- Nome do Vendedor
	Entidade Item de Pedido
- Número do Pedido (Chave Primária)
- Código do Produto (Chave Primária) 
- Fornecedor do Produto
- Unidade do Produto
- Quantidade do Produto	
- Descrição do Produto
- Valor Unitário do Produto
- Valor Total do Produto
- Quantidade do Produto no Estoque
A representação do Diagrama Entidade-Relacionamento ficaria assim:
 PEDIDO	 1,1		 1,N	 ITEM PEDIDO						
		 POSSUI	
Anomalias da 1FN
Inclusão
. Só é possível incluir um novo cliente caso ele faça um pedido.
. Só é possível incluir um novo produto caso ele pertença a um item de pedido.
. Se um mesmo cliente for incluído em um outro pedido com dados diferentes, as informações desse cliente ficarão diferentes nos diversos pedidos.
Exclusão
. Se excluirmos um determinado pedido, perderemos as informações do cliente e do produto associados ao pedido.
Atualização
. Se quisermos alterar informações de um cliente ou de algum produto, teremos que atualizar diversas tuplas da tabela.
 Segunda Forma Normal (2FN - Dependências Parciais de Chaves Concatenadas)
Uma Tabela (Entidade) está na 2FN se está na 1FN e cada um dos seus atributos não pertencentes à chave primária for dependente parcialmente dessa chave (isso ocorre quando a chave primária é fomada por mais de um atributo).
No nosso exemplo, na entidade Item de Pedido, os atributos Fornecedor do Produto / Unidade do Produto / Descrição do Produto e Valor Unitário do Produto só dependem de Código do Produto, logo sugirá uma nova entidade chamada Produto com os seguintes atributos: 
	Entidade Produto
- Código do Produto (Chave Primária) 
- Fornecedor do Produto
- Unidade do Produto
- Descrição do Produto
- Valor Unitário do Produto
- Quantidade do Produto no Estoque
Com isso a entidade Item de Pedido ficou com os seguintes atributos:
	Entidade Item de Pedido
- Número do Pedido (Chave Primária)
- Código do Produto (Chave Primária) 
- Quantidade do Produto	
- Valor Total do Produto
A representação do Diagrama Entidade-Relacionamento ficaria assim:
 PEDIDO	 1,1		 1,N	 ITEM PEDIDO						
		 POSSUI	
						 1,N	
			 CONTÊM	
						 1,1
					 PRODUTO	
Anomalias da 2FN
Inclusão
. Só é possível incluir um novo cliente caso ele faça um pedido.
. Se um mesmo cliente for incluído em um outro pedido com dados diferentes, as informações desse cliente ficarão diferentes nos diversos pedidos.
Exclusão
. Se excluirmos um determinado pedido, perderemos as informações do cliente associado ao pedido.
Atualização
. Se quisermos alterar informações de um cliente teremos que atualizar diversas tuplas da tabela.
 Terceira Forma Normal (3FN - Dependências Transitivas)
Uma Tabela (Entidade) está na 3FN se está na 2FN e se nenhum dos seus atributos possui dependência transitiva em relação a outro atributo que não participe da chave primária.
No nosso exemplo, na entidade Pedido, o atributo Nome do Vendedor depende do Código do Vendedor que no caso não pertence à chave primária, logo surgirá uma nova entidade chamada de Vendedor. O mesmo raciocínio se aplica às informações do cliente surgindo então uma nova entidade chamada de Cliente.
	Entidade Vendedor
- Código do Vendedor (Chave Primária)
- Nome do Vendedor
	Entidade Cliente
- Código do Cliente (Chave Primária)
- Nome do Cliente
- Endereço do Cliente
- Cidade do Cliente
- UF do Cliente
- CGC do Cliente
- Inscrição Estadual do Cliente
Com isso a entidade Pedido ficou com os seguintes atributos:
	Entidade Pedido
- Número do Pedido (Chave Primária)
- Prazo de Entrega
- Código do Cliente
- Código do Vendedor
- Valor Total do Pedido
A representação do Diagrama Entidade-Relacionamento ficaria assim:
 PEDIDO	 1,1		 1,N	 ITEM PEDIDO						
		 POSSUI	
 0,N	 0,N					 1,N	
 TIRA			 CONTÊM	
 1,1						 1,1
			 FAZ	
 VENDEDOR					 PRODUTO	
			 1,1	
		 CLIENTE
			
Anomalias da 3FN
Inclusão
. Foram resolvidas as anomalias da 2FN
Exclusão
. Foram resolvidas as anomalias da 2FN
Atualização
. Agora só precisamos atualizar o respectivo cliente que teve alguma alteração nas suas informações.
observação: Na entidade Item de Pedido o atributo Valor Total Produto depende do atributo Quantidade do Produto, logo está em desacordo com a regra para a 3FN. Esse atributo só foi colocado para melhorar a performance na recuperação da informação consolidada. (desnormalização controlada)
Existem ainda outras formas normais, a saber: Quarta Forma Normal, Quinta Forma Normal e a Forma Normal de Boyce/Codd.
código projeto
matrícula funcionário
Temos que identificar qual o relacionamento entre os objetos. Esse relacionamento se expressa através de uma construção verbal. Também temos que caracterizar o relacionamento (apontar qual a sua cardinalidade).
ALUNO / DISCIPLINA
PROFESSOR / DISCIPLINA
Obs.: Nesta solução não é possível identificar qual o professor que ministra a disciplina para um determinado aluno. Na verdade existe um relacionamento entre múltiplas entidades. No caso é um relacionamento ternário (ALUNO / DISCIPLINA / PROFESSOR).
CÓD. ALUNO
CÓD. DISCIPLINA
CÓD. PROFESSOR
CÓD. ALUNO
CÓD DISCIPLINA
CÓD. PROFESSOR
NOTA1,2,3,4
FREQUÊNCIA
Aqui eu não consigo identificar a função que o funcionário exerce pois a mesma depende do projeto em que ele está trabalhando.
CÓDIGO LIVRO
TÍTULO
EDITORA
PREÇO
CÓDIGO AUTOR
NOME
ENDEREÇO
CURSA
CURSA
ATUA
� PAGE �1�

Outros materiais