Buscar

Conteúdo Aula 07

Prévia do material em texto

MODELAGEM DE DADOS 1 
Aula 7: Manuseio matemático de conjuntos ................................................................................ 2 
Introdução ............................................................................................................................. 2 
Conteúdo ................................................................................................................................ 3 
Modelo relacional .............................................................................................................. 3 
Definições básicas ............................................................................................................. 3 
Definições importantes .................................................................................................... 4 
Prioridades de uma relação pura .................................................................................... 5 
Restrição e chaves ............................................................................................................. 6 
Álgebra relacional ............................................................................................................ 10 
Operação e seleção e projeção .................................................................................... 11 
Sequencialidade de operações ..................................................................................... 12 
Entendendo os símbolos ................................................................................................ 13 
Atividade proposta .......................................................................................................... 16 
Referências........................................................................................................................... 19 
Exercícios de fixação ......................................................................................................... 19 
Chaves de resposta ..................................................................................................................... 23 
 
 
 MODELAGEM DE DADOS 2 
Introdução 
Após definir os conjuntos eles precisam ser manipulados. Os conjuntos têm os 
seus elementos representados em uma tabela. Uma tabela representa sempre 
uma parte dos elementos que podem ser representados ou o total do conjunto. 
Então podemos dizer que uma tabela representa sempre um subconjunto dos 
elementos que podem ser representados. E, quando temos um subconjunto de 
um Universo na matemática chamamos este subconjunto de uma relação, que 
é a base da teoria relacional. 
 
Uma importante ferramenta matemática para tratar relações é a álgebra 
relacional. Nesta aula apresentar-se-ão os conceitos matemáticos que 
fundamentam as linguagens de manipulação de conjuntos. 
 
Objetivo: 
1. Mostrar como transformar o modelo conceitual em tabelas para 
representação dos elementos do conjunto; 
2. Apresentar uma forma matemática de tratar esses conjuntos. 
 
 
 
 
 
 
 
 
 MODELAGEM DE DADOS 3 
Conteúdo 
 
Modelo relacional 
Proposto originalmente por E. F. Codd durante seu trabalho no Laboratório de 
Pesquisas da IBM em San José na segunda metade da década de 1960, o 
Modelo Relacional se baseia em conceitos matemáticos para proporcionar uma 
representação confiável de dados na forma de tabelas. 
 
Define-se uma visão matemática fundamentada em teoria dos conjuntos. Desta 
forma, os dados têm total independência das estruturas de navegação. Assim, a 
responsabilidade da visão lógica dos conjuntos deve ser proporcionada pelo 
software. 
 
Baseado nesses conceitos foi desenvolvido um SGBDR (Sistema de 
Gerenciamento de Bancos de Dados Relacionais) da IBM denominado System 
R, várias melhorias têm sido incluídas ao modelo, o que o torna ainda mais 
prático. 
 
Definições básicas 
Após entender o estudo, vamos acompanhar agora algumas definições básicas 
do processo: 
 
Informalmente pode-se dizer que é um modelo que considera tabelas. As 
tabelas são formas de mostrar subconjuntos de elementos. 
Vamos considerar um esquema onde se relacionam os conjuntos de dados que 
queremos considerar: 
 
 
 
R é o nome da relação, e CN é chamado de coluna. 
Esse esquema é chamado de esquema relacional: 
Funcionário (Número, nome, RG, CPF, Endereço) 
 
 MODELAGEM DE DADOS 4 
Cada um destes conjuntos tem um range de valores. Este range é um conjunto 
chamado de domínio da Coluna. 
 
Assim, ao fazermos o produto cartesiano dos conjuntos: 
 
 
 
Formamos conjuntos de tuplas... 
 
 
 
Uma forma de representar estas tuplas é na forma de tabelas, assim, uma 
tabela com partes destes dados é um subconjunto do Universo. 
 
 
 
Um subconjunto do universo se chama Relação. As tabelas são relações, pois 
mostram subconjuntos de todas as combinações possíveis. 
As linhas da tabela se chamam tuplas, a demonstração foi feita de forma 
generalizada com t colunas, por isso uma linha na tabela é chamada de “tupla”. 
 
Definições importantes 
Agora que você já conhece as definições básicas, vamos aprofundar seu 
conhecimento: 
 
Relação 
Também chamadas tabelas, contêm informações sobre entidades ou 
relacionamentos existentes no domínio da aplicação utilizada como alvo para a 
modelagem. Informalmente uma relação pode ser considerada como uma 
tabela de valores, onde cada linha desta tabela representa uma coleção de 
valores de dados inter-relacionados. 
 
 
 MODELAGEM DE DADOS 5 
Atributo 
Nome dado no Modelo Relacional a cada coluna da relação. 
 
Tupla 
Nome dado no Modelo Relacional a cada linha da relação. 
 
Domínio 
Consiste de um grupo de valores atômicos a partir dos quais um ou mais 
atributos (ou colunas) retiram seus valores reais. 
 
Prioridades de uma relação pura 
Uma relação pura tem as seguintes propriedades: 
I - Cada célula da relação tem no máximo um único valor. 
II - A ordem das tuplas é irrelevante. 
III - Não há duas tuplas iguais. 
IV - Cada coluna tem um nome. 
V - Duas colunas distintas devem ter nomes diferentes. 
VI - Cada relação recebe um nome próprio. 
VII - Todos os valores de uma coluna são retirados de um conjunto chamado 
Domínio. 
VIII - Colunas distintas podem ter o mesmo domínio. 
 
A seguir fique atento às restrições e chaves desse processo. 
 
 
Atenção 
 Para fins de implementação deve-se definir uma ou mais colunas 
como índices de acesso. Chama-se de Chave primária a coluna 
usada como identificador de uma tupla. Deve aparecer 
sublinhada no esquema relacional. Todo atributo que atenda à 
regra abaixo: 
a) O preenchimento é obrigatório; 
 
 MODELAGEM DE DADOS 6 
b) Não existem dois valores iguais na coluna. 
 
Restrição e chaves 
Restrição de Entidade: o valor de uma chave primária nunca deve ser nulo. 
O valor nulo não permite a identificação de uma tupla. 
 
Podem-se ter colunas para fazer ligação com outras relações. Essas colunas são 
chamadas de chaves estrangeiras. 
 
Chave Estrangeira: é uma coluna ou uma combinação de colunas, cujos 
valores aparecem necessariamente na chave primária de uma tabela. A chave 
estrangeira é o mecanismo que permite a implementação de relacionamentos 
em um banco de dados relacional. 
 
Uma chave estrangeira só deve ter valores constantes da tabela origem. Isso é 
chamado de regra de Integridade. 
 
Os relacionamentos são mantidos por colocação de chaves estrangeiras. Para 
tentar garantir a integridade têm-se as regras de restrições de integridade. Uma 
restrição de integridade é uma regra de consistência de dados que deve ser 
mantida no modelo.No caso da abordagem relacional, costuma-se classificar as 
restrições de integridade nas seguintes categorias: 
 
Restrição de Domínio: os valores de atributos devem ser coerentes com os 
domínios correspondentes. Cada atributo de uma relação é definido com base 
em um domínio de valores (exemplos: idade, seu domínio são os números 
inteiros positivos; salários, seu domínio são os números reais positivos). 
 
Restrição de Chave Primária (unicidade): cada valor de chave primária 
deve ser único dentro de seu escopo (a relação a que pertence). 
 
 MODELAGEM DE DADOS 7 
Restrição de Referência: toda referência a uma tupla através de chave 
estrangeira deve ser verificada, ou seja, toda tupla referenciada deve 
previamente existir no Banco de Dados a menos que essa restrição seja 
explicitamente desprezada pelo usuário do Banco de Dados. 
 
Para o modelo lógico relacional deve-se escrever o conjunto de esquemas 
relacionais necessários para se implementar o banco de dados. Temos dois 
passos: 
Primeiro: 
Um conjunto é uma relação e devem-se representar todos os atributos do 
modelo conceitual por colunas. 
 
Modelo conceitual 
 
Modelo lógico (relacional) correspondente deve representar todos os atributos: 
 
ALUNO (cod-aluno, nome, CPF 
CURSO(cod-curso, nome, carga-hor. 
 
Os esquemas relacionais estão abertos, pois não resolvemos as ligações. 
Segunda parte: devem-se representar as ligações do modelo: 
 
Para trabalhar as ligações temos três regras: 
Regra 1: todo conjunto apontado por um ou ou 
Recebe a chave do apontado. 
1 
 
 MODELAGEM DE DADOS 8 
 
ALUNO (cod-aluno, nome, CPF, cod-curso) 
CURSO(cod-curso, nome, carga-hor.) 
 
Isto já permite a ligação entre as duas relações. 
 
Regra numero 2: 
Toda partição de conjunto ou sub conjuntos deve ter um campo de indicação. 
 
Exemplo 
 
 
 Modelo lógico: 
Primeira parte: 
 
ALUNO ( cod-aluno, nome, CPF, endereço 
APROVADO (cod-aluno, nota, data-aprovacao 
PRIMEIRO GRAU (cod-aluno 
SEGUNDO-GRAU(cod-aluno 
NIVEL-SUPERIOR (cod-aluno 
 
 
 
 
 MODELAGEM DE DADOS 9 
Segunda parte: (usando a regra 2) 
ALUNO ( cod-aluno, nome, CPF, endereço, ind-aprovado, indc-flag-tipo) 
APROVADO (cod-aluno, nota, data-aprovacao) 
PRIMEIRO GRAU (cod-aluno) 
SEGUNDO-GRAU(cod-aluno) 
NIVEL-SUPERIOR (cod-aluno) 
 
As relações PRIMEIRO GRAU, SEGUNDO-GRAU, NIVEL-SUPERIOR são 
eliminadas pois não acrescentam nenhuma informação nova. 
 
Regra três: Só usada em relacionamentos n:m. 
Este tipo de relacionamento deve ser evitado. O modelo conceitual de dados 
deve ser determinista, pois isto este tipo (m:n) normalmente indica análise de 
baixa qualidade. 
 
Regra: Os conjuntos relacionados da forma m:n deve implementar um novo 
esquema relaional contendo as chaves dos dois conjuntos. 
 
 
 
ESQUEMAS RELACIONAIS: 
ALUNO (cod-aluno, nome, CPF) 
CURSO(cod-curso, nome, carga-hor.) 
 
ALUNO/CURSO (cod-aluno, cod-curso) 
 
 
 MODELAGEM DE DADOS 10 
A criação do modelo lógico relacional é criado aplicando-se as três regras ao 
modelo conceitual. 
 
Álgebra relacional 
Vamos entender agora o conceito de álgebra e como ela se encaixa nos 
conjuntos que estamos estudando 
 
Uma álgebra é uma estrutura matemática na forma de tripla com os seguintes 
elementos: 
( {conjunto de elementos} ,{conjunto de operações}, {propriedades das 
operações} ) 
 
Só para exemplificar: a álgebra dos naturais 
({conjunto dos naturais}, { +,-,*,/}, {associativa, distributiva, neutro,...}) 
Estruturas de dados são álgebras.... 
Pode-se definir a álgebra relacional segundo a tripla: 
({conjunto de todas as relações}, {operadores com as relações}, {propriedades 
das operações}). 
 
Vamos definir as operações e propriedades dessas operações. 
 
A álgebra relacional é uma coleção de operações canônicas que são 
utilizadas para manipular as relações. Essas operações são utilizadas para 
selecionar tuplas de relações individuais e para combinar tuplas relacionadas de 
relações diferentes para especificar uma consulta em um determinado banco de 
dados. O resultado de cada operação é uma nova operação, a qual também 
pode ser manipulada pela álgebra relacional. 
 
Os operadores da álgebra relacional podem ser divididos em dois grupos: 
 
Operadores de Conjuntos: são operadores típicos definidos pela álgebra 
para conjunto, tais como união, interseção, diferença e produto cartesiano. 
 
 MODELAGEM DE DADOS 11 
 
Operadores de relações: são operadores especiais definidos especialmente 
para a manipulação de tuplas, tais como Select, Project e Join. 
 
Operação e seleção e projeção 
SELEÇÃO 
Operação aplicada sobre uma relação de modo a selecionar um subconjunto de 
tuplas (com todos os seus atributos) que satisfaçam a uma determinada 
condição (simples ou composta). O subconjunto selecionado forma uma relação 
resultante temporária. Essa condição aplica-se apenas em uma única relação, 
sendo verificada individualmente para cada tupla da relação. 
 
Exemplo: Dado uma relação dos funcionários da empresa, selecionar aqueles 
que recebem salário > R$ 1.000,00. Veja como a operação SELECT é 
denotada. 
 
A operação SELECT é denotada por: 
 condição de seleção> ( <nome da relação> ) 
A letra grega  é utilizada para representar a operação de seleção; <condição 
de seleção> é uma expressão booleana aplicada sobre os atributos da relação e 
<nome da relação> é o nome da relação sobre a qual será aplicada a operação 
select. 
 
A relação resultante da operação SELECT tem os mesmos atributos da relação 
especificada em <nome da relação>. 
 
A expressão Booleana especificada em <condição de seleção> é construída a 
partir de cláusulas da forma: 
<nome de atributo> <operador de comparação> <valor constante>, ou 
<nome de atributo> <operador de comparação> <nome de atributo> 
Onde <nome de atributo> é o nome de um atributo da <nome da relação>, 
<operador de comparação> é normalmente um dos operadores relacionais {=, 
 
 MODELAGEM DE DADOS 12 
<, =, =, ?} e <valor constante> é um valor constante. As cláusulas podem ser 
utilizadas em conjunto com os operadores lógicos {AND, OR NOT}, seguindo a 
Lógica Booleana, para formar uma condição de seleção composta. 
Exemplo, suponha que se deseja selecionar as tuplas de todos os empregados 
que ou trabalham no departamento 4 e faz mais de 2500 ou trabalha no 
departamento 5 e faz mais que 3000. 
 
Neste caso, pode-se especificar a consulta da seguinte forma: 
 (NDEP = 4 AND SALÁRIO > 2500) OR (NDEP = 5 AND SALÁRIO > 3000) 
(EMPREGADO) 
O operador SELECT é comutativo; isto é: 
 <cond1> ( <cond2> (R))=  <cond2> ( <cond1> (R)) 
Assim, uma seqüência de SELECTs pode ser aplicado em qualquer ordem. Além 
disso, 
pode-se sempre trocar operadores SELECT em cascata com a conjuntiva AND; 
isto é: 
 <cond1> ( <cond2> (... <condição> (R) ...))=  <cond1> AND <cond2> 
AND ... AND <condn>(R) 
A letra grega ∏ representa a operação project, <lista de atributos> representa 
a lista de atributos que o usuário deseja selecionar e <nome da relação> 
representa a relação sobre a qual a operação project será aplicada. 
 
Sequencialidade de operações 
As operações project e select</i > podem ser utilizadas de forma combinada, 
permitindo que apenas determinadas colunas de determinadas tuplas possam 
ser selecionadas. A forma geral de uma operação sequencializada é: 
 
 
 
 
 
 
 MODELAGEM DE DADOS 13 
Operações de Conjunto 
Operações que se aplicam a duas relações. Emtermos das relações (A e B) 
usadas nas operações: 
• Ambas podem estar fisicamente armazenadas no mesmo Banco de Dados; 
• Ou estarem fisicamente armazenadas em diferentes Bancos de Dados; 
• Ou uma estar armazenada e a outra ser originária (relação resultante) de uma 
operação de conjunto anteriormente executada; 
• Ou ambas serem resultantes de operações de conjunto realizadas 
anteriormente. 
A seguir, acompanhe as definições dos símbolos utilizados nessas operações. 
 
A seguir acompanhe as definições dos símbolos utilizados nessas operações 
 
Entendendo os símbolos 
UNIÃO (U) 
O resultado da união de duas relações consiste no conjunto de todas as 
tuplas das duas relações, porém sem redundância de tuplas. Importante 
salientar que duas tuplas são semelhantes quantos todos os valores de 
atributos forem iguais em seus respectivos atributos. Exemplo: União de uma 
relação dos funcionários da matriz de São Paulo com a relação dos funcionários 
da filial de Campinas. 
 
INTERSEÇÃO (⋂) 
O resultado da interseção de duas relações consiste no conjunto de todas as 
tuplas que pertençam às duas relações. Exemplo: Interseção da relação dos 
funcionários com idade maior que 35 anos com a relação dos funcionários com 
salário acima de 1500,00 reais. O resultado será uma relação com os 
funcionários com idade maior que 35 anos e que recebem acima de 1500,00 
reais 
 
 
 
 
 MODELAGEM DE DADOS 14 
DIFERENÇA (-) 
A diferença entre duas relações é relação resultante formada pelas tuplas que 
pertencem a uma relação e que não pertence à outra. Diferença entre as 
relações A e B (A - B) é o conjunto de tuplas que aparecem na relação A e não 
aparece na relação B. Diferença entre as relações B e A (B - A) é o conjunto de 
tuplas que aparecem na relação B e não aparecem na relação A. Exemplo: 
Diferença da relação dos funcionários com idade maior que 35 anos com a 
relação dos funcionários com salário acima de 1500,00 reais. O resultado será 
uma relação com os funcionários com idade maior que 35 anos e que não 
recebem acima de 1500,00 reais. 
 
PRODUTO CARTESIANO (X) 
Aplica-se a duas relações que não necessitam ser "compatíveis para união", 
resultando em uma relação que apresenta tuplas formadas pela combinação de 
todas as tuplas de uma relação com todas as tuplas da outra relação (R(A1, A2, 
..., An) X S(B1, B2, ..., Bm) = Relação Produto(A1, A2, ..., An, B1, B2, ...,Bm). 
Exemplo: Produto Cartesiano de uma relação de todos os alunos do terceiro 
ano de seu curso com uma relação com todas as disciplinas do terceiro ano de 
seu curso. O resultado será uma relação de todos os alunos do terceiro ano e 
suas disciplinas. 
 
DIVISÃO ( / ) 
V A operação DIVISÃO, indicada por /, é útil para um tipo especial de consulta 
que, às vezes, ocorre em aplicações de banco de dados. Um exemplo é 
"Recuperar os eleitores que participaram de todas as eleições. Inicialmente 
devesse produzir a relação dos eleitores e das eleições que participaram. A 
seguir dividir esta relação pela lista de todas as eleições, o resultado será uma 
lista dos eleitores que participaram de todas as eleições. 
 
JUNÇÃO é a operação utilizada para combinar tuplas relacionadas (via chave 
primária/chave estrangeira) de duas ou mais relações de modo a estabelecer 
virtualmente uma única tupla. Esta combinação é realizada de acordo com uma 
 
 MODELAGEM DE DADOS 15 
condição indicada. Exemplo: Junção da relação de peças fornecidas com a 
relação de fornecedores (em comum as duas relações possuem o código do 
fornecedor). A relação resultante terá tuplas contendo o código do fornecedor, 
demais atributos do fornecedor e os atributos de peça, estando juntas apenas 
as peças e seus respectivos fornecedores. Tuplas cujos valores dos atributos 
join são null não aparecem no resultado. 
 
A operação Junção denotada pelo operador X (“join”) onde a condição for uma 
expressão explícita de comparação qualquer (=, <, <=, >, >=, <>) é 
denominada de Join ( condição), exemplo: fornecedor.código <> peça.código. 
Quando o operador de comparação for o de igualdade, teremos o Equi Join 
(=condição) (exemplo: fornecedor.código = peça.código) Como resultado de 
um Equi Join teremos tuplas apresentando pares de atributos com valores 
idênticos. O Natural Join (* condição) consiste em uma operação na qual do 
cruzamento de uma chave primaria e uma chave estrangeira, apenas a chave 
primária aparece na relação resultante. Quando os atributos sobre os quais se 
aplicam o Natural Join apresentarem o mesmo nome em ambas as relações, a 
condição do Join pode ser totalmente omitida. 
 
A forma geral da operação junção entre duas tabelas R e S é a seguinte: 
R X<condição de junção> S. 
 
O resultado da Junção é uma relação Q com n+m atributos Q(A1, A2, ..., An, 
B1, B2, ..., Bm) nesta ordem; Q tem um tupla para cada combinação de tuplas 
uma de R e uma de S onde quer que a combinação satisfaça a condição join. 
Esta é a principal diferença entre Produto Cartesiano e Junção, na junção 
apenas combinações de tuplas que satisfazem a condição de junção que 
aparecerá no resultado, já no produto cartesiano todas as combinações de 
tuplas são incluídas no resultado. cada combinação de tuplas. 
 
Outras formas explícitas de variações da operação de “join” são: 
 
 MODELAGEM DE DADOS 16 
 LEFT OUTER JOIN: Exemplo - A LEFT OUTER JOIN B permite a junção 
da relação A com a relação B, sendo colocadas nas relação resultante todas as 
tuplas da relação A mesmo que não tenham correspondentes na relação B. 
 RIGHT OUTER JOIN: Exemplo - A RIGHT OUTER JOIN B permite a 
junção da relação A com a relação B, sendo colocadas nas relação resultante 
todas as tuplas da relação B mesmo que não tenham correspondentes na 
relação A. 
 FULL OUTER JOIN: Exemplo - A FULL OUTER JOIN B permite a junção 
da relação A com a relação B, sendo colocadas nas relação resultante todas as 
tuplas da relação A e da relação B mesmo que não tenham correspondentes. 
 
Atividade proposta 
Considere o modelo com os seguintes esquemas Relacionais: 
ALUNO (MatAluno, Nome, Endereço, Cidade, RefCodCurso) 
DISCIPLINA (CodDisc, NomeDisc, qtdCredito, RefCodDepto) 
CURSO (CodCurso, NomeCurso, Duração, RefCodDepto) 
DEPARTAMENTO (CodDepto, NomeDepto) 
INSCRIÇÃO (RefCodDisc, RefMatAluno) 
 
a) Reproduza no formato pata de corvo o modelo conceitual que originou este 
modelo. 
b) Obtenha uma relação com a matrícula do aluno e o nome do aluno. 
c) Obtenha uma relação com os nomes e endereço dos alunos que são do Rio 
de Janeiro e São Paulo. 
d) Obtenha uma relação que mostre o nome de todos os alunos que estão 
matriculados na disciplina cujo nome é “Modelagem”. 
e) É possível listar as matrículas e os nomes de todos os alunos que estejam 
matriculados na disciplina cujo código é INF1085, mas que não estejam 
matriculados na disciplina cujo código é INF1005? 
f) É possível se fazer a União entre as relações DISCIPLINA(CodDisc, NomeDisc, 
qtdCredito, RefCodDepto) e CURSO(CodCurso, NomeCurso, Duracao, 
RefCodDepto)? 
 
 MODELAGEM DE DADOS 17 
 
Chave de resposta: 
Questão 1: 
 
 
 
 
 
 
 
 
 
Questão 2: 
Gabarito: 
Para isto projeta-se as colunas que interessam na pesquisa, Assim a tem-se: 
 Resp1 = ∏(MatAluno, nome) (Aluno) 
 
Justificativa: 
A projeção serve para selecionar colunas em uma relação 
 
Questão 3: 
Gabarito: Resp1 = ∏(MatAluno, nome, endereço) (Cidade= “Rio de Janeiro” 
or Cidade = “São Paulo’ (Aluno)) 
Justificativa: Se projeta as colunas MatAluno, nome, endereço mas apenas as 
colunas que atendam a seleção. Acidade deve conter ‘Rio de Janeiro’ ou ‘ São 
Paulo’. Um erro comum é usar o E neste caso ninguém será selecionado, pois 
cidade não pode conter simultaneamente dois valores. 
 
Questão 4: 
Gabarito: Esta pesquisa envolve três relações: 
ALUNO(MatAluno, Nome, Endereco, Cidade, RefCodCurso) 
 
CURSO DEPARTAMENTO 
ALUNO DISCIPLINA INSCRIÇÃO 
 
 MODELAGEM DE DADOS 18 
DISCIPLINA(CodDisc, NomeDisc, qtdCredito, RefCodDepto) 
INSCRICAO(RefCodDisc, RefMatAluno) 
Assim para simplificar deve-se fazer a solução em etapas: 
 i) vai se buscar em alunos as informações necessárias para contuar a 
consulta. Precisa-se de MatAluno e nome. MatAluno será usada na relação 
INCRIÇÃO: 
 Resp1 = ∏ (MatAluno, nome) (Aluno) 
ii) buscar o codigo da disciplina informática que está na relação disciplina 
 Resp2 = ∏ (CodDisc) (NomeDis =’modelagem’ (Disciplina)) 
iii) buscar as matriculas de alunos que tem o CodDisp que estão armazenadas 
em Resp2 e isto deve ser feito com o produto cartesiano, projetando-se apenas 
MatAluno, assim sabe-se que matriculas estão ligadas ao código de 
Modelagem:: 
 Resp3 = = ∏ (MatAluno) Resp2 X<(resp2:codDisp = inscrição:codDisp > 
INSCRIÇÂO 
iv) Com Resp3 que tem as MatAlunos que cursam Modelagem deve-se fazer o 
prduto cartesiano para finalmente listar os nomes dos alunos: 
Resp-final = ∏ (Nome) Resp3 X<(resp3:MatAluno = iResp1:MatAluno > 
Resp1 
Justificativa: 
Deve-se buscar os dados nas tabelas através de suas chaves 
 
Questão 5: 
Gabarito: Sim, navegando através das tabelas 
Justificativa: a relação INSCRICAO(RefCodDisc, RefMatAluno) permite 
se relacionar aluno diretamente com o código da disciplina 
 
Questão 6: 
Gabarito: Sim se os campos forem definidos com as mesmas características 
Justificativa: A união não verifica conteúdos, na implementação, assim a única 
forma de controle é verificar a quantidade de atributos e se os tipos estão 
 
 MODELAGEM DE DADOS 19 
definidos da mesma forma, e coincidentemente isto esta acontecendo entre as 
duas relações. 
 
Referências 
SETZER, W. Valdemar. Banco de dados. Editora Blucher Ltda. 
NAVATHE S. B. et. al. Sistemas de banco de dados. 4. ed. Editora Pearson. 
 
Exercícios de fixação 
 
Questão 1 
Considere o modelo abaixo: 
 
 
 
 
 
 
 
Para definir uma tabela que possa representar o relacionamento deve-se: 
a) deve-se criar as relações aluno(cod-aluno, nome, CPF, cod-curso) e 
curso(cod-curso, nome, carga-hor) 
b) deve-se criar as relações aluno(cod-aluno, nome, CPF, cod-curso) e 
curso(cod-curso, nome, carga-hor,cod-aluno) 
c) deve-se criar as relaçoes aluno(cod-aluno, nome, CPF) e curso(cod-curso, 
nome, carga-hor,cod-aluno) 
d) deve-se criar as relações aluno(cod-aluno, nome, CPF, cod-curso) , 
curso(cod-curso, nome, carga-hor) e cursa( cod-aluno, cod-curso) 
e) deve-se criar as relações aluno(cod-aluno, nome, CPF, cod-curso) , 
curso(cod-curso, nome, carga-hor,cod-aluno) e cursa( cod-aluno, cod-curso) 
 
 
 
aluno curso 
 Cod-aluno 
 Nome 
 cpf 
 Cod-curso 
 Nome 
 Carga-hor. 
 
 MODELAGEM DE DADOS 20 
Questão 2 
 A conclusão de um projeto lógico de banco de dados relacional se dará na 
etapa de 
(A) projetar formatos das relações. 
(B) desenhar o diagrama E-R. 
(C) traduzir o diagrama E-R no diagrama de estrutura de dados. 
(D) identificar tipos de valor e atributos. 
(E) identificar tipos de entidades e de relacionamentos. 
 
Questão 3 
 Na modelagem de um banco de dados, um relacionamento pode tornar-se 
uma tabela, carregando os identificadores das entidades relacionadas e os 
atributos, se houver, 
 
(A) para relacionamentos 1:N, envolvendo auto-relacionamento. 
(B) para relacionamentos M:N, envolvendo tanto entidades distintas quanto 
auto-relacionamento. 
(C) somente para relacionamentos M:N, envolvendo entidades distintas. 
(D) somente para relacionamentos M:N, envolvendo auto-relacionamento. 
(E) para relacionamentos 1:N, envolvendo entidades distintas. 
 
Questão 4 
Em um projeto do Tribunal foi solicitada a elaboração de um modelo de dados 
relacional normalizado que representasse o relacionamento “Dependente 
depende de Funcionário”. Sabendo que Funcionário pode ter zero ou muitos 
dependentes, que os dependentes, quando existentes, são numerados 
sequencialmente a partir da unidade e que os números se repetem para cada 
Funcionário, é correto afirmar que 
(A) a composição da chave primária do Dependente deve considerar a chave 
identificadora do Funcionário que a ele corresponde. 
(B) a chave primária do Dependente se faz chave estrangeira em Funcionário. 
 
 MODELAGEM DE DADOS 21 
(C) Funcionário deve ter um atributo multivalorado contendo as chaves 
estrangeiras dos seus Dependentes. 
(D) a composição da chave primária do Funcionário deve considerar as chaves 
identificadoras dos Dependentes que a ele correspondem. 
(E) Dependente deve implementar um auto relacionamento indicando qual 
Dependente é diferente dele. 
 
Questão 5 
Uma coluna que faz referência à chave primária de outra tabela relacional 
denomina-se chave 
(A) transitiva. 
(B) secundária. 
(C)) estrangeira. 
(D) dependente. 
(E) referencial. 
 
Questão 6 
Os operadores relacionais classificados, respectivamente, nos grupos de 
operadores unários e binários são: 
a) Produto cartesiano e união 
b) Produto cartesiano e projeção 
c) Projeção e renomear 
d) Seleção e união 
e) Seleção e renomear 
 
Questão 7 
As operações primitivas da Álgebra Relacional são seleção, projeção, união, 
diferença e produto cartesiano. A operação de junção pode ser derivada pela 
combinação das seguintes operações primitivas (apenas uma opção): 
a) União e produto cartesiano 
b) Produto cartesiano e seleção 
c) Produto cartesiano e diferença 
 
 MODELAGEM DE DADOS 22 
d) Projeção, diferença e produto cartesiano 
e) Diferença e produto cartesiano 
 
Questão 8 
A operação relacional geralmente representada pela letra grega 𝜋(pi) é: 
a) Unária, do tipo adicional e significa seleção com a função de filtro de colunas. 
b) Unária, do tipo primitiva e significa seleção com a função de filtro de linhas. 
c) Unária, do tipo primitiva e significa projeção com a função de filtro de colunas. 
d) Binária, do tipo primitiva e significa seleção com a função de filtro de colunas. 
e) Binária, do tipo adicional e significa projeção com a função de filtro de linhas. 
 
Questão 9 
São somente operações fundamentais unárias da álgebra utilizadas nos 
modelos de bancos de dados relacionais: 
a) Seleção e união 
b) União e diferença 
c) Seleção e projeção 
d) Projeção e produto cartesiano 
e) Produto cartesiano e diferença 
 
Questão 10 
Na álgebra relacional, são operadores derivados binários: 
a) União, renomeação e seleção 
b) Intersecção, junção e divisão 
c) Atribuição, seleção e junção 
d) Produto cartesiano, projeção e diferença 
e) Produto cartesiano, renomeação e união 
 
 
 
 MODELAGEM DE DADOS 23 
Aula 7 
Exercícios de fixação 
Questão 1 - A 
Justificativa: O fato de se colocar uma chave estrangeira na relação aluno já 
permite todas as navegações entre as duas tabelas. 
 
Questão 2 - A 
Justificativa: São as definições que serão informadas para o SGBD relacional. 
 
Questão 3 - B 
Justificativa: Nos relacionamentos N:M o relacionamento é resolvido criando-se 
uma relação só para isso. Regra três. 
 
Questão 4 - A 
Justificativa: É uma característica do objeto dependente, ele tema chave da 
identificação composta com a chave do objeto do qual é dependente. 
 
Questão 5 - C 
Justificativa: A chave estrangeira permite se referenciar uma tabela às linhas de 
outra tabela. 
 
Questão 6 - D 
Justificativa: O produto cartesiano é uma operação que envolve mais de um 
operador, bem como a união. A projeção e a seleção são operações unárias. 
 
Questão 7 - B 
Justificativa: A junção pode ser obtida das tuplas obtidas no produto cartesiano 
que atendam a uma determinada condição. 
 
 
 
 MODELAGEM DE DADOS 24 
Questão 8 - C 
Justificativa: O Pi representa a projeção, que é unária e primitiva para o modelo 
relacional. 
 
Questão 9 - C 
Justificativa: São as operações unárias da álgebra relacional. 
 
Questão 10 - B 
Justificativa: São as operações com dois conjuntos definidas na álgebra 
relacional.

Continue navegando