Prévia do material em texto
Aula 06 Curso: Informática – Teoria e Questões comentadas p/ ICMS RJ Professor: Gustavo Cavalcante Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 2 de 47 www.exponencialconcursos.com.br Olá pessoal, vamos para mais uma aula de teoria e exercícios para SEFAZ-RJ. Dúvidas, sugestões ou críticas, estou a disposição por e-mail: gustavo.cavalcante@exponencialconcursos.com.br. Continuem estudando com muita vontade, pois somente assim alcançarão seus objetivos. Vou iniciar a aula com uma breve revisão, pois os conceitos vistos nas últimas aulas serão necessários para o entendimento desta. Na aula 05, revisamos os conceitos de entidades, atributos, relacionamentos, introduzindo a idéia dos diagramas E-R, e vimos o conceito de cardinalidade. Assim, devemos lembrar que todos esses conceitos citados no edital estão relacionados principalmente com dois modelos: Modelo de entidade- relacionamento (E-R) e Modelo relacional. Abaixo vamos revisar do que se trata cada um desses modelos: Modelo relacional Usa uma coleção de tabelas para representar os dados e suas relações. Cada tabela possui colunas com nomes únicos. É um modelo baseado em registros, isto é, cada tabela contém registros de um tipo específico. As colunas da tabela correspondem aos atributos do registro. Modelo de entidade- relacionamento (E-R) É baseado em uma percepção do mundo real, sendo que cada objeto do mundo real é considerado uma entidade. Consiste na descrição de entidades e suas relações. Outros conceitos importantes são os três níveis de abstração: Modelo Conceitual – de alto nível, oferecendo conceitos próximos aos entendidos pelo usuário. Não depende do SGBD. Exemplo: Modelo de entidade-relacionamento. Modelo Lógico – de nível intermediário. O projetista do banco de dados mapeia o esquema conceitual de alto nível para o modelo de dados de implementação do sistema de banco de dados que será usado. Neste modelo já poderemos descrever a estrutura do banco de dados, descrevendo os dados, os relacionamentos, as restrições de consistência e a integridade. Exemplo: Modelo relacional. Modelo Físico – de baixo nível. Descreve como os dados serão fisicamente armazenados. Na aula passada, focamos no modelo conceitual. Nesta aula, veremos como chegar ao modelo lógico a partir do modelo conceitual, transformando o modelo E-R no modelo relacional. Aula 06 – Modelo Relacional de Dados. http://www.exponencialconcursos.com.br/ mailto:gustavo.cavalcante@exponencialconcursos.com.br Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 3 de 47 www.exponencialconcursos.com.br Veremos como se converter o modelo E-R em um projeto relacional. Utilizaremos esquemas para representar as tabelas do banco de dados. Segue o sumário da aula: Assunto Página 1- Modelo Relacional de Dados 03 1.1 – Conceitos básicos sobre o modelo 03 1.2- Regras de Codd 09 1.3- Transformando um E-R em um BD relacional 10 1.4 - Normalização 14 2 – Questões Comentadas 19 3 – Lista de Questões 38 4 – Gabarito 47 1.1 – Conceitos básicos sobre o modelo Como vimos um projeto de banco de dados possui os seguintes passos: modelagem conceitual, com a função de capturar requisitos e informações necessárias para construir um modelo de banco de dados; projéto lógico, que define as estruturas de dados a nível de SGBD; e o projeto físico, que definirá o BD propriamente dito com os seus parâmetros de acesso. Nesta aula veremos como um BD relacional é organizado (como as tabelas são formadas, como elas se relacionam). Como já vimos os BDs são compostos por tabelas (também chamadas de relações). Tabelas são conjuntos de linhas ou tuplas, não necessariamente ordenadas. Cada uma das tuplas é composta por campos ou registros, que guardam um dado que nada mais é que valor de um atributo. O conjunto de todos os valores de um determinado atributo forma uma coluna. O nome da coluna, normalmente recebe o nome do atributo. Vejamos um exemplo a seguir: 1 – Modelo Relacional de Dados http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 4 de 47 www.exponencialconcursos.com.br As principais características de tabelas de um BD são: normalmente não estão ordenadas e os seus campos são atômicos e mono-valorados. No caso do modelo relacional, é essencial para os relacionamentos entre tabelas que existam chaves. Vamos relembrar o conceito e os tipos de chaves: Além das chaves, é importante que se criem regras que garantam a integridade de dados do BD, tornando os dados consistentes e de acordo com a realidade. Estas regras são importantes, pois mantém a integridade e a consistência do banco, mantendo os dados confiáveis, são chamadas restrições de integridade, e normalmente são adotadas pelo próprio SGBD. A seguir um resumo para revisarmos este assunto: Matricula Nome Idade Cidade 112334 Paulo 50 RJ 123245 Marcos 32 RJ 123212 João 44 SP 123124 Carlos 21 MG Tabela Funcionário Coluna (atributo) linha ou tupla Chaves Primária atributo ou conjunto de atributos que torna um registro único (distingue uma linha das demais) Estrangeira atributos de uma tabela que são chave primária em outra tabela a qual se relaciona Alternativa é um atributo ou conjunto de atributos que podem ser escolhidos para distinguir uma linha das demais, mas não são a chave primária. http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 5 de 47 www.exponencialconcursos.com.br As restrições que dizem respeito à chave primária são muito simples, por isso vou comentar apenas à restrição relcionada à chave estrangeira. A existência de chaves estrangeiras em tabelas do BD impõe restrições na medidam em que dados são inseridos/alterados/excluidos no banco. Quando incluimos dados em tabela que contém a chave estrangeira, deveremos garantir que o valor da chave estrangeira seja igual ao valor da chave primária na outra tabela. Vamos usar o exemplo de um BD com as tabelas Funcionário (Matríclua, Nome, Cód_Departamento) e Departamento (Cód_Departamento, Descrição). Percebemos que Cód_Departamento é uma chave estrangeira em Funcionário. Portanto, Caso seja incluida nova linha de dados em Funcionários o valor da coluna Cód_Departamento deve ser um dos valores presentes na tabela Departamento. O mesmo deve ocorrer caso alteremos o valor de Cód_Departamento em uma linha já existente em Funcionário. O valor deve ser escolhido dentre os valores listados na chave primária Cód_Departamento em Departamento. Já quando excluimos uma linha da tabela que contém a chave primária (agora estamos alterando a tabela Departamento), devemos garantir que não aparecerão os valores excluídos de cahve primária na chave estrangeira (tabela Funcionários). Além destas restrições de integridade, garantidas pelo SGBD, podemos ter outros tipos de restrições no BD. Seriam restrições não garantidas pelo SGBD e devem ser implementadas pelo programador. Neste caso são restrições chamadas semântica, e são apenas ligadas ao negócio, ou a realidade do minimundo a que se deseja representar. Por exemplo, funcionários de uma empresa devem ser maiores de idade; um empregado da área de engenharia deve ser engenheiro, e não administrador. Restrições de Integridade Restrição de chave ou Integridade da chave a chave é obrigatória e única para cada tupla Restrição de entidade chave primária não pode ter valor NULL Restrição de dominio ou integridade de dominio os valoresdos atributos devem estar dentro de seu domínio Integridade Referencial garante que dados das chaves primárias devem ser iguais às chaves estrangeiras relacionadas http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 6 de 47 www.exponencialconcursos.com.br (FCC - AFR SP/SEFAZ SP/Gestão Tributária/2013) Instruções: Para responder à questão, considere o texto a seguir: A empresa Express conta com diversas equipes de desenvolvimento, nas áreas de software em geral, incluindo técnicas estruturadas e de orientação a objetos. Essas equipes estão em constante aperfeiçoamento, visando mantê- las sempre atualizadas com as técnicas mais recentes da engenharia de software, incluindo-se aí a área de bancos de dados. A Express atende clientes de diversos perfis, abrangendo pequenas, médias e grandes empresas. Dessa forma, os sistemas de computação solicitados também atendem a esse perfil, compreendendo sistemas de pequeno, médio e grande porte. A Express conta com equipes especializadas, de grande experiência nas áreas acima destacadas, estando, portanto, apta a atender desde um simples produto até um grande sistema de software. Dessa forma, os produtos desenvolvidos pela Express possuem, normalmente, uma qualidade bastante apurada, o que pode ser verificado pelas diversas técnicas existentes. Uma das normas da Express é a de produzir documentação de excelente qualidade, cuja finalidade é, não apenas para entrega aos clientes, mas também para possibilitar a manutenção adequada dos produtos desenvolvidos. No projeto de bancos de dados relacionais, a Express tem preocupação de produzir modelos mais adequados. A chave primária de uma relação de um banco de dados relacional a) só pode servir como chave estrangeira de, no máximo, uma outra relação. b) não pode ser indexada, quando da implementação do banco de dados. c) não pode conter atributos do tipo Data. d) pode ser formada por mais de um atributo. e) não pode conter mais do que um atributo. Comentários: Vamos comentar os itens: a) só pode servir como chave estrangeira de, no máximo, uma outra relação. Item incorreto. A chave primária pode servir de chave estrangeira de várias tabelas. Por exemplo: Funcionário(matricula, nome,id_departamento) Departamento(id_departamento, nome) http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 7 de 47 www.exponencialconcursos.com.br Projeto(id_projeto, id_departamento) b) não pode ser indexada, quando da implementação do banco de dados. Item incorreto. A chave primária normalmente é indexada pelo SGBD. c) não pode conter atributos do tipo Data. Item incorreto. Pode sim conter atributos do tipo data. Por exemplo: Aluno (data_matricula, Nome) d) pode ser formada por mais de um atributo. Item correto. Para se tornar única as vezes é necessário que se utilize mais de um atributo para formar a chave primária. Exemplo: Aluno (data_matricula, Nome) e) não pode conter mais do que um atributo. Item incorreto. Resposta: D. Por último, vamos analisar uma restrição com relação ao atributo. Atributos multi-valorados não são desejáveis em diagramas E-R, e não são favoráveis à implementação de BDs relacionais. Por isso, a solução mais simples é transformar atributos multi-valorados em um entidade. Vamos a um exemplo: No diagrama anterior telefone é um atributo multi-valorado. Transformaremos este atributo em uma entidade fraca como mostra o diagrama a seguir: http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 8 de 47 www.exponencialconcursos.com.br Os Esquemas ficariam da seguinte maneira: Funcionário (matrícula, nome) Telefone (matrícula, número) Outra solução possível seria limitar o número de vezes que o atributo poderá ser preenchido, isto é, a quantidade de telefones que cada funcionário poderá ter. Caso cada funcionário tenha 3 telefones, uma solução seria criar uma coluna para cada telefone na própria tabela Funcionário: Funcionário (matrícula, nome, telefone1, telefone2, telefone3) Um bom projeto de banco de dados deve manter a integridade, evitar redundâncias de dados que ocupem espaço no disco sem necessida, e devem otimizar as consultas. Para isso veremos alguma regras a serem seguidas para criar um banco de dados relacional. É importante ressaltar que veremos o mais importante para a prova, e não entrarei em detalhes de programação, regras de nomeação de tabelas, colunas ou qualquer assunto relacionado à implementação de projeots de BD na prática. Alguns assuntos são um pouco mais difíceis, pois já estamos em um nível de abstração mais distante do usuário. Prestem atenção aos exemplos, pois ajudam bastante a guardar alguns conceitos, e reparem como as questões repetem os mesmos casos: funcionário X departamento, empregado X dependente, médico X consulta X paciente, etc. http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 9 de 47 www.exponencialconcursos.com.br 1.2 – Regras de Codd Edgard F. Codd estabeleceu 12 regras que determinam o modelo relacional de banco de dados. As 12 regras são baseadas na regra zero: “qualquer sistema considerado, ou que deseja ser, um sistema gerenciador de banco de dados relacional deve ser capaz de gerenciar, por completo, bases de dados através de sua capacidade relacional.”. As 12 regras são: Regra da informação Os dados devem ser armazenados de forma única e em tabelas. Regra da garantia de acesso Todo dado pode ser acessado utilizando-se o nome da tabela, o valor da chave primária e o nome da coluna. Tratamento sistemático de valores nulos Os valores NULOS representam dados não existentes. Regra do catálogo relacional ativo ou Formação de catálogo ou Catálogo on-line baseado no modelo relacional Todo o banco de dados deve estar disponível em tabelas e deve ser acessível por meio de linguagens específicas. Regras de atualização de alto-nível O usuário deve ser capaz de manipular as informações do BD, inserir, alterar e excluir vários dados ao mesmo tempo. Regra de sublinguagem de dados abrangente Deve possuir pelo menos uma linguagem para ser utilizada pelo usuário para manipular os dados. Regra de independência física Programas de aplicação não devem ser logicamente alterados caso sejam modificadas na forma como os dados estão fisicamente armazenados. Regra de independência lógica Qualquer alteração na estrutura do BD (estrutura lógica como inclusão/exclusão de um campo de uma tabela, alteração de relacionamentos entre tabelas, etc) não deve afetar o aplicativo. Regra de atualização de visões ou Manipulação por meio de visão Um aplicativo que faz uso de visões deve ser capaz de efetuar alterações, exclusões e inclusões nestas estruturas. Regra de independência de integridade As relações de integridade devem ser definidas e estabelecidas dentro do catálogo do sistema ou dicionário de dados (ou seja, no SGBD), e ser independentes da lógica do aplicativo. Regra de independência de distribuição O fato de alguns SGBDs terem a capacidade de serem distribuídos em diversas plataformas/equipamentos não pode afetar a funcionalidade do sistema e dos aplicativos. Regra não-subversiva Não deve ser possível subverter ou ignorar as regras de integridade e restrições definidas. http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões ComentadasProf. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 10 de 47 www.exponencialconcursos.com.br A descrição do banco de dados é representada no nível lógico da mesma forma que os dados ordinários (tabelas), permitindo que usuários autorizados utilizem a mesma linguagem relacional aplicada aos dados regulares. Este item não aparece muito em prova, por isso não irei perder muito tempo com ele. Se aparecer será igual ao exemplo a seguir, citando a definição de uma das regras e perguntando qual é. (FCC - AFR SP/SEFAZ SP/Tecnologia da Informação/2009) Considere a seguinte regra de Codd, aplicada aos bancos de dados relacionais: A descrição do banco de dados é representada no nível lógico da mesma forma que os dados ordinários, permitindo que usuários autorizados utilizem a mesma linguagem relacional aplicada aos dados regulares. O sentido dessa regra diz respeito à a) independência de distribuição. b) formação do catálogo. c) manipulação, por meio de visões. d) independência física. e) independência lógica. Comentários: A questão trata da regra “Regra do catálogo relacional ativo ou Formação de catálogo ou Catálogo on-line baseado no modelo relacional”, todo o banco de dados deve estar disponível em tabelas e deve ser acessível por meio de linguagens específicas. Pouquíssimas questões sobre o assunto. Por isso, sugiro apenas focar nas regras quando o resto da matéria estiver bem tranquila. Resposta: B. 1.3 – Transformando um E-R em um BD relacional Cada definição de BD, chamada de esquema do BD, deve conter a relação de tabelas, suas colunas e restrições de integridade. Cada entidade e relacionamento do projeto conceitual podemos representar por meio de um esquema, que terá o mesmo nome da entidade ou relação. No caso das entidades é mais simples. Cada entidade será representada por um esquema, por exemplo, vamos considerar o diagrama E-R a seguir: http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 11 de 47 www.exponencialconcursos.com.br A entidade Empregado será transformada na tabela Empregado (matrícula, Nome), onde todos os atributos de Empregado foram retirados do modelo E-R, assim como sua chave primária. Esse esquema será uma tabela do banco de dados. No caso dos relacionamentos, poderemos ter 3 alternativas, dependendo do caso: criar uma tabela própria para o relacionamento, criar uma coluna em uma das entidades para representar o relacionamento, e fundir duas entidades que se relacionam. No caso de criação de uma tabela própria, suas colunas serão os atributos do relacionamento e as chaves de cada entidade. A chave primária da tabela será o conjunto das colunas correspondentes às chaves primárias das entidades. Exemplo: Neste caso temos relacionamentos muitos-para-muitos, criaremos uma tabela única para descrever o relacionamento e teremos o modelo a seguir, agora utilizando outra representação para os esquemas: Quando temos uma das entidades participantes do relacionamento com cardinalidade máxima 1, poderemos criar colunas adicionais nas tabelas da entidade que possui cardinalidade máxima. Estas colunas serão a chave primária da outra entidade e os atributos do relacionamento. Exemplo: http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 12 de 47 www.exponencialconcursos.com.br Neste caso o relacionamento será representado no esquema: Funcionário(matrícula, nome, data de início, código) Departamento(código, descrição) Última opção é a fusão de entidades, que só pode ser aplicada quando o relacionamento é de 1:1. Uniremos em uma única tabela os atributos de todas as entidades e do relacionamento. Exemplo: Esquema: Carro(chassi, modelo, data de início, código, potência) Observem que existe um fator que pode decidir qual o método utilizaremos, que é a cardinalidade mínima e máximadas entidas que se relacionam. A tabela a seguir, retirada do livro “Projeto de banco de dados”, de Carlos Albero Heuser, 4ª edição, resume bem como escolher a regra de acordo com a cardinalidade. http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 13 de 47 www.exponencialconcursos.com.br Resumindo, para se escolher a chave primária do esquema de um relacionamento devemos seguir os seguintes critérios: Relacionamentos muitos-para-muitos União das chaves primárias das entidades relacionadas Relacionamentos binários um-para- um Uma das chaves primárias das entidades relacionadas Relacionamentos binários muitos- para-um ou um-para-muitos A chave primária da entidade do lado muitos Relacionamentos enários União das chaves primárias das entidades relacionadas http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 14 de 47 www.exponencialconcursos.com.br 1.4 – Normalização Vimos que no modelo relacional os domínios dos atributos são atômicos. Isso ocorre para otimizar o banco de dados, reduzir a redundância, criar relações menos complexas, etc. Para atingir as características ideais utilizamos o processo de normalização. Dizemos então que um esquema de relação R está na primeira forma normal ou 1FN se os domínios de todos os atributos são de R são atômicos. Alguns autores consideram que uma tabela que contém atributos não atômicos possui tabelas aninhadas, ou colunas não atômicas. Possuir tabelas aninhadas é sinonimo de possuir colunas multi-valoradas ou não atômicas. Vejamos um exemplo para ficar mais claro: Cod_Departamento Nome_Dep Funcionário Matrícula Nome Data de entrada 1 Auditoria 112 Pedro 01/01/2009 234 Gilberto 21/12/2013 111 Manuel 05/05/2009 2 RH 223 Ricardo 05/06/2008 444 Leonardo 05/07/2007 556 João 05/08/2014 Neste caso temos o esquema Departamento, que possui uma tabela aninhada Funcionário: Departamento(Cod_Departamento, Nome_Dep, (Matrícula, Nome, Data de entrada )) Então, podemos dizer que um esquema de uma relação está na primeira forma normal quando não possui tabelas aninhadas. Para transformarmos o exemplo acima em um esquema em 1FN temos duas opções: Continuar com uma tabela única, mas repetir cada uma das linhas com os dados de departamento para cada funcionário. Vejam a seguir. Não é a melhor solução, tendo em vista a quantiade de dados redundantes. Cod_Departamento Nome_Dep Matrícula Nome Data de entrada 1 Auditoria 112 Pedro 01/01/2009 1 Auditoria 234 Gilberto 21/12/2013 1 Auditoria 111 Manuel 05/05/2009 2 RH 223 Ricardo 05/06/2008 2 RH 444 Leonardo 05/07/2007 2 RH 556 João 05/08/2014 A segunda opção seria separar as tabelas aninhadas, no caso do exemplo, em duas tabelas, uma de Departamento (Cod_Departamento, http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 15 de 47 www.exponencialconcursos.com.br Nome_Dep) outra de Funcionário_Dep(Cod_Departamento, Matrícula, Nome, Data de entrada). Reparem que a chave primária da tabela aninhada será o conjunto de: chaves primárias da tabela aninhada(Funcionário) mais a chave primária das tabelas a que ela está aninhada(Departamento). Para passarmos para as demais formas normais é necessário um outro conceito, o de dependência funcional. Um conjunto de atributos de uma tabela B depende funcionalmente de um atributo A, atributo da mesma tabela, quando, para todas as tuplas da tabela, para cada valor de A queaparece na tabela, aparece o mesmo valor de B, isto é, para cada valor de A está associado um e somente um valor de B. Simbolicamente representamos esta dependência da seguinte forma: 𝐴 → 𝐵 . Vejamos um exemplo a seguir: Código_Função Nome Adicional A João 2000 B Carlos 3000 A Pedro 2000 A Camila 2000 C José 1000 C Raimundo 1000 Vejam na tabela que o valor da coluna Adicional depende de Código_Função. Para cada valor de Código_Função temos um valor correspondente de Adicional. A dependência funcional pode ser parcial ou total. Será parcial caso B dependa somente de um subconjunto de A. Será total caso B dependa inteiramente de A. Diante desta definição podemos afirmar que todos os atributos da tabela dependem funcionalmente da chave primária da tabela. A segunda forma normal ou 2FN tem o objetivo de eliminar um certo tipo de redundância de dados. Uma tabela se encontra na 2FN quando estiver na 1FN e não contiver dependências parciais, isto é, só contiver dependências totais. Quando uma tabela não se encontra na 2FN podemos dizer que contém dependências funcionais parciais. O detalhe é que, caso a tabela contenha uma chave primária simples, isto é, com apenas uma coluna, caso ela já esteja na 1FN, podemos dizer que ela também está na 2FN, pois é impossível que uma coluna dependa de uma parte da chave priméria, pois ela é simples, não é composta por partes. Vamos voltar ao exemplo dos Funcionários e Departamentos. Tinhamos a seguinte solução: http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 16 de 47 www.exponencialconcursos.com.br Departamento (Cod_Departamento, Nome_Dep) Funcionário_Dep (Cod_Departamento, Matrícula, Nome, Data de entrada) Neste caso, na tabela Funcionário_Dep, Nome depende apenas de matrícula, enquanto que Data de entrada depende tanto de matrícula quanto de Cod_Departamento. Nome só depende de matrícula porque o nome do funcionário está diretamente ligado à sua matrícula. Já Data de entrada depende tanto da matrícula, que vincula a um funcionário específico, quanto ao código do departamento a que o funcionário está ligado. Temos uma dependência por parte de Nome. Para passarmos para a 2FN devemos elinar as dependências de parte da chave primária. Para isso vamos dividir a tabela Funcionário_Dep em duas: Funcionário ( Matrícula, Nome) Funcionário_Dep (Cod_Departamento, Matrícula, Data de entrada) Uma tabela está na terceira forma normal ou 3FN, quando, além de estar na 2FN, não contém dependências transitivas ou indiretas. Dependências transitivas ou indiretas acontecem quando um atributo da relação, que não é a chave primária, depende funcionalmente de outro atributo ou conjunto de atributos que também não são a chave primária. Apenas para exemplificar, caso tivéssemos uma coluna Adicional e uma Função na tabela Funcionário, teríamos uma dependência transitiva, pois Adicional depênde de Função. Por exemplo, um gerente ganha um adicional de gerente, já um coordenador seria diferente. Para resolvermos isso, criaríamos o seguinte esquema: suponha: Funcionário ( Matrícula, Nome, Função, Adicional) Solução: Funcionário ( Matrícula, Nome, Função) Adic_Função(Função, Adicional) Uma tabela está na forma normal de Boyce-Codd (BCNF) se para toda dependência funcional 𝐴 → 𝐵 em R, 𝐴 → 𝐵 é uma dependência funcional trivial, isto é, B é subconjunto de A, e A é superchave de R. http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 17 de 47 www.exponencialconcursos.com.br Vamos resolver um exercício para fixar estes conceitos. (FCC - AC TCE PR/TCE-PR/Informática/2011) Considere a situação expressa pelas seguintes relações: um cliente faz n pedidos mas um pedido específico é de somente um cliente. Seguindo, em um pedido específico são relacionados n produtos mas um mesmo produto pode constar em mais de um pedido. Após normalizar essas relações é possível que se estabeleçam tabelas relacionais correspondentes, sendo elas a) cliente, pedido e produto. b) cliente, cliente-pedido e produto. c) cliente, pedido, pedido-produto e produto. d) pedido-produto e cliente-produto. e) pedido, pedido-produto e cliente-produto. Comentários: Esta questão possui um nível mais alto de dificuldade para uma prova de Auditor Fiscal. Contudo, seus conceitos podem ajudar no entendimento de como funciona o modelo relacional, e facilitar a solução de algumas questões mais simples. Cliente possui relacionamento 1:n com pedidos. Pedidos possui relacionamento n:n com produtos. Cada entidade e relacionamento do projeto conceitual podemos representar por meio de um esquema, que terá o mesmo nome da entidade ou relacionamento. Este é um método utilizado para converter o modelo E-R em um projeto relacional. Dizemos então que um esquema de relação R está na 1FN se os domínios de todos os atributos são de R são atômicos. Uma tabela se encontra na 2FN quando estiver na 1FN e não contiver dependências parciais, isto é, só contiver dependências totais. Uma tabela está na terceira forma normal ou 3FN, quando, além de estar na 2FN, não contém dependências transitivas ou indiretas. http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 18 de 47 www.exponencialconcursos.com.br O esquema gerado contará com as tabelas: cliente, cliente-pedido (tabela do relacionamento), pedido, pedido-produto (tabela do relacionamento), produto. Contudo, devemos retirar as redundâncias, e otimizar o banco de dados, por isso a questão informa que a resposta procurada será obtida após a normalização. Para isso, vamos seguir as regras listadas na figura retirada do livro “Projeto de banco de dados”, de Carlos Albero Heuser, 4ª edição, já colocada anteriormente nesta aula. Lembrando que temos 3 soluções para implementação de um relacionamento. Tabela própria quer dizer que o relacionamento formará uma tabela. Adição de coluna quer dizer que adicionaremos colunas dentro de uma tabela de uma das entidade para inserir os atributos do relacionamento. Fusão de uma tabela de entidades quer dizer que faremos uma fusão das tabelas das entidades envolvidas no relacionamento. Exemplo de uma fusão: vamos supor que temos as entidades professor e matéria, sendo que se relacionam por meio do relacionamento ensina. Cada matéria só pode ter um professor e cada professor só pode ensinar uma matéria. O relacionamento ensina possui um atributo data_ini, que traz a data em que teve início o ensino da matéria pelo professor. Sendo assim, a principio, teremos as tabelas: Professor(matricula, nome) Ensina(codEn, matricula,cod_materia, data_ini) matéria(cod_materia, nome_materia) Uma das soluções para otimizar o BD seria fundir as entidades e acrescentar o atributo do relacionamento: Professor(matricula, nome, data_ini, nome _materia) Concluímos por meio de análise do enunciado que: cliente possui relacionamento 1:n com pedidos. Pedidos possui relacionamento n:n com produtos. Pode não haver cliente, assim como pode não haver pedido. A melhor solução seria adicionar uma coluna a cliente com os atributos do relacionamento cliente-pedido e eliminar esta tabela. Com relação a pedido-produto, como é um relacionamento n:n, manteremos as tabelas. Como observado, esta questão é de um nível difícil. Em uma prova para Auditor Fiscal poucas pessoas fariam esta questão. Mas os conceitos aplicados a ela podem ajudar a resolver outras questões. Resposta: C. http://www.exponencialconcursos.com.br/ Curso: Informática p/ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 19 de 47 www.exponencialconcursos.com.br 1 – (FCC - AFTM SP/Pref SP/Tecnologia da Informação/2012) Considere o seguinte projeto conceitual de um banco de dados: Para se construir o projeto lógico deste banco de dados, no mapeamento do relacionamento ExpostoEm e seus atributos, a) pode ser criada uma relação ExpostoEm, contendo como chaves estrangeiras as chaves primárias das relações correspondentes às entidades Produto, Loja e Lote e como atributos Unidade e Quantidade. b) os atributos Unidade e Quantidade podem ser adicionados à relação correspondente à entidade Lote. O atributo CodLote deve ser chave estrangeira nas relações correspondentes às entidades Produto e Loja. c) os atributos Unidade e Quantidade podem ser adicionados à relação correspondente à entidade Loja. O atributo CodLoja deve ser chave estrangeira nas relações correspondentes às entidades Produto e Lote. d) pode ser criada uma relação ExpostoEm, contendo como atributos CodExposicao, Unidade e Quantidade. O atributo CodExposicao é a chave primária desta relação e deve aparecer como chave estrangeira na relação correspondente à entidade Lote. e) pode ser criada uma relação ExpostoEm, contendo como atributos CodExposicao, Unidade e Quantidade. O atributo CodExposicao é a chave primária desta relação e deve aparecer como chave estrangeira nas relações correspondentes às entidades Produto, Loja e Lote. Comentários: 2- Questões comentadas http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 20 de 47 www.exponencialconcursos.com.br Como vimos, para construir o projeto lógico de um relacionamento, primeiro o escrevemos em formato de esquema, com os atributos de chave primária das entidades relacionadas e seus prórpios atributos. No caso, como é um relacionamento ternário, a chave primária será a união das chaves primárias das entidades relacionadas. ExpostoEm(CodProduto,CodLoja,CodLote, unidade, quantidade) Resposta: A. 2 – (FCC - AFR SP/SEFAZ SP/Gestão Tributária/2013) Instruções: Para responder à questão, considere o texto a seguir: A empresa Express conta com diversas equipes de desenvolvimento, nas áreas de software em geral, incluindo técnicas estruturadas e de orientação a objetos. Essas equipes estão em constante aperfeiçoamento, visando mantê- las sempre atualizadas com as técnicas mais recentes da engenharia de software, incluindo-se aí a área de bancos de dados. A Express atende clientes de diversos perfis, abrangendo pequenas, médias e grandes empresas. Dessa forma, os sistemas de computação solicitados também atendem a esse perfil, compreendendo sistemas de pequeno, médio e grande porte. A Express conta com equipes especializadas, de grande experiência nas áreas acima destacadas, estando, portanto, apta a atender desde um simples produto até um grande sistema de software. Dessa forma, os produtos desenvolvidos pela Express possuem, normalmente, uma qualidade bastante apurada, o que pode ser verificado pelas diversas técnicas existentes. Uma das normas da Express é a de produzir documentação de excelente qualidade, cuja finalidade é, não apenas para entrega aos clientes, mas também para possibilitar a manutenção adequada dos produtos desenvolvidos. No projeto de seus bancos de dados, a Express faz uso da modelagem relacional, na qual é necessário definir os domínios dos atributos de uma relação. Um domínio é considerado atômico se, na aplicação em questão, a) o comprimento máximo de seus valores tiver até 255 caracteres. b) seus elementos forem considerados como indivisíveis. c) não houver caractere especial nos valores dos atributos, tais como $ e @. d) forem admitidos apenas letras e espaços como caracteres válidos. e) não forem admitidos valores nulos. http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 21 de 47 www.exponencialconcursos.com.br Comentários: No modelo E-R, utilizamos atributos de valores múltiplos e compostos, que possuem graus de subestrutura. Porém, ao passarmos para o modelo lógico, eliminamos esta subestrutura. No caso do atributo composto, deixamos cada componente ser um atributo por si só. Por exemplo, Endereço, que tinha rua e cidade, deixa de ser um atributo e, rua e cidade passam a ser atributos da entidade. Para o caso de um atributo de valores múltiplos, são criados novos esquemas de relação R, e então criamos uma tupla para cada item em um conjunto de valores. Por exemplo, vamos supor que tenhamos uma entidade funcionário que pode ter vários números de telefone. Número de telefone seria um atributo de valores múltiplos de funcionário. Para passarmos para o modelo lógico, teremos de criar uma tabela Num_telefone, com atributos matrícula e num_telefone da seguinte forma: Num_telefone(matrícula,num_telefone) O domínio de um atributo é o conjunto de valores que ele pode assumir. No modelo relacional, todo atributo deve ser atômico, isto é, os elementos do domínio são considerados unidades indivisíveis. Resposta: B. 3 – (FCC - AFRE RJ/SEFAZ RJ/2014) Instrução: Para responder à questão, considere o texto a seguir. Um funcionário ficou responsável pela elaboração de um modelo de dados e criação de um banco de dados para a Receita Estadual. O banco de dados deve controlar os funcionários da Receita, os departamentos aos quais estão vinculados e os projetos nos quais estão alocados, de acordo com a descrição: I. A Receita está organizada em departamentos. Cada departamento tem um nome único, um número único e um funcionário que gerencia o departamento. Há, ainda, a data em que o funcionário começou a gerenciar o departamento. II. Um departamento controla vários projetos. Cada projeto tem um nome único, um único número e uma única data de início. III. Cada empregado tem um número único de CPF, um número de seguro social, endereço, sexo, salário e data de nascimento. IV. Todo empregado está alocado em um departamento, mas pode trabalhar em diversos projetos, mesmo que controlados por diferentes departamentos. http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 22 de 47 www.exponencialconcursos.com.br Controla-se o número de horas que cada empregado trabalha em cada projeto. Controla-se o supervisor direto de cada empregado, que supervisiona seu trabalho. Considere: − Existe a tabela FUNCIONARIO, cuja chave primária é CPF. − Existe a tabela DEPARTAMENTO cuja chave primária é NUMERODEP. − O campo NDEP da tabela FUNCIONARIO refere-se ao número do departamento ao qual um funcionário está alocado. − O valor de NDEP em qualquer tupla da tabela FUNCIONARIO deve corresponder a um valor da chave primária da tabela DEPARTAMENTO em alguma tupla desta tabela. O campo NDEP pode ser a) a chave estrangeira na tabela FUNCIONARIO em relação à tabela DEPARTAMENTO. b) a chave secundária da tabela DEPARTAMENTO. c) a segunda chave primária da tabela FUNCIONARIO em relação à tabela DEPARTAMENTO. d) a chave estrangeira na tabela DEPARTAMENTO em relação à tabela FUNCIONARIO. e) o atributo referencial da superchave da tabela DEPARTAMENTO. Comentários: As informações em que precisamos focar para resolver a questão são: − Existe a tabela FUNCIONARIO, cuja chave primária é CPF. − O campo NDEP da tabela FUNCIONARIO refere-se ao número do departamento ao qual um funcionário stá alocado. − O valor de NDEP em qualquer tupla da tabela FUNCIONARIO deve corresponder a um valor da chave primária da tabelaDEPARTAMENTO em alguma tupla desta tabela. Portanto, sabemos que NDEP corresponde a um valor de chave primária de DEPARTAMENTO e que NDEP pertence à tabela FUNCIONARIO. Então, NDEP é uma chave estrangeira na tabela FUNCIONARIO. Resposta: A. http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 23 de 47 www.exponencialconcursos.com.br 4 – (FCC - AFR SP/SEFAZ SP/Tecnologia da Informação/2009) Considere a afirmativa a seguir. Uma tabela está na .....I.... , se e somente se ela estiver na ....II... e os atributos não-chave forem .....III... . I, II e III podem ser corretamente preenchidos por: a) 2FN 1FN totalmente dependentes da totalidade da chave primária b) 2FN 1FN totalmente dependentes de parte da chave primária c) FNBC 1FN totalmente dependentes da totalidade da chave primária d) 3FN 2FN independentes da chave primária e) 3FN 1FN totalmente dependentes de parte da chave primária Comentários: Vimos que no modelo relacional os domínios dos atributos são atômicos. Isso ocorre para otimizar o banco de dados, reduzir a redundância, criar relações menos complexas, etc. Para atingir as características ideais utilizamos o processo de normalização. Dizemos então que um esquema de relação R está na primeira forma normal ou 1FN se os domínios de todos os atributos são de R são atômicos. Alguns autores consideram que uma tabela que contém atributos não atômicos possui tabelas aninhadas, ou colunas não atômicas. Por isso, podemos dizer que um esquema de uma relação está na primeira forma normal quando não possui tabelas aninhadas. Para passarmos para as demais formas normais é necessário um outro conceito, dependência funcional. Um conjunto de atributos de uma tabela B depende funcionalmente de A, atributo da mesma tabela, quando, para todas as tuplas da tabela, para cada valor de A que aparece na tabela, aparece o mesmo valor de B, isto é, para cada valor de A está associado um e somente um valor de B. Simbolicamente representamos esta dependência da seguinte forma: 𝐴 → 𝐵. A dependência funcional pode ser parcial ou total. Será parcial caso B dependa somente de um subconjunto de A. Será total caso B dependa inteiramente de A. Diante desta definição podemos afirmar que todos os atributos da tabela dependem funcionalmente da chave primária da tabela. A segunda forma normal ou 2FN tem o objetivo de eliminar um certo tipo de redundância de dados. Uma tabela se encontra na 2FN quando estiver http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 24 de 47 www.exponencialconcursos.com.br na 1FN e não contiver dependências parciais, isto é, só contiver dependências totais. Uma tabela está na terceira forma normal ou 3FN, quando, além de estar na 2FN, não contém dependências transitivas ou indiretas. Dependências transitivas ou indiretas acontecem quando um atributo da relação, que não é a chave primária, depende funcionalmente de outro atributo ou conjunto de atributos que também não são a chave primária. Uma tabela está na forma normal de Boyce-Codd (BCNF) se para toda dependência funcional 𝐴 → 𝐵 em R, 𝐴 → 𝐵 é uma dependência funcional trivial, isto é, B é subconjunto de A, e A é superchave de R. Voltando à questão: Uma tabela está na .....I.... , se e somente se ela estiver na ....II... e os atributos não-chave forem .....III... . O I pode ser 2FN, II será 1FN e o III totalmente dependente da totalidade da chave primária. Resposta: A. 5 – (FCC - AFTM SP/Pref SP/Tecnologia da Informação/2012) A seguinte relação ProdLoja define para cada tupla um produto em uma loja, especificando a quantidade do produto na loja, o código e nome do produto e o código, nome e localização da loja. O domínio de todos os atributos da relação só pode incluir valores atômicos. Existem dependências funcionais entre os atributos CodProd e NomeProd e entre CodLoja e NomeLoja e LocalLoja. A chave primária é composta pelos atributos CodProd e CodLoja. Dizemos então que um esquema de relação R está na 1FN se os domínios de todos os atributos são de R são atômicos. Uma tabela se encontra na 2FN quando estiver na 1FN e não contiver dependências parciais, isto é, só contiver dependências totais. Uma tabela está na terceira forma normal ou 3FN, quando, além de estar na 2FN, não contém dependências transitivas ou indiretas. ProdLoja CodProd CodLoja Quantidade NomeProd NomeLoja LocalLoja http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 25 de 47 www.exponencialconcursos.com.br Das três primeiras formas normais de relações baseadas em chaves primárias, esta relação respeita a a) primeira e a terceira formas normais. b) primeira, a segunda e a terceira formas normais. c) primeira e a segunda formas normais. d) primeira forma normal. e) segunda e a terceira formas normais. Comentários: A questão afirma o seguinte: 1 - O domínio de todos os atributos da relação só pode incluir valores atômicos. Isto implica que a tabela está na 1FN. 2 - Existem dependências funcionais entre os atributos CodProd e NomeProd e entre CodLoja e NomeLoja e LocalLoja. A chave primária é composta pelos atributos CodProd e CodLoja. Resumindo o item 2: existem dependências funcionais, atributos que não são chaves primárias dependem funcionalmente de atributos que fazem parte da chave primária. Mas o detalhe importante é que a dependência é de somente um atributo que faz parte da chave, o que implica em dependência parcial em relação à chave primária de atributos não chave. Com isso, concluímos que a tabela não segue a regra da 2FN. Então, a tabela está na 1FN. Resposta: D. 6 – (FCC - AFRE RJ/SEFAZ RJ/2014) Instrução: Para responder à questão, considere o texto a seguir. Um funcionário ficou responsável pela elaboração de um modelo de dados e criação de um banco de dados para a Receita Estadual. O banco de dados deve controlar os funcionários da Receita, os departamentos aos quais estão vinculados e os projetos nos quais estão alocados, de acordo com a descrição: I. A Receita está organizada em departamentos. Cada departamento tem um nome único, um número único e um funcionário que gerencia o departamento. Há, ainda, a data em que o funcionário começou a gerenciar o departamento. II. Um departamento controla vários projetos. Cada projeto tem um nome único, um único número e uma única data de início. http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 26 de 47 www.exponencialconcursos.com.br III. Cada empregado tem um número único de CPF, um número de seguro social, endereço, sexo, salário e data de nascimento. IV. Todo empregado está alocado em um departamento, mas pode trabalhar em diversos projetos, mesmo que controlados por diferentes departamentos. Controla-se o número de horas que cada empregado trabalha em cada projeto. Controla-se o supervisor direto de cada empregado, que supervisiona seu trabalho. Está correlacionado corretamente o que está expresso em: Comentários: Questão da última prova. Agora que já temos uma noção do modelo lógico, podemos resolvê-la, apesar de não ser muito necessário. No item A já temos a resposta. Modelo conceitual seria o E-R. Projeto seria uma entidade, data_inicial seria atributo do relacionamento gerencia, e trabalha_em seria o relacionamento entre empregado e projeto. Na letra B, supervisiona seria uma relação e não um atributo. Na letra C, projeto não é atributoe sem entidade, além de projeto_N não ter muito sentido. Na letra D, caso de uso não é utilizado para modelagem de banco de dados e sim de softwares. Na letra E, Receita não seira uma entidade, pois não participa do BD. Resposta: A. 7 – (FCC - Tec MPU/MPU/Informática/2007) No Modelo Relacional de Dados, a) não é possível criar chaves primárias compostas por dois ou mais campos. b) toda tabela tem que ter, obrigatoriamente, um campo do tipo Chave Primária. Tipo de modelo Exemplo de entidade Atributo Relacionamento (A) conceitual projeto data_inicial trabalha_em (B) conceitual empregado supervisiona é_supervisionado_por (C) lógico departamento projeto projeto_N (D) de caso de uso projeto nro_do_projeto gerencia (E) lógico Receita CPF N_projetos_supervisionados http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 27 de 47 www.exponencialconcursos.com.br c) recomenda-se a criação de tabelas com o maior número de campos possível, reduzindo com isso o número de tabelas do modelo. d) a Integridade Referencial é fundamental para manter a consistência dos dados e evitar os chamados Registros Órfãos. e) não se usa dados estruturados que possam ser modelados em termos de tabelas de dados. Comentários: a) não é possível criar chaves primárias compostas por dois ou mais campos. Item incorreto. Como já vimos, não só podemos ter chaves primárias com mais de dois campos, como em alguns casos é a única forma de termos uma chave primária. b) toda tabela tem que ter, obrigatoriamente, um campo do tipo Chave Primária. Item incorreto. Podemos ter mais de um campo formando a chave primária. c) recomenda-se a criação de tabelas com o maior número de campos possível, reduzindo com isso o número de tabelas do modelo. Item incorreto. Como já vimos, devemos sempre evitar redundância de dados. A utilização de tabelas muito grandes normalmente leva à repetição de dados. O ideal é trabalhar com esquemas menores e números maiores de tabelas. Por isso utilizamos a normalização das tabelas. d) a Integridade Referencial é fundamental para manter a consistência dos dados e evitar os chamados Registros Órfãos. http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 28 de 47 www.exponencialconcursos.com.br Item correto. Vamos relembrar os tipos de restrições de integridades: Caso não tenhamos a integridade referencial, podemos ter tabelas com chaves estrangeiras sem valor correspondente da respectiva chave primária na tabela primária do relacionamento. e) não se usa dados estruturados que possam ser modelados em termos de tabelas de dados. Item incorreto. Dados estruturados são dados organizados em relações, onde os dados do mesmo tipo possuem o mesmo atributo, entre outras características. Como exemplo são os dados organizados em um SGBD em tabelas. Portanto, dados estruturados podem ser facilmente modelados em termos de tabela de dados. Resposta: D. 8 – (FCC - Ana (CVM)/CVM/Sistemas/2003) Integridade referencial que define o comportamento das entidades, com relação às operações de inclusão, deleção e modificação, é um conjunto de regras de a) negócios. b) atributos. c) normalização. d) entidades. e) relacionamentos. Restrições de Integridade Restrição de chave ou Integridade da chave a chave é obrigatória e única para cada tupla Restrição de entidade ou integridade de entidade chave primária não pode ter valor NULL Restrição de dominio ou integridade de dominio os valores dos atributos devem estar dentro de seu domínio Integridade Referencial garante que dados das chaves primárias devem ser iguais às chaves estrangeiras relacionadas http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 29 de 47 www.exponencialconcursos.com.br Comentários: A restrição de integridade referencial estabelece como deve funcionar o relacionamento entre a chave primária de uma tabela e a chave estrangeira de outra. Por isso, é uma regra de relacionamento entre chaves primária e estrangeira. É importante comentar sobre as operações de inclusão, deleção e modificação nos casos em que há a restrição de integridade referencial. Nos casos de inclusão de novas tuplas em uma tabela que contém a chave primária, é importante garantir que os dados sejam incluídos na tabela do relacionamento em que há uma chave estrangeira. No caso da deleção de tuplas em uma tabela que contém a chave primária, é importante garantir que os dados que contenham o mesmo valor de chave estrangeira em outras tabelas também sejam deletados. No caso de modificação de dados, não é diferente. Caso haja necessidade, os dados da tabela que contém a chave estrangeira deverão ser modificados. São as chamadas ações em cascata. Caso a atualização ou remoção cause uma violação de restrição que não possa ser tratada por uma operação em cascata, o sistema aborta a transação. Resposta: E. 9 - (FCC - Aux FF II (TCE-SP)/TCE-SP/2009) As entidades e o respectivo relacionamento do tipo empregado (E) e seus dependentes (D) serão implementados em um SGBD relacional normalizado como tabelas D e E, sendo que a) a chave primária de E é chave estrangeira em D, sem compor sua chave primária. b) a chave primária de E compõe parte da chave primária de D. c) as chaves primárias de D compõem parte da chave primária de E. d) as chaves primárias de D são chaves estrangeiras em E, sem compor sua chave primária. e) as chaves primárias de D são chaves estrangeiras em E e compõem, também, sua chave primária. Comentários: http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 30 de 47 www.exponencialconcursos.com.br Mais uma questão com exemplo clássico de livros de BD, o relacionamento entre empregado e seus dependentes. O modelo E-R seria assim: É uma relação 1:n, onde um empregado pode ter zero ou mais dependentes e cada dependente deve estar relacionado a pelo menos um empregado. Vamos montar o esquema: Empregado(cod_emp, nome) Relação_1(cod_rel,cod_emp,cod_dep) Dependente(cod_dep, nome_dep) A tabela Relação_1 é totalmente desnecessária, é redundante. Por isso, incluiremos uma coluna em dependente e colocaremos o cod_emp, para podermos relacionar as entidades. Empregado(cod_emp, nome) Dependente(cod_dep, cod_emp, nome_dep) Neste caso teremos a chave primária de empregado sendo chave estrangeira em dependente e fazendo parte da chave primária. Resposta: B. 10 - (FCC - AJ TRT2/TRT 2/Apoio Especializado/Análise de Sistemas/2004) A regra de integridade referencial, em que uma linha, ao ser excluída, provoca a exclusão também de todas as linhas dependentes, é: a) set delete. b) set exclude. c) linkage. d) chaining. e) cascade. Comentários: http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 31 de 47 www.exponencialconcursos.com.br Como vimos, quando deletamos tuplas em uma tabela que contém a chave primária, é importante garantir que os dados que contenham o mesmo valor de chave estrangeira em outras tabelas também sejam deletados. No caso de modificação de dados não é diferente. Caso haja necessidade os dados da tabela que contém a chave estrangeira deverão ser modificados. Vimos que são conhecidas como ações em cascata ou, o termo em inglês, cascade. Caso a atualização ou remoção causeuma violação de restrição que não possa ser tratada por uma operação em cascata, o sistema aborta a transação. Resposta: E. 11 – (FCC - AJ TRT3/TRT 3/Apoio Especializado/Análise de Sistemas/2005) No modelo relacional de banco de dados, cada linha é a) um domínio, o nome de uma coluna é chamado de célula e uma tabela é chamada de relação; o tipo de dado que especifica o tipo dos valores que podem aparecer em uma coluna é chamado de atributo. b) uma relação, o nome de uma coluna é chamado de célula e uma tabela é chamada de tupla; o tipo de dado que especifica o tipo dos valores que podem aparecer em uma coluna é chamado de atributo. c) uma tupla, o nome de uma coluna é chamado de atributo e uma tabela é chamada de relação; o tipo de dado que especifica o tipo dos valores que podem aparecer em uma coluna é chamado de domínio. d) uma tupla, o nome de uma coluna é chamado de célula e uma tabela é chamada de relação; o tipo de dado que especifica o tipo dos valores que podem aparecer em uma coluna é chamado de atributo. e) um domínio, o nome de uma coluna é chamado de atributo e uma tabela é chamada de tupla; o tipo de dado que especifica o tipo dos valores que podem aparecer em uma coluna é chamado de relação. Comentários: Questão fácil para relembrar os conceitos básicos do modelo relacional. a) um domínio, o nome de uma coluna é chamado de célula e uma tabela é chamada de relação; o tipo de dado que especifica o tipo dos valores que podem aparecer em uma coluna é chamado de atributo. Item incorreto. Vimos que cada linha é uma tupla, cada coluna é um atributo, e uma tabela é uma relação. http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 32 de 47 www.exponencialconcursos.com.br b) uma relação, o nome de uma coluna é chamado de célula e uma tabela é chamada de tupla; o tipo de dado que especifica o tipo dos valores que podem aparecer em uma coluna é chamado de atributo. Item incorreto. Relação é a tabela, célula seria a interseção entre uma linha e uma coluna. c) uma tupla, o nome de uma coluna é chamado de atributo e uma tabela é chamada de relação; o tipo de dado que especifica o tipo dos valores que podem aparecer em uma coluna é chamado de domínio. Item correto. d) uma tupla, o nome de uma coluna é chamado de célula e uma tabela é chamada de relação; o tipo de dado que especifica o tipo dos valores que podem aparecer em uma coluna é chamado de atributo. Item incorreto. A coluna é um atributo, o tipo dos valores que podem aparecer em uma coluna é o domínio. e) um domínio, o nome de uma coluna é chamado de atributo e uma tabela é chamada de tupla; o tipo de dado que especifica o tipo dos valores que podem aparecer em uma coluna é chamado de relação. Item incorreto. Cada linha é uma tupla, tabelas são relações. Resposta: C. 12 – (FCC - AJ TRT4/TRT 4/Apoio Especializado/Análise de Sistemas/2006) Um atributo multivalorado num diagrama E-R será mapeado em um modelo relacional a) por um conjunto variável de colunas na tabela, para as ocorrências do atributo. b) por duas colunas na tabela, uma para índice e outra para as ocorrências do atributo. c) criando-se na tabela uma linha nova, representando cada ocorrência do atributo. d) criando-se uma tabela nova para esse tipo de atributo. e) diretamente em uma única coluna da tabela. Comentários: http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 33 de 47 www.exponencialconcursos.com.br Como vimos, para o modelo relacional, teremos sempre atributos atômicos. Por isso, teremos que adaptar os atributos multivalorados e os compostos do modelo E-R quando transportarmos para o modelo lógico. Para o caso de um atributo de valores múltiplos, são criados novos esquemas de relação R, e então criamos uma tupla para cada item em um conjunto de valores. Já vimos o exemplo do atributo número do telefone na questão 3. Portanto, o item D seria a resposta, criaríamos uma tabela nova com chave primária sendo o um código único mais o atributo. Resposta: D. 13 – (FCC - TJ TRF2/TRF 2/Apoio Especializado/Informática/2012) Atenção: Na questão abaixo não foram usados acentos, símbolos ou espaços nos nomes das entidades e atributos, pois isto pode causar problemas em muitos dos softwares utilizados para implementar o modelo. Em um modelo entidade-relacionamento de uma clínica médica, observou-se um relacionamento N para N entre as entidades MEDICO e PACIENTE. Essas entidades são mostradas a seguir: Conversando com os funcionários da clínica foi obtido o seguinte relato: Quando o paciente deseja marcar uma consulta, ele liga para a clínica e a atendente agenda a consulta. O paciente pode passar por várias consultas com o mesmo médico, exceto na mesma data e hora. Finalizada a consulta, o médico faz o diagnóstico apenas daquela consulta. Considerando que a entidade ATENDENTE não faz parte do escopo do modelo desejado, na prática, ao criar o banco de dados, para que o relacionamento entre MEDICO e PACIENTE seja efetivamente estabelecido é necessário: a) uma tabela CONSULTA entre MEDICO e PACIENTE, fragmentando o relacionamento N para N identificado em dois relacionamentos 1 para N. A chave primária dessa tabela poderá ser composta pelos atributos CRMMedico, CodigoPaciente, DataConsulta e HoraConsulta. http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 34 de 47 www.exponencialconcursos.com.br b) definir a cardinalidade N para N ao relacionar as tabelas MEDICO e PACIENTE, de forma que ambas fiquem com uma chave primária composta pelos atributos CRMMedico e CodigoPaciente. c) definir a cardinalidade N para N ao relacionar as tabelas MEDICO e PACIENTE, pois todos os Sistemas Gerenciadores de Banco de Dados possuem suporte à criação de relacionamento direto N para N, 1 para N e 1 para 1. d) uma entidade intermediária entre MEDICO e PACIENTE, fragmentando o relacionamento N para N identificado em dois relacionamentos 1 para 1. A chave primária da nova entidade deverá obrigatoriamente ser composta pelos atributos CRMMedico e CodigoPaciente. e) uma entidade intermediária entre MÉDICO e PACIENTE, fragmentando o relacionamento N para N identificado em dois relacionamentos N para N. Essa entidade deverá obrigatoriamente ter como chave primária simples um atributo CodigoConsulta. Comentários: A questão indica que: 1 – o relacionamento entre paciente e consulta é 1:n. 2 – o relacionamento entre médico e consulta é de 1:n. 3 – temos uma terceira entidade: consulta. 4 – “exceto na mesma data e hora” então data e hora farão parte da chave primária de consulta, já que a tornam única. Com relação ao relacionamento entre paciente e consulta, a tabela deverá ser eliminada e será adicionada uma coluna em consulta para colocarmos a chave primária de paciente. Isto ocorre porque a tabela do relacionamento não tem grande serventia, servindo apenas para relacionar as duas entidades. http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 35 de 47 www.exponencialconcursos.com.br Para otimizar o banco, criaremos uma coluna CodicoPaciente em consulta. O mesmo ocorre com o relacionamento entre médico e consulta. Criaremos outra coluna em cosulta para inserirmos a chave primária de médico, que é CRMMedico. Para identificar a chave no modelo da questão, basta ver o atributo com a chave ao lado ou verificar os atributos acima da linha que divide a tabela.As duas novas colunas farão parte da chave primária. A lógica seria que podem haver consultas com vários pacientes e com vários médicos na mesma data e horário. Então, para identificarmos a consulta, teremos que colocar os atributos chaves primárias de médico e paciente na chave primária de consulta. Estes atributos serão chave estrangeira e farão parte da chave primária em consulta. O modelo lógico da questão será: Resposta: A. 14 – (FCC - TJ TRF3/TRF 3/Apoio Especializado/Informática/2007) Na modelagem de banco de dados relacional, a) todos os tipos de relacionamento devem ser mapeados diretamente nas tabelas originais. b) somente o tipo de relacionamento N:N deve ser mapeado diretamente nas tabelas originais. c) os tipos de relacionamento 1:1 e 1:N devem ser mapeados diretamente nas tabelas originais e o tipo N:N exige ser mapeado por meio de tabela auxiliar. d) somente o tipo de relacionamento 1:1 deve ser mapeado diretamente nas tabelas originais. http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 36 de 47 www.exponencialconcursos.com.br e) todos os tipos de relacionamento exigem ser mapeados por meio de tabelas auxiliares. Comentários: De um modo geral, se consultarmos a figura da questão 11, veremos que, no caso de relacionamentos 1:n e 1:1, normalmente utilizaremos as tabelas das entidades, e não criaremos uma tabela para o relacionamento. Já no caso de n:n sempre criaremos uma tabela de relacionamento. Resposta: C. 15 – (FCC - AFCE (TCE-PI)/TCE-PI/Ciência da Computação/2005) Dada a relação normalizada “Cliente compra Veículo” (um cliente compra diversos veículos, porém um veículo só pode ser comprado por um mesmo cliente, sem histórico) representada nas tabelas “Cliente” e “Veículo” A garantia de que as chaves estrangeiras da coluna Cod_Cli da Tabela “Veículo” correspondam fielmente às chaves primárias Cod_Cli da Tabela “Cliente”, de acordo com o modelo, é chamada de a) dependência iterativa. b) domínio. c) tupla. d) integração funcional. e) integridade referencial. Comentários: Já vimos que a restrição de integridade referencial estabelece como deve funcionar o relacionamento entre a chave primária de uma http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 37 de 47 www.exponencialconcursos.com.br tabela e a chave estrangeira de outra. Por isso, ela garante a correspondência entre os valores das chaves nas duas tabelas. Resposta: E. http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 38 de 47 www.exponencialconcursos.com.br 1 – (FCC - AFTM SP/Pref SP/Tecnologia da Informação/2012) Considere o seguinte projeto conceitual de um banco de dados: Para se construir o projeto lógico deste banco de dados, no mapeamento do relacionamento ExpostoEm e seus atributos, a) pode ser criada uma relação ExpostoEm, contendo como chaves estrangeiras as chaves primárias das relações correspondentes às entidades Produto, Loja e Lote e como atributos Unidade e Quantidade. b) os atributos Unidade e Quantidade podem ser adicionados à relação correspondente à entidade Lote. O atributo CodLote deve ser chave estrangeira nas relações correspondentes às entidades Produto e Loja. c) os atributos Unidade e Quantidade podem ser adicionados à relação correspondente à entidade Loja. O atributo CodLoja deve ser chave estrangeira nas relações correspondentes às entidades Produto e Lote. d) pode ser criada uma relação ExpostoEm, contendo como atributos CodExposicao, Unidade e Quantidade. O atributo CodExposicao é a chave primária desta relação e deve aparecer como chave estrangeira na relação correspondente à entidade Lote. e) pode ser criada uma relação ExpostoEm, contendo como atributos CodExposicao, Unidade e Quantidade. O atributo CodExposicao é a chave primária desta relação e deve aparecer como chave estrangeira nas relações correspondentes às entidades Produto, Loja e Lote. Lista de questões da aula http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 39 de 47 www.exponencialconcursos.com.br 2 – (FCC - AFR SP/SEFAZ SP/Gestão Tributária/2013) Instruções: Para responder à questão, considere o texto a seguir: A empresa Express conta com diversas equipes de desenvolvimento, nas áreas de software em geral, incluindo técnicas estruturadas e de orientação a objetos. Essas equipes estão em constante aperfeiçoamento, visando mantê- las sempre atualizadas com as técnicas mais recentes da engenharia de software, incluindo-se aí a área de bancos de dados. A Express atende clientes de diversos perfis, abrangendo pequenas, médias e grandes empresas. Dessa forma, os sistemas de computação solicitados também atendem a esse perfil, compreendendo sistemas de pequeno, médio e grande porte. A Express conta com equipes especializadas, de grande experiência nas áreas acima destacadas, estando, portanto, apta a atender desde um simples produto até um grande sistema de software. Dessa forma, os produtos desenvolvidos pela Express possuem, normalmente, uma qualidade bastante apurada, o que pode ser verificado pelas diversas técnicas existentes. Uma das normas da Express é a de produzir documentação de excelente qualidade, cuja finalidade é, não apenas para entrega aos clientes, mas também para possibilitar a manutenção adequada dos produtos desenvolvidos. No projeto de seus bancos de dados, a Express faz uso da modelagem relacional, na qual é necessário definir os domínios dos atributos de uma relação. Um domínio é considerado atômico se, na aplicação em questão, a) o comprimento máximo de seus valores tiver até 255 caracteres. b) seus elementos forem considerados como indivisíveis. c) não houver caractere especial nos valores dos atributos, tais como $ e @. d) forem admitidos apenas letras e espaços como caracteres válidos. e) não forem admitidos valores nulos. 3 – (FCC - AFRE RJ/SEFAZ RJ/2014) Instrução: Para responder à questão, considere o texto a seguir. Um funcionário ficou responsável pela elaboração de um modelo de dados e criação de um banco de dados para a Receita Estadual. O banco de dados deve controlar os funcionários da Receita, os departamentos aos quais estão vinculados e os projetos nos quais estão alocados, de acordo com a descrição: http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 40 de 47 www.exponencialconcursos.com.br I. A Receita está organizada em departamentos. Cada departamento tem um nome único, um número único e um funcionário que gerencia o departamento. Há, ainda, a data em que o funcionário começou a gerenciar o departamento. II. Um departamento controla vários projetos. Cada projeto tem um nome único, um único número e uma única data de início. III. Cada empregado tem um número único de CPF, um número de seguro social, endereço, sexo, salário e data de nascimento. IV. Todo empregado está alocado em um departamento, mas pode trabalhar em diversos projetos, mesmo que controlados por diferentes departamentos. Controla-se o número de horas que cada empregado trabalha em cada projeto. Controla-se o supervisor direto de cada empregado, que supervisiona seu trabalho. Considere: − Existe a tabela FUNCIONARIO, cuja chave primária é CPF. − Existe a tabela DEPARTAMENTO cuja chave primária é NUMERODEP. − O campo NDEP da tabela FUNCIONARIOrefere-se ao número do departamento ao qual um funcionário está alocado. − O valor de NDEP em qualquer tupla da tabela FUNCIONARIO deve corresponder a um valor da chave primária da tabela DEPARTAMENTO em alguma tupla desta tabela. O campo NDEP pode ser a) a chave estrangeira na tabela FUNCIONARIO em relação à tabela DEPARTAMENTO. b) a chave secundária da tabela DEPARTAMENTO. c) a segunda chave primária da tabela FUNCIONARIO em relação à tabela DEPARTAMENTO. d) a chave estrangeira na tabela DEPARTAMENTO em relação à tabela FUNCIONARIO. e) o atributo referencial da superchave da tabela DEPARTAMENTO. 4 – (FCC - AFR SP/SEFAZ SP/Tecnologia da Informação/2009) Considere a afirmativa a seguir. http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 41 de 47 www.exponencialconcursos.com.br Uma tabela está na .....I.... , se e somente se ela estiver na ....II... e os atributos não-chave forem .....III... . I, II e III podem ser corretamente preenchidos por: a) 2FN 1FN totalmente dependentes da totalidade da chave primária b) 2FN 1FN totalmente dependentes de parte da chave primária c) FNBC 1FN totalmente dependentes da totalidade da chave primária d) 3FN 2FN independentes da chave primária e) 3FN 1FN totalmente dependentes de parte da chave primária 5 – (FCC - AFTM SP/Pref SP/Tecnologia da Informação/2012) A seguinte relação ProdLoja define para cada tupla um produto em uma loja, especificando a quantidade do produto na loja, o código e nome do produto e o código, nome e localização da loja. O domínio de todos os atributos da relação só pode incluir valores atômicos. Existem dependências funcionais entre os atributos CodProd e NomeProd e entre CodLoja e NomeLoja e LocalLoja. A chave primária é composta pelos atributos CodProd e CodLoja. Das três primeiras formas normais de relações baseadas em chaves primárias, esta relação respeita a a) primeira e a terceira formas normais. b) primeira, a segunda e a terceira formas normais. c) primeira e a segunda formas normais. d) primeira forma normal. e) segunda e a terceira formas normais. 6 – (FCC - AFRE RJ/SEFAZ RJ/2014) Instrução: Para responder à questão, considere o texto a seguir. Um funcionário ficou responsável pela elaboração de um modelo de dados e criação de um banco de dados para a Receita Estadual. O banco de dados deve controlar os funcionários da Receita, os departamentos aos quais estão vinculados e os projetos nos quais estão alocados, de acordo com a descrição: ProdLoja CodProd CodLoja Quantidade NomeProd NomeLoja LocalLoja http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 42 de 47 www.exponencialconcursos.com.br I. A Receita está organizada em departamentos. Cada departamento tem um nome único, um número único e um funcionário que gerencia o departamento. Há, ainda, a data em que o funcionário começou a gerenciar o departamento. II. Um departamento controla vários projetos. Cada projeto tem um nome único, um único número e uma única data de início. III. Cada empregado tem um número único de CPF, um número de seguro social, endereço, sexo, salário e data de nascimento. IV. Todo empregado está alocado em um departamento, mas pode trabalhar em diversos projetos, mesmo que controlados por diferentes departamentos. Controla-se o número de horas que cada empregado trabalha em cada projeto. Controla-se o supervisor direto de cada empregado, que supervisiona seu trabalho. Está correlacionado corretamente o que está expresso em: 7 – (FCC - Tec MPU/MPU/Informática/2007) No Modelo Relacional de Dados, a) não é possível criar chaves primárias compostas por dois ou mais campos. b) toda tabela tem que ter, obrigatoriamente, um campo do tipo Chave Primária. c) recomenda-se a criação de tabelas com o maior número de campos possível, reduzindo com isso o número de tabelas do modelo. d) a Integridade Referencial é fundamental para manter a consistência dos dados e evitar os chamados Registros Órfãos. e) não se usa dados estruturados que possam ser modelados em termos de tabelas de dados. 8 – (FCC - Ana (CVM)/CVM/Sistemas/2003) Integridade referencial que define o comportamento das entidades, com relação às operações de inclusão, deleção e modificação, é um conjunto de regras de Tipo de modelo Exemplo de entidade Atributo Relacionamento (A) conceitual projeto data_inicial trabalha_em (B) conceitual empregado supervisiona é_supervisionado_por (C) lógico departamento projeto projeto_N (D) de caso de uso projeto nro_do_projeto gerencia (E) lógico Receita CPF N_projetos_supervisionados http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 43 de 47 www.exponencialconcursos.com.br a) negócios. b) atributos. c) normalização. d) entidades. e) relacionamentos. 9 - (FCC - Aux FF II (TCE-SP)/TCE-SP/2009) As entidades e o respectivo relacionamento do tipo empregado (E) e seus dependentes (D) serão implementados em um SGBD relacional normalizado como tabelas D e E, sendo que a) a chave primária de E é chave estrangeira em D, sem compor sua chave primária. b) a chave primária de E compõe parte da chave primária de D. c) as chaves primárias de D compõem parte da chave primária de E. d) as chaves primárias de D são chaves estrangeiras em E, sem compor sua chave primária. e) as chaves primárias de D são chaves estrangeiras em E e compõem, também, sua chave primária. 10 - (FCC - AJ TRT2/TRT 2/Apoio Especializado/Análise de Sistemas/2004) A regra de integridade referencial, em que uma linha, ao ser excluída, provoca a exclusão também de todas as linhas dependentes, é: a) set delete. b) set exclude. c) linkage. d) chaining. e) cascade. 11 – (FCC - AJ TRT3/TRT 3/Apoio Especializado/Análise de Sistemas/2005) No modelo relacional de banco de dados, cada linha é a) um domínio, o nome de uma coluna é chamado de célula e uma tabela é chamada de relação; o tipo de dado que especifica o tipo dos valores que podem aparecer em uma coluna é chamado de atributo. http://www.exponencialconcursos.com.br/ Curso: Informática p/ ICMS RJ Teoria e Questões Comentadas Prof. Gustavo Cavalcante - Aula 06 Prof. Gustavo Cavalcante 44 de 47 www.exponencialconcursos.com.br b) uma relação, o nome de uma coluna é chamado de célula e uma tabela é chamada de tupla; o tipo de dado que especifica o tipo dos valores que podem aparecer em uma coluna é chamado de atributo. c) uma tupla, o nome de uma coluna é chamado de atributo e uma tabela é chamada de relação; o tipo de dado que especifica o tipo dos valores que podem aparecer em uma coluna é chamado de domínio. d) uma tupla, o nome de uma coluna é chamado de célula e uma tabela é chamada de relação; o tipo de dado que especifica o tipo dos valores que podem aparecer em uma coluna é chamado de atributo. e) um domínio, o nome de uma coluna é chamado de atributo e uma tabela é chamada de tupla; o tipo de dado que especifica o tipo dos valores que podem aparecer em uma coluna é chamado de relação. 12 – (FCC - AJ TRT4/TRT 4/Apoio Especializado/Análise de Sistemas/2006) Um atributo multivalorado num diagrama E-R será mapeado em um modelo relacional a) por um conjunto variável de colunas na tabela, para as ocorrências do atributo. b) por duas colunas na tabela, uma para índice e outra para as ocorrências do atributo. c) criando-se na tabela uma linha nova, representando cada ocorrência do atributo. d) criando-se uma tabela nova para esse tipo de atributo. e) diretamente em uma única coluna da tabela.