Dosyalarda Farklı Yaklaşımlar. Kütük Organizasyonu 1



Benzer belgeler
Sıralı Erişimli Dosyalar. Kütük Organizasyonu 1

DOSYA ORGANİZASYONU. Ağaç Yapıları ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

Fiziksel Veritabanı Modelleme

Fiziksel Tasarım Konuları. Dosya Organizasyon Teknikleri Kayıt Erişim Yöntemleri Veri Yapıları

Ağaç Yapıları (Tree Structures) Kütük Organizasyonu 1

İşletim Sistemlerine Giriş

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

DOSYA ORGANİZASYONU. Çarpışma çözümleme yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

BLG 312 Bilgisayar İşletim Sistemleri 2006 BLG 312. Bilgilerin Uzun Vadeli Saklanması. Dosya Sistemi Görevleri. Dosya Sistemi Özellikleri

Bilgilerin Uzun Vadeli Saklanması

Dosya Saklama Ortamları (Sabit Diskler) Kütük Organizasyonu 1

Veri Yapıları. Yrd. Doç. Dr. Şadi Evren ŞEKER

Eln 1002 Bilgisayar Programlama II

Indeksli Sıralı Erişimli Dosya Yapıları (Indexed Sequential File Organization) ve. Bit Seviyesinde İşlemler (Bit Level and Related Structures)

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Genel Programlama II

Dosyaların Özellikleri (Attribute) Dosya İşlemleri. İki Seviyeli Katalog Sistemleri. Tek Seviyeli Katalog Sistemleri. Hiyerarşik Katalog Sistemleri

VERİ TABANI YÖNETİM SİSTEMLERİ I

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-7 Sıralama Algoritmaları

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler

ELEKTRONİK ÇİZELGE. Hücreleri Biçimlendirme. Formülleri Kullanma. Verileri Sıralama. Grafik Oluşturma 1) HÜCRELERİ BİÇİMLENDİRME

Temel Dosya İşlemleri. Kütük Organizasyonu 1

Sihirbaz Kullanarak Sorgu Oluştur : Sihirbaz sorguyu hazırlayan kişiye sorular sorar ve yanıtlarına göre sorgu oluşturur.

C Dosyalama. Öğr. Gör. M. Ozan AKI. Rev 1.0

AYDES PROJESİ ARAMA KURTARMA HİZMET GRUBU EĞİTİM DOKÜMANI

VERİ YAPILARI LİSTELER. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ

BÖLÜM13 3- EXCEL DE VERİ İŞLEMLERİ

MS Access. üzerinde. defa çalıştırıldığında

Veri ve Dosya Yapıları. Kütük Organizasyonu 1

Yrd. Doç. Dr. Caner ÖZCAN

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Aşağıdaki programı inceleyip ekrana ne yazacağını söyleyebilir misiniz?

Not Takip dosyası içerisinde sayfa 1 deki ilk satırın dondurulması,

Yrd. Doç. Dr. Ümit ATİLA

DOSYA ORGANİZASYONU. Sıralı erişimli dosya organizasyonu yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

Veri Tabanı Hafta Dersi

YZM VERİ YAPILARI DERS#9: HASH FONKSİYONLARI

YZM 2116 Veri Yapıları

DİSK DEPOLAMA ALANLARI

Algoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste. Mustafa Kemal Üniversitesi

VERİ YAPILARI VE PROGRAMLAMA

DEVLET PLANLAMA TEŞKİLATI BİLGİ TOPLUMU DAİRESİ BAŞKANLIĞI. e-yazışma Projesi. Paket Yapısı

ALGORİTMA VE PROGRAMLAMA II

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Yrd. Doç. Dr. Caner ÖZCAN

Çakışmalar ve Çakışmaların Statik Yaklaşımlarla Çözülmesi. Kütük Organizasyonu 1

MapCodeX MapLand Kullanım Kılavuzu

Genel Programlama II

Yrd. Doç. Dr. Caner ÖZCAN

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Bölüm 4: DDL Veri Tanımlama Dili

BIL222 Veri Yapıları ve Algoritmalar

BMB204. Veri Yapıları Ders 9. B+ Ağacı, Hash, Heap. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

İşletim Sistemi. BTEP205 - İşletim Sistemleri

BİL 810 İnşaat Mühendisliğinde Bilgisayar Uygulamaları

SQL Komutları (2) Uzm. Murat YAZICI

SAĞLIK KURULU ÖZÜRLÜ SAĞLIK KURULU RAPORU

PROGRAMLAMA. Dosyalama İşlemleri. Yrd. Doç. Dr. Bülent Çobanoğlu. Sakarya Üniversitesi Mekatronik Mühendisliği. Yrd.Doç.Dr.

YZM 2116 Veri Yapıları

1. GİRİŞ Bu bölümde; Kartlı Geçiş Kontrol ve Personel Devam Kontrol terminallerinin temel içeriği ve kart tanımlama hakkında önbilgi verilecektir.

BMB1002 Bilgisayar Programlamaya Giriş. Dosyalar. Prof. Dr. Necmettin Kaya

Yrd. Doç. Dr. Caner ÖZCAN

Excel de çalışma alanı satır ve sütunlardan oluşur. Satırları rakamlar, sütunları ise harfler temsil eder. Excel çalışma sayfası üzerinde toplam

İŞLETMELERDE BECERİ EĞİTİMİ DERSİ MİCROSOFT WORD 2007 ÇALIŞMALARI

Ekle sekmesindeki Tablolar grubundaki Tablo seçeneği ile tablo oluşturulur.

Veri Yapıları Laboratuvarı

VAKIFBANK SANAL POS PANELİ KULLANICI KILAVUZU

Bilgisayarların Gelişimi

TAPU VE KADASTRO BİLGİ SİSTEMİ

MÜLKİ İDARE AMİRLERİ ATAMA MODÜLÜ

AGSoft Çocuk Gelişim Takip Programı Kullanım Kılavuzu

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

Basit SQL Sorguları Veritabanından verilerin SELECT cümleleri ile alınması işlemine sorgulama denir.

Bilgisayar İşletim Sistemleri BLG 312

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

VERİTABANI. SQL (Structured Query Language)

SAĞLIK KURULU ENGELLİ SAĞLIK KURULU RAPORU

DESTEK DOKÜMANI KAYIT NUMARALAMA ŞABLONLARI

BTP 205 İŞLETİM SİSTEMLERİ

Temel Bilgisayar Programlama

ICATT ÇEVİRİ UYGULAMASI SİSTEM MİMARİSİ VE VERİTABANI TASARIMI

YEDEKLEME PROGRAMI KURULUM VE KULLANIMI

Göstericiler (Pointers)

BEŞHEKİM GRUP AYBEL YAZILIM İBYS PROGRAMI KULLANIMI

ALGORİTMA VE PROGRAMLAMA II

Veri Yapıları. Öğr.Gör.Günay TEMÜR Düzce Üniversitesi Teknolojis Fakültesi

GİRİŞ/ÇIKIŞ VE TANIMLAMA DEYİMLERİ

Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Dosyalama İşlemleri. Ders Notları

!"#$%&'()$*%+,+%-./")%*0.1(23%343/%)(0#35%232)(63%-"77$/86%-87$9":"%!!

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

Kayıt Tipi ve MARC. MARC kaydı nedir?

VERİ TABANI YÖNETİM SİSTEMLERİ I

Turgut Özal Üniversitesi WEB Sitesi Kullanım Kılavuzu

Sanal Bellek (Virtual Memory)

Transkript:

Dosyalarda Farklı Yaklaşımlar Kütük Organizasyonu 1

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 Organizasyonu 2

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 Organizasyonu 3

Kayıt silme işleminde sonra boş kalan yerler daha sonra yeni kayıt eklemelerinde nasıl kullanılır? 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. Kütük Organizasyonu 4

Liste Başlığı 4 John Alan Paul *-1 Bob *2 Catherina 0 1 2 3 4 5 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 Organizasyonu 5

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 Organizasyonu 6

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. Örn: Yeni kaydı barındırabilecek büyüklükte olan ilk kayıt seçilir. 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 Organizasyonu 7

2. Best Fit Yaklaşımı Erişim Listesi boyuta göre sıralanır. Örn: Yeni kaydı barındırabilecek büyüklükte olan en küçük kayıt seçilir. 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 Organizasyonu 8

3. Worst Fit Yaklaşımı Erişim Listesi boyuta azalan şekilde sıralanır. Örn: 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. 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? Kütük Organizasyonu 9

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

Binary Search 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. Kütük Organizasyonu 11

Binary Search Kütük Organizasyonu 12

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 Organizasyonu 13

Örnek Anahtarlar Kayıt Numaraları (RRN) HARRISON 0 KELLOG 1 HARRIS 2 BELL 3 HARRISON 387 Eastern... KELLOG 17 Maple... HARRIS 4343 West... BELL 8912 Hill... Ana Bellek Disk Kütük Organizasyonu 14

Örnek (Devam) Anahtarlar Kayıt Numaraları (RRN) BELL 3 HARRIS 2 HARRISON 0 KELLOG 1 HARRISON 387 Eastern... KELLOG 17 Maple... HARRIS 4343 West... BELL 8912 Hill... Ana Bellekte anahtarlar üzerinde gerçekleştirilen sıralama Disk üzerinde herhangi bir değişiklik yok Kütük Organizasyonu 15

Örnek (Devam) Anahtarlar Kayıt Numaraları (RRN) BELL 3 HARRIS 2 HARRISON 0 KELLOG 1 BELL 8912 Hill... HARRIS 4343 West... HARRISON 387 Eastern... KELLOG 17 Maple... Sıralanmış yeni dosya oluşturulur ve öncekinin üzerine yazılır. Kütük Organizasyonu 16

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

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 Organizasyonu 18

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 Organizasyonu 19

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

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

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 Organizasyonu 22

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. Kütük Organizasyonu 23