[firebase-br] Duvida - Chave Primaria x Indices

Fausto fausto.s.a em uol.com.br
Qua Jan 12 11:14:10 -03 2005


Bom dia Fernando..
A meu ver vc esta fazendo uma confusão entre indices e PK, a pk como o 
Rodolpho mesmo disse vai garantir que vc tenha uma unica linha na mesma 
tabela ex:
Tabela clientes(Codigo(PK), Nome, CNPJ, Cidade)

Vc nunca terá dois clientes com o mesmo código, porem nesta tabela ainda há 
uma falha, pois vc poderia cadastrar o mesmo cliente com outro código, no 
meu entender ai entraria o indice Unique, pois vc poderia utiliza-lo no 
CNPJ, ou seja vc não teria dois clientes com o mesmo cnpj, mesmo sendo eles 
com códigos diferentes, existe n formas de se fazer isto, pode ser através 
de indices uniques,  ou ainda através de constraints  a nível de registro, 
em ambos os casos o banco levantaria uma excessão e vc teria que trata-la em 
seu programa, na revista Clube Delphi edição 56 tem um artigo explicando 
mais sobre constraints o endereço para download dos exemplos é: 
www.clubedelphi.net/edicao56/donl56.asp .


Agora não recordo onde li,  mas existe uma ordem de grandeza entre os tipos 
de indices, acho quei foi em um livro sobre analise de estruturada moderna.. 
do Yordon.

É sabido que em Sql a PK, ou chave primária é o a atributo que permite 
identificar uma única ocorrência de uma tupla(Registro ou linha quando 
transposta para o modelo fisíco) em uma entidade(Tabela), portando o próprio 
nome já explica isto  Primary Key, Chave PRIMARIA, depois vem as (FK) 
Foreign Keys Chaves Estrangeiras, os indices secundários, estes servem como 
meio de classificação e pesquisas por entidades(Tabelas)
Sendo assim qualquer SGDB deve ter alguma relevância quanto aos tipos de 
chaves / indices.

Agora opinião minha sem querer ofender ninguém, tem muitas pessoas por ai 
que simplesmente baixam o Firebird e começam a criar tabelas sem nexo, o que 
devemos saber é que a filosofia de SGDB é diferente dos antigos DBF/DB, 
devemos tomar cuidado ao desenharmos nossas bases de dados, pois utilizando 
SGDB a lógica de um sistema não esta somente no código da inteface, esta 
também na maneira como armazenamos os dados.

Fernando se vc puder sugiro que leia algum material sobre analise de 
sistemas ou sistemas de banco de dados..
Recomendo este: Sistema de Banco de Dados (Terceira Edição)
Autores: Abraham Silberschatz, Henry F. Korth e S. Sudarsha
ISBN:8534610738
Editora: Pearson Makron Books.

Fausto

----- Original Message ----- 
From: "Fernando" <fe_nando em click21.com.br>
To: "Rodolpho da Silva Nascimento" <rnascimento em cmsolucoes.com.br>; 
"FireBase" <lista em firebase.com.br>
Sent: Wednesday, January 12, 2005 10:35 AM
Subject: Re: [firebase-br] Duvida - Chave Primaria x Indices


Rodolpho , obrigado pela resposta , mas ainda estou com duvidas.
Se eu crio uma chave primaria, tambem é criado um indice .....
então porque criar uma chave primaria  e não um indice(unique) ???
Então dá na mesma eu criar uma PK ou um indice para um unico campo ???????



Citando Rodolpho da Silva Nascimento <rnascimento em cmsolucoes.com.br>:

>   Utilize a Chave - Primária(PK).
>   Somente ela poderá garantir que cada linha será única na sua tabela. O 
> uso
> de índice poder fazer isto também, mas
> ele é geralmente usado para agilizar as consultas feitas na coluna
> especificada.
>
>
>
>
>
> ----- Original Message -----
> From: "Fernando" <fe_nando em click21.com.br>
> To: "Lista FireBase" <lista em firebase.com.br>
> Sent: Wednesday, January 12, 2005 8:57 AM
> Subject: [firebase-br] Duvida - Chave Primaria x Indices
>
>
>
> Olá a todos .... estou iniciando nesta lista... com uma duvida (talvez 
> meio
> obvia para alguns),  mas vamos a ela.
>  - Qual a diferença em eu evitar a duplicidade de dados em uma tabela no 
> meu
> banco com uma PK  ou um Indice(unique)?
>
> Ex.: cod_pedido = Chave Primaria -> automaticamente ele cria um
> indice(unique)!
>        ou
>        cod_pedido = indice(unique) "não é uma chave primaria, somente 
> criei
> um
> indice"
> ???????????
>
> Grato pela atenção!
>
>
>
>
___________________________________________________________________________________
> Para suas ligações internacionais, disque 00 + 21 + código do país + 
> número
> do telefone
> e aproveite as vantagens que só o 21 da Embratel oferece
>
> www.embratel.com.br
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>
>



___________________________________________________________________________________
Inclusão Digital com Click 21, da Embratel.
Acesso grátis à internet com qualidade para todo o Brasil.

www.click21.com.br


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br


-- 
No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.300 / Virus Database: 265.6.10 - Release Date: 10/01/2005




-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.300 / Virus Database: 265.6.10 - Release Date: 10/01/2005





Mais detalhes sobre a lista de discussão lista