1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Base dados

Discussão em 'Programação' iniciada por asa_delta, 27 de Dezembro de 2006. (Respostas: 10; Visualizações: 883)

  1. asa_delta

    asa_delta Power Member

    Boas

    Estou a construir uma aplicação k utiliza, uma BD SQL server 2005, tenho uma duvida na construção da BD, quais as vantagens e desvantagens de se utilizar uma chave primária incremental?a BD fica mais rápida?

    Obrigado
    asa_delta
     
  2. HecKel

    HecKel The WORM

    Boas!

    Não se trata de rapidez mas sim de eficiência. Como deves saber, a chave primária garante a unicidade da linha e em alguns casos não consegues encontrar nada que garanta essa unicidade e nesses casos recorres a um identificador. Mais uma vez, como garantir que esse identificador é único? Tornando-o incremental, assim tens a certeza que em cada nova entrada na base de dados esse identificador será único pois será incrementado ao último existente.

    Espero que te ajude :)

    abraços, HecKel
     
  3. asa_delta

    asa_delta Power Member

    Boas HecKel


    Ajudou, tinha esse ideia, mas como estou á pouco tempo a trabalhar nesta area, não tinha grandes certezas


    Obrigado :)
     
  4. Ragnarok

    Ragnarok Folding Member

    Boas!

    Penso que o que querias dizer é eficácia, ou seja, a característica que determina se algo é executado correctamente ou não.
    De qualquer maneira, uma chave primária incremental pode de facto tornar as consultas mais eficientes, ou seja, pode tornar uma execução eficaz mais rápida (quando se fala de eficiência há o pressuposto que já é eficaz).
    Isto acontece porque índices numéricos são mais simples e pequenos o que faz com que alguns SGBD's (por exemplo o MySQL com o engine InnoDB) executem as consultas sobre a tabela em causa mais rápidas.

    Fiquem bem!
     
  5. cold

    cold Power Member

    Boas Heckel
    Olha tou a fazer um trab em oracle e tou com 1 problem
    na aplicaçao que vou fazer quando se regista um utilizador ou livro quero tipo que a chave primario, o codigo, seja adicionado automaticamente, tipo ver o codigo mais alto e esse+1.
    Qual a melhor opçao pra fazer isto??? com um trigeer??? ou há mais simples?


    abraço
     
  6. HecKel

    HecKel The WORM

    Mais simples, um sequence ;)

    Tens aqui uma forma detalhada..., mas a meu ver demasiado detalhada...

    http://www.techonthenet.com/oracle/sequences.php

    de qualquer das formas, aqui fica o código que eu uso :)

    Depois só tens de fazer a chamada da sequência no devido lugar (não funciona em triggers) :)

    Por exemplo,
    abraços, HecKel
     
  7. Karski

    Karski Power Member

    Uma correcção podes preencher esse campo usando uma sequence dentro do trigger.

    Dentro do trigger fazes:

    select nome_da_sequencia.next_val into variavel from dual;

    :new.valor = variavel;
     
  8. HecKel

    HecKel The WORM

    Obrigado, eu tive problemas no meu trabalho à pala disso :P E não encontrei informação nenhuma sobre isso :(

    De realçar que o dual é uma tabela virtual (se é que assim posso chamar) do Oracle usada para estes métodos.

    abraços, HecKel
     
  9. Karski

    Karski Power Member

    Basicamente dentro de um trigger podes fazer qualquer coisa desde que não seja chamar algo que despolete uma acção recursiva sobre a mesma tabela.
     
  10. Karski

    Karski Power Member

    Já agora acho que melhor que teres uma chave primária com uma sequencia, seria teres campos de controlo. Tipo um campo com a data de criação e um campo com a data de alteração da linha. Podes usar unique keys para garantires a integridade dos dados. Se achares que se torna lento. Podes sempre criar indíces sobre as tabelas para melhor a performance.
     
  11. cold

    cold Power Member



    boas
    antes de mais obrigado pela ajuda de todos.já vi que existem varias soluçoes, mas a da sequence parece ser interessante e simples.
    Ja agora essa questao dos indices eu ainda nao percebi muito bem isso do indice, podes dar me uma luz sff

    abraço a todos
     

Partilhar esta Página