Indexeren in DBMS: wat is, soorten indexen met VOORBEELDEN

Wat is indexeren?

Indexeren is een datastructuurtechniek waarmee u snel records uit een databasebestand kunt ophalen. Een index is een kleine tabel met slechts twee kolommen. De eerste kolom bevat een kopie van de primaire of kandidaatsleutel van een tabel. De tweede kolom bevat een reeks pointers voor het vasthouden van het adres van het schijfblok waar die specifieke sleutelwaarde is opgeslagen.

Een index -

  • Neemt een zoeksleutel als invoer
  • Retourneert op efficiënte wijze een verzameling overeenkomende records.

Soorten indexering in DBMS

Soorten indexering in DBMS
Type indexen in database

Indexering in Database wordt gedefinieerd op basis van de indexeringsattributen. Er zijn twee hoofdtypen indexeringsmethoden:

  • Primaire indexering
  • Secundaire indexering

Primaire index in DBMS

Primaire index is een geordend bestand met een vaste lengte en twee velden. Het eerste veld is hetzelfde als een primaire sleutel en het tweede veld verwijst naar dat specifieke datablok. In de primaire Index is er altijd één op één relatie tussen de items in de indextabel.

De primaire indexering in DBMS is ook verder onderverdeeld in twee typen.

  • Dichte Index
  • Schaarse Index

Dichte Index

In een dichte index wordt een record aangemaakt voor elke zoeksleutel die in de database wordt gewaardeerd. Hierdoor kunt u sneller zoeken, maar heeft u meer ruimte nodig om indexrecords op te slaan. Bij deze indexering bevatten methoderecords de zoeksleutelwaarde en verwijzen naar de echte record op de schijf.

Dichte Index

Schaarse Index

Het is een indexrecord dat slechts voor enkele waarden in het bestand verschijnt. Sparse Index helpt u de problemen van dichte indexering op te lossen dbms. Bij deze indexeringsmethode slaat een reeks indexkolommen hetzelfde gegevensblokadres op, en wanneer gegevens moeten worden opgehaald, wordt het blokadres opgehaald.

Sparse Index slaat echter slechts voor bepaalde zoeksleutelwaarden indexrecords op. Het heeft minder ruimte nodig, minder onderhoudskosten voor het invoegen en verwijderen, maar het is langzamer vergeleken met de compacte index voor het lokaliseren van records.

Hieronder vindt u een database-index. Voorbeeld van Sparse Index

Schaarse Index

Secundaire index in DBMS

De secundaire index in DBMS kan worden gegenereerd door een veld dat een unieke waarde heeft voor elk record, en het moet een kandidaatsleutel zijn. Het wordt ook wel een niet-clusterindex.

Deze database-indexeringstechniek met twee niveaus wordt gebruikt om de mappinggrootte van het eerste niveau te verkleinen. Voor het eerste niveau is er een groot aanbod van numbers is daarom geselecteerd; de mappinggrootte blijft altijd klein.

Secundair indexvoorbeeld

Laten we secundaire indexering begrijpen met een voorbeeld van een database-index:

In een bankrekeningdatabase worden gegevens opeenvolgend opgeslagen door acc_no; Misschien wilt u alle rekeningen van een specifiek filiaal van de ABC-bank vinden.

Hier kunt u voor elke zoeksleutel een secundaire index in DBMS hebben. Indexrecord is een recordpunt naar een bucket die verwijzingen bevat naar alle records met hun specifieke zoeksleutelwaarde.

Secundair indexvoorbeeld

ClusterIndexering in DBMS

In een clustered-index worden de records zelf opgeslagen in de index en niet in de verwijzingen. Soms wordt de index gemaakt op basis van niet-primaire sleutelkolommen, die mogelijk niet uniek zijn voor elke record. In een dergelijke situatie kunt u twee of meer kolommen groeperen om de unieke waarden te verkrijgen en een index maken die wordt aangeroepen clustered Index. Dit helpt u ook om het record sneller te identificeren.

Voorbeeld:

Laten we aannemen dat een bedrijf veel werknemers op verschillende afdelingen heeft aangeworven. In dit geval, clusterindexering in DBMS moet worden aangemaakt voor alle medewerkers die tot dezelfde afdeling behoren.

Het wordt in één keer beschouwd cluster, en indexpunten wijzen naar de cluster Als geheel. Hier is Afdeling _nr een niet-unieke sleutel.

Wat is een multilevel-index?

Indexering op meerdere niveaus in Database wordt gemaakt wanneer een primaire index niet in het geheugen past. Bij dit type indexeringsmethode kunt u het aantal schijftoegangen beperken om een ​​record kort te houden en als een sequentieel bestand op een schijf te bewaren, en een beperkte basis op dat bestand te maken.

Index op meerdere niveaus

B-boomindex

B-tree-index is de veelgebruikte datastructuur voor boomgebaseerde indexering in DBMS. Het is een multilevel-formaat voor boomgebaseerde indexering in de DBMS-techniek die in balans is binaire zoekbomen. Alle bladknooppunten van de B-boom duiden feitelijke gegevensaanwijzers aan.

Bovendien zijn alle leaf-knooppunten met elkaar verbonden via een linklijst, waardoor een B-boom zowel willekeurige als sequentiële toegang kan ondersteunen.

B-boomindex

  • Leadknooppunten moeten tussen 2 en 4 waarden hebben.
  • Elk pad van wortel tot blad is meestal even lang.
  • Niet-bladknooppunten, afgezien van het wortelknooppunt, hebben tussen de 3 en 5 kinderknooppunten.
  • Elke knoop die geen wortel of blad is, heeft tussen n/2] en n kinderen.

Voordelen van indexeren

Belangrijke voordelen/voordeel van Indexeren zijn:

  • Het helpt u het totale aantal I/O te verminderen operainstellingen die nodig zijn om die gegevens op te halen, zodat u geen toegang hoeft te krijgen tot een rij in de database vanuit een indexstructuur.
  • Biedt sneller zoeken en ophalen van gegevens voor gebruikers.
  • Door te indexeren kunt u ook de tabelruimte verkleinen, omdat u niet naar een rij in een tabel hoeft te linken, omdat u de ROWID niet in de index hoeft op te slaan. Zo kunt u de tabelruimte verkleinen.
  • U kunt gegevens in de leadknooppunten niet sorteren omdat de waarde van de primaire sleutel deze classificeert.

Nadelen van indexeren

Belangrijke nadelen/nadelen van indexeren zijn:

  • Om het indexeringsdatabasebeheersysteem uit te voeren, hebt u een primaire sleutel op de tabel nodig met een unieke waarde.
  • U kunt geen andere indexen uitvoeren in Database op de geïndexeerde gegevens.
  • Het is niet toegestaan ​​een indexgeorganiseerde tabel te partitioneren.
  • SQL-indexering Verminder de prestaties bij INSERT-, DELETE- en UPDATE-query's.

Samengevat

  • Indexering is een kleine tabel die uit twee kolommen bestaat.
  • Er zijn twee hoofdtypen indexeringsmethoden: 1) Primaire indexering en 2) Secundaire indexering.
  • Primaire index is een geordend bestand met een vaste lengte en twee velden.
  • De primaire indexering is ook verder onderverdeeld in twee typen: 1) Dichte index 2) Schaarse index.
  • In een dichte index wordt een record aangemaakt voor elke zoeksleutel die in de database wordt gewaardeerd.
  • Een spaarzame indexeringsmethode helpt u de problemen van compacte indexering op te lossen.
  • De secundaire index in DBMS is een indexeringsmethode waarvan de zoeksleutel een volgorde specificeert die afwijkt van de volgorde van het bestand.
  • ClusterDe index wordt gedefinieerd als een ordergegevensbestand.
  • Indexering op meerdere niveaus wordt gemaakt wanneer een primaire index niet in het geheugen past.
  • Het grootste voordeel van indexeren is dat u hiermee het totale aantal I/O kunt verminderen operadie nodig zijn om die gegevens op te halen.
  • Het grootste nadeel van het uitvoeren van het indexeringsdatabasebeheersysteem is dat u een primaire sleutel op tafel nodig heeft met een unieke waarde.