GELENEKSEL
DOSYA SİSTEMLERİ
Dosyalar
(kütükler yada files) aynı yapıya sahip ve birbirleri ile ilişki
içerisinde olan "kayıt"lar (records) topluluğudur. Kayıt
ise, yapılan işlemler sırasında ana belleğe yazılan veya ana
bellekten okunan veri birimidir. Bir kayıt içindeki ayrı ayrı
veri parçalarına da "alan" (field) adı verilir.
Örneğin
bir öğrenci bilgileri dosyasını ele alırsak, öğrencinin adı,
soyadı, numarası, aldığı dersler ve bu derslerden aldığı
notlar ayrı ayrı birer alandır. Bir öğrenciye ait bütün bu
alanlar bir araya gelerek öğrencinin kaydını oluşturmakta ve tüm
öğrencilere ait kayıtlar da bir araya gelerek öğrenci bilgileri
dosyasını oluşturmaktadır.
Dosya
yapısı için bir başka örnek de nüfus kütükleridir. Nüfus
kütükleri; ad, soyad, ana adı, baba adı, doğum tarihi, doğum
yeri gibi alanlar içeren kayıtlardan oluşurlar.
Dosyalar
çok büyük miktarlarda veri içerdiklerinden yan belleklerde
tutulurlar ve kullanılış amaçlarına göre de değişik
şekillerde düzenlenirler. Düzenleniş şekline ve kaydedildiği
yan belleğe (disk yada teyp gibi) bağlı olarak bir kütüğe genel
olarak iki değişik şekilde erişilir.
Sıralı
Erişimli Dosya Sistemleri
Bu
tür erişimde bilgilere daha önce belirlenen bir sıra izlenerek
birbiri ardı sıra ulaşılır. Sıralı erişim yönteminin en
büyük dezavantajı, herhangi bir bilgiye doğrudan ulaşmanın
mümkün olmamasıdır. Örneğin 500 kayıt bulunan bir dosyada
453. sırada
yer alan bir kayda ulaşmak için bu kayıttan önce yer alan, 452
adet kaydın okunarak atlanması zorunludur. Bu nedenle sıralı
erişim yöntemi genellikle aynı yapıdaki işlerin birleştirilerek
kümeler halinde yapıldığı (batch processing) uygulamalarda
kullanılır.
Yukarıda
örnek olarak sözünü ettiğim öğrenci bilgileri dosyası karne
hazırlama uygulamasında sıralı erişim yöntemi kullanılarak
oluşturulabilir. Çünkü bu uygulamada öğrenci kayıtlarının
öğrenci okul numaralarına göre sıralı olarak bir yan bellekte
tutulmaları ve bu kayıtların yan bellekten sırayla okunarak
karnelerin hazırlanması sıralı erişim yönteminin verimli olarak
kullanılabileceği bir uygulamadır.
Doğrudan
Erişimli Dosya Sistemleri
Bu
erişim yönteminde, ulaşılmak istenen herhangi bir bilgiye, diğer
kayıtlardan bağımsız olarak doğrudan ulaşmak mümkündür.
Ancak, bunun için her kaydı diğer kayıtlardan ayıran özel bir
tanımlayıcıya gerek duyulur. Bu özel tanımlayıcı
"anahtar" (key)
olarak adlandırılır. Böylelikle anahtar bilindiği zaman, diğer
kayıtlar incelenmeksizin ve kayıtların kaydediliş sırasıyla
ilgilenilmeksizin istenilen kayda doğrudan ulaşmak mümkündür.
Yine, öğrenci bilgileri dosyasını ele alacak olursak örneğin
öğrenci belgesi uygulamasında 500 öğrenciden 453 numaralı olana
ait bilgileri içeren belgeye ulaşmak ve bunu yazıcıdan almak
gerektiğinde anahtar alan olarak numarayı kullanmakla doğrudan
erişim yöntemi en etkili olan yöntemdir. Çünkü sıralı erişim
yönteminde 452 adet öğrenciye ait bilgiler incelendikten sonra
453. öğrencinin bilgilerine ulaşılması zaman almakta ve gereksiz
yere 452 adet kayıt incelenmiş olmaktadır.
Sonuç
olarak şunu söyleyebiliriz ki bir dosya içerisindeki tüm
bilgilerin değerlendirilip elden geçirilmesi gerektiğinde sıralı
erişim yöntemi, pek çok kayıt içerisinde sadece bir kayda ait
bilgilerin işlenmesi gerektiği durumlarda ise doğrudan erişim
yöntemi etkin olarak kullanılabilmektedir.
Bir
dosyaya erişim yöntemlerini belirleyen etmenlerden biri de dosyanın
düzenleniş şeklidir. Erişim yöntemleri ile de birlikte
değerlendirilecek şekilde dosyalar düzenlenişlerine göre: sıralı
(sequential) dosyalar ve dizinli (indexed) dosyalar olmak üzere
ikiye ayrılırlar. Sıralı dosyalar oluşturulurken, veriler
birbiri ardı sıra girilir ve işlenirken de yine ancak bu şekilde
işlenirler (sıralı erişim). En basit dosya yapısı olmakla
beraber oldukça sık kullanılırlar.
Dizinli
dosyalar ise, yapı olarak sıralı dosyalardan farklıdır.
Dosyanın, kayıtların anahtarlarına göre yan belleğin hangi
adresinde bulunduğunu gösteren bir dizini (index) vardır. Bu
dizin, yapı olarak bazı kitapların sonlarında yer alan index ile
aynıdır. Kullanılış amacı da kitaplardaki indexler gibidir.
Anahtarı bilinen bir kaydın bulunduğu yan bellek adresi bu
indexten öğrenilerek kayda doğrudan erişilir.
Dizinli
kütüklere doğrudan erişmek mümkün olduğu gibi, dizinde
kullanılan anahtarlara göre sıralı erişmek de mümkündür.
Örneğimizdeki öğrenci kütüğünü dizinli bir kütük olarak
yaratırsak, karne hazırlamak ve basmak istediğimizde sıralı
erişim yöntemini, bir öğrenciye ait bilgilere ulaşmak ve örneğin
bir öğrenci belgesi basmak istediğimizde ise doğrudan erişim
yöntemini kullanabiliriz.
Buraya
kadar ele aldığımız temel dosya yapıları veri tabanı dediğimiz
ve güncel olarak kullanılan uygulamalarda temel yapı taşı olarak
ele alınmaktadır. Buraya kadar bahsettiğim şekilde alanlar
kayıtları, kayıtlar dosyaları oluşturmaktadır. Dosyaların bir
araya gelmesi ile de veri tabanları oluşturulmaktadır. Veri tabanı
çok detaylı olarak hazırlanıp uygulanacak bir tasarımın ürünü
olarak uygulanan bir sistemdir. Bu da bilgisayar dünyasında veri
tabanı mimarisi olarak adlandırılır. Bu mimari yaklaşım,
temelde, aşağıda açıklanacak bilgiler çerçevesinde
gerçekleştirilir.
Bir
veri tabanı sistemi, birbiriyle kayıt (record) düzeyinde ilişkili
bulunan dosyaların herhangi bir uygulama için bir araya getirilmesi
olarak tanımlanabilir. Veri tabanı kavramı günümüzde çok
yaygın olarak kullanılmaktadır. Bu sistemler kullanılarak her
türlü şirketin, kurumun ve işletmenin bilgileri saklanıp
işlenebilmektedir. Örneğin bir hastanede tutulan hasta kayıtları
ve bunlarla ilgili çok değişik işlemler veri tabanı uygulamaları
ile gerçekleştirilebilmektedir. Örnek olarak verdiğimiz hasta
kayıtları çok değişik işlemlere sahip olabilir. Normal olarak
ücret ödeyerek gelen hastalar, sevkli olarak bir kurumdan gelen
hastalar, yeşil kartla gelen hastalar, gazi-dul-yetim durumuyla
gelen hastalar vb. olmak üzere akla gelebilecek her durumdaki hasta
düşünülerek hazırlanacak program aynı zamanda çok değişik
çıkış işlemleri de yapabilecek yetenekte olmalıdır. Örneğin
başka kuruma sevk olanlar, bunların takibi, ilaç alıp giden
hastalar, hastaneye yatırılan hastalar, olmayan ilaçlar için
eczaneye gönderilen hastalar vb. gibi durumları da kontrol
edebilecek bir program tasarlanması istenebilir. İşte bu ve buna
benzer bir çırpıda aklımıza gelmeyen pek çok durumu kontrol
ederek sonuca ulaştıran bir programın tasarımı veri tabanı
ortamında yapılabilir. Bundan başka pek çok değişik alan ve
konuyla ilgili olarak da veri tabanı ortamında yazılım
hazırlanabilir. Bugün artık pek çok kişi bilgisayarı
kullanmakta ve bu kullanım oranının bir kısmı bu uygulamayı
veri tabanı ortamında hazırlanmış programlarla yapmaktadır.
Veri
tabanı sistemi aşağıdaki şekil üzerinden detaylı olarak
anlaşılabilir. Şekilde görülen en üst bölüm kullanıcı ile
ilgili olan bölümdür. Temelde ise veri tabanı sistemi "veri
modeli" (data model) denilen kullanılacak bilgilerin modelinin
çıkarıldığı kısmı içermektedir. Nasıl ki bir terzi dikeceği
bir etek yada pantolon için önce model çizmekte ve çıkarmakta
daha sonra da kesim ve dikime geçmekte ise veri tabanı uygulaması
yapacak kişi de öncelikle kullanacağı bilgilerin modelini
çıkarmalıdır. Çıkarılan bu veri modeli uygulamanın
özelliklerine göre alt modellere ayrılarak kullanıcı ile
etkileşimi sağlayacak düzeye getirilmelidir. Örneğin bir
fabrikanın bilgilerinin kullanımında herkesin ulaşabileceği
bilgiler aynı değildir. Müdürün ulaşabileceği bilgiler ile
şefin ulaşabileceği bilgiler ve alt düzeyde yer alan bir
görevlinin ulaşabileceği bilgiler farklı farklıdır. Müdürün
bilip ulaştığı her türlü bilgiye alt düzeydeki bir görevlinin
de ulaşması söz konusu değildir. Bu yüzden uygulamada
kullanılacak işlemlerin özelliğine göre alt veri modelleri bu
örnek göz önüne alınarak düzenlenir. En sonda da kullanıcılar
yetkilerine göre sınflandırılıp gruplandırılarak kullanıcı
profilleri oluşturulur ve bu çerçevede her profildeki kullanıcı
yetki düzeyine uygun bilgilere ulaşabilir hale getirilir. Temelde
yer alan veri modeli kavramı çerçevesinde geliştirilen ve
uygulamaya sokulan ve kullanıcıların işleyeceği veriler de
fiziksel olarak diskler üzerinde saklanır.
(ALINTI)