Re: [pgbr-geral] - Dúvida sobre índice

2011-06-14 Por tôpico Mozart Hasse
Leandro,

-Mensagem Original- 
From: pgbr-geral-requ...@listas.postgresql.org.br
Sent: Monday, June 13, 2011 12:00 PM
To: pgbr-geral@listas.postgresql.org.br

 Vixe, agora é que boiei mesmo.  O que seria uma tabela primária,
 então?  Em que as tabelas do PostgreSQL diferem das do Sybase ou MS
 SQL Server?  Como assim uma tabela com chave primária *é* (em vez de
 _ter_) índice?

Sim, no SQL Server uma tabela do tipo clustered *é* fisicamente armazenada 
como um índice.

http://msdn.microsoft.com/en-us/library/ms189051.aspx

 As páginas de um índice pode ser percorrido seqüencialmente?
 No SQL Server e no SyBase, sim.
 Em alguns casos, imagino, não em todos?

No SQL Server e no SyBase, sim.

 Me parece um argumento partindo dos resultados? continua faltando a
 explicação que, implicitamente, pedi acima: como preservar eficiência
 no caso geral quando se otimiza para um caso específico.

O caso indicado não é específico. A regra é a tabela ter uma chave natural 
ou primária, e não o contrário.

 ... por isso mesmo, nenhum sistema SQL que eu conheça ordena
 tabelas a menos que comandado explícita e manualmente para isso.

Eu te apresento então os SGBDs SQL Server e SyBase. Dúvidas? Consulte o site 
da Microsoft.

 Um sistema onde isso ocorre, como era o caso dos navigacionais ou dos
 grafos, tende a ser globalmente lento para escrita,...

Só se você desconsiderar boa parte dos fatores relevantes, como a utilidade 
de uma tabela
desordenada ou a atualização do índice correspondente, que também faz parte 
do processo
de escrita.

 Ainda estou para achar o tal artigo.  Eu agradeceria muito um URI ou
 outra indicação de como o encontrar.

http://technet.microsoft.com/en-gb/library/cc917672.aspx

 ... sempre que você trouxe essas reclamações
 sobre o desempenho do PostgreSQL, pedimos mais informações, e você
 nunca as trouxe ...

Reconheço que enfatizei as conclusões e não os fatos que usei como base, por 
serem feitos em
bases de clientes que, de fato, não posso publicar.
Se preciso montar/publicar artigos a partir de bases públicas para poder 
expor opiniões aqui,
coloque isso nas normas da lista então que saio em seguida ou só fico 
assistindo.

 ... concluir tentativamente, como fazemos, que o problema é que tua
 aplicação foi toda construída para MS SQL Server e apenas parcialmente
 portada para PostgreSQL.  O que é natural e humano, devido às lacunas
 de conhecimento aparentes.

Eis aí o ponto fundamental que precisa mudar nessa comunidade: enquanto se 
achar que o que funciona lento em PostgreSQL
foi feito para outro BD, o progresso chega por acaso. Limitar os campos de 
pesquisa ou os pontos que precisam de melhora por
conta disso só desmerece o produto e seu futuro. Sou contra essa visão de 
que o desenvolvimento precisa ser
otimizado para o banco de dados, qualquer que ele seja. Caso haja 
otimizações que resultem em ganhos de ordens de magnitude
(como é o caso por exemplo de indexed views), é de se esperar que outros 
bancos de dados ofereçam mecanismos para atingir
desempenho similar.

Não impliquei com o PostgreSQL porque planejamos fazer de um jeito ou de 
outro, muito pelo contrário, simplesmente
constatamos que tudo o que nunca deu problema de desempenho nos outros 
bancos de dados empacava no PostgreSQL.

Tudo o que observei dessas empacadas me faz acreditar que a organização de 
tabelas e índices que indiquei é uma forma de
melhorar (e muito) o desempenho do banco de dados. Se não querem nem 
analisar por causa da fonte, só lamento.

Mozart Hasse 

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] - Dúvida sobre índice

2011-06-12 Por tôpico Leandro DUTRA
2011/6/11 Euler Taveira de Oliveira eu...@timbira.com:
 Em 11-06-2011 03:43, Leandro DUTRA escreveu:
 no PostgreSQL a tabela pode ser agrupada
 http://doc.postgresqlfr.org/9.1/sql-cluster.html, e não o índice
 http://doc.postgresqlfr.org/9.1/sql-createindex.html.

 Ugh? O CREATE INDEX (aka REINDEX) faz exatamente a ordenação de um índice.

É, estou enferrujado mesmo…


-- 
Skype:leandro.gfc.dutra?chat      Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191        Google Talk: xmpp:leand...@jabber.org
+55 (11) 9406 7191            ICQ: AIM:GoIM?screenname=61287803
sip:leand...@iptel.org  MSNIM:chat?contact=lean...@dutra.fastmail.fm
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] - Dúvida sobre índice

2011-06-11 Por tôpico Leandro DUTRA
2011/6/11 Mozart Hasse mozart.ha...@usa.net:

 Coloquei entre aspas exatamente para deixar claro que a terminologia usada é
 diferente da usual. Adequei o vocabulário da minha resposta ao da mensagem
 original, não aos livros que você escolheu, que não inseri na conversa.

Senti uma espetada aí.  Não sei de outra teoria relacional que seja
relevante para alguma outra linguagem SQL; mais do que isso, nunca vi
nenhum livro que usasse esse vocabulário, nem no contexto de SGBDs nem
em nenhum outro contexto… realmente, não deu para (eu) entender.


 Tabela primária é outra forma de adequação de vocabulário já que, falando
 do SQL Server e do SyBase, todas as tabelas com chave primária são por
 padrão índices e não o que o PostgreSQL chama de tabelas.

Vixe, agora é que boiei mesmo.  O que seria uma tabela primária,
então?  Em que as tabelas do PostgreSQL diferem das do Sybase ou MS
SQL Server?  Como assim uma tabela com chave primária *é* (em vez de
_ter_) índice?

Vocabulário é importante, nem que seja para gente menos esperta, como
eu, conseguir funcionar…


 a dúvida é sobre organização *física* dos dados.

Bom, mas aí é que está — no modelo físico, que sentido faz falar em
(índice, não chave nem tabela) primário ou secundário?  Mesmo no caso
de uma tabela organizada por alguma chave, essa chave não
necessariamente seria a primária, e poderia até (teoricamente)
dispensar um índice, não?


 As páginas de um índice pode ser percorrido seqüencialmente?

 No SQL Server e no SyBase, sim.

Em alguns casos, imagino, não em todos?


 Achou o create table no site da microsoft. Leia no treeview à sua esquerda a
 excelente documentação sobre organização física e vai ver que minhas
 observações seguem o que diz a documentação.

Não consegui, o que achei parece contradizer tuas afirmações…

A árvore, como a vejo, não tem nada sobre organização física.  Também
procurei por ‘physical organization’ com o Bing embutido acima dela, e
nada… deve ser leseira minha.


 Só se o SQL Server tivesse o otimizador do PostgreSQL. Uma organização
 diferente impõe técnicas de otimização diferentes, que chegam a excelentes
 resultados.

Me parece um argumento partindo dos resultados… continua faltando a
explicação que, implicitamente, pedi acima: como preservar eficiência
no caso geral quando se otimiza para um caso específico.


 Precisa ser muito menos superficial para chegar a conclusões condizentes com
 o banco de dados que tanto desconhece e adora criticar. SyBase também,
 diga-se de passagem.

Adoro criticar?  Quisera eu não houvesse criticar.  Aliás, quisera
nunca tê-lo conhecido.  Pelo menos, conheço um pouco, tanto o MS
quanto o Sybase SQL Server,


 Não. Foi você que leu superficialmente e passou batido por esta frase no
 mesmo link que indicou:

 ... PRIMARY KEY constraints default to CLUSTERED, and UNIQUE constraints
 default to NONCLUSTERED.

Dica, que peguei do CS Lewis, bem mais esperto que eu: nunca tente
adivinhar o que passava na cabeça doutro autor.  A taxa de erro é
quase igual a 100%.

No caso, se passei batido por algo foi tua frase original, que entendi
se referir à ordem das tabelas, como o contexto parece indicar.
Relendo, vejo meu erro, reforçado ainda pela citação parcial do
parágrafo (?) original.

Então, apagando e voltando de onde errei:

 A definição de quando a tabela/índice será ordenado ou não depende de banco
 para banco. No SQL Server é possível definir qual o critério de
 ordenação criando o índice com a opção CLUSTERED, padrão para chaves
 primárias.

Até aqui tudo bem, falas apenas de índices de chaves primárias.


 Já no PostgreSQL, existe o comando CLUSTER para a mesma finalidade, que
 sempre deve ser explicitado quando desejado. Importante salientar que no
 PostgreSQL uma tabela com a opção CLUSTER só fica ordenada imediatamente
 após a sua reorganização (recluster).

Na verdade, o problema que percebi está na relação deste parágrafo com
o anterior.  Pareces comparar índices no MS SQL Server com tabelas no
PostgreSQL, o que obviamente não faz sentido; portanto, não sei se
entendi o que querias dizer.  O que posso dizer é que, enquanto no MS
SQL Server o índice pode ser classificado, e (aparentemente) não a
tabela, no PostgreSQL a tabela pode ser agrupada
http://doc.postgresqlfr.org/9.1/sql-cluster.html, e não o índice
http://doc.postgresqlfr.org/9.1/sql-createindex.html.


 Depende de como seu otimizador for construído e quais estatísticas você
 coletar.

Na verdade, só se o planejador (otimizador não é um nome correto) for
ruim, ou as estatísticas deficientes.  E isso só reforçaria o problema
que aponto.

Veja, o planejador é apenas parte do sistema.  Um sistema onde todas
as tabelas sejam fisicamente ordenadas incorre em grande trabalho nas
escritas; por isso mesmo, nenhum sistema SQL que eu conheça ordena
tabelas a menos que comandado explícita e manualmente para isso.

Um sistema onde isso ocorre, como era o caso dos navigacionais ou dos
grafos, tende a ser globalmente lento para escrita, o 

Re: [pgbr-geral] - Dúvida sobre índice

2011-06-11 Por tôpico Euler Taveira de Oliveira
Em 11-06-2011 03:43, Leandro DUTRA escreveu:
 no PostgreSQL a tabela pode ser agrupada
 http://doc.postgresqlfr.org/9.1/sql-cluster.html, e não o índice
 http://doc.postgresqlfr.org/9.1/sql-createindex.html.

Ugh? O CREATE INDEX (aka REINDEX) faz exatamente a ordenação de um índice.


-- 
   Euler Taveira de Oliveira - Timbira   http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] - Dúvida sobre índice

2011-06-09 Por tôpico izana souza torres
Amigos tenho uma dúvida sobre índice:

Estava estudo dando um pouco a literatura e vir que existe alguma
categorias:

Primario - Trabalha sobre um campo chave e sobre arquivos ORDENADOS

secundário  Trabalha sobre campo não chave ou NÃO e sobre arquivos
DESORDENADOS;


Minha pergunta é : o que seria arquivos ORDENADOS E DESORDENADO ?

segunda pergunta: Na prática como isso acontece:

tipo vou criar um índice e digo se ele é primario ou secundário ?

obrigado
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] - Dúvida sobre índice

2011-06-09 Por tôpico Leandro DUTRA
2011/6/9 izana souza torres izanator...@gmail.com:
 Estava estudo dando um pouco a literatura

Qual?


 Primario - Trabalha sobre um campo chave e sobre arquivos ORDENADOS

Essa não é a nomenclatura relacional, nem a de SQL.  Portanto, não se
aplica ao Postgres nem a nenhum outro SGBD SQL.


 Minha pergunta é : o que seria arquivos ORDENADOS E DESORDENADO ?

Ordenado ou não por algum atributo?


 tipo vou criar um índice e digo se ele é primario ou secundário ?

Não, índices são índices.  A coisa mais próxima em SQL seriam chaves
primárias ou alternativas, que têm sempre um índice associado.  Já no
modelo relacional, índices e chaves são ortogonais, e não há chaves
primárias ou secundárias.


-- 
skype:leandro.gfc.dutra?chat      Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191              gTalk: xmpp:leand...@jabber.org
+55 (11) 9406 7191        ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] - Dúvida sobre índice

2011-06-09 Por tôpico Mozart Hasse
Oi Izana,

Creio que você está se referindo ao agrupamento físico dos dados, seja da 
tabela, seja do índice.
Os bancos de dados variam bastante na forma como tratam estes casos, ora 
aplicando estes critérios ao índice, à tabela, aos dois ou a nenhum deles.

O que você citou como índice/tabela PRIMARIO deve ser o critério de 
ordenação dentro da tabela ou índice. Por exemplo, se o seu índice primário 
é
composto pelo campo NOME, então ao percorrer sequencialmente as páginas da 
sua tabela ou índice, notará que os registros ali contidos estão
ordenados por este campo. Evidentemente só é possível escolher um critério 
para chamar de primário, enquanto que todos os outros índices
farão referência aos dados existentes na tabela, às vezes usando este 
critério de ordenação.

O PostgreSQL, por padrão, armazena os registros conforme sua conveniência, 
sem nenhum critério de ordenação definido. Já o SQL Server, por exemplo,
ordena por padrão todos os dados de uma tabela por sua chave primária. Cada 
abordagem tem suas vantagens e desvantagens.

A definição de quando a tabela/índice será ordenado ou não depende de banco 
para banco. No SQL Server é possível definir qual o critério de
ordenação criando o índice com a opção CLUSTERED, padrão para chaves 
primárias.
Já no PostgreSQL, existe o comando CLUSTER para a mesma finalidade, que 
sempre deve ser explicitado quando desejado. Importante salientar que no
PostgreSQL uma tabela com a opção CLUSTER só fica ordenada imediatamente 
após a sua reorganização (recluster).

Manter os dados ordenados fisicamente dentro da tabela ajuda imensamente na 
otimização de consultas, pois pesquisas de faixas de valores feitas
pela chave de ordenação sempre trarão os registros agrupados em páginas 
subsequentes, poupando o servidor de ler a tabela inteira, o que pode ser
uma diferença de vida ou morte do sistema se estivermos falando de uma 
tabela com milhões de registros.

Atenciosamente,

Mozart Hasse

Date: Thu, 9 Jun 2011 09:37:52 -0400
From: izana souza torres izanator...@gmail.com
Subject: [pgbr-geral]  - Dúvida sobre índice
To: Comunidade PostgreSQL Brasileira

Estava estudo dando um pouco a literatura e vir que existe alguma
categorias:

Primario - Trabalha sobre um campo chave e sobre arquivos ORDENADOS

secundário  Trabalha sobre campo não chave ou NÃO e sobre arquivos
DESORDENADOS;

Minha pergunta é : o que seria arquivos ORDENADOS E DESORDENADO ?

segunda pergunta: Na prática como isso acontece:

tipo vou criar um índice e digo se ele é primario ou secundário ? 

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] - Dúvida sobre índice

2011-06-09 Por tôpico Leandro DUTRA
2011/6/9 Mozart Hasse mozart.ha...@usa.net:

 O que você citou como índice/tabela PRIMARIO

Mozart, existe tabela primária?  Creio que não.


 se o seu índice primário

E índice primário, existe?  Pelo menos, não em SQL nem no modelo relacional.


 então ao percorrer sequencialmente as páginas da sua tabela ou índice

As páginas de um índice pode ser percorrido seqüencialmente?


 só é possível escolher um critério para chamar de primário, enquanto que
 todos os outros índices farão referência aos dados existentes na tabela, às
 vezes usando este critério de ordenação.

Mozart, creio que a confusão sua e da Izana vem da confusão entre os níveis
lógico e físico, respectivamente entre chave e índice.  Chave primária é um
conceito do SQL, já abandonado há muito tempo no modelo relacional, e que não
corresponde a índices.


 O PostgreSQL, por padrão, armazena os registros conforme sua conveniência,
 sem nenhum critério de ordenação definido. Já o SQL Server, por exemplo,
 ordena por padrão todos os dados de uma tabela por sua chave primária. Cada
 abordagem tem suas vantagens e desvantagens.

Referência?  Parece curiosamente ineficiente, já que impõe trabalho adicional
na escrita, manutenção, e só beneficia leituras seqüenciais, um caso
relativamente raro na prática.  Não duvidando, só achei curioso… e uma
pesquisa superficial
http://msdn.microsoft.com/en-us/library/ms174979(v=SQL.110).aspx parece
indicar que o comportamento do MS SQL Server é exatamente o mesmo do
PostgreSQL, e aliás de todos os outros SGBDs SQL de que já ouvi falar.


 No SQL Server é possível definir qual o critério de ordenação criando o
 índice com a opção CLUSTERED, padrão para chaves primárias.

http://msdn.microsoft.com/en-us/library/ms174979(v=SQL.110).aspx diz o
contrário.  Mudou na versão em desenvolvimento?


 Manter os dados ordenados fisicamente dentro da tabela ajuda imensamente na
 otimização de consultas

De algumas consultas, não todas, nem necessariamente das mais relevantes.

Sempre se pode reorganizar uma tabela física para refletir um novo
padrão de uso que passou a ser mais relevante que o original mas, na prática,
costuma levar a limitar o uso: consultas que não se conformem à organização da
tabela tenderão a ser menos usadas.

O modelo relacional foi criado justamente para evitar esse tipo de
engessamento.  Não significa que o DBA não possa organizar tabelas que
realmente possam se beneficiar disso; é só que, normalmente, essa é uma
otimização precoce, que acaba prejudicando todo o sistema para trazer ganhos
marginais a apenas algumas consultas.

A ’melhor prática’, no caso, é criar todas as tabelas desordenadas,
como é o padrão, e ordenar apenas aquelas que, no uso real, provem precisar
disso.  Simplesmente afirmar que ‘manter os dados ordenados fisicamente…
ajuda’, sem relativizar, é incorreto.


-- 
skype:leandro.gfc.dutra?chat      Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191              gTalk: xmpp:leand...@jabber.org
+55 (11) 9406 7191        ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] - Dúvida sobre índice

2011-06-09 Por tôpico izana souza torres
Parabenizo o Leandro Dutra e [image:
https://mail.google.com/mail/images/cleardot.gif][image:
https://mail.google.com/mail/images/cleardot.gif]Mozart Hasse  pelo alto
nível da conversa.

Confessor que até fiquei tonto lendo esses comentários

Então vai minhas dúvidas:





O modelo relacional foi criado justamente para evitar esse tipo de
   engessamento.  Não significa que o DBA não possa organizar tabelas
 que
   realmente possam se beneficiar disso; é só que, normalmente, essa é
 uma
   otimização precoce, que acaba prejudicando todo o sistema para
 trazer ganhos
   marginais a apenas algumas consultas.


Modelo relacional foi criado para evitar que tipo de engessamento ??



Minha dúvida surgiu quando lir esse material.

http://www.lcad.icmc.usp.br/~jbatista/scc203/mat/SGBD.pdf

Lá fala de Tipos de índices :
Primario
Agrupamento
Secundario


Entre uma das caracteristicas dos Indices primarios e Secundário e que eles
trabalham sobre arquivos ordenados - só
queria saber o que seria esse arquivos ordenados - seria um fatia de bloco
de uma determinada tabela que
estaria em memoria e essa fatia já estarai fisicamente ordenada..

em fim
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] - Dúvida sobre índice

2011-06-09 Por tôpico Leandro DUTRA
2011/6/9 izana souza torres izanator...@gmail.com

 Confessor que até fiquei tonto lendo esses comentários

Normal, devia até ser proibido dar uma base de dados para alguém usar sem
antes passar por uma introdução ao modelo relacional…


     Modelo relacional foi criado para evitar que tipo de engessamento ??

Que o uso da base, como originalmente projetada, engesse outros usos não
previstos no projeto original.

Basicamente, o modelo relacional é puramente lógico, dando uma visão
conceitual do modelo de dados mas permitindo ao DBA e ao SysAdmin que ajustem
o modelo físico sem alterar o modelo lógico.  Isso permite uma evolução lógica
do modelo de dados, acompanhando o público usuário e suas necessidades
funcionais; e outra evolução, paralela, do modelo físico, para acompanhar
tanto as necessidades de desempenho quanto a evolução da disponibilidade de
recursos de e para o SGBD.

Por exemplo, antes do modelo relacional, as bases de dados que,
depois, convencionamos chamar navigacionais ou de grafos, predeterminavam os
caminhos de acesso.  Qualquer necessidade de consulta ou manipulação que não
se conformasse a esses caminhos de acesso predeterminados, ou não fosse
compatível com a existência deles, exigia uma alteração em todos os programas
e padrões de uso, o que freqüentemente inviabilizava consultas e aplicações,
fosse por custo, fosse por prejudicar os usos já existentes.

No caso dos dados navigacionais, os arquivos de dados eram de fato
criados com uma ordem preestabelecida, ou primária, e outros acessos eram
feitos via índices secundários ou alternativos.  Mas a última vez que ouvi
falar disso já fazem mais de dez anos… BTrieve+, Dataflex, Fox Pro, dBase,
Clipper…


 Minha dúvida surgiu quando lir esse material.
 http://www.lcad.icmc.usp.br/~jbatista/scc203/mat/SGBD.pdf

Esse material constitui‐se apenas de notas rápidas, não fica claro a que
modelo se refere.  Me parece que não se refere a modelo lógico nenhum, apenas
a arquivos simples; o que mais se aproxima seriam os dados navigacionais,
descritos acima.


 Entre uma das caracteristicas dos Indices primarios e Secundário e que eles
 trabalham sobre arquivos ordenados - só queria saber o que seria esse
 arquivos ordenados - seria um fatia de bloco de uma determinada tabela que
 estaria em memoria e essa fatia já estarai fisicamente ordenada..

Não é tabela nenhuma, porque não se trata de uma base de dados sob controle de
um SGBD.  São arquivos mesmo, usados por bibliotecas e 4GLs como as citadas
acima.  Aparentemente, ao menos.  Ou seja, arquivos de dados em unidades de
armazenamento de massa, fisicamente ordenados por algum atributo: 1, 2, 3, 4…
ou A, B, C, D…, por exemplo.


--
skype:leandro.gfc.dutra?chat      Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191              gTalk: xmpp:leand...@jabber.org
+55 (11) 9406 7191        ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] - Dúvida sobre índice

2011-06-09 Por tôpico izana souza torres
Leandro DUTRA, obrigado pelo as informações e ficou bem claro para mim agora



Em 9 de junho de 2011 15:52, Leandro DUTRA
leandro.gfc.du...@gmail.comescreveu:

 2011/6/9 izana souza torres izanator...@gmail.com
 
  Confessor que até fiquei tonto lendo esses comentários

 Normal, devia até ser proibido dar uma base de dados para alguém usar sem
 antes passar por uma introdução ao modelo relacional…


  Modelo relacional foi criado para evitar que tipo de engessamento ??

 Que o uso da base, como originalmente projetada, engesse outros usos não
 previstos no projeto original.

Basicamente, o modelo relacional é puramente lógico, dando uma visão
 conceitual do modelo de dados mas permitindo ao DBA e ao SysAdmin que
 ajustem
 o modelo físico sem alterar o modelo lógico.  Isso permite uma evolução
 lógica
 do modelo de dados, acompanhando o público usuário e suas necessidades
 funcionais; e outra evolução, paralela, do modelo físico, para acompanhar
 tanto as necessidades de desempenho quanto a evolução da disponibilidade de
 recursos de e para o SGBD.

Por exemplo, antes do modelo relacional, as bases de dados que,
 depois, convencionamos chamar navigacionais ou de grafos, predeterminavam
 os
 caminhos de acesso.  Qualquer necessidade de consulta ou manipulação que
 não
 se conformasse a esses caminhos de acesso predeterminados, ou não fosse
 compatível com a existência deles, exigia uma alteração em todos os
 programas
 e padrões de uso, o que freqüentemente inviabilizava consultas e
 aplicações,
 fosse por custo, fosse por prejudicar os usos já existentes.

No caso dos dados navigacionais, os arquivos de dados eram de fato
 criados com uma ordem preestabelecida, ou primária, e outros acessos eram
 feitos via índices secundários ou alternativos.  Mas a última vez que ouvi
 falar disso já fazem mais de dez anos… BTrieve+, Dataflex, Fox Pro, dBase,
 Clipper…


  Minha dúvida surgiu quando lir esse material.
  http://www.lcad.icmc.usp.br/~jbatista/scc203/mat/SGBD.pdf

 Esse material constitui‐se apenas de notas rápidas, não fica claro a que
 modelo se refere.  Me parece que não se refere a modelo lógico nenhum,
 apenas
 a arquivos simples; o que mais se aproxima seriam os dados navigacionais,
 descritos acima.


  Entre uma das caracteristicas dos Indices primarios e Secundário e que
 eles
  trabalham sobre arquivos ordenados - só queria saber o que seria esse
  arquivos ordenados - seria um fatia de bloco de uma determinada tabela
 que
  estaria em memoria e essa fatia já estarai fisicamente ordenada..

 Não é tabela nenhuma, porque não se trata de uma base de dados sob controle
 de
 um SGBD.  São arquivos mesmo, usados por bibliotecas e 4GLs como as citadas
 acima.  Aparentemente, ao menos.  Ou seja, arquivos de dados em unidades de
 armazenamento de massa, fisicamente ordenados por algum atributo: 1, 2, 3,
 4…
 ou A, B, C, D…, por exemplo.


 --
 skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
 +55 (61) 3546 7191  gTalk: xmpp:leand...@jabber.org
 +55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
 BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral