Baixe o app para aproveitar ainda mais
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.
Compartilhar