Kütük Organizasyonu1 Dosyalarda Farklı Yaklaşımlar.

Slides:



Advertisements
Benzer bir sunumlar
ÖRNEK BİR VERİTABANI TASARIMI VE NORMALİZASYONU
Advertisements

Veri Tabanı Tasarlama İlk kuralımız, olabildiğince bilgileri parçalamaktır.
Prof. Dr. Eşref ADALI Yrd. Doç. Dr. Şule Gündüz Öğüdücü Sürüm-A
Öğr.Gör. Dr. Şirin KARADENİZ
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
BPR152 ALGORİTMA VE PROGRAMLAMA - II
İkili Ağaçlar İkili Arama Ağaçları
ERD to ER Relations Fundemantals of Database systems Elmasri, Navate kitabından alıntılar içerir Veri Tabanı Sistemleri Dersi Teoriden pratiğe , Çağıltay,
Diziler Dizi, bellekte aynı isim altında toplanmış değişkenler kümesidir. Eğer ki aynı türden veriler grubunu bellekte tutmak gerekirse diziler kullanılır.
Bellek Yönetimi.
Eğitim İhtiyaçları Değerlendirmesi (TNA)
İndeksler Sibel SOMYÜREK.
Veritabanı Yönetim Sistemleri Hızlı ve Kısa Giriş
Çerez(Cookie) Kullanımı Oturum Yönetimi
Binary Ağaçlar (Ekleme/Silme Örnekleri)
ÇİZGELERİN GÖSTERİMİ Yılmaz KILIÇASLAN. Sunu Planı Bu derste, çizgelerin bilgisayarda gösterimine ilişkin iki standart yaklaşımı inceleyeceğiz.
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ DERLEYENLER: Ahmet Can ÇAKIL Ali Murat GARİPCAN Özgür AYDIN Şahin KARA KONTROL : Prof. Dr. Asaf VAROL KONU : LİSTELERE.
8. VİSUAL BASİC İLE TEMEL DOSYALAMA İŞLEMLERİ
ANA BELLEK YÖNETİMİ (MEMORY MANAGMENT)
VERİ TABANI VE YÖNETİM SİSTEMLERİ
Temel Bilgi Teknolojileri 2
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1
Microsoft EXCEL (2) Kapsam Kopyalama, Yapıştırma Açıklama Ekleme Satır ve Sütunların Boyutlandırılması Bitişik Hücrelere Dayanarak Otomatik Veri Girme.
Dosya İşlemleri BİLGİSAYAR PROGRAMCILIĞI BÖLÜMÜ
HAZIRLAYANLAR Baran EKSİK Hayrettin GÜNGÖZ Konu: Windows 7 Altında Disk Yönetimi.
ÇİZGELERİN GÖSTERİMİ Yılmaz KILIÇASLAN.
Diziler Dizi, bellekte aynı isim altında toplanmış değişkenler kümesidir. Eğer ki aynı türden veriler grubunu bellekte tutmak gerekirse diziler kullanılır.
Veritabanı Kavramları
Microsoft Office Access
Veri Tabanı Yönetim Sistemleri I
C PROGRAMLAMA DİZİLER (ARRAYS).
SQL Komutları (2) Uzm. Murat YAZICI.
HESAP TABLOSU PROGRAMLARI
Temel Bilgi Teknolojileri
Amir Esmaeilzadeh Ali Khanjarkhani End Note Web.
Microsoft EXCEL (1).
Excel’de VBA programlama (Visual Basic Application) Ders 5
HAFTA 6-7.
Hafta 8.
SQL’ e Giriş Uzm. Murat YAZICI.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Chapter 14: Files and Streams. 2Microsoft Visual C# 2012, Fifth Edition Dosyalar, Dosya Ve dizin Sınıfları Geçici Depolama – Genellikle bilgisayar belleği.
Chapter 11: Dosya Sistem Arayüzü
Veritabanı Kavramları
Raporlama Menüleri Emine TUNÇEL Kırklareli Üniversitesi, Pınarhisar Meslek Yüksekokulu.
BELLEK YÖNETİMİ Memory Management
BİLGİSAYAR programlama II
Veri yapıları Hafta3 Dizi Yapıları.
UNV13107 TEMEL BİLGİ TEKNOLOJİSİ KULLANIMI. Veri tabanı Bilgisayar ortamında saklanan düzenli verilerdir. Bilgisayar ve ağ ortamındaki bilginin temel.
KUYRUK (QUEUE).
Hashing (Çırpılama).
BİLGİSAYAR PROGRAMLAMA Ders 10: Dosyalama İşlemleri
KURTKÖY TİCARET MESLEK LİSESİ EĞİTİM ÖĞRETİM YILI
STRING FONKSİYONLARI Dim ders As String
C Programlama Dili Bilgisayar Mühendisliği.
Akademik Kütüphaneler için Basit Arama Kullanım Kılavuzu
Bellek Yönetimi(Memory management)
BİLGİSAYAR PROGRAMLAMA Ders 10: Dosyalama İşlemleri
ÖRNEK BİR VERİTABANI TASARIMI VE NORMALİZASYONU
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H11
İNDEKS.
Prof. Dr. Eşref ADALI Doç. Dr. Şule Gündüz Öğüdücü Sürüm-B
Bölüm 10: Kayıtlar – Records (structs)
YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ
DML ile veri ekleme, silme ve değiştirme
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 1
NİŞANTAŞI ÜNİVERSİTESİ
SQL Server - Indexes.
HİTİT ÜNİVERSİTESİ Akademİk açIk erİşİm sİstemİ
Excel (Hesap Çizelgesi) Programı
Sunum transkripti:

Kütük Organizasyonu1 Dosyalarda Farklı Yaklaşımlar

Kütük Organizasyonu2 Giriş Şimdiye kadar öğrendiğimiz temel dosyalama komutlarıyla (fopen,flclose, fputs vb..) dosya oluşturabilmekte, kayıt ekleyebilmekte ve her bir kaydın içeriğini değiştirebilemekteyiz. Bir kaydın silinmesi gerektiği durumlarda ne olacak? Kayıt silinmesi için tanımlanmış bir fonksiyon bulunmamaktadır. Bunun için bazı stratejilerin izlemesi gerekmektedir.

Kütük Organizasyonu3 Kayıt Silme Yaklaşımları Bir kayıt nasıl silinir? 1.Kayıt Silinmesi ve Yeniden Dosya Organizasyonu Kayıt silme işlemi bir kaydın “Silinmiş” olarak işaretlenmesiyle yapılır. Boş alan serbest bırakılmadığından program içerisinde bir kaydın silinmiş olarak işaretlenip işaretlenmediğinin kontrolünün yapılması gerekir. Çok fazla kayıt silindiğinde özel bir program (fonksiyon) dosyayı sıkıştırır. Diğer bir deyişle silinmişleri atar, dosyayı yeniden organize eder.

Kütük Organizasyonu4 2. Sabit Uzunluklu Kayıtların Silinmesi ve Boş Alanların Dinamik Olarak Kullanılması “Erişim Listesi” kullanılarak, boş alanlardan bir bağlı liste oluşturulur. Dosyanın başlangıcında bulunan bir başlık kaydı “Erişim Listesi” nin başlangıcını tutar. Bir kayıt silindiğinde “silinmiş” olarak işaretlenir ve “Erişim Listesi” ne ilave edilir. Bu işlem mantıksal olarak yapılır. Kayıt silme işleminde sonra boş kalan yerler daha sonra yeni kayıt eklemelerinde nasıl kullanılır?

Kütük Organizasyonu5 AlanPaul*-1Bob*2Catherina Liste Başlığı4 John Yeni bir kayıt eklendiğinde, erişim listesinde bulunan ilk boş noktaya gider. Not: -1 null pointer olarak gösterilmiştir.

Kütük Organizasyonu6 3. Değişken Uzunluklu Kayıtların Silinmesi “Erişim Listesi” silinecek kaydın uzunluğunu da saklaması gerekir. Yeni kayıtların eklenmesi için “Erişim Listesi”nde yeterince genişlikte yer bulunmalıdır.

Kütük Organizasyonu7 Yeni Kayıt Ekleme Yaklaşımları Yeni kayıt ekleneceği zaman, “Erişim Listesi”nden bir kayıt seçmek için pek çok yaklaşım bulunmaktadır. 1. First Fit Yaklaşımı “Erişim Listesi” boyuta göre sıralanmaz. Yeni kaydı barındırabilecek büyüklükte olan ilk kayıt seçilir. Örn: Erişim Listesi: boyut=10, boyut=50, boyut=22, boyut=60 şeklinde ve eklenecek kaydın boyutu ise 20 byte olsun. Bu durumda “Erişim Listesi” ndeki hangi kayıt eklenecek yeni kayıt için kullanılır?

Kütük Organizasyonu8 2. Best Fit Yaklaşımı “Erişim Listesi” boyuta göre sıralanır. Yeni kaydı barındırabilecek büyüklükte olan en küçük kayıt seçilir. Örn: Erişim Listesi: boyut=10, boyut= 22, boyut=50, boyut=60 şeklinde ve eklenecek kaydın boyutu ise 20 byte olsun. Bu durumda “Erişim Listesi” ndeki hangi kayıt eklenecek yeni kayıt için kullanılır?

Kütük Organizasyonu9 3. Worst Fit Yaklaşımı Yeni eklenecek kayıt için en büyük kayıt seçilir. Kullanılmayan kısımlar tekrar “Erişim Listesi” ne eklenir. Örn: Erişim Listesi: boyut=60, boyut= 50, boyut=22, boyut=10 şeklinde ve eklenecek kaydın boyutu ise 20 byte olsun. Bu durumda “Erişim Listesi” ndeki hangi kayıt eklenecek yeni kayıt için kullanılır? “Erişim Listesi” boyuta azalan şekilde sıralanır.

Kütük Organizasyonu10 Binary Arama, Anahtar Sıralama ve Indexleme

Kütük Organizasyonu11 Anahtar değerlerine göre aranması gereken sabit uzunlukta kayıtlar olsun. Eğer, anahtar değeri ile tanımlanmış olan kaydın göreli kayıt numarasını ( Relative Record Number-RRN ) biliyorsak istenilen kayda fseek() fonksiyonunu kullanraka direkt olarak ilgili kayda erişebiliriz. Gerçekte böyle bir bilgiye sahip değilizdir ve bu anahtar değerini barındıran kayıt için arama yapmamız gerekir. Eğer, dosya anahtar değerine göre sıralanmamışsa, istenilen kayda ulaşmak için olası tüm konumlara teker teker bakmak gerekir. Bir diğer alternatif ise dosyayı anahtar değerlerine göre sıralamak ve sıralanan değerler üzerinde binary arama yapmaktır. Binary Search

Kütük Organizasyonu12 Binary Search

Kütük Organizasyonu13 Anahtar Sıralama Bir dosyanın sıralanması gerekmektedir, fakat dosya ana belleğe sığamayacak kadar büyüktür. Dosyayı sıralamak için sadece anahtar değerlerine ihtiyaç vardır. İhtiyacımız olan bu anahtar değerleri ana belleğe sığmaktadır. Çözüm: Anahtarları ve bu anahtarlara karşılık gelen göreli kayıt numaralarını (RRN) belleğe getirilir. Anahtarlar dahili olarak sıralanırlar. Sıralandıktan sonra dosya sıralı bir biçimde yazılır.

Kütük Organizasyonu14 Örnek HARRISON0 KELLOG1 HARRIS2 BELL3 HARRISON | 387 Eastern... KELLOG | 17 Maple... HARRIS | 4343 West... BELL | 8912 Hill... Kayıt Numaraları (RRN)Anahtarlar Ana BellekDisk

Kütük Organizasyonu15 BELL3 HARRIS2 HARRISON0 KELLOG1 HARRISON | 387 Eastern... KELLOG | 17 Maple... HARRIS | 4343 West... BELL | 8912 Hill... Kayıt Numaraları (RRN)Anahtarlar Ana Bellekte anahtarlar üzerinde gerçekleştirilen sıralama Disk üzerinde herhangi bir değişiklik yok Örnek (Devam)

Kütük Organizasyonu16 Örnek (Devam) BELL3 HARRIS2 HARRISON0 KELLOG1 BELL | 8912 Hill... HARRIS | 4343 West... HARRISON | 387 Eastern... KELLOG | 17 Maple... Kayıt Numaraları (RRN)Anahtarlar Sıralanmış yeni dosya oluşturulur ve öncekinin üzerine yazılır.

Kütük Organizasyonu17 Öneri Neden sıralı dosyayı geri yazıyoruz ki? Bunun yerine oluşturduğumuz indexi kullanalım. BELL3 HARRIS2 HARRISON0 KELLOG1 Index Dosyası HARRISON | 387 Eastern... KELLOG | 17 Maple... HARRIS | 4343 West... BELL | 8912 Hill... Kayıtlar Dosya değişmeden eski halinde kalır. Buna Indexleme denir.

Kütük Organizasyonu18 Hatırlanacağı gibi silme işleminde dosya için mantıksal olarak oluşturulmuş bir “Erişim Listesi” kullanılmaktaydı. “Erişim Listesi” dosya üzerindeki kayıtların fiziksel bilgisini tutar. Eğer sıralam işleminde index dosyası kullanılırsa, “Erişim Listesi” ve dosyanın içindeki kayıtların konumları değişmeden aynen kalır. Bu sayede maliyet ve zamandan kazanılır.

Kütük Organizasyonu19 Basit Indexleme Basit Indexler, dizileri kullanırlar. (Anahtarları ve alan referanslarını içeren bir tablodur) Örn: Bir kitabın indexi Genel olarak indexleme arama problemini ele alan başka bir yoldur. Indexleme, dosyayı yeniden organize etmden dosya üzerinde sıralama yapılmasını sağlar. Indexler, dosyalara çoklu erişim yolları (multiple access paths) sağlarlar. (Örn: Bir kütüphane katalog sisteminde, yazar adı, kitap adı ve başlık kullanılarak bir kitaba erişlebilir. Bir index değişken uzunluklu kayıtlara anahtarlı erişim sağlayabilir.

Kütük Organizasyonu20 Giriş Sırasına Göre Düzenlenmiş Indexleme LON | 2312 | Symphony N.S. |.. RCA | 2626 | C Programming |... WAR | | Data Structures |... ANG | 3795 | Advance Programming | Birincil Anahtar Kayıt Adresleri ANG LON RCA WAR Birincil Anahtar Referans Alan Index Dosyası Index, ana bellekte sıralanmış olarak, kayıtlar ise dosya içerisine giriliş sırasıyla görünmektedir.

Kütük Organizasyonu21 İkili arama ile index içerisinden uygun referans bulunarak, onun gösterdiği yere konumlanılır. Etiket ID’si Verilen Bir Kayıt Nasıl Aranır?

Kütük Organizasyonu22 Indexlenmiş Bir Dosya Üzerinde İşlemler İlk olarak boş bir index dosyası ve veri dosyası oluşturulur. Index dosyaysı kullanmadan önce ana belleğe yüklenir ve kullanıldıktan sonra yeniden yazılır. Hatırlanacağı gibi veri dosyası üzerinde: - Kayıt ekleme - Kayıt silme - Kayıtların güncellenmesi durumları söz konusudur. Veri dosyasındaki değişiklikler index dosyasına yansıtılarak güncellenir.

Kütük Organizasyonu23 Veri dosyası kapatıldığında, ana bellekteki index, index dosyasına yazılmış olmalıdır. Yeniden yazmanın gerçekleşmediği, elektrik kesintisi gibi, durumlarda ne olacaktır ? Çözüm: 2 faklı adım ile bu problem çözülebilr. i)Index dosyasının başında bir durum belirteci bulundurulur. ii)Eğer program indexin eski olduğunu tespi ederse, index dosyasını yeniden yapılandıran bir prosedürü çağırır.