Veri - Bilgi
Veri: Bilgiyi elde etmeye yarayan işlenmemiş ham malzemeye denir.
Bilgi: Şimdi bilinen ve gelecek zamanda verilecek olan kararlar için varolan gerçek bir değerdir ve anlamlı biçimde derlenen ve birleştirilen verilerden oluşur. Sözlük anlamı ‘gerçek’ olan veri kelimesinin tekil hali (datum) Latince bir kelimedir.
Dosyalama Sistemi
Bilgisayar ortamında verilerin tutulması, saklanması ve erişilmesinde günümüze kadar değişik yöntem ve yaklaşımlar kullanılmıştır. Veri Tabanı programları yokken verileri saklamak için programlama dillerinde sıralı (sequential) ve rastgele (random) dosyalama sistemleri kullanılırdı.
Verilerin bir merkezde tutulması zorunluluğu, verilerin artması, verilere aynı anda pek çok kullanıcı tarafından erişilme ihtiyacı gibi durumlar geleneksel yaklaşımı yetersiz hale getirmiştir.
Geleneksel yaklaşımın yetersizliği ve beraberinde getirdiği sorunlara alternatif olarak Geleneksel yaklaşımın yerini Veri Tabanı yaklaşımı almıştır.
Ancak günümüzde Dosyalama sistemi bazı küçük uygulamalarda veya büyük çaplı uygulamaların bir kısmında kullanılmaktadır.
Dosyalar (Files)
•Aynı yapıya sahip ve birbiriyle ilişki içinde olan kayıtlar (records) topluluğudur.
•Kayıt, yapılan işlemler sırasında anabelleğe yazılan veya okunan veri birimine denir.
•Bir kayıt içindeki anlamlı veri parçalarının her birine de alan (field) adı verilir.
•Dosyalar çok büyük miktarda veri içerdiklerinden yan belleklerde tutulur.
•Amaçlarına göre de değişik şekilde düzenlenirler.
•Düzenleniş şekline ve kaydedildiği belleğe bağlı olarak değişik erişimleri bulunur.
1-Sıralı (Sequential) Erişim
•Bu tür erişimde bilgiler daha önce belirtilen bir sıra izlenerek birbiri ardı sıra erişilir.
•Dezavantajı; Herhangi bir veriye doğrudan erişimin olmamasıdır.
•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. Öğrenci karneleri listeleme gibi..
2-Rastgele (Random) Erişim
•Bu erişim yönteminde ulaşılmak istenen herhangi bir veriye diğer kayıtlardan bağımsız olarak ulaşmak mümkündür.
•Bunun için de kayıtları birbirinden ayıran bir tanımlayıcıya-anahtara (key) gerek duyulur.
Karşılaştırma
•Sonuç olarak bir dosya içindeki tüm bilgilerin değerlendirilip elden geçirilmesi gerektiğinde sıralı erişim yöntemi, pek çok kayıt içinden sadece bir veya birkaç kayda ait bilgilerin işlenmesi gerektiğinde doğrudan erişim yöntemi daha etkindir.
Dosya düzenleniş türleri
•Dosyalar düzenleniş şekillerine göre genel olarak sıralı, dizinli (indexed) ve hesaba dayalı (hash) olarak üçe ayrılır.
•Sıralı olarak düzenlenmiş dosyalara yalnızca sıralı olarak erişilebilir.
•Dizinli dosyalarda dosyanın kendisi dışında bir dizin dosyası vardır. Bu dosyada anahtar alanın değeri ve karşılık gelen disk adresi yer alır. Böylece istenen kayda direk erişilebilir.
•Hesaba dayalı dosyalarda anahtar alanın değeri bir hesaplama algoritmasına verilmekte ve sonuçta ilgili disk adresi elde edilmektedir. Bu yöntem sayesinde de istenen kayda direk erişilebilir.
Veri Tabanı Sistemlerine Giriş
Veri tabanı sistemlerine geçmeden daha önceleri veri işlemleri dosyalar üzerinde yapılmaktaydı. Gelişen yazılım ve donanım teknolojileri sayesinde yetersiz kalan dosyaların yerine veri tabanı kullanılmaya başlanmıştır. Veri tabanı kullanımı sayesinde daha önce mümkün olmayan bir çok iş rahat bir şekilde yerine getirilmeye başlanmıştır.
VTYS (Veritaban Yönetim Sistemi) kullanılmadığı durumdaki yapı
Dosyaların kullanılmasında karşılaşılan problemlerden bazıları
•Verilerin tekrarlanması söz konusudur. (data redundancy)
•Her lokasyondaki veriler tutarlı (consistent) olmayabilir.
•İzin verilmemiş kişilerin dosyalara ulaşmalarını engellemek için etkin bir emniyet sistemi yoktur. (data security)
•Verinin çoklu kullanıcılı sistemlerde paylaşılma özelliği yoktur.
•Kayıtın uzunluğu değiştiğinde bu kayıtın bulunduğu dosyalara ulaşan programlar da ona göre değiştirilmelidir. (lack of flexibility)
•Verilerin işlenmesinin maliyeti çok yüksek olabilir.
VTYS kullanıldığı durumdaki yapı
Veri tabanı
Bir kurum veya kuruluşun birçok uygulamasında kullanılan, gereksiz yinelemelerden arınmış olarak, düzenli biçimlerde bilgisayar diskinde saklanan birbiriyle ilişkili veriler topluluğudur. Burada; “kurum ya da kuruluş ”, bir okul, üniversite, banka, bir üretim şirketi, hastane, devlet kuruluşu, vb. olabilir. “Birbiriyle ilişkili veriler” bir kuruluşun çalışabilmesi, işleyebilmesi için kullanılan çok çeşitli verilerdir.
Ticari bir şirket için müşteri bilgileri, satış bilgileri, ürün bilgileri, ödeme bilgileri, vb., okul için öğrenci bilgileri, açılan dersler, kimlerin kaydolduğu, öğretmen bilgileri, boş ve dolu derslikler, sınav tarihleri, vb., hastane için hasta bilgileri, doktor bilgileri, yatakların doluluk boşluğu, teşhis-tedavi bilgileri, mali bilgileri, vb …
Veritabanları gerçek dünyada var olan birbirleriyle ilişkili nesneleri (örn: öğrenciler, dersler) ve ilişkileri (örn: Ali BTSP301’i alıyor) modellerler.
VTYS ve VTS
•Veri Tabanı Yönetim Sistemi (VTYS) – DataBase Management System (DBMS): Genel amaçlı bir yazılım sistemi olup kullanıcıların değişik uygulamalar için veri tabanlarını tanımlanması, düzenlemesi, işlemesi, bakımını yapması, yedeğini alması, performansına bakması gibi pek çok işleme olanak verir.
•Veri Tabanı Yönetim Sistemi, kullanıcı ile Veri Tabanı arasında bir arabirim oluşturur ve Veri Tabanına erişimi sağlar.
•Veri tabanı ve veri tabanı yönetim sisteminin ikisine birden Veri Tabanı Sistemi denir.
VTS, VTYS ve VT kavramlarının şekilsel gösterimi
VTYS’nin Kullanım Nedenleri
•Gereksiz fazlalığın kontrolü: Aynı verilerin birden fazla kayıt edilmesi, kayıt alanının boşa gitmesi ve tutarsızlığa sebep olur.
•Verilerin paylaşımı: Çok sayıda kullanıcının VT’na eş zamanlı olarak ulaşmasını sağlar. Bunun için VTYS eş zaman kontrol yazılımını içerir.
•İzinsiz ulaşımların engellenmesi: VTYS emniyet ve kimlik kontrolü alt sistemleri ile izinsiz ulaşımların engellenmesini sağlar.
•Çoklu arayüzlerin sağlanması: Sorgu dilleri arayüzleri, doğal dillerin arayüzleri, vb. arayüzleri sağlar.
•Veriler arasındaki karmaşık ilişkilerin sunumu: Gelişen VTYS teknolojileri ile karmaşık ilişkilerin sunumu da mümkün olabilmektedir.
•Doğruluk kıstaslarının sağlanması: Bunun için bazı özel doğruluk kıstaslarının VTYS tarafından sağlanabilmesi için önlemler alınmalıdır. Her kayıtın eşsiz olmasının garanti altına alınması bunlardan biridir.
•Ekkayıt ve Kurtarma: Bir VTYS veritabanını donanım ve yazılım hatalarından koruyabilmeli ve kayıtları başka bir alanda ek olarak kaydedebilmelidir. VTYS’lerin birçoğunda gerekli yardımcı unsurlar mevcuttur.
•Veri bağımsızlığı ve etkin ulaşımı: Uygulamaların verilerin nasıl yapılandığından ve tutulduğundan bağımsız olması gerekli bir özelliktir.
•Standart SQL dili kullanıldığı için bir standart vardır.
•Veri yönetiminin tek tip olması: Tek bir noktadan VTY (Veri Tabanı Yöneticisi) – DBA (Data Base Administrator) tarafından yönetilebilmesi, veri kontrolünü kolaylaştırır.
Veri Modeli
•Veri modeli, veritabanının yapısını tanımlayabilmek için kullanılan kavramlar kümesidir. Veritabanının modeli; veri tipleri (data types), işlemler (operations) ve kısıtlamalardan (constraints) oluşur.
Veri Modellerinin Sınıflandırılması
•Yüksek Seviyeli Veri Modelleri: Bu modeller varlıklar(entities), özellikler(attributes) ve ilişkiler(relationships) gibi kavramlar kullanırlar. Bu modellere örnek; ER, IFO, SDM, v.b.
•Mantıksal Veri Modelleri: Bu modeldeki kavramlar verilerin bilgisayarda fiziksel olarak organize olma biçimine çok benzerler. Bunlara örnekler; ilişkisel, ağ, seviyeli, nesneye-yönelik veri modelleridir.
•Fiziksel Veri Modelleri: Bu modeller verilerin bilgisayarda nasıl tutulduklarını detaylı olarak gösteren kavramlara sahiptirler. Bunlar kayıtların biçimiyle, kayıtların sırasıyla, ulaşma yollarıyla ilgili bilgiler içerirler.
VT Temel Nesnesi - TABLO
•Tablo, VT içinde verilerin tutulduğu kısımdır. Satır ve Sütunlardan oluşur.
•Satır, bir tablo içindeki her bir kaydı içerir.
•Sütun, her bir kayda ait bir özelliği içerir. Farklı veri tiplerinde olabilir.
Veri Tabanı Tanımı (Şema)
•Şema verilerin yapısını gösterir.
•Örnek:
Öğrenci ilişkisinin (tablosunun) şeması
Veritabanı örneği
•Veritabanındaki o anda aktif bulunan veriyi gösterir.
•Örnek:
ÖĞRENCİ ilişkisinin örnek kayıtları (tuple'ları)
•Veritabanı şeması sık değişmez.
•Veritabanı örneği, veritabanının her güncelleşmesi işleminde değişir.
Üç seviyeli VT yapısı
Veri Bağımsızlığı
•VT'nin üç seviyeli yapısıyla sağlanabilmiştir. Herhangi bir seviyedeki şemada bir değişiklik yapılırsa bir üst seviyedeki şemada değişiklik yapılmasına gerek yoktur. Sadece bu iki seviye arasındaki uyumlaştırmayı değiştirmemiz yeterlidir.
Dış şema
•Bir veri tabanı kullanıcısı için, veri tabanı dış şemadır.
•Kullanıcı dış şemayı görür ve sağlanan yazılım olanakları ile dış şemada yetkili olduğu işlemleri gerçekleştirir.
•Kullanıcıların çoğu kavramsal ve iç şemadan habersizdir, verilerin dış şemaya uygun biçimde saklandığını düşünür.
•Oysa dış ve kavramsal şemalar tümüyle mantıksaldır.
•Kullanıcı tarafından dış şemaya göre oluşturulacak isteklerin iç şemada karşılanması gerekir.
•Bunun için de kullanıcı tarafından dış şemaya göre tanımlanan verilerin önce kavramsal şemadaki, sonra da iç şemadaki karşılıklarının belirlenmesi ve kullanıcı isteğinin fiziksel veri tabanı üzerinde gerçekleştirilmesi gerekir.
•Bazı yönleriyle dış şema kavramsal şemadan daha soyut olabilir.
–Fiziksel veri tabanında ve kavramsal şemada yer almayan, ancak kavramsal şemadaki verilerden türetilebilen verilere dış şemada yer verilebilir.
–Örneğin, kavramsal şemada kişilerin doğum tarihleri yer alırken, dış şemada kişilerin yaşlarına yer verilebilir.
VT'nin genel görünüşü ve dışsal görünüşleri
•VTYS veri tabanlarında tutarsızlıkların oluşmayacağını garanti altına almaya çalışır ve kullanıcılara sanki tek kullanıcılı sistemi kullanıyorlarmış intibaını verir.
•Eş zamanlı (concurrent) gerçekleştirim iyi bir VTYS performansı için temeldir. Diske erişim VTYS uygulamalarında çok sık gereklidir ve dolaylı olarak yavaştır. Bundan dolayı merkezi işlem birimini bir çok kullanıcı programında eş zamanlı olarak kullanabilmek performans bakımından önemlidir.
Veri Tabanı Dilleri
•Veri Tanımı Dilleri (VTD, DDL): Bu diller VT’nin hem kavramsal hem de içsel şemasının tanımı için kullanılmaktadırlar.
•Depolama Tanımlama Dili(DTD): İçsel şemanın tanımı için kullanılır.
•Gözlem Tanımlama Dili(GTD): Kullanıcıların gözlemlerini belirlemekte kullanıldığı gibi, gerçek bir üç-seviyeli yapı söz konusu ise bu dışsal şemaları kavramsala dönüştürmede de kullanılırlar.
Veri İşleme Dilleri(VİD, DML): VT’nin işlenmesinde kullanılırlar.
•1. Yüksek Seviyeli VİD: Tek başına kullanılan bu tür diller VT’nin karmaşık işlemlerini bütün olarak belirtebilmektedir. Bunlar ya direk komut olarak girilebilmekte ya da genel amaçlı bir programlama diline gömülerek tanımlanabilmektedir.
•2. Düşük Seviyeli VİD: Bunlar genel amaçlı bir programlama diline gömülerek tanımlanırlar. VT'den tek tek kayıtları alıp getirirler ve her kayıt ayrı ayrı işlem görür.
•Eğer VİD bir genel amaçlı dilin içine yerleştirilmişse buna veri alt dili (data sublanguage) adı verilir. Eğer VİD tek başına birbirini etkileyen (interactive) biçimde kullanılmışsa buna sorgu dili (query language) adı verilir.
Veri Tanımlama Dili (VTD)
•Veri tabanı tanımlarını VTYS'ye iletmek için kullanılan biçimsel dile Veri Tanımlama Dili (DDL: Data Definition Language) adı verilir.
•Veri Tanımlama Dili kullanılarak oluşturulan veri tabanı tanımları, VTYS'nin Veri Tanımlama Dili Derleyicisi olarak adlandırılabilecek bir bileşeni tarafından çözümlenir, varsa eksik ve yanlışları bulunarak kullanıcıya iletilir.
•Yanlışlardan arınmış veri tabanı tanımları VTYS tarafından uygun yapılara dönüştürülerek saklanır.
•Veri tabanı yaklaşımında veri tanımlama ile veriler üzerindeki uygulama işlemleri birbirinden tamamen ayrılmıştır.
•Veri tanımlama ve daha önce yapılmış tanımları değiştirme yetkisi yalnız Veri Tabanı Sorumlusu (Data Base Administrator) olarak adlandırılan ve veri tabanının tümünden sorumlu olan kişi ya da kişilere aittir.
•Veri tabanı üzerinde işlem yapan, uygulamaları gerçekleştiren kullanıcıların ise veri tanımlama ya da mevcut tanımları değiştirme yetkisi yoktur.
•VTD ile yapılan tanımlarda veri tabanı tanımları içinde yer alan en önemli tanımlar şunlardır:
1.Mantıksal düzeyde yapılan düzenlemeler oluşturulan yapılar ve her yapıda hangi verilerin yer aldığı.
2.Her verinin türü, uzunluğu, varsa varsayılan değeri ve diğer özellikleri.
3.Veriler arası ilişkiler ve her türlü kısıtlamalar.
4.Fiziksel veri yapıları ile ilgili tercihler ve parametreler.
5.Kullanıcı tanımları ve kullanıcıların hangi veriler üzerinde hangi işlemleri yapmaya yetkili olduklarına ilişkin tanımlar.
Sorgu İşleyicisi
•VTYS'nin, sorguların işlenmesi ile ilgili görevleri gerçekleştiren bileşenine Sorgu İşleyici (Query Processor) adı verilir.
•Sorgu işleyicinin görevleri:
–Sorgunun sözdizimsel ve anlamsal özümlemesini yapmak.
–Kullanıcının verilen işlemi yapmaya yetkili olup olmadığını denetlemek.
–Sorguyu işletmek için kullanılabilecek algoritmaları (işletim senaryolarını) belirlemek ve “Query Optimizer” alt bileşeni yardımıyla en iyisini seçmek.
–Sorgunun işletimini gerçekleştirdikten sonra yanıtını oluşturup kullanıcıya iletmek.
VTYS Programlama Dilleri Arayüzleri
VT işlemleri için programcı arayüzleri :
•Gömülü yaklaşım: örn. gömülü SQL (C,
C++, Visual Basic vb.), SQLJ (for Java)
•Procedure Call yaklaşımı: örn. Java için JDBC,
diğer prog.dilleri için ODBC.
•Veri tabanı programlama dilleri yaklaşımı:
Örn. ORACLE için PL/SQL, SQL komutlarını temel alan bir programlama dilidir.
Veri Tabanı Sistem Araçları
Bazı fonksiyonları gerçekleştirmek için VTYS’ler birtakım araçlar sunar. Örneğin :
•Dosyalardaki veriyi veritabanına aktarmayı sağlayan araçlar. Veri dönüşüm araçlarını içerirler.
•Periyodik olarak veritabanı yedeğini almayı sağlayan araçlar.
•Rapor üreten araçlar.
•Performans izleme araçları.
•Kullanıcı izleme, veri sıkıştırma vb. araçları
VTYS’lerin Sınıflandırılması
•Kullanılan veri modeline bağlı olarak :
–Geleneksel: Relational (İlişkisel), Network (Ağ), Hierarchical (Seviyeli).
–Yenilikçi: Object-oriented (Nesne yönelimli), Object-relational (Nesne-İlişkisel).
•Diğer sınıflamalar :
–Tek-kullanıcılı (tipik olarak kişisel bilgisayarlar ile kullanılır) ve çok-kullanıcılı (çoğu VTYS’ler).
–Merkezi (Tek bir VT bir bilgisayar üzerinde) ve dağıtık (çok sayıda VT çok sayıda bilgisayar üzerinde)
Merkezi VTYS Mimarileri
•VTYS yazılımını, uygulama programlarını, kullanıcı arayüz yazılımını tek bir sistemde birleştirir.
•Kullanıcı, uzak bir terminal aracılığıyla sisteme bağlanır, ancak tüm işlemler merkezi tarafta gerçekleştirilir.
Dağıtık VTYS Mimarileri
•Homojen dağıtık VTYS’ler
•Heterojen dağıtık VTYS’ler
•Dağıtık VT sistemleri günümüzde istemci-sunucu temelli VT sistemlerine dönüşmüşlerdir, çünkü:
–Tümden dağıtık ortamı desteklemek yerine, her biri bir istemci kümesini destekleyen belli sayıda VT sunucusu bulunmaktadır.
VTYS maliyetleri
•Maliyet aralığı: Açık kaynak kodlu ücretsiz sistemlerden milyon dolarlık maliyetli sistemlere kadar
•Ücretsiz ilişkisel VTYS’lere örnekler: MySQL, PostgreSQL
•Ticari VTYS’ler ilave özelleştirilmiş ve genellikle ayrıca ücretlendirilen modüller içerirler.
•Farklı lisanslama seçenekleri: toplam kullanıcı sayısına göre, aynı anda sisteme bağlı maksimum kullanıcı sayısına göre (seat license), vb.