logo

Indexació en DBMS

  • La indexació s'utilitza per optimitzar el rendiment d'una base de dades minimitzant el nombre d'accessos al disc necessaris quan es processa una consulta.
  • L'índex és un tipus d'estructura de dades. S'utilitza per localitzar i accedir ràpidament a les dades d'una taula de base de dades.

Estructura de l'índex:

Els índexs es poden crear utilitzant algunes columnes de base de dades.

Indexació de DBMS en DBMS
  • La primera columna de la base de dades és la clau de cerca que conté una còpia de la clau primària o candidata de la taula. Els valors de la clau primària s'emmagatzemen en ordre ordenat de manera que es pugui accedir fàcilment a les dades corresponents.
  • La segona columna de la base de dades és la referència de dades. Conté un conjunt de punters que contenen l'adreça del bloc de disc on es pot trobar el valor de la clau concreta.

Mètodes d'indexació

Indexació de DBMS en DBMS

Índexs ordenats

Els índexs solen ordenar-se per fer la cerca més ràpida. Els índexs que estan ordenats es coneixen com a índexs ordenats.

el director Karan Johar

Exemple : Suposem que tenim una taula d'empleats amb milers de registres i cadascun dels quals té 10 bytes de llarg. Si els seus DNI comencen per 1, 2, 3... i així successivament i hem de cercar l'estudiant amb ID-543.

  • En el cas d'una base de dades sense índex, hem de cercar el bloc de disc des que s'inicia fins que arriba a 543. El SGBD llegirà el registre després de llegir 543*10=5430 bytes.
  • En el cas d'un índex, cercarem mitjançant índexs i el SGBD llegirà el registre després de llegir 542*2= 1084 bytes que són molt menys en comparació amb el cas anterior.

Índex primari

  • Si l'índex es crea a partir de la clau primària de la taula, es coneix com a indexació primària. Aquestes claus primàries són úniques per a cada registre i contenen una relació 1:1 entre els registres.
  • Com que les claus primàries s'emmagatzemen en ordre ordenat, el rendiment de l'operació de cerca és bastant eficient.
  • L'índex primari es pot classificar en dos tipus: índex dens i índex escàs.

Índex dens

  • L'índex dens conté un registre d'índex per a cada valor de clau de cerca del fitxer de dades. Fa que la recerca sigui més ràpida.
  • En això, el nombre de registres de la taula d'índex és el mateix que el nombre de registres de la taula principal.
  • Necessita més espai per emmagatzemar el propi registre d'índex. Els registres d'índex tenen la clau de cerca i un punter al registre real del disc.
Indexació de DBMS en DBMS

Índex escàs

  • Al fitxer de dades, el registre d'índex només apareix per a alguns elements. Cada element apunta a un bloc.
  • En això, en lloc d'assenyalar cada registre de la taula principal, l'índex apunta als registres de la taula principal en un buit.
Indexació de DBMS en DBMS

Índex de agrupació

  • Un índex agrupat es pot definir com un fitxer de dades ordenat. De vegades, l'índex es crea en columnes de clau no primària que poden no ser úniques per a cada registre.
  • En aquest cas, per identificar el registre més ràpidament, agruparem dues o més columnes per obtenir el valor únic i crear-ne un índex. Aquest mètode s'anomena índex de agrupació.
  • S'agrupen els registres que tenen característiques similars i es creen índexs per a aquests grups.

Exemple : suposem que una empresa conté diversos empleats a cada departament. Suposem que utilitzem un índex de clúster, on tots els empleats que pertanyen al mateix Dept_ID es consideren dins d'un únic clúster i els punters d'índex apunten al clúster en conjunt. Aquí Dept_Id és una clau no única.

Indexació de DBMS en DBMS

L'esquema anterior és poc confús perquè un bloc de disc és compartit per registres que pertanyen al clúster diferent. Si fem servir un bloc de disc separat per a clústers separats, s'anomena millor tècnica.

programa principal en java
Indexació de DBMS en DBMS

Índex secundari

En la indexació escassa, a mesura que la mida de la taula creix, també creix la mida del mapeig. Aquests mapes es mantenen generalment a la memòria primària perquè l'obtenció d'adreces sigui més ràpida. Aleshores, la memòria secundària cerca les dades reals basant-se en l'adreça obtinguda del mapeig. Si la mida del mapeig creix, l'obtenció de la pròpia adreça es fa més lenta. En aquest cas, l'índex escàs no serà eficient. Per solucionar aquest problema, s'introdueix la indexació secundària.

En la indexació secundària, per reduir la mida del mapeig, s'introdueix un altre nivell d'indexació. En aquest mètode, l'enorme rang de les columnes es selecciona inicialment de manera que la mida de mapatge del primer nivell es faci petita. A continuació, cada rang es divideix en rangs més petits. El mapatge del primer nivell s'emmagatzema a la memòria primària, de manera que l'obtenció d'adreces és més ràpida. El mapeig del segon nivell i les dades reals s'emmagatzemen a la memòria secundària (disc dur).

Indexació de DBMS en DBMS

Per exemple:

  • Si voleu trobar el registre de la tirada 111 al diagrama, buscarà l'entrada més alta que sigui menor o igual a 111 a l'índex de primer nivell. En aquest nivell obtindrà 100.
  • Aleshores, al segon nivell d'índex, torna a ser màxim (111)<= 111 and gets 110. now using the address 110, it goes to data block starts searching each record till 111. < li>
  • Així és com es realitza una cerca en aquest mètode. La inserció, l'actualització o la supressió també es fa de la mateixa manera.