Todas as alterações feitas nos dados durante a transação são

Propaganda
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) <d1,d2, ..., dn> 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]
Download