Make your own free website on Tripod.com
 

Dosyalar ve Veri Tabanı Sistemi Temelleri Üzerine

Dosyalar (kütükler ya da 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:

1-Sıralı erişim: 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.

2-Doğrudan erişim: 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.