-
Essa questão é bem simples, porém é muito importante ler atentamente todo o texto. Toda tabela pode conter uma única e exclusiva chave primária e também poderá conter uma ou MAIS chaves estrangeiras, portanto a afirmação do texto são chaves primárias nas tabelas curso e aluno está corretissimo.
Boa Sorte a todos!
-
Na situacao hipotetica ele tenta t confundir.
-
Discordo do gabarito, elas PODEM ser chaves primárias. Elas DEVEM ser chaves CANDIDATAS, que são aquelas que identificam uma tupla.
Uma chave PRIMÁRIA é escolhida dentro de todas as chaves CANDIDATAS. Acho que faltou recurso nessa questão.
-
"Além disso, na tabela de cursos realizados por aluno, estão presentes as chaves estrangeiras aluno e curso."
Acho que o correto seria que "estão presentes a chave estrangeira do aluno e a chave primária do curso"
-
Também discordo do gabarito.
De acordo com o livro do C J DATE, integridade referencial "define que os valores dos campos que aparecem numa chave estrangeira devem aparecer na chave candidata da tabela referenciada".
-
Ele só está perguntando se código do aluno e código do curso correspondem a chave primária das tabelas aluno e curso RESPECTIVAMENTE.
-
O texto tenta confundir. Mas ele nao quer saber das chaves na entidade "cursos realizados por aluno" e sim as chaves nas suas respectivas entidades.
-
Para o CESPE, as chaves estrangeiras devem ser chaves primárias nas tabelas referenciadas para manter a integridade referencial.
[CESPE/TJ-DFT 2015] Em um banco de dados relacional, a chave estrangeira que existe em uma tabela deve ser chave primária em outra tabela.
Gabarito: Certo.
-
~>Chave estrangeira: É o nome da chave primária quando utilizada como referência a um registro de outra tabela. Elas basicamente fazem referência à chave primária de outra tabela ou até mesmo da própria tabela.
-
Questão escrita por quem não programa desde que foi para a faculdade.
Programadores modernos utilizam cada vez menos o atributo "Código" nos bancos de dados. No caso de aluno, invés de criar um novo atributo para essa entidade chamado "Código do Aluno", o mais comum hoje é utilizar-se, como chave primária, o CPF do aluno ou seu RG (CPF é mais garantido de não ter 2 registros iguais, no caso de alunos oriundos de estados diferentes da Federação, por exemplo).
Esse processo reduz o tamanho do banco de dados e o tamanho dos códigos a serem escritos na implementação, já que é um atributo a menos para se implementar na entidade (Uma pessoa, por exemplo, já possui diversos atributos únicos, como CPF, RG, Tit. Eleitor, CNH e etc... pra que criar mais um chamado "Código da Pessoa"? No caso de empresas, já há CNPJ único, para que criar mais um "Código da Empresa"? Apenas no caso de cursos isso seria necessário, porque os cursos por natureza não possuem um código específico atribuído de forma generalizada - salvo no caso de cursos tecnicos e superiores, que têm sim um código atribuído pelo MIN.ED que pode ser usado como chave primária.)
De acordo com a questão eu necessariamente precisaria criar os atributos "Código do Aluno" e "Código do Curso".
Gabarito da Questão: Certo.
Gabarito do mundo real de quem programa: Errado
-
A questão está certa! (uma bost* de questão mas, ainda assim, certa!!!). Se eu precisasse de um pontinho, talvez até entraria com recurso, mas sabendo q as chances de ganhar seriam mínimas. Vejam por que!!!
Em um banco de dados referente a um curso, um aluno pode estar em mais de um curso ao mesmo tempo. Além disso, na tabela de cursos realizados por aluno, estão presentes as chaves estrangeiras aluno e curso. -- Aqui tem 1 troço* estranho: o trecho sublinhado tá dizendo q há uma FK em curso apontando para aluno(até aqui normal), e uma FK de curso, ou seja, um auto-relacionamento de curso apotando pra ele mesmo. Isso tbm é possivel, mas estou aqui pensando como esse auto-relacionamento funcionaria na pratica (um curso q eh subcurso de outro curso...sei la). Mas isso não torna a questao errada. Lembre-se: CADA LOUCO COM SUA MANIA!!! (vai q o programador trabalha na mesma empresa do Antonio Passarinho!!! -- pega corda não, Antonio, já me chamaram de coisa pior!!!)
Vamos ao proximo trecho!!!
Nessa situação, tanto o código do curso como o código do aluno são chaves primárias nas tabelas curso e aluno, respectivamente. -- traduzindo, ele tá dizendo q o codigo do curso é chave primaria da tabela curso (e isso tá certo, pois ele inseriu uma bendita e estranha chave estrangeira de curso apontando pra ele mesmo); e q o codigo do aluno é chave primaria da tabela aluno.... essa parte tbm tá certa...pois ela faz nada mais q um relacionamento entre aluno e curso, e até afirma q codigo aluno é PK de aluno!!!
Fonte:
[1] Dessa vez fico devendo...fui por meus proprios conhecimentos...é q tô em um trabalho do cão aqui pra entregar até às 15...depois edito essa questao e insiro fonte!!! E se vc não gostou, infelizmente não posso fazer nada!!!
-
Gabarito certo.
Em outras palavras, o examinador quis dizer que um determinado ALUNO pode estar matriculado em mais de um CURSO ao mesmo tempo.
E obviamente podemos inferir que um CURSO pode ter mais de um ALUNO matriculado.
-
Minha interpretação foi um pouco diferente do CQN.
Em um banco de dados referente a um curso, um aluno pode estar em mais de um curso ao mesmo tempo. Além disso, na tabela de cursos realizados por aluno, estão presentes as chaves estrangeiras aluno e curso.
Existe nesse caso uma entidade associativa + as tabelas curso e aluno.
Um aluno pode estar presente em mais de um curso. E um curso pode ter vários alunos. Como a cardinalidade máxima é N:N, pode-se criar uma nova tabela que vai receber as FK de aluno e curso (essas duas FK vão formar a PK composta da entidade associativa).
Nessa situação, tanto o código do curso como o código do aluno são chaves primárias nas tabelas curso e aluno, respectivamente.
Sim, está correto. Acredito que o que deixou a questão um pouco tanto ambígua foi que o concurseiro pode interpretar que a entidade "curso realizado por aluno" seja a mesma que a entidade "curso".
Reitero que essa foi apenas minha interpretação, não tome como verdade suprema. Qualquer equívoco, simplesmente, ignore.