Professional Documents
Culture Documents
paulo1410@hotmail.com
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.scribd.com/doc/16787717/Memorex-Redes
http://www.scribd.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-the-
middle 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.
'Quem quer fazer alguma coisa, encontra um meio'. 'Quem não quer fazer nada, encontra uma
desculpa'.
Roberto Shinyashiki
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.
1FN: Diz-se que uma tabela está na primeira forma normal quando ela não contém tabelas aninhadas (grupo repetido
ou coluna multivalorada ou coluna não atômica)
2FN: Uma tabela está na 2FN se, além de estar na 1FN, não possuir dependências funcionais parciais, ou seja, todos
os atributos não‐chave devem depender funcionalmente da chave primária inteira. Só ocorre com chaves
primárias compostas
3NF: Uma tabela está na 3FN se, além de estar na 2FN, não possuir dependências transitivas entre os atributos.
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.
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
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
[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]
[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 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
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
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.
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.
Um esquema é uma descrição de uma determinada coleção de dados, descrição essa baseada num certo modelo de dados.
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.
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.
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.
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:
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.
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.
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 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.
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.
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.
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.
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:
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.
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:
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."
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.
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
(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.
alter table T1
add constraint c1 foreign key (a) references T2
on delete cascade
estabelece que:
A→B
B→A
A→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.
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).
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.
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]
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!
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]
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”
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'
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.
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
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]
“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)