Memorex Banco De Dados

  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Memorex Banco De Dados as PDF for free.

More details

  • Words: 9,238
  • Pages: 41
MEMOREX BANCO DE DADOS por Paulo Marcelo [email protected] 10/10/2009 Esse é o terceiro memorex destinado aos concurseiros de TI. Neste material, foram compilados os principais conceitos sobre banco de dados e as cláusulas SQL avançadas (grupos, funções agregadas, subconsultas, etc) que costumam confundir até os candidatos mais experientes sobre o assunto. Questões comentadas encontram-se ao final do material. Agradecimento ao concurseiro Diogo Fagundes [diofagor] que pacientemente comentou a maioria das questões. Bons estudos a todos!

Memorex anteriores: http://www.pdfcoke.com/doc/16787717/Memorex-Redes http://www.pdfcoke.com/doc/17101886/Memorex-PMBOK-2004

Errata: No Memorex de Redes a seguinte questão elaborada pelo cespe: “O criptossistema Diffie Hellman define uma forma segura de troca de chaves” está errada devido a vulnerabilidade ao ataque man-in-themiddle e nada tem a ver com termo “criptossistema” como consta no material.

O texto a seguir foi compartilhado por um membro da lista timaster. Fica a reflexão.

Um Meio ou uma Desculpa Não conheço ninguém que conseguiu realizar seu sonho, sem sacrificar feriados e domingos pelo menos uma centena de vezes, da mesma forma, se você quiser construir uma relação amiga com seus filhos, terá que se dedicar a isso, superar o cansaço, arrumar tempo para ficar com eles, deixar de lado o orgulho e o comodismo. Se quiser um casamento gratificante, terá que investir tempo, energia e sentimentos nesse objetivo. O sucesso é construído à noite! Durante o dia você faz o que todos fazem. Mas, para obter um resultado diferente da maioria, você tem que ser especial. Se fizer igual a todo mundo, obterá os mesmos resultados, não se compare à maioria, pois infelizmente ela não é modelo de sucesso, se você quiser atingir uma meta especial, terá que estudar no horário em que os outros estão tomando chopp com batatas fritas. Terá de planejar, enquanto os outros permanecem à frente da televisão. Terá de trabalhar enquanto os outros tomam sol à beira da piscina. A realização de um sonho depende de dedicação, há muita gente que espera que o sonho se realize por mágica, mas toda mágica é ilusão, e a ilusão não tira ninguém de onde está, em verdade a ilusão é o combustível dos perdedores, pois.... 'Quem quer fazer alguma coisa, encontra um meio'. 'Quem não quer fazer nada, encontra uma desculpa'. Roberto Shinyashiki

Paulo Marcelo

Memorex Banco de Dados

[email protected]

CHAVES Especifica como entidades e relacionamentos são identificados. Conceitualmente, entidades e relacionamentos individuais são distintos, mas numa perspectiva de banco de dados a diferença entre eles precisa ser expressa em termos de seus atributos. O conceito de super-chave permite-nos fazer tais distinções. Uma superchave é um conjunto de um ou mais atributos que, tomando coletivamente, permite-nos identificar unicamente uma entidade no conjunto de entidades. Por exemplo, o atributo SeguridadeSocial do conjunto de entidades cliente é suficiente para distinguir uma entidade cliente das outras. Desta forma, seguridade-social é uma super-chave. De forma semelhante, a combinação NomeCliente e SeguridadeSocial é uma super-chave para o conjunto de entidades cliente. O atributo NomeCliente de cliente não é uma super-chave, pois diversas pessoas podem ter o mesmo nome. O conceito de super-chave não é suficiente para nossos propósitos, pois ela pode ter atributos redundantes (ou seja atributos não necessários para serem únicos). Ex: se K é uma super-chave, então um subconjunto de K também poderá ser. Toda a relação tem, no mínimo, uma super-chave que é a junção de todos os seus atributos. Frequentemente, procuramos super-chaves que não contenham nenhum subconjunto próprio que seja uma superchave. Tais super-chaves mínimas são chamadas chaves candidatas. Utilizaremos o termo chave primária para denotar uma chave candidata que é escolhida por um projetista de banco de dados como meio principal de identificação de entidades dentro de um conjunto de entidades. É possível que diversos conjuntos distintos de atributos possam servir como uma chave candidata. Suponha que uma combinação de NomeCliente e rua seja suficiente para distinguir entre membros do conjunto de entidades cliente. Então ambos, {SeguridadeSocial} e {NomeCliente, rua}, são chaves candidatas. Embora os atributos SeguridadeSocial e NomeCliente juntos possam distinguir entidades de cliente, sua combinação não forma uma chave candidata, uma vez que o atributo SeguridadeSocial sozinho é uma chave candidata. Chaves estrangeiras podem ser definidas como sendo um conjunto de atributos pertencentes a um esquema de relação que constituem chaves primárias ou candidatas em outros esquemas independentes. Diferentemente da chave primária, uma chave estrangeira pode conter valores nulos. Chave primária e chave estrangeira não podem ser multivaloradas

Normatização - Um aspecto importante na modelagem de dados consiste na normalização de dados, realizada com o objetivo de eliminar redundâncias e possíveis inconsistências no modelo de dados. Várias tabelas estreitas com menos colunas são características de um banco de dados normalizado. Poucas tabelas largas com mais colunas são características de um banco de dados não normalizado. Diz-se que uma tabela está na primeira forma normal quando ela não contém tabelas aninhadas (grupo repetido 1FN: ou coluna multivalorada ou coluna não atômica) Uma tabela está na 2FN se, além de estar na 1FN, não possuir dependências funcionais parciais, ou seja, todos 2FN: os atributos não‐chave devem depender funcionalmente da chave primária inteira. Só ocorre com chaves primárias compostas Uma tabela está na 3FN se, além de estar na 2FN, não possuir dependências transitivas entre os atributos. 3NF: Dependências transitivas ocorrem quando um atributo não‐chave depende de outro que não é chave da relação BCNF : Uma tabela está na BCNF, se e somente se, estiver na 3FN e houve dependências funcionais não triviais. Alguns benefícios da normalização incluem o seguinte:  Classificação e criação mais rápidas dos índices.  Um número maior de índices clusterizados  Índices mais estreitos e mais compactados.  Menos índices por tabela. Isto melhora o desempenho das instruções INSERT, UPDATE e DELETE.  Menos valores nulos e menos oportunidades de inconsistências. Isto aumenta a densidade do banco de dados.

Paulo Marcelo

Memorex Banco de Dados

[email protected]

Uma associação NxM viola a 1FN devido a ocorrência de repetições de tuplas do lado da chave primária. CESPE: No modelo ER, um atributo cujos valores são distintos para cada entidade individual de um conjunto de entidades de determinado tipo é denominado atributo-chave. [CORRETO] CESPE: O grau de um tipo de relacionamento é o número de tipos de entidades participantes desse tipo de relacionamento. [CORRETO] Trata do conceito de grau para o modelo entidade-relacionamento que é o número de entidades que participam de relação, por exemplo, no relacionamento ternário o grau é 3, uma vez que três entidades se relacionam. CESPE: No modelo de banco de dados relacional, o grau de uma relação é o número de atributos do esquema dessa relação [CORRETO] O conceito de grau no Modelo Relacional é diferente do de Modelo E/R. No Modelo Relacional o grau é dado pelo número de atributos, enquanto no E/R é dado pelo número de entidades

Figura: MER x Modelo Relacional

Paulo Marcelo

Memorex Banco de Dados

[email protected]

Figura: No modelo relacional, ao número de atributos que constituem o esquema de uma relação dá-se o nome de grau da relação. Por sua vez, o número de tuplas de uma relação designa-se por cardinalidade da relação.

Regras de transformação de um modelo entidaderelacionamento (conceitual) para o modelo relacional lógico: 1) Uma entidade forte será representada por uma relação (tabela); 2) Para cada relacionamento binário M:N, será criado três relações: duas relações a partir das entidades envolvidas e uma nova relação (tabela auxiliar). A tabela auxiliar terá duas chaves estrangeiras referenciando as demais relações, cada chave estrangeira corresponderá a chave primária das relações referenciadas. CESPE - Os relacionamentos muitos-para-muitos entre dois tipos de entidades, tais como relacionamentos entre funcionários e projetos, não podem ser representados diretamente na modelagem E-R. [ERRADO] O modelo entidade-relacionamento pode representar todas as restrições de cardinalidade: um para um, um para muitos, muitos para um e muitos para muitos. CESPE - O modelo relacional clássico não permite a realização de relacionamentos com multiplicidade de muitos para muitos. [CORRETO] Deve-se adicionar uma tabela para deixar o modelo relacional na forma 1:N

Entidade fraca é uma entidade dependente de outra entidade. Geralmente tem uma associação de 1:N e a entidade fraca caracteriza-se por não possuir um atributo chave. Por exemplo, observe o seguinte diagrama que pretende modelar os funcionários de uma empresa e o seu agregado familiar.

Paulo Marcelo

Memorex Banco de Dados

[email protected]

Em um conjunto de entidades sem os atributos necessários para formar uma chave primária, ou seja, em um conjunto de entidades fracas, a chave primária é formada pela chave primária do conjunto de entidades fortes ao qual a existência do conjunto de entidades fracas está vinculada e por um identificador do conjunto de entidades fracas. [CORRETA] Imagine que você queira identificar filhos de uma entidade Pessoa! Como identificá-los (escolher o mais velho, por exemplo) sem um identificador como a ordem de nascimento deles? Você realmente precisa de um identificador da entidade fraca! Além, é claro, da chave primária da entidade forte! [WelkeyCosta]

Em um modelo entidade-relacionamento, um relacionamento entre duas entidades é sempre bidirecional. [CORRETO] No MER não há unidirecinamento como na UML, entretanto esse não é o único conceito que diferencia o MER da UML, na UML podemos representar a visibilidade de um atributo e representar os métodos, no MER não; etc.

Dependência Funcional: A  B, A funcionalmente determina B

lê-se: B funcionalmente depende de A

B é função de A

Se o valor de uma atributo A permite descobrir o valor de outro atributo B, dizemos que A determina funcionalmente B (A  B). Por exemplo: NumeroMatricula  NomeAluno, idade, curso. Assim, sempre que o NumeroMatricula se repetir tem-se a repetição de NomeAluno, idade e curso;

Dependência Não Transitiva: Ocorre quando cada atributo for funcionalmente dependente apenas dos atributos componentes da chave primária ou se todos os seus atributos não chave forem independentes entre si.

RESTRIÇÕES/ INTEGRIDADES Uma restrição de unicidade (também chamada “integridade de entidade” ou unique constraint) é uma regra que previne valores duplicados em uma ou mais colunas em uma tabela. Restrições de unicidade são chaves únicas e chaves primárias. Por exemplo, uma restrição de unicidade pode ser definida em um identificador de fornecedor (supplier identifier) em uma tabela de fornecedor (supplier table) para assegurar que o mesmo identificador de fornecedor não seja atribuído a dois fornecedores (suppliers). Uma restrição referencial é uma regra sobre valores em uma ou mais colunas em uma ou mais tabelas. Por exemplo, um conjunto de tabelas compartilha informação sobre fornecedores de uma corporação. Ocasionalmente, um identificador (ID) de fornecedor muda. Pode-se definir uma restrição referencial ditando que o ID do fornecedor na tabela deve (must) igualar-se ao ID do fornecedor nas informações sobre o fornecedor. A restrição previne operações de inserção, atualização ou deleção que poderiam de outro modo resultar no desaparecimento de informações do fornecedor. Uma restrição de checagem (também chamada integridade de domínio) determina restrições em dados adicionados a uma tabela específica. Por exemplo, a restrição pode ser adicionada para definir que o nível salarial de um empregado nunca seja menor que um determinado valor quando os dados salariais forem adicinados ou atualizados em uma tabela de informações de pessoal.

(CESPE/STF2008) Integridade referencial pode ser definida como uma condição imposta a um conjunto de atributos de uma relação para que valores que apareçam nesse conjunto também apareçam em um certo conjunto de atributos de uma outra relação. GAB: C

Paulo Marcelo

Memorex Banco de Dados

[email protected]

Uma restrição de integridade UNIQUE KEY requer que cada valor em uma coluna ou conjunto de colunas (chave) seja exclusivo — ou seja, duas linhas de uma tabela não podem ter valores duplicados em uma coluna específica ou conjunto de colunas. A coluna (ou conjunto de colunas) incluída na definição da restrição UNIQUE KEY é chamada de chave exclusiva. Se a chave UNIQUE contiver mais de uma coluna, tal grupo de colunas é considerado uma chave exclusiva composta. As restrições UNIQUE KEY permitem a entrada de valores nulos a menos que você defina as restrições NOT NULL para as mesmas colunas. Na realidade, qualquer número de linhas pode incluir valores nulos para colunas sem restrições NOT NULL porque os valores nulos não são considerados. Um valor nulo em uma coluna (ou em todas as colunas de uma chave UNIQUE composta) sempre satisfaz uma restrição de UNIQUE KEY.

Paulo Marcelo

Memorex Banco de Dados

[email protected]

OBS: Sem a opção ON DELETE CASCADE, a linha da tabela mãe não poderá ser deletada quando houver referência a ela na tabela filha. Paulo Marcelo

Memorex Banco de Dados

[email protected]

A restrição CHECK (restrição de checagem ou domínio) define uma condição que cada linha deve satisfazer

Projeção: você pode usar o recurso de projeção da linguagem SQL para escolher as colunas de uma tabela que devem ser retornadas por uma consulta. É possível escolher o número de colunas que for necessário da tabela. É representada pela letra grega Pi. A projeção é alcançada com a cláusula SELECT Seleção ou Restrição: você pode usar o recurso de seleção da linguagem SQL para escolher as linhas de uma tabela que devem ser retornadas por uma consulta e pode usar vários critérios para restringir as linhas exibidas. É representada pela letra grega Sigma. A Seleção é obtida através da cláusula WHERE Junção: você pode usar o recurso de junção da linguagem SQL para reunir dados armazenados em diferentes tabelas, criando um vínculo entre eles.

A álgebra relacional consiste de operações cujos nomes vêm da teoria de conjuntos e as principais são: UNIÃO (UNION) Que produz uma tabela resultado da união das tabelas operadas

INTERSEÇÃO (INTERSECT) Que cria uma tabela resultado da interseção das tabelas operadas

Paulo Marcelo

Memorex Banco de Dados

[email protected]

DIFERENÇA (EXCEPT) Que cria uma tabela contendo tuplas que pertencem à primeira tabela operada, mas não pertencem à segunda.

PRODUTO CARTESIANO Que gera todas as combinações possíveis entre as t-uplas de duas tabelas.

Esquema Descrição (textual ou gráfica) da estrutura de um banco de dados de acordo com um determinado modelo de dados Instância Conjunto de dados armazenados em um banco de dados em um determinado instante de tempo.

Paulo Marcelo

Memorex Banco de Dados

[email protected]

TRASAÇÃO (MUDANÇA DE ESTADO/COMPORTAMENTO) Mudanças de estado em um banco de dados são efetuadas por transações. Uma transação é um conjunto de operações que levam o banco de dados de um estado consistente a outro estado consistente. Mudanças de estado de um banco de dados representam o comportamento desse banco de dados.

CONSISTÊNCIA Na propriedade de Consistência, a execução de uma transação isolada (isto é, sem a execução concorrente de outra transação) preserva a consistência do banco de dados. A Consistência garante que uma transação deve ser um programa correto, e suas ações não devem resultar em violações de restrições de integridade definidas para o banco de dados. Assegurar a propriedade de Consistência após uma transação é tarefa do programador que codifica a transação.

Paulo Marcelo

Memorex Banco de Dados

[email protected]

PERSITÊNCIA (DURABILIDADE) Depois de uma transação completar com sucesso (commit), as mudanças que ela fez no banco de dados persistem, até mesmo se houver falhas no sistema. A Durabilidade é assegurada também pelo próprio sistema de banco de dados, mais especificamente pelo componente de Gerenciamento de Recuperação.

Paulo Marcelo

Memorex Banco de Dados

[email protected]

MODELO ENTIDADE RELACIONAMENTO (MER)

Paulo Marcelo

Memorex Banco de Dados

[email protected]

A notação pé-de-galinha (crow’s foot) é usada em metodologias alternativas e é representada:

Paulo Marcelo

Memorex Banco de Dados

[email protected]

MODELO DE DADOS VS ESQUEMA Um modelo de dados é um conjunto de conceitos usados para se descrever dados. Um esquema é uma descrição de uma determinada coleção de dados, descrição essa baseada num certo modelo de dados.

O modelo relacional é o modelo de dados mais utilizado atualmente. Principal conceito do modelo relacional: relação, basicamente uma tabela com linhas e colunas. Cada relação (tabela) tem um esquema relacional que descreve suas colunas.



CLASSIFICAÇÃO DOS MODELOS DE DADOS Há modelos de dados: físicos (baixo nível)



Lógicos ou de implementação (nível intermediário): Suportados por SGBSs comerciais e comumente usados na implementação de sistemas de bancos de dados. O modelo relacional é o modelo lógico mais usado hoje (IBM DB2, Oracle, Sybase, Informix, Microsoft SQL Server, etc.)



Conceituais ou semânticos (alto nível) : Incorporam construções que permitem capturar o significado da realidade do negócio. O Modelo EntidadesRelacionamentos (E-R) é o modelo semântico mais difundido.

Paulo Marcelo

Memorex Banco de Dados

[email protected]

CLASSIFICAÇÃO DAS VISÕES E ESQUEMAS A arquitetura ANSI/SPARC prevê: múltiplas visões de dados, um esquema conceitual (lógico) e um esquema interno (físico). 

Os esquemas externos descrevem visões, ou views (como os usuários vêem os dados).



O esquema conceitual descreve a estrutura lógica dos dados.



O esquema interno descreve os arquivos e os índices empregados

OBS: NÃO confundir esquema conceitual (lógico) que interliga a camada externa (visão) e a camada física com modelo conceitual que usa o Entidade – Relacionamentos (MER) como modelo semântico dos dados.

Paulo Marcelo

Memorex Banco de Dados

[email protected]

FUNÇÕES DE GRUPO

Paulo Marcelo

Memorex Banco de Dados

[email protected]

A função COUNT tem três formatos: COUNT(*)

COUNT(expr)

COUNT (DISTINCT expr)

COUNT(*) retorna o número de linhas em uma tabela que satisfaz os critérios da instrução SELECT, inclusive linhas duplicadas e linhas contendo valores nulos em qualquer uma das colunas. Se uma cláusula WHERE estiver incluída na instrução SELECT, COUNT(*) retornará o número de linhas que satisfizer a condição na cláusula WHERE. COUNT (expr) retorna o número de valores não-nulos na coluna identificada por expr. COUNT (DISTINCT expr) retorna o número de valores exclusivos não-nulos da coluna identificada por expr.

Paulo Marcelo

Memorex Banco de Dados

[email protected]

Unindo uma Tabela a ela Mesma Algumas vezes será necessário unir uma tabela a ela mesma. Na tabela acima, para localizar o nome do gerente de cada funcionário, é necessário unir a tabela EMP a ela mesma ou executar uma autojunção. Por exemplo, para localizar o nome do gerente de Blake, é necessário: • Localizar Blake na tabela EMP consultando a coluna ENAME. • Localizar o número do gerente de Blake consultando a coluna MGR. O número do gerente de Blake é 7839. • Localizar o nome do gerente como o EMPNO 7839 consultando a coluna ENAME. O número do funcionário King é 7839, então King é gerente de Blake. Neste processo, você analisa a tabela duas vezes. Na primeira vez, você consulta a tabela para localizar Blake na coluna ENAME e o valor MGR de 7839. Na segunda vez, você consulta a coluna EMPNO para localizar 7839 e a coluna ENAME para localizar King.

DICA: Em se tratando de autojunções, sempre vai haver uma inversão durante a cláusula WHERE, neste exemplo: trabalhador. NúmeroGerente = gerente. NúmeroTrabalhador.

Paulo Marcelo

Memorex Banco de Dados

[email protected]

Às vezes, é necessário dividir a tabela de informações em grupos menores. Isso pode ser feito com o uso da cláusula GROUP BY.

Paulo Marcelo

Memorex Banco de Dados

[email protected]

No exemplo, a cláusula WHERE poderia especificar as linhas a serem recuperadas. Já que não há uma cláusula WHERE, todas as linhas são recuperadas por default. A cláusula GROUP BY especifica como as linhas devem ser agrupadas. As linhas são agrupadas pelo número do departamento, de forma que a função AVG que esteja sendo aplicada à coluna de salários calcule o salário médio para cada departamento

Sempre que você usa uma mistura de itens individuais (DEPARTMENT_ID) e funções de grupo (COUNT) na mesma instrução SELECT, deve incluir uma cláusula GROUP BY que especifique os itens individuais (neste caso, DEPARTMENT_ID). Qualquer coluna ou expressão na lista SELECT que não seja uma função agregada deve estar na cláusula GROUP BY.

Paulo Marcelo

Memorex Banco de Dados

[email protected]

CONSULTA VÁLIDA SELECT department_id, AVG(salary) FROM employees HAVING AVG (salary) > 8000 GROUP BY department_id;

Da mesma forma que você usa a cláusula WHERE para restringir as linhas que seleciona, pode usar a cláusula HAVING para restringir grupos.

Uma subconsulta é uma instrução SELECT que é incorporada a uma cláusula de outra instrução SELECT. Você pode desenvolver instruções sofisticadas a partir de instruções simples usando subconsultas. Elas poderão ser muito úteis quando você precisar selecionar linhas de uma tabela com uma condição que dependa dos dados na própria tabela.

Paulo Marcelo

Memorex Banco de Dados

[email protected]

É possível colocar a subconsulta em várias cláusulas SQL, incluindo as cláusulas WHERE, HAVING e FROM Na sintaxe: o operador inclui uma condição de comparação como >, = ou IN Observação: as condições de comparação subdividem-se em duas classes: operadores de uma única linha (>, =, >=, <, <>, <=) e operadores de várias linhas (IN, ANY, ALL).

Paulo Marcelo

Memorex Banco de Dados

[email protected]

Para corrigir o erro acima, altere o operador “ = “para “IN”.

Paulo Marcelo

Memorex Banco de Dados

[email protected]

“< ANY” significa menos que o máximo. ”>ANY” significa mais que o mínimo. “=ANY” equivale a IN. “> ALL” significa mais que o máximo e “ANY” equivale a NOT IN

A função SYSDATE é usada para obter a data e a hora atuais.

Paulo Marcelo

Memorex Banco de Dados

[email protected]

Paulo Marcelo

Memorex Banco de Dados

[email protected]

Se o registro pai que você tentar deletar tiver registros filhos, você receberá a mensagem ORA-02292 de violação de registro filho encontrado. Se a cláusula “on delete cascate” for especificada para chave estrangeira, a linha poderá ser excluída sem problema. Paulo Marcelo

Memorex Banco de Dados

[email protected]

A Instrução MERGE: Fornece a habilidade de atualizar ou inserir dados condicionalmente em uma tabela de banco de dados. Ela executa uma operação UPDATE se a linha existir ou uma operação INSERT se for uma nova linha, dessa forma:  Evita-se atualizações separadas  Aumenta o desempenho e a facilidade de utilização  É útil em aplicações de data warehousing.

QUANDO UMA TRANSAÇÃO INICIA E TERMINA? Uma transação inicia quando a primeira instrução DML é encontrada e termina quando ocorre um dos seguintes eventos: • Uma instrução COMMIT ou ROLLBACK é emitida • Uma instrução DDL, como CREATE, é emitida • Uma instrução DCL é emitida • Ocorre falha no computador ou no sistema Depois que uma transação termina, a próxima instrução SQL executável automaticamente inicia a próxima transação. Uma instrução DDL ou DCL é submetida a commit automaticamente e, portanto, encerra implicitamente uma transação. O objetivo da consistência de leitura é garantir que cada usuário veja os dados como eles eram no último commit, antes do início da operação DML.

Todas as alterações feitas nos dados durante a transação são temporárias até que a transação seja submetida a commit.

Paulo Marcelo

Memorex Banco de Dados

[email protected]

Estado dos dados antes de as instruções COMMIT ou ROLLBACK serem emitidas: • As operações de manipulação de dados afetam primeiramente o buffer do banco de dados; assim, o estado anterior dos dados pode ser recuperado. • O usuário atual pode revisar os resultados das operações de manipulação de dados consultando as tabelas. • Os outros usuários não poderão ver os resultados das operações de manipulação de dados feitas pelo usuário atual. O servidor Oracle institui a consistência de leitura para garantir que cada usuário veja os dados exatamente como eram no momento do último commit. • As linhas afetadas são bloqueadas; os outros usuários não poderão alterar os dados contidos nessas linhas.

Paulo Marcelo

Memorex Banco de Dados

[email protected]

Junção Interna (Inner Join) Uma Junção Interna é caracterizada por uma seleção que retorna apenas os dados que atendem às condições de junção, isto é, quais linhas de uma tabela se relacionam com as linhas de outras tabelas. Para isto utilizamos a cláusula ON, que é semelhante à cláusula WHERE. Podemos especificar duas formas diferentes de expressar esta junção: a explícita utiliza a palavra JOIN, enquanto a implícita utiliza ',' para separar as tabelas a combinar na cláusula FROM do SELECT. Então sempre é gerado o produto cruzado do qual são selecionadas as combinações que cumpram a cláusula WHERE. Left Outer Join (ou LEFT JOIN) O resultado desta seleção sempre contém todos os registros da tabela esquerda (isto é, a primeira tabela mencionada na consulta), mesmo quando não existam registros correspondentes na tabela direita. Desta forma, esta seleção retorna todos os valores da tabela esquerda com os valores da tabela direita correspondente, ou quando não há correspondência retorna um valor NULL. Full Outer Join Esta operação apresenta todos os dados das tabelas à esquerda e à direita, mesmo que não possuam correspondência em outra tabela. A tabela combinada possuirá assim todos os registros de ambas as tabelas e apresentará valores nulos para os registros sem correspondência.

Paulo Marcelo

Memorex Banco de Dados

[email protected]

QUESTÕES DE CONCURSOS 1-

(ANAC2009/CESPE) Um banco de dados relacional é um banco de dados em que a estrutura tem a forma de tabelas. Formalmente uma relação R definida sobre n conjuntos D1, D2, ..., Dn (Domínio - conjunto de valores obrigatoriamente distintos) é um conjunto de n-tuplas (ou simplesmente tuplas) tais que d1 pertence a D1, d2 pertence a D2, ..., dn pertence a Dn.

2- Para se conseguir filtrar valores resultantes de expressões agregadas, foi adicionada à SQL a cláusula: A) AVG; B) SUM; C) SELECT; D) WHERE; E) HAVING. 3- (INFRAERO 2009/fcc) As redundâncias de dados possíveis em um banco de dados devem ser justificadas por uma necessidade específica e num determinado momento do projeto, que são, respectivamente, (A) melhor desempenho e projeto físico. (B) maior integridade e projeto lógico. (C) maior integridade e projeto físico. (D) melhor desempenho e projeto conceitual. (E) mais disponibilidade e projeto lógico. 4- (INFRAERO 2009/FCC) Um modelo relacional contendo um autorrelacionamento de uma entidade, numa associação N:N, que também se relaciona com outra entidade, numa associação 1:N, será implementado fisicamente por meio de (A) quatro tabelas. (B) três tabelas. (C) nenhuma tabela, tratando-se de uma impossibilidade. (D) uma tabela, apenas. (E) duas tabelas. 5- [ESAF 2002] Se uma determinada tabela T1 possui uma chave estrangeira, a qual é chave primária em uma tabela T2, então ela deve ser igual a um valor de chave primária existente em T2 ou ser nula. 6- Dadas duas tabelas relacionais idênticas quanto à seguinte estrutura e conteúdo definidas como TabA e TabB:

Id Nome 1 N1 2 N2 3 N3 4 N4 Sabendo que a chave primária de identificação única é a coluna Id (válido para ambas as tabelas), a seguinte expressão SQL:

Paulo Marcelo

Memorex Banco de Dados

[email protected]

SELECT TabA.Nome, TabB.Nome FROM TabA, TabB WHERE TabA.Id NOT IN (TabB.Id) exibirá como resultado: (A) nenhuma linha. (B) 4 linhas. (C) 8 linhas (D) 10 linhas. (E) 12 linhas. 7 – (Analista – Bacen/2006) Um processo que tem comandos Select, Insert, Update ou Delete, para o controle de concorrência, requer, respectivamente, locks A) S, S, X ou X B) X, IX, U ou S C) S, IX, U ou X D) X, S, S ou S E) S, X, X ou X 8- A modificação num banco de dados que pode evitar violação de integridade referencial é executar um teste similar ao: a) inserir, se a inserção da relação 2 modificar a chave estrangeira. b) remover, se a inserção da relação 2 modificar a chave primária. c) remover, se a atualização da relação 1 modificar a chave primária. d) remover, se a atualização da relação 2 modificar a chave estrangeira. e) remover, se a remoção da relação 1 modificar a chave estrangeira. 9- O mecanismo de armazenamento em um banco de dados relacional é a) partições e subpartições b) segmentos de rollback c) segmentos, extensões e blocos d) usuários e esquemas e) tabelas, colunas e tipos de dados 10 - Toda chave estrangeira que não é uma chave primária ou não faz parte de uma chave primária composta representa um relacionamento a) 1:1 ou 1:N. b) 1:N ou M:N. c) 1:1, somente. d) 1:N, somente. e) M:N, somente. 11- A estrutura lógica de armazenamento nas bases de dados Oracle é representada na seqüência hierárquica de (A) segmentos, blocos de dados e extensões. (B) segmentos, extensões e blocos de dados. (C) extensões, segmentos e blocos de dados. (D) extensões, blocos de dados e segmentos. (E) blocos de dados, segmentos e extensões. 12 - Com respeito ao nível lógico (conceitual e externo) dos bancos de dados relacionais normalizados é correto afirmar que:

Paulo Marcelo

Memorex Banco de Dados

[email protected]

(A) As conexões entre tabelas são vistas pelo usuário, na forma de ponteiros. (B) Todo o conteúdo de informação é representado de um e somente um modo, ou seja, como valores explícitos de colunas em linhas de tabelas. (C) Um relacionamento do tipo N:M implicará em chaves estrangeiras multivaloradas nas tabelas relacionadas. (D) Um relacionamento do tipo 1:N implicará em que as chaves do lado N serão chaves estrangeiras multivaloradas na tabela representada pelo lado 1. (E) Um relacionamento do tipo 1:1 não pode ser implementado em tabelas relacionais. 13- Via de regra, são mantidos no catálogo de um banco de dados (A) os esquemas interno e externo e mapeamentos correspondentes, mas não o conceitual. (B) o esquema conceitual, mas não o externo e nem o interno. (C) os esquemas conceitual e interno e mapeamentos correspondentes, mas não o externo. (D) os esquemas externo, conceitual e interno e todos os mapeamentos correspondentes. (E) o esquema interno, mas não o externo e nem o conceitual. 14- No projeto de um banco de dados, a construção de um modelo lógico é feita pela transformação do seu modelo conceitual. O modelo lógico define como o banco de dados será implementado em um SGBD específico. 15 – CESPE 1 CREATE TABLE PAISES ( 2 CODIGO VARCHAR(3) PRIMARY KEY, ... 9 CREATE TABLE BARREIRAS_TECNICAS ( ... 17 CONSTRAINT FK_PAIS FOREIGN KEY (PAIS) REFERENCES PAISES(CODIGO)

"Conforme o modelo físico desse esquema de dados, a relação de cardinalidade estabelecida entre BARREIRAS_TECNICAS e PAISES é 1:n." 16 - (FCC/INFRAERO 2009) Considere que um modelo relacional normalizado até a I. 3FN contém apenas relacionamentos N:M. II. 3FN contém apenas relacionamentos 1:1 e 1:N. III. 3FN não pode conter dependências funcionais entre atributos não-chave. IV. 1FN ou 2FN não pode conter dependências funcionais entre atributos não-chave e nem relacionamentos N:M. Está correto o que se afirma APENAS em (A) I e III. (B) II. (C) I. (D) II, III e IV. (E) II e III. 17- Em uma organização de ensino, sabendo que um mesmo professor pode ministrar mais de uma disciplina para seus alunos, para responder à questão: qual professor ministra aulas de bancos de dados para os dez alunos mais aplicados nessa disciplina? é necessário modelar (A) um relacionamento ternário entre professor, disciplina e aluno. (B) dois relacionamentos binários, sendo um entre professor e disciplina e outro entre disciplina e aluno. (C) dois relacionamentos binários, sendo um entre professor e disciplina e outro entre professor e aluno. (D) dois relacionamentos binários, sendo um entre professor e aluno e outro entre disciplina e aluno. (E) três relacionamentos binários sendo um entre professor e aluno, outro entre disciplina e aluno e outro entre professor e disciplina.

Paulo Marcelo

Memorex Banco de Dados

[email protected]

18 – (TRE-SE/FCC) - Considere o enunciado: "Um analista usa exatamente um notebook para cada projeto. Cada notebook pertence a um analista para cada projeto. Observe que um analista ainda pode trabalhar em muitos projetos e usar diferentes notebooks para diferentes projetos". O diagrama entidade relacionamento a seguir:

a) representa corretamente o enunciado. b) deveria considerar a cardinalidade "muitos" em Analista. c) deveria considerar a cardinalidade "muitos" em Notebook. d) deveria considerar a cardinalidade "muitos" em Projeto e em Notebook. e) deveria considerar a cardinalidade "muitos" nas três entidades envolvidas. 19 – CESPE - O modelo lógico de um banco de dados corresponde a um modelo abstrato, que descreve a estrutura de um banco de dados na forma independente de um sistema de gerência de banco de dados particular 20 - CESPE - A independência lógica de dado permite se modificar o esquema conceitual de um banco de dados sem a necessidade de se reescrever os programas aplicativos. Esse tipo de independência dos dados é mais fácil de ser alcançada que a independência física, porém os programas são bastante dependentes da estrutura lógica dos dados que eles acessam. 21 - (CESPE TRT 10ª região / 2004) Um atributo multivalorado pode ter um ou mais valores de uma dada ocorrência de uma entidade. Os atributos derivados também podem ter um ou mais valores, mas são atributos normalmente calculados a partir de atributos simples 22 CESPE - Um ou mais atributos {A1, A2,..., An} é uma chave primária em uma relação se esses atributos funcionalmente determinam todos os outros atributos na relação (duas tuplas distintas da relação não podem ter os mesmos valores de A1, A2,..., An) e não há um subconjunto de {A1, A2,..., An} que funcionalmente determine todos os outros atributos da relação. 23 – CESPE - Considerando-se o esquema e as dependências funcionais a seguir, é correto afirmar que o par composto por matricula e nome é uma chave candidata. Esquema_alunos = (matricula, nome, curso, telefone) matricula, nome -> curso, telefone matricula -> nome, curso, telefone 24 - Seja o seguinte grupo de tabelas de um sistema: fabricante (idfabricante, nome, endereço) peça (idmodelo, nome, descrição) constrói (idmodelo (FK), idfabricante (FK), data, quantidade, cor) Um programador monta a seguinte consulta SQL: SELECT f.nome, count(distinct c.idmodelo) as num FROM fabricante f INNER JOIN constroi c ON f.idfabricante = c.idfabricante WHERE c.cor = 'VERMELHO' GROUP BY f.nome

Paulo Marcelo

Memorex Banco de Dados

[email protected]

HAVING count(distinct c.idmodelo) > 10 ORDER BY num DESC Qual o retorno dessa consulta? (A) Os nomes dos fabricantes e a respectiva quantidade total de peças construídas na cor vermelha, desde que, em cada data, a quantidade construída seja maior que 10; o relatório estará ordenado de forma descendente pela quantidade de peças construídas. (B) Os nomes dos fabricantes que já construíram mais de 10 modelos diferentes de peças na cor vermelha e a quantidade de modelos diferentes, mostrando a lista ordenada de forma descendente pela quantidade. (C) Os nomes dos fabricantes que já construíram pelo menos uma peça na cor vermelha; o relatório estará ordenado de forma descendente na quantidade de modelos diferentes construídos. (D) Todos os nomes dos fabricantes e a respectiva quantidade de modelos diferentes de peças vermelhas que já construíram; se um fabricante nunca construiu uma peça na cor vermelha, a contagem mostrará zero. (E) Todos os nomes dos fabricantes e a respectiva quantidade de modelos diferentes construídos, não importando a quantidade de peças, cor ou a data da construção; o relatório estará ordenado de forma descendente na quantidade de peças. 25 – (UFRJ2008)Considere um banco de dados que contém dados sobre pessoas e armazena os atributos Nome, CPF, Endereço, Número de celular. Sabendo-se que pode haver homônimos, que mais de uma pessoa pode dividir o mesmo endereço, que CPF e número de celular pertencem somente a uma pessoa, e que uma pessoa pode ter mais de um celular, pode-se concluir que a dependência funcional que NÃO é válida neste modelo é: (A) CPF → Nome; (B) Número celular → CPF; (C) CPF → Nome, Endereço; (D) Nome → Número celular; (E) Número celular → Endereço. 26 - As chaves estrangeiras implementam a manutenção das referências de integridade em bancos de dados relacionais. Algumas implementações permitem estabelecer as ações a seguir quando essas referências são violadas. O comando alter table T1 add constraint c1 foreign key (a) references T2 on delete cascade estabelece que: (A) a remoção de um registro r em T2 provoca a remoção dos registros de T1 associados a r; (B) a atualização de um registro r em T2 provoca a atualização dos registros de T1 associados a r; (C) a remoção de um registro r em T1 provoca a remoção dos registros de T2 associados a r; (D) a remoção de um registro r em T2 provoca um erro em todos os demais comandos se houver registros em T1 associados a r; (E) a remoção de um registro r em T1 provoca um erro em todos os demais comandos se houver registros em T2 associados a r. 27 - Considere as seguintes dependências funcionais:

A→B B→A A→C Um esquema relacional R (A,B,C) correto para esses atributos teria:

Paulo Marcelo

Memorex Banco de Dados

[email protected]

(A) uma chave, formada por A; (B) duas chaves, formadas por A e B; (C) três chaves, formadas por A, B e C; (D) uma chave, formada pela concatenação de A e B; (E) uma chave, formada pela concatenação de A, B e C. 28 - Com relação aos conceitos básicos de banco de dados, é correto afirmar que A) a chave primária é um atributo de uma tabela que, mesmo com valores nulos, identifica univocamente uma coluna. B) o modelo relacional refere-se à visualização física e não lógica dos dados. Está relacionado ao nível conceitual interno. A teoria relacional não diz nada sobre o nível externo, preocupa-se somente com o armazenamento e manipulação dos dados executados pelo SGBD. C) chaves estrangeiras são os elos de ligação entre as tabelas. Uma coluna definida como chave estrangeira deve ser chave primária em outra tabela. D) um banco de dados relacional é um conjunto de arquivos seqüenciais que são acessados e modificados por operações que manipulam a álgebra relacional. Tais operações só podem ser executadas se atenderem à regra da primeira forma normal, devendo-se manipular apenas um dado de cada vez. E) uma coluna definida como chave-estrangeira em uma tabela-destino não pode aceitar valores nulos e, essa mesma tabela-destino pode ter uma e somente uma coluna definida como chave-estrangeira. 29 - CESPE - Select, project, union, set difference, produto cartesiano e rename são operações da álgebra relacional. As operações select, project e rename são chamadas operações primárias, pois operam uma única relação, as outras operam um par de relações e são chamadas operações binárias. 30 - (TCU2007/CESPE) - Em uma aplicação de banco de dados, scripts escritos na linguagem SQL nativa de um SGBD podem representar: o esquema conceitual dessa aplicação; a visão externa dos usuários finais; e as características físicas de armazenamento do esquema interno. 31 – (STF2008/CESPE) As características do atributo CEP — numérico, seqüencial e não repetido — permitem utilizá-lo como chave primária em um banco de dados destinado ao cadastro de clientes de uma loja. 32 – (TRF/FCC2007) Em relação aos bancos de dados relacionais, é correto afirmar que a) b) c) d) e)

seu nível interno não é relacional. o esquema conceitual é escrito usando-se a DDL interna. as visões interna e externa são idênticas. a visão conceitual é uma representação de baixo nível do banco de dadospor inteiro. a visão externa define como e em que seqüência física os dados estão armazenados.

33 - Um analista de sistemas recebe o seguinte trecho de descrição de um sistema: Uma empresa contrata um profissional para trabalhar em um projeto recebendo um determinado salário. Sabe-se que um projeto pode ter a participação de diversas empresas e que um profissional pode desempenhar várias atividades nesse projeto (p.ex. operador de guindaste e pedreiro). Que modelo ER representa corretamente essa descrição? (O símbolo (*) representa atributo multivalorado).

Paulo Marcelo

Memorex Banco de Dados

[email protected]

34 – (Os médicos conveniados atendem diversos funcionários do Tribunal em consultas que podem ser emergenciais. De qualquer forma, toda consulta deve ser registrada para identificar o médico que atendeu determinado funcionário. Assim, é possível definir um modelo entidade-relacionamento representado pelo diagrama abaixo, dispensando-se, para esta finalidade, a representação dos atributos de cada entidade.

O departamento de atendimento social do Tribunal deseja registrar os medicamentos existentes, de acordo com a tabela do Ministério da Saúde, a fim de obter informações a respeito dos medicamentos receitados pelos médicos em cada consulta efetuada. Obviamente, podem existir consultas em que nenhum medicamento é receitado. Dessa forma, respeitados os fundamentos do modelo entidade-relacionamento, será necessário criar: (A) o atributo multivalorado “Medicamento” na entidade “Funcionário”, que indique quais medicamentos lhe foram receitados em uma consulta. (B) uma terceira entidade denominada “Medicamento”, que será relacionada à “Consulta”. Como não é possível relacionar dois relacionamentos, “Consulta” se converterá em Entidade Associativa. (C) o atributo multivalorado “Medicamento” no relacionamento “Consulta”, que indique quais medicamentos foram receitados para cada funcionário em cada consulta. (D) o atributo multivalorado “Medicamento” na entidade “Médico”, que indique quais medicamentos ele receitou em cada consulta. (E) o atributo monovalorado “Medicamento” em cada uma das entidades “Médico” e “Funcionário” e relacioná-los entre si, a fim de responder quais medicamentos um médico receitou a quais funcionários. Paulo Marcelo

Memorex Banco de Dados

[email protected]

RESPOSTAS

1 – [ERRADO] O problema está em falar que as tuplas estão contidas no domínio. Na verdade, são os atributos que estão relacionados ao domínio. Um atributo é um par domínio/valor. Domínio: conjunto de valores atômicos – cada valor é indivisível no diz que respeito ao modelo relacional. Em geral, o domínio é designado como tipo de dado. [Misael Ferreira] 2 - Gab: Letra E) HAVING Exemplo do uso HAVING: select count(cod_cliente), cod_prod from clienteproduto where cod_cliente > 1  somente se o código do cliente for maior que 1 (esse filtro é feito por registro) having count(cod_cliente) > 1 group by cod_prod  somente se o total do grupo count(cod_cliente) por produto for maior que 1 3 - Gab. Letra A Quando falamos de redundância de dados estamos falando de desnormalização. A desnormalização é feita com o objetivo de aumentar a performance da aplicação. Exemplo: Para saber o total de uma compra, em um sistema totalmente normalizado, provavelmente o sistema deveria ler pelo menos três tabelas (compra, detalhe da compra, produto), calcular os preços unitários * quantidades e somá-los. Isso, em um banco com muitos registros demoria alguns segundos a mais do que se ao projetar o banco de dados (modelo físico ou projeto físico) já tivessemos previsto o campo TotalDaCompra. [Natércia Cristiane] 4 - Gab: Letra B uma associação N:N, deve se criar uma tabela com as chaves das duas tabelas do relacionamento N:N (o que totalizaria 3 tabelas), porém no caso do problema como o ocorre o autorrelacionamento, há na verdade DUAS TABELAS (1 tabela autorrelacionada e 1 tabela para o autorrelacionamento N:N). No problema ele diz que há também um relacionamento 1:N com outra entidade. Num relacionamento 1:N normalmente não há geração de uma tabela de relacionamento. O que ocorre é que a tabela do lado "N" da associação incorpora a chave do lado "1" da associação. Portanto, há *3 tabelas* (1 tabela autorrelacionada, 1 tabela da associação de autorrelacionamento N:N e 1 tabela que se liga à tabela autorrelacionada numa associação 1:N) [Anderson Rodrigues Ferreira] 5 - [CORRETO] Cenário 1: Cliente(1,N)-----(1,N)LinhaCrédito Neste caso, uma empresa X somente efetua uma venda caso o seu cliente possua uma linha de crédito. Trata-se de um relacionamento mandatário, em que não poderá existir valores nulos. Cenário 2: Cliente(1,N)-----(0,N)LinhaCrédito Neste caso, uma empresa X pode efetuar uma venda mesmo sem uma linha de crédito concedida ao cliente. Trata-se de um relacionamento NÃO mandatário, que poderá ser expresso por valores não nulos (cliente com linha de crédito) ou por valores nulos (cliente sem linha de crédito). Esse segundo cenário é o que trata a questão! 6 - Gab: Letra E) 12 linhas A resposta seria nenhuma linha se a consulta fosse algo como: SELECT TabA.Nome , TabB.Nome Paulo Marcelo

Memorex Banco de Dados

[email protected]

FROM TabA , TabB WHERE TabA.Id NOT IN (Select Id FROM TabB) Da forma como a consulta do enunciado foi elaborada, o teste "TabA.Id NOT IN (TabB.Id)" será realizado para todas as combinações de TabA.Id e TabB.Id. 4x4 = 16 linhas menos as 4 linhas que coincide nas duas tabelas = 12. 7 - Gab: Letra E Lock do tipo X = exclusive lock (lock de escrita) Lock do tipo S = shared lock (lock de leitura) 8 - Gab : Letra C A regra de integridade referencial nos diz que o banco de dados não pode conter quaisquer valores de chaves estrangeiras não correspondentes, ou seja, a restrição nos diz que se 2 faz referência a 1, então 1 deve existir. Se eu modificar o valor da chave primária de 1, então eu tenho de remover as entradas na relação 2. Portanto, letra C. [Diofagor] 9 - Gab: Letra E O modelo relacional não se preocupa com a representação dos dados no nível físico, se preocupa, sim, com o modelo lógico ou conceitual. [diofagor] 10- Gab: Letra A A letra "B" está errada porque em um relacionamento M-N as chaves estrangeiras fazem parte da chave composta da 3a. tabela, que obrigatoriamente deve existir. E no comando da questão ele fala "Toda chave estrangeira que não é uma chave primária ou não faz parte de uma chave primária composta representa um relacionamento". [Farouk2007] 11 - Gab: Letra B A estrutura do Oracle tem, de fato, esta hierarquia. Segmentos  um conjunto de extensões alocadas a uma estrutura de dados específica Extensões  número específico de blocos de dados contíguos Blocos de dados  o nível mais fino de granularidade, que é um número fixo de bytes [Pedrosa] 12 - Gab: Letra B (A) Não existem “ponteiros” em SGBDs relacionais. (C) Não existem “chaves estrangeiras multivaloradas”. (D) A chave estrangeira, para relacionamentos 1:N, sempre fica do lado N. Além do mais, não existem “chaves estrangeiras multivaloradas”. (E) É perfeitamente possível implementar um relacionamento 1:1 em SGBDs relacionais. [Pedrosa] 13 - Gab: Letra D O catálogo contém informações sobre todos os três níveis de esquemas de banco de dados: externo (visões), conceitual (tabelas da base) e interno (descrição de armazenamento e índices). 14 - [CORRETO] Entenda modelo lógico como “modelo relacional” e modelo conceitual como “modelo entidade relacionamento” . Não confunda com o conceito de “esquema lógico conceitual” e as visões externas . 15 – [ERRADO] Codigo é a chave primária da tabela PAISES, portanto podemos ter apenas um único valor. Como PAIS não é UNIQUE, então pode ter mais de um valor inserido na relação BARREITAS_TECNICAS referenciando um único valor na relação PAISES. Assim, resposta correta: “...a relação de cardinalidade estabelecida entre BARREIRAS_TECNICAS e PAISES é N: 1” 16 - Gab: Letra E) II e III. Normalização é Modelo relacional. Em modelo relacional não há relacionamento N x M, pois este existe no MER. [Regis] Um relacionamento M:N no fundo não é nada mais que dois relacionamentos sendo 1:N e outro 1:M [Jorge Rafael]

Paulo Marcelo

Memorex Banco de Dados

[email protected]

17 - Gab: Letra A 18 - Gab: Letra A Depois de tanta mistura. O que a questão quer de fato é que a mesma tripla (notebook, analista, projeto) não se repita. Então para que isso aconteça, o relacionamento entre esses objetos tem de ser "um para um" mesmo. I) Veja que o enunciado diz que "Um analista usa exatamente um /notebook /para cada projeto". Ou seja 1 Analista usa 1 notebook para 1 determinado projeto. II) Em "cada notebook pertence a um analista para cada projeto". O enunciado nos diz que 1 notebook pertence a 1 analista para 1 determinado projeto. III) O "analista ainda pode trabalhar em muitos projetos e usar diferentes /notebooks /para diferentes projetos". Ou seja, isto pode acontecer: 1 Analista 'A1' trabalha em 1 projeto 'P1' usando 1 notebook 'N1' 1 Analista 'A1' trabalha em 1 projeto 'P2' usando 1 notebook 'N1' 1 Analista 'A2' trabalha em 1 projeto 'P1' usando 1 notebook 'N2' 1 Analista 'A2' trabalha em 1 projeto 'P3' usando 1 notebook 'N1' Portanto, apesar de o mesmo notebook pode ser usado em diferentes projetos por um mesmo analista, este mesmo notebook não pode ser usado no mesmo projeto para outros analistas. Então, a relação continua sendo 1 notebook para 1 analista para 1 determinado projeto. Dessa forma, a figura colocada por você está correta. A letra 'a' é a correta. Analisando a alternativa que confunde 'D': se colocássemos “muitos” em Projeto e em Notebook estaríamos dizendo que um "analista usa muitos notebooks em muitos projetos". Isto não é totalmente verdade, pois isso significaria dizer que isto é possível: 1 Analista 'A1' trabalha em 1 projeto 'P1' usando 1 notebook 'N1' 1 Analista 'A1' trabalha em 1 projeto 'P2' usando 1 notebook 'N2' 1 Analista 'A1' trabalha em 1 projeto 'P3' usando 1 notebook 'N3' Até aí tudo bem, o problema, é que também teríamos isto: 1 Analista 'A1' trabalha em 1 projeto 'P1' usando 1 notebook 'N1' 1 Analista 'A2' trabalha em 1 projeto 'P1' usando 1 notebook 'N1' 1 Analista 'A3' trabalha em 1 projeto 'P1' usando 1 notebook 'N1' Com a modelagem de relacionamento binário, teríamos um relacionamento 1 Analista para N projetos, com 1 Analista para N notebooks. O problema é que quando efetuamos um relacionamento ternário, temos de pensar nos 3 ligados ao mesmo tempo. [diofagor] 19 - [ERRADO] Assim como o modelo físico, o modelo lógico também é dependente do SGBD 20 - [ERRADO] A independência lógica dos dados é mais difícil de ser alcançada do que a independência física, porém os programas são bastante dependentes da estrutura lógica dos dados que eles acessam. [Danilo Franco] 21 – [ERRADO] Atributo multivalorado é aquele que pode receber uma lista de valores ao mesmo tempo. Por exemplo, número de telefones de uma pessoa. Esse campo envolve o número residencial e número de celular. Os atributos derivados são aqueles que seus valores são obtidos a partir de outros atributos, por exemplo, imagine que você alugará um dvd. Você pagará um valor X caso ele seja lançamento, senão pagará um valor Y, ou seja, o preço do dvd derivará do tipo do dvd (lançamento ou não). O erro da questão é dizer que “os atributos derivados também podem ter um ou mais valores “. O atributo derivado, de acordo com cada cálculo, gera um único valor. Na idade, por exemplo, só podemos ter uma resposta. Idade que você entrou na faculdade, idade atual, mas tudo com base na data de nascimento.

Paulo Marcelo

Memorex Banco de Dados

[email protected]

22 - [ERRADO] A definição dada é a de uma chave candidata que pode, ou não, ser primária. Na maioria das vezes escolhemos a nossa chave primária a partir da chave candidata, mas não é obrigatório. [diofagor] 23 - [ERRADO] Para que um atributo seja uma chave candidata, ele deve possuir as seguintes características: 1) Unicidade --> identificar o restante das tuplas unicamente 2) Irredutibilidade --> não poderá haver um subconjunto de atributos que formam a chave. Pela questão vemos que {matricula, nome} não formam uma chave candidata, pois {matricula} é um subconjunto de {matricula, nome} e possui a propriedade de unicidade. Sendo assim, {matricula, nome} não é irredutível. [diofagor] 24 - Gab: Letra B 25 – Gab: Letra D Se um atributo que é uma chave candidata, então significa dizer que a partir dele podemos identifica os demais atributos. Ou seja, os demais atributos possuem uma dependência funcional em relação as chaves candidatas. No problema proposto, as chaves candidatas para identificar individualmente uma pessoa são: CPF e número de celular, pois o enunciado nos diz que " CPF e número de celular pertencem somente a uma pessoa". Dessa forma: a) CPF → Nome (Válida, uma vez que CPF é uma chave candidata) b) Número celular → CPF (Válida, uma vez que número celular é uma chave candidata) c) CPF → Nome, Endereço (Válida, uma vez que o CPF é uma chave candidata) d) Nome → Número celular (Inválido, uma vez que o Nome não é uma chave candidata, pois no próprio enunciado tem dizendo que pode haver homônimos) e) Número celular → Endereço (Válido, pois número celular é uma chave candidata) 26 – Gab: Letra A A remoção de um registro r em T2 (mãe) provoca a remoção dos registros dos registros filhos (T1) devido a cláusula ON DELETE CASCADE. 27 – Gab: Letra B Percebam que temos a dependência funcional implícita B -> C (visto que A->C e B->A) Percebam também que a questão não fala em chave primária (apesar de que esta é a primeira chave que vem em mente, não é a única). Logo, tanto A quanto B podem ser chaves (mas chaves candidatas). Se a questão pedisse qual é a chave primária, tanto Letra A quanto a letra B poderiam ser respostas. [Nathan Silva] 28 - Gab: Letra C a)chave primária não admite valores nulos b) O modelo relacional refere-se a visualização lógica e está igualmente relacionado ao nível lógico (o MER está relacionado ao nível conceitual/semântico). c) Menos errada. Caberia recurso, pois uma coluna definida como chave estrangeira pode ser chave candidata em outra tabela e não apenas chave primária. d) Um banco de dados relacional não possui nenhuma relação com a forma de acesso físico aos arquivos, que podem ser seqüenciais, direta ou indexada. e) Chaves estrangeiras podem ter valores nulos 29 – [CERTO] Os operadores UNION, INTERSECT e EXCEPT operam relações binárias e correspondem às relações de união, intersecção e diferença da álgebra. Assim como na álgebra, as relações participantes das relações precisam ser compatíveis, isto é, elas precisam ter o mesmo conjuntos de atributos. 30 - [CERTO] O esquema conceitual é representado por meio de DDL (data definition language) , portanto, é sim possível representar

Paulo Marcelo

Memorex Banco de Dados

[email protected]

por meio de sql. As views também são representadas por VDL (vision definition language) e o esquema interno é representado por SDL (storage definition language) - geralmente cada SGBD usa um formato proprietário p/ armazenamento. [always.learning] 31 – [ERRADO] De fato, o CEP é não repetível, pois nenhuma rua terá dois CEPs e uma rua não terá o CEP igual a outra. Nesse sentido, o CEP é numérico, seqüencial e não repetido, como afirma a questão. Entretanto, ela quer utilizar esse atributo como chave primária para identificar os clientes de uma loja. Aí encontra-se o erro dessa questão, pois uma pessoa que mora na Rua X tem o CEP Z e o vizinho dessa pessoa, como também mora na Rua X, possuirá o CEP Z. Logo, o atributo em questão não poderá ser usado para identificar pessoas, apenas ruas. [diofagor] 32 – Gab: Letra A a) Correto. O nível interno é o físico e não tem modelagem definida. b) O esquema conceitual descreve a estrutura lógica dos dados e é escrito usando-se a DDL conceitual. c) visões internas e externas são diferentes d) A visão interna que é de baixo nível e) A visão interna define a sequencia física 33 - Gab: Letra E “O profissional receberia o mesmo salário X mesmo desempenhando mais de uma atividade por projeto, como prevê a situação". A situação prevê mais de um projeto e mais de uma atividade por projeto. Como a atividade é um atributo-chave do relacionamento, e a questão cita exemplos de atividades bem distintas (operador de guindaste e pedreiro), seria natural que cada atividade tivesse sua remuneração específica, a menos que explicitamente declarado que a remuneração depende apenas do funcionário e não do funcionário e da atividade. [Misael Ferreira] 34- Gab: Letra B Em alguns casos, é necessário que associemos uma entidade com a ocorrência de um relacionamento. O modelo de entidades e relacionamentos não permite relacionamentos entre relacionamentos, somente entre entidades. A idéia da entidade associativa é tratar um relacionamento como se ele fosse uma entidade. Se desejarmos controlar os medicamentos receitados pelo médico em determinada consulta, temos que relacionar a entidade medicamento com o fato de ter havido uma consulta (relacionamento consulta). Como não podemos fazer isso diretamente, indicamos que o relacionamento consulta é uma entidade associativa, através de um retângulo em volta do relacionamento.

“Bom mesmo é ir a luta com determinação, abraçar a vida com paixão, perder com classe e vencer com ousadia... pois o triunfo pertence a quem se atreve”. (Charles Chaplin)

Paulo Marcelo

Memorex Banco de Dados

[email protected]

Related Documents

Memorex Banco De Dados
June 2020 11
Banco De Dados, Sgbd
May 2020 17
Banco De Dados
October 2019 37
Banco Dados
May 2020 14
Banco De Dados
April 2020 13
Banco De Dados Ii
June 2020 9