logo

Indexació a bases de dades - Conjunt 1

La indexació millora el rendiment de la base de dades minimitzant el nombre de visites al disc necessàries per complir una consulta. És una tècnica d'estructura de dades que s'utilitza per localitzar i accedir ràpidament a dades en bases de dades. S'utilitzen diversos camps de base de dades per generar índexs. La clau principal o la clau candidata de la taula es duplica a la primera columna, que és la clau de cerca. Per accelerar la recuperació de dades, els valors també es mantenen ordenats. Cal destacar que no cal ordenar les dades. La segona columna és la referència de dades o punter que conté un conjunt de punters que contenen l'adreça del bloc de disc on es pot trobar aquest valor de clau en particular.

Estructura de l'índex a la base de dades

Atributs de la indexació

  • Tipus d'accés: Això fa referència al tipus d'accés, com ara la cerca basada en valors, l'accés a l'interval, etc.
  • Temps d'accés: Es refereix al temps necessari per trobar un determinat element de dades o conjunt d'elements.
  • Temps d'inserció: Es refereix al temps necessari per trobar l'espai adequat i inserir dades noves.
  • Hora d'eliminació: Temps necessari per trobar un element i suprimir-lo, així com per actualitzar l'estructura de l'índex.
  • Espai superior: Es refereix a l'espai addicional que requereix l'índex.

Estructura de l'índex a la base de dades



En general, hi ha dos tipus de mecanismes d'organització de fitxers que segueixen els mètodes d'indexació per emmagatzemar les dades:

Organització de fitxers seqüencials o fitxer d'índex ordenat

En això, els índexs es basen en una ordenació ordenada dels valors. Aquests són generalment ràpids i un tipus de mecanisme d'emmagatzematge més tradicional. Aquestes organitzacions de fitxers ordenats o seqüencials poden emmagatzemar les dades en un format dens o dispers.

  • Índex dens
    • Per a cada valor de clau de cerca del fitxer de dades, hi ha un registre d'índex.
    • Aquest registre conté la clau de cerca i també una referència al primer registre de dades amb aquest valor de clau de cerca.

Índex dens

  • Índex escàs
    • El registre d'índex només apareix per a alguns elements del fitxer de dades. Cada element apunta a un bloc tal com es mostra.
    • Per localitzar un registre, trobem el registre d'índex amb el valor de clau de cerca més gran inferior o igual al valor de clau de cerca que estem buscant.
    • Comencem en aquell registre assenyalat pel registre d'índex i procedim juntament amb els punters del fitxer (és a dir, seqüencialment) fins a trobar el registre desitjat.
    • Nombre d'accessos necessaris=log₂(n)+1, (aquí n=nombre de blocs adquirits pel fitxer d'índex)

Índex escàs

Organització de fitxers hash

Els índexs es basen en que els valors es distribueixen de manera uniforme en una sèrie de dipòsits. Els cubs als quals s'assigna un valor estan determinats per una funció anomenada funció hash. Hi ha principalment tres mètodes d'indexació:

  • Indexació agrupada : Quan s'emmagatzemen més de dos registres al mateix fitxer, aquest tipus d'emmagatzematge es coneix com a indexació de clúster. Mitjançant l'ús de la indexació de clúster, podem reduir el cost de la cerca perquè diversos registres relacionats amb el mateix s'emmagatzemen en un sol lloc i també proporciona la unió freqüent de més de dues taules (registres).
    L'índex de agrupació es defineix en un fitxer de dades ordenat. El fitxer de dades s'ordena en un camp que no és clau. En alguns casos, l'índex es crea en columnes de clau no primària que poden no ser úniques per a cada registre. En aquests casos, per identificar els registres més ràpidament, agruparem dues o més columnes per obtenir els valors únics i crear-ne un índex. Aquest mètode es coneix com a índex de clustering. Essencialment, els registres amb propietats similars s'agrupen i es formen índexs per a aquestes agrupacions.
    Els estudiants que estudien cada semestre, per exemple, s'agrupen. Es classifiquen els alumnes de primer semestre, els de segon, els de tercer, etc.

Indexació agrupada

  • Indexació primària: Aquest és un tipus d'indexació agrupada en què les dades s'ordenen segons la clau de cerca i la clau primària de la taula de base de dades s'utilitza per crear l'índex. És un format per defecte d'indexació on indueix organització de fitxers seqüencial . Com que les claus primàries són úniques i s'emmagatzemen de manera ordenada, el rendiment de l'operació de cerca és bastant eficient.
  • Indexació no agrupada o secundària : un índex no agrupat només ens indica on es troben les dades, és a dir, ens ofereix una llista de punters virtuals o referències a la ubicació on s'emmagatzemen realment les dades. Les dades no s'emmagatzemen físicament en l'ordre de l'índex. En canvi, les dades estan presents als nodes fulla. Per ex. la pàgina de contingut d'un llibre. Cada entrada ens proporciona el número de pàgina o la ubicació de la informació emmagatzemada. Les dades reals aquí (informació de cada pàgina del llibre) no estan organitzades, però tenim una referència ordenada (pàgina de contingut) a on es troben realment els punts de dades. Només podem tenir un ordre dens a l'índex no agrupat, ja que no és possible un ordre dispers perquè les dades no estan organitzades físicament en conseqüència.
    Requereix més temps en comparació amb l'índex agrupat perquè es fa una mica de treball addicional per extreure les dades seguint encara més el punter. En el cas d'un índex agrupat, les dades estan directament presents davant de l'índex.
Indexació no agrupada

Indexació no agrupada

  • Indexació multinivell: Amb el creixement de la mida de la base de dades, els índexs també creixen. Com que l'índex s'emmagatzema a la memòria principal, un índex d'un sol nivell pot arribar a ser massa gran per emmagatzemar-lo amb diversos accessos al disc. La indexació multinivell segrega el bloc principal en diversos blocs més petits perquè el mateix es pugui emmagatzemar en un sol bloc. Els blocs exteriors es divideixen en blocs interiors que al seu torn s'apunten als blocs de dades. Això es pot emmagatzemar fàcilment a la memòria principal amb menys despeses generals.

Indexació multinivell

Avantatges de la indexació

  • Rendiment de consultes millorat: La indexació permet una recuperació de dades més ràpida de la base de dades. La base de dades pot descobrir ràpidament files que coincideixen amb un valor o col·lecció de valors específics generant un índex en una columna, minimitzant la quantitat de temps que triga a realitzar una consulta.
  • Accés eficient a les dades: La indexació pot millorar l'eficiència de l'accés a les dades reduint la quantitat d'E/S de disc necessària per recuperar dades. La base de dades pot mantenir a la memòria les pàgines de dades de les columnes visitades amb freqüència generant un índex en aquestes columnes, disminuint el requisit de llegir des del disc.
  • Classificació de dades optimitzada: La indexació també pot millorar el rendiment de les operacions d'ordenació. En crear un índex a les columnes utilitzades per ordenar, la base de dades pot evitar ordenar tota la taula i, en canvi, ordenar només les files rellevants.
  • Rendiment coherent de les dades: La indexació pot ajudar a garantir que la base de dades funcioni de manera coherent encara que augmenta la quantitat de dades de la base de dades. Sense indexació, les consultes poden trigar més a executar-se a mesura que creix el nombre de files de la taula, mentre que la indexació manté una velocitat aproximadament coherent.
  • En assegurar-se que només s'insereixen valors únics a les columnes que s'han indexat com a úniques, també es pot utilitzar la indexació per garantir la integritat de les dades. D'aquesta manera s'evita emmagatzemar dades duplicades a la base de dades, cosa que pot provocar problemes a l'hora de realitzar consultes o informes.

En general, la indexació a les bases de dades ofereix avantatges significatius per millorar el rendiment de les consultes, l'accés eficient a les dades, l'ordenació de dades optimitzada, el rendiment de les dades coherent i la integritat de les dades forçada.

Inconvenients de la indexació

  • La indexació requereix més espai d'emmagatzematge per contenir l'estructura de dades de l'índex, cosa que pot augmentar la mida total de la base de dades.
  • Augment de la sobrecàrrega de manteniment de la base de dades: Els índexs s'han de mantenir a mesura que s'afegeixen, es destrueixen o es modifiquen dades a la taula, cosa que pot augmentar la sobrecàrrega de manteniment de la base de dades.
  • La indexació pot reduir el rendiment d'inserció i actualització, ja que l'estructura de dades de l'índex s'ha d'actualitzar cada vegada que es modifiquen les dades.
  • Escollir un índex pot ser difícil: Pot ser difícil triar els índexs adequats per a una consulta o aplicació específica i pot requerir un examen detallat de les dades i els patrons d'accés.

Característiques de la indexació

  • El desenvolupament d'estructures de dades, com ara Arbres B o Les columnes més importants per indexar columnes es seleccionen en funció de la freqüència amb què s'utilitzen i del tipus de consultes a les quals se'ls sotmet. El cardinalitat , la selectivitat i la singularitat de les columnes d'indexació es poden tenir en compte.
  • Hi ha diversos tipus d'índexs diferents que utilitzen les bases de dades, inclosos els índexs primaris, secundaris, agrupats i no agrupats. En funció de les necessitats particulars del sistema de bases de dades, cada forma d'índex ofereix avantatges i inconvenients.
  • Perquè el sistema de bases de dades funcioni al màxim, cal un manteniment periòdic de l'índex. Segons els canvis en les dades i els patrons d'ús, el treball de manteniment implica la creació, l'actualització i l'eliminació d'índexs.
  • L'optimització de consultes de bases de dades implica la indexació, que és essencial. L'optimitzador de consultes utilitza els índexs per triar la millor estratègia d'execució per a una consulta concreta en funció del cost d'accés a les dades i de la selectivitat de les columnes d'indexació.
  • Les bases de dades fan servir una sèrie d'estratègies d'indexació, com ara índexs de cobertura, exploracions només d'índex i índexs parcials. Aquestes tècniques maximitzen la utilització d'índexs per a tipus concrets de consultes i accés a dades.
  • Quan s'emmagatzemen blocs de dades no contigus en un índex, pot provocar una fragmentació de l'índex, cosa que fa que l'índex sigui menys efectiu. El manteniment regular de l'índex, com ara la desfragmentació i la reorganització, pot disminuir fragmentació .

Conclusió

La indexació és una tècnica molt útil que ajuda a optimitzar el temps de cerca base de dades consultes. La taula d'indexació de bases de dades consta d'una clau de cerca i punter . Hi ha quatre tipus d'indexació: indexació primària, agrupació secundària i indexació multivalor. La indexació primària es divideix en dos tipus, densa i escassa. La indexació densa s'utilitza quan la taula d'índex conté registres per a cada clau de cerca. La indexació escassa s'utilitza quan la taula d'índex no utilitza una clau de cerca per a cada registre. Usos d'indexació multinivell Arbre B+ . L'objectiu principal de la indexació és oferir un millor rendiment per a la recuperació de dades.

Preguntes freqüents sobre indexació

P.1: Què és la indexació a les bases de dades?

Resposta:

La indexació és bàsicament una tècnica que ajuda a reduir el temps de cerca d'una consulta de base de dades o ajuda a accedir més ràpidament a la base de dades.

P.2: Quins són els exemples de bases de dades d'indexació?

Resposta:

Alguns exemples habituals de bases de dades d'indexació són el Web of Science, DOAJ (Directori de revistes d'accés obert)

git checkout

Per a més detalls, podeu consultar Introducció a B+ Tree i Tipus de claus a la base de dades article.