• Nenhum resultado encontrado

Ordenação de Dados

No documento BD Part1 (páginas 53-58)

 Exercício V: Daniel

o Método Bubble: Descrição do métido e Exemplo

Descrição:

 O Método de bubble , ou ordenação por flutuação (literalmente "por bolha"), é um algoritmo de ordenação dos mais simples. A ideia é percorrer o vetor diversas vezes, a cada passagem fazendo flutuar para o topo o maior elemento da sequência. Essa movimentação lembra a forma como as bolhas em um tanque de água procuram seu próprio nível, e disso vem o nome do algoritmo.

No melhor caso, o algoritmo executa operações relevantes, onde 'n' representa o número de elementos do vetor. No pior caso, são feitas operações. A complexidade desse

algoritmo é de Ordem quadrática. Por isso, ele não é recomendado para programas que precisem de velocidade e operem com quantidade elevada de dados.

o Método QuickSort: Descrição do métido e Exemplo

Descrição:

 Quicksort é um método de ordenação muito rápido e eficiente, inventado por C.A.R. Hoare em 1960.

Este método adota a estratégia de divisão e conquista. A estratégia consiste em

rearranjar as chaves de modo que as chaves "menores" precedam as chaves "maiores". Em seguida o Quicksort ordena as duas sublistas de chaves menores e maiores

recursivamente até que a lista completa se encontre ordenada. Os passos são: Escolha um elemento da lista, denominado pivô; Rearranje a lista de forma que todos os elementos anteriores ao pivô sejam menores que ele, e todos os elementos posteriores ao pivô sejam maiores que ele. Ao fim do processo o pivô estará em sua posição final e haverá duas sublistas não ordenadas. Essa operação é denominada partição;

Recursivamente ordene a sublista dos elementos menores e a sublista dos elementos maiores; A base da recursão são as listas de tamanho zero ou um, que estão sempre ordenadas. O processo é finito, pois a cada iteração pelo menos um elemento é posto em sua posição final e não será mais manipulado na iteração seguinte.

o Método Direct Insertion: Descrição do métido e Exemplo

 O Método de inserção direta(Direct Insertion), é um simples algoritmo de ordenação, eficiente quando aplicado a um pequeno número de elementos. Em termos gerais, ele percorre um vetor de elementos da esquerda para a direita e à medida que avança vai deixando os elementos mais à esquerda ordenados. O algoritmo de inserção funciona da mesma maneira com que muitas pessoas ordenam cartas em um jogo de baralho como o pôquer.

Características: - Menor número de trocas e comparações entre os algoritmos de ordenação O(n) quando o vetor está ordenado. - Pior caso O(n²)

o Método Shell: Descrição do métido e Exemplo

Descrição:

 Criado por Donald Shell em 1959, publicado pela Universidade de Cincinnati, Shell sort é o mais eficiente algoritmo de classificação dentre os de

complexidade quadrática. É um refinamento do método de inserção direta. O algoritmo difere do método de inserção direta pelo fato de no lugar de considerar o array a ser ordenado como um único segmento, ele considera vários segmentos sendo aplicado o método de inserção direta em cada um deles.[3] Basicamente o algoritmo passa várias vezes pela lista dividindo o grupo maior em menores. Nos grupos menores é aplicado o método da ordenação por inserção.

A ordenação Shell utiliza a quebra sucessiva da sequência a ser ordenada e implementa a ordenação por inserção na sequência obtida. Por ser um método de complexidade O(n^2 ) não é aconselhável a sua implementação para sequências grandes, mas possui uma boa eficiência para as pequenas e medianas.

RAID

 Índices:

o Índice Primário: definido pela PRIMARY KEY e ordenam fisicamente os registros

o Índice Secundário: Otimizam as consultas feitas pelo comando SELECT do SQL. Não ordenam fisicamente os registros gravados nas tabelas mas são utilizados na localização de registros

o Índice Denso: O arquivo de índice possui uma entrada para cada registro armazenado no arquivo de dados, sendo assim, quando procuramos um registro utilizando o índice, ele nos remete diretamente para uma posição específica no arquivo ou tabela

o Índice Esparso: Armazenam apenas uma entrada para cada blocode dados armazenado no disco. O arquivo de dados é dividido em diversos blocos endereçáveis a partir de um tamanho padrão (1024 bytes por exemplo). Com um pesquisa binária podemos ter um melhoria na performance de até 10 vezes

 RAID

Redundant Array Inexpensive/Independent Disk (Conjunto Redundante de Discos Econômicos/Independentes)

o Agrupamento de discos rígidos que funcionam de forma concomitante ou paralela, com o objetivo de reduzir os riscos de danos causados a arquivos e aumentar a performance no acesso aos dados

o Os discos podem trabalhar independentemente ou de forma sincronizada, com os dados espalhados entre eles

o O RAID pode ser implementado via software ou hardware

Configuração

 RAID 0

o São necessários ao menos 2 discos

o Os dados são fragmentados em segmentos consecutivos gravados sequencialmente em diferentes discos do conjunto

o O segmento possui um tamanho fixo, definido por bloco. Utiliza o máximo do espaço portanto sem garantia de redundância

o A idéia é espelhar as informações em um segundo disco de forma que o sistema grave os dados ao mesmo tempo nos dois discos

o Protege os dados, pois caso um dos discos falhe, o sistema continua

funcionando normalmente porém tem a desvantagem do custo, pois com dois Discos utiliza-se a área útil de apenas 1.

RAID 0 + 1

 Exige pelo menos 4 discos na implementação com espelhamento de cada par de disco e os pares representando o RAID nivel 0

 Ao mesmo tempo obtém-se ganho de desempenho e redundância

 O problema de usar RAID 0 + 1, é o custo alto que se tem com os discos, pois no mínimo se é obrigado a possuir 4 discos.

RAID I

 Distribui os dados entre os discos mas além do espelhamento como faz o RAID 0, possui duplicidade de discos

 Para sua implementação são necessários pelo menos 2 discos. RAID 2

 Possui semelhança com o RAID 4 mas exige um disco extra onde são gravadas informações de controle de erros (ECC - Error Correcting Code)

 Ficou obsoleto depois que os novos drives de disco rígidos foram fabricados possuindo este controle no próprio circuito.

RAID 3

 Possui como característica principal a gravação paralela com paridade  O controle dos discos é bastante complexo uma vez que utiliza-se o menor

tamanho possível para o segmentos de dados

 Desta forma, é necessário que todos os discos tenham seis eixos perfeitamente sincronizados, a fim de evitar o atraso na transferência dos dados.

RAID 4

 Exige um conjunto de discos iguais, com um mínimo de 3 unidades. Um dos discos é reservado para gravação das informações de paridade dos dados, como no RAID 3

 Os discos de gravação de dados são configurados para armazenar segmentos grandes o suficiente para conter um registro inteiro, o que permite a leitura independente dos dados.

RAID 5

 Tem funcionamento similar ao RAID 4, mas em vez de gravar as informações de paridade num disco extra, elas são distribuídas pelos discos do conjunto,

gravando-se um ou mais bits em cada disco

 A implementação é possível devido à criação de informações a partir de cálculos booleanos feitos com o dado útil (a informação a ser gravada no disco),

gravando essa paridade em um dos discos e de forma distribuída. RAID 6

 Novo tipo de relacionamento que trabalha de forma similar ao RAID 5  Utiliza o dobro de bits de paridade, o que permite que no caso de dois discos

No documento BD Part1 (páginas 53-58)

Documentos relacionados