-
Pontos importantes para resolução:
Tipos de dados:
o Int – Número.
o Varchar(n) – Representa um texto com quantidade de carateres inferior ou giaul a “n”.
o primary key – Chave primária, servindo de identificador único.
o datetime – DD-MM-YYYY
Create: Representa um dos comandos do DDL (Data Definition Language) responsáveis pela definição do esquema do Bando de Dados.
Resolução:
Será necessário identificar cada tipo de dados das tabelas:
Tabela T:
o Coluna A: Número inteiro, sem valores vazios. Como seu valor não repete, podemos considerar como uma chave primária (Int e primary key).
o Coluna B: Coluna tipo texto, que possuir possui com número máximo de caracteres 41 (“Distribuidora São João de Artigos para Festas”). OBS: Com essa informação já poderíamos excluir a letra “b”, “d” e “e” pois determinam o varchar (32)
o Coluna C: Coluna tipo texto, que possui com número máximo de caracteres 1.
Tabela R:
o Coluna D: Coluna do tipo número (int e primary key).
o Coluna E: Coluna tipo data (Datetime).
o Coluna F: Coluna do tipo moeda (Float, real).
Tabela S:
o Coluna G: Coluna do tipo número (int) e possui relação direta com a coluna “A” da tabela “T” (foreign key (G) references T(A)).
o Coluna H: Coluna do tipo número (int) e possui relação direta com a coluna “D” da tabela “R” (foreign key (H) references R(D)).
o Coluna I: Coluna do tipo número (int).
Gabarito: A
-
Você nunca sai perdendo quando ganha CONHECIMENTO!
-
Em T.B temos um VARCHAR de 45 caracteres, então elimina B, D e E porque o VARCHAR deles só cabe até 32.
Elimina letra C porque as FKs S.H e S.G estão com as referências trocadas. GAB A
OBS: só deus sabe onde foi parar o T.C
-
Devemos verificar, dentre as opções fornecidas, qual script está sintaticamente correto (segue as regras da linguagem SQL) e é compatível com os dados apresentados.
Nesse tipo de questão há algumas coisas que você deve verificar:
- Erros básicos de sintaxe: comandos que não seguem o padrão da linguagem SQL
- Compatibilidade entre tipo da coluna e os valores presentes nela (imagine uma coluna do tipo varchar preenchida com números inteiros e vice-versa)
- Chave primária: valores da chave não podem se repetir
- Integridade referencial: valores da chave estrangeira devem aparecer no atributo referenciado
Nessa questão em específico, todas as alternativas têm um problema: está faltando a coluna C em T, que está na tabela, mas não aparece em nenhum comando CREATE TABLE das alternativas. No entanto, a questão não foi anulada. Como todas apresentam esse mesmo erro, vamos ignorá-lo e verificar os demais problemas.
a) É o único comando DDL compatível com o que as estruturas e valores das tabelas. CERTA
b) O campo T(B) é criado com tipo varchar (32), em que só cabem 32 dígitos. No entanto, o valor “Distribuidora São João de Artigos para Festas” tem 45 caracteres. Além disso, há a criação de duas chaves primárias para S, o que não é permitido. ERRADA
c) O problema aqui é de integridade referencial. Veja que S(H) estaria referenciando T(A) e S(G) referenciando R(D). O correto seria inverter essas referências, pois nenhum valor de S(H) aparece em T(A) e nenhum valor de S(G) aparece em R(D). ERRADA
d) A coluna T(B) também está do tipo varchar (32). Há também a criação de duas chaves primárias. ERRADA
e) A coluna T(B) também está do tipo varchar (32). Há erro de sintaxe na criação das chaves estrangeiras, você deve fornecer o nome da coluna referenciada, e não o número referente à ordem em que ela aparece na tabela. ERRADA
-
GABARITO: Letra A (com ressalvas)
Direto ao ponto:
Alternativas B e D estão erradas, pois só pode haver 1 chave primária por tabela. Veja que elas definem duas chaves primárias.
Alternativa E está errada, pois a chave estrangeira (H) deveria fazer referência a R(D), e não R(1).
Alternativa C está errada, pois trocou a referência das chaves estrangeiras.
Alternativa A é a menos errada, pois esqueceram de criar a coluna "C"., porém esse erro acontece em todas as alternativas. Sendo criterioso, não há alternativa correta.
-
Nesse tipo de questão há algumas coisas que você deve verificar:
- Erros básicos de sintaxe: comandos que não seguem o padrão da linguagem SQL
- Compatibilidade entre tipo da coluna e os valores presentes nela (imagine uma coluna do tipo varchar preenchida comb e vice-versa)
- Chave primária: valores da chave não podem se repetir
- Integridade referencial: valores da chave estrangeira devem aparecer no atributo referenciado
Nessa questão em específico, todas as alternativas têm um problema: está faltando a coluna C em T, que está na tabela, mas não aparece em nenhum comando CREATE TABLE das alternativas.
No entanto, a questão não foi anulada.
Como todas apresentam esse mesmo erro, vamos ignorá-lo e verificar os demais problemas.
a) É o único comando DDL compatível com o que as estruturas e valores das tabelas. CERTA
b) O campo T(B) é criado com tipo varchar(32), em que só cabem 32 dígitos. No entanto, o valor “Distribuidora São João de Artigos para Festas” tem 45 caracteres. Além disso, há a criação de duas chaves primárias para S, o que não é permitido. ERRADA
c) O problema aqui é de integridade referencial. Veja que S(H) estaria referenciando T(A) e S(G) referenciando R(D).
O correto seria inverter essas referências, pois nenhum valor de S(H) aparece em T(A) e nenhum valor de S(G) aparece em R(D). ERRADA
d) A coluna T(B) também está do tipo varchar(32). Há também a criação de duas chaves primárias. ERRADA
e) A coluna T(B) também está do tipo varchar(32). Há erro de sintaxe na criação das chaves estrangeiras, você deve fornecer o nome da coluna referenciada, e não o número referente à ordem em que ela aparece na tabela. ERRADA
O gabarito é letra A, mas a questão deveria ter sido anulada, como discutimos acima.
-
Erros na questão:
1) Não há criação da coluna C;
2) O campo para ser PK deve ser NOT NULL. Faltou isso em S(H).
Tirando isso resta a letra A como menos errada.
-
alguém poderia me ajudar com uma duvida? :D:D
o varchar conta os espaços?
-
E o T.C não precisa né? Que sacanagem!