Buscar

FBD-Parte1

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

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

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ê 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

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

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ê 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

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

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ê 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

Prévia do material em texto

José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 1
1���� ��������	����
��	�� 
�
������������
���������	
�������
	
�������	
José Maria Monteiro
Universidade de Fortaleza
monteiro@unifor.br
2���� ��������	����
��	�� 
�
�����������
� ��� � �	
1. Introdução aos Sistemas de Banco de Dados
2. Modelo de Entidades e Relacionamentos (MER)
3. O Modelo Relacional
4. Projeto de Bancos de Dados Relacionais
5. SQL
6. Acesso a Bancos de Dados
7. Restrições de Integridade
8. Técnicas Avançadas de Projeto de BD’s 
Relacionais (Normalização)
�
3���� ��������	����
��	�� 
�
�����������
� ��� � �	
9. Introdução à Armazenamento e Indexação
10. Introdução ao Processamento de Consultas
11. Introdução ao Processamento de Transações
12. Introdução à Recuperação e Logging
13.Banco de Dados Orientados a Objetos (BDOO)
4���� ��������	����
��	�� 
�
�����������
���������	
�������
	
�������	
�
- Bibliografia Recomendada -
1. Silberschatz, A., Korth, H., Sudarshan, S. “Sistemas de 
Banco de Dados”, 3ª Edição, Makron Books
2. Garcia-Molina, H., Ullman, Jeffrey D., Widom, Jennifer. 
“Implementação de Sistemas de Bancos de Dados”. 
Editora Campus, 2001
3. O’Neil, Patrick., O’Neil, Elizabeth. “Database: 
Principles, Programming and Performance”. Second 
Edition, Morgan Kaufmann
4. Elsmari, R., Navathe, Shamkant B. “Fundamentals of 
Database Systems”. Third Edition, Addison-Wesley.
5���� ��������	����
��	�� 
�
�����������
���������	
�������
	
�������	
�
- Guia Bibliográfico por Tópicos -
1, 2Elsmari, R., Navathe, Shamkant B. 
“Fundamentals of Database Systems”. Third 
Edition, Addison-Wesley
1O’Neil, Patrick, O’Neil, Elizabeth. “Database: 
Principles, Programming and Performance”. 
Second Edition, Morgan Kaufmann
1Garcia-Molina, H., Ullman, Jeffrey D., Widom, 
Jennifer. “Implementação de Sistemas de 
Bancos de Dados”. Editora Campus, 2001
1Silberschatz, A., Korth, H., Sudarshan, S. 
“Sistemas de Banco de Dados”, 3ª Edição, 
Makron Books
1. Tecnologia de 
Banco de Dados
Capítulo/SeçãoLivroTópico
6���� ��������	����
��	�� 
�
�����������
���������	
�������
	
�������	
�
- Guia Bibliográfico por Tópicos -
3, 4Elsmari, R., Navathe, Shamkant B. 
“Fundamentals of Database Systems”. Third 
Edition, Addison-Wesley
6.1, 6.2, 6.3, 6.4O’Neil, Patrick, O’Neil, Elizabeth. “Database: 
Principles, Programming and Performance”. 
Second Edition, Morgan Kaufmann
Nenhum 
capítulo 
específico para 
o tópico
Garcia-Molina, H., Ullman, Jeffrey D., Widom, 
Jennifer. “Implementação de Sistemas de 
Bancos de Dados”. Editora Campus, 2001
2Silberschatz, A., Korth, H., Sudarshan, S. 
“Sistemas de Banco de Dados”, 3ª Edição, 
Makron Books
2. Modelo 
Entidade-
Relacionamento 
(MER)
Capítulo/SeçãoLivroTópico
José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 2
7���� ��������	����
��	�� 
�
�����������
���������	
�������
	
�������	
�
- Guia Bibliográfico por Tópicos -
7, 9.3Elsmari, R., Navathe, Shamkant B. 
“Fundamentals of Database Systems”. Third 
Edition, Addison-Wesley
2O’Neil, Patrick, O’Neil, Elizabeth. “Database: 
Principles, Programming and Performance”. 
Second Edition, Morgan Kaufmann
1.4, 6.1Garcia-Molina, H., Ullman, Jeffrey D., Widom, 
Jennifer. “Implementação de Sistemas de 
Bancos de Dados”. Editora Campus, 2001
3Silberschatz, A., Korth, H., Sudarshan, S. 
“Sistemas de Banco de Dados”, 3ª Edição, 
Makron Books
3. Modelo 
Relacional (MR)
Capítulo/SeçãoLivroTópico
8���� ��������	����
��	�� 
�
�����������
���������	
�������
	
�������	
�
- Guia Bibliográfico por Tópicos -
9Elsmari, R., Navathe, Shamkant B. 
“Fundamentals of Database Systems”. Third 
Edition, Addison-Wesley
Nenhum 
capítulo 
específico para 
o tópico
O’Neil, Patrick, O’Neil, Elizabeth. “Database: 
Principles, Programming and Performance”. 
Second Edition, Morgan Kaufmann
Nenhum 
capítulo 
específico para 
o tópico
Garcia-Molina, H., Ullman, Jeffrey D., Widom, 
Jennifer. “Implementação de Sistemas de 
Bancos de Dados”. Editora Campus, 2001
2.8Silberschatz, A., Korth, H., Sudarshan, S. 
“Sistemas de Banco de Dados”, 3ª Edição, 
Makron Books
4. Projeto de 
Banco de Dados 
Relacionais
Capítulo/SeçãoLivroTópico
9���� ��������	����
��	�� 
�
�����������
���������	
�������
	
�������	
�
- Guia Bibliográfico por Tópicos -
8, 18.1Elsmari, R., Navathe, Shamkant B. 
“Fundamentals of Database Systems”. Third 
Edition, Addison-Wesley
3O’Neil, Patrick, O’Neil, Elizabeth. “Database: 
Principles, Programming and Performance”. 
Second Edition, Morgan Kaufmann
1.4Garcia-Molina, H., Ullman, Jeffrey D., Widom, 
Jennifer. “Implementação de Sistemas de 
Bancos de Dados”. Editora Campus, 2001
4Silberschatz, A., Korth, H., Sudarshan, S. 
“Sistemas de Banco de Dados”, 3ª Edição, 
Makron Books
5. SQL
Capítulo/SeçãoLivroTópico
10���� ��������	����
��	�� 
�
�����������
���������	
�������
	
�������	
�
- Guia Bibliográfico por Tópicos -
Nenhum 
capítulo 
específico para 
o tópico
Elsmari, R., Navathe, Shamkant B. 
“Fundamentals of Database Systems”. Third 
Edition, Addison-Wesley
5O’Neil, Patrick, O’Neil, Elizabeth. “Database: 
Principles, Programming and Performance”. 
Second Edition, Morgan Kaufmann
Nenhum 
capítulo 
específico para 
o tópico
Garcia-Molina, H., Ullman, Jeffrey D., Widom, 
Jennifer. “Implementação de Sistemas de 
Bancos de Dados”. Editora Campus, 2001
4.12Silberschatz, A., Korth, H., Sudarshan, S. 
“Sistemas de Banco de Dados”, 3ª Edição, 
Makron Books
6. Acesso à Banco 
de Dados
Capítulo/SeçãoLivroTópico
11���� ��������	����
��	�� 
�
�����������
���������	
�������
	
�������	
�
- Guia Bibliográfico por Tópicos -
7.2, 7.3 Elsmari, R., Navathe, Shamkant B. 
“Fundamentals of Database Systems”. Third 
Edition, Addison-Wesley
7O’Neil, Patrick, O’Neil, Elizabeth. “Database: 
Principles, Programming and Performance”. 
Second Edition, Morgan Kaufmann
Nenhum 
capítulo 
específico para 
o tópico
Garcia-Molina, H., Ullman, Jeffrey D., Widom, 
Jennifer. “Implementação de Sistemas de 
Bancos de Dados”. Editora Campus, 2001
6Silberschatz, A., Korth, H., Sudarshan, S. 
“Sistemas de Banco de Dados”, 3ª Edição, 
Makron Books
7. Restrições de 
Integridade
Capítulo/SeçãoLivroTópico
12���� ��������	����
��	�� 
�
�����������
���������	
�������
	
�������	
�
- Guia Bibliográfico por Tópicos -
14, 15Elsmari, R., Navathe, Shamkant B. 
“Fundamentals of Database Systems”. Third 
Edition, Addison-Wesley
6.5 a 6.9O’Neil, Patrick, O’Neil, Elizabeth. “Database: 
Principles, Programming and Performance”. 
Second Edition, Morgan Kaufmann
Nenhum 
capítulo 
específico para 
o tópico
Garcia-Molina, H., Ullman, Jeffrey D., Widom, 
Jennifer. “Implementação de Sistemas de 
Bancos de Dados”. Editora Campus, 2001
7Silberschatz, A., Korth, H., Sudarshan, S. 
“Sistemas de Banco de Dados”, 3ª Edição, 
Makron Books
8. Técnicas 
Avançadas de 
Projeto de Banco 
de Dados 
Relacionais
Capítulo/SeçãoLivroTópico
José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 3
13���� ��������	����
��	�� 
�
�����������
���������	
�������
	
�������	
�
- Guia Bibliográfico por Tópicos -
5, 6Elsmari, R., Navathe, Shamkant B. 
“Fundamentals of Database Systems”. Third 
Edition, Addison-Wesley
8O’Neil, Patrick, O’Neil, Elizabeth. “Database: 
Principles, Programming and Performance”. 
Second Edition, Morgan Kaufmann
2, 3, 4Garcia-Molina, H., Ullman, Jeffrey D., Widom, 
Jennifer. “Implementação de Sistemas de 
Bancos de Dados”. Editora Campus, 2001
10Silberschatz, A., Korth, H., Sudarshan, S. 
“Sistemas de Banco de Dados”, 3ª Edição, 
Makron Books
9. Introdução ao 
Armazenamento e 
Indexação
Capítulo/SeçãoLivroTópico
14���� ��������	����
��	�� 
�
�����������
���������	
�������
	
�������	
�
- Guia Bibliográfico por Tópicos -
18Elsmari, R., Navathe, Shamkant B. 
“Fundamentals of Database Systems”. Third 
Edition, Addison-Wesley
9O’Neil, Patrick, O’Neil, Elizabeth. “Database: 
Principles, Programming and Performance”. 
Second Edition, Morgan Kaufmann
6, 7Garcia-Molina, H., Ullman, Jeffrey D., Widom, 
Jennifer. “Implementação deSistemas de 
Bancos de Dados”. Editora Campus, 2001
12Silberschatz, A., Korth, H., Sudarshan, S. 
“Sistemas de Banco de Dados”, 3ª Edição, 
Makron Books
10. Introdução ao 
Processamento de 
Consultas
Capítulo/SeçãoLivroTópico
15���� ��������	����
��	�� 
�
�����������
���������	
�������
	
�������	
�
- Guia Bibliográfico por Tópicos -
19, 20Elsmari, R., Navathe, Shamkant B. 
“Fundamentals of Database Systems”. Third 
Edition, Addison-Wesley
10.1, 10.2, 10.3, 
10.4, 10.5
O’Neil, Patrick, O’Neil, Elizabeth. “Database: 
Principles, Programming and Performance”. 
Second Edition, Morgan Kaufmann
9, 10Garcia-Molina, H., Ullman, Jeffrey D., Widom, 
Jennifer. “Implementação de Sistemas de 
Bancos de Dados”. Editora Campus, 2001
13, 14Silberschatz, A., Korth, H., Sudarshan, S. 
“Sistemas de Banco de Dados”, 3ª Edição, 
Makron Books
11. Introdução ao 
Processamento de 
Transações
Capítulo/SeçãoLivroTópico
16���� ��������	����
��	�� 
�
�����������
���������	
�������
	
�������	
�
- Guia Bibliográfico por Tópicos -
21Elsmari, R., Navathe, Shamkant B. 
“Fundamentals of Database Systems”. Third 
Edition, Addison-Wesley
10.6, 10.7, 10.8, 
10.9 
O’Neil, Patrick, O’Neil, Elizabeth. “Database: 
Principles, Programming and Performance”. 
Second Edition, Morgan Kaufmann
8Garcia-Molina, H., Ullman, Jeffrey D., Widom, 
Jennifer. “Implementação de Sistemas de 
Bancos de Dados”. Editora Campus, 2001
15Silberschatz, A., Korth, H., Sudarshan, S. 
“Sistemas de Banco de Dados”, 3ª Edição, 
Makron Books
12. Introdução à 
Recuperação e 
Logging
Capítulo/SeçãoLivroTópico
17���� ��������	����
��	�� 
�
�����������
���������	
�������
	
�������	
�
- Guia Bibliográfico por Tópicos -
11, 12, 13Elsmari, R., Navathe, Shamkant B. 
“Fundamentals of Database Systems”. Third 
Edition, Addison-Wesley
4 O’Neil, Patrick, O’Neil, Elizabeth. “Database: 
Principles, Programming and Performance”. 
Second Edition, Morgan Kaufmann
8Garcia-Molina, H., Ullman, Jeffrey D., Widom, 
Jennifer. “Implementação de Sistemas de 
Bancos de Dados”. Editora Campus, 2001
15Silberschatz, A., Korth, H., Sudarshan, S. 
“Sistemas de Banco de Dados”, 3ª Edição, 
Makron Books
13. Banco de 
Dados Orientados 
a Objeto
Capítulo/SeçãoLivroTópico
18���� ��������	����
��	�� 
�
�����������
����	��� � 	��	
�� �
����
�������
	
�������	
�
� � �� �� ��� 	 
�
� Processamento de arquivo (anos 60 e 70)
�Paradigma de processamento de dados
�Cada aplicação
�Definir e manter seus próprios dados
Descrição 
de dados
Programa 1
Descrição 
de dados
Programa 2
Descrição 
de dados
Programa 3
Arquivo B
Arquivo A
Arquivo C
José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 4
19���� ��������	����
��	�� 
�
�����������
���� Redundância e inconsistência
���� Dificuldade de acesso aos dados
���� Isolamento dos dados
���� Problemas de integridade
���� Problemas de atomicidade
���� Anomalias de acesso concorrente
���� Problemas de segurança
����	��� � 	��	
�� �
����
�������
	
�������	
�
� � �� �� ��� 	 
�
� Dados em Arquivos
20���� ��������	����
��	�� 
�
�����������
� Tecnologia de banco de dados
�Definição e gerenciamento centralizado de dados
�Independência de dados
�Alteração na organização lógica ou física dos dados não 
implicar na alteração de programas
�Eliminar redundância de dados
�Eliminar inconsistência de dados
�Facilitar acesso a dados através de uma linguagem de 
consulta
�Evitar inconsistências produzidas pelo acesso 
concorrente
�Recuperar estado consistente do dados após situação 
de falha
����	��� � 	��	
�� �
����
�������
	
�������	
�
21���� ��������	����
��	�� 
�
�����������
� Tecnologia de banco de dados
Programa 1 Programa 2 Programa 3
Descrição
de Dados
Banco 
de DadosSistema de Banco de Dados
•Conjunto de dados inter-relacionados (banco de dados)
•Componente de software (SGBD)
•Acesso e modificação dos dados
�Garantir uma visão abstrata dos dadosTornar transparente como os dados são armazenados e gerenciados
����	��� � 	��	
�� �
����
�������
	
�������	
�
22���� ��������	����
��	�� 
�
�����������
� Nível físico: descreve como os dados são armazenados
� Nível lógico: descreve quais dados são armazenados e os 
relacionamentos entre eles
� Nível de visualização: descreve partes de interesse do 
usuário/aplicação
Sistemas 
de 
Bancos
de Dados
Usuário tem uma
visão abstrata dos
dados
����	��� � 	��	
�� �
����
�������
	
�������	
�
� � � � ��
 � � 	 
� � 
� 
 � 	 � 
�
23���� ��������	����
��	�� 
�
�����������
Esquema 
Externo 1
Esquema 
Externo 2
Esquema 
Externo n
Esquema Conceitual
Esquema Interno
(Banco de Dados armazenado)
�
��
������
�����	
���
������

�
���������	���
������
��
����
����	��� � 	��	
�� �
����
�������
	
�������	
�
� � �� � ��� �� �
 
� � 
� �� � 
� 
 � 
 � 
 � 
�
24���� ��������	����
��	�� 
�
�����������
� Esquema Interno - Camada Interna
�Descreve como os dados estão fisicamente armazenados
�Exemplo
�Organização de arquivo
� seqüencial-indexado, hashing, seqüencial, heap
�Alocação em disco
� Contígua, lista encadeada, lista encadeada utilizando índice
�Tipo de registro
� Fixo, variável
� Esquema Conceitual - Camada Conceitual
�Descreve quais dados estão armazenados no banco de dados
�Descreve os relacionamentos entre os dados armazenados
� Esquema Externo - Camada Externa
�Descreve parte do banco de dados
�Simplificar a visão do usuário
�“Ver” só o que interessa
�Segurança
����	��� � 	��	
�� �
����
�������
	
�������	
�
� � �� � ��� �� �
 
� � 
� �� � 
� 
 � 
 � 
 � 
�
José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 5
25���� ��������	����
��	�� 
�
�����������
� Ocorrências (instâncias)
�Coleção de informações armazenadas na base
�Altamente mutáveis
� Esquemas
�Projeto ou estrutura da base - definição
�Um esquema para cada nível de abstração
� Esquema físico - nível interno
� Esquema lógico - nível conceitual
� Sub-esquemas ou esquemas de visualização - nível 
externo
����	��� � 	��	
�� �
����
�������
	
�������	
�
� � � 	 ��� � � �
 � 
� 
� � � � � � 
 � 
�
26���� ��������	����
��	�� 
�
�����������
Habilidade de modificar
o esquema físico sem
causar redefinição dos 
programas de aplicação
Modificações são
necessárias para
melhorar desempenho
Habilidade de modificar
o esquema lógico sem
causar redefinição dos 
programas de aplicação
Modificações são
necessárias quando a
estrutura lógica da
base é alterada
����	��� � 	��	
�� �
����
�������
	
�������	
�
� �� � � � � � � � � � �
 
� 	 � 
� 
 � 	 � 
�
27���� ��������	����
��	�� 
�
�����������
� Sistema de Bancos de Dados (SBD ou DBS)
�Banco de Dados (BD ou DB)
�Conjunto de dados relacionados
�Sistema Gerenciador de Bancos de Dados (SGBD ou DBMS)
�Componente de software 
�Acesso
�Controle de Concorrência
�Recuperação
�Armazenamento
����	��� � 	��	
�� �
����
�������
	
�������	
�
� � � ��� �� � 	 �
28���� ��������	����
��	�� 
�
�����������
� Finalidade
�garantir a especificação do esquema de um banco de dados
�permitir consultas e atualizações sobre o banco de dados
� Componentes 
�DDL - Data Description Language
�Utilizada para especificar o esquema de um BD
�Expressões da DDL 
� Interpretadas (compilados) gerando a especificação de um 
conjunto de tabelas
� A especificação das tabelas é armazenada no catálogo do 
banco de dados
�Exemplo (SQL)
� create table Empregado
(matr integer not null,
nome varchar(35),
salário real,
primary key(matr)) 
����	��� � 	��	
�� �
����
�������
	
�������	
�
� � �� � 
 � � 
� � 
! 
 � � 	 
� � 
� 
 � 	 � 
�
29���� ��������	����
��	�� 
�
�����������
� Componentes (cont.)
�DML - Data Manipulation Language
�Utilizada para permitir 
�Consultas sobre um BD
� Exemplo (SQL)
select nome
from Empregado
where salario > 7000
�Inserções em uma tabela 
� Exemplo (SQL)
insert into Empregado values(123, “Bárbara”, 5000.00)
�Remoções em uma tabela
� Exemplo (SQL)
delete from Empregado
where matr=14
�Atualizar valores de atributos de uma tabela
� Exemplo (SQL)
update Empregado set salário=salário∗∗∗∗1.15
where salário<1500.00
DML
Procedural
- requera especificação de quais dados 
devem ser acessados e como devem ser 
acessados
Nonprocedural
- requer somente a especificação de quais 
dados devem ser acessados
����	��� � 	��	
�� �
����
�������
	
�������	
�
� � �� � 
 � � 
� � 
! 
 � � 	 
� � 
� 
 � 	 � 
�
30���� ��������	����
��	�� 
�
�����������
�SGBD
�Processador de Consultas + Sistema de Armazenamento
	Processador de Consultas
Compilador DML
�Analisa sintaticamente e semanticamente comandos DML 
expressos em uma linguagem de consulta (ex. SQL)
�Traduz estes comandos para uma das formas de 
representação interna de consultas (ex. álgebra relacional)
Pré-Compilador DML
�Traduz comandos DML em chamadas a procedimentos 
(rotinas) na linguagem hospedeira
Interpretador DDL
�Interpreta comandos DDL e os armazena no catálogo 
� Tabelas contendo meta-dados
� Descrição do banco de dados � Esquema 
Mecanismo de Consultas
�Responsável pela otimização e geração de planos de 
execução de consultas
����	��� � 	��	
�� �
����
�������
	
�������	
�
� � � ��� �� � 	 �
José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 6
31���� ��������	����
��	�� 
�
�����������
�SGBD
	Sistema de Armazenamento
Gerenciador de Transações
�Controle de concorrência 
�Recuperação do banco de dados após falhas
Gerenciador de Buffer
�Responsável para recuperar objetos em disco e carregá-los na 
memória principal em forma de páginas
� SGBD possui uma área de buffer em memória principal
�Mapeamento: Bloco
(disco) (buffer do SGBD)
�Definição da política de alocação do buffer
� MRU, LRU, FIFO, etc
Página
Gerenciador de Arquivo (File System)
�Responsável pelo armazenamento físico em disco
�Gerencia a alocação de espaço em disco 
����	��� � 	��	
�� �
����
�������
	
�������	
�
� � � ��� �� � 	 �
32���� ��������	����
��	�� 
�
�����������
�BD
�Arquivos de dados + Índices + Catálogo
	Arquivos de dados
�Armazena os dados
	Índices
�Estruturas de índices para os arquivos de dados
	Catálogo
�Armazena esquema do banco de dados (meta-dados)
�Nomes das tabelas
�Atributos de cada tabela
�Definição de índice para uma tabela, etc…
�Armazena informações estatísticas
�Exemplo
� Cardinalidade de uma tabela
�Utilizadas na otimização de consultas
����	��� � 	��	
�� �
����
�������
	
�������	
�
� � � ��� �� � 	 �
33���� ��������	����
��	�� 
�
�����������
EsquemaConsultaPrograma Aplicativo
Gerenciador 
de Transações
Mecanismo 
de Consultas
Gerenciador 
de Buffer
Gerenciador 
de Arquivo
Compilador 
DML
Pre-compilador 
DML
�	�
�������
�����������
�
�����������
���������
��
�
��
�
�
Código Objeto
aplicativos
Arquivos
de dadosíndices Catálogo
�
DBAUsuário experienteProgramadores
Interpretador 
DDL
����	��� � 	��	
�� �
����
�������
	
�������	
�
� � �� � ��� �� �
 
� � 
" # ! � $� �
34���� ��������	����
��	�� 
�
�����������
� Definição do esquema conceitual
� Definição dos métodos de acesso e estruturas 
de armazenamento
� Manutenção do esquema e da organização física 
dos dados
� Definição da política de acesso aos dados
� Especificação de restrições de integridade
����	��� � 	��	
�� �
����
�������
	
�������	
�
� � 
� � � �� �� ��
 � 	 �
� � 
! 
 � � 	 � 
� � 
� 
 � 	 � 
%� ! � &
�
35���� ��������	����
��	�� 
�
�����������
� Programadores de aplicação
� Usuários sofisticados
� Usuários especializados em aplicações não-
convencionais
� Usuários de programas de aplicação
����	��� � 	��	
�� �
����
�������
	
�������	
�
� ' � � ( ��	 � 
� � 
! 
 � � 	 � 
� � 
� 
 � 	 � 
�
36���� ��������	����
��	�� 
�
�����������
� Modelos lógicos baseados em objetos
�Modelo entidade-relacionamento
�Modelo orientado a objeto
� Modelos lógicos baseados em registros
�Modelo relacional
�Modelo Codasyl (rede)
�Modelo hierárquico
� Modelos físicos de dados
Conjunto de ferramentas conceituais para descrever dados,
seus relacionamentos, sua semântica e restrições de consistência
����	��� � 	��	
�� �
����
�������
	
�������	
�
� ) 	 � � *	 
� � 
� 
 � 	 � �
José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 7
37���� ��������	����
��	�� 
�
�����������
� Um modelo de dados é definido por três componentes
Uma coleção de tipos de estrutura de dados
�blocos de construção do banco de dados
�Uma coleção de operadores
�Podem ser aplicados a qualquer instância dos tipos de 
dados definidos em 1
�Uma coleção de regras de integridade
�Definem o conjunto de estados consistentes do banco de 
dados
�Definem o conjunto de transições consistentes de estado 
do banco de dados
� Representar dados do mundo real
�Capturar a semântica e incorporá-la em um banco de dados
�Exemplo
�Através do modelo relacional representar os dados de uma 
universidade
����	��� � 	��	
�� �
����
�������
	
�������	
�
� ) 	 � � *	 
� � 
� 
 � 	 � �
38���� ��������	����
��	�� 
�
�����������
� Classificação de SBDs - Modelo de Dados
�Sistema de Banco de Dados Relacional
�Modelo Relacional
�Tipo primitivo de dados
� Relação (tabela)
- Conjunto de tuplas (linhas)
�Conjunto de Operadores
� Álgebra Relacional
� Cálculo Relacional
�Restrições de integridade
� Integridade de chave primária
� Integridade referencial
����	��� � 	��	
�� �
����
�������
	
�������	
�
� � *
 � � ���� 
 � � 	 
� � 
" �� �� � 
 � 
� � 
! 
 � � 	 � 
� � 
� 
 � 	 � 
�
39���� ��������	����
��	�� 
�
�����������
� Classificação de SBDs - Modelo de Dados
�Sistema de Banco de Dados Orientado a Objeto
�Modelo orientado a objeto
�Tipos primitivos
� Objeto, conjunto, lista, string, integer, real
�Restrições de integridade
� Unicidade de Objeto e identidade de objeto
� Hierarquia de classes
� Herança
- Uma classe herda as propriedades da superclasse
� Comportamento de objetos de uma classe 
- Método
�Sistema de Banco de Dados Objeto-Relacional
�Modelo relacional + Modelo OO
����	��� � 	��	
�� �
����
�������
	
�������	
�
� � *
 � � ���� 
 � � 	 
� � 
" �� �� � 
 � 
� � 
! 
 � � 	 � 
� � 
� 
 � 	 � 
�
40���� ��������	����
��	�� 
�
�����������
� Classificação de SBDs - Arquitetura
�Sistema de Banco de Dados Centralizados
�Os componentes do SBD residem no mesmo host
�Sistema de Banco de Dados Cliente-Servidor
�Distribuição de funções do SGBD entre clientes e servidor
�Sistema de Banco de Dados Paralelos
�Distribuição do controle de funções do DBMS entre diversos 
sistemas computacionais
�Sistema de Banco de Dados Distribuídos
�Distribuição de dados através de diversos SBDs homogêneos
�Sistema de Banco de Dados Heterogêneos
�Distribuição de dados através de SBDs heterogêneos e
autônomos 
�Sistema de banco de dados múltiplos (MDBS)
�Sistema de banco de dados federados
�Sistema de Banco de Dados Móvel
�Distribuição de funções do SGBD entre clientes e servidor em 
ambientes de computação móvel
����	��� � 	��	
�� �
����
�������
	
�������	
�
� � *
 � � ���� 
 � � 	 
� � 
" �� �� � 
 � 
� � 
! 
 � � 	 � 
� � 
� 
 � 	 � 
�
41���� ��������	����
��	�� 
�
�����������
� Controle de acesso concorrente
�Isolamento entre transações concorrentes
� Tolerância a falhas
�Atomicidade das operações
�Persistência dos resultados das transações bem 
sucedidas
Coleção de operações que realizam uma única 
função lógica em uma aplicação de banco de dados
����	��� � 	��	
�� �
����
�������
	
�������	
�
� # � �� � � �
 � � � �	 
� � 
� �
 � � 
 � + � � 
�
42���� ��������	����
��	�� 
�
�����������
� Concorrência em um ambiente multiusuário
�Entrelaçamento (interleaving) de operações
�Operações de um programa podem ser executadas
entre duas operações de outro programa
�Alterações inconsistentes no banco de dados
�DBMS precisa monitorar e controlar a execução
concorrente de programas
�Controle de Concorrência 
����	��� � 	��	
�� �
����
�������
	
�������	
�
� � 	 � ��	 *� 
� � 
� 	 � � 	 ��� � � �
 
�
José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 8
43���� ��������	����
��	�� 
�
�����������
� ��� � �	
� Introdução aos Sistemas de Banco de Dados
� Modelo de Entidades e Relacionamentos
� Bancos de Dados Relacionais
�O Modelo Relacional
�Modelagem de Dados
�Álgebra Relacional
�Linguagem deManipulação e Consulta
� Projeto de Bancos de Dados Relacionais
� Projeto Lógico de Bancos de Dados
�
44���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
� Modelo de dados MER
�Não é implementado por nenhum SBD
�Utilizado como modelo conceitual para projeto de BDs
�Ferramenta para a modelagem de BDs
�Proposto por P. Chen em 1976
�Princípio básico
�Representar dados através

Entidades

Relacionamentos entre as entidades

Atributos
�Propriedades de entidades ou relacionamentos
45���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
�Entidade
�Representação abstrata de um objeto do mundo real
�Exemplos de entidades do mundo real
�Objeto concreto
�Um empregado, um carro, um estudante
�Objeto abstrato
�Uma empresa, uma conta bancária, uma disciplina
�Conjunto de entidades (tipo de entidade)
�Entidades que apresentam características semelhantes
�Exemplo
�Estudantes, Empregados, Contas
46���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
�Atributos de uma entidade
�Propriedades que caracterizam uma entidade
�Exemplos
�Atributos de empregados 
�matrícula, nome, endereço, rg, cpf, data-nasc, salário, 
lotação, data-admissão
�Atributos de estudantes
�matrícula, nome, curso, rg, cpf, data-ingresso
�Conjunto de entidades
�Grupo de entidades que apresentam mesmo conjunto 
de atributos
�A cada atributo de uma entidade deve estar associado um 
valor
47���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
�Atributos de uma entidade (cont.)
�Um atributo pode ser ainda definido como
�Uma função que associa um elemento do conjunto de 
entidades a um elemento de um conjunto de valores do 
atributo (domínio do atributo)
�
�
13
Conjunto
de matrículas
�
�
�
�
�
Bárbara
Conjunto
de nomes
�
�
�
�
�
R. X, 9
Conjunto
de endereços�
�
�
��
�
�
�
�
�
�
Empregados matrícula
nome
endereço
∀∀∀∀Ei∈∈∈∈ Empregados 
Nome: Ei �������� nk , onde
nk∈∈∈∈ conjunto nomes
48���� ��������	����
��	�� 
�
�����������
�Atributos de uma entidade (cont.)
�Atributos chave de uma entidade
�Conjunto de atributos que identificam univocamente 
uma entidade
�Seja f um atributo chave para um conjunto de 
entidades D, x∈∈∈∈D e f(x)=v, então
�∀∀∀∀d∈∈∈∈D e d≠≠≠≠x, f(d)≠≠≠≠v
�Exemplo
�Matrícula é atributo chave para Estudante
�Tipos de atributos
�Atributo atômico
�Atributo que não pode ser subdividido
�Atributo composto
�Atributo formado por vários atributos
� ��� 	���	�� ��������� ���
�	������	
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
endereço
local cep cidade
rua número
José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 9
49���� ��������	����
��	�� 
�
�����������
�Atributos de uma entidade (cont.)
�Tipos de atributos
�Atributo mono-valorado
�Atributo para o qual está associado um único valor
�Exemplo
� Nome
�Atributo multi-valorado
�Atributo para qual podem estar associados vários valores
�Função que associa um elemento do conjunto de 
entidades a um subconjunto de um conjunto de valores
�Exemplo
� Para o atributo telefone podem estar associados vários 
valores, como telefone residencial, comercial e celular
�Atributo derivado
�Atributo cujo valor poder derivado com base no valor de 
um outro atributo (atributo base)
�Exemplo
� Atributo idade pode ser derivado do atributo data-nasc
� ��� 	���	�� ��������� ���
�	������	
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
50���� ��������	����
��	�� 
�
�����������
�Relacionamento
�Abstração que representa associações entre diferentes 
conjuntos de entidades
�Exemplo
�Pode-se definir um relacionamento que associa o 
empregado Bárbara com o departamento “Ciência da 
Computação”
�Conjunto de relacionamentos (tipo de relacionamento)
�Grupo de relacionamentos que representam o mesmo 
tipo de associação
�Exemplo
� Conjunto de relacionamentos lotação
+Contém todos os relacionamentos entre empregado e 
.departamento
�Seja R um conjunto de relacionamentos representando 
associações entre os conjuntos de entidade E1, E2, ... En, 
� ��� 	���	�� ��������� ���
�	������	
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
51���� ��������	����
��	�� 
�
�����������
�Relacionamento (cont.)
�Conjunto de relacionamentos (cont)
�Seja R um conjunto de relacionamentos, representando 
associações entre os conjuntos de entidades E1, E2, ... En, 
então R ⊆ E1 x E2 x En
�Seja r∈R, então r=(e1, e2, …, en), onde e1∈E1, e2∈E2, …, en∈En,
�Exemplo
�Considere o conjunto de relacionamentos lotação
� lotação ⊆ Departamento x Empregado
� (Bárbara, Ciência da Computação) ∈lotação
�Papel (role)
�Função que uma entidade desempenha no 
relacionamento
�Exemplo
�Papel de empregado
� É lotado (Bábara é lotada em Ciência da Computação)
�Papel de departamento
� Lota (Ciência da Computação lota Bárbara)
� ��� 	���	�� ��������� ���
�	������	
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
52���� ��������	����
��	�� 
�
�����������
Agência_Conta-Cliente
�Relacionamento (cont.)
�Grau de Relacionamento
�Número de entidades participantes no relacionamento
�Relacionamento binário
�Relacionamento de grau 2
�Exemplo
�Relacionamento ternário
�Relacionamento de grau 3
�Exemplo
� Relacionamento Agência-Conta-Cliente
� ��� 	���	�� ��������� ���
�	������	
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
���
�
�
�
�
�
Cliente
� �
�
�
�
�
�
Conta
� ��
�
�
�
�
�
Agência
53���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
�Relacionamento (cont.)
�Auto-relacionamento (relacionamento recursivo)
�Relacionamento envolvendo um único conjunto de 
entidades
�O conjunto de entidades apresenta diferentes papéis
�Considere o seguinte cenário:
�Cada departamento possui vários supervisores 
� responsáveis por um subconjunto de empregados do 
departamento 
�Modelagem do relacionamento entre empregado e 
supervisor 
� Um supervisor também é uma entidade do tipo Empregado
� Relacionamento supervisiona
Supervisiona
�
�
�
�
Empregado
�
�
1
1
2
2
1
1
Empregado desempenha dois papéis
- é-supervisionado-por (1)
- é-supervisor-de (2)
54���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
�Relacionamento (cont.)
�Atributos de relacionamento
�Propriedades que descrevem um relacionamento
�Exemplo
�Considere o atributo data-lotação
� Representa a data em que um empregado foi lotado em um 
determinado departamento
� data-lotação é um atributo do relacionamento lotação
�Considere o atributo nota na modelagem de dados da 
Unifor
� Descreve a nota de um aluno em uma disciplina
� nota é um atributo do relacionamento cursa
� Cursa representa o relacionamento entre os conjuntos de 
entidades Estudante e Disciplina
José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 10
55���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
�Restrições estruturais de relacionamentos
�Cardinalidade de relacionamento
�Indica o número de entidades que podem participar de 
um determinado relacionamento
�Seja R um relacionamento binário entre os conjuntos de 
entidades A e B
�A Cardinalidade de R deve ser uma das seguintes:
� Um para um (1:1)
� Uma entidade de A só pode estar associada a uma
..…entidade de B
� Uma entidade de B só pode estar associada a uma
..…entidade de A
� Um para muitos (1:N)
� Uma entidade de A pode estar associada a qualquer
..…quantidade de entidades de B
� Uma entidade de B só pode estar associada a uma
..…entidade de A
� Muitos para um (N:1)
� Uma entidade de A só pode estar associada a uma 
..…entidade de B
� Uma entidade de B pode estar associada a qualquer
..…quantidade de entidades de A
56���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
�Restrições estruturais de relacionamentos (cont.)
�Cardinalidadede relacionamento (cont.)
� Muitos para muitos (N:N)
� Uma entidade de A pode estar associada a qualquer
..…quantidade de entidades de B
� Uma entidade de B só pode estar associada a qualquer
..…quantidade de entidades de A
�Exemplos
�Cardinalidade do relacionamento lotação entre 
Departamento e Empregado
�Cardinalidade do relacionamento cursa entre Estudante 
e Disciplina
�Cardinalidade do auto-relacionamento supervisiona
�Cardinalidade do relacionamento que modela o fato de 
que cada departamento da empresa possui um gerente 
1:N
N:N
1:N
1:1
57���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
�Restrições estruturais de relacionamentos (cont.)
�Restrição de participação
�Especifica a obrigatoriedade ou não de uma entidade e
participar de um relacionamento com outra entidade
�Participação total
�A participação de um conjunto de entidades A é total em um 
relacionamento R, se toda entidade de A participa de pelo menos 
um relacionamento em R
�Dependência existencial
�Exemplo
� Considere o relacionamento lotação, para o qual todo 
empregado deve estar lotado em algum departamento
� A participação de Empregado em lotação é total
�Participação parcial
�A participação de um conjunto de entidades A é parcial em um 
relacionamento R, se apenas um subconjunto de entidades de A 
participa em R
�Exemplo
� Relacionamento cursa entre Estudante e Disciplina
58���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
�Entidade fraca
�Entidade cuja existência depende de estar associada, via 
um relacionamento (relacionamento de identificação), com 
uma outra entidade (entidade forte) 
�Exemplo
�Considere o relacionamento dependência entre os 
conjuntos de entidades Empregado e Dependente
�Dependente contém os dependentes dos empregados da 
empresa
�A existência de um dependente Bárbara 
�Depende da existência de um empregado André e que 
�Bárbara esteja relacionada a André através do 
relacionamento dependência
�Uma entidade fraca é identificada 
�Por estar relacionada com uma entidade forte
�Pelo atributo chave da entidade forte
�Atributos da própria entidade fraca
�Chave parcial
59���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� � �
 �
 � 
 
� , 
�
� Ferramenta de projeto
�Capaz de capturar e representar graficamente toda 
estrutura lógica de um banco de dados
�Utilizada para modelagem de BDs
�Existem ferramentas
�Fornecem uma interface gráfica para o 
desenvolvimento de DERs
�A partir do DER especificado, geram o esquema do BD 
relacional
�ERWin
60���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� � �
 �
 � 
 
� , 
�
� Notação
Nome atributo
������� �������
�����
Conjunto de entidades
Conjunto de entidades 
fracas 
Conjunto de relacionamentos
(relacionamento)
Relacionamento de 
identificação
Atributo
José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 11
61���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� � �
 �
 � 
 
� , 
�
� Notação
Nome atributo
������� �������
�����
Atributo chave
Nome atributo Atributo derivado
Nome atributo*
Nome atributo
Nome atributo Nome atributo
Atributo multivalorado
Atributo composto
62���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� � �
 �
 � 
 
� , 
�
� Notação
������� �������
�����
E1 R E21 N Cardinalidade 1:N 
R E(min,max) Restrição estrutural departicipação de E em R
E1 R E2 Participação total de E2
em R
Nome atributo Atributo chave parcial de
uma entidade fraca
63���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� � �
 �
 � 
 
� , 
�
� Exercício
�Utilize o DER para modelar o BD para o seguinte cenário
�A empresa X tem seus dados organizados da seguinte 
forma:
�Os empregados estão lotados em diversos 
departamentos. Funcionários são diretamente chefiados 
por supervisores. É importante identificar o supervisor de 
cada funcionário
�Todo funcionário deve estar lotado em um departamento. 
Nenhum funcionário pode estar lotado em mais de um 
departamento
�Um departamento possui no mínimo 5 empregados, 
onde um deles é o gerente do departamento.
�Os dependentes dos funcionários devem possuir como 
atributos: nome, data-nasc. A idade limite para ser 
dependente de um empregado é 18 anos
�O salário de um empregado é calculado com base nos 
seus diversos vencimentos. 
�Para tipo de vencimento, existe uma descrição e o valor 
correspondente
64���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� � �
 �
 � 
 
� , 
�
���������
(1,1)
���������
��
�������
(5,n)
(1,n)
��
�	��
��
��
��
(0,n)
������	�	�
�
����
� 
�	�
����
��
��
é-supervisionado
é-supervisor
Quando um departamento for participar de lotação, 
terá, no mínimo, cinco empregados
(1,1) (0,n)
(1,1)
(0,n)
matr
nome
dt_nasc
dt_lotação
dt_nasc
idade
Cod_venc descrição
valor
nome
��� 
�	�
(0,1)
(0,1)
65���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� � �
 �
 � 
 
� , 
�
���������
n
���������
��
�������
1
n
��
�	��
��
��
��
n
������	�	�
�
����
� 
�	�
����
��
��
é-supervisionado
é-supervisor
n 1
n
1
matr
nome
dt_nasc
dt_lotação
dt_nasc
idade
Cod_venc descrição
valor
nome
��� 
�	�
1
1
66���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� - �	 � ��� � 
 � � � 
� . 
 � � 
 � 
 � 
�
� Especialização
�Existem conjuntos de entidades compostos de subgrupos de entidades
�Cada subgrupo apresenta propriedades diferentes dos 
outros subgrupos
�Considere o conjuntos de entidades Empregado na 
modelagem dos dados de um universidade
�Podemos identificar os seguintes subconjuntos dentro 
de Empregado
�Professores
� Titulação
� Universidade de titulação
� Regime de trabalho (DE, 40h, 20h)
�Escriturários
� Grau de instrução
� Área de atuação (contador, secretária, etc…)
�Engenheiros
� Especialidade
�Subconjuntos diferenciados por tipo de empregado
José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 12
67���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� - �	 � ��� � 
 � � � 
� . 
 � � 
 � 
 � 
�
� Especialização (cont.)
�Definição
�Processo de identificação de subgrupos de entidades 
dentro de um conjunto de entidades
�Processo de especialização pode ser recursivo
�Um único conjunto de entidades pode ser especializado 
por mais de uma característica de diferenciação (especialização)
�No exemplo de Empregado em uma universidade
�Especialização por tipo de empregado
�Especialização por tipo de contrato
� CLT
� Serviços prestados
�Um entidade deve pertencer às várias especializações
�Os subgrupos identificados em um processo de especialização 
podem participar de relacionamentos que não se aplicam a 
todas entidades do conjunto de entidades de origem
68���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� - �	 � ��� � 
 � � � 
� . 
 � � 
 � 
 � 
�
� Especialização (cont.)
�Notação MER
���������
!��"����� ����	���#�	� �
��
��	��
ISA
titulação uni_tit
regime_tr
especialidadeGrau_ins área_atua
is a (é um)
Empregado is a Professor ou
Empregado is a Escriturário ou
Empregado is a Engenheiro
69���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� - �	 � ��� � 
 � � � 
� . 
 � � 
 � 
 � 
�
� Especialização (cont.)
�Herança de propriedades
�Os subgrupos de entidades herdam todas as 
propriedades do conjunto de entidade de mais alto 
nível
���������
!��"����� ����	���#�	� �
��
��	��
ISA
titulação uni_tit
regime_tr
especialidadeGrau_ins área_atua
nome
dt_nasc
matr
70���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� - �	 � ��� � 
 � � � 
� . 
 � � 
 � 
 � 
�
� Especialização (cont.)
�É realizada sobre um único conjunto de entidades
�Identificar subgrupos
�Ênfase nas diferenças entre entidades de um mesmosubconjunto de entidades
�Através dos subgrupos mais especializados
� Generalização 
�Processo de identificação de conjuntos de entidades que 
possuem características em comum
�Mesmos atributos e participam de mesmos 
relacionamentos
�Formação de um único conjunto de entidades de mais alto 
nível
�É realizada sobre vários conjuntos de entidades
�Identificar um conjunto de entidades de mais alto nível
71���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� - �	 � ��� � 
 � � � 
� . 
 � � 
 � 
 � 
�
� Generalização (cont.)
�Ênfase nas similaridades entre diversos conjuntos de 
entidades
�Redução de redundância de representação
�Atributos compartilhados só serão representados no 
conjunto de entidades de nível mais alto
�Não serão repetidos
�Na prática
�Generalização é o processo inverso da especialização
�Duas estratégias que devem ser utilizadas
�Especializar onde for necessário
�Generalizar onde for possível
72���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� - �	 � ��� � 
 � � � 
� . 
 � � 
 � 
 � 
�
� Especificação de restrições de generalização e 
especialização
�Sejam E1, E2, …, En conjuntos de entidades de nível mais 
baixo que o conjunto de entidades E
�Disjunção
�∀ 0<i,j≤n, i≠j : Ei ∩ Ej = ∅
�Nenhuma entidade de E pode pertencer a mais de um 
subgrupo
�
E1 E2 En
ISA
...
...
José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 13
73���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� - �	 � ��� � 
 � � � 
� . 
 � � 
 � 
 � 
�
� Especificação de restrições de generalização e 
especialização
�Completeza
�Especifica se uma entidade de E tem que pertencer 
obrigatoriamente a um dos conjuntos de entidades de 
mais baixo nível ou não
�Total
� E=∪ Ei
�Parcial 
�E ⊇ ∪ Ei
n
i=1
n
i=1
74���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� - �	 � ��� � 
 � � � 
� . 
 � � 
 � 
 � 
�
� Agregação 
�Abstração que representa relacionamentos como 
entidades
�Mecanismo utilizado para representar relacionamentos de 
relacionamentos
�Exemplo
�Considere a modelagem de dados em um banco BX. 
Clientes do BX estão relacionados a agência e conta
�Estratégia 1
Agência Conta
Cliente
1 n
n
75���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� - �	 � ��� � 
 � � � 
� . 
 � � 
 � 
 � 
�
� Agregação (cont.)
�Problemas na Estratégia 1
�Não representa a estrutura lógica que deve ser 
modelada
�Relacionamento de cliente com o relacionamento 
agência-conta
�Na prática, para acessar todas as contas de uma 
agência
�Terão que ser acessadas todas triplas 
(agência,conta,cliente)
�Uma conta pode pertencer a vários clientes
� Vários acessos redundantes
76���� ��������	����
��	�� 
�
�����������
� ��� 	���	�� ��������� ���
�	������	
� - �	 � ��� � 
 � � � 
� . 
 � � 
 � 
 � 
�
� Agregação (cont.)
�Utilizar o mecanismo de agregação
n
$� 
�	�
%�	�
��
%�
��
n
1 n
saldonum_contacod_ag nome gerenteender
cod_cliente
nome
data-nasc
ender
CPF
data_abertura
77���� ��������	����
��	�� 
�
�����������
� ��� � �	
� Introdução aos Sistemas de Banco de Dados
� Modelo de Entidades e Relacionamentos
� Bancos de Dados Relacionais
�O Modelo Relacional
�Modelagem de Dados
�Álgebra Relacional
�Linguagem de Manipulação e Consulta
� Projeto de Bancos de Dados Relacionais
� Projeto Lógico de Bancos de Dados
�
78���� ��������	����
��	�� 
�
�����������
� ��� � �	
� Introdução aos Sistemas de Banco de Dados
� Projeto de Bancos de Dados Relacionais
� Bancos de Dados Relacionais
�O Modelo Relacional
�Modelagem de Dados
�Álgebra Relacional
�Linguagem de Manipulação e Consulta
� Projeto Lógico de Bancos de Dados
�
José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 14
79���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� �� ��	 � � � � 	 
�
� Proposto em 1970 por Codd
�IBM
� Consolidou-se como principal modelo de dados para 
aplicações comerciais
� Modelo de dados para Bancos de Dados Relacionais
� SBDs relacionais
�DB2 (IBM)
�Informix
�ADABAS
�Sybase
�Oracle
�SQL Server (Microsoft) 
80���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� � � ��� �� �
 
� � 
� � 
! 
 � � 	 
� � 
� 
 � 	 � 
, � *
 � �	 � 
 *
�
� Um banco de dados relacional consiste
�Um conjunto de tabelas 
�Relações
� Tabelas
�Conjunto de linhas
�Tuplas
� Linhas
�Conjunto de colunas
�Nome das colunas
�Atributos
���� �� �	��������������
� �����������������������������������������
 ������������� � ����� �! "�# $ ������������� $ $ $ $ $ �
� � ������������% # ����� �& "�� ������������� ' ' ' $ $ 
� ������������% ( � ����� �) "�# $ � ���������� ' ' ' $ # $
� � ������������# % ' ����� �* "�# $ ���������� ' ' + $ , $ 
�������������������������������������% , # ����� �- "�# $ ����������� $ $ $ $ � $ �
Estudante
81���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
� Domínio
�Conjunto de valores permitidos para um atributo
�Valores são atômicos
�Indivisíveis 
�Exemplo: Domínio do atributo matrícula
� Conjunto de todos os valores válidos de matrícula
�dom(A) denota o domínio do atributo A
�Tipo de dados e formato
�Utilizados para especificar um domínio 
�Exemplo: telefone
� tipo char com formato (ddd)ddd-dddd
� dom(telefone) representa o conjunto de valores atômicos 
válidos para o tipo char e formato especificado
� O atributo Ai é um papel de D no esquema de R
� Grau de R = número de Ai
82���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
� Esquema de relação 
�Utilizado para descrever uma relação 
�Representado por R(A1, A2, …, An), onde
�R é nome de uma relação e
�A1, A2, …, An uma lista de atributos
83���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
� Instância de Relação
�Seja o esquema de relação R(A1, A2, …, An)
�Um instância de relação (ou relação) para este esquema 
�r(R)={t1, t2, …, tk}
�Cada ti representa uma n-tupla de n valores 
<v1, v2, …, vn>, onde cada vj ∈ dom(Aj), 0<j≤n
�r representa a extensão para R
�r contém os dados
�R descreve os dados armazenados em r
� Relação
�Seja r uma relação com esquema R
�r(R) ⊆ dom(A1) x dom(A2) x dom(A3) x … x dom(An)
�r(R) é um subconjunto do produto cartesiano dos 
domínios dos atributos que definem R 
�cada tupla de r(R) relaciona valores dos vários domínios
�r é uma relação (matemática)
�r(R) representa um conjunto de tuplas
84���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
� Esquema de um banco de dados relacional
�Conjunto de esquemas de relação mais um conjunto de restrições de 
integridade IC
�S={R1, R2, …, Rn} e um conjunto de restrições de integridade IC
� Instância de um banco de dados relacional
�Seja o esquema S
�Uma instância DB para o esquema S
�DB={r1, r2, …, rn} , onde
�Cada ri é uma instância de relação de Ri e
�Cada ri satisfaz as restrições de integridade especificadas em IC
� Exercício
�Considere uma banco de dados relacional DBR com as relações 
Empregado e Departamento
�Construa um esquema S e mostre uma possível instância para DBR
José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 15
85���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
� Restrições do modelo relacional
�Restrição de domínio
�O valor de cada atributo A 
�Tem que ser um valor atômico de dom(A)
�Restrição de Chave
�Uma relação é definida como um conjunto de tuplas
�Elementos de um conjunto são distintos entre si
�Tuplas de uma relação têm que serem distintas entre si
�Duas tuplas em uma relação não podem ter a mesma 
combinação de valores para seus atributos
�Geralmente existe um subconjunto SC de atributos em um 
esquema de relação R
�Todas as tuplas de qualquer instância r(R) apresentam uma 
combinação diferente de valores para os atributos de SC
� ∀ ti, tj ∈ r 0<i,j≤n, i≠j : ti[SC]≠ tj[SC]
�Super chave (superkey)
86���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
� Restrições do modelo relacional (cont.)
�Restrição de Chave (cont.)
�Super chave pode apresentar atributos redundantes
�Empregado(matr,nome,ender,cpf)
� matr e cpf são atributos da super chave
� Apenas matr ou apenas cpf
- condição necessária e suficiente para garantir a não
existência de tuplas repetidas
�Chave (key)
�Super chave sem atributos redundantes
�Para Empregado existem duas possíveis chaves
� matr ou cpf
�Chave candidata (candidate key)
�Atributos da super chave que podem funcionar como chave da 
relação
�Chave primária (primary key)
�Chave candidata escolhida como chave da relação
�Identifica tuplas em uma relação
� Garante a unicidade de uma tupla na relação
87���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
� Restrições do modelo relacional (cont.)
�Restrição de Integridade de Entidade
�Especifica que nenhuma chave primária pode ter valor 
nulo (null)
�Garante que a chave primária identifique tuplas em uma 
relação
�Restrição de Integridade Referencial
�Sejam dois esquemas de relação R e S
�Um conjunto de atributos FK de um esquema de relação 
R é chave estrangeira (foreign key) em R se
�Os atributos em FK têm o mesmo domínio que a chave 
primária PK de um outro esquema de relação S, e
�Um valor de FK em uma tupla t1 de r(R) 
� Ou ocorre em como valor de PK para uma tupla t2 em s(S)
t1[FK] = t2[PK] 
� ou é nulo
Os 
atri
buto
s FK
 
refe
ren
ciam
 
S
�& ��"���
�	�����������'
88���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
� Restrições do modelo relacional (cont.)
�Restrição de Integridade Referencial (cont.)
�Exemplo: Considere o seguinte esquema de banco de 
dados
Departamento(cod_depart, nome, ender)
Empregado(matr, nome, ender, cpf, lotação)
�Se lotação referenciar cod_depart, então lotação é chave 
estrangeira em Empregado
�Deve ser garantido que o valor de lotação ou seja nulo 
ou referencie um valor existente em Departamento
� Integridade referencial
� Atualmente é garantida automaticamente pelos SGBD 
existente no mercado
89���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� � 	 � � � ��	 � 
! ( � �� 	 � 
�
� Restrições do modelo relacional (cont.)
�Restrição de Integridade Referencial (cont.)
�Exemplo: Considere o seguinte esquema de banco de 
dados
Departamento(cod_depart, nome, ender)
Empregado(matr, nome, ender, cpf, lotação)
Create table Departamento
(cod_depart integer not null,
nome varchar(30) not null,
ender varchar(30),
primary key (cod_depart))
Create table Empregado
(matr integer not null,
nome varchar(30) not null,
ender varchar(30),
cpf integer not null,
lotação integer not null,
primary key (matr),
unique key (cpf),
foreign key (lotação) references
Departamento on delete cascade)
90���� ��������	����
��	�� 
�
�����������
�Insere t em r(R)
�Lista de valores
�Pode violar:
�Restrição de domínio
�Restrição de chave
�Integridade existencial
�Integridade referencial
�Tratamento
�Rejeitar a inclusão
�Solicitar novas informações
Inclusão
���� 	���	�� ���
�	���
� � � � �
 � + � � 
� � 
� �� 
 *�/ 
 � � 	 
�
José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 16
91���� ��������	����
��	�� 
�
�����������
�Exclui t em r(R)
�Condição sobre valores de atributos
�Pode violar:
�Integridade referencial
�Tratamento
�Rejeitar a exclusão
�Propagação em cascata
�Mudar fk em R’ que referencia R
Exclusão
���� 	���	�� ���
�	���
� � � � �
 � + � � 
� � 
� �� 
 *�/ 
 � � 	 
�
92���� ��������	����
��	�� 
�
�����������
�Modifica t[A1,A2,...,Ak] em r(R)
�Condição sobre valores de atributos
�Alguns SGBDs: update=delete+insert
�Violação + tratamento:
�Depende do atributo modificado
�Domínio para qualquer atributo
�PK = exclusão + inclusão
�FK = verificar integridade referencial
Modificação
���� 	���	�� ���
�	���
� � � � �
 � + � � 
� � 
� �� 
 *�/ 
 � � 	 
�
93���� ��������	����
��	�� 
�
�����������
� O resultado de uma operação
�op(r’) → r’’
� Grupos de operações
�Operações relacionais
�Seleção; projeção; junção
�Operações de conjunto
�União; interseção; diferença; produto cartesiano
�Operações especiais
Coleção de operações usadas para manipular relações
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
�
94���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
�
� Linguagem de consulta para bancos de dados 
relacionais
������� Consulta �������
� Coleção de operadores sobre relações
� Desenvolvida por Codd
� Linguagem procedimental
� Operações básicas
�Seleção (σ)
�Projeção (Π)
�União (∪)
�Diferença (-)
�Produto cartesiano (x)
Operações unárias
Operações binárias
95���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � � �
 � + � � 
! ( � �� 
 � 2
�
� Operação de seleção
�Seleciona um subconjunto de tuplas de uma relação
�Com base em um predicado
�Notação
�σP (r)
�r é uma relação e 
�P representa um predicado (condição de seleção) 
�Predicados são construídos através de átomos
�Átomos
� t[Ai] θθθθ t[Ak] , t ∈ r e Ai e Ak são atributos de r. 
� t[Ai] θθθθ k, onde k é uma constante
� O símbolo θθθθ denota um operador de comparação 
=, ≠≠≠≠, >, ≥≥≥≥, <, ≤≤≤≤
�Átomos podem ser conectados por ∧∧∧∧ (and), ∨∨∨∨ (or), ¬¬¬¬ (not)
�Regras para construção de fórmulas
�Todo átomo é uma fórmula
�Se P1 e P2 são fórmulas
� P1 ∧∧∧∧ P2, P1∨∨∨∨ P2 e ¬¬¬¬P1 também são fórmulas
Os atributos devem possuir domínios iguais
96���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � � �
 � + � � 
! ( � �� 
 � 2
�
� Operação de seleção (cont.)
�Exemplo
�Considere a relação Empregado 
�Empregado(matr, nome, ender, cpf, salário, lotação)
�Listar todos os empregados que ganham salário maior 
que 5000
� σsalário>5000 (Empregado)
�Listar todos os empregados do departamento com 
código igual a 002 e que ganham salários maior que 
5000 
�Listar todos os empregados não lotados no 
departamento com código igual a 002 e que ganham 
salários entre 5000 e 10000 
José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 17
97���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � � �
 � + � � 
! ( � �� 
 � 2
�
� Operação de seleção (cont.)
�Propriedade da seleção
�σθ1∧θ2(r) ⇔ σθ1(σθ2(r)) 
�σθ1(σθ2(r)) ⇔ σθ2(σθ1(r))
�Comutatividade da operação de seleção
98���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � � �
 � + � � 
! ( � �� 
 � 2
�
� Operação de Projeção
�Seleciona um subconjunto de atributos de uma relação
�Notação
�ΠAi1, Ai2,…, Ain (r) 
�r é uma relação com esquema R(A1, A2, …, An)
�{Ai1, Ai2, …, Ain} ⊆ {A1, A2, …, An}
�Projeção de R sobre os atributos Ai1, Ai2, …, Ain
�Exemplo
�Listar o nome e salário de todos os funcionários
�Πnome, salário (Empregado)
�Listar nome e salário de todos os empregado que 
ganham salário maior que 9000
Projeção
����Filtro de atributos
Seleção
���� Filtro de tuplas
99���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � � �
 � + � � 
! ( � �� 
 � 2
�
� Operação de União
�Executa a união de duas relações compatíveis
�Duas relações com esquemas R(A1, A2, …, An) e S(B1, B2, …, Bn) são compatíveis
�Apresentam o mesmo número de atributos
�dom(Ai)= dom(Bi), 0<i≤n
�Notação
�r ∪ s
�Exemplo
�Considere as seguintes relações
�Empregado(matr, nome, ender, dt-nasc, cpf, salário, lotação)
�Dependente(nome-dep, data-nasc, matr-resp)
�Liste o nome e data de nascimento de todos os 
funcionários e dependentes existentes na empresa
�Πnome, dt-nasc (Empregado) ∪ Πnome-dep, data-nasc (Dependente) 
100���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 ��	 � 
 *
1� � � �
 � + � � 
! ( � �� 
 � 2
�
� Operação de Diferença
�O resultado da operação r - s é uma relação que contém 
todas as tuplas de r que não pertencem a s
�r e s são relações compatíveis
�Exemplo
�Considerando que na empresa só existam as relações 
Empregado e Dependente que referem-se a pessoas, 
execute a seguinte consulta. Listar nomes de 
empregados, desde que não existam dependentes com 
mesmo nome
�Πnome (Empregado) - Πnome-dep (Dependente)
101���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � � �
 � + � � 
! ( � �� 
 � 2
�
� Operação de Produto Cartesiano
�Sejam r e s relações com esquemas R(A1, A2, …, An) e 
S(B1, B2, …, Bm), respectivamente
�Resultado da operação r x s é uma relação 
�T(r.A1, r.A2, …, r.An, s.B1, s.B2, …, s.Bm)
�com n+m atributos
�cada tupla de T é uma combinação entre uma tupla de 
r e uma tupla de s
�t∈T ⇔ ∃v ∈ r e ∃u ∈ s, tal que t[Ai]=v[Ai], 0<i≤n, e 
t[Bj]=u[Bj], 0<j≤m
�Se a cardinalidade de r é nr tuplas e a cardinalidade s é
ns tuplas
�A cardinalidade de T é nr∗ ns
102���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � � �
 � + � � 
! ( � �� 
 � 2
�
� Operação de Produto Cartesiano (cont.)
�Exemplo
�Sejam r e s mostradas abaixo. Calcule r x s 
A B
a1 b1
a1 b2
a2 b1
A B C
a1 b1 c1
a2 b3 c3
a2 b1 c4
r.A r.B s.A s.B s.C
a1 b1 a1 b1 c1
a1 b1 a2 b3 c3
a1 b1 a2 b1 c4
a1 b2 a1 b1 c1
a1 b2 a2 b3 c3
a1 b2 a2 b1 c4
a2 b1 a1 b1 c1
a2 b1 a2 b3 c3
a2 b1 a2 b1 c4
r s
r x s
José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 18
103���� ��������	����
��	�� 
�
�����������
�r condição s = σcondição (r x s)
�condição de junção é da forma
�r.Ag θ s.Bi ∧ r.Ah θ s.Bk ∧...∧ r.Am θ s.BL
� Para cada r.Ai θ s.Bj, dom(r.Ai) = dom(s.BJ) e θ∈{=, ≠≠≠≠, >, ≥≥≥≥, <, ≤≤≤≤}
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � � �
 � + � � 
� � ��. 
 � 
 � 2
�
� Operação de junção theta (theta-join)
�Sejam r e s relações com esquemas R(A1, A2, …, An) e 
S(B1, B2, …, Bm), respectivamente
�O resultado da operação junção theta entre r e s é uma 
relação T(r.A1, r.A2, …, r.An, s.B1, s.B2, …, s.Bm) definida por
�cada tupla de T é uma combinação entre uma tupla de 
r e uma tupla de s, sempre que a combinação satisfaça 
condição de junção
104���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � � �
 � + � � 
� � ��. 
 � 
 � 2
�
� Operação de junção theta (cont.)
�Exemplo
�Sejam r e s mostradas abaixo. Calcule T= r s 
A B
a1 b1
a1 b2
a2 b1
A B C
a1 b1 c1
a2 b3 c3
a2 b1 c4
r.A r.B s.A s.B s.C
a1 b1 a2 b3 c3
a1 b2 a1 b1 c1
a1 b2 a2 b3 c3
a1 b2 a2 b1 c4
a2 b1 a2 b3 c3
r s T
r.B ≠≠≠≠ s.B
105���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � � �
 � + � � 
� � ��. 
 � 
 � 2
�
� Operação de Junção de Igualdade (Equijoin)
�Operação de junção theta, cujo operador de comparação 
é a igualdade (=)
�Sejam r e s relações com esquemas R(A1, A2, …, An) e 
S(B1, B2, …, Bm), respectivamente
�O resultado da operação junção de igualdade entre r e s é 
uma relação T(r.A1, r.A2, …, r.An, s.B1, s.B2, …, s.Bm)definida por
�r condição s = σcondição (r x s)
�condição de junção é da forma
�r.Ag = s.Bi ∧ r.Ah = s.Bk ∧ … ∧ r.Am = s.BL
� Para cada r.Ai=s.BJ, dom(r.Ai) = dom(s.BJ)
106���� ��������	����
��	�� 
�
�����������
� Operação de Junção de Igualdade (cont.)
�Exemplo
�Considere as relações Departamento (d) e Empregado (e) mostradas 
abaixo. Calcule a seguinte junção de igualdade 
Departamento Empregado 
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � � �
 � + � � 
� � ��. 
 � 
 � 2
�

	����� �	���������������������� �������. ������
 �������������������	��� ��
������ ��! " $ �������� 
� ����������������� ��/ ����	
��� ��& "# ��������� 
����������������������
���	������ ��* ��� ��������% $
Departamento
� ��� �����0 	��������������
� ��������
��� � �	�����	��� � 	
 ������������� � 1 ���������� � �������+ $ $ $ �����������
� �����������- ��� 2 ��������% # ��������' $ $ $ ����������� 
�������������� 	�������������% ( � ��������$ $ $ ������������
�# �����������3 �
�
���������# % ' ��������# $ $ �������������
�( ������������ �1 �
�������% , # ���������% $ $ ������������
% $ �����������4 ��	�����������# # # ���������+ $ $ ����������� 
# ( �����������& �
���������+ $ $ ���������% $ $ ����������� 
Empregado
d.cod-dep=e.lotação
107���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � � �
 � + � � 
� � ��. 
 � 
 � 2
�
� Operação de Junção de Igualdade (cont.)
�Exemplo
Para cada empregado, listar seu nome e o 
nome do departamento onde está lotado.
������ �����	����������
� ��������
��� � �	�����	��� � 	
� �����������- ��� 2 ����������% # �������' $ $ $ ����������� 
% $ ������������4 ��	������������# # # ��������+ $ $ ������������ 
# ( ������������& �
����������+ $ $ �������% $ $ ������������� 
 ������������� � 1 ����������� � �������+ $ $ $ �������������
��������������� 	��������������% ( � ��������$ $ $ �������������
�# ������������3 �
�
 # % ' ��������# $ $ �������������
�( ������������� �1 �
���������% , # ���������% $ $ ������������
��
	����� ���	����������������� �� ���. ������
 �������������������	��� ��
������ ��! " $ �������� 
 �������������������	��� ��
������ ��! " $ �������� 
 �������������������	��� ��
������ ��! " $ �������� 
� ����������������� ��/ ����	
��� ��& "# ��������� 
� ����������������� ��/ ����	
��� ��& "# ��������� 
� ����������������� ��/ ����	
��� ��& "# ��������� 
����������������������
���	������ ��* ��� ��������% $
Departamento Empregado
d.cod-dep=e.lotação
Πe.nome,d.nome (Departamento Empregado)
d.cod-dep=e.lotação
108���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � � �
 � + � � 
� � ��. 
 � 
 � 2
�
� Operação de Junção Natural (Natural Join)
�Operação de junção de igualdade
�Todos os com o mesmo nome nas duas relações
�Participam obrigatoriamente da condição de junção
� Envolvidos no operador de comparação (=) 
�Aparecem só uma vez na relação resultado 
�Sejam r e s relações com esquemas 
�R(A1, A2, …, An, B1, B2, …, Bi) e 
S(B1, B2, …, Bi, C1, C2, …, Cm), respectivamente
�O resultado da operação junção natural entre r e s é uma relação T(r.A1, 
r.A2, …, r.An,B1, B2, …, Bi,s.C1, s.C2, …,s.Cm) definida por
�r condição s = σcondição (r x s)
�condição de junção é da forma
�r.B1 = s.B1 ∧ r.B2 = s.B2 ∧ … ∧ r.Bi = s.Bi
�Notação
�r s
José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 19
109���� ��������	����
��	�� 
�
�����������
� Operação de Junção Natural (cont.)
�Exemplo
�Considere as relações Departamento (d) e Empregado (e) mostradas 
abaixo. Calcule a seguinte junção de igualdade 
Departamento Empregado 
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � � �
 � + � � 
� � ��. 
 � 
 � 2
�

	����� �	���������������������� �������. ������
 �������������������	��� ��
������ ��! " $ �������� 
� ����������������� ��/ ����	
��� ��& "# ��������� 
����������������������
���	������ ��* ��� ��������% $
Departamento
� ��� �����0 	��������������
� ��������
��� � �	����
	�����
 ������������� � 1 ���������� � �������+ $ $ $ �����������
� �����������- ��� 2 ��������% # ��������' $ $ $ ����������� 
�������������� 	�������������% ( � ��������$ $ $ ������������
�# �����������3 �
�
���������# % ' ��������# $ $ �������������
�( ������������ �1 �
�������% , # ���������% $ $ ������������
% $ �����������4 ��	�����������# # # ���������+ $ $ ����������� 
# ( �����������& �
���������+ $ $ ���������% $ $ ����������� 
Empregado
110���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � � �
 � + � � 
� � ��. 
 � 
 � 2
�
� Operação de Junçãode Igualdade (cont.)
�Exemplo
������ �����	����������
� ��������
��� � �	
� �����������- ��� 2 ����������% # �������' $ $ $
% $ ������������4 ��	������������# # # ��������+ $ $
# ( ������������& �
����������+ $ $ �������% $ $
 ������������� � 1 ����������� � �������+ $ $ $
��������������� 	��������������% ( � ��������$ $ $
�# ������������3 �
�
 # % ' ��������# $ $
�( ������������� �1 �
���������% , # ���������% $ $
��
	����� ���	����������������� �� ���. ������
 �������������������	��� ��
������ ��! " $ �������� 
 �������������������	��� ��
������ ��! " $ �������� 
 �������������������	��� ��
������ ��! " $ �������� 
� ����������������� ��/ ����	
��� ��& "# ��������� 
� ����������������� ��/ ����	
��� ��& "# ��������� 
� ����������������� ��/ ����	
��� ��& "# ��������� 
����������������������
���	������ ��* ��� ��������% $
Departamento Empregado
111���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � � �
 � + � � 
� � ��. 
 � 
 � 2
�
� Operação de Semi-Junção (Semi-join)
�Definida por
r s = ΠR (r s)θθθθθθθθ
� Operação de Interseção
�O resultado da operação r ∩ s é uma relação que contém 
todas as tuplas de r e que pertencem a s
�r e s são relações compatíveis
�O resultado de r ∩ s é definido por
�r ∩ s= r - (r-s)
�θ representa uma condição de junção qualquer
112���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � � �
 � + � � 
� � ��. 
 � 
 � 2
�
� Operação de divisão
�Sejam r e s relações com esquemas 
R(A1, A2, …, An, B1, B2, …, Bm) e 
S(B1, B2, …, Bm), respectivamente
�Resultado da operação r ÷ s
�É uma relação T(A1, A2, …, An), onde, para uma tupla v pertencer a T, todos os valores de v precisam aparecer 
em R em associação com toda tupla de S
�Exemplo 1 
A B C
a1 b1 c1
a1 b3 c1
a1 b3 c2
a1 b3 c3
a2 b2 c3
r
C
c1
c2
c3
s
A B
a1 b3
r ÷ s
113���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � � �
 � + � � 
� � ��. 
 � 
 � 2
�
� Operação de divisão (cont.)
�Exemplo 2 
A B C
a1 b1 c1
a1 b3 c1
a2 b3 c1
a2 b3 c2
a2 b1 c1
a2 b1 c2
r
C
c1
c2
s
A B
a2 b3
a2 b1
r ÷ s
�Exemplo 3
�Considere a relação r do exemplo 2 e a relação s abaixo. 
Calcule r ÷ s
B C
b3 c1
s A
a1
a2
r ÷ s
114���� ��������	����
��	�� 
�
�����������
� Operação de divisão (cont.)
�Sejam r e s relações com esquemas 
R(A1, A2, …, An, B1, B2, …, Bm) e 
S(B1, B2, …, Bm), respectivamente
�R-S=T(A1, A2, …, An)
�Resultado da operação da divisão de s por r é definido por
�r ÷ s = ΠR-S(r) - ΠR-S( (ΠR-S(r) x s) - ΠR-S,S(r) )
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � � �
 � + � � 
� � ��. 
 � 
 � 2
�
�����	��
�����
���������������
(��
�����������������������ΠΠΠΠ�)�*�+����,�����-���
�������������.�!����
��,�
��������� �������������������������������#,����������������
�
����,����
����� ����,�����-���
������#������	����������������������.�
���� �/���	�"�����������	��0��
��������������
�	 �
�������
Atributos de r podem aparecer
em qualquer ordem
José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 20
115���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � � �
 � + � � 
� � ��. 
 � 
 � 2
�
� Operação de divisão (cont.)
�Exemplo
�Considere as tabelas Emp-Desc(matr,cod-desc) e 
Desconto(cod-desc,valor,descrição), onde
�A tabela Emp-Desc relaciona os empregados com os 
diversos descontos que é obrigado a pagar
matr Cod-desc
11 2
11 3
15 1
15 2
15 3
17 2
Emp-Desc
Exercício:
Utilizando a definição de divisão, mostrar passo a passo como é 
encontrado os empregados que têm descontados de seu salário todos 
os tipos de descontos possíveis
Cod-desc Valor descrição
1 10 IR
2 8 INSS
3 5 seguro
Desconto
116���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � ��
 � 
� � � �
 � + � � 2
�
� Operações sobre bancos de dados relacional
�Não pertencentes ao conjunto de operações da álgebra relacional 
convencional 
� Operação de Atribuição (assignment)
�Às vezes, é importante escrever uma expressão da álgebra relacional 
em diferentes partes
�Atribuir resultados das partes a relações temporárias
�Notação
�:=
�←←←←
�Exemplo
�rel1← ΠR-S((ΠR-S(r) x s) - ΠR-S,S(r))
�rel2←ΠR-S(r) 
�resultado= rel1 - rel2
117���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � ��
 � 
� � � �
 � + � � 2
�
� Funções Agregadas
� Funções aplicadas sobre uma coleção de valores do banco de dados
� sum
�Retorna o somatório dos valores de uma coleção
� avg
�Retorna a média dos valores de uma coleção
�max
�Retorna o maior valor de uma coleção de valores
�min
�Retorna o menor valor de uma coleção
� count
�Retorna o número de elementos de uma coleção
� distinct
�Algumas vezes, torna-se necessário eliminar repetições para o 
cálculo das funções agregadas
�Concatena-se a palavra distinct após o nome da função
118���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � ��
 � 
� � � �
 � + � � 2
�
� Funções Agregadas (cont.)
�Exemplos
�Considere a relação 
�Empregado(matr, nome, ender, salário, cpf, lotação)
� matr é a chave primária de Empregado
�Encontre o número de empregados lotados no departamento 001
�count(Πmatr(σlotação=001 (Empregado)))
�Encontre o maior salário da empresa
�max(Πsalário(Empregado))
�Encontre o salário médio da empresa
�avg-distinct(Πsalário(Empregado))
�Encontre a quantidade de salários distintos no departamento 
001
�count-distinct(Πsalário(σlotação=001 (Empregado)))
�Encontre o primeiro e segundo maiores salários da empresa
119���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � ��
 � 
� � � �
 � + � � 2
�
� Operação de Junção Externa (outer-join)
�Considere as seguintes relações
�Vendedor(matr, nome, ender, salário, cpf, lotação)
�Vendas(matr-vend,cod-item,quantidade, pr-venda)
�Considere a seguinte consulta
�Listar o histórico de vendas de cada vendedor
�Esquema do resultado
� Res(matr,nome,cod-item,quantidade,pr-venda)
�ΠRes(Vendedor Vendas)
�Consulta com perda de informação
�Não aparecerão no resultado 
� Vendedores que não efetuaram vendas
�Definir uma operação que evite esta perda de informação
�Outer join
� Adcionar tuplas extras ao resultado de uma junção 
natural
120���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � ��
 � 
� � � �
 � + � � 2
�
� Operação de outer-join (cont.)
�Tipos
�Junção externa à esquerda (left outer join)
�Junção externa à direita (right outer join)
�Junção externa completa (full outer join)
�left outer join
�Notação
�A B
�Calcula o resultado da junção de A com B
�Adiciona ao resultado da junção
� Tuplas da relação à esquerda (A) que não satisfazem a 
condição de junção
� Atribui valores nulos aos atributos não definidos para estas 
tuplas
José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 21
121���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � ��
 � 
� � � �
 � + � � 2
�
� Operação de outer-join (cont.)
�left outer join (cont.)
�Considere as seguintes relações
�Vendedor(matr, nome, salário)
�Vendas(matr,cod-item,qtde, pr-venda)
�Listar o histórico de vendas de cada vendedor
matr nome salário
11 Bárbara 5000
14 André 7000
15 Sofia 3000
17 Caio 500
19 Lucas 700
21 Camila 900
Vendedor
matr cod-item qtde pr-venda
11 72727 160 2.00
11 545 50 15.50
14 545 87 15.50
21 13 10 8.75
Vendas
122���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � ��
 � 
� � � �
 � + � � 2
�
� Operação de outer-join (cont.)
�left outer join (cont.)
�Listar o histórico de vendas de cada vendedor
�Vendedor Vendas
matr nome salário cod-item qtde pr-venda
11 Bárbara 5000 72727 160 2.00
11 Bárbara 5000 545 50 15.50
14 André 7000 545 87 15.5015 Sofia 3000 Null Null Null
17 Caio 500 Null Null Null
19 Lucas 700 Null Null Null
21 Camila 900 13 10 8.75
123���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� 0 * � � �
 
, � *
 � �	 � 
 *
1� � ��
 � 
� � � �
 � + � � 2
�
� Operação de outer-join (cont.)
�right outer join
�Notação
�A B
�Calcula o resultado da junção de A com B
�Adiciona ao resultado da junção
� Tuplas da relação à direita (B) que não satisfazem a 
condição de junção
� Atribui valores nulos aos atributos não definidos para estas 
tuplas
�full outer join
�Notação
�A B
�Calcula o resultado da junção de A com B
�Adiciona ao resultado da junção
� Tuplas das relações A e B que não satisfazem a condição 
de junção
� Atribui valores nulos aos atributos não definidos para estas 
tuplas
124���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� � ( *� � *	 
, � *
 � �	 � 
 *
�
� Desenvolvido por Codd 
� Notação para definir a informação desejada através
das propriedades de uma consulta 
� Não há a especificação de um procedimento para a
obtenção da informação
� Linguagem não procedimental
� Notação
� t ∈ r
� a tupla t pertence à relação r
� t[A]
� valor da tupla t sobre o atributo A
� Consulta em Cálculo Relacional
� {t | P(t)}
�O conjunto de todas tuplas t, tal que o predicado (fórmula) P é 
verdade para t
125���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� � ( *� � *	 
, � *
 � �	 � 
 *
�
� Fórmulas são construídas através de átomos
� Átomos
�t ∈ r, onde t é variável do tipo tupla e r uma relação (não é 
permitida a utilização do operador ∉)
�s[Ai] θ t [Bk], s e t são variáveis do tipo tupla. Ai e Bk
representam atributos sobre os quais s e t estão definidas 
respectivamente. 
�O símbolo θ denota um operador de comparação (
�=, ≠≠≠≠, >, ≥≥≥≥, <, ≤≤≤≤
	Os atributos devem possuir domínios cujos elementos 
possam ser comparados por θ
�s[Ai] θ K ,onde K é uma constante
126���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� � ( *� � *	 
, � *
 � �	 � 
 *
�
� Átomos podem ser conectados pelos operadores lógicos ∧∧∧∧ (and), ∨∨∨∨(or), ¬¬¬¬ (not)
� Regras para construção de fórmulas
� Todo átomo é uma fórmula
�Se P1 e P2 são fórmulas, então P1 ∧∧∧∧ P2, P1∨∨∨∨ P2, ¬¬¬¬P1, ¬¬¬¬P2 e P1 ����P2também são fórmulas
�P1 ����P2 (P1 implica P2)
�Se P1 é verdade então P2 necessariamente é
�Equivalente
� ¬¬¬¬P1 ∨∨∨∨ P2
�Se P é uma fórmula e r uma relação, então (∃t∈r) (P(t)) é uma 
fórmula
� Quantificador existencial
�Se P é uma fórmula e r uma relação, então (∀t∈r) (P(t)) é uma 
fórmula
�Quantificador universal
Existe pelo menos uma tupla de r 
para a qual P(t) é verdade
P(t) é verdade para todas as tuplas
de r
José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 22
127���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� � ( *� � *	 
, � *
 � �	 � 
 *
�
�Exemplos
Considere as seguintes relações
Departamento(cod_depart, nome, ender)
Empregado(matr, nome, ender, cpf, lotação)
Consulta C1: 
Nome e salário dos empregados que ganham mais que 
5000
C1: {e[nome],e[salário] | e ∈ Empregado ∧∧∧∧ e[salário]>5000 }
Consulta na Álgebra Relacional:
Πnome, salário (σsalário>5000 (Empregado))
128���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� � ( *� � *	 
, � *
 � �	 � 
 *
�
Consulta C2: 
Nome e salário dos empregados que trabalham no 
departamento ‘Informática’
C2: {e[nome],e[salário] | e ∈ Empregado ∧∧∧∧
((∃d)(d ∈ Departamento ∧∧∧∧
d[nome]=´DC´ ∧∧∧∧ d[cod_dep]=e[lotacao]))}
Consulta C3: 
Nome dos empregados que não possuem dependentes
C3: {e[nome] | e ∈ Empregado ∧∧∧∧
((∀ p) (¬¬¬¬((p ∈ Dependente) ∧∧∧∧(e.matr=p.matr)))}
129���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� � ( *� � *	 
, � *
 � �	 � 
 *
�
� Expressões seguras
Ck: {e | ¬¬¬¬(e ∈ Empregado)}
�Retorna um conjunto infinito de tuplas
� Domínio de uma expressão
�Valores que aparecem como constantes ou que existem 
em alguma tupla referenciada (mencionada) na expressão
�Dom(e ∈ Empregado ∧∧∧∧ e[salário]>5000)
	 5000 mais todos os valores de tuplas pertencentes a 
Empregado 
�A expressão é segura se os valores que aparecem no seu 
resultado pertencem ao domínio da expressão
130���� ��������	����
��	�� 
�
�����������
���� 	���	�� ���
�	���
� � ( *� � *	 
, � *
 � �	 � 
 *
�
�Exemplo
Dom(¬¬¬¬ (e ∈ Empregado))
� Valores de tuplas pertencentes a Empregado
{e | ¬¬¬¬(e ∈ Empregado)} 
� Tem como resultado tuplas que não pertencem a Empregado
� (¬¬¬¬(e ∈ Empregado)) não é segura
� Padrão para expressividade relacional 
(completeza relacional)
�Uma forma de representação é relacionalmente completa se 
permite a definição de qualquer resultado de consulta definida por 
uma expressão de cálculo relacional
� Emprego no processo de otimização
� P1 ∧∧∧∧ (P1∨∨∨∨ P2) ⇔ P1
131���� ��������	����
��	�� 
�
�����������
% ��5 �	6��	�������
	
�������	
� 3 
 � � � 
�
Análise de
Requisitos
Projeto
Conceitual
Projeto Lógico
(mapeamento de 
modelo de dados)
Projeto Físico
Requisitos de dados
Esquema Conceitual (MER)
Esquema Conceitual representado
no modelo de dados do SGBD
Mini-mundo
(mundo real)
Análise 
Funcional
Projeto
(Software)
Implementação
Independente
do SGBD
Específico para
cada SGBD
Implementação
Estruturas de armazenamento
e caminhos de acesso (índices)
Expressões DDL e carga do BD
132���� ��������	����
��	�� 
�
�����������
% ��5 �	6��	�������
	
�������	
� 3 
 � � � 
�
� Análise (especificação) de requisitos
�Projetista de banco de dados deve realizar entrevista com 
usuários prospectivos do banco de dados
�Entender e documentar 
�Requisitos de dados
� Projeto conceitual
�Com base nos requisitos de dados
�Criar um esquema conceitual para o banco de dados
�Modelo de dados conceitual
� MER
� Construir um DER
� Projeto lógico
�Com base no DER definido na fase anterior
�Criar um diagrama relacional
�Representação gráfica de um esquema relacional
José Maria Monteiro 9/8/2005
Fundamentos de Bancos de Dados 23
133���� ��������	����
��	�� 
�
�����������
% ��5 �	6��	�������
	
�������	
� 3 
 � � � 
�
� Projeto Físico
�Definir estruturas de armazenamento
�Como e onde devem ser armazenadas as tabelas
�Uma tabela em um arquivo
�Várias tabelas em um único arquivo
�Definir caminhos de acesso
�Definir índices
�Definir tipo de índice
�Ordenado
� Primário
� Secundário
�Hash
�Utilizar critérios de performance
�Específico por SGBD
� Implementação
�Com base no DR definido na fase 3 e as estruturas de armazenamento 
e caminhos de acesso definidos na fase anterior
�Criar o banco de dados
�Expressões DDL
�Carregar o BD
134���� ��������	����
��	�� 
�
�����������
� Ferramentas CASE
�Modelagem ER gráfica
�Geração automática de esquema (DDL)
� Algoritmo de mapeamento
�Sete passos
% ��5 �	6��	�������
	
�������	
� ) 
 � � 
 � � � �	 
� 	 
) � , 
� 
 �
 
� � 
! 
 � � 	 
� � 
� 
 � 	 � 
, � *
 � �	 � 
 *
�
135���� ��������	����
��	�� 
�
�����������
% ��5 �	6��	�������
	
�������	
� ) 
 � � 
 � � � �	 
� 	 
) � , 
� 
 �
 
� � 
! 
 � � 	 
� � 
� 
 � 	 � 
, � *
 � �	 � 
 *
�
� Diagrama relacional (DR)
�Ferramenta gráfica utilizada para representar um 
esquema de banco de dados relacional
� A partir de um DER, pode-se construir um DR como 
descrito a seguir
�Passo 1
�Para cada conjunto de entidades E, deve ser criada 
uma tabela como todos os atributos de E
�Escolher uma chave candidata para ser a chave primária 
da tabela
�Apenas os componentes atômicos de atributos 
compostos devem ser incluídos
�Notação de tabela no DR
Nome da 
Tabela
136���� ��������	����
��	�� 
�
�����������
% ��5 �	6��	�������
	
�������	
� ) 
 � � 
 � � � �	 
� 	 
) � , 
� 
 �
 
� � 
! 
 � � 	 
� � 
� 
 � 	 � 
, � *
 � �	 � 
 *
�
�Passo 2
�Para cada relacionamento binário 1:1 entre os 
conjuntos de entidades E1 e E2
�Escolher uma das tabelas, por exemplo E2, e incluir 
como chave estrangeira em E2 a chave primária da outra 
tabela (E1)
� Critério de escolha
>> Entidade com participação total no relacionamento
�Atributos de relacionamentos

Outros materiais