Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 01 Análise de Informações p/ TCU-2015 - Auditor Professor: Victor Dalton 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 1 de 124 AULA 01: Bancos de dados (2ª parte) SUMÁRIO PÁGINA Introdução 1 1.9 Modelo Entidade-Relacionamento 2 1.10 Cardinalidade 4 1.11 Modelo Relacional 10 1.12 Gerenciamento de Transações 20 1.13 Catálogo de Dados 22 1.14 Views 24 1.15 Índices 27 Exercícios Comentados 34 Considerações Finais 92 Exercícios 93 Gabarito 124 Olá pessoal! Que bom que vocês vieram pro curso! Agora é hora de retribuir a confiança de vocês. Continuando nosso estudo, vamos avançar nos conceitos fundamentais de Bancos de Dados, selecionando os tópicos mais voltados para o certame. Vamos ao que interessa? Observação importante: este curso é protegido por direitos autorais (copyright), nos termos da Lei 9.610/98, que altera, atualiza e consolida a legislação sobre direitos autorais e dá outras providências. Grupos de rateio e pirataria são clandestinos, violam a lei e prejudicam os professores que elaboram os cursos. Valorize o trabalho de nossa equipe adquirindo os cursos honestamente através do site Estratégia Concursos ;-) 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 2 de 124 BANCOS DE DADOS 1.9 O Modelo Entidade-Relacionamento Aqui estamos diante de um diagrama ER, do modelo entidade- relacionamento. Aquele mais conceitual, alto nível. Façamos uma breve legenda: Retângulos: são as entidades. Losangos: representam os relacionamentos. Elipses ou circunferências: representam os atributos (também chamados de identificadores, ausente neste diagrama). Linhas: vinculam conjuntos de entidades a conjuntos de relacionamentos. Linhas duplas: indicam participação total de uma entidade em um conjunto de relacionamentos. Esta abordagem, como você pode perceber, consegue mostrar para um usuário, até mesmo o leigo em banco de dados, algumas características desse banco hipotético, ilustrado no modelo. Dele, é possível compreender que: Empregados gerenciam departamentos; Empregados trabalham em projetos;e 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 3 de 124 Departamentos controlam projetos (perceba as sentenças no estilo entidade-relacionamento-entidade, em lógica de primeira ordem). Perceba que, com as informações apresentadas, detalhes de implementação do banco de dados ainda não são conhecidos. Quais são as tabelas desse banco? Você ainda não sabe. Um primeiro destaque nesse modelo, comumente cobrado em provas, é a indicação de participação parcial ou participação total no relacionamento, representados, respectivamente, por linhas simples em duplas. Uma participação parcial indica que aquele relacionamento não é obrigatório para aquela entidade. Preste atenção apenas nesse trecho da figura, abaixo: A linha simples entre Empregado e Gerencia indica que não há obrigatoriedade de que um empregado gerencie um departamento. Por outro lado, a linha dupla em Departamento indica que todo Departamento deve ter um Empregado que o gerencie. Compreendeu? Fugindo um pouco do modelo E-R, mas, com o objetivo de fazê-lo entender melhor essa obrigação (ou não), imagine uma fotografia de duas tabelas de banco de dados com as seguintes informações: EMPREGADO CodEmpregado NomeEmpregado Gerente? 001 Marcos S 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 4 de 124 002 Paula N 003 Roberta S 004 Marcelo N DEPARTAMENTO CodDepartamento NomeDepartamento CodGerente MKT Marketing 001 ADM Administração 003 Neste exemplo, materializei duas tabelas que mostram Marcos gerenciando o Departamento de Marketing, e Roberta gerenciando o Departamento de Administração. Do jeito que montei as tabelas, todo departamento terá um gerente, mas nem todo empregado será gerente. Razoável, não é mesmo? P.S.: as fotografias das tabelas não fazem parte do modelo E- R! Apenas estão aí para facilitar o seu entendimento! O segundo aspecto importante, também retratado nas imagens, é a questão da cardinalidade (1, N, M). Para tal, trataremos em tópico específico. 1.10 Cardinalidade Podemos ver a mesma imagem novamente? 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 5 de 124 A cardinalidade serve para expressar o número de entidades que uma entidade pode associar-se, por meio de um relacionamento. A figura acima retrata os três tipos possíveis de cardinalidade. Na cardinalidade (1:1), uma entidade E1 pode relacionar-se a, no máximo, uma outra entidade E2, por meio de um relacionamento, e vice- versa. É o caso entre Empregado e Departamento, ilustrado no tópico anterior. Na cardinalidade (1:N), uma entidade E1 pode relacionar-se com várias entidades E2, porém, uma entidade E2 pode relacionar-se apenas com uma entidade E1. É o que acontece entre Departamento e Projeto. Preste atenção na imagem e na leitura das frases a seguir: um Departamento pode controlar N Projetos, e um Projeto pode ser controlado por um Departamento. Captou? Gostaria de enxergar isso em tabelas? DEPARTAMENTO CodDepartamento NomeDepartamento CodGerente MKT Marketing 001 ADM Administração 003 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 6 de 124 PROJETO CodProjeto NomeProjeto CodDepResponsavel P01 Inovação MKT P02 Reestruturação ADM P03 Vender Mais MKT P04 Novo Produto MKT Captou? Do jeito que montei as tabelas, os Departamentos podem ter vários projetos, mas cada projeto tem apenas um Departamento responsável. P.S.: as fotografias das tabelas não fazem parte do modelo E- R! Apenas estão aí para facilitar o seu entendimento! Por último, falemos da cardinalidade (N:M) ou (N:N). Nela, uma entidade E1 pode relacionar-se com várias entidades E2, assim como uma entidade E2 pode relacionar-se apenas com várias entidades E1. É o que acontece entre Empregado e Projeto. 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 7 de 124 Um Empregado pode trabalhar em M Projetos, e um Projeto pode “ser trabalhado” por N Empregados. Captou? Em tabelas, isso fica um pouco diferente: PROJETO CodProjeto NomeProjeto CodDepResponsavel P01 Inovação MKT P02 Reestruturação ADM P03 Vender Mais MKT P04 Novo Produto MKY EMPREGADO CodEmpregado NomeEmpregado Gerente? 001 Marcos S 002 Paula N 003 Roberta S 004 Marcelo N TRABALHA CodEmpregado CodProjeto 001 P01 001 P02002 P03 003 P01 Nesta estrutura, você percebe que a tabela Trabalha serve para materializar o relacionamento entre Empregado e Projeto, e que, desta 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 8 de 124 forma, empregados podem trabalhar em vários projetos, e projetos podem ter vários empregados, sem restrições. Agora, reveja aquele esquema de banco de dados, do início da apostila: O relacionamento entre as tabela usuario e comentario indicam, do lado usuario (1,1), e do lado comentario (0,n). Isso retrata um relacionamento (1:N) entre essas entidades. Ou seja, Cada usuário cadastrado na tabela usuario pode fazer de zero a muitos comentários. Cada comentário, por sua vez, deverá ter sido feito por apenas um único usuário, entendeu? Mais um pouco: veja as tabelas usuario, usr_ai e area_interesse. A tabela usuario possui um relacionamento de cardinalidade (1:N) com a tabela usr_ai. Ou seja, isso implica que cada usuário pode ter zero ou mais áreas de interesse. Por exemplo, Paulo pode se interessar por esportes, ficção e romance. Por sua vez, area_de_interesse possui um relacionamento de cardinalidade (1:N) com a tabela usr_ai. Ou seja, isso implica que cada área de interesse pode estar relacionada a zero ou mais usuários. Captaram? Na realidade, existe um relacionamento de cardinalidade (N:N), também chamado de (N:M), entre usuario e area_interesse. Só 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 9 de 124 que, para implementar o banco de dados de uma maneira organizada, foi necessário fazer uma tabela de ligação entre usuario e area_interesse. A cardinalidade pode ser expressada de diferentes formas, de acordo com o modelo ilustrado. Inclusive, como no esquema acima, ficaram explícitas as cardinalidades mínimas e máximas, uma vez que o esquema não possui linhas simples e duplas para tal. Uma cardinalidade (1:N), por exemplo, foi retratada pelos pares (1,1) e (0,n), indicando que uma entidade E1 pode ser relacionar com 0 a n entidades E2, ao passo que uma entidade E2 deve se relacionar com uma, e apenas uma entidade E1. Compreendido? (CESPE – MEC – Atividade Técnica de Complexidade Intelectual – Administrador de Dados - 2011) À luz do modelo entidade-relacionamento (E-R), julgue os itens seguintes, referentes ao modelo apresentado na figura acima. 6. As cardinalidades, no relacionamento possui, expressam o fato de que um Empregado pode não ter Dependente. Correto. 7. Os nomes supervisionado e supervisor, no relacionamento recursivo supervisiona, representam o fato de que a entidade Empregado assume papéis diferentes no relacionamento. 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 10 de 124 Correto. Empregados podem gerenciar empregados nesse autorrelacionamento, surgindo os papéis de supervisor e supervisionado. 8. Cardinalidades expressam o número de relacionamentos dos quais uma entidade participa. Errado! Cardinalidades expressam o número de entidades ao qual outra entidade pode estar associada via um relacionamento. 1.11 Modelo Relacional Vamos agora tratar do modelo relacional. Apenas relembrando, o modelo relacional está ligado ao Projeto Lógico, aquele em um nível intermediário entre o modelo conceitual e o modelo físico. Está lembrado? Vamos ver aquele esquema novamente: 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 11 de 124 Creio que você já o entenda mais do que quando o viu pela primeira vez. Mas vamos entendê-lo ainda mais, pois ele está carregado de informações do modelo relacional. Perceba que as tabelas (que também podem ser chamadas de relações) são os principais elementos do banco. comentario, contato, categoria, recado, area_interesse... Os atributos são componentes das entidades. Na entidade comentário, por exemplo, temos os atributos código, conteudo, data_criacao, cod_usuario_remetente e cod_arquivo. As informações colocadas ao lado dos atributos, conforme visualizado neste esquema, são os metadados. Código será um inteiro de até 11 dígitos, conteúdo será um varchar com até 1000 caracteres (varchar, basicamente, quer dizer que o número de caracteres é variável, indo até o limite estabelecido), data_criacao será uma informação do tipo data- hora, e assim sucessivamente. Por fim, temos os registros da tabela, ou tuplas. Registros e tuplas são sinônimos. A imagem acima, utilizada como exemplo, é um modelo que mostra o que deverá conter no banco. O banco de dados, efetivamente, são essas tabelas efetivamente preenchidas. Um exemplo da tabela comentario preenchida com dados poderia ser: 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 12 de 124 (CESPE – ANTAQ – Analista – Sistemas e Negócios - 2014) 9. Nos modelos lógicos, uma relação é a representação de um relacionamento entre duas tabelas. Errado! No modelo relacional, que é um modelo lógico, relação é sinônimo de tabela! Os relacionamentos são impostos pelas restrições de integridade, em especial a chave estrangeira. E continuemos vendo detalhes! 1.11.1 Tipos de Atributos Os atributos, como já vimos, são os elementos que compõem as entidades. Eles podem receber várias classificações. Atributos Compostos versus Simples (Atômicos). Os atributos compostos são aqueles que podem ser divididos em partes menores, que representam a maioria dos atributos básicos com significados independentes. Por exemplo, um atributo Endereço, em uma tabela hipotética, pode ser subdividido em EnderecoRua, Cidade, Estado e CEP, com os valores 'Av. Rangel Pestana, 300', 'São Paulo', 'SP' e '01017- 911'. Os atributos que não são divisíveis são chamados simples ou atributos atômicos. E os atributos compostos podem formar uma hierarquia; por exemplo, EnderecoRua pode ser subdividido, ainda, em três atributos simples: Rua, Número e Apartamento. O valor de um atributo composto é a concatenação dos valores componentes dos seus atributos simples. Os atributos simples são indivisíveis. Atributos Monovalorados versus Multivalorados. A maioria dos atributos tem um valor único para uma dada tupla; esses atributos são chamados monovalorados. Por exemplo, Idade é um atributo monovalorado de uma pessoa. Em alguns casos, um atributo pode ter um conjunto de valores para a mesma entidade — por exemplo, um atributo Cor para um carro ou um atributo Titulação para uma pessoa. Os carros com uma cor têm um valor único, enquanto aqueles com dois tons contêm dois valores para Cor. Da mesma forma, uma pessoa pode não 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 13 de 124 ter um título acadêmico,outra pessoa pode ter um e, uma terceira pessoa, dois ou mais títulos, portanto, pessoas diferentes podem ter números de valores diferentes para o atributo Titulação. Esses atributos são chamados multivalorados. Um atributo multivalorado deve ter limite inferior e superior para restringir o número de valores permitidos a cada entidade individual. Por exemplo, o atributo Cor de um carro pode ter entre um e três valores, se presumirmos que um carro possa ter, no máximo, três cores. Atributos Armazenados versus Derivados. Em alguns casos, dois (ou mais) valores de atributos estão relacionados — por exemplo, os atributos Idade e DataNascimento de uma pessoa. Para uma tabela pessoa em particular, o valor de Idade pode ser determinado pela data corrente (hoje) e o valor de DataNascimento da pessoa. Portanto, o atributo Idade é chamado atributo derivado, e é dito derivado do atributo DataNascimento, que, por sua vez, é chamado atributo armazenado. Alguns valores de atributos podem ser derivados de entidades relacionadas; por exemplo, um atributo NumerodeEmpregados, de uma entidade departamento, pode ser derivado da contagem do número de empregados relacionados (que trabalham) nesse departamento. Valores nulls (Nulos). Em alguns casos, determinada tabela pode não ter um valor aplicável a um atributo. Por exemplo, o atributo Apartamento de um endereço se aplica apenas a endereços que estão em edifícios de apartamentos, e não a outros tipos de residência, como as casas. Por analogia, um atributo Titulação só se aplica a pessoas com titulação acadêmica. Para essas situações é criado um valor especial chamado null (nulo). Um endereço de uma casa teria valor null para seu atributo Apartamento, e uma pessoa sem titulação acadêmica teria valor null para Titulação. O valor null pode ser usado também quando não conhecemos o valor de um atributo para uma entidade em particular; por exemplo, se não soubermos o telefone residencial de 'Joao Paulo'. O sentido do primeiro tipo de null corresponde a não aplicável, ao passo que o sentido do último se refere a desconhecido. A categoria 'desconhecido' de null pode ser, ainda, classificada em dois casos. O primeiro aparece quando se sabe que o valor do atributo existe mas está faltando — por exemplo, se o atributo Altura de uma pessoa é dado como null. O segundo caso surge quando não se sabe se o valor do atributo existe — por exemplo, se o atributo FoneResidencial de uma pessoa é null. 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 14 de 124 Atributos Complexos. Observa-se que os atributos compostos e multivalorados podem ser aninhados de uma maneira arbitrária. Podemos representar essa organização arbitrária agrupando os componentes de um atributo composto entre parênteses (), separando os componentes por meio de vírgulas e mostrando os atributos multivalorados entre chaves {}. Esses atributos são chamados atributos complexos. Por exemplo, se uma pessoa pode ter mais de uma residência e cada uma delas pode ter múltiplos telefones, um atributo EnderecoFone para uma pessoa pode ser especificado contendo mais de um atributo, como por exempo contendo os atributos Endereco e Telefone. Ex: {EnderecoFone({Fone(CodigoArea,NumeroFone)},Endereco(EnderecoRua (Numero, Rua, Apartamento),Cidade, Estado, CEP))}. Não confunda! Simples Monovalorado indivisível um único valor na tupla Composto Multivalorado pode ser dividido em várias partes mais de um valor dentro da mesma tupla Atributo composto pode ser monovalorado? SIM! Atributo simples pode ser multivalorado? SIM! Exemplo: Carro Cor Gol Preto, Azul, Amarelo Cor é um atributo simples, mas pode ter mais de um valor, dado um único registro. Quando o atributo é composto e multivalorado simultaneamente, ele é complexo. 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 15 de 124 1.11.2 Restrições de Integridade Pois então, um banco de dados relacional, em sua concepção, necessita de suas tabelas, das colunas das tabelas(os seus atributos), e de suas restrições de integridade, fundamentais para a consistência do banco de dados. Tabelas e colunas você já conhece. Agora, falemos dessa característica importantíssima, que são as restrições de integridade. Por meio das restrições de integridade é que são assegurados o correto relacionamento entre as tabelas. As restrições de integridades podem ser de: Domínio – amarrando os possíveis valores de um atributo (inteiro, string, não nulo, positivo, tipo, etc.) Vazio – dizer se um campo pode ou não ser null. Não deixa de ser um subitem da integridade de domínio. Chave – impedindo que uma chave primária se repita, ou seja nula; Referencial – assegurando que uma chave estrangeira possua respectiva associação na tabela de origem; As restrições de domínio e vazio são relativamente intuitivas. As de chave e referencial são as chaves primárias e estrangeiras, as quais veremos a seguir. 1.11.3 Chave Primária x Chave Estrangeira Todo registro em um banco de dados precisa de um atributo, ou vários, que possibilitem caracterizar aquele registro no banco como único. Ex: codigo_cliente endereco telefone cidade estado 1 Rua do Imperador Dom Pedro II, SN 0800- 2851244 Recife PE 2 Rua do Imperador Dom Pedro II, SN 0800- 2851244 Recife PE 3 Rua José Augusto Moreira, 1037 (81) 3183- 5941 Olinda PE 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 16 de 124 4 Rua José Augusto Moreira, 1037 (81) 3183- 5941 Olinda PE Perceba que, intencionalmente, escrevi tuplas parecidíssimas, diferenciadas apenas pelo atributo codigo_cliente. O por quê disso? Imagine que a tabela acima possui um relacionamento com outra tabela, como a tabela abaixo: codigo_cliente Nome 1 Jader 2 Afonso 3 André 4 Simone Agora você percebe um motivo. Dois clientes diferentes, que possuem um mesmo endereço. Logo, em um banco de dados relacional são necessárias duas coisas: diferenciar uma tupla da outra e relacionar as tabelas. Neste pequeno exemplo, a diferenciação entre as tuplas se faz por meio da chave primária. No caso, o atributo codigo_cliente. Voltando ao esquema que eu tanto tenho repetido, perceba que ali temos alguns atributos com chaves em “dourado”, outros com chave “parcialmente dourada” e outros com chave “prateada”. 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 17 de 124 A chave primária é o atributo(coluna) ou atributos(colunas), que asseguram que cada tupla (linha) da tabela é única. codigo é a chave primária de comentario; codigo é a chave primária de categoria;cod_usuario e cod_usuario_contato são a chave primária de contato; e por aí vai. Mesmo que composta por vários atributos, a chave primária é única e o seu papel é o de restrição de chave, ou seja, garantir que tuplas não sejam repetidas. Nesse esquema, as chaves douradas são chaves primárias. Um outro conceito interessante referente às restrições de chave é o conceito de chave candidata, ou chave alternativa. Às vezes, mais deum atributo de uma tabela são únicos. Tenha como exemplo uma tabela em que existam os campos CPF, TituloEleitor e Identidade. Todos esses atributos serão únicos, e eles são chamados de chaves candidatas. Uma dessas chaves convenientemente será escolhida como chave primária e as demais permanecerão como chaves candidatas. A chave estrangeira, por sua vez, exerce o papel de restrição referencial. A chave estrangeira “amarra” os relacionamentos entre as tabelas, e explica o porquê das tabelas possuírem linhas interligando-as, nos modelos. Isso ainda implica que todo valor preenchido na tabela com chave estrangeira possua uma respectiva associação na tabela onde a chave associada é primária. No esquema, as chaves prateadas são chaves estrangeiras. 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 18 de 124 cod_usuario_remetente e cod_arquivo são chaves estrangeiras na tabela comentario, pois referenciam, respectivamente, a chave primária codigo na tabela usuário e a chave primária codigo na tabela arquivo; cod_usuario e cod_usuario_contato, que juntos compõem a chave primária de contato, também são chaves estrangeiras, pois referenciam, respectivamente, a chave primária codigo na tabela usuário e a chave primaria codigo na tabela usuário (sim, isso mesmo, a mesma chave na mesma tabela). E assim sucessivamente. Procure enxergar todos os demais relacionamentos nesta tabela. Perceba que, mesmo que um mesmo atributo possa ser (ou compor) chave primária e ser chave estrangeira, as funções da chave são bem distintas. A primária restringe unicidade ou nulidade, enquanto a estrangeira restringe relacionamento. No esquema, as chaves parcialmente douradas estão fazendo o papel de chave primária, mas funcionam ao mesmo tempo como chaves estrangeiras, na mesma tabela. Por fim, acho interessante que você saiba que, no modelo relacional, podemos descrever as tabelas, seus atributos e restrições da seguinte forma abaixo, com os atributos entre parênteses e as chaves sublinhadas: Comentario (codigo, conteudo, data_criacao, cod_usuario, cod_arquivo) Usuario (codigo, nome, email, login, senha) Contato(cod_usuario, cod_usuario_contato) 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 19 de 124 Há autores que sublinham “cheio” as chaves primárias e “pontilhado” as chaves estrangeiras. Em questões de concursos, porém, nunca vi esta diferenciação, estando as chaves sempre sublinhadas “cheias”. (CESPE – CGE/PI – Auditor – Tecnologia da Informação - 2015) Em um relacionamento de tabelas de um banco de dados relacional, a chave estrangeira serve para referenciar uma entidade dentro de outra tabela, facilitando, assim, a busca e o agrupamento dessas entidades. Certa. Essa é a principal característica do modelo relacional, estabelecer relacionamentos por meio de chaves estrangeiras. 1.11.4 Outras chaves Chave substituta: A chave substituta, ou surrogate key, ou chave artificial, é um campo, normalmente auto incremental, que pode (não é obrigatório) ser utilizado para definir a chave primária de uma tabela, de uma maneira genérica. É útil, particularmente, para substituir chaves primárias compostas por muitos atributos, o que costuma impactar negativamente a performance do banco de dados. * Nome Telefone 1 Paulo (11) 99999-8888 2 Paulo (11) 99999-7777 3 Paulo (11) 3030-3131 4 Marta (11) 5678-9012 5 Marta (11) 99988-9876 6 Rita (11) 98765-4321 Chave substituta: coluna não identificada, marcada com * 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 20 de 124 Algumas características da chave substituta: O valor é único para a tabela, portanto nunca reutilizado (ou seja, em caso de exclusão, o número não será reutilizado); O valor é gerado pelo sistema(automaticamente); O valor não é manipulável pelo usuário ou aplicação; O valor não contém nenhum significado semântico; O valor não é visível para o usuário ou aplicação (no caso de modelagem relacional); O valor não é composto de vários valores a partir de diferentes domínios. Superchave: Superchave é um conjunto de um ou mais atributos que, tomados coletivamente, nos permitem identificar de maneira unívoca uma entidade em um conjunto de entidades. Em outras palavras, não podem existir duas ou mais linhas da tabela com o(s) mesmo(s) valores de uma superchave. Perceba que a superchave é um conceito mais abrangente do que o conceito de chave primária. A chave primária é aquele atributo ou conjunto de atributos que garante que cada registro na tabela é único. A superchave, por sua vez, é qualquer conjunto de atributos que consegue a mesma coisa. Por exemplo, na tabela Comentário: Comentario (codigo, conteudo, data_criacao, cod_usuario, cod_arquivo) A chave primária é codigo. Isto posto, os atributos codigo e conteudo formam uma superchave, os atributos codigo, conteudo e data_criacao também formam uma superchave, e por aí vai. Qualquer conjunto de atributos escolhido que inclua a chave primária formará uma superchave. 1.12 Gerenciamento de Transações Creio que podemos voltar a este aspecto, uma vez que você compreende um pouco mais sobre banco de dados. 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 21 de 124 Lembra que, no começo da apostila, eu falei que o SGBD precisava gerenciar milhares de transações simultâneas, fazer controle de redundância, dentre outros? Acho que você compreende isso melhor agora. Basta imaginar uma simples transação modificando múltiplas tabelas, verificando restrições de integridade. Já não é algo simples para uma transação única. E quando as transações tentam modificar os mesmos campos de uma tabela ao mesmo tempo? É aí que entra o famoso controle de concorrência do SGBD, organizando as transações, impedindo que o Banco de Dados entre em um estado inconsistente. Idealmente, toda transação em um banco de dados deverá ser: Atômica: ou a transação é feita ou não é feita. Parece óbvio, mas transações complexas em um banco, envolvendo várias tabelas, podem sofrer interrupções inesperadas, ou não conseguirem terminar por entrar em conflito com outra que ocorra ao mesmo tempo. Nesse caso, o SGBD deverá ser capaz de reverter o que parcialmente foi modificado (realizar o rollback); Consistente: os dados deverão permanecer íntegros e obedientes às regras do banco de dados (metadados); Isolada: o resultado de uma transação executada concorrentemente a outra deve ser o mesmo que o de sua execução de forma isolada. Operações exteriores a uma dada transação jamais verão esta transação em estados intermediários. Durável: os efeitos de uma transação em caso de sucesso (commit) devem persistir no banco de dados mesmo em presença de falhas. os dados modificados devem estar disponíveis em definitivo. Às vezes parece óbvio, mas os SGBDs de grandes corporações trabalham com grandes bases de dados, sofrendo constantes modificações, com dados distribuídos, inclusive, por várias partes do mundo. Assegurar o ACID é um verdadeiro desafio. 0654940088006549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 22 de 124 (CESPE – TJ/SE – Técnico – Programação de Sistemas - 2014) 11. A atomicidade de um SGBD garante que cada transação seja executada de maneira singular, ou seja, que cada transação possua um identificador unívoco. O isolamento do SGBD garante, por sua vez, que as transações sejam executadas isoladamente uma das outras. Errado! A definição de isolamento está correta, mas a de atomicidade está errada. Em uma transação atômica, ou ela é feita ou não é feita. Parece óbvio, mas transações complexas em um banco, envolvendo várias tabelas, podem sofrem interrupções inesperadas, ou não conseguirem terminar por entrar em conflito com outra que ocorra ao mesmo tempo. Nesse caso, o SGBD deverá ser capaz de reverter o que parcialmente foi modificado (realizar o rollback). 1.13 Catálogo do sistema (dicionário de dados) Uma vez visto o modelo relacional, creio que seja mais simples entender o papel do catálogo, ou dicionário de dados. Um SGBD, ao implementar o modelo relacional, precisa armazenar não somente os dados propriamente ditos, mas também os metadados. Eles podem ser: nomes das relações (tabelas); nomes dos atributos das relações; domínios dos atributos; restrições de integridade; mapeamentos (entre níveis externos, conceitual e interno). Além dos metadados, também podem ser armazenados: nomes de usuários autorizados; senhas; índices, etc. 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 23 de 124 Enfim, essa série de informações que possibilitam o correto gerenciamento da Base de Dados fica armazenada naquilo que chamamos de Catálogo, ou Dicionário de Dados. Catálogo de Dados: Ilustração 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 24 de 124 1.14 Views Conforme explicado na arquitetura três esquemas de um SGBD, o nível externo descreve a cada usuário apenas a visão pertinente ao mesmo. Afinal de contas, pode não ser bom que todos os usuários finais vejam o esquema conceitual completo, seja por questões de segurança, ou até mesmo para sua compreensão. Para tal, um recurso muito eficiente é a utilização de visões (views). View é uma tabela única derivada de outras tabelas. Por não existir fisicamente, pode ser considerada uma tabela virtual. A visão, diferentemente das tabelas básicas, não contém suas tuplas armazenadas no banco de dados. Voltemos ao exemplo de Projeto e Departamento: DEPARTAMENTO CodDepartamento NomeDepartamento CodGerente MKT Marketing 001 ADM Administração 003 PROJETO CodProjeto NomeProjeto CodDepResponsavel P01 Inovação MKT P02 Reestruturação ADM P03 Vender Mais MKT P04 Novo Produto MKT 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 25 de 124 Dadas estas tabelas, pode ser conveniente criar uma visão para o usuário, que mostre apenas o Projeto e o nome do Departamento Responsável. Abaixo: VISÃO PROJETO Projeto Departamento Responsável Inovação Marketing Reestruturação Administração Vender Mais Marketing Novo Produto Marketing Compreendeu a utilidade da visão? É vantajoso utilizá-la quando o usuário realiza consultas muito frequentes a determinadas tabelas. Ainda, campos que não sejam muito úteis ao usuário final, como CodigoProjeto e CodigoDepartamento, podem ficar ocultos. Entretanto, por sua natureza virtual, as visões apresentam algumas restrições. Vejamos a seguir. 1.14.1 Views materializadas Certos SGBDs garantem que, em caso de modificação nas relações utilizadas em uma view, a mesma permanecerá atualizada. Essas views podem ser chamadas de views materializadas. A responsabilidade pela atualização da view será sempre do SGBD, e não do usuário. 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 26 de 124 1.14.2 Atualização de uma view As views, por sua natureza virtual, apresentam restrições quanto à atualização, inserção ou exclusão de informações. Para ser atualizável, via de regra, uma view deverá: Influenciar apenas uma tabela do banco de dados; Em caso de atributos ocultos na view, ou esse atributo deve ser gerado automaticamente (no caso de um código, por exemplo), ou possuir valor default, ou poder ser nulo (null). Voltemos ao nosso exemplo: VISÃO PROJETO Projeto Departamento Responsável Inovação Marketing Reestruturação Administração Vender Mais Marketing Novo Produto Marketing Esta view não permite a modificação dos dados, pois ela envolve duas tabelas, Projeto e Departamento, lembra? Entretanto, caso ela viesse somente da tabela Projeto, poderíamos inserir, atualizar ou excluir algum dado da view. O atributo oculto CodProjeto, por ser gerado automaticamente (neste exemplo), não seria obstáculo para a modificação da view. Quando se modifica uma view, os dados da tabela de origem são modificados. Não existem registros em uma view, pois a tabela é virtual! 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 27 de 124 1.15 Índices em bancos de dados Consultas em banco de dados podem ser muito lentas e demoradas, especialmente quando existem muitos registros e tabelas. Suponhamos uma pesquisa em uma loja de departamento (tipo Lojas Americanas, Fast Shop) procurando todos os pedidos realizados pelo cliente número 108456. Já imaginou uma varredura completa por todos os pedidos já registrados na loja, só para achar alguns registros “soltos”? Agora, imagine essa consulta sendo feita toda vez que um cliente quiser visitar os seus pedidos. Seria impraticável, não é mesmo? Deve haver (e há) uma forma mais rápida de encontrar esses registros diretamente, e essa solução passa pelos índices, ferramenta essencial em otimização de bancos de dados. Índices são tratados no modelo físico do projeto de banco de dados, pois estão relacionados com a forma que os registros serão armazenados em disco. Realizando uma analogia eficiente, um índice para um arquivo em um sistema de banco de dados funciona da mesma forma que um índice em ou livro (ou mesmo em um PDF, rs). Para procurar determinado conteúdo, você lê o índice no início do livro, acha o item desejado, e pula diretamente para a página do assunto, para depois realizar a pesquisa de forma mais refinada. No banco de dados, é a “mesma coisa”. Não existe melhor técnica de indexação, existe técnica mais adequada em função do que se deseja indexar. Algumas variáveis precisam ser consideradas antes de se escolher o tipo de índice mais apropriado: Tipos de acesso: envolve a forma pela qual se localiza um registro, e o seu grau de eficiência. Tempo de inserção: é o tempo contabilizadopara a inserção do registro. Engloba encontrar o local para inserir o novo item de dados e o tempo para atualizar a estrutura de índice. Tempo de exclusão: idem à inserção, em sentido oposto. A depender do algoritmo escolhido, excluir um registo pode ser muito mais trabalhoso do que inseri-lo. 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 28 de 124 Espaço adicional: estruturas de índices ocupam espaço em disco. Via de regra, sua implementação é compensadora, pois é realizada em bancos de dados volumosos. Vejamos, sucintamente, alguns tipos de índices. 1.15.1 – Índices ordenados Os próprios registros em uma base de dados podem possuir alguma ordem classificada, como um atributo numerado. Um arquivo, também, pode ter vários índices, sobre diferentes chaves de busca. Caso o arquivo que contenha os registros esteja ordenado sequencialmente, é possível criar índices de agrupamento (clustering), ou índices primários. Os índices de agrupamento podem ser: Densos: quando são criados registros de índices para cada valor de chave de busca no arquivo. Desta forma, cada registro possuirá um ponteiro no índice. Índice denso. Esparsos: quando são criados registros de índices apenas para alguns valores cada valor de chave de busca. Assim sendo, encontra-se o registo mais próximo do registro procurado e procede-se a varredura sequencial. 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 29 de 124 Índice esparso. Perceba que nem todo bairro possui registro de índice. Índices esparsos ocupam menos espaço em disco, em detrimento do tempo de busca. Além disso, tanto os índices esparsos quanto os densos podem ser aplicados em qualquer chave de busca (ou seja, qualquer atributo), embora pareça óbvia a aplicação sobre as chaves primárias das tabelas. Na tabela acima, por exemplo, perceba que um campo não chave foi utlizado no índice, agrupando, inclusive, campos que se repetem (não distintos – Perryridge e Downtown são exemplos). Os índices densos e esparsos, em especial os densos, crescem muito com o aumento do número de registros indexados, o que pode impactar diretamente no tempo de busca dentro do próprio índice. Uma forma de otimizar o tempo de busca nesses tipos de índice é a criação de índices multiníveis. Índices multiníveis são aqueles que possuem dois ou mais níveis de índice. Índice multinível. 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 30 de 124 Quando uma chave de busca especifica uma ordem diferente da ordem sequencial, os índices mais apropriados são chamados índices não de agrupamento, ou índices secundários. Os índices secundários são densos, uma vez que, estando os arquivos fora de ordem, é necessário que o índice seja capaz de encontrá- la na base de dados. Normalmente os índices secundários são aplicados sobre atributos que não são chaves. Índice secundário. 1.15.2 – Árvore B+ Como já vimos anteriormente, organizar os arquivos de forma sequencial diminui a performance do banco de dados à medida que ele cresce, tanto na pesquisa do índice quanto na varredura dos dados. Uma solução a esse problema é a implementação de um índice em árvore B+. Árvore B+ 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 31 de 124 As árvores B+ criam sobrecarga na inclusão e exclusão, além do aumento de espaço ocupado, em virtude de seu algoritmo complexo, que criam nós e folhas, em um índice multinível. Por outro lado, a complexidade de busca em tais índices são da ordem de log n, o que torna a localização de registros mais eficiente do que os índices ordenados, para muitos registros. A árvore B é dita balanceada, ou seja, o tempo para localização de cada registro aproxima-se do tempo médio de localização dos registros. Isso implica, grosso modo, que “nenhum registro é encontrado rápido demais, e nenhum registro é encontrado devagar demais”. 1.15.3 – Índices de hash Nas estruturas anteriores, percebemos que, para acessar os dados, é necessário, primeiramente, acessar uma estrutura de índice para localizar os dados. Isso resulta em operações de entrada e saída, o que consome performance. As organizações de arquivo baseadas em hashing procuram evitar o o acesso a uma estrutura de índice. Essencialmente, utiliza-se uma função aplicada sobre o próprio valor da chave para encontrar/inserir o registro. Tal função, preferencialmente, distribuu os registros de forma uniforme, de modo que nenhuma unidade de armazenamento (bucket) seja sobrecarregada. Por exemplo, em uma função mod 10 (resto da divisão por 10), as chaves (numéricas, neste exemplo) seriam diretamente acessadas em virtude do resto de sua divisão por 10. 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 32 de 124 Indexação por hashing. Em um universo numérico, perceba que esta proposta de armazenamento é razoável, pois tende a distribuir uniformemente todos os registros, em um universo honesto de números. Porém, hashing requer cuidados para evitar o chamado estouro de bucket, que é o acúmulo de registros em um bucket que excede a capacidade máxima do mesmo. Soluções de hashing dinâmicas são capazes de contornar essa situação, criando mais buckets. À custa, claro, de processamento. (CESPE – ANTT – Analista Administrativo – Infraestrutura de TI - 2013) 12. Índice é um elemento detalhado no modelo lógico durante o mapeamento, pois nesse modelo são descritos os objetos que serão armazenados no banco de dados. Errada! Índices são tratados no modelo físico do projeto de banco de dados, pois estão relacionados com a forma que os registros serão armazenados em disco. (CESPE – SERPRO – Analista – Suporte Técnico - 2008) 13. Para possibilitar acessos aleatórios rápidos aos registros de um arquivo, uma estrutura de índice pode ser utilizada. Em um 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 33 de 124 arquivo organizado com índice sequencial, o desempenho dos acessos ao arquivo tipicamente piora na medida em que o arquivo cresce. Para evitar essa degradação, há SGBDs que usam uma estrutura árvore-B+ para implementar índices de múltiplos níveis. Certa. A árvore B+ é balanceada, e consegue manter desempenho razoável no acesso aos arquivos mesmo com o crescimento da base de dados. Pois bem, finda nossa parte teórica, é hora dos exercícios! Particularmente, para o CESPE, eu aconselho você a fazer os exercícios de outras bancas primeiro. Eles trabalham mais conceitos, e ajudam a consolidar o conhecimento antes. Na sequência, faça os exercícios CESPE, que são maisrápidos e rasteiros, tudo bem? 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 34 de 124 EXERCÍCIOS COMENTADOS OUTRAS BANCAS 1ª Questão) (ESAF – Superintendência de Seguros Privados – Tecnologia da Informação - 2010) Um banco de dados é um a) conjunto de objetos da realidade sobre os quais se deseja manter informações. b) conjunto de operações sobre dados integrados destinados a modelar processos. c) software que incorpora as funções de definição, recuperação e alteração de dados. d) software que modela funções de definição, recuperação e alteração de dados e programas. e) conjunto de dados integrados destinados a atender às necessidades de uma comunidade de usuários. O que difere um Banco de Dados de um Bando de Dados? relacionamento e finalidade! Um banco de dados é um conjunto de dados relacionados com uma finalidade específica. Esta finalidade pode a produção de informação, para determinado público alvo (uma empresa, ou um órgão público, por exemplo), bem como suportar um negócio (como o estoque de produtos de um fornecedor, ou um cadastro de funcionários, ou tudo isso junto). Conhecendo esta definição, você não corre o risco de marcar a alternativa a) ao invés da alternativa e), que é a correta. 2ª Questão) (ESAF – Analista de Finanças e controle – Fiscalização Geral - 2012) O projeto geral do banco de dados é a) o esquema do banco de dados. b) o planejamento estratégico do fluxo de dados. c) o esquema de dimensionamento físico-financeiro do banco de dados. d) a versão inicial de instanciação dos dados a serem carregados no sistema. e) o esquema de atualização dos dados para manutenção de consistência. Um esquema do banco de dados é uma coleção de objetos de um banco de dados que estão disponíveis para um determinado usuário ou grupo. Os objetos de um esquema são estruturas lógicas que se referem diretamente aos dados do banco de dados. Eles incluem estruturas, tais como tabelas, visões, seqüências, procedimentos armazenados, sinônimos, índices, agrupamentos e links de banco de dados. 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 35 de 124 Ou seja, ao se elaborar um sistema, seu projeto de banco de dados é idealizado em um esquema (como a figura acima). Resposta: letra a). 3ª Questão) (FCC – TCE/SP - Agente da Fiscalização Financeira - Produção e Banco de Dados – 2010) No catálogo são mantidos a) esquemas internos, conceituais e externos, mapeamentos e metadados. b) apenas os esquemas internos e os metadados. c) apenas o esquema conceitual e os metadados. d) apenas os esquemas internos, externos e os metadados. e) apenas o mapeamento conceitual. O catálogo, também chamado de dicionário de dados, guarda os metadados do modelo relacional, que englobam mapeamentos, esquemas, dados das relações, atributos, etc. A alternativa mais abrangente, invariavelmente, será a correta. Alternativa a). 4ª Questão) (FCC – TCE/AM – Analista Técnico de Controle Externo – Tecnologia da Informação - 2012) O modelo conceitual de dados a) é aquele em que os objetos, suas características e relacionamentos têm a representação de acordo com as regras de implementação e limitantes impostos por algum tipo de tecnologia. b) é aquele em que os objetos, suas características e relacionamentos têm a representação fiel ao ambiente observado, independente de limitações quaisquer impostas por tecnologias, técnicas de implementação ou dispositivos físicos. 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 36 de 124 c) é aquele elaborado respeitando-se e implementando-se conceitos tais como chaves de acesso, controle de chaves duplicadas, itens de repetição (arrays), normalização, ponteiros e integridade referencial, entre outros. d) é a fase da modelagem na qual é necessário considerar todas as particularidades de implementação, principalmente o modelo que será utilizado para a implementação futura. e) está sempre associado às fases de projeto, contrastando com o modelo lógico, que sempre está associado à fase de análise, quando utilizado com as metodologias de desenvolvimento de sistemas e implementado por ferramentas CASE. A primeira fase do projeto do banco é o levantamento e análise de requisitos, que na prática, é a especificação das necessidades do usuário do banco. Entrevista-se o usuário do banco para entendimento e documentação dos seus requisitos de dados. A segunda fase é o projeto conceitual, em que já se criam descrições detalhadas de tipos de entidades, relacionamentos, atributos e restrições. A modelagem conceitual empregada baseia-se no mais alto nível e deve ser usada para envolver o cliente. O modelo normalmente utilizado é o modelo entidade-relacionamento. Ilustração de modelagem conceitual usando o Diagrama E-R. Posteriormente ocorre as especificações das necessidades funcionais, depreendidas do próprio projeto conceitual. Caso exista algum impedimento funcional para a implementação do banco, talvez seja necessário voltar ao projeto conceitual e realizar algumas modificações. 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 37 de 124 Em seguida aparece o projeto lógico, ou mapeamento do modelo de dados. A modelagem lógica, por sua vez, já realiza o mapeamento do esquema conceitual para o modelo de dados que será usado. O modelo de dados de implementação normalmente é o modelo de dados relacional. Por fim, temos o projeto físico, durante a qual são definidas as estruturas de armazenamento interno, índices, caminhos de acesso e organizações de arquivo para os arquivos do banco de dados. Já passa a depender de regras de implementação e restrições tecnológicas. Voltando à questão: a) Aborda o projeto lógico. Errada; b) Correta; c) Projeto lógico. Errada; d) Especificações das necessidades funcionais. Errada; e) Errada. O modelo conceitual está mais ligado à fase de análise, que não tem detalhes de implementação nem dependência de tecnologia. Já o modelo lógico está associado à fase de projeto, quando utilizado com as metodologias de desenvolvimento de sistemas e implementado por ferramentas CASE. Envolve conhecimento de Engenharia de Software. 5ª Questão) (FCC – ALESP - Agente Técnico Legislativo– Administração de Banco de Dados – 2010) Um modelo de banco de dados é uma descrição do tipo de informação que está ou será armazenada em um banco de dados. O mesmo modelo de banco de dados pode ser descrito em diversos níveis de abstração. Geralmente, utilizam-se os níveis a) conceitual e prático. b) escrito e lógico. c) representativo e prático. d) conceitual e lógico. e) escrito e prático. Visto na questão anterior! Modelo conceitual, lógico (ou representacional, ou de implementação)e físico. Alternativa d). 6ª Questão) (FCC – MPE/AM – Agente de Apoio – Programador - 2013) Um sistema de banco de dados deve apresentar um projeto que visa a organização das informações e utilização de técnicas para que o futuro sistema obtenha boa performance e também facilite as manutenções que venhama acontecer. 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 38 de 124 O projeto de banco de dados se dá em, pelo menos, duas fases: Modelagem conceitual e a) Projeto lógico. b) Teste de integração. c) Instalação. d) Definição da ferramenta que será adotada. e) Teste de carga. Outra abordagem da mesma banca. Alternativa a). 7ª Questão) (ESAF – CVM – Analista - Sistemas – 2010) Assinale a opção correta. a) Um banco de dados relacional é composto de roteamentos. b) O projeto de um banco de dados é realizado segundo as fases Modelagem Procedural, Projeto Lógico, Projeto Operacional. c) O projeto de um banco de dados é realizado segundo as fases Modelagem Conceitual, Projeto Lógico, Projeto Físico. d) O projeto de um banco de dados é realizado por meio das fases Modelagem Lógica e Modelagem Física. e) Um banco de dados relacional é composto de configurações. Alternativa c). 8ª Questão) (FCC – TCE/RS – Auditor Público Externo – Técnico em Procesamento de Dados – 2014) Considerando a modelagem de dados de um banco de dados relacional, há diversos conceitos envolvendo conjuntos de entidades. Um conceito correto sobre conjuntos de entidades e seus atributos é (A) um atributo do tipo derivado é aquele que pode ser dividido em duas ou mais partes, sem perda de significado. (B) um atributo de um conjunto de entidades é multivalorado se for do tipo literal com mais de 20 caracteres. (C) um atributo de um conjunto de entidades é monovalorado se for do tipo numérico. (D) um conjunto de entidades fraco é aquele que não tem atributos suficientes para formar uma chave primária. 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 39 de 124 (E) um conjunto de entidades forte é aquele que tem apenas atributos literais ou numéricos, não contendo atributos do tipo data. As alternativas são todas nonsense, à exceção da letra d). Realmente, entidade fraca é aquela que não possui atributos “capazes” de formar uma chave primária. 9ª Questão) (FCC – INFRAERO – Analista de Sistema – Banco de Dados e Administrador de Dados - 2011) Quando uma transação A acessa o banco de dados, o SGBD automaticamente bloqueia cada parte do banco que essa transação altera ou requisita. Ao efetuar uma transação B em paralelo, o SGBD também bloqueia partes do banco de dados que essa transação acessa. Tais procedimentos se referem à característica de um SGBD denominada controle de a) integridade. b) concorrência. c) restrição. d) desempenho. e) restauração. Para assegurar o isolamento de uma transação (I do ACID) o SGBD precisa controlar a interação entre as transações concorrentes (transações simultâneas que podem acessar e/ou manipular registros em comum). Tal mecanismo é alcançado por meio se uma série de mecanismos chamados de esquemas de controle de concorrência. Resposta certa, alternativa b). 10ª Questão) (FCC – ALESP – Agente Técnico Legislativo – Administração de Banco de Dados – 2010) NÃO é uma vantagem do SGBD: a) controle de redundância. b) compartilhamento de dados. c) restrição a acesso não autorizado. d) tolerância a falhas. e) custo. Já sabemos que adotar um SGBD custa caro! Alternativa e). 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 40 de 124 11ª Questão) (FCC – TST – Analista Judiciário – Análise de Sistemas – 2012) Um Sistema de Gerenciamento de Bancos de Dados (SGBD) a) é um ambiente de suporte ao desenvolvimento de projetos de banco de dados relacionais, que gera um modelo de banco de dados para ser implementado em um servidor. b) prepara aplicações para que possam acessar um ou mais bancos de dados. Na linguagem de programação Java, por exemplo, o JDBC (Java Data Base Connectivity) é um SGBD capaz de acessar dados de diferentes bancos. c) oferece um conjunto de ferramentas que possibilitam o gerenciamento de diferentes arquivos do tipo texto ou do tipo binário, armazenados em bancos de dados, limitados aos formatos UNICODE ou ASCII. d) consiste em uma tecnologia de servidores que opera sobre o protocolo HTTP para a troca de dados e informações através de arquivos que transportam mensagens no formato HTML. e) faz a gerência de uma ou mais bases de dados, permitindo o armazenamento e consulta de dados e informações pelos usuários finais e programas de aplicação. Das várias alternativas confusas, que passam por outros ramos da TI, a alternativa e) apresenta uma afirmativa completa e coerente. 12ª Questão) (FCC – TCE/SP - Agente da Fiscalização Financeira - Produção e Banco de Dados – 2010) As três visões da arquitetura básica de um SGBD, pela ordem, desde a mais próxima do usuário até a mais distante, são: a) externa, conceitual e interna. b) externa, interna e conceitual. c) conceitual, interna e externa. d) conceitual, externa e interna. e) interna, conceitual e externa. Para relembrar! 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 41 de 124 Alternativa a). 13ª Questão) (FCC – SEFAZ/SP - Agente Fiscal de Rendas – Tecnologia da Informação – 2009) Considere: I. O que se ocupa do modo como os dados são fisicamente armazenados. II. O que se ocupa do modo como os dados são vistos por usuários individuais. III. Nível lógico de comunidade ou apenas lógico (mais abstrato que o físico e diferente da visão do usuário individual). Em um projeto arquitetural, os itens I, II e III são classificados, respectivamente, como níveis a) externo, conceitual e interno. b) externo, interno e conceitual. c) interno, externo e conceitual. d) interno, conceitual e externo. e) conceitual, externo e interno. Relembrando: Nível externo: abrange os esquemas externos, ou visões de usuário. Cada esquema descreverá apenas a visão pertinente de cada usuário a respeito do Banco de Dados, ocultando o restante. Por exemplo, para um aluno, de um sistema de aulas online, somente determinada parte do BD lhe é relevante, provavelmente relacionada aos cursos que realiza. Para um administrador 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 42 de 124 financeiro desse sistemas, por sua vez, aspectos administrativos serão mais relevantes, relacionados aos pagamentos dos cursos e de pessoal. Nível conceitual: possui um esquema conceitual, que descreve o banco de dados como um todo. Oculta detalhes do armazenamento físico, enfatizando entidades, tipos de dados e restrições. Nível interno: apresenta um esquema interno, descrevendo a estrutura de armazenamento físicos do banco de dados. Alternativa c). 14ª Questão) (FCC – MPE/AM – Agente de Apoio – Programador - 2013) O sistema de banco de dados deve garantir uma visão totalmente abstrata do banco de dados para o usuário, ou seja, para o usuário do banco de dados pouco importa qual a unidade de armazenamento está sendo usada para guardar seus dados, contanto queos mesmos estejam disponíveis no momento necessário. Esta abstração se dá em três níveis: I. Nível de visão do usuário: as partes do banco de dados que o usuário tem acesso de acordo com a necessidade individual de cada usuário ou grupo de usuários. II. Nível conceitual. III. Nível físico: é o nível mais baixo de abstração, em que define efetivamente de que maneira os dados estão armazenados. O Nível conceitual: a) garante a integridade dos dados por aplicação de criptografia e o controle de blocos de acesso. b) especifica a maneira como os dados devem ser transferidos para a memória. c) determina o tipo de segurança que será utilizado no acesso aos dados. d) apresenta o conceito de acesso (simétrico ou assimétrico) e as chaves que serão utilizadas. e) define quais os dados que estão armazenados e qual o relacionamento entre eles. Mais uma questão envolvendo os níveis. O mais interessante, entretanto, é que as alternativas de a) a d) aproximam-se do nível físico de abstração. A 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 43 de 124 alternativa e) é a correta, pois no nível conceitual definem-se relações, tipos de dados, restrições de integridade, dentre outros. 15ª Questão) (FCC – MPE/SE – Analista – Gestão e Análise de Projeto de Sistema - 2013) Em projetos de Banco de Dados, o objetivo da arquitetura de três-esquemas é separar o usuário da aplicação do banco de dados físico. Nessa arquitetura, os esquemas podem ser definidos por três níveis: I. O nível interno tem um esquema que descreve a estrutura de armazenamento físico do banco de dados. Esse esquema utiliza um modelo de dado físico e descreve os detalhes complexos do armazenamento de dados e caminhos de acesso ao banco; II. O nível conceitual possui um esquema que descreve a estrutura de todo o banco de dados para a comunidade de usuários. O esquema conceitual oculta os detalhes das estruturas de armazenamento físico e se concentra na descrição de entidades, tipos de dados, conexões, operações de usuários e restrições. Geralmente, um modelo de dados representacional é usado para descrever o esquema conceitual quando o sistema de banco de dados for implementado. Esse esquema de implementação conceitual é normalmente baseado em um projeto de esquema conceitual em um modelo de dados de alto nível; III. O nível interno ainda abrange os esquemas externos ou visões de usuários. Cada esquema interno descreve a parte do banco de dados que um dado grupo de usuários tem interesse e oculta o restante do banco de dados desse grupo. Como no item anterior, cada esquema é tipicamente implementado usando-se um modelo de dados representacional, possivelmente baseado em um projeto de esquema externo em um modelo de dados de alto nível. Está correto o que se afirma em a) II, apenas. b) II e III, apenas. c) I, II e III. d) I e II, apenas. e) III, apenas. Questão sem maiores dificuldades. Os itens I e II estão corretos, enquanto o item III descreve o nível externo. Alternativa d). 16ª Questão) (FCC – SEFAZ/SP - Agente Fiscal de Rendas – Tecnologia da Informação – 2009) A independência de dados física e a 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 44 de 124 independência de dados lógica são possibilitadas de forma ideal, respectivamente, por um a) ou mais mapeamentos conceituais/internos e por um ou mais mapeamentos internos/externos. b) mapeamento conceitual/interno e por um ou mais mapeamentos externos/conceituais. c) mapeamento interno/externo e por um mapeamento conceitual/interno. d) ou mais mapeamentos internos/externos e por um mapeamento conceitual/interno. e) mapeamento conceitual/externo e por um mais mapeamentos conceituais/internos. Nos nossos autos, consta que Independência lógica é a capacidade de alterar o esquema conceitual sem precisar modificar os esquemas externos. Independência física é a capacidade de alterar o esquema interno sem precisar modificar o esquema conceitual. Coopera para o alcance da independência lógica um mapeamento bem feito dos níveis externos para o nível conceitual. De maneira análoga, um mapeamento adequando do nível conceitual para o nível interno possibilita a independência lógica. Alternativa b). 17ª Questão) (Cesgranrio – Petrobrás – Analista de Sistemas Júnior – Engenharia de Software – 2010) A independência de dados lógica, definição componente da arquitetura de três esquemas para sistemas de banco de dados, corresponde à capacidade de se efetuarem a) mudanças no nível conceitual, sem a necessidade de modificações no nível externo e em programas aplicativos. b) mudanças no nível interno, sem a necessidade de modificações nos níveis conceitual e externo. c) mudanças no nível externo, sem a necessidade de modificações nos níveis interno e conceitual. d) consultas em SQL sobre um banco de dados relacional, independente da estruturação física dos dados armazenados. e) consultas em SQL sobre um banco de dados relacional, independente da lógica de programação usada em programas aplicativos. Alternativa a). 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 45 de 124 18ª Questão) (FCC – MPE/SE – Analista – Gestão e Análise de Projeto de Sistema - 2013) A capacidade de alterar o esquema conceitual sem mudar o esquema externo ou os programas, podendo modificar o esquema conceitual para expandir o banco de dados (adicionando um tipo de registro ou item de dados), variar as restrições ou reduzir o banco de dados (removendo um tipo de registro ou item de dados) é chamada de a) modularidade. b) modelo conceitual. c) independência lógica de dados. d) polimorfismo. e) agregação. Alternativa c). 19ª Questão) (FCC – TRE/SP – Analista Judiciário – Análise de Sistemas - 2012) É o modelo de dados que eliminou o conceito de hierarquia, permitindo que um mesmo registro estivesse envolvido em várias associações. Os registros, organizados em grafos, permitem o tipo de associação que define uma relação 1:N entre os tipos de registros proprietário e membro. Assim, para dois relacionamentos 1:N entre os registros A e D e entre os registros C e D é possível construir um relacionamento M:N entre A e D. Trata-se do modelo a) em rede. b) relacional. c) hierárquico. d) orientado a objetos. e) distribuído. Revisitando o histórico dos modelos Modelo hierárquico: O modelo hierárquico foi o primeiro a ser reconhecido como um modelo de dados. Nele, os registros são conectados em uma estrutura de dados em árvore, similar a uma árvore invertida (ou às raízes de uma árvore). 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 46 de 124 Modelo em rede: o modelo em rede acabou eliminando a hierarquia, pois passou a permitir que, em tese, cada registro filho pudesse ser ligado a mais de um registro pai. Nesse caso, a estrutura em árvore se desfaz, e passa a se assemelhar a uma estrutura em grafo. Relacionamentos N:M também passam a ser permitidos (lembrando que o relacionamento é estabelecido entre registros). Modelo relacional:O modelo relacional usa uma coleção de tabelas para representar os dados e as relações entre eles. Modelo Entidade/Relacionamento: O modelo de Entidade- Relacionamento (E-R) é baseado na percepção de um mundo real que consiste em uma coleção de objetos básicos, chamados entidades, e os relacionamentos entre esses objetos (existem autores que falam em relação para descrever relacionamentos. Modelo de dados orientado a objetos: É uma extensão do modelo ER com noções de encapsulamento de identidade do objeto (isso será visto em programação). 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 47 de 124 Modelo de dados objeto-relacional: Combina características do modelo relacional com o modelo orientado a objetos. Visto essas informações, volte à questão e responda o que se pede. Acredito que você marcará a alternativa a). 20ª Questão) (ESAF – MPOG – Analista de Planejamento e Orçamento – Tecnologia da Informação – 2009) No modelo entidade- relacionamento, a cardinalidade de mapeamento expressa a) o número de entidades ao qual um relacionamento pode estar associado a um outro relacionamento. b) o número de relacionamentos ao qual outro relacionamento pode estar associado via uma entidade. c) o critério de classificação segundo o qual os relacionamentos associam entidades. d) o número de entidades ao qual outra entidade pode estar associada via um relacionamento. e) o posicionamento de uma entidade dentro do mapeamento do modelo. Sabemos que a cardinalidade serve para expressar o número de entidades que uma entidade pode associar-se, por meio de um relacionamento. O restante é para causar confusão. Alternativa d). 21ª Questão) (UEL – Sercomtel – Informática III – 2005) Para um conjunto de relacionamentos binários a cardinalidade NÃO pode ser: a)Um para um (1:1): uma entidade E1 pode estar associada no máximo a uma entidade E2 através de R; e uma entidade de E2 pode estar associada a no máximo uma entidade E1, através de R. b)Um para muitos (1:N): uma entidade E1 pode estar associada a várias entidades E2; e uma entidade de E2 pode estar associada a no máximo uma entidade E1. c)Muitos para um (N:1): uma entidade E1 pode estar associada no máximo a uma entidade E2; e uma entidade de E2 pode estar associada a várias entidades de E1. d)Muitos para muitos (N:N): uma entidade E1 pode estar associada a várias entidade E2; e uma entidade de E2 pode estar associada a várias entidades de E1. e)Um para muitos (1:N): uma entidade E1 pode estar associada a várias entidade E2 ou nenhuma; e uma entidade de E2 pode estar associada a nenhuma ou muitas entidades de E1. 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 48 de 124 Conhecida a cardinalidade, você já resolve a questão. As quatro primeiras alternativas exemplificam bem as várias cardinalidades. A alternativa incorreta, letra e). 22ª Questão) (FCC – Prefeitura de SP – Auditor Fiscal Tributário Municipal I – Tecnologia da Informação - 2012) Considere o seguinte diagrama ER parcial de um banco de dados. De acordo com a cardinalidade das associações, um a) projeto emprega pelo menos um empregado e é controlado por exatamente um departamento. b) empregado trabalha em pelo menos um projeto e gerencia exatamente um departamento. c) empregado trabalha em zero ou mais projetos e gerencia exatamente um departamento. d) departamento é gerenciado por exatamente um empregado e controla pelo menos um projeto. e) departamento é gerenciado por exatamente um empregado e controla zero ou mais projetos. Se lembra como interpretar esse diagrama? Vem comigo! Empregado gerencia departamento. Pelas linhas simples e duplas, vejo que nem todo empregado gerencia departamento, mas todo departamento tem um gerente, e apenas um, pois a cardinalidade é 1:1; Empregado trabalha em projeto. Linhas simples, e relacionamento N pra M. Isso quer dizer que nem todo empregado trabalha em um projeto, e nem 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 49 de 124 todo projeto tem empregados. Um empregado pode trabalhar em vários projetos, e projetos podem ter vários empregados; Departamento controla projeto. Cardinalidade 1 pra N, linhas duplas em projeto. Logo, nem todo departamento controla projeto, mas cada projeto tem que ter um departamento que o controle, e apenas um! Conseguiu acompanhar? Agora você tem uma questão de lógica para resolver. Leia alternativa a alternativa, e descubra porque a alternativa e) é a correta. 23ª Questão) (FCC – MPE/MA – Analista Ministerial – Banco de Dados - 2013) Quando do projeto de um banco de dados relacional, pode haver a indicação de que um conjunto de entidades tem participação total em um conjunto de relacionamentos, isto significa que a) cada entidade do conjunto de entidades participa em todos os relacionamentos do conjunto de relacionamentos. b) há, no mínimo, metade das entidades do conjunto de entidades que participam em pelo menos um relacionamento do conjunto de relacionamentos. c) as entidades do conjunto de entidades não possuem atributos do tipo booleano ou do tipo data. d) cada entidade do conjunto de entidades participa em pelo menos um relacionamento do conjunto de relacionamentos. e) todos os atributos do conjunto de entidades são indexados com a técnica de árvores binárias. Participação total e parcial! A linha dupla indica participação total, e a entidade ligada por linha dupla exige que ela se relacione com pelo menos uma entidade do outro lado do relacionamento. Já a linha simples indica o relacionamento, mas pode ser que nem toda entidade possua um relacionamento. Você lembra disso? Uma coisa ruim das bancas é não diferenciar entidade de instância de entidade. Quando se fala da entidade Projeto, em tese, me refiro à entidade projeto de modo genérico. Quando se fala de cada entidade Projeto, na verdade estão se referindo às instâncias de entidade, que, na prática, correspondem ao registros que estão no Banco de Dados, conforme expliquei para você na teoria. A questão seria bem mais clara se ela, ao invés de falar “cada entidade” do “conjunto de entidades”, falasse “instância das entidades” das “entidades”. 06549400880 06549400880 - Mauro de Almeida Loureiro Análise de Informações para TCU 2015 Auditor Federal de Controle Externo Prof Victor Dalton ʹ Aula 01 Prof. Victor Dalton www.estrategiaconcursos.com.br 50 de 124 Nossa resposta certa, alternativa d). 24ª Questão) (FCC – MPE/MA – Analista Ministerial – Banco de Dados - 2013) Considere o seguinte diagrama Entidade-Relacionamento, resultante da modelagem de um banco de dados relacional: A partir desse diagrama, pode-se afirmar que a) uma loja não possui todos os produtos. b) uma loja possui um número par de departamentos. c) cada departamento pode possuir vários produtos. d) um mesmo produto não pode estar em mais de uma loja. e) o número de lojas é impar. Outra questão para exercitar seu entendimento do modelo E-R. De antemão, a alternativa c) é a correta, e as demais são premissas falsas, pois fazem afirmações mais contundentes do que as contidas no diagrama. Exercite seu entendimento! 25ª Questão) (FCC – MPE/MA – Analista Ministerial
Compartilhar