Buscar

Aulas IBD - Mirella M. Moro

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Aulas/aula01.pdf
DCC011:
Bancos de Dados
Fundamentos e Aplicações
Mirella M. Moro
mirella@dcc.ufmg.br
Rodrygo L. T. Santos
rodrygo@dcc.ufmg.br
Departamento de Ciência da Computação
Universidade Federal de Minas Gerais
UFMG DCC011 - profa. Mirella Moro 2
Sumário
� DCC011
� Conceitos Básicos
� O que é um banco de dados
� Como manipular um banco de dados
� Projeto de Banco de Dados 
� Tópicos Importantes
� Aplicações
� Banco de Dados no DCC/UFMG
UFMG DCC011 - profa. Mirella Moro 3
DCC011 – Intro. Banco de Dados 
Objetivo
� Introduzir os fundamentos que permitam ao 
aluno adquirir o domínio básico da 
tecnologia de banco de dados. 
Ementa
� Conceitos básicos de banco de dados. 
Modelos de dados e linguagens. Projeto de 
bancos de dados. Novas tecnologias e 
aplicações de banco de dados. 
UFMG DCC011 - profa. Mirella Moro 4
Programa
Introdução
� Conceitos básicos: banco de dados, sistema de banco de dados, sistema de 
gerência de banco de dados. Características da abordagem de banco de 
dados. Modelos de dados, esquemas e instâncias. Arquitetura de um 
sistema de banco de dados. Componentes de um sistema de gerência de 
banco de dados. 
Modelos de Dados e Linguagens 
� Modelo entidade-relacionamento (ER): conceitos básicos, restrições de 
integridade, notação gráfica, conceitos adicionais. Modelagem usando UML. 
Modelo relacional: conceitos básicos, restrições de integridade, álgebra 
relacional, operações de atualização. A linguagem SQL. 
Projeto de Bancos de Dados
� Visão geral do processo de projeto de bancos de dados. Projeto lógico de 
bancos de dados relacionais: mapeamentos ER/relacional, definição de 
esquemas em SQL. Normalização. 
Novas Tecnologias e Aplicações de Banco de Dados
� Bancos de dados orientados a objetos e objeto-relacionais. Dados semi-
estruturados e XML. Aplicações de banco de dados na Web. 
UFMG DCC011 - profa. Mirella Moro 5
Avaliação
Provas
70 pontos (20 + 20 + 30) 
Trabalhos Práticos
20 pontos
Exercícios e Participação
10 pontos
www.dcc.ufmg.br/~mirella
>> ALUNOS >> IBD
Distribuição dos Conceitos 2008/2-2013/1
UFMG DCC011 - profa. Mirella Moro 6
AA FF
Exercícios e
Participação
Trabalhos
Práticos
Ponderado
P
R
O
V
A
S
UFMG DCC011 - profa. Mirella Moro 7
Bibliografia
Texto Básico
Elmasri, R.; Navathe, S. B. Sistemas de Banco 
de Dados, 6a Ed. Pearson Education, 2010. 
Textos Complementares
� Garcia-Molina, H.; Ullman, J. D.; Widom, J. Database Systems: 
The Complete Book, Prentice-Hall, Upper Saddle River, NJ. 2001. 
� Ramakrishnan, R.; Gehrke, J. Database Management Systems. 
McGraw-Hill, Boston, MA, 2003. 
� Silberchatz, A.; Korth, H. F.; Sudarshan, S. Database Systems 
Concepts, 5th Ed. McGraw-Hill, New York, NY, 2005.
Datas importnates
� 03 e 05/03 carnaval
� 10/03 aula de revisão
� 12/03 PROVA 1
� 14/04 aula de revisão
� 16/04 PROVA 2
� 21/04 Tiradentes
� 12/05 aula de revisão
� 14/05 PROVA 3 (cumulativa)
� 19,21,26/05 TP2
� 28/05 Reposição de prova
UFMG DCC011 - profa. Mirella Moro 8
SUJEITO A
MODIFICAÇÕES
UFMG DCC011 - profa. Mirella Moro 9
Observações
� Todas as atividades da disciplina serão anunciadas e 
acompanhadas através da página da disciplina em 
http://www.dcc.ufmg.br/~mirella/
� Serão aplicadas três provas, sem consulta. A prova final 
abordará toda a matéria. 
� Serão propostos dois trabalhos práticos
� trabalho individual = uso da linguagem SQL
� trabalho em grupo = projeto + implementação de uma pequena 
aplicação de banco de dados, no ambiente Web. A avaliação 
será feita por meio de uma entrevista com todos os 
integrantes do grupo. 
� Exercícios e Participação = listas de exercícios, atividades 
complementares e participação em aula
� Prova de reposição = toda a matéria, apenas para alunos que 
não realizaram uma das provas
UFMG DCC011 - profa. Mirella Moro 10
Exercício 1
� PRAZO DE ENTREGA VIA MOODLE: 10/02 às 17hs (*antes* da aula)
� Essa atividade deve ser enviada via moodle. É muito simples: basta 
responder as perguntas abaixo e enviar as respostas via Moodle. Após as 
perguntas, são apresentadas algumas fontes online que podem ajudar nas 
respostas. OBSERVAÇÃO: copy/paste não será aceito (!seja criativo e 
objetivo em suas respostas!)
� PERGUNTAS
� (1) O que é um Banco de Dados?
� (2) Por que o sistema de matrículas da UFMG utiliza um SGBD para gerenciar 
seus dados em vez de utilizar um sistema de arquivos robusto?
� (3) Quais são as opções de carreira em BD ou o q. faz profissional de BD?
� (4) Quais são os temas de pesquisa em BD na UFMG e quem são seus 
pesquisadores?
� FONTES
� SLIDES DCC011 AULA 1
� SBC Horizontes Dezembro/2008: Qual o Papel de um DBA?, por Carina F. Dorneles e Ronaldo 
S. Mello.
� prof. João Eduardo Ferreira, Introdução a Banco de Dados, CAPÍTULO 2
� Edilberto Magalhães Silva, Introdução a Banco de Dados, CAPÍTULO 2
Conceitos Básicos
O que é um banco de dados?
Como manipular um banco de dados?
UFMG DCC011 - profa. Mirella Moro 13
Problemas com Fichário
Uma gaveta aberta por vez
Uma pessoa por vez acessando
Busca praticamente sequencial
Quem que pode atualizar a ficha?
Posso tirar duas fichas ao mesmo tempo?
Duas pessoas diferentes podem ter fichas?
E se enquanto uma pessoa está com a ficha,
uma outra acessa o fichário,
não encontra a ficha,
então cria uma nova ficha;
quando a uma devolver a ficha,
serão duas fichas diferentes
para o mesmo cliente!
E se perde a ficha?
E se pega fogo em tudo?
E SE EU PRECISAR DE FICHÁRIOS 
DIFERENTES PARA DADOS DIFERENTES?
UFMG DCC011 - profa. Mirella Moro 14
Universidade
Professores
Alunos
Disciplinas
Curriculo
Turmas
Cursos
Horários
UFMG DCC011 - profa. Mirella Moro 15
Dados
UFMG DCC011 - profa. Mirella Moro 16
Dados
UFMG DCC011 - profa. Mirella Moro 17
Questões
� Dados necessários?
� Modelagem de dados?
� Evitando redundância, obviamente
� Consulta a dados?
� Atualização de dados?
� Controle de acesso?
� Alunos não acessam os mesmos dados que 
professores... Ou que funcionários...
� ...
UFMG DCC011 - profa. Mirella Moro 18
Banco de Dados
• Fornece acesso 
seguro e eficiente a 
grandes quantidades 
de dados
• Resolve problemas
– Armazenamento
– Consulta eficiente
– Acesso e atualização 
com segurança: por 
múltiplos usuários
• Melhor do que usar 
fichários e arquivos...
UFMG DCC011 - profa. Mirella Moro 19 UFMG DCC011 - profa. Mirella Moro 20
Definições Preliminares
� [Chu, 1985]
� Um banco de dados é um conjunto de 
arquivos relacionados entre si.
� [Date, 1975]
� Um banco de dados é uma coleção de dados 
operacionais usados pelas aplicações de uma 
determinada organização.
UFMG DCC011 - profa. Mirella Moro 21
Outra Definição
� [Elmasri & Navathe, 2000]
� Um banco de dados é uma coleção de dados 
relacionados
� Entretanto, um BD possui as seguintes 
propriedades implícitas:
1. Representa aspectos do mundo real (mini-mundo 
ou universo de discurso)
2. É uma coleção de dados logicamente coerentes 
com algum significado inerente
3. É projetado, construído e instanciado (“povoado”) 
para uma aplicação específica
UFMG DCC011 - profa. Mirella Moro 22
Banco de Dados por tudo
� Informática �� Banco de Dados
� Economia, Engenharia, Medicina, Direito, 
Educação, …
� Qualquer aplicação precisa de dados
� Dados precisam ser armazenados, 
gerenciados, consultados, recuperados
SGBD
UFMG DCC011 - profa. Mirella Moro 23
Sist. de Gerência de Banco de Dados
� Um sistema de gerência de banco
de dados 
(SGBD) é um conjunto de programas que 
permite criar e manter (manipular) um banco de 
dados
� BD + SGBD = sistema de banco de dados
UFMG DCC011 - profa. Mirella Moro 24
Consultas/Programas
SGBD
Banco
de
Dados
Usuários/Programadores
Catálogo
(Meta-Dados)
Sistema de Banco de Dados
MS Access
Oracle
IBM DB2
My SQL
PostgreSQL
UFMG DCC011 - profa. Mirella Moro 25
Usuários / Programadores
� Administrador (DBA)
� Administra o BD e o SGBD
� Autorizar acesso ao BD, coordenar e monitorar a utilização, 
adquirir hw e sw
� Resolver problemas: violação de sergurança, tempo de resposta
� Projetista
� Identificar os dados e escolher estruturas apropriadas para 
representar e armazenar
� Antes de implementar/instanciar o BD
� Analista sistema e Programadores aplicações (eng. sw)
� Analistas: necessidades dos usuários + especificações acesso 
padrão
� Programadores: implementam as especificações, testes, 
documentos, manutenção
� Usuário final
� Acessar o BD: consultas, atualizações, relatórios …
UFMG DCC011 - profa. Mirella Moro 26
Exemplo de um Banco de Dados
NumEmp NomeEmp Salário Dept
032 J Silva 380 21
074 M Reis 400 25
089 C Melo 520 28
092 R Silva 480 25
112 R Pinto 390 21
121 V Simão 905 28
130 J Neves 640 28
NumDept NomeDept Ramal
21 Pessoal 142
25 Financeiro 143
28 Técnico 144
Empregado Departamento
Esquema do banco de dados
DeptSalárioNomeEmpNumEmp
RamalNomeDeptNumDept
Empregado
Departamento
UFMG DCC011 - profa. Mirella Moro 27
Vantagens de usar um BD 
� Controle de redundância dos dados
� Controle de acesso (segurança)
� Armazenamento persistente dos dados
� Existência de múltiplas interfaces para os 
usuários
� Representação de relacionamentos complexos 
entre os dados
� Manutenção de restrições de integridade
� Acesso multi-usuário (controle de concorrência e 
recuperação de falhas)
Projeto de Banco de Dados
UFMG DCC011 - profa. Mirella Moro 29
Projeto de Banco de Dados 
Modelo Lógico 
Visão
Externa1
Visão
Externa2
Modelo Conceitual 
Modelo Físico
requisitosrequisitos
Esquema
Conceitual
Esquema
Lógico Esquema
Físico
INDEPENDENTE 
de SGBD
DEPENDENTE 
de SGBD
UFMG DCC011 - profa. Mirella Moro 30
Mini-Mundo
Análise de
Requisitos
Requisitos do BD
Projeto Conceitual
Esquema Conceitual 
(em um modelo de dados de alto nível)
Projeto Lógico
Esquema Lógico
(em um modelo de dados lógico)
Projeto Físico
Esquema Físico
(para um SGBD específico)
Requisitos Funcionais
Análise Funcional
Especificação das Transações
(em alto nível)
Projeto das Aplicações
Implementação
Programas
Independente de SGBD
Específico para um SGBD
Projeto de Bancos de Dados
Tópicos Importantes
UFMG DCC011 - profa. Mirella Moro 32
Tópicos Importantes
� Estruturas de armazenamento de dados
� Modelagem e projeto de bancos de dados
� Modelos de dados
� Linguagens
� Processamento de consultas
� Controle de concorrência
� Segurança e integridade
� Recuperação de falhas
Aplicações
UFMG DCC011 - profa. Mirella Moro 34
Aplicações
� Bancos de dados multimídia – figuras, 
videos, sons, voz
� GIS, Sistemas de informações geográficas 
– mapas, dados meteorológicos, imagens 
satélite
� Web
� Web?????
UFMG DCC011 - profa. Mirella Moro 35
Aplicações
� Automação administrativa (ex., bancos, 
hospitais, bibliotecas, empresas, etc.)
� Gerência de dados científicos (ex., Genoma)
� Projeto assistido por computador (ex., aviões, 
circuitos integrados)
� Comércio eletrônico
� Bibliotecas digitais
� Sistemas de apoio a decisão
UFMG DCC011 - profa. Mirella Moro 36
Aplicações, exemplos
Aplicação
� Aplicações bancárias
� Reservas de vôos
� Aplicações hospitalares
� Universidades
Dados
� contas bancárias
agências
� vôos
passageiros
pilotos
� pacientes
médicos
remédios
� estudantes
turmas
professores
UFMG DCC011 - profa. Mirella Moro 37
Aplicações de BD: evolução
Sistemas de Arquivos
Banco de Dados
Em Rede Relacional Hierárquico
Modelos 
Semânticos
Modelos de 
Objetos Complexos
Bancos de Dados
Orientados a Objetos
Linguagens
Orientadas 
a Objetos
Multimídia
Hipermídia
Agentes
Bancos de Dados
Inteligentes
Recuperação
de Informação
Geoprocessamento
Redes
Banco de Dados no DCC/UFMG
UFMG DCC011 - profa. Mirella Moro 39
Disciplinas no DCC
� Graduação
� Introdução a Bancos de Dados
� Tópicos Avançados em Bancos de Dados
� Pós-Graduação
� Bancos de Dados
� Bancos de Dados Distribuídos
� Tópicos em Bancos de Dados
� Modelagem Conceitual
� Sistemas Avançados de Banco de Dados
� Gerência de Dados da Web
� Bibliotecas Digitais
Grupo de Pesquisa no DCC
UFMG DCC011 - profa. Mirella Moro 40
Alberto Laender
Modelagem & Projeto BD
Gerência de Dados Web
Modelagem, Extração e 
Integração de Dados Web
Rodrygo L. T. Santos
Busca de Dados Web
Gerência de Dados Web
Recuperação de Informação
Clodoveu Davis Jr.
Geoprocessamento
Sistemas Informação Geográfica
Bancos de Dados Geográficos
Dados Espaciais
Marcos A. Gonçalves
Bibliotecas Digitais
Recuperação de Informação
Gerência de Dados Web
Mirella M. Moro
Gerência de Dados Web
Gerência de Dados XML
Processamento de Consultas
Disseminação de Conteúdo
UFMG DCC011 - profa. Mirella Moro 41
Principais Linhas de Pesquisa
� Métodos e ferramentas para projeto de 
bancos de dados
� Sistemas de informação para a Web
� Gerência de dados da Web
� Bibliotecas digitais
� Redes Sociais
� NoSQL, BigData
Perguntas
www.dcc.ufmg.br/~mirella
>> ALUNOS >> IBD
Aulas/aula02.pdf
DCC011:
Introdução a Banco de Dados
Mirella M. Moro
Departamento de Ciência da Computação
Universidade Federal de Minas Gerais
mirella@dcc.ufmg.br
Programa
� Introdução
� Conceitos básicos, características da abordagem de banco de 
dados, modelos de dados, esquemas e instâncias, arquitetura de 
um sistema de banco de dados, componentes de um sistema de 
gerência de banco de dados.
� Modelos de dados e linguagens� Modelos de dados e linguagens
� Modelo entidade-relacionamento (ER), modelo realcional, álgebra 
relacional, SQL.
� Projeto de bancos de dados
� Fases do projeto de bancos de dados, projeto lógico de bancos de 
dados relacionais, normalização.
� Novas Tecnologias e Aplicações de Banco de Dados
� Bancos de dados orientados a objetos e objeto-relacionais, dados 
semi-estruturados e XML.
UFMG DCC011 - profa. Mirella Moro 2
Sumário
� Introdução
� Exemplo, Características, Vantagens, Implicações
� Quando não utilizar um SGBD
� Conceitos e Arquitetura do SBD� Conceitos e Arquitetura do SBD
� Modelos de Dados, Esquemas e Instâncias
� Categorias de Modelos de Dados
� Arquitetura de Três Esquemas e Independência de 
Dados
� Linguagens e Interfaces
� Módulos de Componentes do SGBD e Utilitários
� Classificação dos SGBDs
UFMG DCC011 - profa. Mirella Moro 3
Introdução
1. Conceitos básicos
2. Exemplo 
3. Características
4. Vantagens
5. Implicações
6. Quando não utilizar um SGBD
1. O que é um Banco de Dados?
� [Elmasri & Navathe, 2000]
� Um banco de dados é uma coleção de 
dados relacionados
� Representando algum aspecto do mundo real � Representando algum aspecto do mundo real 
(mini-mundo ou universo de discurso)
� Logicamente coerente, com algum significado
� Projetado, construído e gerado (“povoado”) 
para uma aplicação específica
UFMG DCC011
- profa. Mirella Moro 5
Sistema de Gerência de Banco de Dados
� Um sistema de gerência de banco de 
dados (SGBD) é um conjunto de 
programas que permite criar e manter
um banco de dadosum banco de dados
� BD + SGBD = sistema de banco de dados
UFMG DCC011 - profa. Mirella Moro 6
Consultas/Programas
SGBD
Usuários/Programadores
MS Access
Oracle
Exemplos 
de SGBDs????
SGBD
Banco
de
Dados
Catálogo
(Meta-Dados)
Sistema de Banco de Dados
Oracle
IBM DB2
My SQL
PostgreSQL
UFMG DCC011 - profa. Mirella Moro 7
2. Exemplo de um Banco de Dados
� Mini-mundo: parte de uma universidade
� Alguns integrantes
� Alunos
� Disciplinas� Disciplinas
� Departamentos
� Alguns relacionamentos
� Disciplinas são oferecidas por 
Departamentos
� Alunos estão matriculados em Disciplinas
UFMG DCC011 - profa. Mirella Moro 8
Exemplo de um Banco de Dados
UFMG DCC011 - profa. Mirella Moro 9
Exemplo de um Banco de Dados
UFMG DCC011 - profa. Mirella Moro 10
3. Características da Abordagem de BD
� Auto-descrição dos dados
� Isolamento entre programas e dados: 
abstração de dadosabstração de dados
� Suporte a múltiplas visões dos dados
� Compartilhamento de dados e processa-
mento de transações concorrentes
UFMG DCC011 - profa. Mirella Moro 11
4. Vantagens da Utilização de um SGBD 
� Controle de redundância dos dados
� Compartilhamento informações replicadas
� Manutenção de restrições de integridade
� Controle de acesso (segurança)
Armazenamento persistente dos dados� Armazenamento persistente dos dados
� Existência de múltiplas interfaces para os 
usuários
� Representação de relacionamentos complexos 
entre os dados
� Recuperação de falhas
UFMG DCC011 - profa. Mirella Moro 12
5. Implicações da Abordagem de BD
� Adoção/imposição de padrões
� Redução do tempo de desenvolvimento 
das aplicações
� Flexibilidade
� Atualidade da informação disponível
� Economia de escala
UFMG DCC011 - profa. Mirella Moro 13
6. Quando não Utilizar um SGBD
� Aplicações simples e bem definidas onde não se 
espera mudanças
� Aplicações de tempo-real
� Aplicações onde não é necessário acesso multi-� Aplicações onde não é necessário acesso multi-
usuário
� Motivos:
� Investimento inicial alto
� Generalidade na definição e manipulação dos dados
� Custo adicional para prover outras facilidades 
funcionais (manutenção de segurança, controle de 
concorrência, recuperação de falhas, etc.)
UFMG DCC011 - profa. Mirella Moro 14
Conceitos e Arquitetura do SBD
1.Modelos de Dados, Esquemas e Instâncias
2. Categorias de Modelos de Dados
3. Arquitetura de Três Esquemas e Independência de Dados
4. Linguagens e Interfaces
5.Módulos de Componentes do SGBD e Utilitários
6. Classificação dos SGBDs
1. Modelo de Dados, Esquema e Instância
Modelo Modelo 
de Dados Esquema Instância
Regras para 
estruturação
dos dados
Regras para 
verificação
das instâncias
UFMG DCC011 - profa. Mirella Moro 16
Modelo de Dados, Esquema e Instância
� Modelo de dados: Conjunto de conceitos
descrevem a estrutura de um BD
� Abstração de dados
� Estrutura = tipos de dados + relacionamentos + 
restrições (+operações � recuperação e atualização)restrições (+operações � recuperação e atualização)
� Esquema: Descrição (textual ou gráfica) da 
estrutura de um BD de acordo com um 
determinado modelo de dados
� Instância: Conjunto de dados armazenados em 
um BD em um determinado instante de tempo
UFMG DCC011 - profa. Mirella Moro 17
Modelo de Dados, Esquema e Instância
Esquema do banco de dados de exemplo
UFMG DCC011 - profa. Mirella Moro 18
Modelo de Dados, Esquema e Instância
UFMG DCC011 - profa. Mirella Moro 19
Modelo de Dados, Esquema e Instância
� Esquema do BD
� Armazenado no catálogo
� Mudanças muito menos freqüentes
� Estado do BD
� Dados do banco em qualquer ponto do tempo
� Inicialmente vazio
� Muda frequentemente
� Validade parcialmente guarantida pelo SGBD 
UFMG DCC011 - profa. Mirella Moro 20
2. Categorias de Modelo de Dados
MODELOS CONCEITUAIS
� Descrevem a estrutura de um BD de uma forma 
mais próxima da percepção dos usuários
� Independente de aspectos de implementação� Independente de aspectos de implementação
� Conceitos: entidades, atributos, relacionamentos
� Exemplos:
� Modelo entidade-relacionamento (ER)
� Modelo funcional
� Modelo orientado a objetos (OO)
UFMG DCC011 - profa. Mirella Moro 21
Categorias de Modelo de Dados
MODELOS REPRESENTACIONAIS (lógicos)
� Descrevem a estrutura de um BD da forma 
como será manipulado através de SGBD
� Mais dependente das estruturas físicas de 
armazenamento de dadosarmazenamento de dados
� Exemplos:
� Modelo relacional
� Modelo de rede (CODASYL)
� Modelo hierárquico
UFMG DCC011 - profa. Mirella Moro 22
Categorias de Modelo de Dados
MODELOS FÍSICOS
� Descrevem como os dados são fisicamente 
armazenados
� Conceitos: formatos dos registros, � Conceitos: formatos dos registros, 
ordenamento dos registros, caminhos de 
acesso (eficiência)
UFMG DCC011 - profa. Mirella Moro 23
3. Arquitetura de um Sistema de BD
Características do enfoque de BD
� Isolamento de programas e dados
� Suporte de visões múltiplas de usuários
� Catálogo para armazenar a descrição � Catálogo para armazenar a descrição 
(esquema) do BD
Arquitetura de três níveis
� Mantém independência de dados e programas
� Suporta múltiplas visões
UFMG DCC011 - profa. Mirella Moro 24
Arquitetura de um Sistema de BD
Componentes
1. Esquema interno
� Descreve armazenamento físico
2. Esquema conceitual2. Esquema conceitual
� Descreve entidades, tipos de dados, 
relacionamentos, operações e restrições
� Esconde detalhes de armazenamento
3. Esquemas externos (visões)
� Descreve porções do banco para diferentes 
comunidades
UFMG DCC011 - profa. Mirella Moro 25
Arquitetura de um Sistema de BD
UFMG DCC011 - profa. Mirella Moro 26
Arquitetura de um Sistema de BD
exemplo 1
Esquema conceitual
� Estudantes (eid: string, nome: string, login: string, 
idade: integer, gpa:real)
� Cursos (cid: string, cnome:string, creditos:integer)
� Matricula (eid:string, cid:string, nota:string)� Matricula (eid:string, cid:string, nota:string)
Esquema Físico
� Relações guardadas como arquivos desordenados
� Índices na primeira colunas de estudantes
Esquema externo (Visão):
� Info_Curso(cid:string, horário:string)
UFMG DCC011 - profa. Mirella Moro 27
Arquitetura de um Sistema de BD
exemplo 2
EXTERNO (Ling. Pascal)
Funcionario = Record
nome: string(30);
salario: real;
End;
EXTERNO (Ling. Cl)
Participante = struct {
char[30] Nome;
int Departamento;
}
CONCEITUAL
Empregado
NOME CHARACTER (30)NOME CHARACTER (30)
SALARIO NUMERIC (5)
DEPARTAMENTO NUMERIC (2)
SEXO CHARACTER (1)
INTERNO
RegistroEmpregadoLENGTH=50
NOME TYPE= BYTE(30)
SAL TYPE=FULLWORD
DEP TYPE=WORD
SEXO TYPE=BYTE(1)
UFMG DCC011 - profa. Mirella Moro 28
Altera 
um nível
Altera 
Visão Externa
Esquema Conceitual
Altera 
nível vizinho
Dependência de Dados
Independência de Dados
Esquema Físico
UFMG DCC011 - profa. Mirella Moro 29
Independência de Dados
� Capacidade de se alterar o esquema em 
um determinado nível sem alterar o 
esquema (ou esquemas) do nível 
imediatamente mais alto imediatamente mais alto 
VANTAGEM:
� Imunidade dos programas em relação a 
mudanças na estrutura do banco de dados
� Um dos maiores benefícios de usar SGBD
UFMG DCC011 - profa. Mirella Moro 30
Independência de Dados
Independência de dados lógica
� Capacidade de alterar o esquema conceitual sem 
alterar esquema externo ou aplicações
� Ex. Expansão ou redução� Ex. Expansão ou redução
Independência de dados física
� Capacidade de mudar o esquema interno sem 
mudar o esquema conceitual (ou externo)
� Ex. Reorganização de arquivos para melhorar 
desempenho
UFMG DCC011 - profa. Mirella Moro 31
Arquitetura de um Sistema de BD
Esquema
Externo 1
Esquema
Externo 2
Esquema
Externo n
Nível Externo
Visão de cada
usuário
Nível Conceitual
Independência
lógica
Esquema
Conceitual
Esquema
Interno
Nível Conceitual
Visão 
comunitária
Nível Interno
Visão do
armazenamento
físico
lógica
Independência
física
UFMG DCC011 - profa. Mirella Moro 32
4. Linguagens
� Linguagem de definição de dados (DDL)
� Usada para definir esquemas
� Linguagem de manipulação de dados 
(DML)(DML)
� Recuperação, inserção, remoção, modificação
� Linguagem de consulta
� DML de alto nível usada em modo “stand-
alone”
� Exemplo: SQL
UFMG DCC011 - profa. Mirella Moro 33
Interfaces
� Baseadas em menus
� Baseadas em formulários
� Gráficas (GUI), diagramas
Baseadas em linguagem natural� Baseadas em linguagem natural
� Para leigos
� Para DBAs
UFMG DCC011 - profa. Mirella Moro 34
5. Módulos de Componentes do SGBD
UFMG DCC011 - profa. Mirella Moro 35
Utilitários
� Carga (loading)
� Arquivos dados � Banco de Dados
� Cópia de segurança (backup)
� Para restaurar em caso de falhas� Para restaurar em caso de falhas
� (Re-)Organização de arquivos
� Melhorar o desempenho
� Monitoramento do desempenho
� Fornece estatísticas para o DBA: informações 
sobre desempenho � reorganização
UFMG DCC011 - profa. Mirella Moro 36
6. Classificação dos SGBDs
� Quanto ao modelo de dados adotado
� De rede
� Hierárquicos 
� Relacionais
� Orientados a objetos� Orientados a objetos
� Objeto-relacionais
� Quanto ao número de usuários suportados
� Mono-usuários
� Multi-usuários
� Quanto à localização dos dados
� Centralizados
� Distribuídos
UFMG DCC011 - profa. Mirella Moro 37
Exemplo de um BD Relacional
NumEmp NomeEmp Salário Dept
032 J Silva 380 21
074 M Reis 400 25
089 C Melo 520 28
092 R Silva 480 25
112 R Pinto 390 21
Empregado
112 R Pinto 390 21
121 V Simão 905 28
130 J Neves 640 28
NumDept NomeDept Ramal
21 Pessoal 142
25 Financeiro 143
28 Técnico 144
Departamento
UFMG DCC011 - profa. Mirella Moro 38
Exemplo de um BD de Rede
21 Pessoal 142
032 J Silva 380
089 C Melo 520
074 M Reis 400
Departamento
Empregado
25 Financeiro 143
28 Técnico 144
112 R Pinto 390
121 V Simão 905
130 J Neves 640
092 R Silva 480
089 C Melo 520
UFMG DCC011 - profa. Mirella Moro 39
Exemplo de um BD Hierárquico
21 Pessoal 142 25 Financeiro 143 28 Técnico 144
Departamento
Empregado
032 J Silva 380
112 R Pinto 390 121 V Simão 905
130 J Neves 640
092 R Silva 480
089 C Melo 520074 M Reis 400
Empregado
UFMG DCC011 - profa. Mirella Moro 40
REVISÃO
� BD, SGBD, SBD
Modelo 
de Dados Esquema Instância
Regras para 
estruturação
dos dados
Regras para 
verificação das 
instâncias
� Modelos: conceitual, lógico, físico
� Independência de dados
� DDL, DML
� Modelo: tipo, nro usuários, localização
UFMG DCC011 - profa. Mirella Moro 41
EXERCÍCIO
� ELMASRI & NAVATHE, CAP 2, exercício:
� 2.11 – Escolha uma aplicação de BD com a qual você 
esteja familiarizado. Projete um esquema e apresente 
um BD para aquela aplicação, utilizando figs 2.1 e 1.2. 
que tipos de informações e restrições adicionais você que tipos de informações e restrições adicionais você 
gostaria de representar no esquema? Imagine diversos 
usuários para seu BD e projete uma visão para um 
usuário.
� OU: utilize a representação em texto
UFMG DCC011 - profa. Mirella Moro 42
Exercício 2.11 – Escolha uma aplicação de BD com a qual você 
esteja familiarizado. Projete um esquema e apresente um BD 
para aquela aplicação, utilizando figs 2.1 e 1.2. que tipos de 
informações e restrições adicionais você gostaria de 
representar no esquema? Imagine diversos usuários para seu 
BD e projete uma visão para um usuário.
FIGURA 2.1
FIGURA 1.2 – primeira tabelaUFMG DCC011 - profa. Mirella Moro 43
Exercício 2.11 – Representação em texto
FIGURA 2.1
FIGURA 1.2 – primeira tabela
ALUNO: nome, numero, turma, curso
CURSO: nome, numero, creditos, depto
PRE-REQ: curso, prereq
DISCIPLINA: id, curso, sem, ano, prof
NOTAS: aluno, disc, nota
UFMG DCC011 - profa. Mirella Moro 44
Aulas/aula03.pdf
DCC011
Introdução a Banco de Dados -03Introdução a Banco de Dados -03
Mirella M. Moro
Departamento de Ciência da Computação
Universidade Federal de Minas Gerais
mirella@dcc.ufmg.br
Programa
� Introdução
� Conceitos básicos, características da abordagem de banco de 
dados, modelos de dados, esquemas e instâncias, arquitetura 
de um sistema de banco de dados, componentes de um sistema 
de gerência de banco de dados.
� Modelos de dados e linguagens
2
� Modelos de dados e linguagens
� Modelo entidade-relacionamento (ER), modelo relacional, 
álgebra relacional, SQL.
� Projeto de bancos de dados
� Fases do projeto de bancos de dados, projeto lógico de bancos 
de dados relacionais, normalização.
� Novas Tecnologias e Aplicações de Banco de Dados
UFMG DCC011 - profa. Mirella Moro
Modelo Entidade-Relacionamento
1. Aplicação exemplo
2. Entidades, atributos
3. Relacionamentos
4. Restrições sobre relacionamentos
5. Papéis e relacionamentos recursivos
6. Entidade fraca
Processo de Projeto de 
Bancos de Dados
Requisitos de Dados
Independente 
Esquema Conceitual
Modelo de dados de alto nível
4
Independente 
de SGBD
UFMG DCC011 - profa. Mirella Moro
1. Aplicação exemplo
� Banco de Dados de uma companhia
� Organizada em departamentos:
� um nome único
� um número único 
� um empregado que gerencia o departamento
5
� um empregado que gerencia o departamento
� a data de quando o empregado começou a gerenciar 
o departamento deve ser registrada
� um departamento pode ter varias localizações
� Um departamento controla um número de 
projetos:
� cada qual com um nome e número únicos 
� uma única localização
UFMG DCC011 - profa. Mirella Moro
Aplicação exemplo
� Cada empregado:
� nome, identidade, endereço, salário, sexo, data nascimento 
� um empregado é assinalado a um departamento 
� pode trabalhar em diversos projetos, os quais não são 
necessariamente controlados pelo mesmo departamento 
6
� o número de horas por semana que o empregado trabalha em 
cada projeto e o supervisor direto de cada empregado
� Registro para cada empregado
� número de dependentes (para seguro) 
� para cada dependente:
� primeiro nome, sexo, data de nascimento e relacionamento com o 
empregado
UFMG DCC011 - profa. Mirella Moro
M
UFMG DCC011 - profa. Mirella Moro 7
Fig. 3.2 
Esquema conceitual
2. Entidades, atributos
Entidades
� Objetos do mundo real que são de interesse 
para alguma aplicação
Atributos
� Propriedades para descrever uma entidade
UFMG DCC011 - profa. Mirella Moro 8
� Propriedades para descrever uma entidade
Tipos de Atributos
� Simples ou compostos
� Ex. Endereço
� Monovalorados ou multivalorados
� Ex. Profissão
� Armazenados ou derivados
Endereço
End_Rua Cidade Estado CEP
Rua Nro Apto
UFMG DCC011 - profa.
Mirella Moro 9
� Armazenados ou derivados
� Data de Nascimento → Idade, 
� Empregados trabalhando no departamento →
NumeroDeEmpregados
� Valores Null 
� Não aplicável: Número do apartamento
� Desconhecido: Telefone de casa
Tipos de Entidade
Tipo de entidade
� Define um conjunto de entidades que têm 
os mesmos atributos (propriedades)
� Descreve o esquema para um conjunto de 
UFMG DCC011 - profa. Mirella Moro 10
� Descreve o esquema para um conjunto de 
entidades que compartilham a mesma 
estrutura
� Exemplos
� Empregado, Empresa
UFMG DCC011 - profa. Mirella Moro 11
Fig. 3.5 – Duas entidades Empregado e Empresa, e algumas 
instâncias dos dados
Chave e Domínio
Chave de um tipo de entidade
� Atributo que possui valor único para cada entidade 
(instância)
� Ex. Nome da companhia, identidade do empregado
� Chave pode ser formada por vários atributos: chave 
composta
UFMG DCC011 - profa. Mirella Moro 12
� Chave pode ser formada por vários atributos: chave 
composta
� Registro do Veiculo: Numero de Registro e Estado
Domínio de um atributo
� Conjunto de valores que podem ser atribuídos a um 
atributo para cada entidade individualmente
� Ex. Idade do Empregado: (16,70); Nome do 
Empregado:String
UFMG DCC011 - profa. Mirella Moro 13
Fig. 3.7 - O tipo entidade CARRO com dois atributos-chave, 
Registro e IDVeiculo
UFMG DCC011 - profa. Mirella Moro 14
Fig. 3.8 - Projeto inicial dos tipos entidade para o banco de 
dados EMPRESA.
3. Relacionamentos
� Associações entre duas ou mais entidades 
distintas (instâncias) com um significado
� Exemplo: 
� Empregado John Smith trabalha para
UFMG DCC011 - profa. Mirella Moro 15
� Empregado John Smith trabalha para
Departamento pesquisa
� Empregado Fred Brown gerencia
Departamento pesquisa
� Departamento pesquisa controla Projeto X
Tipo de Relacionamento
� Define um conjunto de associações entre 
n tipos de entidade E1, E2,...,En
� Exemplo:
Trabalha_para entre Empregado e 
UFMG DCC011 - profa. Mirella Moro 16
� Trabalha_para entre Empregado e 
Departamento
Empregado
trabalha
para
Departmento
Tipo de Relacionamento
� Matematicamente, um tipo de relacionamento R 
é um conjunto de (instâncias de) 
relacionamentos ri, onde cada ri associa n 
(instâncias de) entidades (e1,...,en) e cada ej
pertence a um tipo de entidade E
UFMG DCC011 - profa. Mirella Moro 17
pertence a um tipo de entidade Ej
� R ∈ E1 x E2 x ... x En
� ri = (e1, ..., en)
� Grau de um Tipo de Relacionamento
� Número de tipos de entidade participantes de um tipo 
de relacionamento
UFMG DCC011 - profa. Mirella Moro 18
Figura 3.9 Algumas instâncias do conjunto de relacionamento 
TRABALHA_PARA, que representa um tipo relacionamento 
TRABALHA_PARA entre EMPREGADO e DEPARTAMENTO.
UFMG DCC011 - profa. Mirella Moro 19
Figura 3.10 Algumas instâncias de relacionamento do conjunto de 
relacionamento ternário FORNECE.
Restrições sobre relacionamentos
� Limitam as possíveis combinações de entidades que 
podem participar no conjunto de relacionamentos
� Cardinalidade: número de instâncias de um tipo de 
relacionamento do qual uma entidade pode participar
� Participação: se a existência de uma entidade depende 
UFMG DCC011 - profa. Mirella Moro 20
� Participação: se a existência de uma entidade depende 
de seu relacionamento com outra entidade através de 
um tipo de relacionamento � parcial ou total
� Ex. Todo empregado deve trabalhar p/ um departamento (total)
� Ex. Nem todo empregado gerencia um departamento (parcial)
� Cardinalidade + Participação � Restrições Estruturais
UFMG DCC011 - profa. Mirella Moro 21
Figura 3.12 Relacionamento GERENCIA 1:1
UFMG DCC011 - profa. Mirella Moro 22
Figura 3.13 Relacionamento TRABALHA_EM, M:N
M
UFMG DCC011 - profa. Mirella Moro 23
Esquema conceitual
5. Papéis e Relacionamentos 
Recursivos
� Entidades atuam com um determinado papel
� Significado do papel é dado por um nome, 
atribuído a cada tipo de entidade 
� Nomes só são necessários em tipos de 
UFMG DCC011 - profa. Mirella Moro 24
� Nomes só são necessários em tipos de 
relacionamento que envolvam mais de uma vez 
o mesmo tipo de entidade � relacionamentos 
recursivos
� Exemplo: Supervisão, onde Empregado tem os 
papéis de Supervisor e Subordinado
UFMG DCC011 - profa. Mirella Moro 25
Figura 3.11 Um relacionamento recursivo SUPERVISAO
entre EMPREGADO, no papel de supervisor (1), 
e EMPREGADO, no papel de subordinado (2).
6. Entidade Fraca
� Tipos de entidade que não têm chave 
própria
� As instâncias são identificadas através do 
relacionamento com entidades de outro 
UFMG DCC011 - profa. Mirella Moro 26
relacionamento com entidades de outro 
tipo, chamado de dono ou identificador, 
juntamente com os valores de alguns 
atributos (chave parcial)
� Exemplo: Dependente
M
UFMG DCC011 - profa. Mirella Moro 27
Notação ER
UFMG DCC011 - profa. Mirella Moro 28
Notação ER
UFMG DCC011 - profa. Mirella Moro 29 UFMG DCC011 - profa. Mirella Moro 30Figura 3.15 Diagrama ER para o esquema EMPRESA. 
Resumo
� Atributos: simples, composto, multi-
valorado
� Entidades e seus conjuntos
� Atributos-chave
UFMG DCC011 - profa. Mirella Moro 31
� Atributos-chave
� Papéis 
� Cardinalidades (1:1, 1:N, N:M)
� Participação (total, parcial)
Exercícios
1. Formula 1
2. Agência de viagens
3. Artigos publicados
4. Loja equipamento fotográfico
Identificar nesta ordem
UFMG DCC011 - profa. Mirella Moro 32
Identificar nesta ordem
a) as entidades
b) os atributos de cada entidade
c) os identificadores de cada entidade
d) os principais relacionamentos
e) as cardinalidades mínimas/máximas
f) desenhar o modelo entidade-relacionamento
Aulas/aula04.pdf
DCC011
Introdução a Banco de Dados -04Introdução a Banco de Dados -04
Mirella M. Moro
Departamento de Ciência da Computação
Universidade Federal de Minas Gerais
mirella@dcc.ufmg.br
Modelo Entidade-Relacionamento
1.Revisão1.Revisão
2.UML
3.Abstração de Dados e 
Representação de 
Conhecimento
4.Exercícios
Processo de Projeto de 
Bancos de Dados
Requisitos de Dados
Independente 
Esquema Conceitual
Modelo de dados de alto nível
Independente 
de SGBD
4UFMG DCC011 - profa. Mirella Moro
1. Revisão 
� Entidades, atributos, relacionamentos
� Atributos: simples, composto, multi-valorado
� Atributos-chave
� Papéis � Papéis 
� Relacionamentos
� Cardinalidades (1:1, 1:N, N:M)
� Participação (total, parcial)
� Generalização/Especialização
� Total/parcial; sobreposta/disjunta; múltipla
5UFMG DCC011 - profa. Mirella Moro
Notação ER
ATRIBUTO
ATRIBUTO-CHAVE
6UFMG DCC011 - profa. Mirella Moro
Notação ER
7UFMG DCC011 - profa. Mirella Moro
supervisor supervisionado
8UFMG DCC011 - profa. Mirella MoroUFMG DCC011 - profa. Mirella Moro 8Figura 3.15 Diagrama ER para o esquema EMPRESA. 
2. Modelagem usando UML
� Classes:
10UFMG DCC011 - profa. Mirella Moro
Modelagem usando UML
� Associações:
11UFMG DCC011 - profa. Mirella Moro
Modelagem usando UML
� Associações (especializacao/generalizacao):
12UFMG DCC011 - profa. Mirella Moro
Modelagem usando UML
� Associações (agregação):
13
Polygon Point3..*1 contains
UFMG DCC011 - profa. Mirella Moro
Modelagem usando UML
� Associações (qualificador):
14UFMG DCC011 - profa. Mirella Moro
Modelagem usando UML
Hierarquia de Especialização/Generalização
UFMG DCC011 - profa. Mirella Moro 15
Figura 4.10 Um diagrama de classe correspondente ao diagrama EER da Figura 
4.7 ilustrando as notações UML para especialização/generalização.
Modelagem usando UML
16UFMG DCC011 - profa. Mirella Moro
3. Conceitos de Abstração
� Conceitos abstratos do Modelo Conceitual 
� aplicam-se a outras áreas
� Exemplo: Representação de Conhecimento 
(KR – Knowledge Representation)(KR – Knowledge Representation)
� KR
� Conceitos para modelar algum domínio de 
discurso, criando uma ontologia 
� Ontologia: descreve os conceitos do domínio
17UFMG DCC011 - profa. Mirella Moro
Knowledge Representation
Modelagem Conceitual
� Comum
� Processo de abstração para identificar propriedades 
comuns e aspectos importantes de objetos no 
minimundo
� Conceitos, restrições, operações e linguagens para 
definir dados e representar conhecimentodefinir dados e representar conhecimento
� Diferente
� KR = mais ampla � regras (inferência, dedução e 
pesquisa), conhecimento incompleto, temporal e 
espacial
� KR = inclui mecanismos de raciocínio (dedução, 
inferência)
� KR = mistura esquemas e instâncias
18UFMG DCC011 - profa. Mirella Moro
LEITURA
� Elmasri/Navathe
� 3a edição: 4.8 (5a edição: 4.7)
� Classificação e Instanciação
� Identificação� Identificação
� Especialização e Generalização
� Agregação e Associação
19UFMG DCC011 - profa. Mirella Moro
Aulas/aula05.pdf
DCC011
Introdução a Banco de Dados -05Introdução a Banco de Dados -05
Mirella M. Moro
Departamento de Ciência da Computação
Universidade Federal de Minas Gerais
mirella@dcc.ufmg.br
Programa
� Introdução
� Conceitos básicos, características da abordagem de banco de 
dados, modelos de dados, esquemas e instâncias, arquitetura 
de um sistema de banco de dados, componentes de um sistema 
de gerência de banco de dados.
� Modelos de dados e linguagens
2
� Modelos de dados e linguagens
� Modelo entidade-relacionamento (ER), modelo relacional, 
álgebra relacional, SQL.
� Projeto de bancos de dados
� Fases do projeto de bancos de dados, projeto lógico de bancos 
de dados relacionais, normalização.
� Novas Tecnologias e Aplicações de Banco de Dados
UFMG DCC011 - profa. Mirella Moro
Modelo Entidade-Relacionamento
1.Revisão
2.Generalização e especialização
3.Restrições sobre Hierarquias de 
Especialização/Generalização
4.Relacionamento ternário
Processo de Projeto de 
Bancos de Dados
Requisitos de Dados
Independente 
Esquema Conceitual
Modelo de dados de alto nível
PONTO
DE PARTIDA
USANDO O
MODELO ER
4
Independente 
de SGBD
UFMG DCC011 - profa. Mirella Moro
1. Revisão 
� Entidades, atributos, relacionamentos
� Atributos: simples, composto, multi-
valorado
� Atributos-chave
5
� Atributos-chave
� Papéis 
� Relacionamentos
� Cardinalidades (1:1, 1:N, N:M)
� Participação (total, parcial)
UFMG DCC011 - profa. Mirella Moro
Notação ER
6UFMG DCC011 - profa. Mirella Moro
ATRIBUTO
ATRIBUTO-CHAVE
Notação ER
7UFMG DCC011 - profa. Mirella Moro
supervisor supervisionado
UFMG DCC011 - profa. Mirella Moro 8Figura 3.15 Diagrama ER para o esquema EMPRESA. 
� Necessário saber que medicamentos 
existem e que medicamentos foram 
Entidade-associativa
médico pacienteconsultam n
9
existem e que medicamentos foram 
prescritos em cada consulta
� Medicamento
� Relacionada a Médico?
� Relacionada a Paciente? 
UFMG DCC011 - profa. Mirella Moro
Entidade-associativa
� “Relacionamento de relacionamento”
médico pacienteconsultan n
10
n n
medicamento
prescrição
n
n
UFMG DCC011 - profa. Mirella Moro
2. Especialização e Generalização
� Especialização:
� Processo de definição de um conjunto de sub-classes
(sub-tipos) de um tipo de entidade
� Generalização:
11
� Processo de definição de um tipo de entidade 
genérico (super-classe ou super-tipo) a partir de um 
conjunto de tipos de entidade
� Exemplo: {secretária, engenheiro, técnico} é 
uma especialização de Empregado; ou 
Empregado é uma generalização de {secretária, 
engenheiro, técnico} 
UFMG DCC011 - profa. Mirella Moro
Especialização e Generalização
� Toda instância de uma sub-classe (ou sub-tipo) 
é também instância de sua super-classe (ou 
super-tipo)
� Ex.: “John Smith” é um engenheiro e também é um 
empregado
12
empregado
� Herança de Tipo:
� Uma entidade de uma sub-classe tem todos os 
atributos e relacionamentos da super-classe
� Em outra palavras, ela herda todos os atributos e 
relacionamentos da super-classe
� E pode definir seus proprios atributos e 
relacionamentos locais ou especificos (*)
UFMG DCC011 - profa. Mirella Moro
13
Figura 4.1 Notação de diagrama EER para representar as subclasses 
e a especialização.
UFMG DCC011 - profa. Mirella Moro 14
Figura 4.2 Instâncias de uma especialização.
UFMG DCC011 - profa. Mirella Moro
Especialização
O processo de especialização permite:
� Definir um conjunto de sub-classes (sub-
tipos) de um tipo de entidade
� Estabelecer atributos específicos adicionais 
15
� Estabelecer atributos específicos adicionais 
para cada sub-classe (sub-tipo)
� Estabelecer tipos de relacionamentos 
especificos adicionais entre cada sub-
classe (sub-tipo) e outros tipos de 
entidades ou outras sub-classes (sub-
tipos). 
UFMG DCC011 - profa. Mirella Moro 16
Figura 4.3 Generalização. (a) Dois tipos de entidade, CARRO e CAMINHAO. 
(b) Generalizando CARRO e CAMINHAO na superclasse VEICULO. 
UFMG DCC011 - profa. Mirella Moro
Como generaliza?
3. Restrições sobre Hierarquias de 
Especialização/Generalização
Definida por atributo ou usuário
� Disjução:
� Sub-classes podem ser disjuntas ou sobrepostas
� Completude:
A cobertura da super-classe em relação às sub-
17
� A cobertura da super-classe em relação às sub-
classes pode ser total ou parcial
� Restrições possíveis:
� Disjunta/Total
� Disjunta/Parcial
� Sobreposta/Total
� Sobreposta/Parcial
UFMG DCC011 - profa. Mirella Moro
d = disjunção
Um Empregado é 
-Secretária OU
-Técnico OU
-Engenheiro
18
Figura 4.4 Notação do diagrama EER para uma especialização definida 
por atributo em TipoTrabalho.
UFMG DCC011 - profa. Mirella Moro
o = sobreposição
Uma peça é 
-fabricada E/OU
-fornecida
19
Figura 4.5 Notação de diagrama EER para uma especialização sobreposta 
(não disjunta).
UFMG DCC011 - profa. Mirella Moro
TOTAL
TODO Empregado é
Assalariado OU
Horista
20
Figura 4.1 Notação de diagrama EER para representar as subclasses 
e a especialização.
UFMG DCC011 - profa. Mirella Moro
Restrições sobre Hierarquias de 
Especialização/Generalização
� Hierarquia
� Toda sub-classe participa como uma sub-
classe em apenas um relacionamento 
classe/sub-classe
21
classe/sub-classe
� Reticulado
� lattice, herança múltipla, grade de especialização
� Uma sub-classe pode participar em mais de 
um relacionamento classe/sub-classe 
UFMG DCC011 - profa. Mirella Moro 22
Figura 4.6 Um reticulado de especialização, com a subclasse 
GERENTE_ENGENHARIA compartilhada.
UFMG DCC011 - profa. Mirella Moro
Figura 4.7 Um reticulado de 
especialização, com herança 
múltipla, para um banco de 
dados UNIVERSIDADE.
23UFMG DCC011 - profa. Mirella Moro
4. Relacionamentos Ternários
X
24
X
UFMG DCC011 - profa. Mirella Moro
Relacionamentos Ternários
Representação
usando Tipo de Entidade Fraca
25
Figura 4.11 Tipos de relacionamentos ternários. (a) O relacionamento FORNECE. 
(b) Três relacionamentos binários não equivalentes a FORNECE. 
(c) FORNECE representado como um tipo entidade fraca.
UFMG DCC011 - profa. Mirella Moro
Relacionamentos Ternários
Outro exemplo de não equivalência 
26
Figura 4.12 Outro exemplo de tipos relacionamento ternário versus binário.
UFMG DCC011 - profa. Mirella Moro
Aulas/aula06.pdf
DCC011
Introdução a Banco de Dados -06Introdução a Banco de Dados -06
Mirella M. Moro
Departamento de Ciência da Computação
Universidade Federal de Minas Gerais
mirella@dcc.ufmg.br
Modelo Entidade-Relacionamento
Requisitos de Dados
Independente 
Esquema Conceitual
Modelo de dados de alto nível
Processo de Projeto de 
Bancos de Dados
UFMG DCC011 - profa. Mirella Moro 4
Independente 
de SGBD
Modelo Entidade-Relacionamento
� Entidades, atributos, relacionamentos
� Atributos: simples, composto, multi-
valorado
� Atributos-chave
UFMG DCC011 - profa. Mirella Moro 5
� Atributos-chave
� Papéis 
� Relacionamentos
� Cardinalidades (1:1, 1:N, N:M)
� Participação (total, parcial)
UFMG DCC011 - profa. Mirella Moro 6Figura 3.15 Diagrama ER para o esquema EMPRESA. UFMG DCC011 - profa. Mirella Moro 7
Figura 4.7 Um reticulado de 
especialização, com herança 
múltipla, para um banco de 
dados UNIVERSIDADE.
IMPORTANTE
� Modelo Conceitual
� CONCEITOS, ABSTRAÇÕES
� ENTIDADE, ATRIBUTO, RELACIONAMENTO
� Piloto, equipe, país, circuito, corrida
� Piloto representa País
UFMG DCC011 - profa. Mirella Moro 9
� Piloto representa País
� Equipe sede em País
� SE país é uma entidade; Piloto e equipe possuem atributo País?
� Mas a especificação diz!!!! ????
� N modelos conceituais para um cenário
� Modelo tem APENAS o que está na especificação
� Restrições, exceções, peculiaridades, viagem na maionese: 
OUTRO MODELO
� Pecar por excesso x Pecar por falta
Modelo Relacional 
(3rd ed: 7.1-7.2; 5th ed: 5.1-5.2)
1. Introdução
2. Conceitos do Modelo Relacional
3. Restrições de Integridade Básicas
4. Esquema do BD Relacional
5. Restrições de Integridade do Esquema 
6. Exercício
Requisitos de Dados
Independente 
Esquema Conceitual
Modelo de dados de alto nível
Processo de Projeto de 
Bancos de Dados
UFMG DCC011 - profa. Mirella Moro 11
Independente 
de SGBD
SGBD 
Específico
Esquema Lógico (Conceitual)
em um modelo de dados
de um SGBD específico
1. Introdução
� O modelo relacional representa um banco de 
dados como um conjunto de relações
� Informalmente
uma relação = uma tabela de valores
UFMG DCC011 - profa. Mirella Moro 12
uma relação = uma tabela de valores
� cada linha representa uma coleção de dados 
relacionados
� cada linha de uma tabela representa um 
“fato” que tipicamente corresponde a uma 
entidade ou relacionamento do mundo real
2. Conceitos do Modelo Relacional
� Linhas de uma relação (tabela) = tuplas
� Cabeçalho de cada coluna = atributo
� Conjunto de valores que pode aparecer em cada coluna 
= domínio
UFMG DCC011 - profa. Mirella Moro 13
Figura 7.1 Os atributos e as tuplas de uma relação ALUNO.
Conceitos: Esquema de Relação
� Descreve a relação
� R(A1,A2, ...,An), onde:
� R � Nome da relação
� Ai � Nome de um atributo
UFMG DCC011 - profa. Mirella Moro 14
� Ai � Nome de um atributo
� n � Grau da relação
� Cada Atributo Ai e’ o nome de um papel 
desempenhado por algum dominio D no Esquema da 
relação R
� Exemplo:
� Estudante (Nome, CPF, Telefone, Endereço, GPA)
Conceitos: Relação
Relação r(R)
� Conjunto de tuplas: r = {t1,t2, ..., tm}
� Cada tupla é uma lista ordenada de valores: 
t = <v1,v2, ..., vn>
UFMG DCC011 - profa. Mirella Moro 15
t = <v1,v2, ..., vn>
� Attributo Ai na tupla t: t[Ai]
� r(R) ⊆⊆⊆⊆ dom(A1) x dom(A2) x ... x dom(An)
� As tuplas de uma relação não são ordenadas (entre elas)
Características de uma Relação
UFMG DCC011 - profa. Mirella Moro 16
� Registros em um arquivo são ordenados de acordo com a 
posição em que são armazenados no disco
Figura 7.2 A relação ALUNO da Figura 7.1 com uma ordenação diferente das tuplas.
� Uma tupla é uma lista ordenada de valores
� O valor de cada atributo em uma tupla é 
atômico
� Atributos compostos e multivalorados não são 
permitidos
Características de uma Relação
UFMG DCC011 - profa. Mirella Moro 17
permitidos
� O valor especial null é utilizado para representar 
valores não conhecidos ou não aplicáveis a uma 
determinada tupla
� Um esquema de relação pode ser visto como 
uma declaração ou asserção
� Esquema de relação = Predicado
� Valores em cada tupla satisfazem o predicado
3. Restrições de Integridade Básicas
Restrições de domínio
� Especificam que o valor de cada atributo A 
de uma relação deve ser um valor atômico 
do domínio dom(A)
UFMG DCC011 - profa. Mirella Moro 18
do domínio dom(A)
Restrições de Integridade
Restrições de chave
� Por definição todas as tuplas são distintas
� Um conjunto de atributos SK de um esquema de relação 
R tal que:
para duas tuplas distintas quaisquer t1 e t2 de r(R)
UFMG DCC011 - profa. Mirella Moro 19
para duas tuplas distintas quaisquer t1 e t2 de r(R)
t1[SK] ≠ t2[SK] é uma super-chave de R
� Super-chave default: todos os atributos
� Uma chave de R é uma super-chave com a propriedade 
adicional de que nenhum de seus subconjuntos também 
seja uma super-chave de R
� {SSN, Name, Age} = super-chave; {SSN} = chave
Restrições de Integridade
Restrições de chave
� Um esquema de relação pode ter mais de uma chave �
chaves candidatas
� Dentre as chaves candidatas de um esquema de relação, 
uma delas é indicada como chave primária e as demais 
UFMG DCC011 - profa. Mirella Moro 20
uma delas é indicada como chave primária e as demais 
constituem as chaves alternativas
Figura 7.4 A relação CARRO com duas chaves candidatas: NumeroLicenca e NumeroChassi. 
Restrições de Integridade
Restrições em valores null
� Especifica se a um atributo é permitido ter valores 
null
� Exemplo: todo Aluno deve ter um nome válido, 
UFMG DCC011 - profa. Mirella Moro 21
� Exemplo: todo Aluno deve ter um nome válido, 
não-null
4. Esquema de um BD Relacional
Um esquema de BD relacional S define: 
� um conjunto de esquemas de relação 
R = {R1,R2, ...,Rn}, e 
� um conjunto de restrições de integridade I
UFMG DCC011 - profa. Mirella Moro 22
� um conjunto de restrições de integridade I
S = (R,I)
Esquema de um BD Relacional
UFMG DCC011 - profa. Mirella Moro 23
Figura 7.5 Diagrama para o esquema do banco de dados relacional EMPRESA.
5. Restrições de Integridade do Esquema
� Outras restrições além das restrições de 
domínio e de chave
Restrição de integridade de entidade
UFMG DCC011 - profa. Mirella Moro 24
Restrição de integridade de entidade
� Nenhum componente de uma chave 
primária pode ser nulo
Restrições de Integridade
Restrição de integridade referencial
� Usada para manter a consistência entre 
tuplas de duas relações
� Uma tupla em uma relação que se refere 
UFMG DCC011 - profa. Mirella Moro 25
� Uma tupla em uma relação que se refere 
a outra relação deve referenciar uma 
tupla existente nesta outra relação
� Aparecem devido aos relacionamentos
entre entidades
Restrições de Integridade
Restrição de integridade referencial
� Seja FK um conjunto de atributos de um 
esquema de relação R1 definido sobre o 
mesmo domínio dos atributos da chave 
UFMG
DCC011 - profa. Mirella Moro 26
mesmo domínio dos atributos da chave 
primária PK de outro esquema R2. Então, 
para qualquer tupla t1 de R1:
� t1[FK] = t2[PK], onde t2 é uma tupla de R2 ou
� t1[FK] é nulo
UFMG DCC011 - profa. Mirella Moro 27
Figura 7.7 Restrições de integridade referencial exibidas no esquema de 
um banco de dados relacional EMPRESA.
Notação
NomeTabelaPrincipal
Chave Atributo1 … Atributon
UFMG DCC011 - profa. Mirella Moro 28
NomeTabelaReferenciada
ChaveAtributo1 … Atributon
� A restrição de integridade referencial pode ser 
expressa pela notação 
R1[FK] � R2[PK],
onde PK é a chave primária de R2 e FK é a chave 
Restrições de Integridade
UFMG DCC011 - profa. Mirella Moro 29
onde PK é a chave primária de R2 e FK é a chave 
estrangeira de R1
� Exemplos:
EMPLOYEE[DNO] � DEPARTMENT[DNUMBER]
WORKS_ON[ESSN] � EMPLOYEE[SSN]
WORKS_ON[PNO] � PROJECT[PNUMBER]
Revisão
� Uma relação = uma tabela de valores
� Tuplas, atributos, domínios
� Restrições de domínio
� Restrições de chave
� chave e super-chave; chave candidata, chave 
UFMG DCC011 - profa. Mirella Moro 30
� chave e super-chave; chave candidata, chave 
primária, chave alternativa
� Restrições de valores null
� Esquema = relações + restrições integridade
� Restrição de integridade de entidade
� chave não nulo
� Restrições de integridade referencial
� chave estrangeira
Exercício
� Reserva de passagem (2o exercício da aula 5)
� EM DUPLA
� Adicionar chaves primárias e estrangeiras
UFMG DCC011 - profa. Mirella Moro 33
NomeT1
Chave Atributo1 … NomeRel
NomeT2
ChaveAtributo1 … Atributon
NomeT2 (chave2, atrib1, …, atribN)
NomeT1 (chave1, atrib1, … , nomeRel)
nomeRel referencia NomeT2 
OU
nomeRel referencia NomeT2:chave2
Aulas/aula07.pdf
DCC011
Introdução a Banco de Dados -07Introdução a Banco de Dados -07
Mirella M. Moro
Departamento de Ciência da Computação
Universidade Federal de Minas Gerais
mirella@dcc.ufmg.br
Programa
� Introdução
� Conceitos básicos, características da abordagem de banco de 
dados, modelos de dados, esquemas e instâncias, arquitetura 
de um sistema de banco de dados, componentes de um sistema 
de gerência de banco de dados.
� Modelos de dados e linguagens
UFMG DCC011 - profa. Mirella Moro 2
� Modelos de dados e linguagens
� Modelo entidade-relacionamento (ER), modelo relacional, 
álgebra relacional, SQL.
� Projeto de bancos de dados
� Fases do projeto de bancos de dados, projeto lógico de bancos 
de dados relacionais, normalização.
� Novas Tecnologias e Aplicações de Banco de Dados
Modelo Relacional
1. Revisão
2. Instância de um BD Relacional
3. Operações sobre Relações
4. Violações de Restrições
1. Revisão 
� Uma relação = uma tabela de valores
� Tuplas, atributos, domínios
� Esquema = relações + restrições integridade
� Restrições de domínio
� Restrições de chave (candidata, primária, alternativa)
� Restrições de valores null
UFMG DCC011 - profa. Mirella Moro 4
� Restrições de valores null
� Restrição de integridade de entidade (chave não nula)
� Restrições de integridade referencial (chave estrangeira)
NomeTabelaPrincipal
Chave Atributo1 … Atributon
NomeTabelaReferenciada
ChaveAtributo1 … Atributon
2. Instância de um BD Relacional
UFMG DCC011 - profa. Mirella Moro 10
Figura 7.7 Restrições de integridade referencial exibidas no esquema de 
um banco de dados relacional EMPRESA.
Instância de um BD Relacional
UFMG DCC011 - profa. Mirella Moro 11
1
4
5
5
5
���� ���� ����
Instância de um BD Relacional
UFMG DCC011 - profa. Mirella Moro 12
Figura 7.6 Um estado de um banco de dados possível para o esquema do banco 
de dados relacional EMPRESA.
Instância de um BD Relacional
UFMG DCC011 - profa. Mirella Moro 13
Figura 7.6 Um 
estado de um 
banco de dados 
possível para o 
esquema do 
banco de dados 
relacional 
EMPRESA.
3. Operações sobre Relações
� As operações sobre um BD relacional podem ser 
classificadas em:
� Operações de recuperação (consulta)
� Operações de atualização
UFMG DCC011 - profa. Mirella Moro 14
� Operações de atualização (sobre tuplas):
� Inserção (insert)
� Remoção (delete)
� Modificação (update)
Operações sobre Relações
� Inserção (insert)
� Adiciona uma nova tupla (ou várias) em uma 
relação
� Remoção (delete)
UFMG DCC011 - profa. Mirella Moro 15
� Remoção (delete)
� Remove uma tupla da relação
� Modificação (update)
� Altera os dados de uma tupla
Em qualquer operação, a integridade da 
base de dados relacional deve ser mantida
4. Violação de Restrições
� Restrições de integridade não podem ser 
violadas!!!
Inserção
� Restrição de Domínio: valor fora do domínio
UFMG DCC011 - profa. Mirella Moro 16
� Restrição de Domínio: valor fora do domínio
� Restrição de Chave: valor já existe
� Restrição de integridade de entidade: se chave 
for null
� Restrição de integridade referencial: se chave 
estrangeira referencia tupla inexistente 
� Ação default: rejeitar inserção (com explicação)
Exemplos
Empregado
Nome IM Sobrenome CPF DataNasc Endereço Salário Supervisor Depto
Departamento
NomeD NumeroDepCPFGer DataInicioGer
Inserir <‘Mirella’, ‘M’, ‘Moro’, 1234567890, ‘1960-04-05’, 
‘6347 Whatever’, 28000, nulo, 4> em Empregado
UFMG DCC011 - profa. Mirella Moro 17
Inserir <‘Cecilia’, ‘F’, ‘Kolonsky’, nulo, ‘1960-04-05’, 
‘6347 Whatever’, 28000, 12312312345, 4> em Empregado
Inserir <‘Alicia’, ‘J’, ‘Zelaya’, 1234567890, ‘1960-04-05’, 
‘9281 Whatever’, 28000, 1234567890, 6> em Empregado
‘6347 Whatever’, 28000, nulo, 4> em Empregado
Violação de Restrições
Remoção
� Tupla excluída é referenciada por chaves 
estrangeiras
� Ação default: bloqueia/rejeitar a remoção 
(com explicação)
UFMG DCC011 - profa. Mirella Moro 18
(com explicação)
� OUTRAS OPÇÕES????
� Propagar remoção de tuplas que violem uma restrição 
de integridade referencial – Efeito cascata
� Modificar o valor da chave estrangeira para nulo
Violação de Restrições
Modificação
� Modificar o valor de um atributo que não é 
chave primária ou estrangeira não causa 
problemas (se o valor for do domínio, e, se for 
null, que este valor seja permitido)
UFMG DCC011 - profa. Mirella Moro 19
null, que este valor seja permitido)
� Modificar a chave primaria é igual a excluir uma 
tupla e inserir outra
� Modificar chave estrangeira: SGBD deve verificar 
se novo valor do atributo referencia tupla 
existente 
Opções de Remoção da RIR
� A cada RIR R1[FK] � R2[PK] é possível associar uma 
opção de remoção que especifica como a remoção 
de uma tupla de R2 é executada em relação a R1
� As opções de remoção possíveis são:
UFMG DCC011 - profa. Mirella Moro 20
� bloqueio
� propagação
� substituição por nulos
� Notação: 
R1[FK] � R2[PK], 
onde op ∈ {b, p, n} 
op
UFMG DCC011 - profa. Mirella Moro 21
EXERCÍCIO: adicionar as opções de remoção às chaves estrangeiras 
• bloqueio
• propagação
• substituição 
por nulos
n
p
p
bb
b
b
UFMG DCC011 - profa. Mirella Moro 22
Restrições de integridade referencial com opções de remoção
p
b
• bloqueio
• propagação
• substituição 
por nulos
Aulas/aula10.pdf
DCC011
Introdução a Banco de Dados -10Introdução a Banco de Dados -10
Mirella M. Moro
Departamento de Ciência da Computação
Universidade Federal de Minas Gerais
mirella@dcc.ufmg.br
Programa
� Introdução
� Conceitos básicos, características da abordagem de banco de 
dados,
modelos de dados, esquemas e instâncias, arquitetura 
de um sistema de banco de dados, componentes de um sistema 
de gerência de banco de dados.
� Modelos de dados e linguagens
DCC011 - profa. Mirella 2
� Modelos de dados e linguagens
� Modelo entidade-relacionamento (ER), modelo relacional,
álgebra relacional, SQL.
� Projeto de bancos de dados
� Fases do projeto de bancos de dados, projeto lógico de bancos 
de dados relacionais, normalização.
� Novas Tecnologias e Aplicações de Banco de Dados
Revisão
DCC011 - profa. Mirella 3
1.Projeto de Banco de Dados
2.Modelo Entidade-Relacionamento
3.Modelo Relacional
1. Projeto de Banco de Dados 
Visão
Externa1
Visão
Externa2
Modelo Conceitual 
requisitosrequisitos
DCC011 - profa. Mirella 4
Modelo Lógico 
Modelo Físico
Esquema
Conceitual
Esquema
Lógico Esquema
Físico
INDEPENDENTE 
de SGBD
DEPENDENTE 
de SGBD
2. Modelo 
Entidade-
Relacionamento
DCC011 - profa. Mirella 5
Figura 4.7 Um reticulado de 
especialização, com herança 
múltipla, para um banco de 
dados UNIVERSIDADE.
IMPORTANTE
Modelo ER
� Modelo Conceitual
� CONCEITOS, ABSTRAÇÕES
� ENTIDADE, ATRIBUTO, RELACIONAMENTO
� Piloto, equipe, país, circuito, corrida
� Piloto representa País
DCC011 - profa. Mirella 6
� Piloto representa País
� Equipe sede em País
� SE país é uma entidade; Piloto e equipe possuem atributo País?
� Mas a especificação diz!!!! ????
� N modelos conceituais para um cenário
� Modelo tem APENAS o que está na especificação
� Restrições, exceções, peculiaridades, viagem na maionese: 
OUTRO MODELO
3. Modelo Relacional
� Linhas de uma relação (tabela) = tuplas
� Cabeçalho de cada coluna = atributo
� Conjunto de valores que pode aparecer em cada coluna 
= domínio
DCC011 - profa. Mirella 7
Figura 7.1 Os atributos e as tuplas de uma relação ALUNO.
Álgebra Relacional
1. Introdução
2. Seleção
3. Projeção
4. Sequencia
5. Conjunto
6. Produto Cartesiano
7. Junções
8DCC011 - profa. Mirella
Introdução
� Linguagens de consultas: Permitem manipulação 
e recuperação de dados de um BD
� O modelo relacional suporta LCs simples e 
poderosas:
� Forte fundamentação teórica baseada em lógica
DCC011 - profa. Mirella 9
� Forte fundamentação teórica baseada em lógica
� Permite otimizações
� Ling. de consulta ≠ ling. de programação
� LCs não tem a intenção de suportar cálculos 
complexos
� LCs suportam acesso fácil e eficiente a grandes 
conjuntos de dados
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
LCs relacionais formais
Duas LCs matemáticas formam a base para as 
LCs “reais” (p.ex., SQL), e p/ implementação:
1. Álgebra relacional: Predominantemente 
operacional, útil para representar planos de 
DCC011 - profa. Mirella 10
operacional, útil para representar planos de 
execução
2. Cálculo Relacional : Permite usuários 
descreverm o que querem, ao invés de como 
querem (não operacional, declarativa)
Entender álgebra e cálculo é uma chave para 
entender SQL e processamento de consultas.
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
Consultas
� Uma consulta é aplicada para instâncias 
de relação, e o resultado de uma consulta 
é também uma instância de relação
� Esquemas de consumo relações para uma 
DCC011 - profa. Mirella 11
� Esquemas de consumo relações para uma 
consulta são fixadas (mas consultas rodarão 
independente de exemplos!) 
� O esquema para o resultado de uma 
propensa consulta é também fixada! 
Determinada por definição de construção de 
linguagem de consulta
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
Álgebra Relacional: Resumo
� Dadas duas relações R1 e R2
� Operações Básicas
� Selection (σ) Seleciona em sub-conjunto de fileiras da relação
� Projection (pi) Deleta colunas indesejadas da relação
� Cross-product (××××) Permite-nos combinar R1 e R2
DCC011 - profa. Mirella 12
� Cross-product (××××) Permite-nos combinar R1 e R2
� Set-difference () Tuplas em R1, mas não em R2
� Union (∪∪∪∪) Tuplas em R1 e em R2
� Operações Adicionais:
� Intersecção, junção, divisão, renomear
Desde que cada operação retorna uma relação, operações 
podem ser compostas !
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
Operação de Seleção
σσσσ(DNO = 4 AND SALARY>25000) OR (DNO=5) (EMPLOYEE)
DCC011 - profa. Mirella 13
Base de Dados:
Operação de Seleção
?????
DCC011 - profa. Mirella 14
Operação de Projeção
� Projeta as tuplas de uma relação sobre um 
determinado conjunto de atributos
� Notação:
pi<atributos> (<nome da relação>)
DCC011 - profa. Mirella 15
pi<atributos> (<nome da relação>)
� Exemplos:
� piLNAME,FNAME,SALARY (EMPLOYEE)
� piSEX,SALARY (EMPLOYEE)
Operação de Projeção
piLNAME,FNAME,SALARY (EMPLOYEE) piSEX,SALARY (EMPLOYEE)
DCC011 - profa. Mirella 16
Operação de Projeção
Base de Dados: ???
DCC011 - profa. Mirella 17
???
Sequência de Operações
� Várias operações podem ser combinadas para 
formar uma expressão da álgebra relacional
� piFNAME,LNAME,SALARY (σσσσDNO = 5 (EMPLOYEE))
DCC011 - profa. Mirella 18
Sequência de Operações
� Pode-se especificar relações temporárias e alterar 
o nome dos atributos da relação resultante:
� TEMP � σσσσDNO=5 (EMPLOYEE)
� R(FIRSTNAME, LASTNAME, SALARY) � piFNAME,LNAME,SALARY (TEMP)
DCC011 - profa. Mirella 19
R
Sequência de Operações
Base de Dados:
DCC011 - profa. Mirella 20
Operações de Conjunto
� União: Efetua a união de duas relações 
compatíveis
� Notação: R ∪ S
� Diferença: Efetua a diferença entre duas 
DCC011 - profa. Mirella 21
� Diferença: Efetua a diferença entre duas 
relações compatíveis
� Notação: R − S
� Interseção: Efetua a interseção de duas 
relações compatíveis
� Notação: R ∩ S
Operações de Conjunto
� Duas relações R(A1,A2,..., An) e S(B1,B2,..., Bn) são 
(união) compatíveis quando tiverem o mesmo grau e 
dom(Ai) = dom(Bi)
� Exemplo:
� RESULT1 � piSSN ( σσσσDNO = 5 (EMPLOYEE))
DCC011 - profa. Mirella 22
� RESULT1 � piSSN ( σσσσDNO = 5 (EMPLOYEE))
� RESULT2(SSN) � piSUPERSSN (σσσσDNO = 5 (EMPLOYEE))
� RESULT � RESULT1 ∪ RESULT2
Figura 6.3 Resultado da operação UNIÃO, 
RESULTADO ¬ RESULTADO1 U RESULTADO2.
Operações de Conjunto
Duas relações compatíveis
STUDENT ∪ INSTRUCTOR
STUDENT ∩ INSTRUCTOR
DCC011 - profa. Mirella 23
STUDENT - INSTRUCTOR
INSTRUCTOR - STUDENT
STUDENT ∩ INSTRUCTOR
Figura 6.4 As operações de conjunto UNIÃO, INTERSEÇÃO e SUBTRAÇÃO.
(a) Duas relações união compatíveis.
(b) ALUNO U INSTRUTOR. (c) ALUNO ∩ INSTRUTOR.
(d) ALUNO  INSTRUTOR. (e) INSTRUTOR  ALUNO.
Operações de Conjunto
Base de Dados:
DCC011 - profa. Mirella 24
Operações de Conjunto
Produto Cartesiano
� Cada linha de S1 é combinada com cada 
linha de R1.
� Esquema resultante tem um campo por 
campo S1 e R1, com nomes campos 
DCC011 - profa. Mirella 25
campo S1 e R1, com nomes campos 
‘herdados’ se possível.
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
Operações de Conjunto
Produto Cartesiano
� Conflito: Ambos S1 e 
R1 têm um campo 
chamado sid.
Base de Dados:
DCC011 - profa. Mirella 26
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
Operações de Conjunto
� Produto Cartesiano: combina as tuplas de duas
relações.
� Notação: R × S
� Exemplo:
FEMALE_EMPS� σσσσ (EMPLOYEE)
DCC011 - profa. Mirella 27
FEMALE_EMPS� σσσσSEX = ‘F’ (EMPLOYEE)
EMPNAMES � piFNAME, LNAME, SSN (FEMALE_EMPS)
Produto Cartesiano
EMP_DEPENDENTS � EMPNAMES × DEPENDENT
DCC011 - profa. Mirella 28
ACTUAL_DEPENDENTS � σσσσSSN = ESSN (EMP_DEPENDENTS)
RESULT � pipipipiFNAME,LNAME,DEPENDENT_NAME (ACTUAL_DEPENDENTS)
Operação de Junção
� Combina as tuplas de duas relações que satisfazem 
uma determinada condição
� Permite processar relacionamentos entre relações
� Notação: R <cond> S
DCC011 - profa. Mirella 29
� Notação: R <cond> S
� A condição de junção é geralmente da forma 
<cond1> AND <cond2> AND ... AND <condn>,
onde <condi> é uma expressão A θθθθ B, sendo A um 
atributo de R, B um atributo de S e θ um dos 
operadores {=,<, ≤,>, ≥, ≠}
Operação de Junção
Base de Dados:
DCC011 - profa. Mirella 30
Operação de Junção
� Exemplo:
� DEPT_MGR� DEPARTMENT MGRSSN=SSN EMPLOYEE 
� Uma operação de junção que envolva apenas condições de 
DCC011 - profa. Mirella 31
� Uma operação de junção que envolva apenas condições de 
igualdade é chamada de eqüi-junção
� Uma junção natural é uma eqüi-junção na qual o segundo 
atributo de cada condição de igualdade é eliminado da 
relação resultante (uma junção natural é geralmente 
definida sobre atributos de mesmo nome)
� Notação: R S
Exemplos de Junção Natural 
� DEPT(DNAME,DNUM,MGRSSN,MGRSTARTDATE) � DEPARTMENT
PROJ_DEPT � PROJECT DEPT
DCC011 - profa. Mirella 32
� DEPT_LOCS � DEPARTMENT DEPT_LOCATIONS
Exemplos de 
Junção Natural
Base de Dados:
DCC011 - profa. Mirella 33
Exercícios
Autor (CodAutor, NomeAutor, CodEndereco, CodInst)
(CodEndereco) referencia Endereco
(CodInst) referencia Instituicao
Artigo (CodArtigo, Titulo, AnoPublicacao)
AutorArtigo (CodAutor, CodArtigo)
(CodAutor) referencia Autor
(CodArtigo) referencia Artigo
Instituicao (CodInst, NomeInst, CodEndereco)
DCC011 - profa. Mirella 34
Instituicao (CodInst, NomeInst, CodEndereco)
(CodEndereco) referencia Endereco
Endereco (CodEndereco, Rua, Numero, Bairro, Cidade, Estado, Pais, 
Cep)
1. Obter os títulos dos artigos seguidos do nome seus autores.
2. Obter os nomes dos autores que publicaram artigos em 1998 e 
1999.
Aulas/aula11.pdf
DCC011
Introdução a Banco de Dados -11Introdução a Banco de Dados -11
Mirella M. Moro
Departamento de Ciência da Computação
Universidade Federal de Minas Gerais
mirella@dcc.ufmg.br
Programa
� Introdução
� Conceitos básicos, características da abordagem de banco de 
dados, modelos de dados, esquemas e instâncias, arquitetura 
de um sistema de banco de dados, componentes de um sistema 
de gerência de banco de dados.
� Modelos de dados e linguagens
DCC011 - profa. Mirella 2
� Modelos de dados e linguagens
� Modelo entidade-relacionamento (ER), modelo relacional,
álgebra relacional, SQL.
� Projeto de bancos de dados
� Fases do projeto de bancos de dados, projeto lógico de bancos 
de dados relacionais, normalização.
� Novas Tecnologias e Aplicações de Banco de Dados
Álgebra Relacional: Resumo
� Dadas duas relações R1 e R2
� Operações Básicas
� Selection (σ) Seleciona em sub-conjunto de linhas da relação
� Projection (pi) Deleta colunas indesejadas da relação
� Cross-product (××××) Permite-nos combinar R1 e R2
DCC011 - profa. Mirella 3
� Cross-product (××××) Permite-nos combinar R1 e R2
� Set-difference () Tuplas em R1, mas não em R2
� Union (∪∪∪∪) Tuplas em R1 e em R2
� Operações Adicionais:
� Intersecção, junção, divisão, renomear
Desde que cada operação retorna uma relação, operações 
podem ser compostas !
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
σ mantém
as colunas
Álgebra Relacional: Seleção 
Relation Sells:
bar beer price
Joe’s Bud 2.50
Joe’s Miller 2.75
Sue’s Bud 2.50
Sue’s Miller 3.00
DCC011 - profa. Mirella 4
Sue’s Miller 3.00
JoeMenu � σbar=“Joe’s”(Sells):
bar beer price
Joe’s Bud 2.50
Joe’s Miller 2.75
Adaptado de Jeff Ullman – CS145, aut07
σ seleciona
linhas de 
acordo
com condição
Álgebra Relacional: Projeção 
Relation Sells:
bar beer price
Joe’s Bud 2.50
Joe’s Miller 2.75
Sue’s Bud 2.50
Sue’s Miller 3.00
MUITO MUITO MUITO MUITO 
IMPORTANTEIMPORTANTEIMPORTANTEIMPORTANTE
ÁLGEBRA ÁLGEBRA ÁLGEBRA ÁLGEBRA 
ELIMINAELIMINAELIMINAELIMINA
DUPLICATASDUPLICATASDUPLICATASDUPLICATAS
pi mantém
colunas
conforme
definido
DCC011 - profa. Mirella 5
Adaptado de Jeff Ullman – CS145, aut07
Sue’s Miller 3.00
Prices �pibeer,price (Sells):
beer price
Bud 2.50
Miller 2.75
Miller 3.00
Álgebra Relacional: Prod. Cartesiano 
R1( A, B )
1 2
3 4
R2( B, C )
5 6
R3( A, R1.B, R2.B, C )
1 2 5 6
1 2 7 8
1 2 9 10
3 4 5 6
R3 � R1 Χ R2
DCC011 - profa. Mirella 6
Adaptado de Jeff Ullman – CS145, aut07
5 6
7 8
9 10
3 4 5 6
3 4 7 8
3 4 9 10
PRODUTO CARTESIANO: funciona exatamente igual ao produto cartesiano 
de conjuntos da matemática PORÉM cada elemento é uma LINHA INTEIRA
Número de colunas = #colunas em R1 x # colunas em R2 � sempre
Se tiver duas colunas com nome igual (B) o resultado fica
NomeTabela.NomeColuna
Junção
� Operação criada para simplificar o 
processo de produto cartesiano seguido
de seleção
� Junção = operador + condição de junção: � Junção = operador + condição de junção: 
Tabela1 �������� coluna1 = coluna2 Tabela2
Tabela1 �������� coluna1 ≠ coluna2 Tabela2
Tabela1 �������� coluna1 ≥ coluna2 Tabela2
� O resultado são todas as colunas + linhas
que satisfazem à condição de junção
DCC011 - profa. Mirella 7
Álgebra Relacional: Junção 
Sells( bar, beer, price ) Bars( name, addr )
Joe’s Bud 2.50 Joe’s Maple St.
Joe’s Miller 2.75 Sue’s River Rd.
Sue’s Bud 2.50
Sue’s Coors 3.00
DCC011 - profa. Mirella 8
Adaptado de Jeff Ullman – CS145, aut07
BarInfo � Sells ����Sells.bar = Bars.name Bars
BarInfo( bar, beer, price, name, addr )
Joe’s Bud 2.50 Joe’s Maple St.
Joe’s Miller 2.75 Joe’s Maple St.
Sue’s Bud 2.50 Sue’s River Rd.
Sue’s Coors 3.00 Sue’s River Rd.
Junção Natural
� É um tipo ESPECIAL de junção
� A condição de junção não é especificada
Tabela1 �������� Tabela2
� Nesse caso, a condição de junção é default :� Nesse caso, a condição de junção é default :
igualidade das colunas com mesmo nome
� Resultado = todas as colunas MENOS as de 
mesmo nome (participaram na condição default)
DCC011 - profa. Mirella 9
Álgebra Relacional: Junção Natural 
Sells( bar, beer, price ) Bars( bar, addr )
Joe’s Bud 2.50 Joe’s Maple St.
Joe’s Miller 2.75 Sue’s River Rd.
Sue’s Bud 2.50
Sue’s Coors 3.00
BarInfo := Sells � Bars 
DCC011 - profa. Mirella 10
Adaptado de Jeff Ullman – CS145, aut07
BarInfo := Sells � Bars 
Note: Bars.name agora é Bars.bar para fazer junção natural
BarInfo( bar, beer, price, addr )
Joe’s Bud 2.50 Maple St.
Joe’s Milller 2.75 Maple St.
Sue’s Bud 2.50 River Rd.
Sue’s Coors 3.00 River Rd.
Outros Exemplos
� Sailors (sid, sname, rating, age)
� Reserves (sid, bid, day)
� Boats (bid, bname, color)
1. Encontre nomes dos sailors que reservaram pelo 
menos um barco
2. Encontre os nomes dos sailors que reservaram o barco 
# 103
DCC011 - profa. Mirella 11
# 103
3. Encontre nomes dos sailors que reservaram um barco 
vermelho
4. Encontre o sid dos sailors com idade acima de 20 anos 
que não reservaram um barco vermelho
5. Encontre nomes dos sailors que reservaram um barco 
vermelho ou verde
6. Encontre sailors que reservaram

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando