فصل هفتم شاخص گذاری.

Slides:



Advertisements
Liknende presentasjoner
Newsletter Subscribtion HOWTO CustomPublish. Eksempel fra Oslo Spektrum sin nyhetsbrev påmelding.
Advertisements

Høgskolen i Oslo Webprogrammering SQL og databaser del 3.
EcmaScript 5 Arrays Demonstrasjon av ny funksjonalitet støttet i IE 9.
IS-102 Klassedefinisjoner
#include Ligner litt på import i java. Setter inn hele fila stdio.h i programteksten. Definerer en del io funksjoner slik at signaturen er kjent. I dette.
C for Java-programmerere
En gang til!? .
Forsøk med nye stemmesedler
Feilhåndtering. Feil er uunngåelige! Erfaring viser at feil i dataprogrammer som består av mer enn noen få linjer ikke er til å unngå. For å få et godt.
Utvider eksemplet om biler fra forrige gang med mer feilsjekk Tid og Dato.
Sortering og søk. Sortering av data som ligger på en fil Prisipielt to hovedmåter gjøre dette på: 1.Arbeide mot filen 1.Lese en linje, og lese de resterende.
1 Kap 08 Kø. 2 Kø - Definisjon En kø (eng queue) er en lineær struktur hvor elementer kan innsetttes kun i den ene enden av listen, kalt bak, og fjernes.
Kap 02 Tabeller / Tabelloperasjoner. Enkeltvariable Les inn nedbørmengde for årets 12 måneder: Les n1 Les n2 … Les n12 n1 n2 n12.
Kap 10 Graf.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Repetisjon av JSP Variabler, tabeller, if-setninger, for/while-løkker
Solvens II og Finanstilsynets lovforslag
INF 295 Algoritmer og datastrukturer Forelesning 9a Søketrær Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 9b Balanserte (binære) trær Hans Fr. Nordhaug.
ADA 95 – del3 Foreleser: Olaf Hallan Graven Bok: Programming in ADA95 (2nd) John Barnes.
Høgskolen i Oslo Webprogrammering Java-scripting 2 Klientvalidering.
Dynamiske nettsider PHP Del 2 – Kontrollstrukturer.
Paradigmer i Programmering 3. Højere ordens funktioner Idag: Højere ordens funktioner Algebraiske datatyper Næste gang: I/O, Filer, interaktive programmer.
Disjunktiv normalform, oppsummering Et litteral… er en utsagnsvariabel eller negasjonen av en utsagnsvariabel. P  P Q S  R En fundamental konjunksjon.
Disjunktiv normalform, oppsummering Et litteral… er en utsagnsvariabel eller negasjonen av en utsagnsvariabel. P  P Q S  R En fundamental konjunksjon.
HUMIT 1750 Høsten 2005 Løsningsforslag med utfyllende kommentarer til Obligatorisk oppgave 1 Vi hadde gitt de tre setningene A: Regntøyet er hjemme eller.
1 Kap 06 Ordnede / Sorterte lister Oppgave nr 06_02 Polynomer Klassehierarki Javadokumentasjon.
1 INF5110 – 23. april, 2013 Svar på noen oppgaver til kap. 8 Beklager noe trykkfeil og rot på forelesningene Håper dette er bedre (lagt ut 24/4) Nå fredag.
Kap 09 Tre.
Tabeller Dette er en tabell, eller array. Den kan defineres sånn som dette: public int[] heltallsTabell = new int[11]; //Her er 11 tabellens lengde for.
GPS simulator Et C# program som sender data fra en GPS fil til RS232 og simulerer en GPS engine. Tre linjer pr. sekund er satt opp.
INF 295 forelesning 12 Repetisjon per 17. februar Hans F. Nordhaug (Ola Bø)
1 Java Database Connectivity (JDBC) Norvald H. Ryeng
INF1000 (Uke 14) Resten av eksamen H03 + del av V05 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B.
Strenger over alfabet A Den tomme strengen Λ Konkatenering av strenger Tuppel/sekvens vs. mengde Kartesisk produkt av mengder Aritet av relasjon Språk.
Kermit kysser Askepott. Kysser(kermit,askepott) Første ordens predikatlogikk relasjonssymbol individkonstanter.
Kompletthetsteoremet
Et bevis 1 Q → R P 2 P → Q P 3 P P 4 Q 3,2,MP 5 R 4,1,MP 6 P → R 3,5,CP 7 (P → Q) → (P → R) 2,6,CP 8 (Q → R) → ((P → Q) → (P → R)) 1,7,CP Vi oppsummerer.
Mer om predikatlogikk Formalisering av norske setninger i første ordens predikatlogikk Funksjonssymboler Syntaks Gyldighet Noen gyldige formler Tillukninger.
Performance og autentisitet. Performance Performance Autentisitet Autentisitet To cases To cases.
WFF – Well formed formula Streng av utsagnsvariabler (P,Q,R…), sannhetssymboler, konnektiver og parenteser, bygd opp etter følgende induktive regler: 
Kapittel 2 oppgave h Bind setningene riktig sammen og med logisk innhold.
1 Java Database Connectivity (JDBC) Norvald H. Ryeng
Lokale variable Hvis vi trenger å ta vare på en verdi, inne i en metode kan vi definere en lokal variabel: int amount = 0; vi må fortelle hvilken type.
Sudoku Mål: Lage et enkelt system som løser Sudoku-oppgaver.
Multiplikasjon - Leksjon 1: Sammenheng mellom multiplikasjon og divisjon Lekse til mandag.
WFF – Well formed formula
Stefan Schauber Helsevitenskapelig utdanningssenter (HUS) & CEMO
Helin, Mai, Isra, Marius, Emil
Kermit kysser Askepott
Kompletthetsteoremet
2.Bakgrunn Avløpsvann som ressurs. 2.Bakgrunn Avløpsvann som ressurs.
Табела величина табеле је одређена бројем колона и редова
استاد راهنما دکتر مجید رستمی آموزش EXPERT CHOICE ارائه: احمد آقاجانی
Ә.Тәжібаев “Сырдария ” өлеңі ашық сабақ 7-сынып
Titteloppsett Undertittel.
Жоба «Сын тұрғысынан ойлау технологиясы арқылы оқушылардың
Қарсылықты бағыныңқы сабақтас
Екпетал мектеп – балабақшасы Ана тілі 2 класс Өткізген: Г
Ашық сабақ Тақырыбы: Отан туралы М.Мақатаев
Бейшева Ментай Идрисовна
Информатиканың тест сұрақтары
“Сыни тұрғыдан ойлауға оқыту” модулі сабақтар топтамасында орындаған: бастауыш сынып мұғалімі:Алимбаева Алмаш Иренгалиевна санаты ІІ.
Eric Jul PSE Inst. for informatikk
Health system and societal costs associated with varied fractions of false-negative costs. Health system and societal costs associated with varied fractions.
Siste uke med fokus på Python  Java
Коучинг тақырыбы: “Оқыту мен оқудағы жаңа әдіс-тәсілдер”
Utskrift av presentasjonen:

فصل هفتم شاخص گذاری

شاخص چیست؟ منظور از شاخص مجموعه اي از عناصر شاخص است كه به صورت جفت هاي(x , a ) از داده هايي با طول ثابت است كه به طور فيزيكي كنار هم قرار دارند . x نشانگر كليد و a نشانگر اطلاعات همراه با كليد است .

فرض مي كنيم خود شاخص انقدر بزرگ است كه تنها بخش كوچكي از آن را مي توان در يك لحظه در حافظه اصلي نگه داشت . بنا بر اين شاخص بايد در يك حافظه جانبي ذخيره شود . نوع حافظه جانبي دستگاه هايي با دستيابي شبه تصادفي است كه زمان دستيابي يا انتظار آنها نسبتا طولاني است .

هدف , پيدا كردن روش كلي براي ذخيره و بازيابي داده ها در سيستم هاي فايل بزرگ بود كه امكان دسترسي با حداقل زمان را فراهم سازد . مك كرايت در سال 1972 اولين مقاله خود را در رابطه با درخت Bمنتشر كرد . پس از آن درخت B به قدري گسترش يافت كه كومر اينگونه نوشت : « درخت B , به طور غير رسمي ساختار استانداردي براي شاخص بندي در بانكهاي اطلاعاتي به شمار مي رود» .

شاخص چند سطحی

مزیت شاخص ها بدون دستکاری محتویات فایل ,به فایل نظم و تر تیب می بخشند.

لازمه استفاده از الگوريتم جستجوي دودويي اين است كه بلاك هاي داده اي به طور پيوسته ذخيره شده باشند . اگر بلاك ها به طور ناپيوسته ذخيره و به هم پيوند شده باشند , يافتن آدرس بلاك مياني نا ممكن است .

با استفاده از تكنيكهاي ابتدايي ساختمان داده ها به آساني مي توانيم گره هايي را درست كنيم كه شامل فيلد هاي پيوندي چپ و راست باشند و به اين ترتيب درخت جستجوي دودويي را به صورت يك ساختار پيوندي ايجاد كنيم .

شكل زير را در نظر بگيريد :

مشكل درخت جستجوي دودويي اين است كه براي شاخص بندي روي ديسك سرعت لازم را ندارد . اما مشكل مهم ديگر درخت جستجوي دودويي , وجود نداشتن يك راهبرد موثر براي موازينه كردن درخت است براي حل اين مشكلات درختهاي AVL و در ختهاي دوديي صفحه صفحه به ميان آمدند

کاتالوگ کارتی چیست؟ مجموعه ای از سه شاخص است که هر کدام از یک فیلد کلید متفاوت استفاده می کنند وهمه آنها از یک شماره کاتالوگ یکسان به عنوان فیلد آدرس بهره می گیرند.

مقایسه سرعت دسترسی شاخص باعث می شود تا رکورد ها را به وسیله کلید آنها با سرعت زیادی ÷یدا کنیم .سرعت این کار در مقایسه با حالتی که جستجوی دودویی در یک فایل مرتب موجود در حافظه انجام می شود بیشتر است.

عملیات مورد نیاز برای نگهداری فایل شاخص بندی شده ایجاد فایل داده ها و شاخص خالی اولیه باز کردن فایل شاخص در حافظه ,قبل از به کار گیری آن نوشتن فایل شاخص بر روی دیسک , پس از به کار گیری آن افزودن رکورد هایی به فایل داده ها حذف رکورد ها از فایل داده ها بهنگام کردن رکورد ها در فایل داده ها بهنگام کردن شاخص برای انعکاس تغییرات به عمل آمده در فایل داده ها

ایجاد فایل داده ها و شاخص خالی اولیه دو فایل باید ایجاد شود: فایل داده ها برای نگهداری اشیائ داده ای فایل شاخص برای نگهداری کلید اولیه

باز کردن فایل شاخص در حافظه ,قبل از به کار گیری آن بازیابی و ذخیره اشیاء توسط کلاس io buffer انجام می شود.

نوشتن فایل شاخص بر روی دیسک , پس از به کار گیری آن یکی از خطرات مربوط به خواندن شاخص و نوشتن آن در پایان برنامه آن است که اگر برنامه متوقف شود کپی شاخص که بر روی دیسک است اعتبار ندارد.

برنامه باید حداقل دو مکانیسم زیر را برای محافظت از خطا داشته باشد باید مکانیسمی باشد که به برنامه اطلاع دهد که شاخص در چه زمانی از رده خارج است اگر برنامه تشخیص دهد که شاخص از رده خارج است باید به روالی دستیابی داشته باشد که شاخص را از فایل داده ها بازسازی کند.

افزودن رکورد هایی به فایل داده ها برای افزودن رکورد ها باید همه ورودی هایی را که کلید آنها پس از کلید ورودی جدید است , جابجا کنیم تا پس از این ورودی قرار گیرند.

حذف رکورد ها از فایل داده ها بر خلاف یک فایل داده ای مرتب برای حفظ ترتیب رکورد ها نیاز به جابجایی آنها نیست.به وسیله کلید بدون اختلال در جای رکورد ها می توانیم با سرعت زیادی به رکورد ها دسترسی پیدا کنیم.

بهنگام کردن رکورد ها در فایل داده ها بهنگام سازی به دو صورت انجام می شود: بهنگام سازی تعداد فیلد و کلید را تغییر می دهد بهنگام سازی بر فیلد کلید تا ثیر نمی گذارد.

بهینه سازی شیوه استاندارد برای انجام این کار افزودن نشانگری به شی شاخص استتا نشان دهد که چه زمانی تغییر کرده است. هنگامی که رکورد به حاففظه منتقل می شود به این نشانگر ارزش false داده می شود.و هرگاه رکورد شاخص توسط متد های remove و insert تغغییر داده شد به آن ارزش true داده می شود.

شاخص های بزرگ اگر شاخص بیش از حد بزرگ باشد در آن صورت دستیابی به شاخص و دستکاری آن باید در حافظه ثانویه صورت گیرد.

معایب دستیابی به شاخص روی دیسک جستجوی دودویی شاخص به جای آنکه با سرعت حافظه صورت پذیرد نیاز به چندین پیگرد دارد. ترتیب مجدد شاخص که از حذف یا افزودن رکورد ناشی می شود نیاز به جابجا کردن یا مرتب سازی رکورد ها در حافظه ثانویه دارد که این کار بسیار گرانتر از اجرای این عملیات در حافظه است.

هرگاه شاخص در حافظه جا نشود باید از موارد زیر استفاده کرد: در صورتی که سرعت دستیابی در اولویت قرار داشته باشد از درهم سازی استفاده شود در صورتی که به هر دو نوع دستیابی کلیدی و ترتیبی نیاز باشد از یک شاخص چند سطحی با ساختار درختی نظیر درخت B استفاده می شود.

نکته 1: شاخص ساده استفاده از جستجوی دودویی را برای دستیابی کلیدی به یک رکورد در فایلی که طول رکورد های آن متغییر است امکان پذیر می سازد.

نکته 2: اگر ورودی های شاخص بسیار کوچکتر از رکورد های فایل داده ها باشد مرتب سازی و نگهداری شاخص نسبت به مرتب سازی و نگهداری فایل داده ها زمان کمتری می برد.

نکته 3: اگر در فایل داده ها رکورد هایی وجود دارند که در جای خود مستقر هستند با استفاده از شاخص می توان ترتیب کلید ها را بدون جابجایی رکورد های داده ها عوض کرد.

افزودن رکورد هنگامی که شاخص ثانویه ای موجود باشد , افزودن یک رکورد به فایل به معنای افزودن یک ورودی شاخص ثانویه است.

نکته اختلاف مهم شاخص اولیه با ثانویه آن است که شاخص ثانویه می تواند حاوی کلید های دوگانه باشد.

حذف رکورد ها حذف یک رکورد به معنای حذف تمامی آدرس های آن رکورد در سیستم فایل است.

بهنگام سازی رکورد ها بهنگام سازی فایل داده ها فقط هنگامی شاخص ثانویه را تحت تا ثیر قرار می دهد که کلید اولیه یا ثانویه تغییر یابند

در بهنگام سازی سه وضعیت پیش می آید: بهنگام سازی با عث تغییر کلید ثانویه می شود بهنگام سازی باعث تغییر کلید اولیه می شود بهنگام سازی محدود به فیلد های دیگر

ساختار های شاخص ثانویه دو مشکل دارند هر بار که رکورد جدیدی به فایل افزوده می شود باید فایل شاخص را دوباره مرتب کنیم. اگر کلید های ثانویه وجود داشته باشد فیلد کلید ثانویه برای هر ورودی تکرار می شود.

انقیاد منظور از انقیاد این است که کلید در چه نقطه ای به آدرس فیزیکی رکورد مربوط به خود می پیوندد

در کل این فصل انقیاد کلید های اولیه به آدرس در زمان ایجاد شدن فایلها رخ می دهد.ولی کلید های ثانویه در زمان استفاده به آدرس خود پیوند می یابند.

نکته عیب انقیاد مستقیم در فایل آن است که سازمان دهی دوباره فایل داده ها باید منجر به اصلاح همه فایل های شاخص انقیاد یافته شود.

انقیاد درون داده ها هنگامی بهترین نتیجه را می دهد که: فایل داده ها ایستا یا تقریبا ایستا باشد و نیاز کمی به حذف , اضافه یا بهنگام سازی داده ها داشته باشد. کارایی سریع طی بازیابی واقعی , از اولویت بالایی بر خوردار است.