Prévia do material em texto
Livro Eletrônico Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos 1 160 5. Modelagem de Dados. 5.4 Projeto e modelagem de banco de dados relacional. 5.2 Normalização. 5.7 Índices e chaves primárias. .................................................................. 3 Objetivos da Aula ................................................................................................................................ 3 Conceitos básicos ............................................................................................................ 3 O catálogo de dados Relacional ......................................................................................................... 9 Tabelas .............................................................................................................................................. 10 Visões ................................................................................................................................................ 15 Índices ............................................................................................................................................... 16 Chaves e Relacionamentos ............................................................................................................... 17 Restrições de Integridade .............................................................................................. 22 Mapa mental – Restrições de Integridade ....................................................................................... 25 Regras de Codd .............................................................................................................. 26 Mapa mental – Regras de Codd ....................................................................................................... 30 Álgebra relacional.......................................................................................................... 31 Seleção .............................................................................................................................................. 32 Projeção ............................................................................................................................................ 34 Rename (renomeação) ..................................................................................................................... 34 União ................................................................................................................................................. 35 Intersecção ........................................................................................................................................ 35 Diferença ........................................................................................................................................... 36 Produto Cartesiano ........................................................................................................................... 36 Junção ............................................................................................................................................... 36 Divisão ............................................................................................................................................... 38 Tabela com o resumo das operações da Álgebra Relacional. ......................................................... 40 Mapa Mental – Álgebra Relacional.................................................................................................. 41 Objetivos da próxima Seção ........................................................................................... 42 Normalização ................................................................................................................ 42 Introdução ......................................................................................................................................... 42 Conceitos Básicos .............................................................................................................................. 43 Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 2 160 Dependência funcional ..................................................................................................................... 44 Chave, superchave, chave primária e chave candidata ................................................................... 47 Primeira forma normal (1FN) ........................................................................................................... 49 Segunda forma normal (2FN) ........................................................................................................... 50 Terceira forma normal (3FN) ............................................................................................................ 52 Forma normal de Boyce-Codd (FNBC) .............................................................................................. 55 Quarta e quinta formas normais .................................................................................... 57 Quarta forma normal (4FN) ............................................................................................................. 58 Quinta forma normal (5FN) .............................................................................................................. 60 Mapeando o modelo ER em relacional ........................................................................... 62 Passo 01 – Mapear as entidades regulares ..................................................................................... 62 Passo 02 – Mapear as entidades fracas ........................................................................................... 63 Passo 03 – Mapear os relacionamentos binários 1:1 ...................................................................... 63 Passo 04 - Mapear os relacionamentos binários 1:N ...................................................................... 64 Passo 05 - Mapear os relacionamentos binários N:N ...................................................................... 65 Passo 06 – Mapear os atributos multivalorados ............................................................................. 65 Passo 07 – Mapear os relacionamentos N-Ários (n>2) .................................................................... 66 Passo 08 – Mapear Herança e Especialização ................................................................................. 67 Questões Comentadas ................................................................................................... 70 Questões Comentadas IADES ........................................................................................................... 70 Exercícios IADES ................................................................................................................................ 84 Gabarito ............................................................................................................................................ 92 Questões Comentadas FCC ............................................................................................ 93 Questões FCC sem comentário ....................................................................................................... 131 Gabarito .......................................................................................................................................... 157 Considerações Finais.................................................................................................... 159 ThiagoRodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 3 160 5. MODELAGEM DE DADOS. 5.4 PROJETO E MODELAGEM DE BANCO DE DADOS RELACIONAL. 5.2 NORMALIZAÇÃO. 5.7 ÍNDICES E CHAVES PRIMÁRIAS. Fala galera! Muito bom dia, boa tarde ou boa noite! Vamos começar agora essa aula para conhecermos um pouco mais sobre banco de dados. Nosso objetivo é apresentar os conceitos mais importantes dos assuntos, sistematizar o conhecimento e garantir que você tenha condições de acertar qualquer questão deste tema que venha aparecer na sua prova. Ousado!? Um pouco, talvez. Mas confiamos no nosso trabalho e na sua capacidade de aprendizado. Vamos em frente! OBJETIVOS DA AULA • Conhecer a terminologia de banco de dados relacional. • Entender o significado das regras de integridade para bancos de dados relacionais. • Entender o impacto das linhas referenciadas na manutenção de bancos de dados relacionais. • Entender o significado de cada operador da álgebra relacional. CONCEITOS BÁSICOS Já sabemos que um banco de dados é uma coleção de dados persistentes que podem ser compartilhados e estar inter-relacionados. Ou seja, os dados são armazenados de modo permanente, como em um disco magnético. Ele também pode ter múltiplas aplicações e usuários, fazendo acesso aos dados armazenados. Tais dados são vistos como unidades separadas e podem ser ligados para fornecer um quadro completo. Os sistemas de banco de dados relacionais foram desenvolvidos originalmente por causa da familiaridade e simplicidade. Como as tabelas são utilizadas para comunicar ideias em vários campos do conhecimento, a terminologia de tabelas, linhas e colunas é facilmente compreendida por diferentes usuários. No modelo, tanto os dados quanto os relacionamentos são representados em tabelas ou relações. Além da familiaridade e simplicidade dos bancos de dados relacionais, há também uma sólida base matemática. A matemática dos bancos de dados relacionais implica a conceitualização de tabelas como conjuntos. O modelo tem uma base formal sólida, que está estruturada na teoria dos conjuntos e na lógica de primeira ordem. A combinação de familiaridade e simplicidade com a base matemática é tão poderosa, que os SGBDs relacionais são líderes no mercado de armazenamento de dados operacionais. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 4 160 Edgar Frank Codd (o cara fumando um charuto cubano na figura ao lado) foi um matemático britânico que desenvolveu o modelo de banco de dados relacional quando era pesquisador da IBM em San José – Califórnia. É interessante que a IBM não quis implementar as ideias de Codd inicialmente. A empresa tinha uma linha produtos, em especial o IMS/DB, e não queria perder faturamento. O IMS/DB era um SGBD que não utilizava o modelo relacional como fundamento teórico. A IBM tinha um grande volume de receitas advindas deste produto. Assim, não queria perder espaço neste mercado, mesmo que fosse para ela mesma. Mas o que Codd propôs que seria tão revolucionário? Para responder a essa pergunta, vamos iniciar com uma definição informal do modelo. O modelo relacional é constantemente descrito como tendo os três aspectos a seguir: Aspecto estrutural: os dados no banco de dados são percebidos pelo usuário como tabelas, e nada além de tabelas. Aspecto de integridade: essas tabelas satisfazem a certas restrições de integridade ou limitações nos valores, que podem aparecer em cada registro. Aspecto manipulador: os operadores disponíveis para que o usuário possa manipular essas tabelas – por exemplo, para propósitos de busca de dados – são operadores que derivam tabelas a partir de outras tabelas. Desses operadores, três particularmente importantes são os operadores de restrição, projeção e junção. Ok! Vamos sair do texto puro e observar uma figura. Ela vai nos ajudar a entender esses conceitos de forma bem mais tranquila. Veja a figura abaixo: O modelo relacional é um modelo de dado representativo (ou de implementação). Como um modelo, ele procura abstrair e organizar os dados de um banco de dados. Para isso, o modelo Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 5 160 relacional define um conjunto de conceitos para representação dos dados. O elemento básico deste modelo está definido pelo conceito de relação. Um banco de dados seria, portanto, um conjunto de relações. Cada relação pode ser vista como uma tabela. Assim, os SGBDs relacionais devem representar os dados sob a forma de tabelas bidimensionais organizadas em linhas e colunas. Observe que os sistemas relacionais só exigem que o banco de dados seja percebido pelo usuário como tabelas. As tabelas são a estrutura lógica em um sistema relacional, não a estrutura física. No nível físico, os dados podem ser organizados em outros tipos de estrutura – usando arquivos sequenciais, indexação, hashing, cadeias de ponteiros, etc. – desde que ele possa mapear essa representação armazenada como tabelas no nível lógico. Isso é um reflexo da abstração provida pelo modelo relacional. O termo estrutura lógica pretende englobar os níveis conceitual e externo da arquitetura ANSI/SPARC. O detalhe é que os níveis conceitual e externo em um sistema relacional serão representados usando o modelo relacional. Os bancos de dados relacionais satisfazem a um princípio muito interessante, chamado Princípio da Informação: Todo o conteúdo de informação do banco de dados é representado de um e somente um modo, ou seja, como valores explícitos em posições de colunas em linhas de tabelas. Veja que os valores são armazenados em uma tabela. Não existe o conceito de ponteiros conectando uma tabela a outra. Mas o que seriam ponteiros? Tenho certeza que você fez essa pergunta mentalmente! Ponteiro é um tipo especial de dados que armazena um endereço de memória. Por exemplo, se um ponteiro p armazena o endereço de uma variável i, podemos dizer p aponta para i ou p é o endereço de i. Enfim, reforçando, no modelo relacional, não existe o conceito de ponteiros conectando uma tabela a outra. Ainda não está satisfeito com a explicação acima? Talvez ela seja, de fato, um pouco abstrata. Mas vamos olhar, mais uma vez, para uma imagem e tentar esclarecer, de uma vez por todas, essa característica. Olhe para o modelo abaixo e perceba que temos duas tabelas: empregado (EMP) e departamento (DEPTO). Perceba que a coluna DEPTO# da tabela EMP possui os valores dos departamentos. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 6 160 Sendo assim, existe uma conexão entre a linha D1 da tabela DEPTO e a linha E1 da tabela EMP. Essa conexão é representada pelo aparecimento do valor D1 na tabela EMP. Vamos agora resumir os conceitos que vimos até aqui. Agora que você está seguro dos conceitos básicos, vamos avançar na teoria do assunto. O C.J. Date trabalha com uma definição mais formal do termo relação. O próprio C.J. Date afirma que, nesse estágio do assunto, a definição não fará muito sentido. Mas o sarrafo1 do Estratégia sempre foi alto. 1 Sarrafo é um militar para identificar um padrão mínimo aceitável. No salto com vara o sarrafo é aquele pedaço de madeira colocado na horizontal que deve ser ultrapassado pelo saltador. Thiago RodriguesCavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 7 160 E eu quero que você esteja afinado no assunto. Então, vou tentar, após apresentar a definição, descrever melhor cada um dos componentes presentes na definição, quais sejam: 1. Uma coleção ilimitada de tipos escalares (incluindo em particular o tipo booleano ou valor verdade). 2. Um gerador de tipo de relação e uma interpretação pretendida para esses tipos de relações gerados 3. Recursos para definição de RelVars ou variáveis de relação desses tipos de relações gerados. 4. Um operador de atribuição relacional para atribuição de valores de relações a essas RelVars. 5. Uma coleção ilimitada de operadores relacionais genéricos (“a álgebra relacional”) para derivar valores de relações a partir de outros valores de relações. A coleção ilimitada de tipos escalares está associada aos tipos de dados que podem ser atribuídos a cada um dos atributos de uma tabela. Existem alguns tipos de dados básicos, como numérico, texto, data, hora e booleano. Os tipos de dados vão definir os valores possíveis de uma coluna da tabela ou relação. Mas existem mesmo tipos ilimitados? Sim! Porque os usuários podem definir seus próprios tipos de dados. Imagine que João queira definir um tipo de dado Nota, que restringe os valores possíveis de uma variável a números inteiros entre zero e dez. Veja que 10 é um dos valores possíveis para as variáveis associadas ao tipo Nota. Vamos tentar criar um exemplo simples para fixar esse conceito: Assim, o tipo define o domínio de uma variável. Cada número associado a uma variável, em determinado momento do tempo, é um valor. Agora que você já tem os tipos, você pode definir as relações. Um gerador de tipos de relações é um descritor que vai estabelecer os nomes e os tipos de cada coluna que serão geradas em uma tabela. Imagine que estamos definindo um modelo de tabela que pode ser construído. Numérico Texto Data Numérico: NumAluno Texto: Nome Data: DataAprovação Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 8 160 De posse dos tipos de relação, agora podemos definir uma variável de relação ou RelVar. Veja que uma RelVar é, basicamente, uma variável cujo valor é um conjunto de linhas em determinado momento. Todas as vezes que modificamos o conjunto de linhas de uma tabela, estamos alterando o valor da RelVar. Vamos supor agora que temos a RelVar ALUNO, descrita com três colunas e seus seguintes valores: NumAluno Nome DataAprovacao 001 Lulu Concurseira 2019 002 Breno Moreira 2019 A variável de relação ALUNO apresenta um estado específico com duas linhas preenchidas. Esse é o valor da RelVar neste momento. Agora, volte na tabela e preencha com seu nome! Você vai mudar o valor de relação. Para fazer isso, você simplesmente escreveu seu nome na tabela acima. Contudo, o modelo relacional resolveu definir um operador de atribuição relacional. Ele é responsável por receber o valor novo de relação e atribuir à variável. ALUNO := ALUNO + (NOVA LINHA COM SEUS DADOS) Como em todas as atribuições, o que está acontecendo aqui em termos conceituais é que (a) a expressão no lado direito é avaliada e, em seguida, (b) o resultado dessa avaliação é atribuído à variável do lado esquerdo. Observe que “:=” é considerado um operador de atribuição, usado apenas para ilustrar o nosso exemplo. Por fim, falaremos sobre a coleção ilimitada de operadores relacionais, definida por Codd e comumente denominada de álgebra relacional. A álgebra relacional é uma coleção de operadores que tomam relações como seus operandos e retornam uma relação como seu resultado. Falaremos novamente sobre esse tópico mais à frente na nossa aula. Que tal fazermos uma questão sobre esse assunto? 1. Ano: 2019 Banca: CESPE Órgão: SEFAZ-RS Prova: Auditor Assunto: Banco de dados No modelo relacional, variável corresponde a A um valor variável que não possui local no tempo nem no espaço. B uma matriz de valores codificados e armazenados na memória. C um recipiente para se armazenar um valor que pode ser atualizado. D um valor que não admite substituição. E uma constante individual. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 9 160 Comentário: Veja que essa questão foi totalmente inspirada no livro do CJ Date – Introdução a Sistemas de Banco de Dados, que também usamos na elaboração deste material. Veja o que diz o texto original do livro: “A primeira coisa que precisamos fazer é identificar a diferença lógica crucial e fundamental entre valores e variáveis (há uma confusão surpreendente sobre essa questão na literatura) ... adotamos as seguintes definições: Um valor é uma “constante individual” – por exemplo, a constante individual que é o inteiro 3. Um valor não possui local no tempo ou no espaço. Contudo, os valores podem ser representados na memória por meio de alguma codificação, e tais representações, ou (nosso termo preferido) aparições, possuem locais no tempo e no espaço. Na realidade, aparições distintas do mesmo valor podem existir em vários locais distintos no tempo e no espaço, significando, informalmente, que diversas variáveis diferentes podem ter o mesmo valor, ao mesmo tempo. Observe que, por definição, um valor não pode ser atualizado; se pudesse, então, depois dessa modificação, ele não seria mais o mesmo valor. Uma variável é um recipiente para um aparecimento de um valor. Uma variável possui um local no tempo e no espaço. Além disso, logicamente, as variáveis, diferente dos valores, podem ser atualizadas; ou seja, o valor atual da variável em questão pode ser substituído por outro valor, provavelmente, diferente do anterior. “ Assim, temos nossa resposta na alternativa C, ou seja, uma variável corresponde a um recipiente para se armazenar um valor que pode ser atualizado. Gabarito: C. O CATÁLOGO DE DADOS RELACIONAL O Sistema de Gerenciamento de Banco de Dados precisa fornecer uma função de catálogo ou dicionário. O catálogo é o lugar em que – dentre outras coisas – todos os diversos esquemas (externo, conceitual, interno) e todos os mapeamentos correspondentes (externo/conceitual, conceitual/interno) são mantidos. Em outras palavras, o catálogo contém informações detalhadas. Às vezes, elas são chamadas informações do descritor ou metadados, com objetos RelVars, índices, usuários, restrições de integridade, restrições de segurança, e assim por diante. As informações do descritor são essenciais para que o sistema faça seu trabalho de modo apropriado. Por exemplo, o otimizador utiliza informações do catálogo a respeito de índices e outras estruturas físicas de armazenamento, bem como muitas outras informações, para ajudá-lo a decidir como implementar as requisições do usuário. Da mesma forma, o subsistema de autorização utiliza informações do catálogo sobre usuários e restrições de segurança para conceder ou negar tais requisições. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 10 160 TABELAS Cada linha de uma tabela é conhecida como uma tupla, ou uma coleção de valores relacionados. Cada coluna é vista como um atributo, que possui um determinado conjunto de valores possíveis: o domínio. Um domínio é um conjunto de valores atômicos. A figura a seguir resume os conceitos vistos por meio da representaçãoda tabela Alunos. Percebam que a tabela é uma relação dentro do modelo de dados. Cada uma das colunas (Nome, Número e Turma) representa um atributo, que deve ser associado a cada uma das tuplas desta tabela. Cada linha descreve um aluno desta tabela. A primeira linha apresenta os dados de Francisco com seus respectivos número e turma. Outra constatação que podemos fazer, a partir da figura anterior, é a presença de um conjunto de valores possíveis para cada uma das colunas. Não está explícito. Não sabemos a definição formal da tabela. Contudo, podemos observar que as tuplas desta relação apresentam apenas valores M et ad ad o s Sinônimos: dicionário de dados ou catálogo de dados Dados sobre os dados Armazena informações sobre: (Navathe) Tipos de dados Estruturas Restrições (regras de ingridade) Estarão armazenado ainda: (Date) Todos os vários esquemas e mapeamentos (externos, conceituais etc.) Todas as diversas restrições de segurança e integridade Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 11 160 numéricos associados a coluna Número e caracteres associados a coluna Nome. É importante perceber que cada coluna possui um tipo de dados. Um tipo de dados define os valores que um dado pode assumir e as operações que podem ser efetuadas sobre o mesmo. Tipos podem ser, por exemplo: inteiros, reais, caracteres, etc. Quando especificamos um domínio, geralmente definimos um tipo de dado do qual são retirados os valores possíveis para o atributo. Além do tipo de dado, um domínio pode ser descrito por meio de um nome, um formato e outras informações adicionais a respeito dos dados. Apenas para exemplificar, um atributo salário pode ser definido como um decimal positivo com 10 dígitos e seu valor ser definido em reais (R$). Outra característica relevante associada ao domínio é o fato dele ser atômico. Isso faz parte da definição do modelo relacional. Não se esqueça disso! Outro ponto importante está relacionado à integridade dos dados. O modelo apresenta um conjunto de restrições básicas para dados e relacionamentos, conhecidas como restrições de integridade. Ok! Temos as nossas relações! Conseguimos definir, pelo menos de forma gráfica, um conjunto de tabelas com seus atributos. Se quisermos, podemos povoar ou inserir tuplas nessas tabelas com seus respectivos dados. Agora, se eu quiser associar ou analisar os dados de mais de uma tabela conjuntamente, ou ainda, fazer uma consulta que me retorne apenas as tuplas ou linhas com uma certa restrição, o que devo fazer? Os operadores relacionais são usados para manipular as informações pertencentes a cada uma das relações do nosso modelo. Esse conjunto de operações é conhecido como álgebra relacional. Ela vai nos ajudar a trabalhar com os dados em nossos esquemas relacionais. Você deve estar lembrado que o esquema é considerado o projeto do banco de dados, a forma de bolo sobre a qual nossas instâncias são armazenadas. Assim, imagine uma tabela aluno com 100 alunos. O esquema vai definir os atributos necessários para cada linha da relação. Já as linhas são consideradas instâncias da tabela. Lembrando que as linhas podem ser denominadas tuplas da tabela. Que tal falarmos um pouco mais sobre elas? Uma tupla deve conter um conjunto de elementos. Cada elemento deve conter o nome do atributo, o nome do tipo e um valor. Por exemplo: TUPLA {NOME:CARACTER:THIAGO, CARGO:CARACTER:PROFESSOR} Veja que cada um dos elementos do conjunto acima, por exemplo, NOME:CARACTER:THIAGO, corresponde a um componente da tupla e é conhecido como tripla ordenada. A quantidade de componentes de uma tupla é conhecida como grau ou aridez da tupla. Neste caso, o grau da nossa tupla é igual a 2. Os dois primeiros valores, NOME:CARACTER, são vistos como um par ordenado e descrevem um atributo da tupla. Neste exemplo, THIAGO é o valor do atributo em questão. O conjunto completo de atributos é conhecido como cabeçalho, este vai determinar o tipo de uma tupla. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 12 160 As tuplas satisfazem a uma série de propriedades importantes, todas elas consequências imediatas das definições apresentadas até aqui: (a) Cada tupla contém exatamente um valor para cada um de seus atributos. (b) Não existe ordenação da esquerda para a direita nos componentes de uma tupla. Essa propriedade acontece porque uma tupla é definida por meio de um conjunto de componentes, e os conjuntos na matemática não possuem qualquer ordenação em seus elementos. (c) Cada subconjunto de uma tupla é uma tupla (e cada subconjunto de um cabeçalho é um cabeçalho). Mais que isso, essa afirmação também é válida para um subconjunto vazio em particular! Esse último ponto merece uma explicação mais detalhada. Existe a tupla vazia (TUPLA { }). Às vezes, referimo-nos a uma tupla de grau zero mais explicitamente como uma “0-tupla”, a fim de enfatizar o fato de que ela não possui componentes. Outro nome conhecido é de tupla nulária. Antes de continuar, vamos resolver mais uma questão: 2. Ano: 2019 Banca: TRC Órgão: Estratégia Assunto: Modelo Relacional - Tuplas Analise as afirmações abaixo: I. Cada tupla contém exatamente um valor (do tipo apropriado) para cada um de seus atributos. II. Existe ordenação da esquerda para a direita nos componentes de uma tupla, basta observarmos uma tabela desenhada em um papel para constar tal fato. III. Cada subconjunto de uma tupla é uma tupla (e cada subconjunto de um cabeçalho é um cabeçalho). Quanto às propriedades das tuplas, é correto o que consta APENAS em A I., II. e III. B II. C III. D I e II. E I e III. Comentário: Acabamos de aprender sobre as propriedades de uma tupla. Perceba que as afirmações I e III são substratos das propriedades (a) e (c) descritas acima. Já a afirmação II mostra exatamente a minha preocupação com o seu entendimento de que uma relação não é exatamente uma tabela. A relação é um objeto formal, enquanto a tabela é um objeto informal que pode ser representada em uma folha de papel. Vejamos algumas das diferenças entre tabelas e relações: Característica Relação Tabela Nomes de tipo são omitidos nos cabeçalhos. Não Sim (normalmente) Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 13 160 Nomes de tipo e do atributo normalmente são omitidos no corpo. Não Sim Atributos/colunas possuem uma ordem da esquerda para a direita. Não Sim As tuplas/linhas possuem uma ordem de cima para baixo. Não Sim Pode conter tuplas/linhas duplicatas. Não Sim2 Assim, podemos avaliar a segunda afirmação como falsa e achar nossa resposta na alternativa E. Gabarito: E Falamos das propriedades importantes das tuplas. Neste momento, vamos falar das propriedades importantes das relações. Dentro de qualquer relação, temos as seguintes propriedades: 1. Cada tupla contém exatamente um valor (do tipo apropriado) para cada atributo. Trata-se da atomicidade dos atributos. 2. Atributos não são ordenados da esquerda para a direita. Essa propriedade acontece, pois uma tupla é definida em termos de conjuntos matemáticos, que não possuem ordenação dos seus elementos. 3. Tuplas não são ordenadas de cima para baixo. 4. Não existem tuplas duplicadas. Buscando praticar os conceitos adquiridos até aqui, vamos fazer duas questões do CESPE sobre o assunto e mostrar que estamos alinhados com o conteúdo que vem sendo cobrado em concursos públicos. 3. Ano: 2018Banca: CESPE Órgão: TCM-BA Cargo: Auditor de Contas Questão: 09 Considerando os conceitos de banco de dados relacionais, assinale a opção correta a respeito das propriedades de uma tupla. A A tupla tem o mesmo significado e as mesmas propriedades de uma tabela. 2 Neste caso, pense em uma tabela do Excel. Se estivermos falando de uma tabela no modelo relacional, ela não pode conter linhas duplicadas e todos os seus atributos devem ser atômicos. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 14 160 B Os componentes de uma tupla são ordenados da esquerda para a direita. C Cada tupla contém exatamente um valor para cada um de seus atributos. D Um subconjunto de uma tupla não é considerado uma tupla. E Uma tupla nunca é vazia, seu grau pode variar de 1 até n. Comentário: Vimos que as tuplas são linhas de uma tabela. Elas, quando consideramos a referência teórica e matemática do modelo relacional, não são ordenadas e não se repetem. Vamos agora analisar cada uma das alternativas acima: A) A tupla é a linha da tabela. Representa uma instância ou um valor armazenado. Pense na tabela aluno, cada aluno armazenado é uma tupla da tabela. Contudo, uma tabela pode ter atributos que não são específicos da tupla, como a quantidade máxima de registros. Logo, não podemos definir o todo pela parte, nem podemos dizer que a forma do bolo é um bolo. Sendo assim, a alternativa está incorreta. B) As tuplas não são ordenadas de cima para baixo, nem seus atributos ou componentes são ordenados da esquerda para a direita. C) Pela definição de modelo relacional do Codd, os atributos de uma relação devem ter valores atômicos. Logo, cada coluna deve ter um valor dentro do seu respectivo domínio. Este pode ou não aceitar valores nulos. Sendo assim, essa afirmação está certa. D) Um subconjunto de uma tupla é outra tupla. Inclusive, se lembrarmos da propriedade de fechamento das operações de álgebra relacional, podemos perceber que o resultado de uma projeção vai reduzir as tuplas de uma tabela aos atributos definidos na operação. E) Uma tupla de uma tabela pode ser vazia, ela é conhecida como empty tuple ou nullary tuple. Para preencher valores desconhecidos, usamos o valor nulo, que é uma notação para vazio. Além disso, ela representa um conjunto de atributos. A quantidade de atributos de uma tupla é denominada grau e pode variar de 0 até n. Logo, temos mais uma alternativa incorreta. Gabarito: C 4. Ano: 2015 Banca: CESPE Órgão: STJ Prova: Analista Judiciário - Análise de Sistemas de Informação Acerca de modelagem relacional e pontos de função, julgue o item a seguir. O modelo relacional consiste em uma coleção ilimitada de tipos escalares e de um operador de atribuição relacional que atribui valores às variáveis de relações que integram os componentes desse modelo. Comentário: Vamos relembrar o que aprendemos na nossa aula. Apresentamos um conjunto de componentes definidos pelo Date para banco de dados relacionais. Segundo ele, o modelo relacional consiste em cinco componentes: Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 15 160 1) Uma coleção ilimitada de tipos escalares, incluindo em particular o tipo booleano ou valor verdade. (TIPOS DE DADOS) 2) Um gerador de tipo de relação e uma interpretação pretendida para esses tipos de relações. (A EXISTÊNCIA DAS TABELAS) 3) Recursos para definição de RelVars desses tipos de relações gerados. (DDL – DEFINIÇÃO – UMA LINGUAGEM PARA CONSTRUIR AS TABELAS) 4) Um operador de atribuição relacional para atribuição de valores de relações a essas RelVars. (DML – MANIPULÇÃO/INSERSÃO DE VALORES NAS TABELAS) 5) Uma coleção ilimitada de operadores relacionais genéricos para derivar valores de relações a partir de outros valores de relações. (OPERAÇÕES) Veja que os componentes com termos em negrito são justamente os usados na assertiva em questão. Logo, temos uma alternativa correta. Gabarito: C. VISÕES As views ou visões são objetos SQL que podemos criar dentro dos nossos bancos de dados. Uma VIEW é um comando SQL que é armazenado no banco de dados e possui um nome associada a ela. Podemos observar algumas funções básicas. A primeira é facilitar a visualização dos dados dispersos em diversas tabelas, tornando-os mais natural ou intuitivo ao entendimento humano. Outra função importante para a view está relacionada à segurança dos dados. É possível restringir o acesso aos campos e às colunas de uma tabela por meio de uma view. Desta forma, o usuário teria visão apenas a parte dos dados ou das informações. Esse grupo de informações deve ser compatível com as funções e as necessidades de acesso do usuário. Uma terceira opção para o uso de view é sumarizar dados de diferentes tabelas, gerando relatórios. Vejamos abaixo dois exemplos do uso de Views. Lembrando que ela pode ser criada sobre uma ou múltiplas tabelas. Observe que o comando, basicamente, inclui a sintaxe CREATE VIEW nome AS antes de uma consulta ao banco de dados. Este poderia também ser um INNER JOIN, usando: ON mc.contact_id = jd.contact_id Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 16 160 Para visualizarmos os dados de uma visão, basta escrevermos um comando SELECT sobre ela, vejam o exemplo sobre a view web_designers criada acima. A view é considerada uma tabela virtual, porque ela só existe durante o período que você está utilizando-a. Todas as operações que são feitas sobre a tabela podem ser feitas em uma VIEW, mas a tabela é virtual e, na teoria, não deve ser armazenada no banco de dados. Para finalizar, vamos comparar os conceitos de tabelas e visões de forma pragmática. A distinção entre uma tabela básica e uma visão é constantemente caracterizada desta maneira: Tabelas básicas “existem realmente”, no sentido de que representam dados de fato armazenados no banco de dados. As visões, ao contrário, não “existem realmente”, mas apenas oferecem diferentes modos de visualização dos “dados reais”. ÍNDICES O primeiro conceito que devemos ter em mente sobre o assunto é a definição de índices. Um índice é um mecanismo utilizado para melhorar a velocidade de acesso aos dados. Ele é composto por uma chave, que é um atributo ou um conjunto de atributos usado para procurar registros em um arquivo. Um índice também possui um ponteiro, que consiste em um identificador para um bloco de disco, além do deslocamento dentro do bloco para encontrar o registro. Um arquivo de índice consiste em um conjunto de registros com o formato apresentado na figura abaixo. A esse registro se dá o nome de registro de índice ou entrada de índice. Como uma técnica para criar estruturas de dados auxiliares, os índices agilizam a busca e a recuperação de registros. Para isso, eles envolvem armazenamento de dados auxiliares. Esses dados são armazenados nos arquivos de índices. Alguns tipos de acesso podem se beneficiar dos índices, por exemplo, a localização de registro com um valor especificado e a localização de registros em um intervalo especificado de valores. Veja a figura abaixo para entender um pouco mais sobre índices: Aqui está o nome da nossa view Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 17 160 É necessário saber se essebenefício, de fato, traz um ganho de desempenho ao sistema de banco de dados. Avaliar os índices para medir seus efeitos na performance é um passo importante. Vários SGBDs possuem utilitários que ajudam a quantificar os efeitos pretendidos com a criação de índices sobre tabelas. Esse valor é baseado em alguns fatores, entre eles, o tempo de acesso, inserção e deleção; o overhead de espaço em disco e os métodos de acesso suportados. Os índices podem ser classificados de acordo com a figura abaixo: CHAVES E RELACIONAMENTOS Superchave, chave, chave candidata, chave primária e chave estrangeira Vamos começar falando sobre chave. Existem alguns conceitos relacionados à chave. O primeiro deles é o de superchave. Trata-se de uma coluna ou uma combinação de colunas contendo valores únicos para cada linha. A combinação de todas as colunas em uma tabela sempre é uma superchave, porque as linhas de uma relação devem ser sempre únicas. Ín d ic es Único nível Primário São construídos no campo de ordenação física de um arquivo. Precia ser construido sobre uma chave do arquivo (tabela) De agrupamento Utiliza campos não chave Secundário. São especificados em campos não ordenado como estruturas de acesso adicionais para melhorar o desempenho de consultas e transações. Multinível Implementados como B- trees e B+ -trees Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 18 160 Uma definição formal afirma que uma superchave de um esquema de relação R = {A1, A2, ..., An} é um conjunto de atributos S C R (S está contido em R) que contenha a propriedade na qual não haverá duas tuplas t1 e t2, em qualquer estado válido da relação, cuja t1[S] = t2[S]. Em outras palavras, uma superchave é um conjunto de atributos que tem a característica de restringir o conjunto de tuplas de uma relação em apenas uma linha. Quando olhamos para um conjunto de atributos em uma tabela que não se repetem em nenhuma das linhas da tabela, podemos considerá-los uma superchave. Já entendemos o conceito de superchave. Uma superchave pode ser considerada apenas uma chave. Neste caso, a chave é defendida como uma superchave mínima ou irredutível (vou chama-la de K), onde qualquer remoção de atributo de K fará com que K deixe de ser superchave da relação. Se um esquema tiver mais de uma chave, cada uma delas é chamada de chave candidata. Entre as chaves candidatas, uma delas é escolhida para ser a chave da relação e é denominada chave primária. As demais são renegadas e são denominadas chaves secundárias ou alternativas. Segundo o Date, se K for um conjunto de atributos de uma variável de relação R, então K é uma chave candidata para R, se e somente se, ela possui ambas as propriedades. Unicidade: Nenhum valor válido de R contém duas tuplas diferentes com o mesmo valor para K. Irredutibilidade: Nenhum subconjunto apropriado de K tem a propriedade de unicidade. De posse deste conhecimento, é possível definir o conceito de atributo primário, que nada mais é do que um atributo membro (que faz parte) de alguma chave candidata da relação (R). Por sua vez, de forma bem intuitiva, um atributo não primário é todo aquele que não for um atributo primário! Vejamos, então, duas questões do CESPE sobre este assunto. 5. Ano: 2019 Banca: CESPE Órgão: SEFAZ-RS Prova: Auditor Assunto: Banco de Dados No modelo relacional, a afirmação “Duas tuplas distintas, em qualquer estado da relação, não podem ter valores idênticos para os atributos na chave” é A uma propriedade de chave do modelo. B falsa. C uma restrição de domínio do modelo. D uma propriedade exclusiva do modelo objeto-relacional. E uma condição que deverá estar explícita na representação dos atributos de uma tupla. Comentário: As principais propriedades das chaves são unicidade e irredutibilidade. Vejamos as definições: Unicidade: Nenhum valor válido de relação contém duas tuplas diferentes com o mesmo valor para os atributos chave. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 19 160 Irredutibilidade: Nenhum subconjunto apropriado da chave tem a propriedade de unicidade. Veja que a questão trata de unicidade, logo uma propriedade de chave do modelo. Gabarito: A 6. BANCA: CESPE ANO: 2015 ÓRGÃO: TJDFT PROVA: PROGRAMAÇÃO DE SISTEMAS Julgue os itens seguintes a respeito de banco de dados. [61] Em uma tabela de um banco de dados relacional, se uma restrição de chave primária for definida como composta de mais de uma coluna, os seus valores poderão ser duplicados em uma coluna; no entanto, cada combinação de valores de todas as colunas na definição da restrição de chave primária deve ser exclusiva. Comentário: Questão interessante, pois nos permite fazer um rápido comentário sobre chaves. Uma chave identifica unicamente uma linha de uma relação. Toda relação pode ter vários conjuntos de atributos que podem ser escolhidos como chaves primárias. Cada uma dessas opções que se caracterizam por ser uma superchave mínima, ou seja, não é possível retirar nenhum atributo sem que o conjunto perca a propriedade de ser chave da relação, é denominada chave candidata. A chave escolhida para ser a chave da relação é denominada chave primária. Ela pode ser composta por um ou mais atributos. A questão pede para analisarmos uma característica de chaves compostas por mais de um atributo. Percebam que a unicidade dos valores deve considerar o conjunto dos atributos e não um atributo individualmente. Sendo assim, a alternativa encontra-se correta. Gabarito: C. Nesta parte da aula, gostaria que você fixasse o conceito de chave primária e estrangeira. Esse é um conceito importante dentro do assunto de banco de dados. A chave primária vai ser usada pelo SGBD na organização dos arquivos de dados. Isso significa que o acesso aos dados pode ser feito de forma mais rápida, usando o conjunto de atributos definido como chave primária. O conjunto de atributos deve manter a propriedade de unicidade, ou seja, cada valor associado a uma chave primária só pode aparecer em uma linha da tabela. Olhe para a figura abaixo e me responda: quais campos podem ser usados como chave primária da tabela APROVADOS? APROVADOS Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 20 160 Se você pensou nos atributos Id_Aprovado, CPF e Passaporte, parabéns! Você pensou certo. Qualquer um destes campos pode ser usado como chave primária da tabela, por isso, eles são denominados chaves candidatas. No nosso exemplo, escolhemos o atributo Id_aprovado para ser usado como chave primária da relação Aprovados e o campo Id_Municipio para ser chave primária da relação MUNICIPIO. As outras chaves que foram preteridas podem ser denominadas chave alternativa. Agora, vamos falar sobre chave estrangeira. Observe que, na relação aprovados, temos um campo denominado Municipio. Esse campo vai “apontar” para a chave primária da tabela Municipio (Id_Municipio). O que acontece aqui é que os valores presentes na coluna Municipio da tabela aprovados devem estar presentes na chave da tabela município. Outra opção é que o valor seja definido como desconhecido (nulo). Qualquer outro valor que apareça na coluna Municipio fere a integridade referencial. Neste caso, é como se você estivesse se referindo a um município não cadastrado. Isso fere a integridade referencial que vimos anteriormente. A chave estrangeira é considerada uma coluna ou uma combinação de colunas em que os valores devemcorresponder aos valores de uma chave candidata. A chave estrangeira deve ter tipo de dado igual ao da chave candidata associada. As chaves estrangeiras são usadas no modelo relacional para construir relacionamentos entre as tabelas. É possível, ainda, um relacionamento em que a chave estrangeira aponta para a mesma tabela. Neste caso, temos um auto relacionamento. Os auto-relacionamentos representam associações entre membros do mesmo conjunto. Os auto-relacionamentos não são comuns, mas são importantes quando ocorrem. No banco de dados de uma universidade, um professor pode supervisionar outros professores e ser supervisionado por um professor. Veja o exemplo de um auto relacionamento na tabela abaixo: Auto-relacionamento Toda superchave com a propriedade de irredutibilidade. A chave candidata designada para identificar as linhas de uma tabela. Atributos de uma relação cujos valores devem corresponder a valores de alguma chave candidata de alguma relação. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 21 160 Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 22 160 RESTRIÇÕES DE INTEGRIDADE Nas partes anteriores desta aula, definimos a estrutura tabular presente no modelo relacional. Agora vamos falar das restrições de integridade. Essas restrições visam manter a consistência dos dados dentro do seu banco. As regras de integridade podem ser vistas como um conjunto de parâmetros ou regras do negócio, previamente estabelecidos e criados no banco de dados, aos quais os dados são submetidos. As regras servem para garantir que um processo de atualização não resulte em dados inconsistentes. As restrições de integridade resguardam o Banco de Dados contra danos acidentais, assegurando que mudanças feitas por usuários autorizados não resultem na perda de consistência de dados. Uma das características mais fortes dos bancos de dados relacionais, quando comparados com seus antecessores (em Rede e Hierárquico), está em oferecer mecanismos para a criação de regras de integridade diretamente no banco de dados. As regras de integridade de dados podem ser implementadas nos SGBDs de forma declarativa ou procedural. A integridade declarativa é implementada através de parâmetros opcionais da linguagem de definição de dados (DDL). Os tipos mais comuns de integridade declarativa são: chave primária (PK), domínio e integridade referencial. A integridade procedural se apresenta sob a forma de um programa, cuja lógica é escrita pelo programador, na linguagem procedural nativa do SGBD. Esse tipo de integridade supre as necessidades não cobertas pelos parâmetros de integridade declarativa e pode ser criada através de triggers (gatilhos), stored procedures (procedimentos armazenados) ou assertions (afirmações). Triggers, stored procedures e assertions são comandos que podem ser usados para fazer ajustes na base de dados. Um trigger, por exemplo, é uma estrutura conhecida como EVENTO-CONDIÇÃO- AÇÃO. Imagine que uma modificação no banco de dados dispara um evento. Por exemplo, uma atualização na tabela funcionário com a inclusão de 10 novos servidores. Esse evento vai levar à execução de um código ou de um programa. O programa vai verificar (condição) se os servidores foram de fato aprovados no concurso público e, em seguida, incluir os dados dos mesmos na folha de pagamento e no plano de saúde do órgão em questão. Eis que descrevemos de forma abstrata a execução de um TRIGGER. As bancas focam suas questões sobre esse assunto nos seguintes tipos de restrições de integridade: Integridade de Domínio (dom(A)) – restringe os valores válidos que podem ser associados a um determinado atributo. É a mais elementar forma de restrição de integridade. Ajudam, não somente a garantir os valores inseridos no banco de dados, mas também a testar consultas para garantir que as comparações feitas fazem sentido. Você deve se lembrar que cada tipo de dado tem um conjunto de operações que pode ser executado sobre os mesmos. Imagine as operações de soma e subtração nos tipos de dados numéricos. Na linguagem SQL, é implementada pelo comando CHECK. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 23 160 Integridade de Chave (Unicidade) – Garante a unicidade do valor da chave primária em cada uma das tuplas de uma relação. Implementado pela palavra-chave UNIQUE. Integridade de Vazio (def if(x!=null?x==null)) – Basicamente verifica se um valor de um determinado atributo pode ou não ter o valor nulo associado a suas instâncias. Podemos definir uma coluna como NULL ou NOT NULL em SQL. Integridade de Entidade (PK != null) – Afirma que cada tabela deve ter uma chave primária e garante que a chave primária de uma entidade não receba o valor nulo. Integridade Referencial (FK == PK (Chave Candidata) || FK == null) - Garante que o valor que aparece em uma relação para um dado conjunto de atributos também apareça para um conjunto de atributos em outra relação. Em SQL, é implementada por meio de uma referência da chave estrangeira (FK) de uma relação à chave primária ou atributo UNIQUE da outra tabela. Esse valor de chave estrangeira, sempre que existir, deve estar associado a um valor da chave primária da outra relação. Caso contrário, pode assumir apenas o valor nulo. Veja a figura abaixo para entender melhor esse conceito: Observe que o uso de chaves estrangeiras vai permitir a criação de relacionamentos no modelo relacional. Integridade Semântica (assertions ou triggers) – Uma asserção é um predicado que expressa uma condição desejada a ser sempre satisfeita no banco de dados. Um gatilho (triggers) é um comando que é executado pelo sistema automaticamente, em consequência de uma modificação no banco de dados. Toda vez que um evento acontece, uma condição (caso exista) é verificada e uma ação é disparada. Ao lado da explicação de cada uma das regras de integridade, existe, entre parênteses, uma palavra, uma fórmula ou uma expressão. Elas não existem em nenhuma fonte oficial de estudos. São estruturas criadas por mim para facilitar a memorização das restrições de integridade. Quando estudamos a linguagem SQL, aprofundamos um pouco mais sobre esse assunto com uma visão mais prática dos conceitos apresentados. Antes de continuarmos a tratar do assunto, vamos fazer uma rápida questão. Essa é uma questão inédita, criada pela banca TRC para trabalhar pontos específicos do assunto. 7. Ano: 2019 Banca: TRC Órgão: Estratégia Concursos Assunto: Restrições de integridade Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 24 160 Sobre as restrições de integridade presentes no modelo de dados relacional, analise as afirmações abaixo. Em seguida, assinale a alternativa que aponta a(s) correta(s). I. A restrição de integridade de entidade estabelece que nenhum valor de chave primária pode ser null. Isso porque o valor da chave primária é usado para identificar as tuplas individuais em uma relação. II. Todas as restrições de integridade deveriam ser especificadas no esquema do banco de dados relacional, caso queiramos impor essas restrições aos estados do banco de dados. III. Ter valores null para chave primária implica não podermos identificar alguma tupla. IV. A restrição de integridade referencialé classificada entre duas relações e é usada para manter a consistência entre as tuplas nas duas relações. a) I, II, III e IV. b) I, II e III, apenas c) I, III e IV, apenas d) II, III e IV, apenas e) Apenas I Comentário: A questão trata das restrições de integridade, que são utilizadas para garantir a consistência dos dados e a inviolabilidade em um banco de dados relacional. Podemos citar, como exemplos de restrição de integridade, a integridade de entidade, a integridade de vazio, a integridade de chave, a integridade referencial e a integridade semântica. Algumas dessas restrições são citadas nas alternativas. Vamos avaliar cada uma delas: Alternativa I - Restrição de entidade - define que nenhuma chave primária deve aceitar o valor nulo. Caso contrário, poderíamos ter várias tuplas com chave primária contendo o mesmo valor, ou seja, o valor nulo. Isto impediria que pudéssemos identificar essas tuplas de forma única. Alternativa correta. Alternativa II - As restrições de integridade devem ser implementadas no próprio banco de dados. Dessa forma, o SGDB pode, utilizando seus mecanismos internos, garantir, com eficiência, a consistência dos dados. Outros tipos de restrições, relacionadas às regras de negócio, serão implementadas na aplicação. Alternativa correta. Alternativa III – Lembre-se que nulo é um valor que não consegue identificar nada. Ele é usado para descrever que o valor da variável em questão é desconhecido ou inexistente. O atributo número do apartamento da relação endereço pode ser nulo quando se referir ao endereço de uma casa. Alternativa correta. Alternativa IV - A integridade referencial é o tipo de integridade que provê a consistência de dados relacionados entre duas ou mais tabelas. Especificamente, refere-se à chave estrangeira em uma tabela e à chave primária correspondente em outra tabela. Também se refere a quais ações o SGDB deverá executar nos dados associados às chaves estrangeiras quando ocorrerem mudanças (exclusão, alteração) na chave primária relacionada. Alternativa correta. Gabarito: A Para finalizar nosso conteúdo de restrições de integridade, brindaremos ao som de mais um mapa mental! Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 25 160 MAPA MENTAL – RESTRIÇÕES DE INTEGRIDADE Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 26 160 REGRAS DE CODD Para que um banco de dados seja considerado relacional, ele deve seguir as 13 regras definidas por E.F.Cood. Apresentamos abaixo as referências a cada uma das regras. É muito comum encontrar publicações falando das 12 regras. O que acontece é que são 13 regras, numeradas de 0 até 12. 0. Todas as regras se baseiam na noção de que, para um banco de dados ser qualificado como relacional, ele dever utilizar recursos exclusivamente relacionais para seu gerenciamento. 1. Informação: Todas as informações em um banco de dados são representadas de forma explícita no nível lógico e são estruturadas exatamente, em apenas uma forma, por valores em tabelas. Em outras palavras, todos os valores em bases de dados relacionais são representados em colunas e linhas de uma tabela. Veja um exemplo abaixo: OFF-TOPIC: Eu já sei que o Sport foi rebaixado no ano de 2018, não precisa ficar me lembrando ... Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 27 160 2. Acesso Garantido: Todos os dados precisam ser acessíveis. Cada valor atômico (datum), em um banco de dados relacional, possui a garantia de ser logicamente acessado pela combinação do nome de tabela, do valor da chave primária e do nome da coluna. Ou seja, os dados devem possuir identificadores únicos que permitam o acesso aos mesmos, evitando problemas de interpretação da informação. 3. Tratamento sistemático de valores nulos: Valores nulos ou em branco devem ser suportados de forma sistemática, independentemente do tipo de dado, para representar informações inexistentes e informações inaplicáveis. É também implícito que tais representações devem ser manipuladas pelo SGBD de maneira sistemática. 4. Catálogo on-line dinâmico: A descrição ou metadados do banco de dados é representada no nível lógico da mesma forma que os dados ordinários, permitindo que os usuários autorizados utilizem a mesma linguagem relacional aplicada aos dados regulares para terem acesso aos mesmos. É possível usar a linguagem SQL para conhecer as descrições das tabelas do banco, por exemplo. Veja a descrição de um conjunto de tabelas de um banco de dados na figura abaixo: 5. Sublinguagem ampla dos dados: Um sistema relacional pode suportar várias linguagens e várias formas de recuperação de informações. Entretanto, deve haver pelo menos uma linguagem, com uma sintaxe bem definida e expressa por um conjunto de caracteres, que suporte de forma compreensiva todos os seguintes itens: • Sintaxe linear • Acesso de forma interativa e/ou por meio de programas • Operações de definição de dados, definição de "views", manipulação de dados (interativa e embutida em programas), restrições de integridade, autorizações/segurança de acesso. • Administração de transações (begin, commit e rollback). Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 28 160 6. Atualização de visualizações: Todas as "views" ou visões dos dados que são teoricamente atualizáveis devem também ser atualizáveis pelo sistema. Lembrem-se que as visões nem sempre podem ser atualizáveis, ou seja, uma alteração na visão nem sempre gera uma mudança de estado nas tabelas associadas. 7. Inserção, atualização e exclusão de alto nível: A capacidade de manipular um conjunto de dados (em uma relação) através de um simples comando deve se estender às operações de inclusão, alteração ou exclusão de dados. 8. Independência física de dados: Programas de aplicação e recursos ad hoc permanecem logicamente inalterados quando ocorrem mudanças no método de acesso ou na forma de armazenamento físico. Em outras palavras, quando for necessária alguma modificação na forma como os dados são armazenados fisicamente, nenhuma alteração deve ser necessária nas aplicações que fazem uso do banco de dados. Devem também permanecer inalterados os mecanismos de consulta e manipulação de dados utilizados pelos usuários finais. 9. Independência lógica de dados: Mudanças nas relações e nas views provocam pouco ou nenhum impacto nas aplicações. Ou seja, as alterações nas tabelas que preservam os valores originais não devem afetar os aplicativos e recursos ad hoc. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 29 160 10. Independência de integridade: As aplicações não são afetadas quando ocorrem mudanças nas regras de restrições de integridade. Deve ser possível que todas as regras de integridade sejam definidas na linguagem relacional e armazenadas no catálogo de sistema, não no nível de aplicação. As várias formas de integridade do banco de dados (integridade de entidade, referencial, restrição e obrigatoriedade de valores, etc.) precisam ser estabelecidas dentro do catálogo do sistema ou dicionário de dados, e ser totalmente independenteda lógica dos aplicativos. 11. Independência de distribuição: As aplicações não são logicamente afetadas quando ocorrem mudanças geográficas dos dados. Ou seja, os usuários finais não devem perceber o fato de o banco de dados ser distribuído ou local. Sistemas de banco de dados distribuídos (SBDD) podem estar espalhados em diversas plataformas, interligados em rede, e podem, inclusive, estar fisicamente distantes entre si. Essa capacidade de distribuição não pode afetar a funcionalidade do sistema e dos aplicativos que fazem uso do banco de dados. 12. Não transposição das regras: Se um sistema possui uma linguagem de baixo nível, essa linguagem não pode ser usada para subverter as regras de integridades e as restrições definidas no nível mais alto. Ou seja, o sistema deve ser capaz de impedir que qualquer usuário ou programador passe por cima de todos os mecanismos de segurança, das regras de integridade do banco de dados e das restrições, utilizando algum recurso ou linguagem de baixo nível que eventualmente possam ser oferecidos pelo próprio sistema. Agora que você já entendeu as 12 regras de Codd aplicadas a banco de dados relacionais, vamos fazer uma rápida questão sobre o assunto. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 30 160 8. Ano: 2019 Banca: CESPE Órgão: SEFAZ-RS Prova: Auditor Assunto: Banco de Dados Uma das regras de Codd para o modelo relacional consiste A na dependência de dados físicos (mudança na memória e no método de acesso). B na independência de distribuição. C na presença de uma linguagem de programação no SGBD que promova interface com o banco de dados, com a segurança e com a atualização dos dados. D na subversão das regras de integridade ou restrições quando utilizada uma linguagem de baixo nível. E no não tratamento das atualizações de visões de dados. Comentário: A alternativa B refere-se à 11ª regra de Codd: Regra 11: Independência de Distribuição: A Distribuição de partes do SGBD em várias localidades deve ser transparente para os seus usuários. Aplicações existentes necessitam continuar operando com sucesso: • quando uma versão distribuída do SGBD é introduzida pela primeira vez, e • quando dados distribuídos existentes são redistribuídos em outras localidades físicas. Gabarito: B MAPA MENTAL – REGRAS DE CODD Vamos agora organizar as 12 regras de Codd em um mapa mental Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 31 160 ÁLGEBRA RELACIONAL Falaremos agora sobre a álgebra relacional, um assunto bastante explorado em concursos públicos. Esse tema possui algumas características matemáticas que são baseadas, principalmente, na teoria de conjuntos. O conjunto básico de operações utilizadas no modelo relacional é conhecido como álgebra relacional. Navathe apresenta três motivos para considerarmos essas operações importantes: • Fornece alicerce formal para o modelo relacional. • É usado como base para implementação e otimização de consultas. • Alguns dos seus conceitos são incorporados na linguagem SQL padrão. Historicamente, a álgebra e o cálculo relacional foram desenvolvidos antes da linguagem SQL. O conjunto básico de operações para o modelo relacional é a álgebra relacional. Essas operações permitem que um usuário especifique as solicitações de recuperação básicas como expressões da álgebra relacional. O resultado de uma recuperação ou uma consulta é uma nova relação. Embora a álgebra defina um conjunto de operações para o modelo relacional, o cálculo relacional oferece uma linguagem declarativa de nível mais alto para especificar consultas relacionais. A álgebra relacional, normalmente, é considerada uma parte do modelo de dados relacional. Suas operações podem ser divididas em dois grupos. Um grupo inclui conjunto de operações da teoria de conjuntos da matemática; e outro grupo, desenvolvidas especificamente para bancos de dados relacionais: as operações relacionais. Vamos apresentar cada uma das operações e, em seguida, apresentaremos as taxonomias ou formas de classificação das operações. Tenham em mente que todas as operações são executadas sobre uma ou duas tabelas e o retorno delas é sempre outra relação. Essa característica é conhecida como fechamento. Veja a figura abaixo: Veja que, na figura acima, fazemos uma consulta na relação Alunos, retornando a lista dos candidatos e suas notas, que denominamos de CandNota. Sobre a relação CandNota, faremos uma nova pesquisa para selecionar apenas os candidatos aprovados dentro das vagas. Perceba que o resultado dessas operações será sempre outra relação que pode ser usada como entrada para outra Consulta sobre a relação Alunos. Retorna a lista dos candidatos e suas notas. (CandNota) Consulta sobre CandNota retornando a lista dos candidatos aprovados (AprovadoVaga) Consulta sobre AprovadoVaga para retornar a média das notas do aprovados. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 32 160 operação. Isso é extremamente útil para o aninhamento de operações. Isso é reflexo da propriedade de fechamento. Então, você já sabe que o resultado de uma operação resulta em uma relação que serve como entrada para a operação encadeada. Agora, imagine que você tenha uma tabela com milhões de linhas de dados e um conjunto de operações encadeadas sobre essa tabela. O resultado da primeira operação gera outra relação de um milhão de linhas. Não faz muito sentido você ficar avaliando toda a relação para avaliar a próxima operação. Assim, temos duas formas básicas de avaliar um conjunto de operações particular: avaliação materializada e avaliação em pipeline. Avaliação Materializada - cada operação da álgebra é materializada em uma relação temporária (se necessário) e utilizada como entrada para a próxima operação. Essa é considerada a situação padrão no processamento de consultas. Avaliação em Pipeline - uma sequência de operações algébricas é executada em um único passo. Cada tupla gerada por uma operação é passada para a operação seguinte. Assim, cada tupla passa por um canal (pipe) de operações e somente o resultado ao final do pipeline é materializado (se necessário). Neste caso, evita-se a materialização de todos os resultados intermediários no processamento de uma consulta. Vamos seguir em frente e tratar agora das operações separadamente. SELEÇÃO O objetivo dessa operação, que recebe como entrada uma única tabela ou relação, é selecionar um conjunto de tuplas que satisfaçam um predicado (uma condição lógica) nos valores dos atributos. Em outras palavras, vamos extrair de uma relação um conjunto de linhas que possuem algumas Sejam R, S e T relações, considere as operações (R x S) ∩ T Avaliação materizalizada t1 <- R x S t2 <- t1 ∩ T Avaliação em pipeline 1. Algumas tuplas de R são avaliadas na operação (R x S) 2. O resultado obtido (t1) em 1 segue o fluxo e será operado com T. 3. Volta para o passo 1 e avalia as próximas linhas. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 33 160 restrições. Por exemplo, funcionários que possuem salário maior que 10 mil reais. Vamos procurar entender melhor o que a operação faz exatamente com outro exemplo. Vejam a tabela abaixo: Queremos executar uma operação de seleçãosobre esta tabela. Vamos então fazer uma consulta de quais grupos de países ou parte do mundo apresentam mais de 10% da distribuição de petróleo. Olhando para a tabela, já poderíamos trazer os valores América Latina e Oriente Médio. Mas existe uma notação específica, definida pela álgebra relacional, para fazer essa consulta. Essa notação pode ser vista abaixo: A letra grega σ (sigma) representa a operação de seleção, que é feita sobre a relação R, restringindo as linhas de acordo com as restrições descritas pelo predicado. Sobre esse predicado, é preciso tecer alguns comentários. Primeiramente, é perfeitamente possível que ele seja uma composição de restrições sobre diferentes colunas da tabela. Cada restrição é conhecida como termo. Os termos podem ser ligados por conectivos ∧ (e), ∨ (ou), ¬ (não). Cada termo pode ser composto por: <atributo> operador <atributo> ou <atributo> operador <constante> Ex: NomeCandidato = NomeAprovado || NomeAprovado = _____________ No exemplo acima preciso que você imagine que NomeCandidato e NomeAprovado são atributos de uma relação. Veja que seu nome é uma constante ou um valor. Por fim, a lista de operadores é formada por =, ≠, >, ≥, < ou ≤. Percebam que você pode compor diferentes predicados com essas estruturas. Vamos agora, que conhecemos a sintaxe e a consulta sugerida, escrever a mesma na notação correta. (Para facilitar nossa escrita, vamos chamar as colunas de REGIAO, DISTRIBUICAODEPETROLEO, DISTRIBICAODEGAS e a relação de PETROLEOREGIAO): σ<DISTRIBUICAODEPETROLEO >= 10>(PETROLEOREGIAO) Observe, na consulta acima, que o predicado < DISTRIBUICAODEPETROLEO >= 10> é definido sobre um atributo da tabela PETROLEOREGIAO. Preencha com seu nome. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 34 160 PROJEÇÃO Agora vamos passar para a projeção. Essa operação, também, recebe como entrada uma relação. Contudo, suas restrições são feitas sobre as colunas da tabela. Essa operação deixa algumas colunas de fora do resultado, reduzindo, portanto, a quantidade de dados a serem analisados. Usando o mesmo exemplo anterior, vamos supor que queremos as informações apenas da distribuição de petróleo no mundo e das regiões. Bastaria recortar a tabela excluindo a coluna que informa a distribuição de gás. Da mesma maneira que a operação anterior, apresentaremos agora a representação formal da projeção: A letra grega π (pi) representa a operação. A1, A2, ..., Ak são a lista de atributos da relação R que queremos trazer como resultado. Para fazermos a consulta utilizando a nomenclatura correta, podemos escrevê-la da seguinte forma: π< REGIAO, DISTRIBUICAODEPETROLEO >(PETROLEOREGIAO) Ainda sobre a essa operação, consideramos relevante saber que os resultados duplicados são removidos. RENAME (RENOMEAÇÃO) Para entender a definição da função rename, podemos começar entendendo a sua funcionalidade. A primeira seria unificar em um único conjunto duas listas diferentes. Imaginem duas tabelas: uma com a lista de escolas e outra, das universidades. Se quiséssemos juntar os nomes das instituições de ensino, poderíamos fazer uma união (falaremos sobre a operação nas próximas linhas) dos nomes das escolas com os nomes das universidades. Contudo, se precisarmos usar esse resultado mais adiante, qual o nome da nova relação e dos atributos? Temos, portanto, que renomear o resultset. O segundo uso do rename seria para reduzir ambiguidade em “selfjoin´s”. Quando fazemos um join da tabela com ela mesma e queremos comparar os atributos do resultado, precisamos renomear as tabelas para que essa comparação possa ser feita. Se você se lembrar de SQL, a linguagem implementa alias sobre as tabelas, e uma das funções desse alias3 é justamente resolver essa ambiguidade. Em suma, o alias é uma implementação do conceito de rename. A representação formal da operação de rename é feita da pela letra grega ρ (rho) e é aplicada sobre uma relação. Veja abaixo: 3 Alias são usados para fornecer um nome temporário a uma tabela ou uma coluna em uma tabela. Os alias costumam ser usados para tornar os nomes das colunas mais legíveis e existem apenas para a duração da consulta. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 35 160 ρx<A1, A2, ... ,An >(E) O x representa o novo nome dado para a relação (E) e A1, A2, ..., An representam os novos nomes dados para os atributos da relação. A1 se refere ao primeiro atributo da relação, A2 ao segundo e assim sucessivamente. Suponha uma relação STUDENT (NAME, PHONE). Podemos usar o comando de rename da seguinte forma: ρestudante<nome, telefone>(STUDENT) Você poderia, ainda, atribuir o resultado acima a outra relação, usando o comando de assignment (). Assim, poderíamos atribuir o resultado anterior a uma variável, por exemplo: temp ρestudante<nome, telefone>(STUDENT) As próximas quatro operações são conhecidas como operações de conjuntos. Vamos analisar cada uma delas. UNIÃO A operação é caracterizada por R ∪ S, onde R e S são duas relações com a mesma quantidade de atributos, os quais operam sobre o mesmo domínio. O resultado contém as tuplas que estão em R, S ou ambas. Matematicamente, pode ser visto assim: INTERSECÇÃO A intersecção é representada por R ∩ S, traz como resultado a relação que contém as tuplas que estão em ambas R e S. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 36 160 DIFERENÇA R - S: Relação que contém as tuplas que estão em R e que não estão em S. Veja que, ao contrário das operações de união e intersecção listadas acima, a diferença não é comutativa, ou seja, 𝑅 − 𝑆 ≠ 𝑆 − 𝑅. PRODUTO CARTESIANO Permite combinar informações de duas relações, fazendo uma junção de todas as linhas, a primeira com todas as linhas da segunda. O produto cartesiano entre duas tabelas ou relações gera uma nova relação com a quantidade de tuplas igual ao produto da quantidade de tuplas de cada uma das relações. A nova relação possui todos os atributos que compõem cada uma das tabelas, fazendo parte da operação da seguinte forma: JUNÇÃO A junção é uma conexão entre duas tabelas na qual elas são mescladas de acordo com um campo em comum. Essa junção pode ser considerada um produto cartesiano seguido por uma seleção. O símbolo ⋈ representa uma junção. Ao executar uma junção, ela deve satisfazer a um predicado θ e deve existir pelo menos um campo nas duas tabelas que operem sobre o mesmo domínio. Esse campo é usado para decidir quais linhas da primeira tabela devem se relacionar com cada uma das Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 37 160 linhas da segunda tabela. Geralmente, exige-se que os valores dos atributos sejam iguais. Mas existem variações da junção conforme veremos abaixo. Theta-Join: O primeiro tipo de junção é definido sobre alguma comparação entre os atributos de junção. Essa comparação é conhecida como predicado. Caso esse predicado seja uma igualdade entre valores, essa junção é conhecida como Equijoin. Vejamos um exemplo: Natural join (⋈): Junção na qual θ é uma igualdade predefinida entre todos os atributos de mesmo nome presentes em duas relações R1 e R2 (atributos de junção). Estes atributos só aparecem uma vez no resultado.Junções externas ou outer joins. Junção na qual as tuplas de uma ou ambas as relações, que não são combinadas, mesmo assim são preservadas no resultado. Possui basicamente três variações. Logo em seguida, apresentamos um exemplo. Left outer Join: tuplas da relação à esquerda são preservadas. Notação: Right outer join: tuplas da relação à direita são preservadas Notação: Full outer join: tuplas da relação à direita e à esquerda são preservadas Notação: Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 38 160 Antijoin: Representada pelo seguinte símbolo: ⊳. A operação retorna os valores da relação que não satisfazem à condição de junção. Vejam o exemplo abaixo: DIVISÃO A operação de divisão é usada nas consultas nas quais se emprega a frase: “para todos”. Seu resultado será composto, basicamente, pelos elementos da primeira tabela que se relacionem com todos os elementos da segunda tabela. Vejam o exemplo abaixo: Sobre a taxonomia, é importante saber que temos um conjunto de operações conhecidas como fundamentais. São elas: seleção, projeção, união, diferença, produto cartesiano e rename. Essas operações possuem esse nome, pois a partir delas é possível obter o resultado das demais operações. Outra classificação importante é a classificação das operações em binárias e unárias (ou primárias). Esse parâmetro está baseado na quantidade de relações que são utilizadas nas operações. As operações de projeção, seleção e rename são unárias. As operações de união, interseção, subtração, produto cartesiano, junção e divisão são binárias. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 39 160 9. BANCA: FCC ANO: 2012 ÓRGÃO: TJ-RJ PROVA: ANALISTA JUDICIÁRIO - ANALISTA DE SISTEMAS Considere a seguinte tabela de um banco de dados. TAB_FUNC = {COD_FUNC, NOME, COD_DEP, SAL} Uma expressão da álgebra relacional representando a tabela formada pelos códigos (COD_FUNC) e nomes (NOME) dos funcionários que ganham salário (SAL) entre 1000 e 3000 reais e trabalham no departamento de código (COD_DEP) 3 é Comentário: Uma das opções para resolver essa questão é construir o código SQL da consulta: SELECT COD_FUNC, NOME FROM TAB_FUNC WHERE SAL >= 1000 AND SAL <= 3000 AND COD_DEP = 3; Agora vamos transformar essa consulta para a álgebra relacional. Vamos fazer uma projeção dos atributos COD_FUNC e NOME sobre o resultado de uma seleção com as restrições iguais às do select. Assim, temos como resultado: π<COD_FUN, NOME >( σ< SAL >= 1000 ^ SAL <= 3000 ^ COD_DEP = 3>(TAB_FUN)) Vejam que esse resultado está presente na alternativa A com algumas modificações na ordem das restrições impostas pelo comando de seleção. Gabarito: A. Ok! Vamos passar agora para o nosso tradicional mapa mental! Antes, porém, gostaria que você se lembrasse das 8 operações principais da álgebra relacional que foram definidas na primeira versão dos operadores. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 40 160 TABELA COM O RESUMO DAS OPERAÇÕES DA ÁLGEBRA RELACIONAL. Uma sugestão de tarefa é que você complete o mapa mental da página seguinte com a notação e palavras chave que ajudarão você a lembrar do significado de cada operação da álgebra relacional. • União , Interseção , Diferença e Produto cartesiano • Todos eles um pouco modificados para levar em conta o fato de que seus operandos são, especificamente, relações e não conjuntos arbitrários. Operadores de conjuntos tradicionais • De restrição (também conhecido como seleção), projeção, junção e divisão. Operadores relacionais especiais Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 41 160 MAPA MENTAL – ÁLGEBRA RELACIONAL Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 42 160 OBJETIVOS DA PRÓXIMA SEÇÃO Esta parte da aula descreve a normalização, uma técnica de eliminação da redundância indesejada em tabelas relacionais. Ao final desta aula, você deverá ter adquirido os seguintes conhecimentos e habilidades: • Identificar as anomalias de atualização nas tabelas com redundâncias excessivas. • Definir dependências funcionais entre colunas de uma tabela. • Normalizar tabelas, detectando violações das formas normais e aplicando as regras de normalização. Parece muita coisa, então vamos começa logo! NORMALIZAÇÃO INTRODUÇÃO Normalizar em sentido amplo significa voltar à ordem. Mas que ordem seria que precisa ser mantida quando executando um projeto de banco de dados? Um bom projeto de banco de dados garante ao usuário a possibilidade de modificar o conteúdo do banco de dados sem causar efeitos colaterais inesperados ou anomalias de atualização (ou modificação). Uma anomalia de modificação é um efeito colateral inesperado que ocorre quando se alteram os dados de uma tabela com redundâncias excessivas. Observe a tabela abaixo, perceba que estamos observando que o cliente Thiago está comprando alguns produtos para começar a estudar: TABELA VENDAS Cod_Compra Nome Endereço CPF Produto 1 Thiago SQSW 302 99999999 Caneta 2 Thiago SQSW 302 99999999 Livro 3 Thiago SQSW 302 99999999 Borracha Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 43 160 Perceba que os dados realçados em amarelo são repetidos ou redundantes em cada uma das linhas. Agora imagine que eu resolva atualizar o endereço de Thiago. Eu fui na primeira linha da tabela e alterei a informação conforma desejava. TABELA VENDAS Cod_Compra Nome Endereço CPF Produto 1 Thiago SQSW 304 99999999 Caneta 2 Thiago SQSW 302 99999999 Livro 3 Thiago SQSW 302 99999999 Borracha Agora, o cliente Thiago, associado ao CPF 999999999, possui 2 endereços diferentes. Veja que a causa para esse acontecimento foi justamente a redundância dos dados. Se o endereço de Thiago estivesse separado em outra relação essa anomalia não teria se formado. Vejamos como ficaria: TABELA VENDAS Cod_Compra CPF Produto 1 99999999 Caneta 2 99999999 Livro 3 99999999 Borracha TABELA CLIENTE Nome Endereço CPF Thiago SQSW 304 99999999 Agora temos um conjunto de tabelas que possuem apenas um registro para o endereço de Thiago. Desta forma, se atualizarmos a primeira linha da TABELA CLIENTE, não geramos uma anomalia de atualização e ainda por cima reduzimos a redundância dos dados. Show hein!? 😊 CONCEITOS BÁSICOS O processo de normalização, como foi inicialmente proposto por Codd (1972), ele sujeita um esquema de relação a uma série de testes para certifica-se de que ele satisfaça certa forma normal. De uma forma mais simples, o processo observa o modelo de dados e faz algumas checagens, casos Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 44 160 as regras não sejam verificadas é necessário agir sobre o modelopara organizar melhor os dados. Vejamos uma definição forma de normalização: Definição: A normalização de dados é uma técnica de decomposição utilizada no projeto de banco de dados com objetivo de prover um armazenamento consistente, evitando redundância de dados e anomalias de atualização. Observe que a definição acima fala em decomposição. Desta forma, quando aplicamos a normalização sobre um conjunto de tabelas, é normal que surjam novas colunas ou relações para que os dados possam ser melhor distribuídos pelas tabelas. Inicialmente, Codd propôs três formas normais: 1ª, 2ª e 3ª. Todas baseadas nas dependências funcionais entre os atributos de uma relação. Uma nova forma normal foi proposta por Boyce-Codd, que é mais forte do que 3ª FN. Veja que estamos falando de um conceito novo, logo precisamos explicá-lo, vamos então aproveitar para apresentar outros conceitos que nos ajudam a entender melhor o assunto. Para entender as formas normais é preciso, antes de qualquer coisa, entender alguns conceitos. Para facilitar o seu entendimento vamos defini-lo e explicá-los em uma linguagem simples e objetiva. Vejamos... DEPENDÊNCIA FUNCIONAL A dependência funcional (DF) é uma restrição de duas ou mais colunas de uma tabela. Considerando X e Y colunas de uma tabela, podemos dizer que X determina Y (X →Y) se existe no máximo um valor de Y para cada valor de X. Por exemplo, o número do cadastro de pessoa física determina a cidade (CPFAluno → CidadeAluno) na tabela do banco de dados de uma universidade, se existir no máximo um valor de cidade para cada número do cadastro de pessoa física. Vejamos alguns valores: CPFAluno CidadeAluno Turma 000000000000 Recife A 111111111111 Brasília B 222222222222 Fortaleza C 333333333333 Ceilândia D 444444444444 João Pessoa E Na DF CPFAluno → CidadeAluno, a coluna que aparece à esquerda de uma DF é denominada determinante, ou lado esquerdo (left-hand side = lado da mão esquerda). Nesse exemplo, CPFAluno é um determinante. Também é possível pensar nas dependências funcionais como identificadoras de potenciais chaves candidatas. Ao declarar que X → Y, se X e Y forem colocados juntos em uma tabela sem outras colunas, X é uma chave candidata. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 45 160 Todo determinante (lado esquerdo) é chave candidata se for colocado com outras colunas determinadas por ele. Por exemplo, se CPFAluno, CidadeAluno e Turma forem colocados juntos em uma tabela e CPFAluno → CidadeAluno e CPFAluno → Turma, então CPFAluno é uma chave candidata. Se não houver outras chaves candidatas, um determinante se tornará a chave primária se ele não permitir valores nulos. 10. Analista de Políticas Públicas e Gestão Governamental - CGM Niterói - 2018 A identificação das dependências funcionais constitui um importante passo para a normalização de tabelas de bancos de dados. Considere uma tabela T, com atributos A, B e C, onde A foi definido como primary key, e C como unique. Assinale a opção que indica o mínimo conjunto de dependências funcionais que devem existir, além das dependências triviais e das que podem ser derivadas, para que essa tabela esteja normalizada até a forma normal Boyce-Codd. a) A → B; A → C; B → C. b) A → B; B → C. c) C → A; C → B. d) A → B; A → C. e) A → B; A → C; B → A. Comentário: Essa questão pode ter sua resolução dividida em duas partes. Sabemos que temos três atributos: A, B e C. A foi definido como chave primária. Logo, pela explicação que vimos até aqui temos que A → B e A → C. A outra informação que temos é que o atributo C possui a propriedade de unicidade. Logo, podemos observar que C → A e C → B. Até aí tudo tranquilo. Temos que A e C são chaves candidatas pelo texto do enunciado. Um foi considerado chave primária o outro um atributo unique. Agora vamos relembrar da definição de FNBC: “todo determinante é chave candidata.” A e C já são determinantes e chaves candidatas. Nossa preocupação agora é com B. B precisar ser um determinante e uma chave candidata para não termos problema com a FNBC. Logo, temos que garantir que B → A. Com essa dependência, B passa a ser chave candidata pois determina a chave primária. Assim, nosso conjunto de dependência resolve nosso problema. Mas professor, e a alternativa A, por que ela não é a nossa resposta visto que B → C e C é chave candidata? Veja que nós sabemos que C é unique, mas isso não está expresso nas dependências funcionais da alternativa A. Logo, na letra A podemos visualizar uma dependência transitiva A→B e B → C, o que fere a terceira forma normal. Já na alternativa E esse problema está resolvido pois tanto A quanto B são chaves candidatas, então, mesmo que C não seja um atributo UNIQUE ele não vai gerar problemas com a FNBC. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 46 160 Logo, temos a nossa resposta na alternativa E. Gabarito: E Formalmente, uma dependência funcional, denotada por X → Y entre dois conjuntos de atributos X e Y, que são subconjunto de R, especifica uma restrição nas possíveis tuplas que formam um estado da relação r de R. A restrição é que, para quaisquer duas tuplas t1 e t2 em r que tenha t1[X] = t2[X], elas também têm de ter t1[Y] = t2[Y]. Vamos olhara mais uma vez para a tabela do início da aula. Perceba que nas linhas o atributo nome possui o mesmo valor, logo, se Nome → Endereço, então a coluna endereço terá o mesmo valor para as respectivas linhas. Formalmente, temos que: t1[Nome] = t2[Nome] ➔ t1[Endereço] = t2[Endereço]. Cod_Compra Nome Endereço CPF Produto 1 Thiago SQSW 302 99999999 Caneta 2 Thiago SQSW 302 99999999 Livro 3 Thiago SQSW 302 99999999 Borracha Mais uma vez: a questão aqui é perceber que se você escolher um determinado valor para o atributo X da relação (sabendo que X → Y) é possível saber o valor do atributo Y. Na definição formal é dito que se duas tuplas tiverem o mesmo valor para X, então elas também terão o mesmo valor de Y. É importante lembrar também que quando X → Y (X determina Y), X é chamando de determinante e Y de determinado. Uma dependência funcional pode ser considerada trivial, neste caso se X → Y e X contém (Ↄ) Y. Para entender isso basta supor um conjunto de atributos (A, B, C, D, E) e o fato de A, B, C → C faz desta DF uma dependência trivial. Por outro lado, temos a possibilidade da DF ser não trivial se X → Y e X não contém Y. Usando os mesmos atributos acima, uma DF A, B → D pode ser considerada um exemplo de DF não trivial. Relação (A, B, C, D, E) A, B, C → C Dependência trivial. A, B → D D.F. não trivial Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 47 160 CHAVE, SUPERCHAVE, CHAVE PRIMÁRIA E CHAVE CANDIDATA Vamos aproveitar que estamos falando de chaves para relembrar seu conceito. Existem alguns conceitos relacionados a chave. O primeiro deles é o de superchave. Uma definição formal afirma que uma superchave de um esquema de relação R = {A1, A2, ..., An} é um conjunto de atributos S C R (S está contido em R) que contenha a propriedade na qual não haverá duas tuplas t1 e t2, em qualquer estado válido da relação r de R, cuja t1[S] = t2[S]. Em outras palavras, uma superchave é um conjunto de atributos que tem a característica de restringir o conjunto de tuplas de uma relação a apenas uma linha. Quando olhamos para um conjunto de atributos em uma tabela que não se repete em nenhuma das linhas da tabela podemos considerá-losuma superchave. Antes de continuar nosso estudo sobre chaves, vejamos uma questão de uma prova sobre o assunto. 11. 2017 - Órgão: Hemocentro Cargo: Analista de Tecnologia da Informação Q. 34 QUESTÃO 34 Considere uma tabela relacional “R” e seus atributos definidos por R (F1, F2, F3, F4, F5) com dependências funcionais F1, F2, F3 → F4, F5 e F5 → F1, F2. Com base nessas informações, assinale a alternativa que contém o número total de superchaves distintas para essa tabela. (A) 2 (B) 7 (C) 8 (D) 10 (E) 12 Comentário: Para responder essa questão precisa que você entender dois conceitos. O primeiro está relacionado as chaves. Uma chave é qualquer superchave mínima. Ou seja, na chave se você excluir algum atributo da lista essa (lista) perde a propriedade de chave da tabela ou relação em questão. Assim, para resolvermos a questão precisamos pensar quais são as possíveis chaves desta relação. Logo de cara, por meio das dependências funcionais (DFs) definidas pela questão você percebe que F1, F2, F3 --> F4, F5, como a tabela só tem 5 atributos essa DF nos leva a primeira chave candidata da relação (F1, F2 e F3). Logo após temos mais uma informação sobre as dependências funcionais, que F5 --> F1, F2. Isso quer dizer que esse atributo (F5) pode identificar unicamente F1 e F2. Logo podemos compor uma nova chave candidata (F5 e F3). Veja que eu simplesmente substituí F1 e F2 por F5. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 48 160 OK! Agora que temos nosso ponto de partida, as duas chaves candidatas desta relação, a questão vira um problema de análise combinatória. Vamos construir todas a combinações possíveis, que utilizam uma das chaves candidatas e acrescentá-las a nossa lista de superchaves (F1, F2 e F3) e (F5 e F3). Vamos lá então: • (F1, F2, F3, F4, F5) --- superchave com 5 atributos • (F1, F2, F3, F4), (F1, F2, F3, F5), (F5, F3, F2, F4), (F5, F3, F1, F4) --- superchaves com 4 atributos • (F1, F2, F3), (F5, F3, F1), (F5, F3, F2), (F5, F3, F4) - superchaves com 3 atributos • (F5, F3) - superchave com 2 atributos Vejam que no total temos 10 possíveis superchaves para a relação em questão. Esse conjunto incluí as duas chaves candidatas que descobrimos anteriormente. As duas superchaves em negrito são chaves candidatas, as demais são apenas superchaves pois podem ter algum atributo removido do seu conjunto e continuar sendo superchave da relação. Gabarito: D. Já entendemos o conceito de superchave. Essa superchave pode ser considerada apenas uma chave. Neste caso, a chave é defendida como uma superchave mínima (vou chamar ela de K), onde qualquer remoção de atributo de K fará com que K deixe de ser superchave da relação. Se um esquema tiver mais de uma chave, cada uma delas é chamada de chave candidata. Entre as chaves candidatas uma delas é escolhida para ser a chave da relação e é denominada de chave primária. As demais são renegadas e são denominadas chaves secundárias. Entender o conceito de chave é o primeiro passo para o entendimento das formas normais. De posse deste conhecimento, é possível definir o conceito de atributo primário, que nada mais é do que um atributo membro (que faz parte) de alguma chave candidata da relação (R). Por sua vez, de forma bem intuitiva, um atributo não primário é todo aquele que não for um atributo primário! 12. ANO: 2015 ÓRGÃO: TJDFT PROVA: PROGRAMAÇÃO DE SISTEMAS Julgue os itens seguintes a respeito de banco de dados. [61] Em uma tabela de um banco de dados relacional, se uma restrição de chave primária for definida como composta de mais de uma coluna, os seus valores poderão ser duplicados em uma coluna; no entanto, cada combinação de valores de todas as colunas na definição da restrição de chave primária deve ser exclusiva. Comentário: Questão interessante pois nos permite fazer um rápido comentário sobre chaves. Uma chave identifica unicamente uma linha de uma relação. Toda relação pode ter vários conjuntos de atributos que podem ser escolhidos como chave primária. Cada uma dessas opções que se caracterizam por ser uma superchave mínima, ou seja, não é possível retirar nenhum atributo sem que o conjunto perca a propriedade de ser chave da relação, é Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 49 160 denominada chave candidata. A chave escolhida para ser a chave da relação é denominada chave primária. Ela pode ser composta por um ou mais atributos. A questão pede para analisarmos uma característica de chaves compostas por mais de um atributo. Percebam que a unicidade dos valores deve considerar o conjunto dos atributos e não um atributo individualmente. Sendo assim a alternativa encontra-se correta. Gabarito: C. Com esses conceitos já é possível definir as três primeiras formas normais, bem como a forma normal de Boyce-Codd. PRIMEIRA FORMA NORMAL (1FN) Essa forma normal é considerada uma parte da definição de relação no modelo relacional básico. Sua definição prevê que todos os atributos de uma relação devem ter seus valores definidos sobre domínios atômicos ou indivisíveis. Em outras palavras, os campos de uma tabela não devem ser compostos ou multivalorados. Veja abaixo uma figura que demonstra a normalização de uma tabela que não está na 1FN para duas relações. Lembre-se que um atributo composto possui mais de valor de tipos diferentes associados a uma coluna da tabela. No nosso exemplo, vamos usar o atributo Endereço com valores de Rua, Número, Bairro e Cep. Já o atributo multivalorado pode ter 0, 1 ou vários valores associados ao mesmo tipo de dados. Neste caso, selecionamos o atributo telefone como exemplo. Código_Aluno Nome Telefones Endereço A001 Fabrício Ribeiro 99564-9453 98432-1234 Rua 17 de Julho, 98, Morumbi, 12635-965 B001 Carlos Normando Rua Águas de Março, 16, Rio de Janeiro, 54532-098 C001 Emerson Pimentel 92834-5697 91283-4309 Praça Ramos 15, Liberdade, 66858-633 Você consegue perceber que temos dois atributos acima que não são atômicos. Claramente, podemos dividir os valores presentes nas colunas Telefones e Endereço. Vamos trabalhar cada um dos casos separadamente, começando pela coluna Telefones. Para acabar com os atributos multivalores precisamos criar uma outra tabela que vai associar cada um dos telefones ao seu respectivo aluno. Vejamos: Código_Aluno Telefone A001 99564-9453 Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 50 160 A001 98432-1234 C001 92834-5697 C001 91283-4309 Perceba que a chave da tabela acima é composta pelos atributos Código_Aluno e Telefone. Agora, precisamos voltar a nossa atenção para a relação original e separar os diversos atributos atômicos da coluna Endereço. Código_Aluno Nome Logradouro Número Bairro Cep A001 Fabrício Ribeiro Rua 17 de Julho 98 Morumbi 12635-965 B001 Carlos Normando Rua Águas de Março 16 Rio de Janeiro 54532-098 C001 Emerson Pimentel Praça Ramos 15 Liberdade 66858-633 Agora sim!! Temos uma tabela com todos os seus atributos associados a domínios indivisíveis ou atômicos. Veja que, para resolver o problema de atributos compostos, separamos os valores em várias colunas. Já, para resolver o problema de atributos multivalorados, criamos uma nova tabela com a chave da relação original e uma coluna atômica que representa os diversos/múltiplos valores em linhas distintas. Vamos aproveitar para expor algumas definições de diversos autores sobre a primeiraforma normal: Primeira forma normal • Uma relação R existe na primeira forma normal (1FN) se, e somente se, todos os domínios subjacentes contiverem apenas valores atômicos. • No modelo relacional, um domínio é atômico se os elementos do domínio são considerados unidades indivisíveis. Um esquema de relação R está na primeira forma normal se todos os atributos de R são atômicos. • A primeira forma normal afirma que o domínio de um atributo deve incluir apenas valores atômicos (simples e indivisíveis) e que o valor de qualquer atributo em uma tupla deve ser um único valor do domínio desse atributo. • A primeira forma normal evita as chamadas relações aninhadas, essas relações contêm vários atributos em uma única coluna e não são permitidas no modelo relacional. SEGUNDA FORMA NORMAL (2FN) A segunda forma norma visa resolver um problema de dependência parcial. Uma relação com uma chave primária (ou candidata) composta onde um dos atributos determina isoladamente outro atributo da relação. Vamos tentar dar um exemplo para fixarmos melhor os conceitos. Veja a tabela abaixo: Cod_Compra CPF Nome Endereço Produto Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 51 160 1 99999999 Thiago SQSW 302 Caneta 2 99999999 Thiago SQSW 302 Livro 3 88888888 Flávia SQSW 304 Borracha Na relação anterior, os atributos Cod_Compra e CPF formam a chave primária composta da tabela vendas. Contudo, é possível perceber que CPF, isoladamente, determina os atributos Nome e Endereço. Veja que, o exemplo que utilizamos anteriormente na nossa aula, possui problemas com a segunda forma normal. Essa dependência parcial precisa ser removida da relação. Para isso, o CPF se mantém como atributo na relação original e uma nova relação é criada para absolver os atributos por ele determinado. Assim temos: Cod_Compra CPF Produto 1 99999999 Caneta 2 99999999 Livro 3 88888888 Borracha CPF Nome Endereço 99999999 Thiago SQSW 302 88888888 Flávia SQSW 304 Agora temos duas relações com ausência de dependência funcional parcial. Logo, nosso modelo acima está na segunda forma normal. Lembrando que existe uma cumulatividade entre as formas. Assim, para estar na segunda forma normal, a relação tem que estar na 1FN e cumprir os requisitos para eliminar as dependências parciais. Uma definição mais rigorosa descreve que um esquema de relação R está na 2FN se todo atributo não primário A em R tem dependência funcional total de uma chave candidata. Podemos dizer também que não existe dependência parcial. De uma forma mais simples, a ideia aqui é que cada atributo não chave seja definido por todos os atributos pertencentes à chave primária ou a outra chave candidata da relação. Veja abaixo uma relação que não se adequa a segunda forma normal, sendo, por meio do processo de normalização, transformada em duas relações que estão de acordo com a definição apresentada. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 52 160 Um fato interessante sobre a segunda forma normal é que para termos problema com uma relação precisamos que uma chave candidata seja composta, ou seja, possuir mais de um atributo, e que um desses atributos determine outro (atributo não primário) desta relação. Nas provas de concursos o que geralmente acontece é termos uma chave primária composta e um atributo pertencente a essa chave que determina um atributo não primário da tabela. Desta forma, é possível aceitar algumas das definições abaixo: Segunda forma normal • Um esquema de relação R está na 2FN se cada atributo não primário A em R for total e funcionalmente dependente da chave primária de R. • Uma tabela está na segunda forma normal (2FN) se estiver na primeira forma normal (1FN), e seus atributos não chaves forem totalmente dependentes da chave primária. TERCEIRA FORMA NORMAL (3FN) A normalização feita a partir da regra definida pela terceira forma normal leva a relação para um estado específico. Neste caso, a relação tem que estar na segunda forma normal e ainda todo atributo não primário da relação não ser transitivamente dependente de uma chave da relação. Uma relação está na Terceira Forma Normal (3FN) se ela estiver na 2FN e nenhum atributo não chave (não primário) é transitivamente dependente de uma chave candidata. Enfim, na 3FN não se aceita dependência transitiva. O Navathe descreve uma definição mais geral da terceira forma normal que diz basicamente o seguinte: Um esquema de relação R está na terceira forma normal (3FN) sempre que uma dependência funcional não trivial X → A for determinada em R, qualquer (a) X é superchave de R; ou (b) A é atributo primário de R; Segundo o próprio autor, violar a condição (a) significa que X não é um super conjunto de nenhuma chave de R; consequentemente, X pode ser não primário ou pode ser um dado subconjunto de uma chave de R. O autor fala também que a violação de (b) significa que A é um atributo não primário. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 53 160 Enfim, são condições para a terceira forma normal (1) ter dependência funcional total para todas as chaves de R e (2) não ser transitivamente dependente de nenhuma chave de R. Se você achou essa definição de dependência transitiva muito complexa e não conseguiu fixar nada, deixa eu tentar explicar de outra forma. Primeiro você precisa ter em mente que para existir a transitividade temos que ter algumas premissas. Um atributo chave (primário), por exemplo, CPF determina um outro atributo (não primário), por exemplo, telefoneResidencial; que por sua vez determina outro atributo (não primário), por exemplo, Endereco. Vejamos a tabela abaixo: CPF Nome telResidencial Endereco 001 Thiago 61 555-1255 SQSW 302 BL G 002 Flavia 61 555-1255 SQSW 302 BL G 003 Lucas 61 555-1533 SQSW 302 BL G 004 Vinicius 61 555-1533 SQSW 302 BL G 005 Ladjane 81 555-9299 Av. Portugal Pense da seguinte forma: se você me passar um número de CPF e eu devolvo um telefone residencial. Da mesma forma, se você me der um número de telefone eu devolvo um endereço único. Observe que, alguns telefones aparecem mais de uma vez na coluna, contudo, eles determinam o mesmo endereço, ou, em outras palavras, eles estão associados ao mesmo endereço. É justamente essa replicação que desejamos evitar na terceira forma normal. Vamos então separar a tabela acima: CPF Nome telResidencial 001 Thiago 61 555-1255 002 Flavia 61 555-1255 003 Lucas 61 555-1533 004 Vinicius 61 555-1533 005 Ladjane 81 555-9299 Veja que a redundância anterior desapareceu. Agora temos o telefone residência associado a apenas um endereço da tabela abaixo. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 54 160 telResidencial Endereco 61 555-1255 SQSW 302 BL G 81 555-9299 Av. Portugal Agora, voltando aos conceitos mais formais, você deve lembrar que um atributo primário faz parte de alguma chave candidata da sua relação. E para que exista necessidade de normalizar utilizando a terceira forma normal temos que ter 3 atributos, vamos supor A, B e C, de forma que A seja primário e B e C não primários. Além disso, temos que ter uma dependência transitiva onde A → B e B→ C. Antes de apresentarmos as outras formas normais vamos fazer uma questão sobre os conceitos vistosaté aqui: 13. Ano: 2017 Órgão: Alerj Cargo: Analista de Tecnologia da Informação Q. 48 Em banco de dados, a finalidade do processo de normalização é evitar redundâncias e, portanto, evitar certas anomalias de atualização de dados. Considere as dependências funcionais entre os atributos das seguintes entidades: PACIENTE(ID_PACIENTE determina NOME_PACIENTE); MEDICO(ID_MEDICO determina CRM_MEDICO, NOME_MEDICO); CONSULTA(ID_PACIENTE, ID_MEDICO determinam DATA_ATEND, HORA_ATEND); Sabendo-se que o atributo sublinhado é a chave primária, a alternativa que apresenta as entidades e seus atributos na Terceira Forma Normal (3FN) é: (A) PACIENTE (ID_PACIENTE, NOME_PACIENTE, ID_MEDICO, DATA_ATEND, HORA_ATEND) MEDICO (ID_MEDICO, CRM_MEDICO, NOME_MEDICO) CONSULTA (CRM_MEDICO, DATA_ATEND, HORA_ATEND) (B) PACIENTE (ID_PACIENTE, NOME_PACIENTE) MEDICO (ID_MEDICO, CRM_MEDICO, NOME_MEDICO) CONSULTA (ID_PACIENTE, NOME_MEDICO, DATA_ATEND, HORA_ATEND) (C) PACIENTE (ID_PACIENTE, NOME_PACIENTE, ID_MEDICO) MEDICO (ID_MEDICO, CRM_MEDICO, NOME_MEDICO) CONSULTA (ID_PACIENTE, DATA_ATEND, HORA_ATEND) (D) PACIENTE (ID_PACIENTE, NOME_PACIENTE) MEDICO (ID_MEDICO, CRM_MEDICO, NOME_MEDICO) CONSULTA (ID_PACIENTE, ID_MEDICO, DATA_ATEND, HORA_ATEND) (E) PACIENTE (ID_PACIENTE, NOME_PACIENTE) Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 55 160 MEDICO (ID_MEDICO, CRM_MEDICO, NOME_MEDICO) CONSULTA (ID_PACIENTE, CRM_MEDICO, NOME_MEDICO, DATA_ATEND, HORA_ATEND) Comentário: Para chegarmos até a terceira forma normal temos que cumprir alguns requisitos. As relações do modelo não podem ter atributos compostos ou multivalorasdos (1FN), não pode existir em cada uma das relações dependência parcial (2FN) nem dependência transitiva (3FN). Ao ajustar o modelo podemos encontrar nossa resposta na alternativa D. Gabarito: D FORMA NORMAL DE BOYCE-CODD (FNBC) Uma coisa interessante é que a forma normal de Boyce-Codd foi proposta como uma forma mais simples que 3FN, porém mais rígida. Devido ao fato de a 3FN não tratar satisfatoriamente casos onde uma relação tem mais de uma chave candidata, e quando estas chaves são compostas e possuem atributos em comum. Se uma relação está na FNBC, também está na 3FN. Sua definição diz o seguinte: uma relação está na FNBC se todo determinante é chave candidata. Abaixo segue uma figura que demonstra uma normalização de uma relação para a FNBC. Veja na figura que temos duas chaves candidatas (Propriedade_num) e (Nome_cidade, Num_lote). Temos ainda uma dependência funcional onde Area determina o Nome_cidade. Neste caso, temos que fazer a separação proposta na figura acima. Veja que Area → Nome_cidade não fere a terceira forma normal pois Nome_cidade é um atributo primário. Vamos agora continuar nosso estudo fazendo mais uma questão sobre o assunto. 14. BANCA: FCC ANO: 2015 ÓRGÃO: TRE-RR PROVA: ANALISTA JUDICIÁRIO - ANÁLISE DE SISTEMAS Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 56 160 Considere a entidade a seguir, retirada de um diagrama de entidade-relacionamento, que possui como chave primária os atributos employee_id e start_date. Pode-se afirmar que para esta entidade estar na Segunda Forma Normal (2FN), ela precisa estar na Primeira Forma Normal (1FN) e A os atributos employee_id, job_id e department_id precisam ser chave estrangeira nesta entidade. B a chave primária precisa ser formada pelos atributos employee_id, job_id e department_id, que são provenientes de tabelas relacionadas a esta. C o atributo employee_id, que é parte da chave primária, precisa ser proveniente de uma das tabelas relacionadas a esta. D os atributos end_date, job_id e department_id precisam ser dependentes da chave primária composta inteira, não apenas de parte dela. E todos os atributos precisam permitir apenas valores exclusivos, de forma que não haja redundância e, consequentemente, desperdício de espaço em disco. Comentário: Vejam que pelo diagrama sabemos que JOB_HISTORY se relaciona com outras 3 entidades, possivelmente, EMPLOYEE, JOB e DEPARTMENT. Se lembrarmos da definição da segunda forma normal que diz para eliminarmos dependência parcial, podemos observar que a alternativa D está correta, pois é uma implicação da 2FN. Gabarito: D. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 57 160 QUARTA E QUINTA FORMAS NORMAIS As formas normais vistas até o momento são apoiadas em dependências funcionais (2FN, 3FN e BCNF) e podem ser consideradas para cada relação. Uma base de dados será considerada normalizada para uma dessas formas quanto todas as suas relações se apresentarem nessa forma. Tratamos das formas normais mais “simples” e relacionadas à DF, espero que você tenha entendido. Qualquer dúvida ou comentário pode ser enviado para mim aqui mesmo, no fórum do Estratégia Concursos ou por e-mail. Mas, o objetivo desta aula é: ensinar todas as formas normais. Precisamos, então, desmistificar a quarta e a quinta forma normal. Então, prepare sua mente, pois as próximas linhas deixarão todo assunto bem claro. Vem comigo! Primeira informação que devemos ter que faz parte da base do conhecimento das próximas formas normais é a ideia de decomposição sem perdas na junção. A decomposição deve ser feita de maneira que, quando se recompõe a relação original, apenas e exatamente as tuplas existentes na relação original são reobtidas. A decomposição baseada nas dependências funcionais (2FN, 3FN e FNBC) não causam perdas de junção, portanto a normalização para as formas normais baseadas em dependências funcionais está livre desse problema. Contudo, a normalização de relações através de dependências funcionais é apenas uma das maneiras, embora a mais importante, de evitar inconsistências em relações. Outra maneira advém de uma variação das dependências funcionais, chamadas dependência multivalorada (DMV), multi- dependência funcional (MDF), ou ainda, dependência multivalor. E o que seria essa tal dependência multivalorada? A dependência multivalorada caracteriza o fato de que, embora um conjunto de atributos não possa determinar o valor de outro atributo, ainda assim, esse conjunto consegue restringir os valores possíveis para aquele atributo. Vamos a um exemplo simples. Uma pessoa pode ter vários números de telefones e um número de telefone pode ser compartilhado por várias pessoas. Nesse relacionamento N para M não é possível encontrar uma DF entre esses dois atributos, porém podemos visualizar o que chamamos de dependência multivalorada entre o Id_pessoa e Num_telefone que pode ser representada por Id_pessoa →→ Num_telefone. Diz-se que Id_pessoa multidetermina Num_telefone, ou, que Num_telefone é funcionalmente multidependete de Id_pessoa. Aqui cabe uma observação a respeito das DMV. Elas são consequência da 1FN que não permite que um atributo tenha um conjunto de valores. Veja um exemplo entre Funcionário, Projeto e Dependente. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 58 160 Veja que na tabela acima podemos encontrar duas DMV. Funcionário multidetermina Projeto e Funcionário multidetermina Dependente. Sempre que houver a ocorrência de um atributo multivalorado ocorrerá a multi-dependência funcional. Entretanto, se houver duas ou mais dependênciasmultivaloradas independentes entre si na mesma relação então pode ocorrer anomalias de atualização na relação. Tente inserir na tabela a informação que Thiago participará do projeto 03(proj 03). Para mantermos a DMV, teremos que adicionar 3 linhas, uma para cada dependente de Thiago, caso contrário ao procurarmos os dependentes dos funcionários que participam do projeto 03 retornaremos uma informação incorreta. Se tivermos um ou mais atributos multivalorados independentes na mesma relação, temos de repetir, gerando todas as combinações entre os atributos para manter a consistência entre as instancias. Observe a relação (Funcionario, Projeto e Dependente). Veja que, ainda que esteja na FBNC, a mesma ainda apresenta redundância. Observe também que a decomposição não pode se basear em DF, pois não existem DF na relação. É necessário, portanto, uma regra para o tratamento dessas situações, que possa ser usada para decompor a relação sem perdas. Numa relação R {A, B, C} se existe uma DMV A →→ B também existe A →→ C (ou seja, A →→ R – AB). Nestes casos, as DMV surgem sempre aos pares e representam-se por: A →→ B|C. Apenas reforçando, se A →→B|C, então a relação deve conter todas as combinações possíveis dos conjuntos de valores de B e de C, associados ao mesmo valor de A. Formalmente podemos pensar da seguinte forma: dada uma relação R com atributos A, B, C, existe uma dependência multivalorada do atributo A no atributo B (A →→ B) se, um valor de A é associado a uma coleção específica de valores de B, independente de quaisquer valores de C. QUARTA FORMA NORMAL (4FN) Começamos com uma definição informal: Uma relação está na 4FN se para qualquer DMV X →→ Y a relação não tem outros atributos além dos que fazem parte de X e de Y. Esse tipo de DMV é conhecido como trivial. Outra definição, desta vez, de acordo com o Navathe. "Um esquema de relação R está na 4FN com relação a um conjunto de dependências funcionais ou multivaloradas F se, para toda dependência multivalorada não trivial X→→Y em F+, X for uma superchave de R." Formalmente, o conjunto de todas as dependências de F, bem como todas as dependências que podem ser inferidas para F, é chamado de clausura de F, que é denotada por F+. A DMV pode ser classificada como trivial ou não trivial. Numa relação R, a DMV A →→ B é dita trivial se: (a) B for subconjunto de A ou Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 59 160 (b) A U B = R. Uma DMV que não satisfaz nem a (a) nem a (b) é dita não trivial. Em outras palavras, de uma maneira mais intuitiva, pode-se dizer que uma DMV não trivial ocorre sempre que houver mais do que um atributo multivalorado na mesma relação. Assim, o que se procura é a chamada DMV não trivial. Observe que as relações que contêm DMVs tendem a ser all-key (tudo é chave) – ou seja, sua chave é formada por todos os seus atributos tomados em conjunto. O processo de normalização de uma relação envolvendo DMVs não triviais, que não está na 4FN, consiste em decompô-la de modo que cada DMV seja representada por uma relação separada, onde se torna uma DMV trivial. Veja o nosso exemplo para a relação (Funcionario, Projeto, Dependente), que será decomposta em duas relações (Funcionario, Dependente) e (Funcionario, Projeto). Vimos que a propriedade sem perda na junção é uma das diversas propriedades para o projeto de banco de dados. De fato, essa propriedade é essencial: sem ela, há perdas de informação. Quando restringimos o conjunto de relações válidas entre as que satisfazem um conjunto de dependências funcionais e multivaloradas, podemos usar essas dependências para mostras que certas decomposições são decomposições sem perda na junção. A próxima e última forma normal tem relação direta com Dependência de Junção (DJ), por isso, ela também é conhecida como Forma Normal Projeção Junção. Quando é possível restringir um conjunto de relações válidas sobre um esquema R para aquelas relações para as quais uma dada decomposição é uma decomposição sem perdas, podemos definir essa restrição como uma dependência de junção. Em outras palavras, uma dependência de junção (DJ), denotada por DJ (R1, R2, ... , Rn), em um esquema de relação R, especifica uma restrição nos estados r de R. Essa restrição diz que todo estado legal r de R deveria ter uma decomposição de junção não aditiva para R1, R2, ... , Rn, ou seja, para todo r tenham *(πR1(r), πR2(r), ..., πRn(r)) = r (π é uma projeção sobre a relação R) Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 60 160 QUINTA FORMA NORMAL (5FN) A aplicação da 5FN consiste em encontrar a DJ * [R1, R2, … Rn] que permite decompor uma relação sem perdas. Advém das dependências multivaloradas que ocorrem entre os atributos de uma relação. A verificação da 5ª FN somente precisa ser empreendida em relações que tenham três ou mais atributos como parte da chave. A 5ª FN trata da situação em que a informação permite ser reconstruída a partir de componentes menores que possam ser mantidos com uma redundância menor. Ela generaliza os casos não cobertos pela segunda, terceira e quarta formas normais. Definição: Um esquema de relação R está na quinta forma normal (5ª FN) em relação a um conjunto F de dependências funcionais, multivaloradas e de junção se, para cada dependência de junção não trivial DJ (R1, R2, ... , Rn) de F+ (ou seja, implicada por F), todo Ri for uma superchave de R. Abaixo segue o exemplo da relação Fornece, que não pode ser decomposta em duas relações, pois a junção entre elas geraria tuplas espúrias. Assim, usamos a 5FN para decompor a relação em três (r1, r2, r3), de modo que uma junção feita sobre essa relação mantém a propriedade de junção sem perdas. 15. BANCA: CESPE ANO: 2014 ÓRGÃO: TJ-SE PROVA: ANALISTA JUDICIÁRIO BANCO DE DADOS Julgue os seguintes itens, acerca de projetos, administração de usuários e acessos de bancos de dados relacionais. [1] Se uma variável de relação estiver na quinta forma normal, não será possível realizar nenhuma decomposição sem haver perda de informação. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 61 160 Comentário: Acabamos de explicar essa característica da 5FN que deve ser capaz de dividir a relação em um conjunto de outras relações de forma que a junção desse conjunto consiga reconstruir a relação original sem perdas ou tuplas espúrias. Gabarito E. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 62 160 MAPEANDO O MODELO ER EM RELACIONAL Quando estudamos os conceitos introdutórios de banco de dados sempre falamos do modelo conceitual entidade-relacionamento (ER) e do modelo lógico relacional. Explicamos que durante um projeto de banco de dados a evolução natural leva você a construir os dois modelos a partir dos requisitos do cliente. Legal! Então você começou pelo minimundo, juntou os requisitos e construiu seu modelo ER! Agora, se você tinha dificuldade de passar esse modelo para o modelo relacional, seus problemas acabaram! Nas próximas linhas vamos explicar o passo a passo da transformação do seu diagrama ER em tabelas. O livro do Navathe sugere um algoritmo que nos ajuda no processo de transformar um esquema ER e um esquema relacional. Vamos utilizar o esquema abaixo para ilustrar o passo-a-passo deste mapeamento.PASSO 01 – MAPEAR AS ENTIDADES REGULARES O mapeamento começa com as entidades regulares do modelo ER. Para casa tipo de entidade forte ‘E’ presente no diagrama, criamos uma relação ‘R’ que incluí todos os atributos simples da entidade Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 63 160 E. Escolha os atributos chaves da entidade para ser chave primária da relação. Se a chave da entidade for composta, o mesmo conjunto de atributos que formam a chave de E vão fazer parte da chave primária de R. Vejamos no exemplo temos as entidades fortes EMPLOYEE, DEPARTAMENT e PROJECT serão transformados em relações. Os atributos SSN, DNUMBER e PNUMBER serão as chaves primárias das respectivas tabelas. Assim temos: PASSO 02 – MAPEAR AS ENTIDADES FRACAS A segunda etapa se concentra em mapear as entidades fracas. Para cada entidade fraca W no modelo ER com uma entidade pai ou proprietária E, você deve criar uma relação R e incluir todos os atributos simples (ou os componentes simples de atributos compostos) de W como atributos de R. É necessário ainda incluir como chave estrangeira os atributos que fazem parte da chave primária da entidade proprietária E. Assim a chave primária será formada pela combinação da chave primária da entidade pai mais a chave parcial da entidade fraca, caso exista. Vamos mais uma vez para o nosso diagrama ER. A entidade fraca DEPENDENT deve dar origem a uma relação. Essa relação terá os atributos da entidade, além da chave estrangeira que vem da entidade pai. Vejam, então, que o Ssn fará parte da relação. Desta forma podemos construir a relação dependente conforme descrito abaixo: PASSO 03 – MAPEAR OS RELACIONAMENTOS BINÁRIOS 1:1 Vamos agora começar a mapear os relacionamentos binários 1:1 entre as entidades. Para cada relacionamento binário 1:1 R no esquema ER, identificamos as relações que correspondem as entidades S e T que participam do relacionamento R. A partir deste momento temos três ações possíveis. A primeira seria usar chave estrangeira para efetivar o relacionamento. Neste caso você escolhe uma das chaves primárias de S ou de T. Vamos supor que escolhemos a chave de S. Você vai usar a chave primária de S e incluir ela como chave estrangeira da relação T. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 64 160 A melhor opção é escolher a entidade que tenha participação total no relacionamento. Em outras palavras, você deve escolher a entidade que para cada instância existente da entidade ela tenha uma instância no relacionamento e incluir a chave primária da outra entidade nela. Vejam que neste caso evitamos o uso valores nulos. Um exemplo desta opção é colocar na relação DEPARTAMENT a chave do funcionário que gerencia (MANAGES) o departamento. Vejam que todo departamento deve ter um funcionário como gerente. Agora nossa tabela de DEPARTAMENT aparece com os novos atributos: o id do gerente e a data de início da gerência. A segunda opção seria fazer um merge ou fusão das relações. Vejam que se temos um relacionamento 1:1 podemos combinar os atributos das duas relações e do relacionamento em uma única relação. Essa opção é adequada quando a participação das duas entidades no relacionamento é total. A terceira opção seria por cross-reference ou criação de uma relação para o relacionamento. Essa alternativa basicamente cria uma nova relação com a chave primária das duas relações participantes para prover o relacionamento entre elas. Conhecida como tabela de ligação. PASSO 04 - MAPEAR OS RELACIONAMENTOS BINÁRIOS 1:N Neste momento vamos nos preocupar com os relacionamentos binários 1:N. Para cada relacionamento binário 1:N, vamos identificar a relação S que representa a participação da entidade no lado N do relacionamento. Em seguida, devemos incluir a chave estrangeira da relação T em S. Os atributos do relacionamento 1:N também devem aparecer na relação S. Vejamos um exemplo, os relacionamentos WORKS_FOR, CONTROLS e SUPERVISION no diagrama ER acima. Para WORKS_FOR vamos incluir o número do departamento como chave estrangeira na relação EMPLOYEE, vamos chamá-lo de DNO. Da mesma forma vamos incluir SUPER_SSN para implementar o relacionamento SUPERVION e o número do departamento na tabela de projeto para implementar o relacionamento CONTROLS. Vejam como ficaram as relações EMPLOYEE e PROJECT com essas mudanças. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 65 160 PASSO 05 - MAPEAR OS RELACIONAMENTOS BINÁRIOS N:N O próximo mapeamento deve tomar conta dos relacionamentos M:N. Para cada relacionamento M:N criar uma nova relação para representar o relacionamento. Inclua como chaves estrangeiras da nova relação as chaves primárias das entidades participantes. Inclua ainda os atributos simples do relacionamento na nova tabela. Observe o relacionamento WORKS_ON no diagrama ER. Ele é mapeado pela criação da entidade WORKS_ON no esquema relacional. A chave primária é formada pelas chaves estrangeiras de projeto e empregado, renomeadas respectivamente para PNO e ESSN, respectivamente. O atributo HOURS é representado na relação. PASSO 06 – MAPEAR OS ATRIBUTOS MULTIVALORADOS Vamos agora fazer o mapeamento dos atributos multivalorados. Para cada atributo multivalorado A, crie uma tabela R. Essa relação R vai incluir qualquer atributo pertencente ao conjunto A, além da chave primária da entidade K que tem A como atributo multivalorado sendo chave estrangeira em R. A chave primária da relação é uma combinação de A e K. No nosso modelo temos o exemplo de DEPT_LOCATIONS que deve ser criado. O atributo DLOCATION representa um atributo multivalorado de departamento, que tem como chave primária DNUMBER. A relação DEPT_LOCATIONS fica com a seguinte configuração: Antes de passar para o passo 07, vamos apresentar o esquema relacional completo derivado do diagrama ER apresentado acima. As setas indicam a existência de uma chave estrangeira que garante a integridade referencial. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 66 160 Modelo relacional PASSO 07 – MAPEAR OS RELACIONAMENTOS N-ÁRIOS (N>2) A última etapa é o mapeamento de relacionamentos N-ários. Devemos criar uma nova relação que inclua as chaves primárias de todas as entidades participantes do relacionamento quanto n>2. Adicione também os atributos simples. Observe o diagrama abaixo o resultado do mapeamento do relacionamento SUPPLY em uma relação. Em alguns casos uma nova etapa é incluída. Quando? Quando usamos o conceito de herança e precisamos organizar os tipos e subtipos. Digrama ER de um relacionamento ternário Modelo relacional derivado de um relacionamento ternário. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 67 160 PASSO 08 – MAPEAR HERANÇA E ESPECIALIZAÇÃO Para o mapeamento de um modelo ER que possua especialização ou herança precisamos separar os atributos que fazem parte da entidade pai e os que são exclusivos de cada uma das entidades filhas. Vejamos um exemplo: Para simplificar podemos montar alguns modelos relacionais, a partir do modelo ER acima: Aluno (CPF, Nome,tipo_aluno) Aluno_Ensino_Medio(CPF, Série) Aluno_Graduação (CPF, Período) Aluno_Pós_Graduação (CPF, Tese) O atributo único tipo_aluno, inserido na relação Aluno, assume valores diferentes, de acordo com o tipo do aluno. Essa abordagem é muito flexível, principalmente para hierarquias com restrição de sobreposição. A outra abordagem sugere a criação apenas das entidades filhas. Essa situação é útil quando temos uma especialização total sem sobreposição. Neste caso, todas as instâncias de Aluno devem ser uma de um dos subtipos (Ensino médio, Graduação, Pós-Graduação). Aluno_Ensino_Medio(CPF, Nome, Série) Aluno_Graduação (CPF, Nome, Período) Aluno_Pós_Graduação (CPF, Nome, Tese) Outra forma de construir uma hierarquia de especialização/herança no modelo relacional é criar apenas uma tabela para representar todas as entidades, neste caso, o atributo único e identificador tipo_aluno volta a se fazer necessário. Vejamos: Aluno Ensino Médio Graduação Pós- Graduação Série Período Tese Nome CPF Opção 01 Opção 02 Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 68 160 Aluno (CPF, Nome, tipo_aluno, Série, Período, Tese) Neste caso, o tipo aluno vai definir qual dos atributos subsequentes da relação apresentada acima será diferente de nulo. Representando, portanto, apenas uma das entidades filhas. Neste caso, não temos sobreposição. Um exemplo de instância seria: Aluno (007, Thiago, Pós-graduação, null, null, “Criptomoedas e os concursos públicos”) Uma última possibilidade e mapeamento seria usar uma relação para representar a entidade de nível superior e uma outra para representar todas as entidades de nível inferior. Vejamos como organizaríamos nosso exemplo neste caso. Aluno (CPF, Nome) Aluno_EM_GRAD_POS (CPF, tipo_aluno, Série, Período, Tese) Com isso terminamos o passo a passo para construção de uma modelo relacional a partir de um diagrama entidade relacionamento. Veja a seguir um resumo dos passos que devem ser seguidos. Etapas do Mapeamento de ER em relacional 1. Mapeamento das entidades regulares 2. Mapeamento das entidades fracas 3. Mapeamento dos relacionamentos binários 1:1 4. Mapeamento dos relacionamentos binários 1:N 5. Mapeamento dos relacionamentos binários N:N 6. Mapeamento dos atributos multivalorados 7. Mapeamento dos N-ários (ternário, quaternário, ...) 8. Mapeamento da herança e especialização Opção 03 Opção 04 Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 69 160 Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 70 160 QUESTÕES COMENTADAS QUESTÕES COMENTADAS IADES 1. BANCA: IADES ANO: 2018 ÓRGÃO: CONSELHO FEDERAL DE MEDICINA - CFM PROVA: ANALISTA DE TECNOLOGIA DA INFORMAÇÃO [49] Por muitas vezes, é necessário representar dados em tabelas, que podem ser traduzidas por relações dentro de um banco de dados, como no exemplo a seguir. Com base no exposto e nos dados apresentados na tabela, é correto afirmar que (A) o uso de “Nome” como chave primária é uma boa prática. (B) a tabela em questão pode ser representada pelo seguinte esquema relacional: PESSOA(Nome: string, CPF: string, Idade: integer, Naturalidade: string). (C) “CPF” é uma chave primária e, por isso, é possível que possua valores iguais para diferentes da tabela. (D) o terceiro atributo da segunda tupla possui valor “123.456.789-01”. (E) a tabela representa uma relação de grau 3. Comentário: Sabemos que nome não seria uma boa opção para a chave primária pois podemos ter duas pessoas com o mesmo nome. Logo, a alternativa A está errada. Já a alternativa B descreve de forma correta um esquema relacional, nele temos a descrição das colunas com seus respectivos tipos de dados. Sendo assim, essa é a nossa resposta. CPF é um valor que não pode ser repetido, ou seja, duas pessoas não podem ter o mesmo CPF. Assim, temos um erro na letra C. O terceiro atributo de cada uma das tuplas é a Idade. Desta forma, o valor dele para a segunda tupla é 57. A tabela apresenta grau 4, lembrando que o grau da relação é a quantidade de atributos que fazem parte dela. Gabarito: B Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 71 160 2. BANCA: IADES ANO: 2018 ÓRGÃO: CONSELHO FEDERAL DE MEDICINA - CFM PROVA: ANALISTA DE TECNOLOGIA DA INFORMAÇÃO [34] Assim como a maioria das tecnologias, os bancos de dados existem em diferentes arquiteturas em diferentes aplicações. Acerca das vantagens e desvantagens dos bancos de dados relacionais, assinale a alternativa correta. (A) O MySQL é um sistema de gerenciamento de banco de dados (SGBD) relacional rápido, confiável e escalável. Entretanto, é mais conhecido por não ser um banco SQL de código aberto. (B) Uma das desvantagens dos bancos de dados relacionais é que eles não trabalham com dados estruturados. (C) Os bancos relacionais realizam a normalização dos dados, o que resulta em perda de velocidade. (D) A forte tipagem dos bancos relacionais é suficiente para garantir a integridade e a consistência dos dados. (E) O MySQL é um dos sistemas de mais baixa qualidade, por se tratar de um sistema de código aberto; isso, é pouco utilizado no mercado. Comentário: Vamos analisar as alternativas acima. Primeiramente, sabemos que o MySQL é um SGBD de código aberto. Logo, a letra A está errada. Outro ponto é que possui dados estruturados é uma das características dos bancos de dados relacionais, as linhas, colunas e domínio dos dados que são definidos a priori nos sinalizam tal fato. Sendo assim a alternativa B também está incorreta. A normalização vai reduzir a redundância do sistema e as anomalias de atualização, contudo ela vai nos levar a necessidade de fazermos junção entre tabelas para consultarmos os dados em conjunto. Isso pode implicar em perda de velocidade. Acho que a alternativa extrapolou um pouco generalizando tal fato, mas essa é a nossa resposta. Para garantir a integridade dos dados usamos as restrições de chave, integridade referencial, check, entre outras. A restrição de tipo é apenas uma parte da restrição de domínio. Logo, a alternativa D está incorreta. O MySQL foi durante muito tempo o SGBD de código aberto mais utilizado pela comunidade de software livre. Ele perdeu espaço depois que a Oracle comprou o MySQL. O código do sistema é muito bem produzido e testado. Logo, temos mais uma alternativa errada. Resumindo, podemos encontrar nossa resposta na alternativa C. Gabarito: C Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 ==11f7eb== 72 160 3. BANCA: IADES ANO: 2017 ÓRGÃO: FUNDAÇÃO HEMOCENTRO DE BRASÍLIA – DF PROVA: TECNOLOGIA DA INFORMAÇÃO [34] Considere uma tabela relacional “R” e seus atributos definidos por R (F1,F2,F3,F4,F5) com dependências funcionais F1, F2, F3 → F4,F5 e F5 → F1,F2. Com base nessas informações, assinale a alternativa que contém o número total de superchaves distintas para essa tabela. (A) 2 (B) 7 (C) 8 (D) 10 (E) 12 Comentário: Para responder a essa questão temos que ter em mente a definição de superchave: Uma superchaveé um conjunto de um ou mais atributos que, tomando coletivamente, permite-nos identificar unicamente uma entidade no conjunto de entidades. Agora que sabemos dessa informação podemos montar conjuntos distintos de atributos que possuem essas características. Para simplificar vamos começar pelo conjunto dos 5 atributos e, em seguinte, vamos compondo os demais conjuntos. A grande sacada é partir das dependências funcionais e perceber que F5 determina F1, F2, logo F5 pode ser superchave em conjunto com F3. Vamos lá ... (F1, F2, F3, F4, F5) --- superchave com 5 atributos (F1, F2, F3, F4), (F1, F2, F3, F5), (F5, F3, F2, F4), (F5, F3, F1, F4) --- super chave com 4 atributos (F1, F2, F3), (F5, F3, F1), (F5, F3, F2), (F5, F3, F4) - super chave com 3 atributos (F5, F3) - superchave com 2 atributos Vejam que no total temos 10 possíveis superchaves para a relação em questão. Sendo a nossa resposta observada na alternativa D. Gabarito: D 4. BANCA: IADES ANO: 2017 ÓRGÃO: FUNDAÇÃO HEMOCENTRO DE BRASÍLIA – DF PROVA: TÉCNICO DE INFORMÁTICA Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 73 160 [32] Assinale a alternativa cuja superchave é válida para uma tabela relacional com atributos definidos por R(A, B, C, D, E) e com dependências funcionais AB → C, DE → B e CD → E. a) ABC b) DEB c) CDE d) ACD e) CDEB Comentário: Precisamos descobrir um conjunto de atributos que determinem todos os outros atributos da tabela. Vejam que AB→C e CD→E, logo ABD → E, C. Sendo assim temos a nossa resposta na alternativa D. Vejam a alternativa A para termos um exemplo que não satisfaz a caraterística de chave. ABC não determina E nem D, logo não pode ser chave. Você pode treinar com as demais alternativas para entender porque elas não podem ser superchave da relação. Gabarito: D 5. BANCA: IADES ANO: 2017 ÓRGÃO: FUNDAÇÃO HEMOCENTRO DE BRASÍLIA – DF PROVA: TÉCNICO DE INFORMÁTICA [33] Com base no conceito de normalização de banco de dados e na tabela apresentada, é correto afirmar que a tabela está a) somente na 1FN b) somente na 2FN. c) somente na 1FN e 2FN. d) na 1FN, 2FN e 3FN. e) somente na 3FN. Comentário: Analisando a figura acima podemos observar de forma explícita o conceito de dependência transitiva. Tal fato fere a terceira forma normal. Ao analisar os atributos, podemos ainda perceber que todos eles são atômicos, ou seja, estão de acordo com a primeira forma normal. E ainda, é possível verificar Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 74 160 que a chave primária é a matrícula, que é uma chave simples, desta forma não temos problemas com a segunda forma normal. Assim, nossa resposta está na alternativa C. Gabarito: C 6. BANCA: IADES ANO: 2014 ÓRGÃO: FUNPRESP-EXE PROVA: ASSESSOR TÉCNICO – ANÁLISE DE SISTEMAS [40] Analise as tabelas de banco de dados seguintes Quanto à cardinalidade das tabelas apresentadas, assinale a alternativa correta. (A) 1:1. (B) 1:M. (C) 1:N. (D) N:N. (E) M:N. Comentário: Se você pensar nos seu caso na sua empresa. Geralmente um funcionário possui apenas um login nos sistemas e um login deve estar associado a apenas um funcionário. Logo, temos a cardinalidade máxima de 1:1 e a nossa resposta na alternativa A. Gabarito: A 7. BANCA: IADES ANO: 2016 ÓRGÃO: PC-DF PROVA: PERITO CRIMINAL - CIÊNCIA DA COMPUTAÇÃO/INFORMÁTICA [65] O modelo relacional estabeleceu-se como o primeiro modelo de dados para aplicações comerciais. Existe uma base teórica indispensável para os bancos de dados relacionais, que possibilita um processamento eficiente das necessidades de informações dos respectivos usuários. A respeito dessa base teórica, assinale a alternativa correta. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 75 160 a) A álgebra relacional é uma linguagem de consultas procedural e possui operações definidas em termos das respectivas operações fundamentais. b) As operações binárias da álgebra relacional são union, select e rename. c) A operação binária project da álgebra relacional permite a seleção de tuplas que satisfaçam determinada relação. d) A operação primária produto cartesiano da álgebra relacional permite associar informações de dois predicados quaisquer. e) Uma relação do banco de dados, uma relação constante e uma relação de conjuntos são os três tipos existentes de expressões básicas na álgebra relacional. Comentário: Vamos comentar cada uma das alternativas acima. A Álgebra Relacional é uma linguagem de consulta procedural, ou seja, o usuário dá as instruções ao sistema para que ele realize uma sequência de operações na base de dados para calcular o resultado desejado. Há seis operações fundamentais na álgebra relacional: Seleção, Projeção, Produto cartesiano, União, Diferença entre conjuntos, Renomear. Sendo assim, podemos marcar nossa resposta na alternativa A. Dessas operações apresentadas acima são consideradas binárias o produto cartesiano, a união e a diferença. As demais são operações unárias. Isso invalida as alternativas B e C. A operação de produto cartesiano permite associar informações de duas relações e não de dois predicados com está dito na alternativa D. Sobre a alternativa E, não existe essa categorização para expressões da álgebra relacional. Gabarito: A 8. BANCA: IADES ANO: 2014 ÓRGÃO: TRE-PA PROVA: ANALISTA JUDICIÁRIO - ANÁLISE DE SISTEMAS [50] Um banco de dados relacional é aquele que utiliza maneiras de armazenar, manipular e recuperar dados unicamente na forma de tabelas. A respeito de um banco de dados relacional, assinale a alternativa correta. a) Todo dado pode ser acessado lógica e unicamente usando-se o nome da tabela, o valor da chave primária e o nome da coluna. b) As informações podem ser representadas de forma hierárquica, como em uma estrutura de dados em árvore. c) Dados inexistentes são representados pelo valor zero, quando numéricos, ou pelo valor branco, quando caractere. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 76 160 d) Operações de manipulação de dados em tabelas devem ser realizadas uma linha de cada vez. e) Em uma tabela do modelo relacional, cada linha deve possuir, em todas as colunas, o mesmo tipo de dado. Comentário: Vamos analisar as alternativas propostas pela questão. A letra A está correta, veja que para acessar um campo de uma tabela você precisa primeiramente da informação sobre qual tabela você vai acessar. Em seguida, é necessária uma chave que nos leve para a linha específica na qual nossa informação aparece. De posse desta tupla podemos projetar sobre uma coluna para selecionarmos a coluna na qual o campo está armazenado. Na alternativa B, temos a descrição do modelo hierárquico. O modelo relacional é estruturado em um conjunto de relações. Logo, errada! Dados inexistentes são representados pelo valor nulo ou NULL que significa que o campo não possui nenhum valor associado ao domínio específico definido para o mesmo. Logo, temos mais uma alternativa errada. As operações de manipulação de dados podem ser realizadas individualmente ou em bloco. Basta lembrar que podemos usar um UPDATE para atualizar várias linhas da tabela nomesmo comando. Sendo assim, a alternativa D também está errada. Gabarito: A 9. BANCA: IADES ANO: 2013 ÓRGÃO: EBSERH PROVA: ANALISTA DE TECNOLOGIA DA INFORMAÇÃO - BANCO DE DADOS [27] A Normalização é um processo matemático formal, que tem seus fundamentos na teoria dos conjuntos e visa substituir um conjunto de entidades e relacionamentos por um outro. As Formas Normais são utilizadas, nesse processo, para tornar o modelo de dados bastante estável e sujeito a poucas manutenções. Sobre a aplicação correta das Formas Normais (FN), assinale a alternativa correta. a) Para verificar a questão da variação temporal de certos atributos e criar relacionamentos 1:N, entre a entidade original e a entidade criada por questões de histórico, aplica-se aplica a 1FN. b) Aplica-se a 2FN para decompor a entidade em uma ou mais entidades, sem grupos repetitivos. c) Para eliminar os atributos obtidos por meio de cálculos realizados, a partir de outros atributos, aplica-se a 4FN. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 77 160 d) A 2FN só é aplicável em entidades que possuam chaves primárias e candidatas concatenadas. e) A 5FN utiliza o conceito de dependência transitiva. Comentário: Veja que se fossemos armazenar os diversos preços de um produto que variam ao longo do tempo em apenas um campo da tabela acabaríamos com um atributo multivalorado. Para resolver isso, separamos esse atributo (preço) em uma tabela específica e resolvemos o problema da primeira forma normal. Sendo assim, essa é a nossa resposta. A segunda forma normal é usada para resolver problemas de dependência parcial da chave primária. Questões de grupos repetidos, sejam compostos ou multivalorados, são resolvidos pela primeira forma normal. Sendo assim, a alternativa B está incorreta. Os atributos obtidos por meio de cálculo podem ser vistos como dependentes transitivos dos atributos usados para calculá-los. Assim, para resolver problemas deste tipo aplicamos a terceira forma normal e não a quarta como sugere a alternativa C. A segunda forma normal só é aplicada quando temos chaves compostas. Sendo assim, a alternativa D está errada. Por fim, a quinta forma normal está associada ao conceito de dependência de junção e não ao de dependência transitiva como sugere a alternativa E. Nossa resposta, portanto, pode ser visualizada na letra A. Gabarito: A 10. BANCA: IADES ANO: 2010 ÓRGÃO: CFA PROVA: ADMINISTRADOR DE BANCO DE DADOS [23] O modelo de dados relacional representa os dados da base de dados como uma coleção de relações. Informalmente, cada relação pode ser entendida como uma tabela ou um simples arquivo de registros, foi introduzido por Codd (1970) e é considerado o mais simples, com estrutura de dados uniforme, e também o mais formal existente. Considerando os conceitos relacionados a este modelo assinale a alternativa correta. a) Em sua terminologia, a linha é chamada de atributo, a coluna é chamada de tupla e a tabela de relação. b) O domínio é o tipo de dado que especifica o tipo dos valores que podem aparecer em uma coluna. c) O grau de uma relação é o número de tuplas da relação. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 78 160 d) Uma relação é definida como sendo um conjunto de atributos entre duas ou mais entidades. Comentário: Sabemos que cada linha de uma tabela é uma tupla e cada coluna corresponde a um atributo. Assim, a alternativa A está errada. Já na alternativa B temos uma definição correta de domínio, ele limita os valores possíveis para uma determinada coluna da tabela. Essa limitação pode ser feita por meio de um tipo de dado e pode ainda ser restringida por meio da clausula check. Logo, nossa resposta encontra-se na alternativa B. O grau de uma relação é o número de atributos associados a relação, podem variar de 0 até n. Isso mesmo, a relação sem atributos é considerada a relação nula (nullary ou empty). Uma relação é um conjunto de atributos que define as colunas de uma tabela. Entidade é um conceito do modelo ER que vimos na aula passada. Finalizando, temos nossa resposta na alternativa B. Gabarito: B 11. BANCA: IADES ANO: 2010 ÓRGÃO: CFA PROVA: ADMINISTRADOR DE BANCO DE DADOS [26] No projeto lógico, as restrições são importantes para garantir a integridade de um banco de dados. Assinale a alternativa que contém as restrições de integridade normalmente mais utilizadas. a) Integridade referencial, unicidade de chave e integridade de identidade. b) Integridade de relacionamento, integridade de chave e integridade referencial. c) Integridade semântica, integridade de chave e integridade de relacionamento. d) Unicidade referencial, unicidade de chave e unicidade semântica. Comentário: Vamos aproveitar a questão para revisar as integridades descritas no modelo relacional: • Integridade de Domínio (dom(A)) • Integridade de Chave (Unicidade) • Integridade de Vazio (def if(x!=null?x==null)) • Integridade de Entidade (PK != null) • Integridade Referencial (FK == PK(Chave Candidata) || FK == null) • Integridade Semântica (assertions ou triggers) Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 79 160 Ao analisar a lista acima podemos marcar nossa resposta na alternativa A. Agora avalie as demais alternativas riscando as restrições que não existem no modelo. Gabarito: A 12. BANCA: IADES ANO: 2010 ÓRGÃO: CFA PROVA: ADMINISTRADOR DE BANCO DE DADOS [45] A normalização é um processo de refinamento do esquema do Banco de Dados, visando eliminar possíveis redundâncias, sanar dependências parciais entre atributos e reduzir os problemas com alterações, inclusões e exclusões. As etapas do processo são conhecidas como formas normais. Com relação aos conceitos de normalização, julgue os itens a seguir. I Podem ser utilizados dois tipos de abordagens/metodologias no processo de normalização (top-down e bottom-up). II Só existem 4 (quatro) formas normais. III A primeira forma normal (1FN) elimina os grupos repetitivos. IV A segunda forma normal (2FN) elimina as dependências transitórias. A quantidade de itens certos é igual a a) 1. b) 2. c) 3. d) 4. Comentário: A abordagem de normalização procura reduzir as anomalias de atualização e a redundâncias nos modelos relacionais. Esse processo é feito de acordo com uma sequência bem definidas e interdependentes de etapas, conhecidas como forma normal. No total temos 6 formas normais (1FN, 2FN, 3FN, FNBC, 4FN e 5FN). Desta forma, podemos observar que as afirmações I e II estão erradas. Agora vamos analisar as afirmações III e IV. Veja que a primeira forma normal eliminas os grupos repetitivos ou multivalorados. Já a segunda forma normal elimina dependências parciais ou transitórias. Esse segundo termo é pouco utilizado mas pode ser admitido como correto. Desta forma, ambas as afirmações estão certas. E a nossa resposta pode ser marcada na letra B. Gabarito: B Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 80 160 13. BANCA: IADES ANO: 2010 ÓRGÃO: CFA PROVA: ADMINISTRADOR DE BANCO DE DADOS [46] Sobre o processo de normalização e os conceitos relacionados às três primeiras formas normais podemos afirmar que a) a dependênciafuncional é um conceito aplicado a todos os modelos de bancos de dados. b) no processo de normalização, temos que: eliminar os grupos repetitivos (1FN), depois eliminar as dependências funcionais (2FN) e, por último, eliminar as dependências transitivas (3 FN). c) a dependência funcional transitiva ocorre quando um atributo ou conjunto de atributos depende apenas de parte dos valores de uma chave primária. d) A dependência funcional parcial ocorre quando um atributo ou conjunto de atributos depende de outro atributo ou conjunto de atributos que não faz parte de uma chave primária. Comentário: Vamos comentar cada uma das alternativas acima. Me permitam antes fazer um rápido comentário. Essa questão não foi redigida com o devido cuidado no uso dos termos. Vejamos as alternativas. Na alternativa A fala que a dependência funcional é um conceito aplicado a todos os modelos de banco de dados. Não é verdade! DF é um conceito associado aos bancos de dados relacionais. Na alternativa B temos uma definição muito alto nível das três primeiras formas normais. Vejam especificamente que a segunda forma está definida como uma maneira de eliminar dependências funcionais, acredito que faltou falar que são DF parciais. Mesmos assim, essa alternativa foi dada como resposta e é de fato a menos errada dentre as alternativas. Já as alternativas C e D trocam as definições da segunda e terceira formas normais. Logo, ambas estão incorretas. Gabarito: B 14. BANCA: IADES ANO: 2010 ÓRGÃO: CFA PROVA: ADMINISTRADOR DE BANCO DE DADOS [47] Assinale a alternativa incorreta em relação ao modelo de Bancos de Dados Relacionais. a) Sua base está na teoria de conjuntos e a álgebra relacional. b) Este modelo não dispõe de caminhos pré-definidos para se acessar os dados. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 81 160 c) A estrutura fundamental do modelo é a relação (tabela), que pode ter várias dimensões. d) O modelo implementa estruturas de dados baseadas em relações. Comentário: Observe que a questão pede a alternativa incorreta. Sabemos que o modelo relacional está baseado na teoria dos conjuntos e na álgebra relacional. Que sua estrutura fundamental é uma relação ou tabela. Logo, podemos afirmar que as alternativas A, C e D estão corretas. Já a letra B possui um equívoco, pois para acessar os dados você precisa do nome da tabela, da tupla e do campo especificado. Esse pode ser considerado um caminho para acessar qualquer dado. Sendo assim, temos nossa resposta na alternativa B. Gabarito: B 15. BANCA: IADES ANO: 2014 ÓRGÃO: EMPRESA BRASILEIRA DE SERVIÇOS HOSPITALARES PROVA: ANALISTA DE TECNOLOGIA DA INFORMAÇÃO – PROCESSOS [30] Para se estabelecer relações entre linhas de tabelas de um banco de dados do tipo relacional, é importante entender o conceito de chave. Acerca desse tema, é correto afirmar que nesse tipo de banco de dados, há pelo menos três tipos de chaves, que são: (A) primária, alternativa e estrangeira. (B) estrangeira, nativa e múltipla. (C) externa, alternativa e secundária. (D) múltipla, estrangeira e nativa. (E) primária, importada e alternativa. Comentário: Dentro dos conceitos de chaves do modelo relacional temos as: superchaves, chaves, chaves primárias, chaves secundárias (ou alternativas) e chaves estrangeiras. Assim, podemos encontrar uma lista consistente de opções na alternativa A. Gabarito: A 16. BANCA: IADES ANO: 2010 ÓRGÃO: CFA PROVA: ADMINISTRADOR DE BANCO DE DADOS Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 82 160 [32] Considerando os conceitos relacionados Banco de Dados e a arquitetura de um Sistema Gerenciador de Banco de Dados (SGBD), julgue os itens a seguir. I Toda informação em um banco de dados relacional é apresentada, no nível lógico, por valores em tabelas. II Um banco de dados é uma coleção de dados operacionais, logicamente inter- relacionados e armazenados de maneira dependente dos programas que o utiliza. III Um SGBD relacional deve ter uma linguagem para definição, detalhamento e manipulação de dados. IV Um SGBD relacional não pode permitir valores nulos em nenhum campo de suas tabelas. A quantidade de itens certos é igual a a) 1. b) 2. c) 3. d) 4. Comentário: Vamos tecer rápidos comentários sobre cada afirmação: I. Verdade! Toda informação está organizada logicamente em tabelas. II. Falso! Lembre-se do conceito de independência de dados e aplicação presentes nos bancos de dados. Ele é plenamente válido aqui. III. Correto. Um banco de dado deve ter uma linguagem que permita a definição e manipulação de dados. IV. Sabemos que podemos ter valores nulos associados a campos da tabela, desde que os atributos sejam definidos de forma a aceitar esse valor. (NULL). Assim, as alternativas I e III estão corretas, e podemos marcar nossa resposta na alternativa B. Gabarito: B 17. BANCA: IADES ANO: 2010 ÓRGÃO: CFA PROVA: ADMINISTRADOR DE BANCO DE DADOS [34] Considerando os conceitos relacionados a Banco de Dados e sua integridade, julgue os itens a seguir. I Uma chave primária não pode desempenhar a função de identificação única. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 83 160 II Um modelo conceitual de banco de dados representa a estrutura de dados de um Banco de Dados, com os recursos e particularidades de um Sistema de Gerenciamento de Banco de Dados específico. III Entidade pode ser definida como um objeto que existe no mundo real, com uma identificação distinta e com significado próprio. IV Uma das regras da integridade do modelo relacional afirma que nenhum campo que participe da chave primária de uma tabela básica pode aceitar valores nulos. A quantidade de itens certos é igual a a) 1. b) 2. c) 3. d) 4. Comentário: Vejamos os comentários sobre cada uma das alternativas: I. A função da chave primária em uma tabela é justamente de identificar univocamente cada uma das suas tuplas. Lembrando que a chave primária é uma superchave mínima escolhida entre as chaves candidatas. Logo, a afirmação I está incorreta. II. Errado! O modelo conceitual é independente de SGBD! III. Exato! Entidade são os nomes em uma descrição textual de requisitos de dados, elas representam objetos, sejam reais ou imaginários, com uma identificação distinta e possuem um significado próprio. IV. Correto! A restrição de integridade de entidade (PK != null) – Garante que a chave primária de uma entidade não receba o valor nulo. Sendo assim temos as afirmações III e IV como corretas e nossa resposta pode ser encontrada na alternativa B. Gabarito: B Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 84 160 EXERCÍCIOS IADES 1. BANCA: IADES ANO: 2018 ÓRGÃO: CONSELHO FEDERAL DE MEDICINA - CFM PROVA: ANALISTA DE TECNOLOGIA DA INFORMAÇÃO [49] Por muitas vezes, é necessário representar dados em tabelas, que podem ser traduzidas por relações dentro de um banco de dados, como no exemplo a seguir. Com base no exposto e nos dados apresentados na tabela, é correto afirmar que (A) o uso de “Nome” como chave primária é uma boa prática. (B) a tabela em questão pode ser representada pelo seguinte esquema relacional:PESSOA(Nome: string, CPF: string, Idade: integer, Naturalidade: string). (C) “CPF” é uma chave primária e, por isso, é possível que possua valores iguais para diferentes da tabela. (D) o terceiro atributo da segunda tupla possui valor “123.456.789-01”. (E) a tabela representa uma relação de grau 3. 2. BANCA: IADES ANO: 2018 ÓRGÃO: CONSELHO FEDERAL DE MEDICINA - CFM PROVA: ANALISTA DE TECNOLOGIA DA INFORMAÇÃO [34] Assim como a maioria das tecnologias, os bancos de dados existem em diferentes arquiteturas em diferentes aplicações. Acerca das vantagens e desvantagens dos bancos de dados relacionais, assinale a alternativa correta. (A) O MySQL é um sistema de gerenciamento de banco de dados (SGBD) relacional rápido, confiável e escalável. Entretanto, é mais conhecido por não ser um banco SQL de código aberto. (B) Uma das desvantagens dos bancos de dados relacionais é que eles não trabalham com dados estruturados. (C) Os bancos relacionais realizam a normalização dos dados, o que resulta em perda de velocidade. (D) A forte tipagem dos bancos relacionais é suficiente para garantir a integridade e a consistência dos dados. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 85 160 (E) O MySQL é um dos sistemas de mais baixa qualidade, por se tratar de um sistema de código aberto; isso, é pouco utilizado no mercado. 3. BANCA: IADES ANO: 2017 ÓRGÃO: FUNDAÇÃO HEMOCENTRO DE BRASÍLIA – DF PROVA: TECNOLOGIA DA INFORMAÇÃO [34] Considere uma tabela relacional “R” e seus atributos definidos por R (F1,F2,F3,F4,F5) com dependências funcionais F1, F2, F3 → F4,F5 e F5 → F1,F2. Com base nessas informações, assinale a alternativa que contém o número total de superchaves distintas para essa tabela. (A) 2 (B) 7 (C) 8 (D) 10 (E) 12 4. BANCA: IADES ANO: 2017 ÓRGÃO: FUNDAÇÃO HEMOCENTRO DE BRASÍLIA – DF PROVA: TÉCNICO DE INFORMÁTICA [32] Assinale a alternativa cuja superchave é válida para uma tabela relacional com atributos definidos por R(A, B, C, D, E) e com dependências funcionais AB → C, DE → B e CD → E. a) ABC b) DEB c) CDE d) ACD e) CDEB 5. BANCA: IADES ANO: 2017 ÓRGÃO: FUNDAÇÃO HEMOCENTRO DE BRASÍLIA – DF PROVA: TÉCNICO DE INFORMÁTICA Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 86 160 [33] Com base no conceito de normalização de banco de dados e na tabela apresentada, é correto afirmar que a tabela está a) somente na 1FN b) somente na 2FN. c) somente na 1FN e 2FN. d) na 1FN, 2FN e 3FN. e) somente na 3FN. 6. BANCA: IADES ANO: 2014 ÓRGÃO: FUNPRESP-EXE PROVA: ASSESSOR TÉCNICO – ANÁLISE DE SISTEMAS [40] Analise as tabelas de banco de dados seguintes Quanto à cardinalidade das tabelas apresentadas, assinale a alternativa correta. (A) 1:1. (B) 1:M. (C) 1:N. (D) N:N. (E) M:N. 7. BANCA: IADES ANO: 2016 ÓRGÃO: PC-DF PROVA: PERITO CRIMINAL - CIÊNCIA DA COMPUTAÇÃO/INFORMÁTICA [65] O modelo relacional estabeleceu-se como o primeiro modelo de dados para aplicações comerciais. Existe uma base teórica indispensável para os bancos de dados relacionais, que possibilita um processamento eficiente das necessidades de informações dos respectivos usuários. A respeito dessa base teórica, assinale a alternativa correta. a) A álgebra relacional é uma linguagem de consultas procedural e possui operações definidas em termos das respectivas operações fundamentais. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 87 160 b) As operações binárias da álgebra relacional são union, select e rename. c) A operação binária project da álgebra relacional permite a seleção de tuplas que satisfaçam determinada relação. d) A operação primária produto cartesiano da álgebra relacional permite associar informações de dois predicados quaisquer. e) Uma relação do banco de dados, uma relação constante e uma relação de conjuntos são os três tipos existentes de expressões básicas na álgebra relacional. 8. BANCA: IADES ANO: 2014 ÓRGÃO: TRE-PA PROVA: ANALISTA JUDICIÁRIO - ANÁLISE DE SISTEMAS [50] Um banco de dados relacional é aquele que utiliza maneiras de armazenar, manipular e recuperar dados unicamente na forma de tabelas. A respeito de um banco de dados relacional, assinale a alternativa correta. a) Todo dado pode ser acessado lógica e unicamente usando-se o nome da tabela, o valor da chave primária e o nome da coluna. b) As informações podem ser representadas de forma hierárquica, como em uma estrutura de dados em árvore. c) Dados inexistentes são representados pelo valor zero, quando numéricos, ou pelo valor branco, quando caracter. d) Operações de manipulação de dados em tabelas devem ser realizadas uma linha de cada vez. e) Em uma tabela do modelo relacional, cada linha deve possuir, em todas as colunas, o mesmo tipo de dado. 9. BANCA: IADES ANO: 2013 ÓRGÃO: EBSERH PROVA: ANALISTA DE TECNOLOGIA DA INFORMAÇÃO - BANCO DE DADOS [27] A Normalização é um processo matemático formal, que tem seus fundamentos na teoria dos conjuntos e visa substituir um conjunto de entidades e relacionamentos por um outro. As Formas Normais são utilizadas, nesse processo, para tornar o modelo de dados bastante estável e sujeito a poucas manutenções. Sobre a aplicação correta das Formas Normais (FN), assinale a alternativa correta. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 88 160 a) Para verificar a questão da variação temporal de certos atributos e criar relacionamentos 1:N, entre a entidade original e a entidade criada por questões de histórico, aplica-se aplica a 1FN. b) Aplica-se a 2FN para decompor a entidade em uma ou mais entidades, sem grupos repetitivos. c) Para eliminar os atributos obtidos por meio de cálculos realizados, a partir de outros atributos, aplica-se a 4FN. d) A 2FN só é aplicável em entidades que possuam chaves primárias e candidatas concatenadas. e) A 5FN utiliza o conceito de dependência transitiva. 10. BANCA: IADES ANO: 2010 ÓRGÃO: CFA PROVA: ADMINISTRADOR DE BANCO DE DADOS [23] O modelo de dados relacional representa os dados da base de dados como uma coleção de relações. Informalmente, cada relação pode ser entendida como uma tabela ou um simples arquivo de registros, foi introduzido por Codd (1970) e é considerado o mais simples, com estrutura de dados uniforme, e também o mais formal existente. Considerando os conceitos relacionados a este modelo assinale a alternativa correta. a) Em sua terminologia, a linha é chamada de atributo, a coluna é chamada de tupla e a tabela de relação. b) O domínio é o tipo de dado que especifica o tipo dos valores que podem aparecer em uma coluna. c) O grau de uma relação é o número de tuplas da relação. d) Uma relação é definida como sendo um conjunto de atributos entre duas ou mais entidades. 11. BANCA: IADES ANO: 2010 ÓRGÃO: CFA PROVA: ADMINISTRADOR DE BANCO DE DADOS [26] No projeto lógico, as restrições são importantes para garantir a integridade de um banco de dados. Assinale a alternativa que contém as restrições de integridade normalmente mais utilizadas. a) Integridade referencial, unicidade de chave e integridade de identidade. b) Integridade de relacionamento, integridadede chave e integridade referencial. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 89 160 c) Integridade semântica, integridade de chave e integridade de relacionamento. d) Unicidade referencial, unicidade de chave e unicidade semântica. 12. BANCA: IADES ANO: 2010 ÓRGÃO: CFA PROVA: ADMINISTRADOR DE BANCO DE DADOS [45] A normalização é um processo de refinamento do esquema do Banco de Dados, visando eliminar possíveis redundâncias, sanar dependências parciais entre atributos e reduzir os problemas com alterações, inclusões e exclusões. As etapas do processo são conhecidas como formas normais. Com relação aos conceitos de normalização, julgue os itens a seguir. I Podem ser utilizados dois tipos de abordagens/metodologias no processo de normalização (top-down e bottom-up). II Só existem 4 (quatro) formas normais. III A primeira forma normal (1FN) elimina os grupos repetitivos. IV A segunda forma normal (2FN) elimina as dependências transitórias. A quantidade de itens certos é igual a a) 1. b) 2. c) 3. d) 4. 13. BANCA: IADES ANO: 2010 ÓRGÃO: CFA PROVA: ADMINISTRADOR DE BANCO DE DADOS [46] Sobre o processo de normalização e os conceitos relacionados às três primeiras formas normais podemos afirmar que a) a dependência funcional é um conceito aplicado a todos os modelos de bancos de dados. b) no processo de normalização, temos que: eliminar os grupos repetitivos (1FN), depois eliminar as dependências funcionais (2FN) e, por último, eliminar as dependências transitivas (3 FN). c) a dependência funcional transitiva ocorre quando um atributo ou conjunto de atributos depende apenas de parte dos valores de uma chave primária. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 90 160 d) A dependência funcional parcial ocorre quando um atributo ou conjunto de atributos depende de outro atributo ou conjunto de atributos que não faz parte de uma chave primária. 14. BANCA: IADES ANO: 2010 ÓRGÃO: CFA PROVA: ADMINISTRADOR DE BANCO DE DADOS [47] Assinale a alternativa incorreta em relação ao modelo de Bancos de Dados Relacionais. a) Sua base está na teoria de conjuntos e a álgebra relacional. b) Este modelo não dispõe de caminhos pré-definidos para se acessar os dados. c) A estrutura fundamental do modelo é a relação (tabela), que pode ter várias dimensões. d) O modelo implementa estruturas de dados baseadas em relações. 15. BANCA: IADES ANO: 2014 ÓRGÃO: EMPRESA BRASILEIRA DE SERVIÇOS HOSPITALARES PROVA: ANALISTA DE TECNOLOGIA DA INFORMAÇÃO – PROCESSOS [30] Para se estabelecer relações entre linhas de tabelas de um banco de dados do tipo relacional, é importante entender o conceito de chave. Acerca desse tema, é correto afirmar que nesse tipo de banco de dados, há pelo menos três tipos de chaves, que são: (A) primária, alternativa e estrangeira. (B) estrangeira, nativa e múltipla. (C) externa, alternativa e secundária. (D) múltipla, estrangeira e nativa. (E) primária, importada e alternativa. 16. BANCA: IADES ANO: 2010 ÓRGÃO: CFA PROVA: ADMINISTRADOR DE BANCO DE DADOS [32] Considerando os conceitos relacionados Banco de Dados e a arquitetura de um Sistema Gerenciador de Banco de Dados (SGBD), julgue os itens a seguir. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 91 160 I Toda informação em um banco de dados relacional é apresentada, no nível lógico, por valores em tabelas. II Um banco de dados é uma coleção de dados operacionais, logicamente inter- relacionados e armazenados de maneira dependente dos programas que o utiliza. III Um SGBD relacional deve ter uma linguagem para definição, detalhamento e manipulação de dados. IV Um SGBD relacional não pode permitir valores nulos em nenhum campo de suas tabelas. A quantidade de itens certos é igual a a) 1. b) 2. c) 3. d) 4. 17. BANCA: IADES ANO: 2010 ÓRGÃO: CFA PROVA: ADMINISTRADOR DE BANCO DE DADOS [34] Considerando os conceitos relacionados a Banco de Dados e sua integridade, julgue os itens a seguir. I Uma chave primária não pode desempenhar a função de identificação única. II Um modelo conceitual de banco de dados representa a estrutura de dados de um Banco de Dados, com os recursos e particularidades de um Sistema de Gerenciamento de Banco de Dados específico. III Entidade pode ser definida como um objeto que existe no mundo real, com uma identificação distinta e com significado próprio. IV Uma das regras da integridade do modelo relacional afirma que nenhum campo que participe da chave primária de uma tabela básica pode aceitar valores nulos. A quantidade de itens certos é igual a a) 1. b) 2. c) 3. d) 4. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 92 160 GABARITO 1. B 2. C 3. D 4. D 5. C 6. A 7. A 8. A 9. A 10. B 11. A 12. B 13. B 14. B 15. A 16. B 17. B Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 93 160 QUESTÕES COMENTADAS FCC Aproveitamos esse espaço para dar continuidade ao processo de aprendizado comentando diversas questões da FCC dos últimos anos. Os comentários seguem logo abaixo da questão para que você possa fazer uma rápida revisão do conteúdo. Caso queira treinar apenas a resolução das questões, um bloco com as mesmas questões sem os comentários é apresentado em sequência. Qualquer dúvida estou às ordens, forte abraço e bons estudos! Tecnologia da Informação aplicada à Auditoria Tributária Atenção: Para responder às questões de números 61 a 68, considere as informações abaixo. Suponha que um Auditor foi encarregado de modelar e criar um banco de dados para um pequeno sistema de pedidos de produtos de informática. Para realizar essa tarefa, desenvolveu o modelo mostrado na figura abaixo. Após criar o modelo, implementou o banco de dados em um Sistema de Gerenciamento de Banco de Dados, criou as tabelas e cadastrou as seguintes informações: Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 94 160 18. Ano: 2018 Banca: FCC Órgão: SEFAZ-SC Cargo: Auditoria e Fiscalização Questão: 61. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 95 160 Considere que o Auditor digitou um comando para inserir os valores abaixo na tabela ItemPedido. idItePed qtdItePed idPed idPro 2 500 7 14 A mensagem correta que traduzirá o resultado da operação é (A) you have an error in your SQL syntax. (B) out of range value for column 'qtdItePed'. (C) cannot add a child row: a foreign key constraint fails. (D) duplicate entry '2-7' for key 'PRIMARY'. (E) register successfully - 1 row(s) affected. Comentários: Observe que essa questão trata de umadas características principais de banco de dados relacionais: duas linhas não podem ter valores idênticos na chave primário. Na questão o Auditor tenta inserir uma nova linha cujo valor da chave primária, neste caso uma chave primária composta pelos atributos IdItePed e idPed, já existe entre os registros da tabela. Logo, o sistema de gerenciamento de banco de dados, ao tentar inserir essa linha vai apresentar um erro ao usuário (duplicate entry '2-7' for key 'PRIMARY'). Apenas por curiosidade as mensagens acima estão associadas ao MySQL. Gabarito: D. 19. Ano: 2018 Banca: FCC Órgão: SEFAZ-SC Cargo: Auditoria e Fiscalização Questão: 62. No modelo apresentado a entidade ItemPedido (A) possui chave primária composta, mas não possui chave estrangeira, logo, não garante integridade referencial. (B) possui uma chave primária composta pelos atributos idItePed e idPed, sendo que os atributos qtdItePed e idPro possuem dependência funcional completa com relação à chave primária. (C) deveria conter o campo PreUniPro, pois o preço unitário do produto deve ser incluído em cada item do pedido. (D) está relacionada com as entidades Pedido e Produto usando a notação Integrated DEFinition for Information Modelling − IDEF1X. (E) possui relação com cardinalidade n:n com a entidade Produto e 1:n com a entidade Pedido. Comentário: Essa questão vale a pena comentar todas as alternativas. Veja que na letra A, o examinador considerou corretamente a existência de uma chave primária composta. Contudo, ele errou ao afirmar que não existem chaves estrangeiras. Observe no diagrama original que existem duas chaves estrangeiras (IdPed e Idpro). Elas serão responsáveis por garantir a integridade referencial. Logo, essa não é a nossa resposta. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 96 160 A alternativa B fala que a chave primária composta é dada por idItePed e idPed e que os demais atributos possuem dependência funcional total da chave primária. Podemos observa na tabela ItemPedido que esse fato está correto. Outra opção é entender que cada pedido pode ter vários itens. Neste caso, podemos visualizar a relação itemPedido como uma entidade fraca, veja que ela tem um valor sequencial para cada item da nota mais o identificador do pedido. O que diferencia uma linha da outra é o par de valores dos atributos que compõe a chave. Veja ainda que esse par vai determinar univocamente o produto e a sua quantidade em um pedido específico. Logo, temos a nossa resposta na alternativa B. Não precisaríamos do preço neste caso. Já temos o idPro. Logo, para descobrirmos o preço basta fazermos uma junção utilizando os valores das duas relações. Logo, a alternativa C está incorreta. O modelo IDEF1X usa vários aspectos diferentes dos que são apresentados na figura. Primeiramente IDEF1X separa os atributos chaves dos demais por uma linha dentro do retângulo. Outro ponto é que o modelo não utiliza a notação de pé-de-galinha para expressar a cardinalidade entre as entidades. Logo, temos uma alternativa errada. Você pode observar alguns conceitos básicos de IDEF1X nesta imagem: Por fim, temos a cardinalidade do modelo, neste caso representado pela notação pé-de- galinha. A relação em questão se relaciona com cardinalidade 1:N com cada uma das outras duas, ou seja, possui relação com cardinalidade 1:n com a entidade Produto e 1:n com a entidade Pedido. Gabarito: B 20. Ano: 2018 Banca: FCC Órgão: SEFAZ-SC Cargo: Auditoria e Fiscalização Questão: 63. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 97 160 O Auditor tentou incluir os dados abaixo na tabela Pedido. idPed dataPed idCli 13 2018-07-22 12 Ao executar a operação de inclusão, ocorreu um erro porque (A) já existe um pedido criado para o cliente 12. (B) não existe um pedido cadastrado com id 13. (C) não há um cliente com id 12 cadastrado na tabela Cliente. (D) já existe um pedido cadastrado com id 13. (E) a data cadastrada não existe, já que o formato correto é dd/mm/yyyy. Comentário: Veja que neste caso o examinador verifica seu conhecimento sobre integridade referencial. Quando vamos incluir um novo registro na tabela pedido devemos associá-lo a um cliente já existente na nossa base de dados. Neste caso, o cliente cujo idCli é igual a 12 não existe entre as tuplas da relação cliente. Logo, temos nossa resposta na alternativa C. Gabarito: C 21. Ano: 2018 Banca: FCC Órgão: SEFAZ-SC Cargo: Auditoria e Fiscalização Questão: 64. Se na entidade ItemPedido fosse adicionado o atributo valorTotalItem e nesse atributo fosse armazenado o resultado da multiplicação do valor contido no atributo qtdItePed da entidade ItemPedido pelo valor contido no atributo PreUniPro da entidade Produto, a entidade ItemPedido violaria (A) todas as formas normais. (B) as regras de integridade referencial. (C) a terceira forma normal (3FN). (D) a segunda forma normal (2FN). (E) a primeira forma normal (1FN). Comentário: Neste caso teríamos uma dependência transitiva. Observe que (idItePed, idPed) → (qtdItePed, PreUniPro) → valorTotalItem. Mas professor, neste caso PreUniPro não faz parte da relação, como podemos estabelecer essa transitividade? Precisamos pensar que idPro, que existe como atributo em ItemPedido, determina o PreUniPro. Logo, a inclusão deste novo campo levaria a um problema com a terceira forma normal. Assim, nossa resposta encontra-se na alternativa C. Gabarito: C 22. Ano: 2018 Banca: FCC Órgão: SEFAZ-SC Cargo: Auditoria e Fiscalização Questão: 65. Considere e avalie as asserções a seguir e a relação proposta entre elas. I. O relacionamento entre as entidades Pedido e ItemPedido é um relacionamento identificado Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 98 160 PORQUE II. idPed, que é chave estrangeira na entidade ItemPedido, faz parte da chave primária desta entidade. É correto afirmar que (A) a primeira asserção é uma proposição verdadeira, e a segunda, uma proposição falsa. (B) tanto a primeira quanto a segunda são proposições falsas. (C) as duas asserções são proposições verdadeiras, mas a segunda não é justificativa correta da primeira. (D) a primeira asserção é uma proposição falsa, e a segunda, uma proposição verdadeira. (E) as duas asserções são proposições verdadeiras, e a segunda é uma justificativa correta da primeira. Comentário: Observe que estamos falando que ItemPedido é uma entidade fraca e que, para construir uma relação baseada nesta entidade precisamos pegar emprestado o atributo chave da entidade Pedido. Neste caso, estamos diante de um relacionamento identificador ou identificado. O fato é que a chave primária de Pedido vai compor a chave primária da relação ItemPedido. Logo, ambas as alternativas estão corretas e a segunda é justificativa para a primeira. Isso nos leva a resposta na alternativa E. Gabarito: E 23. Ano: 2018 Banca: FCC Órgão: DPE-AM Cargo: Analista Área: Banco de Sistemas Questão: 41. Considere que um Analista de Sistemas está modelando um banco de dados relacional de um escritório de Advocacia e precisa definir a tabela Consulta, que liga as tabelas Advogado e Cliente. Na tabela Consulta foram definidos os campos abaixo. OAB_Advogado – Primary Key ID_Cliente – Primary Key Data_Hora_Consulta Parecer_Do_Advogado Especialidade_Do_Advogado A chave primária é composta pelos campos OAB_Advogado e ID_Cliente. Cada Advogadoque trabalha no escritório atua em uma única especialidade (direito penal, civil, trabalhista etc.) e, na consulta, emite um parecer exclusivo para cada cliente atendido. Nestas condições, é correto afirmar que Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 99 160 (A) há um problema de dependência funcional parcial, pois o campo Parecer_Do_Advogado é dependente apenas do campo OAB_Advogado, que é parte da chave primária. (B) a tabela Consulta está correta e adequadamente normalizada de acordo com a primeira, segunda e terceira formas normais. (C) há um problema de dependência órfã, pois o campo Data_Hora_Consulta deveria ser dependente do ID da consulta, campo que está faltando na tabela. (D) todos os atributos não chave dependem integralmente da chave primária composta, demostrando que a tabela Consulta está na quarta forma normal. (E) há um problema de dependência funcional parcial, pois o campo Especialidade_Do_Advogado é dependente apenas do campo OAB_Advogado, que é parte da chave primária. Comentário: Analisando rapidamente a descrição dos atributos podemos perceber que a especialidade do advogado tem uma relação direta apenas com o a entidade “advogado” e não com o cliente. Logo, por ter uma chave primária composta, vai existir uma dependência parcial na relação que fere a segunda forma normal. Tal fato nos leva a resposta na alternativa E. Já os demais atributos não primários, data_hora_consulta e parecer_do_advogado são de fato relacionados ao contexto do encontro entre o advogado e seu cliente. Gabarito: E 24. Ano: 2018 Banca: FCC Órgão: DPE-AM Cargo: Analista Área: Banco de Sistemas Questão: 42 42. Na tabela abaixo, OAB_Advogado e ID_Cliente fazem parte da chave primária composta da tabela e Valor_Total_Honorario é resultado da aplicação do Percentual_De_Honorario sobre Valor_Da_Causa. Esta tabela (A) não está na primeira forma normal porque possui dependência funcional transitiva do campo ID_Cliente em relação ao campo OAB_Advogado. (B) cumpre todas as regras de normalização, já que todos os campos não chave são integralmente dependentes da chave primária composta. (C) não está na terceira forma normal porque possui um campo resultante de cálculo envolvendo outros dois campos que não fazem parte da chave primária. (D) respeita as boas práticas de modelagem e normalização, entretanto, para facilitar a busca de dados, a chave primária deveria ser composta apenas pelo campo OAB_Advogado. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 100 160 (E) não está na terceira forma normal porque possui tabelas aninhadas, ou seja, a tabela precisará ser dividida em duas tabelas relacionadas. Comentário: Essa é mais uma questão de normalização onde um dos atributos é derivado. Perceba que o valor total dos honorário é um percentual definido sobre o valor da causa. Logo temos uma dependência funcional onde Valor_Da_Causa, Percetual_De_Honorario → Valor_Total_Honorario. Como sabemos que chave primária é definida pelos atributos OAB_Advogado e ID_Cliente, podemos perceber uma dependência transitiva que fere a terceita forma normal. Logo, nossa resposta está presente na alternativa C. Gabarito: C 25. Ano: 2018 Banca: FCC Órgão: TRT-06 Cargo: Analista Judiciário Área: Tecnologia da Informação Questão: 33 Considere hipoteticamente a existência de empresas que terceirizam o fornecimento de Recursos Humanos a outras empresas. Cada funcionário pode ser cadastrado em várias dessas empresas terceirizadas, nos mesmos cargos ou em cargos diferentes. Um modelo abstrato de dados dessa relação entre Empresa_Terceirizada_RH e Funcionario é mostrado abaixo. Para um Analista especializado em Tecnologia da Informação implementar o modelo mostrado na figura, em um Sistema Gerenciado de Banco de Dados relacional, terá que (A) criar uma tabela de ligação entre Empresa_Terceirizada_RH e Funcionario, fragmentando o relacionamento n:m em dois relacionamentos 1:1, já que não é possível implementar a relação n:m em bancos de dados relacionais. (B) excluir o atributo cargoFuncionario, pois cada funcionário poderá ter um cargo diferente em cada empresa terceirizada onde se cadastrar. (C) utilizar a linguagem SQL, adicionando o parâmetro CROSS REFERENCES à instrução CREATE TABLE na criação de ambas as tabelas para estabelecer a relação n:m entre elas. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 101 160 (D) excluir o campo cargoFuncionario da tabela Funcionario e inserir na tabela Empresa_Terceirizada_RH, pois o cargo é cadastrado quando o funcionário faz a inscrição na empresa terceirizada. (E) criar uma tabela de ligação entre Empresa_Terceirizada_RH e Funcionario, fragmentando o relacionamento n:m em dois relacionamentos 1:n e colocando o campo cargoFuncionario como atributo simples nessa tabela de ligação. Comentário: A notação que descreve o relacionamento é conhecida como pé de galinha. Os três segmentos de reta desenhados próximos a cada entidade descrevem que a cardinalidade máxima é N. Já a barra vertical apresenta a cardinalidade mínima de 1 ou um relacionamento obrigatório. Para transformarmos o modelo conceitual em questão em um modelo relacional é necessário a criação de uma tabela de ligação. Essa tabela deverá ser formada pelas chaves primárias de cada uma das entidades como chave estrangeira. E possuir uma chave primária composta pelos dos atributos (idFuncionario e idEmpresaRH). Com essa tabela passamos a ter dois relacionamentos 1:N, entre a tabela de ligação e as entidades já representadas. Agora precisamos tratar do fato, descrito no enunciado, que diz “Cada funcionário pode ser cadastrado em várias dessas empresas terceirizadas, nos mesmos cargos ou em cargos diferentes.” Veja que o atributo cargoFuncionario deve fazer parte da tabela de ligação. Assim, o funcionário pode ter cargos diferentes em empresas diferentes. Gabarito: E. 26. Ano: 2017 Banca: FCC Órgão: ARTESP Cargo: Especialista em Regulação de Transporte - Tecnologia da Informação Questão: 73. 73. Na modelagem de um banco de dados relacional há diversos aspectos a serem considerados. Dentre tais aspectos, é correto afirmar que (A) a função exercida por um conjunto de entidades ligado a um conjunto de relacionamentos denomina-se gatilho. (B) uma modelagem de um banco de dados relacional suporta um número máximo teórico de conjuntos de entidades, não superior a 30. (C) as propriedades descritivas de um conjunto de entidades são denominadas de atributos. (D) conjuntos de relacionamentos não admitem atributos do tipo descritivo. (E) um conjunto de relacionamentos recursivo liga dois ou mais conjuntos de entidades. Comentário: O modelo relacional pode ser visto como um conjunto de entidades denominadas relações. Cada relação possui um conjunto de linhas ou tuplas. Cada tupla é uma instância do tipo ou entidade e possui nos seus atributos características descritivas desta entidade. Uma relação se associa com outra por meio de chave estrangeira, que liga uma ou várias tuplas de uma relação à uma ou várias tuplas de outra relação. Não existe número máximo teórico Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 102 160 para a quantidade de tuplas em uma relação, nem para a quantidadede relações dentro de um esquema. Veja que o Oracle não possui limitações para quantidade de tabelas em um banco de dados, nem de colunas em uma tabela. Os conjuntos de relacionamento são as conhecidas tabelas de ligação que, geralmente, fazem o relacionamento N:N entre duas entidades. Se você lembrar do modelo ER, deve ter em mente que os relacionamentos possuem atributos. Esses atributos vão aparece no conjunto de relacionamento. Relacionamento recurso não é um termo usado na teoria de banco de dados relacional. Existe um auto relacionamento quando a chave estrangeira referenciada está na própria tabela. É o caso do atributo gerente da tabela empregado. Gabarito: C 27. Ano: 2017 Banca: FCC Órgão: ARTESP Cargo: Especialista em Regulação de Transporte - Tecnologia da Informação Questão: 74. 74. Com o intuito de verificar se uma determinada relação R de um banco de dados relacional atende a segunda forma normal, deve-se verificar se (A) atributos que não façam parte de qualquer chave candidata de R são total e funcionalmente dependentes da chave primária de R. (B) o domínio de todos os atributos de R comportam valores considerados múltiplos. (C) todos os atributos de R são do tipo literal ou numérico. (D) a relação R tem uma chave primária composta por dois ou mais atributos. (E) o número de atributos da relação R é múltiplo de 2. Comentário: Sabemos que a segunda forma norma normal (2FN) procura eliminar dependências parciais de atributos primários. Em outras palavras, precisamos procurar por atributos que façam parte de uma chave candidata composta e verificar se individualmente algum deles consegue determinar outro atributo não chave da relação. Veja que, o acabamos de explicar acima pode ser reescrito de outra forma. Os atributos que não façam parte de qualquer chave candidata de R são total e funcionalmente dependentes da chave primária de R. Assim, nossa resposta encontra-se na alternativa A. Gabarito: A. 28. Ano: 2017 Banca: FCC Órgão: TRT-11 Cargo: Analista Judiciário de TI – Q. 44 Considere o modelo de dados abaixo. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 103 160 Na relação entre as entidades Advogado e Processo um advogado poderá atuar em diversos processos, tanto como advogado de defesa como de acusação. Assim, cada processo terá, pelo menos, dois advogados. Com base nesse modelo, na implementação das tabelas do banco de dados em um Sistema de Gerenciamento de Banco de Dados relacional, (A) será necessária a criação de uma tabela entre Advogado e Processo e o relacionamento N:N dará lugar a dois relacionamentos 1:N. (B) a chave primária da tabela Processo deverá ser chave estrangeira na tabela Advogado. (C) a chave primária da tabela Advogado deverá ser chave estrangeira na tabela Processo. (D) ambas as tabelas (Processo e Advogado) deverão ter chave primária composta. (E) a tabela Advogado deverá ter um campo para especificar o tipo de atuação do advogado em cada processo (defesa ou acusação). Comentário: Já falamos algumas vezes sobre esse tipo de questão. Ela pergunta como vamos fazer a passagem do modelo entidade-relacionamento para o modelo relacional. Quais relações precisam ser criadas. Dado a existência de um relacionamento N:M, precisamos criar uma tabela auxiliar para representar os relacionamentos entre as entidades advogado e processo. Essa relação terá como chave primária os atributos chave das duas entidades. Ela poderá ainda ter outros atributos que fazem sentido apenas para o relacionamento. Veja, portanto, que a criação de uma tabela de ligação será necessária entre Advogado e Processo e o relacionamento N:N dará lugar a dois relacionamentos 1:N. Tal texto está presente na alternativa A, que é a resposta da nossa questão. Gabarito: A. 29. Ano: 2017 Banca: FCC Órgão: TRE-SP Cargo: Técnico Judiciário de TI – Q. 57 Considere as entidades abaixo que são integrantes de um modelo de banco de dados relacional. Analisando-se as entidades, tem-se que (A) estas entidades estabelecem dois relacionamentos n:m não-identificados (non-Identifying). (B) se for incluído um atributo pontuacao, ele terá que ser incluído na entidade Candidato. (C) se for incluído o atributo dataInscricaoCandidato, ele terá que ser incluído na entidade Candidato_Concurso. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 104 160 (D) para que a entidade Candidato esteja na 1a forma normal, a entidade Candidato_Concurso precisa estar normalizada. (E) a entidade Candidato_Concurso nunca estará na 2a forma normal porque ela possui chave primária composta Comentário: Vamos comentar cada uma das alternativas. Para respondermos com certeza a alternativa A precisamos ter o conhecimento de relacionamento identificado e não-identificado. Percebam que a tabela Candidato_concursos recebeu os atributos chaves das outras tabelas do modelo. Se esses atributos fizerem parte da chave da relação, no caso, Candidado_Concurso, temos um relacionamento identificado, caso contrário, se eles forem apenas atributos não chaves teríamos um relacionamento não identificado. Desta forma, não podemos falar de relacionando não identificado, pois os atributos são considerados chave primária da relação Candidato_Concurso. Já na alternativa B temos uma suposição, se formos incluir um novo atributo no modelo denominado pontuação, em qual relação ele deveria ser incluído. Perceba que a inclusão deve ser feita na tabela que representa o relacionamento Candidato_concurso, na mais razoável, visto que, você recebe uma pontuação quando participa de um concurso. Perceba que na alternativa C temos outra suposição, só que desta vez, o novo atributo, dataInscriçãoCandidato, está inserido na relação correta. Desta forma essa é a nossa resposta! A normalização de uma entidade ou relação não depende da normalização da outra. Desta forma a alternativa D está incorreta. A alternativa E apresenta um conceito incorreto. O fato de ter um atributo (veja que é atributo e não chave) composto fere a primeira forma normal. A 1FN exige que todos os atributos sejam atómicos. A segunda forma norma trata de eliminar as dependências parciais. Vejam que a alternativa apresente um texto totalmente desconexo. Gabarito: C. 30. Ano: 2016 Banca: FCC Órgão: TRE-SP Cargo: Analista Judiciário de TI – Q. 59. Considere as informações abaixo. PROCESSO (Num_Processo, [Titulo_Eleitor, Nome_Eleitor, Zona_Eleitoral_Eleitor, Secao_Eleitoral_Eleitor, Status_Eleitor_no_Processo], Data_Criacao_Processo, Data_Solucao_Processo). Sabe-se que os seguintes requisitos se aplicam: − Um Eleitor pode ser citado em um ou mais processos. − Um Processo pode citar um ou mais eleitores, portanto, os dados de Eleitor, entre chaves na tabela (ou relação) acima, podem ser integrantes de um grupo de repetição. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 105 160 − Os atributos grifados são chaves-primárias de seus respectivos grupos de atributos, ou seja, Num_Processo é chave dos dados de processo e Titulo_Eleitor é chave dos atributos de eleitor. − O Status_Eleitor_no_Processo (ex. Ativo, Inativo, Desistente) pode ser diferente nos processos nos quais é citado, ou seja, o mesmo eleitor pode ter, por exemplo, o status de Desistente em um processo, mas Ativo em outro). Após a aplicação da 3FN, a situação ficou como segue: − PROCESSO (Num_Processo, Data_Criacao_Processo, Data_Solucao_Processo)− ELEITOR (Titulo_Eleitor, Nome_Eleitor, Zona_Eleitoral_Eleitor, Secao_Eleitoral_Eleitor) − CITAÇÃO (Num_Processo, Titulo_Eleitor, Zona_Eleitoral_Eleitor, Status_Eleitor_no_Processo) Os atributos em negrito são as chaves identificadoras das tabelas (ou relações). Um experiente Analista de Sistemas analisou a situação e concluiu, corretamente, que a normalização (A) deve manter o atributo Num Processo em ELEITOR, para ficar integralmente correta. (B) deve incluir o atributo Data_Solucao_Processo na CITAÇÃO, para ficar integralmente correta. (C) está integralmente correta. (D) deve retirar o atributo Zona_Eleitoral_Eleitor da CITAÇÃO, para ficar integralmente correta. (E) deve incluir o atributo Status_Eleitor_no_Processo em PROCESSO, para ficar integralmente correta. Comentário: Percebam que o processo de normalização foi feito de forma parcialmente correta. Primeiramente foram separados os atributos que descrevem cada uma das entidades do modelo. Desta forma, o atributo composto ELEITOR que inicialmente fazia parte da tabela de PROCESSO passou a ser uma entidade própria. A tabela de PROCESSO também ficou apenas com seus atributos. E uma nova tabela CITACAO foi criada para associar um processo a uma pessoa. O atributo status_eleitor_no_processo foi devidamente associado a citação, o que faz todo sentido. Contudo, perceba que o atributo zona_eleitoral_eleitor aparece de forma incorreta na tabela CITAÇÂO. Ele pode ser obtido por meio do título de eleitor, o que gera uma dependência parcial no modelo e fere a segunda forma normal. Assim, nossa resposta aparece na alternativa D: “deve retirar o atributo Zona_Eleitoral_Eleitor da CITAÇÃO, para ficar integralmente correta.” Gabarito: D 31. Ano: 2017 Banca: FCC Órgão: TRE-SP Cargo: Técnico Judiciário de TI – Operação de computadores - Q. 57 57. Um Técnico do TRE-SP deparou-se, hipoteticamente, com o seguinte problema: Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 106 160 Um banco de dados relacional, modificado por outro profissional, começou a apresentar anomalias. As entidades conceituais que embasaram o banco, originalmente, eram Processo e Cidadão. Os requisitos especificavam que o relacionamento entre tais entidades atendesse ao fato de que um processo poderia relacionar-se com um único cidadão e um cidadão, claramente, poderia relacionar- se com mais de um processo. Isto para o caso do relacionamento denominado Autoria. Já, em outro relacionamento entre as mesmas entidades, denominado Participação, o processo poderia ter a participação de mais de um cidadão e cada um deles também poderia participar de mais de um processo. Ora, após a modificação do banco, quando os usuários tentaram entrar com mais de um cidadão na atualização de participação de um determinado processo, apesar de na tela ter o espaço para tal, o programa apresentava erro de consistência, não aceitando mais de um cidadão participante. Nesse caso, especificamente, ocorreu a implementação do relacionamento (A) Participação (Processo Participação de Cidadão, nesta ordem) como n:m. (B) Participação (Processo Participação de Cidadão, nesta ordem) como n:1. (C) Autoria (Processo Autoria de Cidadão, nesta ordem) como n:m. (D) Participação (Processo Participação de Cidadão, nesta ordem) como 1:n. (E) Autoria (Processo Autoria de Cidadão, nesta ordem) como n:1. Comentário: Depois de ler toda a histórica contada pelo enunciado podemos verificar que o relacionamento Participação deve permitir que 1 Cidadão participe de vários processos. Desta forma, temos que ter um relacionamento 1:n entre cidadão e processo. Neste caso, a nossa resposta está na alternativa B. Gabarito: B. 32. BANCA: FCC ANO: 2016 ÓRGÃO: PREFEITURA DE TERESINA - PI PROVA: ANALISTA TECNOLÓGICO - ANALISTA DE SUPORTE TÉCNICO [29] Em um banco de dados relacional existe a figura do valor nulo, ou seja, atributos de um conjunto de entidades podem ter esse valor. O valor nulo indica a) ausência de valor para um atributo de uma entidade de um conjunto de entidades. b) que em sua composição deve constar o caractere %. c) existência de múltiplos valores para um atributo de uma entidade de um conjunto de entidades. d) que o conteúdo do atributo de uma entidade de um conjunto de entidades foi preenchido com o valor 0 (zero). e) que em sua composição deve constar a sequência de caracteres //. Comentário: Primeiramente o nulo é um valor especial presente em cada tipo de dados descrito no modelo. Os valores nulos (diferente do zero, da string vazia, da string de caracteres Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 107 160 em brancos e outros valores não nulos) existem para representar dados não existentes de forma sistemática e independente do tipo de dado. Sendo assim, podemos marcar nossa resposta na alternativa A. Gabarito: A 33. BANCA: FCC ANO: 2017 ÓRGÃO: TRE-SP PROVA: ANALISTA JUDICIÁRIO – ANÁLISE DE SISTEMAS [56] Durante a análise das características típicas de um Sistema Gerenciador de Bancos de Dados Relacional – SGBDR, um Analista de Sistemas verifica: I. Oferece suporte a várias linguagens sem a necessidade de uma sintaxe definida em quaisquer uma delas no âmbito de Data Manipulation Language − DML e Data Definition Language − DDL, porém deve ter, pelo menos, uma das linguagens com sintaxe restritiva e bem definida no âmbito de Transaction Control Language − TCL e Data Control Language − DCL. II. A Inserção, a atualização e a eliminação é de alto nível, ou seja, a capacidade de manipular a relação base ou relações derivadas como um operador único é aplicável não somente à recuperação de dados, mas também à inserção, alteração e eliminação de dados. III. Representa a descrição do Banco de Dados no nível físico na forma de dados em tabelas, permitindo que usuários autorizados apliquem formas distintas de manipular os dados nessas tabelas. Estão corretas as características que constam APENAS em a) I. b) I e II. c) II. d) II e III. e) III. Comentário: Vamos comentar cada uma das alternativas acima. Percebam que na alternativa I ele escreve com um vocabulário um pouco rebuscado, mas diz, mais ou menos, o seguinte. Não existe uma sintaxe bem definida para os comandos de manipulação de dados e criação de objetos em SQL. Isso é um absurdo, o sucesso da linguagem passa por uma sintaxe bem definida, portanto alternativa I está incorreta. Na alternativa II o examinador diz que a existência dos comandos de INSERT, UPDATE e DELETE permite a utilização destes comandos para execução das tarefas de inserção, atualização e eliminação. Nada mais justo e correto, não acha? Sendo assim, a alternativa II está correta. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 108 160 A ideia do modelo de dados relacional é justamente reduzir o conhecimento a respeito das estruturas físicas do banco de dados. Vejam que ele representa o modelo em um nível lógico. Desta forma, a alternativa também se encontra errada. Juntando os comentários acima, podemos marcar nossa resposta na alternativa E, que bate perfeitamente com o gabarito da questão. Gabarito: C 34. BANCA: FCC ANO: 2017 ÓRGÃO: TRF - 5ª REGIÃO PROVA: ANALISTA JUDICIÁRIO - INFORMÁTICA [44] Considere que a tabela abaixo para controle de funcionários, possui o campo registro como chave primária e que o campo salario_liquido é resultante da subtração do desconto sobre o salario_bruto.Esta tabela a) está na segunda forma normal (2FN) porque possui chave primária simples da qual dependem todos os demais atributos. b) possui uma anomalia de inclusão, já que não será possível cadastrar um valor do campo salario_liquido. c) atende corretamente a todas as principais formas normais (1FN, 2FN e 3FN). d) não está na terceira forma normal (3FN) porque possui um campo calculado. e) não está na primeira forma normal (1FN), pois salario_liquido não é dependente da chave primária. Comentário: Para definir se temos um problema com dependência parcial ou transitiva precisamos descobrir que é a chave primária da relação. No enunciado da questão existe a informação que o atributo registro faz esse papel. Logo, não temos problemas com a segunda forma normal. Agora, podemos observar que o salário líquido é o resultado da subtração do salario bruto pelo desconto. Assim podemos verificar a seguinte dependência funcional transitiva: Registo → salario_bruto, desconto → salario_liquido Esse atributo, por se tratar de um atributo derivado, pode ser excluído da tabela para resolver o problema com a terceira forma normal. Sendo assim, temos nosso gabarito na alternativa D. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 109 160 Gabarito: D 35. BANCA: FCC ANO: 2017 ÓRGÃO: TST PROVA: ANALISTA JUDICIÁRIO – ANÁLISE DE SISTEMAS [31] O modelo relacional é um modelo formal, baseado na teoria matemática das relações, que representa os dados no banco de dados em uma coleção de tabelas relacionadas. Utiliza o conceito de a) herança, ou referência a objetos do tipo tabela, de forma semelhante ao que ocorre com as classes em modelos orientados a objetos. b) tuplas, que lidam com qualquer estrutura de dados existente em aplicações criadas em linguagens de programação orientadas a objetos. c) colunas (ou campos), podendo conter valores inteiros, reais, literais e de referência, não estando limitadas quanto aos tipos de dados. d) stored procedures, que são estruturas semelhantes aos métodos dos modelos orientados a objetos, porém, os procedures não são limitados como os métodos. e) integridade referencial, onde o conteúdo de um campo chave estrangeira de uma relação precisa coincidir com um valor que esteja contido no campo que é chave primária na sua tabela pai. Comentário: O modelo relacional está associado a ideia de relação que pode ser vista como um conjunto de tuplas (linhas) que possuem atributos (colunas). O relacionamento entre as tabelas é feito por meio de chaves estrangeiras que garante a integridade referencial. Neste caso o conteúdo do campo chave estrangeira de uma relação deve ser igual a um dos valores contidos no campo de referência da tabela pai ou ser nulo. Desta forma, podemos marcar nossa resposta na alternativa E. Gabarito: E 36. BANCA: FCC ANO: 2017 ÓRGÃO: TST PROVA: ANALISTA JUDICIÁRIO – ANÁLISE DE SISTEMAS [32] Considere uma relação de trabalho flexível e hipotética, onde cada funcionário, que possui uma única Carteira de Trabalho e Previdência Social, pode trabalhar em diversas empresas ao mesmo tempo, e estas empresas podem manter inúmeros funcionários. Nessa relação estabelecida de forma correta em um Sistema Gerenciador de Banco de Dados Relacional, considere que a chave primária da tabela funcionario é matriculaFuncionario, da tabela empresa é idEmpresa e da tabela empresa_funcionario é uma composição de matriculaFuncionario e idEmpresa. Um Analista de Sistemas infringirá as regras da segunda forma normal (2FN) se colocar na tabela empresa_funcionario o campo a) cargo. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 110 160 b) salario. c) cargaHorariaMensal. d) regrasDeTrabalho. e) numeroCarteiraTrabalho. Comentário: Temos que procurara dentre as alternativas uma que seja dependente de apenas um dos seguintes atributos: matriculaFuncionario e idEmpresa. Perceba que os atributos cargo, salario, cargaHorariaMensal e regrasDeTrabalho são definidos por uma associação entre um funcionário e uma empresa, logo são determinados pelos dois atributos conjuntamente. Agora, o atributo numeroCarteiraTrabalho se refere unicamente ao empregado, e portanto, se aparecer na tabela empresa_funcionario vai ferir a segunda forma normal. Sendo assim, nossa resposta pode ser visualizada na alternativa E. Gabarito: E 37. BANCA: FCC ANO: 2017 ÓRGÃO: TST PROVA: ANALISTA JUDICIÁRIO – ANÁLISE DE SISTEMAS [54] Considere, por hipótese, que um Analista de Sistemas está trabalhando no projeto conceitual de um sistema de controle de processos compartilhado entre tribunais, o qual futuramente será projetado para ser processado em um modelo de banco de dados relacional normalizado. O Analista levantou os seguintes requisitos: − A entidade tribunal deverá ser identificada de forma unívoca pelo atributo identidade do tribunal que será a chave primária; A entidade processo terá sua chave primária composta por um número sequencial de 1 a n mais a identidade do tribunal ao qual está vinculado. O motivo da incorporação da identidade do tribunal na chave primária de processo bem como o tipo de relacionamento entre as entidades tribunal e processo são, respectivamente, a a) manutenção da unicidade da identidade do tribunal; relacionamento de dependência (tribunal é entidade fraca de processo). b) necessidade de se manter, em uma única tabela, os tribunais e os processos; relacionamento unitário. c) necessidade de se manter um pseudo-relacionamento entre tribunal e processo; relacionamento ternário (tribunal + tribunal e processo). d) manutenção da unicidade da identidade do processo; relacionamento de dependência (tribunal é entidade fraca de processo). e) manutenção da unicidade da identidade do processo; relacionamento de dependência (processo é entidade fraca de tribunal). Comentário: Veja que cada tribunal cria um valor sequencial para seus processos. Logo, temos que incluir na chave de Processo a identidade do tribunal. Isso faz com que a entidade processo Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 111 160 dependa a entidade tribunal, tornando-a uma entidade fraca. Assim, conseguimos manter a unicidade da chave de processo. Logo, nossa resposta encontra-se na alternativa E. Gabarito: E 38. BANCA: FCC ANO: 2017 ÓRGÃO: TST PROVA: ANALISTA JUDICIÁRIO – ANÁLISE DE SISTEMAS [55] Considere, por hipótese, os requisitos abaixo, levantados durante a modelagem de dados: I. A entidade Empregado exerce dois papéis: Gerente e Gerenciado. Cada empregado tem um só gerente e um gerente chefia diversos empregados. II. Um empregado (entidade Empregado) ocupa somente um cargo (entidade Cargo) que também pode ser ocupado por outros empregados. III. Um departamento (entidade Departamento) aloca diversos empregados (entidade Empregado). Um empregado só pode ser alocado em um único departamento. IV. Os atributos identificadores das entidades Empregado, Cargo e Departamento são, respectivamente, Matrícula, Código do Cargo e Código do Departamento. Em um modelo normalizado, são chaves estrangeiras em I, II e III, respectivamente, a) Matrícula (do gerenciado), Código do Cargo e Código do Departamento. b) Matrícula (do gerente), Matrícula e Código do Departamento. c) Matrícula (do gerente), Código do Cargo e Código do Departamento. d) Matrícula (do gerenciado), Matrícula e Matrícula. e) Matrícula (do gerenciado),Código do Cargo e Matrícula. Comentário: Primeiramente é importante ter em mente que uma chave estrangeira pode ser caracterizada desta forma, mesmo estando na própria relação. Esse caso pode ser observado na entidade Empregado que possui um atributo matricula do gerente. As demais entidades possuem um relacionamento 1:n. O código do cargo deve estar presente na tabela empregado, assim como o código do departamento. Desta forma, podemos marcar nossa resposta na alternativa C. Gabarito: C 39. BANCA: FCC ANO: 2017 ÓRGÃO: TST PROVA: TÉCNICO JUDICIÁRIO – PROGRAMAÇÃO [61] Considere o diagrama entidade-relacionamento abaixo. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 112 160 As chaves primárias de Cidadão e Processo são pk_cidadao e pk_processo, respectivamente. O relacionamento Consulta possui a cardinalidade 0,n com n>1 em ambos os lados. Em um banco de dados relacional normalizado, estará correta a criação da tabela a) Processo tendo como chave estrangeira pk_cidadao e Consulta tendo como chave estrangeira pk_processo. b) Cidadão tendo como chave estrangeira pk_processo e Consulta tendo como chave estrangeira pk_cidadao. c) Consulta tendo pk_processo como chave primária e Cidadão tendo pk_processo como chave estrangeira. d) Consulta tendo pk_cidadao como chave primária e Processo tendo pk_cidadao como chave estrangeira. e) Consulta tendo como chave primária pk_cidadao mais pk_processo. Comentário: Veja que a solução para o problema da questão passa pela criação de uma tabela de ligação Consulta contendo as chaves primárias de Cidadão e Processo, neste caso, pk_cidadao e pk_processo. Desta forma, podemos marcar nossa resposta na alternativa E. Gabarito: E 40. BANCA: FCC ANO: 2017 ÓRGÃO: TST PROVA: TÉCNICO JUDICIÁRIO – PROGRAMAÇÃO [64] Considere as tabelas relacionais abaixo. Considerando que os elementos que identificam de forma única e inequívoca um cidadão e um processo são, respectivamente, CPF_Cidadao e Num_Processo e que a relação Tab_Rel_Processo_Cidadao entre Tab_Cidadao e Tab_Processo é de muitos para muitos, ou seja, Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 113 160 um cidadão pode impetrar um ou mais processos e um processo pode ser impetrado por um ou mais cidadãos, as formas normais infringidas, respectivamente, nas três tabelas são: a) 1FN, 2FN e 3FN. b) 2FN, nenhuma e 3FN. c) 3FN, 1FN e nenhuma. d) nenhuma, 1FN e 2FN. e) nenhuma, nenhuma e 2FN. Comentário: Veja que precisamos analisar cada uma das tabelas. A Tab_Proceso está na terceira forma normal. Todos os atributos são atômicos e não existe dependência parcial ou transitiva. Já a Tab_Cidadao não está nem na primeira forma normal, pois possui um atributo multivalorado. Por fim, a Tab_Rel_Processo_Cidadao possui um atributo (Endereco_Cidadao) que depende apenas de parte da chave primária. Logo, as formas normais infringidas são respectivamente, nenhuma, 1FN e 2FN. Gabarito: D 41. BANCA: FCC ANO: 2017 ÓRGÃO: TST PROVA: ANALISTA JUDICIÁRIO – SUPORTE EM TECNOLOGIA DA INFORMAÇÃO [68] Em um Modelo Entidade-Relacionamento existem as entidades NotaFiscal e Produto que estabelecem uma relação n:m. Em um Sistema Gerenciador de Banco de Dados Relacional, um Analista de Suporte implementou a tabela de ligação ItemNotaFiscal entre as tabelas NotaFiscal e Produto, contendo os campos abaixo. NumeroNotaFiscal (chave primária, chave estrangeira) NumeroProduto (chave primária, chave estrangeira) Descricao Quantidade PrecoUnitario Uma anomalia existente na tabela ItemNotaFiscal, que infringe as regras de normalização, é a existência de a) atributos compostos ou derivados. b) dependência funcional parcial. c) dependência funcional transitiva indireta. d) atributos multivalorados. e) dependência funcional transitiva direta. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 114 160 Comentário: Observe que descrição depende apenas do número do produto. Sendo assim, temos um problema com a segunda forma normal que não admite dependência parcial. Logo, nossa resposta está na alternativa B. Gabarito: B 42. BANCA: FCC ANO: 2017 ÓRGÃO: DPE-RS PROVA: ANALISTA – BANCO DE DADOS [32] O modelo relacional em banco de dados comporta o conceito de chaves primárias e de chaves candidatas, ambas incluindo a propriedade da unidade. Supondo K um conjunto de atributos da tabela T, K terá a propriedade da unicidade se a) o número de atributos que compõem K for igual a 1. b) comportar apenas 1 índice em seus atributos. c) houver apenas 1 atributo do tipo numérico em K. d) não houver duas tuplas de T com o mesmo valor para K. e) todos os atributos de K tiverem a mesma limitação em seus números de caracteres. Comentário: Observe que se K é único em uma tabela ele não pode se repetir em duas linhas distintas da mesma relação. Sendo assim, não pode haver duas tuplas em T com o mesmo valor de K. Isso nos leva a resposta na alternativa D. Gabarito: D 43. BANCA: FCC ANO: 2017 ÓRGÃO: DPE-RS PROVA: ANALISTA – BANCO DE DADOS [36] Observou-se que uma tabela de um banco de dados relacional está na segunda forma normal pois, além de estar na primeira forma normal, a) existe um número par de atributos na chave primária da tabela. b) cada atributo não chave da tabela é dependente de todos os atributos da chave primária da tabela. c) todos atributos da tabela são atômicos (contêm exatamente um valor para cada atributo). d) os atributos da chave primária da tabela são do tipo numérico. e) os atributos não chave da tabela são mutuamente dependentes entre si. Comentário: Ao procurarmos nas alternativas uma sentença que esteja alinhada com a 2FN, que não permite dependência parcial, podemos encontra nossa resposta na alternativa b). Nela temos a afirmação de que todos os atributos não chave devem ser plenamente dependentes Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 115 160 da chave primária. Ou seja, se tivermos uma chave primária composta, a identificação dos demais atributos deve ser feita pela totalidade da chave. Gabarito: B 44. BANCA: FCC ANO: 2017 ÓRGÃO: DPE-RS PROVA: ANALISTA – BANCO DE DADOS [33] Em um banco de dados relacional, quando se faz a definição do domínio de um atributo, o objetivo é determinar a) o número máximo de atributos permitido para a tabela desse atributo. b) o número máximo de registros permitido para a tabela desse atributo. c) a regra de formação do nome desse atributo. d) o conjunto de valores permitido para cada atributo. e) as tabelas que podem utilizar tal atributo como chave estrangeira. Comentário: O domínio de um atributo são todos os valores válidos que podem ser associados a variável. Assim, temos nossa resposta na alternativa D. Gabarito: D 45. BANCA: FCC ANO: 2017 ÓRGÃO: TRE-PR PROVA: ANALISTA JUDICIÁRIO – ANÁLISE DE SISTEMAS [37] Considere a tabela ItemPedido abaixo, onde a chave primária é composta pelos campos NumeroPedido e NumeroItemPedido. É correto afirmar que a) para esta tabela estar na 2FN a chave primária não pode ser composta. b) NumeroPedido não pode conter valores repetidos, pois é parte da chave primária. c) para esta tabela estar na 3FNa coluna TotalPedido deve ser excluída. d) esta tabela está na 3FN porque não tem dependência transitiva de colunas. e) esta tabela está na 1FN porque a chave primária é composta. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 116 160 Comentário: Questão bem interessante. Trata dos conceitos básicos de normalização. Para respondermos à questão precisamos observar se os requisitos das formas normais são atendidos. Iniciamos pela primeira forma normal. Veja que nenhum dos atributos são compostos ou multivalorados. Logo, a 1FN é atendida. A segunda forma normal diz que não deve existir dependência parcial. Observe que todos os atributos não chave são plenamente dependentes da chave primária. Logo, a 2FN também é atendida. Por fim, vamos para a terceira forma normal. Vejam que o atributo TotalPedido é uma dependência transitiva estabelecida da seguinte forma: NumeroPedido, NumeroItemPedido → Quantidade, Preco → TotalPedido Sendo assim observamos que “para esta tabela estar na 3FN a coluna TotalPedido deve ser excluída” visto que ela é um atributo derivado. Ou seja, TotalPedido é um atributo derivado. Logo nosso gabarito está na alternativa C. Gabarito: C 46. BANCA: FCC ANO: 2017 ÓRGÃO: TRE-PR PROVA: TÉCNICO JUDICIÁRIO – PROGRAMAÇÃO DE SISTEMAS [40] Considere hipoteticamente que em um Tribunal cada Juiz conta com a ajuda de vários Assistentes, de acordo com o volume de processos que precisa analisar e julgar. Cada Assistente, por sua vez, auxilia vários Juízes, de acordo com a demanda de trabalho. Se Juiz e Assistente forem entidades de um modelo de dados relacional, a cardinalidade entre elas será n:m. Na criação das tabelas a partir do modelo, a) a chave primária da tabela Juiz será chave estrangeira na tabela Assistente e a chave primária da tabela Assistente será chave estrangeira na tabela Juiz. b) será necessário criar uma tabela de ligação entre Juiz e Assistente e o relacionamento n:m dará lugar a dois relacionamentos 1:n. c) será estabelecido um relacionamento bidirecional entre as tabelas Juiz e Assistente, com cardinalidade 1:1. d) para que a relação n:m seja mantida, as chaves primárias das tabelas Juiz e Assistente deverão ser compostas pelo Id do Juiz e pelo Id do Assistente. e) será necessário criar uma tabela de ligação entre Juiz e Assistente, gerando assim dois relacionamentos 1:1. Comentário: Podemos visualizar a questão da seguinte forma: Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 117 160 Desta forma, podemos observar que os relacionamentos entre assistente e assiste e entre assiste e juiz são relacionamentos 1:n. Tal fato, está expresso na alternativa B Gabarito: B 47. BANCA: FCC ANO: 2017 ÓRGÃO: TRT - 24ª REGIÃO (MS) PROVA: TÉCNICO JUDICIÁRIO - TECNOLOGIA DA INFORMAÇÃO [43] Considere, hipoteticamente, uma relação de trabalho em que um funcionário pode trabalhar em várias empresas, sendo registrado em todas elas. Esta relação é representada na figura abaixo. Nesta relação, cada funcionário pode ocupar cargos diferentes em cada empresa onde trabalha recebendo, inclusive, salários diferentes por jornadas de trabalho variáveis. Nestas condições, quando o modelo for implementado em um Sistema Gerenciador de Banco de Dados relacional, a) se for incluído um campo salário este deverá ser colocado na tabela Funcionário. b) somente as tabelas Funcionário e Empresa serão criadas e relacionadas com cardinalidade n:n. c) o relacionamento n:n deverá ser desmembrado em dois relacionamentos 1:1, sendo Trabalha a entidade de ligação entre Funcionário e Empresa. d) se for incluído um campo cargo este deverá ser colocado na tabela associativa identificada como Trabalha. e) se for incluído um campo CargaHoráriaMensal ele deverá ser colocado na tabela Empresa. Comentário: Nossa resposta, não poderia ser a alternativa a), porque se houvesse um campo salário, ele deveria ser colocado no relacionamento "Trabalha", pois somente possui salário o funcionário que trabalha em alguma empresa. Desta forma, já conseguimos verificar que a resposta está na alternativa D. Gabarito: D Assiste Cod_Assistente Cod_Juiz Cod_Assistencia Assistente Cod_Assistene Nome_Ass Juiz Cod_Juiz Nome_Juiz Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 118 160 48. BANCA: FCC ANO: 2017 ÓRGÃO: TRE-PR PROVA: TÉCNICO JUDICIÁRIO - OPERAÇÃO DE COMPUTADORES [33] Em uma empresa cada projeto é desenvolvido por vários funcionários e cada funcionário só pode participar de um projeto. Para controlar os funcionários alocados em cada projeto foi criada a tabela abaixo em um banco de dados. Considerando as regras de modelagem de bancos de dados relacionais, esta tabela a) está modelada corretamente, já que permite visualizar em que projeto cada funcionário está trabalhando e quantos funcionários estão alocados em cada projeto. b) não está correta, pois seria necessário definir uma chave primária composta pelos campos idProjeto e MatriculaFuncionario, já que há repetição de idProjeto em várias linhas. c) deve ser desmembrada em duas tabelas relacionadas com cardinalidade 1:n (Projeto e Funcionario), para evitar a repetição dos dados do projeto para cada funcionário que participa dele. d) não está adequadamente modelada, pois um mesmo funcionário pode participar de vários projetos ao mesmo tempo, contrariando as regras do modelo relacional. e) deve ser ampliada, incluindo-se outras informações sobre o projeto (como valor e descrição) e sobre os funcionários (como cargo e função). Comentário: Olhando rapidamente para a tabela verificamos que a mesma precisa ser normalizada. Dentro da mesma relação temos atributos que deveriam pertencer a duas entidades distintas, quais sejam, Projeto e Funcionario. Logo, devemos desmembrar em duas tabelas com a cardinalidade 1:n. Assim, evitamos a repetição dos dados do projeto para cada funcionário que participe dele. Gabarito: C 49. BANCA: FCC ANO: 2016 ÓRGÃO: PGE-MT PROVA: ANALISTA – ANALISE DE SISTEMAS [37] Considere um banco de dados cujo modelo Entidade-Relacionamento, em uma perspectiva lógica, possui duas entidades: processo e advogado relacionadas com cardinalidade n:m. Cada Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 119 160 advogado pode atuar em diversos processos, hora como advogado de acusação, hora como advogado de defesa, o que é definido em um atributo tipo_atuacao. Cada processo poderá ter, consequentemente, pelo menos dois advogados, um de defesa e um de acusação. Quando o modelo for implementado em um sistema gerenciador de banco de dados relacional, a) as duas entidades darão origem a duas tabelas e a relação n:m será implementada por um campo de ligação comum em ambas as tabelas. b) o campo tipo_atuacao será colocado na tabela advogado, pois o tipo de atuação é um atributo do advogado, que define a forma como ele atuará no processo. c) deverá ser criada uma tabela de ligação entre processo e advogado, originando duas relações com cardinalidade 1:1. O atributo tipo_atuacao será colocado nessa tabela. d) deverá ser criada uma tabela Atuação com um único campo, tipo_atuacao, já que o tipo da atuação do advogado pode ser diferente em cada processo que ele atua. e) deveráser criada uma tabela de ligação entre processo e advogado, originando dois relacionamentos 1:n. O atributo tipo_atuacao será colocado nessa tabela. Comentário: Veja que a lógica da questão não deve permitir que um advogado atue em um mesmo processo na defesa e na acusação. Logo, deve existe uma tabela de ligação com o atributo tipo de atuação que vai fazer parte da chave primária, juntamente com os atributos chaves de processo e advogado. Essa tabela de ligação terá um relacionamento de 1:n com dada uma das relações. Sendo assim, nossa resposta encontra-se na alternativa E. Gabarito: E 50. BANCA: FCC ANO: 2016 ÓRGÃO: AL-MS PROVA: TÉCNICO DE INFORMÁTICA [51] Para responder à questão, considere o modelo mostrado na imagem abaixo, oriundo de uma situação hipotética: Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 120 160 Conclui-se, observando o modelo, que a) será necessário cadastrar, no mínimo, dois partidos com pelo menos um filiado cada. b) está sendo utilizada a notação IDEF1X para relacionar as duas entidades. c) se trata de um relacionamento 1:n não identificado. d) siglaPartido deveria fazer parte da chave primária na entidade Filiado. e) todo partido cadastrado precisará ter, no mínimo, um filiado cadastrado. Comentário: Veja que a notação que descreve a cardinalidade é a notação pé de galinha, e que, segundo o diagrama a cardinalidade seria de 1:n. Como o relacionamento é obrigatório, se você tiver instâncias na relação filiados, teria que ter pelo menos um partido político. Outro ponto é que a linha tracejada da notação descreve que o relacionamento é não identificado. Desta forma, nossa resposta está presente na alternativa C. Veja que sigla do partido é uma chave estrangeira na tabela filiado e não precisa fazer parte da chave primária. Agora chegamos na alternativa E, se você está lembrado que a linha tracejada trata de um relacionamento não identificador, que está relacionado ao fato do atributo de sigla do partido não compor a chave primária da relação Filiados. Logo, a alternativa e) está correta no meu ponto de vista. Mais uma vez, a ausência de recursos manteve o gabarito oficial. Gabarito: C 51. BANCA: FCC ANO: 2016 ÓRGÃO: PREFEITURA DE TERESINA - PI PROVA: ANALISTA TECNOLÓGICO - ANALISTA DE SISTEMAS [29] Considere o modelo relacional: Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 121 160 Após a criação das tabelas, foram cadastrados os seguintes registros: Sobre o modelo de dados relacional apresentado, considere: I. Usa a notação crow's foot para representar o grau, ou cardinalidade, do relacionamento entre as entidades Orgao e Obra. II. Para toda obra que for cadastrada será necessário inserir no campo siglaOrgao da entidade Obra um valor já cadastrado no campo siglaOrgao da entidade Orgao. III. Caso as entidades Orgao e Obra estabelecessem um relacionamento n:n, no momento da implementação das tabelas seria necessário criar uma tabela de ligação entre elas e desmembrar o relacionamento em dois relacionamentos 1:n. IV. O modelo não está normalizado, ou seja, os valores das colunas não serão atômicos quando forem cadastrados e haverá dependência funcional parcial na entidade Obra. Está correto o que se afirma APENAS em: a) II e III. b) I e IV. c) II, III e IV. d) I e III. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 122 160 e) II e IV. Comentário: Primeiramente a alternativa I está incorreta pois a notação utilizada para representar a cardinalidade do relacionamento é a notação de sombras (shadow). Já a afirmação II está correta pois existe uma integridade referencial que precisa ser mantida entre as relações. A afirmação II fala da criação de uma tabela de ligação para interligar as instâncias da entidade no caso de um relacionamento n:m. Tal fato está perfeitamente correto. Por fim, o modelo não apresenta problemas de normalização. Logo a afirmação IV está incorreta. Desta forma, podemos marcar nossa resposta na alternativa A. Gabarito: A 52. BANCA: FCC ANO: 2016 ÓRGÃO: PREFEITURA DE TERESINA - PI PROVA: TÉCNICO DE NÍVEL SUPERIOR - ANALISTA DE SISTEMAS [55] Durante o levantamento de requisitos um Analista de Sistemas identificou um relacionamento denominado Subordinação que relacionava um Órgão a outro da Prefeitura de Teresina como Órgão Subordinante (superior) e Órgão Subordinado. Esse relacionamento explicava a hierarquia administrativa entre órgãos. Desta forma, o Analista, durante a modelagem de dados, modelou corretamente Subordinação como a) relacionamento ternário. b) autorrelacionamento n:m. c) autorrelacionamento 1:n. d) relacionamento dependente. e) entidade nula. Comentário: Observamos que estamos tratando da mesma entidade: Órgão. Logo essa relação de subordinação trata de um autorelacionamento. Agora, precisamos descobrir a cardinalidade do mesmo. Sabemos que um órgão está organizado em uma estrutura hierárquica, logo um Orgão pode estar subordinado a apenas uma instância. Por outro lado, um Órgão pode ter vários subordinados. Desta forma, construímos uma cardinalidade 1:n. Gabarito: C 53. BANCA: FCC ANO: 2016 ÓRGÃO: COPERGÁS - PE PROVA: ANALISTA TECNOLOGIA DA INFORMAÇÃO [57] Considere as tabelas a seguir com seus respectivos campos. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 123 160 Deve-se verificar se há violação da segunda forma normal (2FN) SOMENTE nas tabelas: a) TabelaB e TabelaD. b) TabelaA e TabelaE. c) TabelaA, TabelaB e TabelaC. d) TabelaC e TabelaE. e) TabelaA, TabelaC e TabelaE. Comentário: Vejamos cada uma das tabelas. Na TabelaA, código_funcionário determina nome do funcionário e cargo, logo fere a 2FN. Na TabelaB, não temos problema com a segunda forma normal, até porque a chave é simples. Na TabelaC, cpf_cliente determina nome_cliente, uma dependência parcial, mais uma vez, um problema para 2FN. A TabelaD possui chave primária simples. Por fim, a TabelaE ra_aluno determina nome_aluno, novamente uma dependência parcial. Logo, temos nossa resposta na alternativa E. Gabarito: E 54. BANCA: FCC ANO: 2016 ÓRGÃO: TRF - 3ª REGIÃO PROVA: TÉCNICO JUDICIÁRIO - INFORMÁTICA [66] Para responder a questão, considere as informações abaixo. Se a tabela Processo for ligada a uma outra tabela em um relacionamento 1:n, sendo 1 processo para n da outra tabela, Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 124 160 a) as colunas NumeroSeqProcesso, DigitoProcesso e AnoAjuizamentoProcesso terão que aparecer obrigatoriamente na outra tabela como parte da chave primária. b) será obrigatório que na outra tabela seja cadastrado, pelo menos, um registro para cada valor da chave primária da tabela Processo. c) a chave primária da outra tabela precisa, necessariamente, aparecer na tabela Processo, para que seja garantida a integridade referencial. d) as colunas NumeroSeqProcesso, DigitoProcesso e AnoAjuizamentoProcesso terão que aparecer na outra tabela, para haver integridade referencial. e) nem todos os registroscadastrados na outra tabela precisarão estar relacionados a algum processo existente na tabela Processo Comentário: Essa questão do relacionamento entre a tabela processo e outra tabela em 1:n, basta pensar o seguinte. Supondo que um processo tenha vários ministros do supremo ligados a ele. E cada ministro só possa ter um processo por vez. Para simplificar vamos pensar que a chave tem apenas um nome genérico que é a descrição do processo: LAVAJATO, POSSEDELULA, MOSSACKFONSCECA. Agora basta associar cada um dos processos a lista de ministros para termos uma relação 1:n. Se voltarmos para os termos da questão, bastaria substituir os nomes dos processos pelos seus respectivos atributos que compõe a chave primária, no caso: NumeroSeqProcesso, DigitoProcesso e AnoAjuizamentoProcesso. Lewandowski (LAVAJATO) Carmen Lúcia (MOSSACKFONSCECA) Celso de Mello (MOSSACKFONSCECA) Marco Aurélio (POSSEDELULA) Gilmar Mendes (POSSEDELULA) Dias Toffoli (MOSSACKFONSCECA) Luis Fux (LAVAJATO) Rosa Weber (MOSSACKFONSCECA) Teori Zavascki (LAVAJATO) Roberto Barroso (POSSEDELULA) Edson Fachin (MOSSACKFONSCECA) Gabarito: D. 55. BANCA: FCC ANO: 2016 ÓRGÃO: TRF - 3ª REGIÃO PROVA: TÉCNICO JUDICIÁRIO - INFORMÁTICA [67] Uma entidade Departamento é composta pelos atributos abaixo. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 125 160 Código do Departamento Matrícula do Funcionário Nome do Departamento Nome do Funcionário Telefone do Departamento Telefone do Funcionário Número da CTPS Considerando-se que só poderá ser cadastrado um único número de telefone, tanto para os departamentos quanto para os funcionários, para que a entidade seja normalizada adequadamente, deve-se a) aplicar a segunda forma normal (2FN), de forma que todos os demais atributos sejam dependentes da chave primária, que deverá ser composta pelos atributos Código do Departamento e Matrícula do Funcionário. b) aplicar a primeira forma normal (1FN), colocando os atributos Matrícula do Funcionário, Nome do Funcionário, Telefone do Funcionário e Número da CTPS em uma entidade Funcionário relacionada adequadamente à entidade Departamento. c) criar mais duas entidades, Funcionário e Telefone, relacionando todas elas com cardinalidade 1:n, com o lado n na entidade Departamento. d) eliminar os campos Matrícula do Funcionário, Nome do Funcionário e Telefone do Funcionário, já que estes campos são os únicos que não contém dados do departamento, mas sim do funcionário. e) aplicar a segunda forma normal (2FN), que requer que todos os valores de atributos em uma entidade sejam atômicos, eliminando grupos repetidos e colocando-os cada um em uma entidade separada. Comentário: Analisando a questão acima podemos começar tentando supor quais são as dependências funcionais possíveis dentro do conjunto de atributos listados. Podemos perceber claramente dois determinantes principais Código do Departamento e Matrícula do Funcionário. Código do Departamento → Nome do Departamento, Telefone do Departamento Matrícula do Funcionário → Nome do Funcionário, Telefone do Funcionário, Número da CTPS CTPS é o número da carteira de trabalho e previdência social. Vejam que a normalização em tabelas deve partir desta separação, caso contrário teremos as informações de departamento presentes em todos os funcionários cadastrados. Sobre as alternativas que temos como possíveis para a resposta, dado que a entidade definida no enunciado da questão é a entidade Departamento, temos que separar os atributos que não fazem sentido estar presente nesta entidade e coloca-los em outra entidade, no caso Funcionario. Essa ideia está descrita na alternativa B, mas temos uma ressalva a fazer. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 126 160 Precisamos aplicar a segunda forma normal e não apenas a primeira, como está descrito na alternativa. A primeira forma normal trata de eliminar atributos compostos e multivalorados. Se logo no enunciado, já nos é informado que telefone não é um atributo multivalorado, não teríamos problema com a 1FN na tabela Departamento original. Já a definição da 2FN diz que não deve existir dependência parcial. Acredito que fosse possível, portanto, requerer a anulação da questão. Contudo o gabarito persistiu e nossa resposta, mesmo que imprecisa pode ser vista na alternativa B. Gabarito: B 56. BANCA: FCC ANO: 2016 ÓRGÃO: TRT - 14ª REGIÃO (RO E AC) PROVA: TÉCNICO JUDICIÁRIO - TECNOLOGIA DA INFORMAÇÃO [31] Considere as tabelas TipoProduto e Produto, abaixo, em um banco de dados adequadamente normalizado. É possível concluir corretamente que a) o produto de Código 30 na tabela Produto deveria receber em CódigoDoTipo o valor 3, considerando os valores atuais na tabela TipoProduto. b) os campos Código e Descrição, na tabela TipoProduto, precisam ser modificados para CódigoTipo e DescriçãoTipo, pois já existe Código e Descrição na tabela Produto. c) as tabelas Produto e TipoProduto possuem um relacionamento do tipo m:n. d) o Código, na tabela Produto, deve ser incrementado obrigatoriamente em 10. e) o CódigoDoTipo na tabela Produto é chave estrangeira, pois estabelece uma ligação com a chave primária Código da tabela TipoProduto. Comentário: Observem que não existe código de produto 3, logo a alternativa a) está errada. Os nomes dentro de uma tabela devem ser únicos. Contudo, outra tabela pode ter o mesmo nome de atributo. É importante lembrar que o full qualified name de um atributo é composto pelo nome do esquema + nome da tabela + nome do atrituto. Logo, dois atributos com mesmo nome em tabelas diferentes terão qualificadores distintos. Logo, a alternativa b) está errada. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 127 160 As tabelas tipo produto e produto tem um relacionamento 1:N. Afinal de contas, cada produto tem apenas 1 códigoDoTipo. Sendo assim, a alternativa c) também está incorreta. Já a alternativa d) é esdrúxula, não faz nenhum sentido somarmos 10 ao código do produto OBRIGATORIAMENTE. Veja que o fato deste padrão está presente nas linhas não quer dizer que ele seja mandatório. Por fim, nos resta a alternativa e) que de fato está correta. Veja que o código do Tipo é chave estrangeira na tabela Produto. Gabarito: E 57. BANCA: FCC ANO: 2016 ÓRGÃO: TRT - 23ª REGIÃO (MT) PROVA: TÉCNICO JUDICIÁRIO - TECNOLOGIA DA INFORMAÇÃO [29] Atenção: Para responder a questão, considere a informação abaixo. Um Técnico está participando da modelagem de um banco de dados utilizando o Modelo Entidade- Relacionamento − MER e se deparou, dentre outras, com a entidade Processo, que contém os seguintes atributos: NumeroProcesso − inteiro (PK) DigitoProcesso − inteiro (PK) AnoProcesso − inteiro (PK) NumeroOABAdvogadoProcesso − cadeia de caracteres NomeAdvogadoProcesso − cadeia de caracteres NumeroOrgaoJudiciarioProcesso − inteiro (FK) NumeroTribunal − inteiro (FK) NumeroUnidadeOrigemProcesso − inteiro (FK) Considerando as regras para o desenvolvimento do MER normalizado, o Técnico deve concluir corretamente que um atributo que NÃO pode estar na entidade Processo é o a) NomeAdvogadoProcesso. b) AnoProcesso. c) NumeroOrgaoJudiciarioProcesso. d) NumeroTribunal. e) NumeroUnidadeOrigemProcesso. Comentário: Primeira coisa que temos que ter em mente é que, quando a banca fala em modelo normalizado, ela está se referindo a 3FN. Sendo assim,temos que analisar os atributos Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 128 160 e suas dependências funcionais. Vejam que não temos nenhum atributo composto ou multivalorado. Logo não temos problemas com a primeira forma normal (1FN). A próxima etapa é verificar se a chave primária é composta. Vejam que temos uma chave composta por 3 atributos: NumeroProcesso, DigitoProcesso, AnoProcesso. Observe que todos os atributos são plenamente dependentes da chave primária. Logo, não temos problema com a segunda forma normal. Agora vamos analisar se existem problemas com a terceira foram normal. Veja que NumeroOABAdvogadoProcesso determina NomeAdvogadoProcesso. Sabemos que NumeroOABAdvogadoProcesso é determinado pela chave primária. Logo, verificamos uma dependência funcional transitiva. Isso deve ser evitado para que a terceira forma normal seja válida. Logo, o atributo NomeAdvogadoProcesso não pode estar presente nesta tabela. Sendo a alternativa A nossa resposta. Gabarito: A 58. BANCA: FCC ANO: 2016 ÓRGÃO: TRT - 23ª REGIÃO (MT) PROVA: ANALISTA JUDICIÁRIO – TECNOLOGIA DA INFORMAÇÃO [29] Um Analista está desenvolvendo um Modelo Entidade-Relacionamento do banco de dados de um tribunal sob uma perspectiva lógica e parte do modelo é formado pelas duas entidades abaixo, relacionadas com cardinalidade n:m. A entidade Processo contém os atributos: − NuM_Seq (número sequencial do processo por unidade de origem) − valor inteiro − (PK). − Dig (dígito verificador) − valor inteiro − (PK). − Ano (ano do ajuizamento) − valor inteiro− (PK). − Org (órgão ou segmento do Poder Judiciário, sendo 5 o correspondente à Justiça do Trabalho) − valor inteiro. − Tribunal (tribunal do segmento do Poder Judiciário, sendo 23 para o TRT da 23ª Região) − valor inteiro (FK). − Origem (unidade de origem do processo, sendo 4 zeros para o TRT) − valor inteiro. A entidade Advogado contém os atributos: − Num_OAB (número da OAB) − cadeia de caracteres− primary key. − Nome (nome do advogado) − cadeia de caracteres. − Telefone (telefone residencial e comercial) − cadeia de caracteres. Considerando que Advogado acompanha Processo, Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 129 160 a) o atributo Num_OAB precisa aparecer também na entidade Processo, como chave estrangeira, para garantir a integridade referencial entre os dados. b) o relacionamento não pode ser n:m, pois em cada Processo não se pode referenciar mais do que um Advogado para cada uma das partes, logo, trata-se de um relacionamento 1:n. c) o atributo Tribunal não pode ser chave estrangeira na entidade Processo, pois dos Tribunais não há necessidade de se cadastrar nada além do número. d) na implementação das tabelas, o relacionamento n:m deverá ser dividido em duas relações 1:n e uma nova tabela deverá ser criada para representar o relacionamento. e) como a relação é n:m, os atributos chave primária da entidade Processo devem aparecer na entidade Advogado como chave estrangeira e vice-versa. Comentário: Vejam que no modelo entidade-relacionamento descrito no enunciado o relacionamento entre Advogado e Processo é N:M. Desta forma, precisamos, ao passar para o modelo relacional, criarmos uma tabela de ligação para associar as instâncias destas relações. Nesta tabela teremos como atributos a chave primária de Advogado e a chame primária de Processo. Se tivéssemos algum atributo associado ao relacionamento, ele também apareceria nesta relação (Adgovado_Processo). Agora, observem que, quando olhamos isoladamente o relacionamento entre Advogado e Advogado_Processso, temos um relacionamento 1:N. Assim, uma linha de Advogado_Processo vai se relacionar com apenas um advogado. Para o outro lado, a ideia permanece, só que desta vez teremos apenas 1 processo. Isso é o que está descrito na alternativa D: “na implementação das tabelas, o relacionamento n:m deverá ser dividido em duas relações 1:n e uma nova tabela deverá ser criada para representar o relacionamento.” Sendo, está a nossa resposta. Gabarito: D 59. BANCA: FCC ANO: 2014 ÓRGÃO: TJ-AP PROVA: ANALISTA JUDICIÁRIO - DESENVOLVIMENTO DE SISTEMAS Uma Forma Normal (FN) é uma regra que deve ser obedecida por uma tabela para ser considerada bem projetada. As descrições a seguir são de tabelas em Formas Normais. I. A tabela não contém dependências transitivas, ou seja, as colunas que não sejam chave primária não dependem funcionalmente de outras colunas ou combinação de colunas que não sejam chave primária. II. A tabela não contém dependências parciais, ou seja, cada coluna não chave depende da chave primária completa e não apenas de parte dela. Os itens I e II descrevem, respectivamente, regras referentes à A 4FN e 2FN. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 130 160 B 2FN e 3FN. C 3FN e 2FN. D 1FN e 3FN. E 3FN e 4FN. Comentário: Pelas definições, que já tratamos na aula e em questões anteriores, as alternativas I e II estão associadas respetivamente a 3FN e 2FN. Vejam que a sequência da associação tenta levar você a confundir entre as alternativas B e C. Prestem bastante atenção para não cair nestas pegadinhas na hora da prova. Gabarito: C. 60. BANCA: FCC ANO: 2013 ÓRGÃO: MPE-MA PROVA: ANALISTA JUDICIÁRIO - BANCO DE DADOS Em um banco de dados relacional, a atividade de normalizar suas tabelas tem como objetivo A gerar os triggers especificados para o banco de dados. B eliminar, ou pelo menos diminuir redundâncias de dados desnecessárias nessas tabelas. C impedir o acesso ao banco de dados, por parte de usuários desconhecidos. D compilar todas as funções inseridas no banco de dados. E preparar todas as tabelas do banco de dados para um backup completo. Comentário. Vejam que a reposta bate completamente com a definição de normalização. Seus principais objetivos são reduzir a redundância do banco de dados e as anomalias de atualização. Falaremos mais sobre normalização na aula de modelo relacional. Gabarito: B. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 131 160 QUESTÕES FCC SEM COMENTÁRIO Tecnologia da Informação aplicada à Auditoria Tributária Atenção: Para responder às questões de números 61 a 68, considere as informações abaixo. Suponha que um Auditor foi encarregado de modelar e criar um banco de dados para um pequeno sistema de pedidos de produtos de informática. Para realizar essa tarefa, desenvolveu o modelo mostrado na figura abaixo. Após criar o modelo, implementou o banco de dados em um Sistema de Gerenciamento de Banco de Dados, criou as tabelas e cadastrou as seguintes informações: Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 132 160 1. Ano: 2018 Banca: FCC Órgão: SEFAZ-SC Cargo: Auditoria e Fiscalização Questão: 61. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 133 160 Considere que o Auditor digitouum comando para inserir os valores abaixo na tabela ItemPedido. idItePed qtdItePed idPed idPro 2 500 7 14 A mensagem correta que traduzirá o resultado da operação é (A) you have an error in your SQL syntax. (B) out of range value for column 'qtdItePed'. (C) cannot add a child row: a foreign key constraint fails. (D) duplicate entry '2-7' for key 'PRIMARY'. (E) register successfully - 1 row(s) affected. 2. Ano: 2018 Banca: FCC Órgão: SEFAZ-SC Cargo: Auditoria e Fiscalização Questão: 62. No modelo apresentado a entidade ItemPedido (A) possui chave primária composta, mas não possui chave estrangeira, logo, não garante integridade referencial. (B) possui uma chave primária composta pelos atributos idItePed e idPed, sendo que os atributos qtdItePed e idPro possuem dependência funcional completa com relação à chave primária. (C) deveria conter o campo PreUniPro, pois o preço unitário do produto deve ser incluído em cada item do pedido. (D) está relacionada com as entidades Pedido e Produto usando a notação Integrated DEFinition for Information Modelling − IDEF1X. (E) possui relação com cardinalidade n:n com a entidade Produto e 1:n com a entidade Pedido. 3. Ano: 2018 Banca: FCC Órgão: SEFAZ-SC Cargo: Auditoria e Fiscalização Questão: 63. O Auditor tentou incluir os dados abaixo na tabela Pedido. idPed dataPed idCli 13 2018-07-22 12 Ao executar a operação de inclusão, ocorreu um erro porque (A) já existe um pedido criado para o cliente 12. (B) não existe um pedido cadastrado com id 13. (C) não há um cliente com id 12 cadastrado na tabela Cliente. (D) já existe um pedido cadastrado com id 13. (E) a data cadastrada não existe, já que o formato correto é dd/mm/yyyy. 4. Ano: 2018 Banca: FCC Órgão: SEFAZ-SC Cargo: Auditoria e Fiscalização Questão: 64. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 134 160 Se na entidade ItemPedido fosse adicionado o atributo valorTotalItem e nesse atributo fosse armazenado o resultado da multiplicação do valor contido no atributo qtdItePed da entidade ItemPedido pelo valor contido no atributo PreUniPro da entidade Produto, a entidade ItemPedido violaria (A) todas as formas normais. (B) as regras de integridade referencial. (C) a terceira forma normal (3FN). (D) a segunda forma normal (2FN). (E) a primeira forma normal (1FN). 5. Ano: 2018 Banca: FCC Órgão: SEFAZ-SC Cargo: Auditoria e Fiscalização Questão: 65. Considere e avalie as asserções a seguir e a relação proposta entre elas. I. O relacionamento entre as entidades Pedido e ItemPedido é um relacionamento identificado PORQUE II. idPed, que é chave estrangeira na entidade ItemPedido, faz parte da chave primária desta entidade. É correto afirmar que (A) a primeira asserção é uma proposição verdadeira, e a segunda, uma proposição falsa. (B) tanto a primeira quanto a segunda são proposições falsas. (C) as duas asserções são proposições verdadeiras, mas a segunda não é justificativa correta da primeira. (D) a primeira asserção é uma proposição falsa, e a segunda, uma proposição verdadeira. (E) as duas asserções são proposições verdadeiras, e a segunda é uma justificativa correta da primeira. 6. Ano: 2018 Banca: FCC Órgão: DPE-AM Cargo: Analista Área: Banco de Sistemas Questão: 41. Considere que um Analista de Sistemas está modelando um banco de dados relacional de um escritório de Advocacia e precisa definir a tabela Consulta, que liga as tabelas Advogado e Cliente. Na tabela Consulta foram definidos os campos abaixo. OAB_Advogado – Primary Key ID_Cliente – Primary Key Data_Hora_Consulta Parecer_Do_Advogado Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 135 160 Especialidade_Do_Advogado A chave primária é composta pelos campos OAB_Advogado e ID_Cliente. Cada Advogado que trabalha no escritório atua em uma única especialidade (direito penal, civil, trabalhista etc.) e, na consulta, emite um parecer exclusivo para cada cliente atendido. Nestas condições, é correto afirmar que (A) há um problema de dependência funcional parcial, pois o campo Parecer_Do_Advogado é dependente apenas do campo OAB_Advogado, que é parte da chave primária. (B) a tabela Consulta está correta e adequadamente normalizada de acordo com a primeira, segunda e terceira formas normais. (C) há um problema de dependência órfã, pois o campo Data_Hora_Consulta deveria ser dependente do ID da consulta, campo que está faltando na tabela. (D) todos os atributos não chave dependem integralmente da chave primária composta, demostrando que a tabela Consulta está na quarta forma normal. (E) há um problema de dependência funcional parcial, pois o campo Especialidade_Do_Advogado é dependente apenas do campo OAB_Advogado, que é parte da chave primária. 7. Ano: 2018 Banca: FCC Órgão: DPE-AM Cargo: Analista Área: Banco de Sistemas Questão: 42 42. Na tabela abaixo, OAB_Advogado e ID_Cliente fazem parte da chave primária composta da tabela e Valor_Total_Honorario é resultado da aplicação do Percentual_De_Honorario sobre Valor_Da_Causa. Esta tabela (A) não está na primeira forma normal porque possui dependência funcional transitiva do campo ID_Cliente em relação ao campo OAB_Advogado. (B) cumpre todas as regras de normalização, já que todos os campos não chave são integralmente dependentes da chave primária composta. (C) não está na terceira forma normal porque possui um campo resultante de cálculo envolvendo outros dois campos que não fazem parte da chave primária. (D) respeita as boas práticas de modelagem e normalização, entretanto, para facilitar a busca de dados, a chave primária deveria ser composta apenas pelo campo OAB_Advogado. (E) não está na terceira forma normal porque possui tabelas aninhadas, ou seja, a tabela precisará ser dividida em duas tabelas relacionadas. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 136 160 8. Ano: 2018 Banca: FCC Órgão: TRT-06 Cargo: Analista Judiciário Área: Tecnologia da Informação Questão: 33 Considere hipoteticamente a existência de empresas que terceirizam o fornecimento de Recursos Humanos a outras empresas. Cada funcionário pode ser cadastrado em várias dessas empresas terceirizadas, nos mesmos cargos ou em cargos diferentes. Um modelo abstrato de dados dessa relação entre Empresa_Terceirizada_RH e Funcionario é mostrado abaixo. Para um Analista especializado em Tecnologia da Informação implementar o modelo mostrado na figura, em um Sistema Gerenciado de Banco de Dados relacional, terá que (A) criar uma tabela de ligação entre Empresa_Terceirizada_RH e Funcionario, fragmentando o relacionamento n:m em dois relacionamentos 1:1, já que não é possível implementar a relação n:m em bancos de dados relacionais. (B) excluir o atributo cargoFuncionario, pois cada funcionário poderá ter um cargo diferente em cada empresa terceirizada onde se cadastrar. (C) utilizar a linguagem SQL, adicionando o parâmetro CROSS REFERENCES à instrução CREATE TABLE na criação de ambas as tabelas para estabelecer a relação n:m entre elas. (D) excluir o campo cargoFuncionario da tabela Funcionario e inserir na tabela Empresa_Terceirizada_RH, pois o cargo é cadastrado quando o funcionário faz a inscrição na empresa terceirizada. (E) criar uma tabela de ligação entre Empresa_Terceirizada_RH e Funcionario, fragmentando o relacionamento n:m em dois relacionamentos1:n e colocando o campo cargoFuncionario como atributo simples nessa tabela de ligação. 9. Ano: 2017 Banca: FCC Órgão: ARTESP Cargo: Especialista em Regulação de Transporte - Tecnologia da Informação Questão: 73. 73. Na modelagem de um banco de dados relacional há diversos aspectos a serem considerados. Dentre tais aspectos, é correto afirmar que Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 137 160 (A) a função exercida por um conjunto de entidades ligado a um conjunto de relacionamentos denomina-se gatilho. (B) uma modelagem de um banco de dados relacional suporta um número máximo teórico de conjuntos de entidades, não superior a 30. (C) as propriedades descritivas de um conjunto de entidades são denominadas de atributos. (D) conjuntos de relacionamentos não admitem atributos do tipo descritivo. (E) um conjunto de relacionamentos recursivo liga dois ou mais conjuntos de entidades. 10. Ano: 2017 Banca: FCC Órgão: ARTESP Cargo: Especialista em Regulação de Transporte - Tecnologia da Informação Questão: 74. 74. Com o intuito de verificar se uma determinada relação R de um banco de dados relacional atende a segunda forma normal, deve-se verificar se (A) atributos que não façam parte de qualquer chave candidata de R são total e funcionalmente dependentes da chave primária de R. (B) o domínio de todos os atributos de R comportam valores considerados múltiplos. (C) todos os atributos de R são do tipo literal ou numérico. (D) a relação R tem uma chave primária composta por dois ou mais atributos. (E) o número de atributos da relação R é múltiplo de 2. 11. Ano: 2017 Banca: FCC Órgão: TRT-11 Cargo: Analista Judiciário de TI – Q. 44 Considere o modelo de dados abaixo. Na relação entre as entidades Advogado e Processo um advogado poderá atuar em diversos processos, tanto como advogado de defesa como de acusação. Assim, cada processo terá, pelo menos, dois advogados. Com base nesse modelo, na implementação das tabelas do banco de dados em um Sistema de Gerenciamento de Banco de Dados relacional, (A) será necessária a criação de uma tabela entre Advogado e Processo e o relacionamento N:N dará lugar a dois relacionamentos 1:N. (B) a chave primária da tabela Processo deverá ser chave estrangeira na tabela Advogado. (C) a chave primária da tabela Advogado deverá ser chave estrangeira na tabela Processo. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 138 160 (D) ambas as tabelas (Processo e Advogado) deverão ter chave primária composta. (E) a tabela Advogado deverá ter um campo para especificar o tipo de atuação do advogado em cada processo (defesa ou acusação). 12. Ano: 2017 Banca: FCC Órgão: TRE-SP Cargo: Técnico Judiciário de TI – Q. 57 Considere as entidades abaixo que são integrantes de um modelo de banco de dados relacional. Analisando-se as entidades, tem-se que (A) estas entidades estabelecem dois relacionamentos n:m não-identificados (non-Identifying). (B) se for incluído um atributo pontuacao, ele terá que ser incluído na entidade Candidato. (C) se for incluído o atributo dataInscricaoCandidato, ele terá que ser incluído na entidade Candidato_Concurso. (D) para que a entidade Candidato esteja na 1a forma normal, a entidade Candidato_Concurso precisa estar normalizada. (E) a entidade Candidato_Concurso nunca estará na 2a forma normal porque ela possui chave primária composta 13. Ano: 2016 Banca: FCC Órgão: TRE-SP Cargo: Analista Judiciário de TI – Q. 59. Considere as informações abaixo. PROCESSO (Num_Processo, [Titulo_Eleitor, Nome_Eleitor, Zona_Eleitoral_Eleitor, Secao_Eleitoral_Eleitor, Status_Eleitor_no_Processo], Data_Criacao_Processo, Data_Solucao_Processo). Sabe-se que os seguintes requisitos se aplicam: − Um Eleitor pode ser citado em um ou mais processos. − Um Processo pode citar um ou mais eleitores, portanto, os dados de Eleitor, entre chaves na tabela (ou relação) acima, podem ser integrantes de um grupo de repetição. − Os atributos grifados são chaves-primárias de seus respectivos grupos de atributos, ou seja, Num_Processo é chave dos dados de processo e Titulo_Eleitor é chave dos atributos de eleitor. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 139 160 − O Status_Eleitor_no_Processo (ex. Ativo, Inativo, Desistente) pode ser diferente nos processos nos quais é citado, ou seja, o mesmo eleitor pode ter, por exemplo, o status de Desistente em um processo, mas Ativo em outro). Após a aplicação da 3FN, a situação ficou como segue: − PROCESSO (Num_Processo, Data_Criacao_Processo, Data_Solucao_Processo) − ELEITOR (Titulo_Eleitor, Nome_Eleitor, Zona_Eleitoral_Eleitor, Secao_Eleitoral_Eleitor) − CITAÇÃO (Num_Processo, Titulo_Eleitor, Zona_Eleitoral_Eleitor, Status_Eleitor_no_Processo) Os atributos em negrito são as chaves identificadoras das tabelas (ou relações). Um experiente Analista de Sistemas analisou a situação e concluiu, corretamente, que a normalização (A) deve manter o atributo Num Processo em ELEITOR, para ficar integralmente correta. (B) deve incluir o atributo Data_Solucao_Processo na CITAÇÃO, para ficar integralmente correta. (C) está integralmente correta. (D) deve retirar o atributo Zona_Eleitoral_Eleitor da CITAÇÃO, para ficar integralmente correta. (E) deve incluir o atributo Status_Eleitor_no_Processo em PROCESSO, para ficar integralmente correta. 14. Ano: 2017 Banca: FCC Órgão: TRE-SP Cargo: Técnico Judiciário de TI – Operação de computadores - Q. 57 57. Um Técnico do TRE-SP deparou-se, hipoteticamente, com o seguinte problema: Um banco de dados relacional, modificado por outro profissional, começou a apresentar anomalias. As entidades conceituais que embasaram o banco, originalmente, eram Processo e Cidadão. Os requisitos especificavam que o relacionamento entre tais entidades atendesse ao fato de que um processo poderia relacionar-se com um único cidadão e um cidadão, claramente, poderia relacionar- se com mais de um processo. Isto para o caso do relacionamento denominado Autoria. Já, em outro relacionamento entre as mesmas entidades, denominado Participação, o processo poderia ter a participação de mais de um cidadão e cada um deles também poderia participar de mais de um processo. Ora, após a modificação do banco, quando os usuários tentaram entrar com mais de um cidadão na atualização de participação de um determinado processo, apesar de na tela ter o espaço para tal, o programa apresentava erro de consistência, não aceitando mais de um cidadão participante. Nesse caso, especificamente, ocorreu a implementação do relacionamento (A) Participação (Processo Participação de Cidadão, nesta ordem) como n:m. (B) Participação (Processo Participação de Cidadão, nesta ordem) como n:1. (C) Autoria (Processo Autoria de Cidadão, nesta ordem) como n:m. (D) Participação (Processo Participação de Cidadão, nesta ordem) como 1:n. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 140 160 (E) Autoria (Processo Autoria de Cidadão, nesta ordem) como n:1. 15. BANCA: FCC ANO: 2016 ÓRGÃO: PREFEITURA DE TERESINA - PI PROVA: ANALISTA TECNOLÓGICO - ANALISTA DE SUPORTE TÉCNICO [29] Em um banco de dados relacional existe a figura do valor nulo, ou seja, atributos de um conjuntode entidades podem ter esse valor. O valor nulo indica a) ausência de valor para um atributo de uma entidade de um conjunto de entidades. b) que em sua composição deve constar o caractere %. c) existência de múltiplos valores para um atributo de uma entidade de um conjunto de entidades. d) que o conteúdo do atributo de uma entidade de um conjunto de entidades foi preenchido com o valor 0 (zero). e) que em sua composição deve constar a sequência de caracteres //. 16. BANCA: FCC ANO: 2017 ÓRGÃO: TRE-SP PROVA: ANALISTA JUDICIÁRIO – ANÁLISE DE SISTEMAS [56] Durante a análise das características típicas de um Sistema Gerenciador de Bancos de Dados Relacional – SGBDR, um Analista de Sistemas verifica: I. Oferece suporte a várias linguagens sem a necessidade de uma sintaxe definida em quaisquer uma delas no âmbito de Data Manipulation Language − DML e Data Definition Language − DDL, porém deve ter, pelo menos, uma das linguagens com sintaxe restritiva e bem definida no âmbito de Transaction Control Language − TCL e Data Control Language − DCL. II. A Inserção, a atualização e a eliminação é de alto nível, ou seja, a capacidade de manipular a relação base ou relações derivadas como um operador único é aplicável não somente à recuperação de dados, mas também à inserção, alteração e eliminação de dados. III. Representa a descrição do Banco de Dados no nível físico na forma de dados em tabelas, permitindo que usuários autorizados apliquem formas distintas de manipular os dados nessas tabelas. Estão corretas as características que constam APENAS em a) I. b) I e II. c) II. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 141 160 d) II e III. e) III. 17. BANCA: FCC ANO: 2017 ÓRGÃO: TRF - 5ª REGIÃO PROVA: ANALISTA JUDICIÁRIO - INFORMÁTICA [44] Considere que a tabela abaixo para controle de funcionários, possui o campo registro como chave primária e que o campo salario_liquido é resultante da subtração do desconto sobre o salario_bruto. Esta tabela a) está na segunda forma normal (2FN) porque possui chave primária simples da qual dependem todos os demais atributos. b) possui uma anomalia de inclusão, já que não será possível cadastrar um valor do campo salario_liquido. c) atende corretamente a todas as principais formas normais (1FN, 2FN e 3FN). d) não está na terceira forma normal (3FN) porque possui um campo calculado. e) não está na primeira forma normal (1FN), pois salario_liquido não é dependente da chave primária. 18. BANCA: FCC ANO: 2017 ÓRGÃO: TST PROVA: ANALISTA JUDICIÁRIO – ANÁLISE DE SISTEMAS [31] O modelo relacional é um modelo formal, baseado na teoria matemática das relações, que representa os dados no banco de dados em uma coleção de tabelas relacionadas. Utiliza o conceito de a) herança, ou referência a objetos do tipo tabela, de forma semelhante ao que ocorre com as classes em modelos orientados a objetos. b) tuplas, que lidam com qualquer estrutura de dados existente em aplicações criadas em linguagens de programação orientadas a objetos. c) colunas (ou campos), podendo conter valores inteiros, reais, literais e de referência, não estando limitadas quanto aos tipos de dados. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 142 160 d) stored procedures, que são estruturas semelhantes aos métodos dos modelos orientados a objetos, porém, os procedures não são limitados como os métodos. e) integridade referencial, onde o conteúdo de um campo chave estrangeira de uma relação precisa coincidir com um valor que esteja contido no campo que é chave primária na sua tabela pai. 19. BANCA: FCC ANO: 2017 ÓRGÃO: TST PROVA: ANALISTA JUDICIÁRIO – ANÁLISE DE SISTEMAS [32] Considere uma relação de trabalho flexível e hipotética, onde cada funcionário, que possui uma única Carteira de Trabalho e Previdência Social, pode trabalhar em diversas empresas ao mesmo tempo, e estas empresas podem manter inúmeros funcionários. Nessa relação estabelecida de forma correta em um Sistema Gerenciador de Banco de Dados Relacional, considere que a chave primária da tabela funcionario é matriculaFuncionario, da tabela empresa é idEmpresa e da tabela empresa_funcionario é uma composição de matriculaFuncionario e idEmpresa. Um Analista de Sistemas infringirá as regras da segunda forma normal (2FN) se colocar na tabela empresa_funcionario o campo a) cargo. b) salario. c) cargaHorariaMensal. d) regrasDeTrabalho. e) numeroCarteiraTrabalho. 20. BANCA: FCC ANO: 2017 ÓRGÃO: TST PROVA: ANALISTA JUDICIÁRIO – ANÁLISE DE SISTEMAS [54] Considere, por hipótese, que um Analista de Sistemas está trabalhando no projeto conceitual de um sistema de controle de processos compartilhado entre tribunais, o qual futuramente será projetado para ser processado em um modelo de banco de dados relacional normalizado. O Analista levantou os seguintes requisitos: − A entidade tribunal deverá ser identificada de forma unívoca pelo atributo identidade do tribunal que será a chave primária; A entidade processo terá sua chave primária composta por um número sequencial de 1 a n mais a identidade do tribunal ao qual está vinculado. O motivo da incorporação da identidade do tribunal na chave primária de processo bem como o tipo de relacionamento entre as entidades tribunal e processo são, respectivamente, a a) manutenção da unicidade da identidade do tribunal; relacionamento de dependência (tribunal é entidade fraca de processo). b) necessidade de se manter, em uma única tabela, os tribunais e os processos; relacionamento unitário. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 143 160 c) necessidade de se manter um pseudo-relacionamento entre tribunal e processo; relacionamento ternário (tribunal + tribunal e processo). d) manutenção da unicidade da identidade do processo; relacionamento de dependência (tribunal é entidade fraca de processo). e) manutenção da unicidade da identidade do processo; relacionamento de dependência (processo é entidade fraca de tribunal). 21. BANCA: FCC ANO: 2017 ÓRGÃO: TST PROVA: ANALISTA JUDICIÁRIO – ANÁLISE DE SISTEMAS [55] Considere, por hipótese, os requisitos abaixo, levantados durante a modelagem de dados: I. A entidade Empregado exerce dois papéis: Gerente e Gerenciado. Cada empregado tem um só gerente e um gerente chefia diversos empregados. II. Um empregado (entidade Empregado) ocupa somente um cargo (entidade Cargo) que também pode ser ocupado por outros empregados. III. Um departamento (entidade Departamento) aloca diversos empregados (entidade Empregado). Um empregado só pode ser alocado em um único departamento. IV. Os atributos identificadores das entidades Empregado, Cargo e Departamento são, respectivamente, Matrícula, Código do Cargo e Código do Departamento. Em um modelo normalizado, são chaves estrangeiras em I, II e III, respectivamente, a) Matrícula (do gerenciado), Código do Cargo e Código do Departamento. b) Matrícula (do gerente), Matrícula e Código do Departamento. c) Matrícula (do gerente), Código do Cargo e Código do Departamento. d) Matrícula (do gerenciado), Matrícula e Matrícula. e) Matrícula (do gerenciado), Código do Cargo e Matrícula. 22. BANCA: FCC ANO: 2017 ÓRGÃO: TST PROVA: TÉCNICO JUDICIÁRIO – PROGRAMAÇÃO [61] Considere o diagrama entidade-relacionamento abaixo. As chaves primárias de Cidadão e Processo são pk_cidadaoe pk_processo, respectivamente. O relacionamento Consulta possui a cardinalidade 0,n com n>1 em ambos os lados. Em um banco de dados relacional normalizado, estará correta a criação da tabela Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 144 160 a) Processo tendo como chave estrangeira pk_cidadao e Consulta tendo como chave estrangeira pk_processo. b) Cidadão tendo como chave estrangeira pk_processo e Consulta tendo como chave estrangeira pk_cidadao. c) Consulta tendo pk_processo como chave primária e Cidadão tendo pk_processo como chave estrangeira. d) Consulta tendo pk_cidadao como chave primária e Processo tendo pk_cidadao como chave estrangeira. e) Consulta tendo como chave primária pk_cidadao mais pk_processo. 23. BANCA: FCC ANO: 2017 ÓRGÃO: TST PROVA: TÉCNICO JUDICIÁRIO – PROGRAMAÇÃO [64] Considere as tabelas relacionais abaixo. Considerando que os elementos que identificam de forma única e inequívoca um cidadão e um processo são, respectivamente, CPF_Cidadao e Num_Processo e que a relação Tab_Rel_Processo_Cidadao entre Tab_Cidadao e Tab_Processo é de muitos para muitos, ou seja, um cidadão pode impetrar um ou mais processos e um processo pode ser impetrado por um ou mais cidadãos, as formas normais infringidas, respectivamente, nas três tabelas são: a) 1FN, 2FN e 3FN. b) 2FN, nenhuma e 3FN. c) 3FN, 1FN e nenhuma. d) nenhuma, 1FN e 2FN. e) nenhuma, nenhuma e 2FN. 24. BANCA: FCC ANO: 2017 ÓRGÃO: TST PROVA: ANALISTA JUDICIÁRIO – SUPORTE EM TECNOLOGIA DA INFORMAÇÃO Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 145 160 [68] Em um Modelo Entidade-Relacionamento existem as entidades NotaFiscal e Produto que estabelecem uma relação n:m. Em um Sistema Gerenciador de Banco de Dados Relacional, um Analista de Suporte implementou a tabela de ligação ItemNotaFiscal entre as tabelas NotaFiscal e Produto, contendo os campos abaixo. NumeroNotaFiscal (chave primária, chave estrangeira) NumeroProduto (chave primária, chave estrangeira) Descricao Quantidade PrecoUnitario Uma anomalia existente na tabela ItemNotaFiscal, que infringe as regras de normalização, é a existência de a) atributos compostos ou derivados. b) dependência funcional parcial. c) dependência funcional transitiva indireta. d) atributos multivalorados. e) dependência funcional transitiva direta. 25. BANCA: FCC ANO: 2017 ÓRGÃO: DPE-RS PROVA: ANALISTA – BANCO DE DADOS [32] O modelo relacional em banco de dados comporta o conceito de chaves primárias e de chaves candidatas, ambas incluindo a propriedade da unidade. Supondo K um conjunto de atributos da tabela T, K terá a propriedade da unicidade se a) o número de atributos que compõem K for igual a 1. b) comportar apenas 1 índice em seus atributos. c) houver apenas 1 atributo do tipo numérico em K. d) não houver duas tuplas de T com o mesmo valor para K. e) todos os atributos de K tiverem a mesma limitação em seus números de caracteres. 26. BANCA: FCC ANO: 2017 ÓRGÃO: DPE-RS PROVA: ANALISTA – BANCO DE DADOS [36] Observou-se que uma tabela de um banco de dados relacional está na segunda forma normal pois, além de estar na primeira forma normal, a) existe um número par de atributos na chave primária da tabela. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 146 160 b) cada atributo não chave da tabela é dependente de todos os atributos da chave primária da tabela. c) todos atributos da tabela são atômicos (contêm exatamente um valor para cada atributo). d) os atributos da chave primária da tabela são do tipo numérico. e) os atributos não chave da tabela são mutuamente dependentes entre si. 27. BANCA: FCC ANO: 2017 ÓRGÃO: DPE-RS PROVA: ANALISTA – BANCO DE DADOS [33] Em um banco de dados relacional, quando se faz a definição do domínio de um atributo, o objetivo é determinar a) o número máximo de atributos permitido para a tabela desse atributo. b) o número máximo de registros permitido para a tabela desse atributo. c) a regra de formação do nome desse atributo. d) o conjunto de valores permitido para cada atributo. e) as tabelas que podem utilizar tal atributo como chave estrangeira. 28. BANCA: FCC ANO: 2017 ÓRGÃO: TRE-PR PROVA: ANALISTA JUDICIÁRIO – ANÁLISE DE SISTEMAS [37] Considere a tabela ItemPedido abaixo, onde a chave primária é composta pelos campos NumeroPedido e NumeroItemPedido. É correto afirmar que a) para esta tabela estar na 2FN a chave primária não pode ser composta. b) NumeroPedido não pode conter valores repetidos, pois é parte da chave primária. c) para esta tabela estar na 3FN a coluna TotalPedido deve ser excluída. d) esta tabela está na 3FN porque não tem dependência transitiva de colunas. e) esta tabela está na 1FN porque a chave primária é composta. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 147 160 29. BANCA: FCC ANO: 2017 ÓRGÃO: TRE-PR PROVA: TÉCNICO JUDICIÁRIO – PROGRAMAÇÃO DE SISTEMAS [40] Considere hipoteticamente que em um Tribunal cada Juiz conta com a ajuda de vários Assistentes, de acordo com o volume de processos que precisa analisar e julgar. Cada Assistente, por sua vez, auxilia vários Juízes, de acordo com a demanda de trabalho. Se Juiz e Assistente forem entidades de um modelo de dados relacional, a cardinalidade entre elas será n:m. Na criação das tabelas a partir do modelo, a) a chave primária da tabela Juiz será chave estrangeira na tabela Assistente e a chave primária da tabela Assistente será chave estrangeira na tabela Juiz. b) será necessário criar uma tabela de ligação entre Juiz e Assistente e o relacionamento n:m dará lugar a dois relacionamentos 1:n. c) será estabelecido um relacionamento bidirecional entre as tabelas Juiz e Assistente, com cardinalidade 1:1. d) para que a relação n:m seja mantida, as chaves primárias das tabelas Juiz e Assistente deverão ser compostas pelo Id do Juiz e pelo Id do Assistente. e) será necessário criar uma tabela de ligação entre Juiz e Assistente, gerando assim dois relacionamentos 1:1. 30. BANCA: FCC ANO: 2017 ÓRGÃO: TRT - 24ª REGIÃO (MS) PROVA: TÉCNICO JUDICIÁRIO - TECNOLOGIA DA INFORMAÇÃO [43] Considere, hipoteticamente, uma relação de trabalho em que um funcionário pode trabalhar em várias empresas, sendo registrado em todas elas. Esta relação é representada na figura abaixo. Nesta relação, cada funcionário pode ocupar cargos diferentes em cada empresa onde trabalha recebendo, inclusive, salários diferentes por jornadas de trabalho variáveis. Nestas condições, quando o modelo for implementado em um Sistema Gerenciador de Banco de Dados relacional, a) se for incluído um campo salário este deverá ser colocado na tabela Funcionário. b) somente as tabelas Funcionário e Empresa serão criadas e relacionadas com cardinalidade n:n. c) o relacionamento n:n deverá ser desmembrado em dois relacionamentos 1:1, sendo Trabalha a entidade de ligação entre Funcionário e Empresa. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 148 160 d) se for incluídoum campo cargo este deverá ser colocado na tabela associativa identificada como Trabalha. e) se for incluído um campo CargaHoráriaMensal ele deverá ser colocado na tabela Empresa. 31. BANCA: FCC ANO: 2017 ÓRGÃO: TRE-PR PROVA: TÉCNICO JUDICIÁRIO - OPERAÇÃO DE COMPUTADORES [33] Em uma empresa cada projeto é desenvolvido por vários funcionários e cada funcionário só pode participar de um projeto. Para controlar os funcionários alocados em cada projeto foi criada a tabela abaixo em um banco de dados. Considerando as regras de modelagem de bancos de dados relacionais, esta tabela a) está modelada corretamente, já que permite visualizar em que projeto cada funcionário está trabalhando e quantos funcionários estão alocados em cada projeto. b) não está correta, pois seria necessário definir uma chave primária composta pelos campos idProjeto e MatriculaFuncionario, já que há repetição de idProjeto em várias linhas. c) deve ser desmembrada em duas tabelas relacionadas com cardinalidade 1:n (Projeto e Funcionario), para evitar a repetição dos dados do projeto para cada funcionário que participa dele. d) não está adequadamente modelada, pois um mesmo funcionário pode participar de vários projetos ao mesmo tempo, contrariando as regras do modelo relacional. e) deve ser ampliada, incluindo-se outras informações sobre o projeto (como valor e descrição) e sobre os funcionários (como cargo e função). 32. BANCA: FCC ANO: 2016 ÓRGÃO: PGE-MT PROVA: ANALISTA – ANALISE DE SISTEMAS [37] Considere um banco de dados cujo modelo Entidade-Relacionamento, em uma perspectiva lógica, possui duas entidades: processo e advogado relacionadas com cardinalidade n:m. Cada advogado pode atuar em diversos processos, hora como advogado de acusação, hora como advogado de defesa, o que é definido em um atributo tipo_atuacao. Cada processo poderá ter, Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 149 160 consequentemente, pelo menos dois advogados, um de defesa e um de acusação. Quando o modelo for implementado em um sistema gerenciador de banco de dados relacional, a) as duas entidades darão origem a duas tabelas e a relação n:m será implementada por um campo de ligação comum em ambas as tabelas. b) o campo tipo_atuacao será colocado na tabela advogado, pois o tipo de atuação é um atributo do advogado, que define a forma como ele atuará no processo. c) deverá ser criada uma tabela de ligação entre processo e advogado, originando duas relações com cardinalidade 1:1. O atributo tipo_atuacao será colocado nessa tabela. d) deverá ser criada uma tabela Atuação com um único campo, tipo_atuacao, já que o tipo da atuação do advogado pode ser diferente em cada processo que ele atua. e) deverá ser criada uma tabela de ligação entre processo e advogado, originando dois relacionamentos 1:n. O atributo tipo_atuacao será colocado nessa tabela. 33. BANCA: FCC ANO: 2016 ÓRGÃO: AL-MS PROVA: TÉCNICO DE INFORMÁTICA [51] Para responder à questão, considere o modelo mostrado na imagem abaixo, oriundo de uma situação hipotética: Conclui-se, observando o modelo, que a) será necessário cadastrar, no mínimo, dois partidos com pelo menos um filiado cada. b) está sendo utilizada a notação IDEF1X para relacionar as duas entidades. c) se trata de um relacionamento 1:n não identificado. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 150 160 d) siglaPartido deveria fazer parte da chave primária na entidade Filiado. e) todo partido cadastrado precisará ter, no mínimo, um filiado cadastrado. 34. BANCA: FCC ANO: 2016 ÓRGÃO: PREFEITURA DE TERESINA - PI PROVA: ANALISTA TECNOLÓGICO - ANALISTA DE SISTEMAS [29] Considere o modelo relacional: Após a criação das tabelas, foram cadastrados os seguintes registros: Sobre o modelo de dados relacional apresentado, considere: I. Usa a notação crow's foot para representar o grau, ou cardinalidade, do relacionamento entre as entidades Orgao e Obra. II. Para toda obra que for cadastrada será necessário inserir no campo siglaOrgao da entidade Obra um valor já cadastrado no campo siglaOrgao da entidade Orgao. III. Caso as entidades Orgao e Obra estabelecessem um relacionamento n:n, no momento da implementação das tabelas seria necessário criar uma tabela de ligação entre elas e desmembrar o relacionamento em dois relacionamentos 1:n. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 151 160 IV. O modelo não está normalizado, ou seja, os valores das colunas não serão atômicos quando forem cadastrados e haverá dependência funcional parcial na entidade Obra. Está correto o que se afirma APENAS em: a) II e III. b) I e IV. c) II, III e IV. d) I e III. e) II e IV. 35. BANCA: FCC ANO: 2016 ÓRGÃO: PREFEITURA DE TERESINA - PI PROVA: TÉCNICO DE NÍVEL SUPERIOR - ANALISTA DE SISTEMAS [55] Durante o levantamento de requisitos um Analista de Sistemas identificou um relacionamento denominado Subordinação que relacionava um Órgão a outro da Prefeitura de Teresina como Órgão Subordinante (superior) e Órgão Subordinado. Esse relacionamento explicava a hierarquia administrativa entre órgãos. Desta forma, o Analista, durante a modelagem de dados, modelou corretamente Subordinação como a) relacionamento ternário. b) autorrelacionamento n:m. c) autorrelacionamento 1:n. d) relacionamento dependente. e) entidade nula. 36. BANCA: FCC ANO: 2016 ÓRGÃO: COPERGÁS - PE PROVA: ANALISTA TECNOLOGIA DA INFORMAÇÃO [57] Considere as tabelas a seguir com seus respectivos campos. Deve-se verificar se há violação da segunda forma normal (2FN) SOMENTE nas tabelas: a) TabelaB e TabelaD. b) TabelaA e TabelaE. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 152 160 c) TabelaA, TabelaB e TabelaC. d) TabelaC e TabelaE. e) TabelaA, TabelaC e TabelaE. 37. BANCA: FCC ANO: 2016 ÓRGÃO: TRF - 3ª REGIÃO PROVA: TÉCNICO JUDICIÁRIO - INFORMÁTICA [66] Para responder a questão, considere as informações abaixo. Se a tabela Processo for ligada a uma outra tabela em um relacionamento 1:n, sendo 1 processo para n da outra tabela, a) as colunas NumeroSeqProcesso, DigitoProcesso e AnoAjuizamentoProcesso terão que aparecer obrigatoriamente na outra tabela como parte da chave primária. b) será obrigatório que na outra tabela seja cadastrado, pelo menos, um registro para cada valor da chave primária da tabela Processo. c) a chave primária da outra tabela precisa, necessariamente, aparecer na tabela Processo, para que seja garantida a integridade referencial. d) as colunas NumeroSeqProcesso, DigitoProcesso e AnoAjuizamentoProcesso terão que aparecer na outra tabela, para haver integridade referencial. e) nem todos os registros cadastrados na outra tabela precisarão estar relacionados a algum processo existente na tabela Processo 38. BANCA: FCC ANO: 2016 ÓRGÃO: TRF - 3ª REGIÃO PROVA: TÉCNICO JUDICIÁRIO - INFORMÁTICA [67] Uma entidade Departamento é composta pelos atributos abaixo. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579153 160 Código do Departamento Matrícula do Funcionário Nome do Departamento Nome do Funcionário Telefone do Departamento Telefone do Funcionário Número da CTPS Considerando-se que só poderá ser cadastrado um único número de telefone, tanto para os departamentos quanto para os funcionários, para que a entidade seja normalizada adequadamente, deve-se a) aplicar a segunda forma normal (2FN), de forma que todos os demais atributos sejam dependentes da chave primária, que deverá ser composta pelos atributos Código do Departamento e Matrícula do Funcionário. b) aplicar a primeira forma normal (1FN), colocando os atributos Matrícula do Funcionário, Nome do Funcionário, Telefone do Funcionário e Número da CTPS em uma entidade Funcionário relacionada adequadamente à entidade Departamento. c) criar mais duas entidades, Funcionário e Telefone, relacionando todas elas com cardinalidade 1:n, com o lado n na entidade Departamento. d) eliminar os campos Matrícula do Funcionário, Nome do Funcionário e Telefone do Funcionário, já que estes campos são os únicos que não contém dados do departamento, mas sim do funcionário. e) aplicar a segunda forma normal (2FN), que requer que todos os valores de atributos em uma entidade sejam atômicos, eliminando grupos repetidos e colocando-os cada um em uma entidade separada. 39. BANCA: FCC ANO: 2016 ÓRGÃO: TRT - 14ª REGIÃO (RO E AC) PROVA: TÉCNICO JUDICIÁRIO - TECNOLOGIA DA INFORMAÇÃO [31] Considere as tabelas TipoProduto e Produto, abaixo, em um banco de dados adequadamente normalizado. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 154 160 É possível concluir corretamente que a) o produto de Código 30 na tabela Produto deveria receber em CódigoDoTipo o valor 3, considerando os valores atuais na tabela TipoProduto. b) os campos Código e Descrição, na tabela TipoProduto, precisam ser modificados para CódigoTipo e DescriçãoTipo, pois já existe Código e Descrição na tabela Produto. c) as tabelas Produto e TipoProduto possuem um relacionamento do tipo m:n. d) o Código, na tabela Produto, deve ser incrementado obrigatoriamente em 10. e) o CódigoDoTipo na tabela Produto é chave estrangeira, pois estabelece uma ligação com a chave primária Código da tabela TipoProduto. 40. BANCA: FCC ANO: 2016 ÓRGÃO: TRT - 23ª REGIÃO (MT) PROVA: TÉCNICO JUDICIÁRIO - TECNOLOGIA DA INFORMAÇÃO [29] Atenção: Para responder a questão, considere a informação abaixo. Um Técnico está participando da modelagem de um banco de dados utilizando o Modelo Entidade- Relacionamento − MER e se deparou, dentre outras, com a entidade Processo, que contém os seguintes atributos: NumeroProcesso − inteiro (PK) DigitoProcesso − inteiro (PK) AnoProcesso − inteiro (PK) NumeroOABAdvogadoProcesso − cadeia de caracteres NomeAdvogadoProcesso − cadeia de caracteres NumeroOrgaoJudiciarioProcesso − inteiro (FK) NumeroTribunal − inteiro (FK) NumeroUnidadeOrigemProcesso − inteiro (FK) Considerando as regras para o desenvolvimento do MER normalizado, o Técnico deve concluir corretamente que um atributo que NÃO pode estar na entidade Processo é o a) NomeAdvogadoProcesso. b) AnoProcesso. c) NumeroOrgaoJudiciarioProcesso. d) NumeroTribunal. e) NumeroUnidadeOrigemProcesso. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 155 160 41. BANCA: FCC ANO: 2016 ÓRGÃO: TRT - 23ª REGIÃO (MT) PROVA: ANALISTA JUDICIÁRIO – TECNOLOGIA DA INFORMAÇÃO [29] Um Analista está desenvolvendo um Modelo Entidade-Relacionamento do banco de dados de um tribunal sob uma perspectiva lógica e parte do modelo é formado pelas duas entidades abaixo, relacionadas com cardinalidade n:m. A entidade Processo contém os atributos: − NuM_Seq (número sequencial do processo por unidade de origem) − valor inteiro − (PK). − Dig (dígito verificador) − valor inteiro − (PK). − Ano (ano do ajuizamento) − valor inteiro− (PK). − Org (órgão ou segmento do Poder Judiciário, sendo 5 o correspondente à Justiça do Trabalho) − valor inteiro. − Tribunal (tribunal do segmento do Poder Judiciário, sendo 23 para o TRT da 23ª Região) − valor inteiro (FK). − Origem (unidade de origem do processo, sendo 4 zeros para o TRT) − valor inteiro. A entidade Advogado contém os atributos: − Num_OAB (número da OAB) − cadeia de caracteres− primary key. − Nome (nome do advogado) − cadeia de caracteres. − Telefone (telefone residencial e comercial) − cadeia de caracteres. Considerando que Advogado acompanha Processo, a) o atributo Num_OAB precisa aparecer também na entidade Processo, como chave estrangeira, para garantir a integridade referencial entre os dados. b) o relacionamento não pode ser n:m, pois em cada Processo não se pode referenciar mais do que um Advogado para cada uma das partes, logo, trata-se de um relacionamento 1:n. c) o atributo Tribunal não pode ser chave estrangeira na entidade Processo, pois dos Tribunais não há necessidade de se cadastrar nada além do número. d) na implementação das tabelas, o relacionamento n:m deverá ser dividido em duas relações 1:n e uma nova tabela deverá ser criada para representar o relacionamento. e) como a relação é n:m, os atributos chave primária da entidade Processo devem aparecer na entidade Advogado como chave estrangeira e vice-versa. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 156 160 42. BANCA: FCC ANO: 2014 ÓRGÃO: TJ-AP PROVA: ANALISTA JUDICIÁRIO - DESENVOLVIMENTO DE SISTEMAS Uma Forma Normal (FN) é uma regra que deve ser obedecida por uma tabela para ser considerada bem projetada. As descrições a seguir são de tabelas em Formas Normais. I. A tabela não contém dependências transitivas, ou seja, as colunas que não sejam chave primária não dependem funcionalmente de outras colunas ou combinação de colunas que não sejam chave primária. II. A tabela não contém dependências parciais, ou seja, cada coluna não chave depende da chave primária completa e não apenas de parte dela. Os itens I e II descrevem, respectivamente, regras referentes à A 4FN e 2FN. B 2FN e 3FN. C 3FN e 2FN. D 1FN e 3FN. E 3FN e 4FN. 43. BANCA: FCC ANO: 2013 ÓRGÃO: MPE-MA PROVA: ANALISTA JUDICIÁRIO - BANCO DE DADOS Em um banco de dados relacional, a atividade de normalizar suas tabelas tem como objetivo A gerar os triggers especificados para o banco de dados. B eliminar, ou pelo menos diminuir redundâncias de dados desnecessárias nessas tabelas. C impedir o acesso ao banco de dados, por parte de usuários desconhecidos. D compilar todas as funções inseridas no banco de dados. E preparar todas as tabelas do banco de dados para um backup completo. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 157 160 GABARITO 1. D 2. B 3. C 4. C 5. E 6. E 7. C 8. E 9. C 10. A 11. A 12. C 13. D 14. B 15. A 16. C 17. D 18. E 19. E 20. E 21. C 22. E 23. D 24. B 25. D 26. B 27. D 28. C 29. B 30. D 31. C 32. E 33. C 34. A 35. C 36. E 37. D 38. B 39. E 40. A 41. D Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 158 16042. C 43. B Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 159 160 CONSIDERAÇÕES FINAIS Chegamos ao final da nossa aula sobre o modelo relacional! Considero esse um dos assuntos mais densos do nosso curso. Tente esgotar as questões sobre o assunto e, se possível, assistir as videoaulas com os conceitos associados ao tema. A continuação desse assunto encontra-se na próxima aula. Devemos falar sobre a linguagem SQL, por meio do SQL é possível usar os conceitos do modelo relacional em Sistemas Gerenciadores de banco de dados para criar estruturas de armazenamento e manipular os dados sobre as mesmas. Espero reencontrar você. As videoaulas referentes a esse assunto já estão disponibilizadas no site do Estratégia Concursos®, não deixe de assistir e mandar suas observações! Até a próxima! Thiago Cavalcanti Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579 160 160 Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 02 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 1177579