SóProvas


ID
769570
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Uma tabela não pode ter valores de chaves estrangeiras nulos, em decorrência da regra de integridade referencial.

Alternativas
Comentários
  •  Chave estrangeira ou Chave secundária em uso de banco de dados se refere ao tipo de relacionamento entre as tabelas de dados do banco de dados.



    Uma chave estrangeira é chamada quando há o relacionamento entre duas tabelas.

  • Se os campos da chave estrangeira permitirem NULL na tabela, os mesmos podem ser NULL perfeitamente.
    Questão ERRADA.
    Dúvidas ler Elmasri & Navathe, 6a Ed., pág. 47.
    Valeu.
  • Apenas para complementar com o trecho do Navathe (4ed):
    "Um valor de FK em um tupla t1 do estado corrente r1(R1) ou ocorre como um valor de PK para alguma tupla t2 no estado corrente r2(R2) ou é null"
    Ou seja, ou a FK é um dos valores na outra tabela ou ela é null. Um exemplo para ver isso é pensar numa relação entre Criança e Escola, em que Criança refencia a Escola na qual ela estuda. Se a criança não estiver matriculada em uma Escola, o campo que faz a referência estará com null.
  • Um campo de chave estrangeira pode ser nulo por que para aquela tupla especifica aquele relacionamento não se aplica.

    Por exemplo imagina uma empresa em que um funcionário pode ter um carro corporativo para executar suas atividades, sendo no maximo um carro. Hora poderíamos ter como chave estrangeira na relação funcionário um atributo licença_carro que é especifica o carro em questão, mas pode haver funcionários que não precisem de um carro corporativo. Claro que há outras maneiras de representar isso sem usar o artificio dos atributos nulos mas é uma possibilidade.

  • FK pode ser nulo mesmo, o que deixa a questão duvidosa é a frase "em decorrência da regra de integridade referencial".

    Se aceitar NULO, a integridade deixa de existir

  • - Integridade de entidade: Os valores da chave primária não podem ser nulos.

    - Integridade referencial: Uma relação pode ter um conjunto de atributos que contém valores com mesmo domínio de um conjunto de atributos que forma a chave primária de uma outra relação (chave estrangeira), ou seja, o valor contido na chave estrangeira de uma relação (tabela) deve corresponder a um valor de chave primária na outra relação (tabela).

  • Se eu remover uma tupla da tabela A que é referenciada por uma tupla da tabela B, então estaria violando a integradide referencial. No entanto, se eu definir na tabela B que uma tupla x não se relaciona mais com a tabela a tupla y da tabela A e remover a tupla y. Não problema. OK?

  • No livro Sistema de Banco de Dados; Silberschatz, p.85


    "Valores null complicam a semântica das restrições de integridade referencial da SQL. Os atributos para chaves estrangeiras podem ser nulos, desde que não tenham sido declarados como não nulos. Se todas as colunas de uma chave estrangeira forem não nulas em uma determinada tupla, a definição comum das restrições de chave estrangeira é usada para essa tupla. Se qualquer uma das colunas de chave estrangeira for nula, a tupla é definida automaticamente para satisfazer a restrição."


    (...)


    "A SQL também permite que a cláusula FOREIGN KEY especifique ações diferentes de cascade se a restrição for violada: campo referenciador pode ser definido em nulo (usando SET NULL em vez de CASCADE)."

  • ERRADO: Se o a relação for OPCIONAL, ou seja, cardinalidade mínima 0, a chave estrangeira pode tranquilamente ser nula.
    É o exemplo da escola citado pelo colega YURI. Nem toda criança precisa estar matriculada em uma escola ( parênteses gigante:

    apesar de poder configurar o abandono intelectual do ECA: 

    Art. 246 - Deixar, sem justa causa, de prover à instrução primária de filho em idade escolar:

            Pena - detenção, de quinze dias a um mês, ou multa

    )

     

    Enfim, aqui era só uma questão de BD

    kkkkkkk
    Em frente!

  • Em um relacionamento identificado, a chave estrangeira faz parte da chave primária na mesma entidade. Nesse caso, não pode ser null.

    Em um relacionamento não identificado, a chave estrangeira não faz parte da chave primária na mesma entidade. Nesse caso, pode haver uma tupla na entidade que não corresponda a uma tupla na tabela da chave estrangeira. Nesse caso, esta será null.

     

     

  • Apenas para complementar com o trecho do Navathe (4ed):

    "Um valor de FK em um tupla t1 do estado corrente r1(R1) ou ocorre como um valor de PK para alguma tupla t2 no estado corrente r2(R2) ou é null"

    Ou seja, ou a FK é um dos valores na outra tabela ou ela é null. Um exemplo para ver isso é pensar numa relação entre Criança e Escola, em que Criança refencia a Escola na qual ela estuda. Se a criança não estiver matriculada em uma Escola, o campo que faz a referência estará com null.

  • - Integridade de entidade: Os 

    valores da chave primária não podem ser nulos.

    - Integridade referencial: Uma 

    relação pode ter um conjunto de atributos que contém valores com mesmo domínio 

    de um conjunto de atributos que forma a chave primária de uma outra relação 

    (chave estrangeira), ou seja, o valor contido na chave estrangeira de uma relação 

    (tabela) deve corresponder a um valor de chave primária na outra relação 

    (tabela).

  • Gabarito: Errado.

    Restrição de participação total admite uma cardinalidade 1:0. Com isso, invalidamos o item.

    Bons estudos!

  • ERRADO

    Uma tabela não pode ter elementos nulos quando se fala da chave primária , já quando se fala da chave estrangeira e dependendo da situação, pode ter valores nulos.

    chave primária----> not null

    chave estrangeira ----> null

    Diferentemente da chave primária, a chave estrangeira:

    1. Pode ser nula (NOT NULL);
    2. É um campo em uma tabela que faz referência a um campo que é chave primária em outra tabela;
    3. É possível ter mais de uma (ou nenhuma) em uma tabela.

  • Um compilado dos melhores comentários(selo de qualidade):

    [1]

    "Um valor de FK em um tupla t1 do estado corrente r1(R1) ou ocorre como um valor de PK para alguma tupla t2 no estado corrente r2(R2) ou é null"

    Ou seja, ou a FK é um dos valores na outra tabela ou ela é null. Um exemplo para ver isso é pensar numa relação entre Criança e Escola, em que Criança refencia a Escola na qual ela estuda. Se a criança não estiver matriculada em uma Escola, o campo que faz a referência estará com null.

    Se os campos da chave estrangeira permitirem NULL na tabela, os mesmos podem ser NULL perfeitamente.

    Apenas para complementar com o trecho do Navathe (4ed):

    "Um valor de FK em um tupla t1 do estado corrente r1(R1) ou ocorre como um valor de PK para alguma tupla t2 no estado corrente r2(R2) ou é null"

    Ou seja, ou a FK é um dos valores na outra tabela ou ela é null. Um exemplo para ver isso é pensar numa relação entre Criança e Escola, em que Criança refencia a Escola na qual ela estuda. Se a criança não estiver matriculada em uma Escola, o campo que faz a referência estará com null.

    [2]

    "Valores null complicam a semântica das restrições de integridade referencial da SQL. Os atributos para chaves estrangeiras podem ser nulos, desde que não tenham sido declarados como não nulos. Se todas as colunas de uma chave estrangeira forem não nulas em uma determinada tupla, a definição comum das restrições de chave estrangeira é usada para essa tupla. Se qualquer uma das colunas de chave estrangeira for nula, a tupla é definida automaticamente para satisfazer a restrição."

    Fonte:

    [1] Elmasri & Navathe, 6a Ed., pág. 47.

    [2] Sistema de Banco de Dados; Silberschatz, p.85

  • GABARITO ERRADO!

    .

    .

    Chave estrangeira:

    Pode ser nula (NOT NULL);

    É um campo em uma tabela que faz referência a um campo que é chave primária em outra tabela;

    É possível ter mais de uma (ou nenhuma) em uma tabela.

  • CHAVE ESTRANGEIRA/FOREIGN KEY (FK)

    Pode ser nula (NOT NULL);

    é um campo em uma tabela que faz referência a um campo que é chave primária em outra tabela;

    é possível ter mais de uma (ou nenhuma) em uma tabela;

    é uma cópia da chave primária de uma tabela, c/ o objetivo fazer o relacionamento entre a tabela principal (chave primária) e tabela relacionada (chave estrangeira); 

    somente se liga logicamente à chave primária de outra tabela (entendimento Cespe - o mais correto seria que ela se liga também as chaves candidatas);

    (só se a Cespe perguntar) uma tabela pode ter relação consigo própria e a relação c/ a chave estrangeira pode ser c/ uma chave candidata;

    Uma chave estrangeira é uma chave primária de outra tabela, ou seja, existe uma "ligação lógica".

    AVANTE

  • FK pode ter valor NULL.

    ERRADA.

  • ERRADO

    Chave estrangeira: Pode ter valor nulo – pode se repetir

    Chave primária: NÃO pode ter valor nulo – não pode repetir 

  • ERRADO

    Chave Estrangeira (FK) PODE ter valor nulo

  • a questão estaria correta se trocasse chave 'estrangeira' por chave 'primária', pois essa sim não pode receber valor NULL. como também trocasse a regra de integridade 'referencial' por regra de integridade de 'entidade'. desta forma: Uma tabela não pode ter valores de chaves primárias nulos, em decorrência da regra de integridade de entidade.

  • Integridade referencial assegura que uma chave estrangeira possua respectiva associação na tabela de origem.

    Obs: não é na mesma tabela, não é tabela de destino, cespe adora essas pegadinhas.

    A FK diferentemente da PK poderá ter valor nulo.

  • SET NULL, CASCADE, ACTION, RESTRICT

    (E)