Bases de Dados -> Storage Structures

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

Bases de Dados -> Storage Structures

Mensagempor DIAABO » Sábado Jan 06, 2007 21:08

Pessoal, alguém de pode ajudar a responder a estas perguntas? Ou pelo menos recomendar algum site onde possivelmente encontrarei as respostas?

Aqui vão as perguntas:

Storage Structures

a) Explain briefly advantages and disadvantages of each of the following stratagies for storing a relational database:
(a) Store each relation in one file.
(b) Store multiple relations (perhaps even the entire database) in one file.

b) Clustered indexes may allow faster access to data than is afforded by a nonclustering index. When must a nonclustering index be used, despite the advantages of a clustering index? Explain your answer briefly.


Desde já obrigado a todos que perderem um pouco do seu tempo com este tópico
DIAABO
Membro de Ouro
Membro de Ouro
 
Mensagens: 952
Registado: Domingo Ago 22, 2004 18:40
Localização: Braga

Mensagempor alfatek » Sábado Jan 06, 2007 21:33

http://www.google.com/search?q=clustered+indexes+vs

a 1ª questão tem a ver com o tipo de queries que fazes à BD, se são queries em que só usas 1 tabela ou se são queries que usas várias.

se só usas 1 tabela, 1 tabela por file é melhor.
se há muitas queries em que usas 2 tabelas, é bom juntá-las pq vai logo tudo para memória, etc,etc,etc.

Depois os problemas é relacionado com deletes/inserts e reorganização das linhas da tabela. Se guardas 3 tabelas num file e queres manter as linhas de cada tabela juntas, ou deixas espaço livro entre as 3 tabelas no file, ou tens de reorganizar o file em cada delete/insert...

E claro, se juntas tudo num file, o file fica maior e dependendo da implementação podes demorar muito mais tempo a chegar ao registo que pretendes.


Enfim, resumindo, tens de analisar a questão essencialmente por estes ângulos:
- importância de trazer logo para memória (vindo do disco) dados que vais utilizar. [Cache]
- distribuição do ficheiro em disco [tamanho do bloco, tamanho das tabelas, etc]
- relação entre as várias tabelas: se usas queries relacionadas ou não
- custos na reorganização dos files para que os registos (linhas) das tabelas fiquem juntos.

(etc)

Essa é daquelas perguntas clássicas portt concerteza que vais encontrar melhor resposta na net, apenas tentei foi dar-te dicas para saberes como deves pensar e em que deves pensar neste tipo de perguntas :)
alfatek
Administrador
Administrador
 
Mensagens: 3257
Registado: Sábado Abr 06, 2002 18:28
Localização: Coimbra

Mensagempor DIAABO » Sábado Jan 06, 2007 21:43

Muito obrigado! :)
DIAABO
Membro de Ouro
Membro de Ouro
 
Mensagens: 952
Registado: Domingo Ago 22, 2004 18:40
Localização: Braga

Mensagempor DIAABO » Domingo Jan 07, 2007 22:38

alfatek, desculpa lá tar a chatear mais mas não consigo responder a segunda poergunda... podes-me dizer quando é que temos de usar um nonclustering index?


desde já o meu obrigado... há e acho que ainda vou perguntar mais algumas coisas mais tarde se não te importares........
DIAABO
Membro de Ouro
Membro de Ouro
 
Mensagens: 952
Registado: Domingo Ago 22, 2004 18:40
Localização: Braga

Mensagempor alfatek » Segunda Jan 08, 2007 10:07

Non-clustered indexes

<ul>
<li>Leaves are stored in b-tree
<li>Lower overhead on inserts, vs clustered
<li>Best for single key queries
<li>Last page of index can become a 'hot spot'
</ul>


---------------
Before you create nonclustered indexes, understand how your data will be accessed. Consider using nonclustered indexes for:

* Columns that contain a large number of distinct values, such as a combination of last name and first name (if a clustered index is used for other columns). If there are very few distinct values, such as only 1 and 0, most queries will not use the index because a table scan is usually more efficient.

* Queries that do not return large result sets.

* Columns frequently involved in search conditions of a query (WHERE clause) that return exact matches.

* Decision-support-system applications for which joins and grouping are frequently required. Create multiple nonclustered indexes on columns involved in join and grouping operations, and a clustered index on any foreign key columns.

* Covering all columns from one table in a given query. This eliminates accessing the table or clustered index altogether.

----------------
tudo na pesquisa q t disse :P
alfatek
Administrador
Administrador
 
Mensagens: 3257
Registado: Sábado Abr 06, 2002 18:28
Localização: Coimbra

Mensagempor DIAABO » Quarta Jan 10, 2007 16:04

Desculpa responder so agora... e realmente estava tudo na procura que indicastes. Peço desculpa por ter incomodado mais do que precisava.

Mas fica daqui um muito obrigado! :)

Podes por a tag [resolvido] no tópico :)
DIAABO
Membro de Ouro
Membro de Ouro
 
Mensagens: 952
Registado: Domingo Ago 22, 2004 18:40
Localização: Braga


Voltar para Programação

Quem está ligado:

Utilizadores a ver este Fórum: Nenhum utilizador registado e 5 visitantes

cron