Two more chapters added
This commit is contained in:
parent
0e0b2568db
commit
4c266eacf1
1 changed files with 50 additions and 2 deletions
52
db.org
52
db.org
|
@ -286,8 +286,6 @@ Sűrű indexelés esetén a módosítás viszonylag egyszerű: megkeressük a m
|
||||||
rekordot tartalmazó adatblokkot, majd a módosított tartalommal visszaírjuk a
|
rekordot tartalmazó adatblokkot, majd a módosított tartalommal visszaírjuk a
|
||||||
háttértárra. Ha a módosítás kulcsmezőt is érintett, akkor az indexállományt
|
háttértárra. Ha a módosítás kulcsmezőt is érintett, akkor az indexállományt
|
||||||
újrarendezzük.
|
újrarendezzük.
|
||||||
|
|
||||||
|
|
||||||
* Változó hosszúságú rekordok kezelése
|
* Változó hosszúságú rekordok kezelése
|
||||||
** Változó hosszú ságú rekordok oka
|
** Változó hosszú ságú rekordok oka
|
||||||
- Egy mező hossza változó
|
- Egy mező hossza változó
|
||||||
|
@ -303,3 +301,53 @@ a mező tényleges tartalma van. Így egy állomány csak egy féle rekordot tar
|
||||||
Erre több megoldás is létezik:
|
Erre több megoldás is létezik:
|
||||||
- A maximális számú ismétlődésnek elegendő helyet foglalunk le minden rekordnak
|
- A maximális számú ismétlődésnek elegendő helyet foglalunk le minden rekordnak
|
||||||
- Mutatók használata
|
- Mutatók használata
|
||||||
|
* Részleges információ alapján történő keresés
|
||||||
|
Gyakran megesik, hogy egy rekord több mezéjét is ismerjük és meg akarjuk keresni
|
||||||
|
azokat a rekordokat, amelyek ugyanezen értékeket tárolják. A továbbiakban úgy
|
||||||
|
vesszük, hogy egyik ismert mező sem kulcs.
|
||||||
|
|
||||||
|
** Index felépítése
|
||||||
|
Egy lehetőség lehet több (esetleg minden) mezőre egy index felépítése. Ezek után
|
||||||
|
minden megadott értékre alapján előállíthatunk rekord halmazokat, majd ezek
|
||||||
|
metszetét képezve megkapjuk a kívánt eredményt. Ez nem túl praktikus.
|
||||||
|
|
||||||
|
** Particionált(feldarabolt) hash-függvény
|
||||||
|
|
||||||
|
Veszünk egy hash függvényt, amely
|
||||||
|
\begin{align}
|
||||||
|
h(m_1,m_2,\ldots,m_k)=h_1(m_1)*h_2(m_2)*\ldots*h_k(m_k)
|
||||||
|
\end{align}
|
||||||
|
alakú, ahol az
|
||||||
|
$m_i\text{-k}$ a rekord összes $k$ darab, releváns mezőjének az értékeit
|
||||||
|
jelentik, $h_i$ az $i\text{-edik}$ mezőre alkalamazott hash függvény komponens,
|
||||||
|
a $*$ pedig a konkatonáció (összefűzés) jele.
|
||||||
|
|
||||||
|
Az ismert mezők értékei alapján meghatározhatjuk az $N$ hosszúságú bitmintának az
|
||||||
|
ismert darabjait. Mindenazon vödröket kell megnézni amelyeknek a sorszáma
|
||||||
|
illeszkedik a kapott bitmintára.
|
||||||
|
* Több kulcs szerinti keresés támogatása
|
||||||
|
Fontos, hogy egy adatbáziskezelő ne csak elsődleges kulcs szerint tudjon
|
||||||
|
keresni, hanem egyéb mezők alapján is. Ezeket a mezőket keresési kulcsoknak
|
||||||
|
nevezzük.
|
||||||
|
|
||||||
|
** Indexelt megoldás
|
||||||
|
*** Invertált állomány fogalma
|
||||||
|
Azt az indexállományt, amely nem kulcsmezőrea tartalmaz indexeket, invertált
|
||||||
|
állománynak nevezzük.
|
||||||
|
*** Invertált állomány mutatói
|
||||||
|
Az invertált állomány mutatói lehetnek:
|
||||||
|
1. <<elso>>Fizikai mutatók, amelyek pl. mutathatnak
|
||||||
|
1) <<elso.a>>közvetlenül az adatállomány megfelelő blokkja (esetleg rekordja)
|
||||||
|
2) <<elso.b>>az adatállomány elsődleges kulcsa szerinti (sűrű) indexállomány
|
||||||
|
megfelelő rekorjára
|
||||||
|
2. <<masodik>> Logikai mutatók, amelyek az adatállomány valamely kulcsának értékét
|
||||||
|
tartalmazzák
|
||||||
|
Az [[elso.a]] esetben az adatállomány rekordjai kötöttek és ráadásul csak egyetlen
|
||||||
|
inverált állomány esetén használható.
|
||||||
|
|
||||||
|
Az [[elso.b]] esetben egyel több indirekción keresztül elrejtjük a keresett
|
||||||
|
rekordot, de az adatrekord megváltoztatásakor csak az érintett mezőhöz (vagy
|
||||||
|
mezőkhöz) tartozó invertált állományt kell frissíteni.
|
||||||
|
|
||||||
|
A [[masodik]]. lehetőségben az adatállomány rekordjai szabadok lehetnek, viszont nem
|
||||||
|
ismerjük a keresett rekord címét.
|
||||||
|
|
Loading…
Reference in a new issue