VERİTABANI SİSTEMLERİ - Ünite 1: Veritabanı Sistemlerinin Temelleri Özeti :
PAYLAŞ:Ünite 1: Veritabanı Sistemlerinin Temelleri
Giriş
İşletmelerin faaliyetlerini düzenli ve etkin bir biçimde yerine getirebilmelerinde hayati bir öneme sahip olan bilginin zamanında elde edilebilmesi ve ilgili kişi ve birimlere ihtiyaç duyulduğu anda iletilebilmesi ise bilgi sistemleri aracılığıyla gerçekleştirilir. Bilgi sistemleri; ilgili verilerin toplanması, bu veriler üzerinde birtakım işlemler uygulanarak verilerin yararlı bilgilere dönüştürülmesi ve ilgili kişi ve birimlere iletilmesini, belirli bir düzen içinde gerçekleştiren sistemlerdir. Veritabanı sistemleri de kısaca veri kaynaklarının yönetiminden sorumlu sistemlerdir.
Veri Tabanının Tarihçesi: 1960’lı yılların başında Charles Bachman tarafından IDS (Integrated Data StoreBütünleştirilmiş Veri Depolama) adıyla ilk genel amaçlı veritabanı yönetim sistemi geliştirilmiştir. 1960’ların sonunda ise IBM tarafından IMS (Information Management System - Bilgi Yönetim Sistemi) adıyla ilk ticari VTYS (Veritabanı Yönetim Sistemi) geliştirilmiş ve bu yapı hiyerarşik veri modeline temel teşkil etmiştir (Vural ve Sağıroğlu, 2010, s.72).
1970’ler: 1974 ve 1977 yılları arasında iki önemli ilişkisel veritabanı sistemi prototipi oluşturulmuştur. Bunlardan biri UBC’de geliştirilen Ingres, diğeri ise IBM San Jose’de oluşturulan System R’dir. Ingres, QUEL diye bilinen sorgulama dili olarak kullanılmış ve Ingres Corp., MS SQL Server, Sybase, Wang’s PACE, ve Britton-Lee gibi sistemlerin oluşumuna öncülük etmiştir. Diğer yandan System R, SEQUEL sorgulama dilini kullanmış ve SQL/DS, DB2, Allbase, Oracle, ve Non-Stop SQL’in gelişimine katkıda bulunmuştur. Ayrıca, İlişkisel Veritabanı Yönetim Sistemi (RDBMS) bu dönemde bilinen bir terim hâline gelmiştir.
1980’ler: Yapılandırılmış Sorgu Dili (SQL) standart sorgu dili hâline gelmiştir. Buna paralel olarak ilişkisel veritabanı sistemleri, bilgisayar satışlarındaki hızlı yükselişin veritabanı piyasasını canlandırmasıyla ticari bir başarıya dönüşmüştür. Bu da ağ ve hiyerarşik veritabanı modellerinin popülaritesinde büyük bir düşüşe yol açmıştır. Yine bu yıllarda DB2, IBM’in popüler veritabanı ürünü olmuştur. IBM PC’nin tanıtımı da birçok yeni veritabanı şirketinin kuruluşuna ve PARADOX, RBASE 5000, RIM, Dbase III ve IV, OS/2 Database Manager ve Watcom SQL gibi ürünlerin gelişimine yol açmıştır.
1990’lar: 1990’ların başında veritabanı endüstrisinde yaşanan kriz nedeniyle bu sektörde varlığını sürdüren şirketler krizi fırsat bilerek karmaşık veritabanı ürünlerini yüksek fiyatlarla satabilmişlerdir. Bu sıralarda, Oracle Developer, PowerBuilder, VB gibi uygulama geliştirme araçları piyasaya sunulmuştur. Ayrıca Access programı da 1990’lı yılların başında piyasaya sürülmüştir. Yine bu dönemde Nesne Veritabanı Yönetim Sistemleri (ODBMS) için prototipler de geliştirilmiştir. 1990’ların ortalarında internetin kullanılmaya başlanması veritabanı endüstrisinde hızlı bir büyümeye yol açmıştır.
2000’ler: Internet endüstrisi 2000’lerin başında bir düşüş yaşamasına rağmen veritabanı uygulamaları büyümeye devam etmiştir. Web tabanlı işletmelerin artması ve kullanımlarının yaygınlaşması ile veritabanı yönetim sistemlerinin önemi giderek artmaya devam etmekte ve yeni uygulamaların geliştirilmesine neden olmaktadır. Günümüzde, veritabanı yönetim sistemi yazılımlarında lider kabul edilen üç işletme Microsoft, IBM ve Oracle olarak sıralanmaktadır.
Veritabanına İlişkin Temel Kavramlar
Veri ham gözlemler, işlenmemiş gerçekler ya da izlenimlerdir. Bilgi ise yalın tanımıyla verinin işlenmiş ve karar verme sürecine destek olacak duruma dönüştürülmüş biçimidir.
Veritabanı , (database) herhangi bir konuda birbiriyle ilişkili olan ve amaca uygun olarak düzenlenmiş, mantıksal ve fiziksel olarak tanımlanmış veriler bütünüdür. Bununla birlikte her düzenli veri topluluğunu veritabanı olarak tanımlamak da doğru değildir. Bu nedenle veritabanının özelliklerinin sıralanması faydalı olacaktır.
- Veritabanı herhangi bir kurumda birden fazla uygulamada ortak olarak kullanılabilen verilerden oluşur.
- Veritabanında sürekli niteliği olan veriler bulunur. Buna göre, girdi ya da çıktı verisi olan ya da kurum için sürekli bir anlam ifade etmeyen geçici veriler veritabanında yer almaz.
- Veritabanı, ortak kullanılan verilerin tekrarlanmasına izin vermeden çok amaçlı kullanılmasına olanak verir.
- Veritabanında saklanan veriler durağan nitelikte değişmez veriler değildir. Ekleme, silme ya da güncelleme işlemleri ile veritabanındaki veriler değiştirilebilir (Yarımağan, 2000, s.1).
Veritabanı Yönetim Sistemi (VTYS-Database Management System): Veritabanı tanımlamak, veritabanı oluşturmak, veritabanında işlem yapmak, veritabanının farklı kullanıcı yetkilerini belirlemek, veritabanının bakımını ve yedeklemesini yapmak için geliştirilmiş programlar bütünüdür.
Veritabanı Tanımlamak: Veritabanında yer alacak verinin adı, tipi, uzunluğu gibi veri yapıları ve özelliklerinin belirlenmesidir.
Veritabanı Oluşturmak: Veritabanını yaratma ve veriyi depolama sürecidir. Verilerin depolanacağı fiziksel bellek alanının belirlenmesi ve verilerin bu alana aktarılmasını içerir.
Veritabanında İşlem Yapmak: Veritabanını izleme, veriler üzerinde sorgulama yapma, veritabanında gerekli olan değişiklikleri yaparak veritabanını güncelleme ve verilerden rapor elde etme işlevlerini içerir.
Veritabanı ve veritabanı yönetim sisteminin birlikte oluşturduğu bütün ise veritabanı sistemi olarak ifade edilir.
Geçmişten beri veriye erişim amacıyla farklı yaklaşımlar kullanılmıştır. Bu yaklaşımlardan ikisi; sıralı erişim ve doğrudan erişim biçimindedir. Sıralı erişimde , istenilen veriye ulaşılıncaya kadar ilgili dosyadaki tüm verilerin sırayla okunması gerekir. Doğrudan erişimde , sıralı erişimin aksine istenilen veriye ulaşabilmek için o veriye kadar olan diğer tüm verilerin okunması gerekmemektedir.
Geleneksel Dosya Sistemleri ve Veritabanı Yönetim Sistemleri
Bilgisayar tabanlı bilgi sistemleri kapsamında kullanılan ve farklı uygulamalar tarafından paylaşılan ortak verilerin düzenlenmesi, saklanması ve kullanılması amacına yönelik iki farklı yaklaşım vardır:
- Geleneksel dosya sistemi
- Veritabanı yönetim sistemi
Geleneksel dosya sisteminin sakıncaları:
- Veri tekrarı ve veri tutarsızlığına yol açar.
- Veri paylaşımına olanak vermez.
- Uygulamalarda ihtiyaç duyulan değişikliklerin gerçekleştirilebilmesi için uzmanlık bilgisi gerektirir.
- İstenilen veriye ulaşmada güçlükler bulunur.
- Verilerin güvenliği ve gizliliği konusunda sorun yaşanır.
- Veriler ve uygulamalarla ilgili belirli bir standart yoktur.
- Verileri yedekleme ve kurtarma konusunda güçlükler yaşanır.
Veritabanı yönetim sisteminin üstünlükleri:
- Veri tekrarı ve veri tutarsızlığını önler.
- Veri paylaşımına olanak verir.
- Uzmanlık bilgisine ihtiyaç duyulmayacak derecede kullanım kolaylığı sağlar.
- İhtiyaç duyulan veriye, tanımlanmış kullanıcı yetkileri kapsamında kolaylıkla erişilmesini sağlar.
- Veri güvenliği ve gizliliğini güçlü bir biçimde yerine getirir.
- Veriler ve uygulamalarla ilgili standart yapı ve kuralların olması kullanım kolaylığı sağlar.
- Verileri yedekleme ve kurtarma konusunda kolaylık sağlayan programlar barındırır.
Veritabanı Yönetim Sistemlerinin Avantajları
Gereksiz Veri Tekrarı ve Veri Tutarsızlığının Önlenmesi: Veritabanı yönetim sistemlerinde ise ilgili kurumda kullanılan bilgi sistemi bir bütün olarak düşünülmektedir. Buna göre farklı alt sistemlerin ihtiyaç duyacağı tüm veriler tek bir merkezde toplanarak ihtiyaç duyan her birimin istediği veriye bu merkezden ulaşması sağlanır. Böylece birden çok uygulamada kullanılan ortak verilerin tekrar edilmesinin önüne geçilir.
Veri Bütünlüğünün Sağlanması: Veri bütünlüğü, veritabanında yer alan bir verinin farklı uygulamalarda kullanımı sözkonusu olduğunda veri üzerinde yapılacak bir değişimin verinin kullanıldığı diğer uygulamalara da yansıtılması anlamına gelir.
Veri Paylaşımının Sağlanması: Veritabanı yönetim sistemlerinde ise sunucu/istemci mimarisi kullanılarak veriler tek bir merkezden (sunucu bilgiyasar), ağ üzerinde yer alan ve erişim yetkisi olan tüm kullanıcılara (istemci bilgisayarlar) aynı anda veriye erişme olanağı sunar. Bu durum verinin aynı anda birçok kullanıcı tarafından paylaşılması anlamına gelir. Verilerin ortak paylaşımı veritabanı yönetim sistemi yaklaşımının temel amaçlarından biridir.
Kullanımda Üst Düzey Uzmanlık Gerektirmemesi: VTSY’ler kullanıcıları verilerin saklanması için bilgisayar belleklerinde oluşturulan karmaşık fiziksel yapılarla ilgilenmek zorunda bırakmayıp, yalnızca ilgilendikleri verileri içeren basit mantıksal yapıları görmesine olanak sağlar. VTSY’ler kullanıcılara veritabanı uygulamalarını kolaylıkla gerçekleştirebilmeleri için sorgu dili gibi kullanımı basit olanaklar sunar.
Verilerin Gizliliğinin ve Güvenliğinin Sağlanması: Veritabanı yönetim sistemlerinde, veritabanı tasarlanır ve oluşturulurken veritabanı kullanıcılarının kimler olacağı ve hangi yetkilere sahip olacağı da belirlenir. Kullanıcı grupları ve yetkileri ile ilgili tanımlar veritabanındaki diğer tanımlarla birlikte saklanır. Herhangi bir kullanıcı veritabanı üzerinde işlem yapmak istediğinde, veritabanı öncelikle kullanıcının yapmak istediği işleme ilişkin yetkisinin olup olmadığını kontrol eder.
Standart Yapı ve Kuralların Uygulanabilir Olması: VTSY’lerde ise merkezi bir kontrol sistemi bulunur. VTSY’lerin yapısal özellikleri ve veritabanı sorumlusunun varlığı veriler ve veritabanı üzerinde belirli standartların oluşturulması ve uygulanabilmesini olanaklı kılar. Bu standartlar verinin yapısı, gösterim biçimi, adlandırılması, belgelenmesi ile ilgili yapısal standartlar olabileceği gibi kurum içi, kurumlar arası, ulusal ya da uluslararası düzeyde belirlenmiş kurallar biçiminde de olabilir. Standartların varlığı, veritabanı yapısını anlama ve kullanma açılarından büyük kolaylık sağlamanın yanısıra farklı sistemler arasında veri alışverişi için de çok önemli bir ihtiyaçtır.
Veritabanı Kullanıcıları
Veritabanı Sorumluları:
Veritabanı Yöneticisi: Veritabanı yöneticisinin (database administrator) veritabanına erişim yetkilerini belirleme, veritabanı kullanımının düzenlenmesi ve izlenmesini sağlama, ihtiyaç duyulan yazılım ve donanım kaynaklarını edinme biçiminde sıralanan sorumlulukları vardır.
Veritabanı Tasarımcısı: Veritabanı tasarımcısı (database designer) veritabanında saklanacak olan verilerin tanımlanmasından ve bu verilerin depolanması ve gösterilmesi için gerekli olan uygun yapıların seçilmesinden sorumludur.
Veritabanı yöneticisi ya da veritabanı tasarımcısı biçiminde ayrım yapmaksızın, veritabanı sorumlularının yerine getirdikleri temel görevler aşağıdaki gibi özetlenebilir:
- Veritabanı tasarımını yapma
- Bütünlük kısıtlamalarını belirleyip tanımlama
- Veritabanı kullanım yetkilerini tanımlama
- Veritabanı güvenliğini sağlama
- Veritabanının işletimini izleme ve sürekliliğini sağlama
- Güncelleme ihtiyaçlarına cevap verebilme
- Veritabanından beklenen performansı sağlama
Son Kullanıcılar:
- Standart Kullanıcılar: Veritabanına nadiren erişim yapan fakat her seferinde farklı bilgi ihtiyacı olabilen kullanıcılardır.
- Sıradan ya da Parametrik Kullanıcılar: Bu kullanıcıların temel iş fonksiyonları, veritabanı üzerinde sürekli bir sorgulama ve güncelleme yapmalarını gerektirir. Standart (önceden belirlenmiş) sorgu ve güncelleme yaparlar.
- Gelişmiş Kullanıcılar: VTYS’nin sağladığı özellikler yardımıyla ayrıntılı olarak belirledikleri karmaşık gereksinimlerini karşılamak amacıyla veritabanını kullanan gruptur.
- Bağımsız Kullanıcılar: Bu kullanıcılar menü kullanımı ya da araç çubukları gibi grafiksel ögeler yardımıyla kullanım kolaylığı sağlayan hazır paket programlarını kullanarak kişisel veritabanlarının sürekliliğini sağlar.
Sistem Analistleri ve Uygulama Programcıları: Sistem analisti son kullanıcıların, özellikle de sıradan son kullanıcıların gereksinimlerini belirleyen ve standart işlemler yoluyla bu gereksinimleri karşılayabilecek ayrıntıları belirleyen kişi ya da kişilerdir. Uygulama programcıları ise sistem analisti tarafından belirlenen ayrıntıları program hâline getiren ve daha sonra test eden, hataları ayıklayan, belgeleyen ve kaydedilmiş işlemler olarak sürekliliğini sağlayan kişilerdir.
Veritabanı Yönetim Sistemlerinin Mimarisi
Veri Modelleri: Veritabanı yaklaşımı veri soyutlama özelliği ile farklı kullanıcıların verileri tercih ettikleri ayrıntı seviyesinde algılamalarına, gereksiz ayrıntıları görmemelerine olanak sağlar. Temel veri modeli işlemleri; veritabanı üzerinde ekleme, silme, değiştirme, veriyi geri çağırma gibi genel işlemleri içerir.
Veri Modellerinin Sınıflandırılması: Fiziksel veri modelleri, kayıt biçimi, kayıt sırası ve erişim yolu bilgilerini göstermek suretiyle verilerin bilgisayarda dosya olarak nasıl saklandığını belirler.
Şemalar, Örnekler ve Veritabanının Durumu: Veritabanının herhangi bir veri modeliyle tanımlanması veritabanı şeması (database schema) olarak adlandırılır. Sözkonusu bu şema veritabanının tasarlanması sürecinde oluşturulur ve sık sık değişiklik göstermez. Veri modellerinin çoğunda şemaların bir diyagram olarak gösterilebilmesi amacıyla kullanılan belirli kuralları vardır. Şema görünümleri şema diyagramı (schema diagram) olarak adlandırılır. Şema diyagramları şemaların yalnızca bazı yönlerini gösterir. Diğer yönler diyagramdan belirlenemez.
Üç Şema Mimarisi: Veritabanı yaklaşımının önemli karakteristikleri aşağıdaki biçimde sıralanabilir:
- Veritabanı tanımlarını (şema) depolamak için kendi kendine tanım yapabilmeyi sağlayan bir katalog kullanır.
- Veri ve program izolasyonunu sağlar (program – veri bağımsızlığı; program – işlem bağımsızlığı)
- Çoklu kullanıcıyı destekler.
Üç şema mimarisinin amacı kullanıcı uygulamalarını fiziksel veritabanından ayırt etmektir. Bu mimaride şemalar izleyen üç düzeyde tanımlanır:
- İçsel (fiziksel) düzey (internal level)
- Kavramsal düzey (conceptual level)
- Dışsal (görünüm) düzey (external level)
Veri Bağımsızlığı: Veri bağımsızlığı , herhangi bir düzeydeki şema değiştiğinde bir üst düzeydeki şemanın değişmeden kalmasını bununla birlikte iki düzey arasındaki eşleştirmelerin değişmesini sağlar. Bu eşleştirme sonucunda bir üst düzeydeki şemaya başvuran uygulama programları değişiklik ihtiyacı göstermez.
Veri bağımsızlığı iki başlıkta ele alınır:
- Mantıksal veri bağımsızlığı (logical data independence),
- Fiziksel veri bağımsızlığı (physical data independence),
Veritabanı Yönetim Sistemlerinde Kullanılan Diller: Veritabanı tanımları Veri Tanımlama Dili kullanılarak oluşturulur. Daha sonra bu tanımlar Veri Tanımlama Dili Derleyicisi kullanılarak çözümlenir ve gerektiğinde kullanıcıya iletilmek üzere VTYS tarafından uygun yapılara dönüştürülerek saklanır.
Veritabanı Yönetim Sistemlerinin Bileşen Modülleri:
Veritabanı ve VTYS kataloğu genellikle disk üzerinde depolanır. Diske erişim, öncelikle disk üzerinde okuma/yazma işlemlerini programlayan işletim sistemi tarafından kontrol edilir. Çoğu VTYS’nin, diskin okunup/yazılmasını programlamak için kendi ara bellek yönetim modülü (buffer management module) bulunur. Böylece diskin okuma/yazma görevini azaltan bu modül veritabanı performansını dikkate değer ölçüde arttırır. VTYS’nin daha yüksek düzey modülü olan depolanmış veri yöneticisi (stored data manager) ise veritabanının ya da kataloğun bir bölümü olsun ya da olmasın, diske depolanmış VTYS bilgilerine erişimi kontrol eder(S:19, Şekil 1.3).
Veritabanı Türleri
Hiyerarşik Veritabanı: Bu tür veritabanlarında kullanılan veri modelinde kayıtlar, ilişkileri temsil eden ve ağaç yapısına benzeyen kök ve dallar biçiminde hiyerarşik bir yapıda oluşturulur. Bu yapı, başlangıç noktası ağacın kökü, bağlantılı kılınacak noktalar dallar ve ana dallara bağlı alt dallar olarak düşünülebilen bir yapı biçimindedir. Buna göre veriler arasındaki ilişkilerde hiyerarşinin üst bölümünde olan dallar alt bölümde birden çok dal ile bağlantılı olabilirken alt bölümünde olan dallar üstte kalan dallara yalnızca tek bir noktadan bağlantılı olabilirler. Bu nedenle bu yapıda ilişkiler ebeveyn-çocuk (bir ebeveynin birden fazla çocuğu olabilirken, bir çocuğun yalnızca bir ebeveyni olması) ilişkisine benzetilir.
Ağ Veritabanı: Hiyerarşik veri modelindeki ebeveynçocuk ilişkisinin yetersizliği ağ veri modeliyle giderilmeye çalışılmıştır. Buna göre her bağlantı noktası düğüm olarak ifade edilirse hiyerarşik yapıdan farklı olarak ağ veri modelinde, her düğümün birden fazla ebeveyn ve birden fazla çocuk düğümü ile bağlantısı olabilir.
İlişkisel Veritabanı: Bu yapıda ilk iki veri modelinden farklı olarak birden çok ilişki biçimi kullanılabilir. Günümüzde kullanılan veritabanı yönetim sistemlerinin hemen hemen hepsinde tercih edilen model ilişkisel veri modelidir.
Nesneye Yönelik Veritabanı: Nesneye yönelik veritabanları ilişkisel veri modellerinden farklı olarak daha karmaşık veri türleri üzerinde işlem yapmasına rağmen, çok sayıda işlemi yürütme açısından ilişkisel veritabanından göreceli olarak daha yavaştır. Bu nedenle günümüzde hem ilişkisel hem de nesneye yönelik veri modellerini birlikte kullanan veritabanı yönetim sistemlerinin yaygınlaştığı görülmektedir.
Veritabanı Yönetim Sistemi Yazılımları
MS SQL Server: Microsoft firması tarafından geliştirilmiş ve ilişkisel veri modelini kullanan veritabanı yönetim sistemi yazılımıdır. Yalnızca Windows işletim sistemlerinde çalışır. Sunucu ya da istemci olarak kurulabilir.
Oracle: Oracle firması tarafından geliştirilmiş ilişkisel veritabanı yönetim sistemi yazılımıdır. Özellikle kurumsal amaçlı kullanılan bu yazılım büyük miktarda veriyi çok kullanıcılı ortamlarda saklama ve güvenli erişim sağlama açısından, yüksek ölçekli uygulamalar için tercih edilir. Birçok işletim sistemi üzerinde kullanılabilen bu yazılımın maliyeti de yüksektir.
MySQL: Açık kaynak kodlu bir veritabanı yönetim sistemi yazılımıdır. Unix, OS/2 ve Windows işletim sistemlerinde ücretsiz olarak kullanılabilmektedir. Bunun dışında ticari lisans seçeneği de mevcuttur. Özellikle web ortamında yaygın olarak kullanılan MySQL’in kullanımı kolay kullanıcı yetkilendirme sistemi güçlüdür. Python’dan Java’ya kadar birçok programlama dili ile erişilebilmektedir.
Sybase: Avrupanın en büyük yazılım şirketi olan SAP’a (Systemanalyse und Programmentwicklung–Sistem Analizi ve Program geliştirme) bağlı Sybase firması tarafından geliştirilen veritabanı yönetim sistemi yazılımıdır. Orta ve büyük ölçekli uygulamalar için tercih edilmektedir. Ülkemizde daha çok bankacılık sektörü ile kamusal alanlarda kullanılmaktadır. Veritabanı üzerindeki işlemler T-SQL (Transact-SQL) sorgulama dili ile gerçekleştirilir.
PostgreSQL: PostgreSQL açık kaynak kodlu ücretsiz bir yazılımdır. SQL’in geliştirilmiş alt kümesi olan PostQuel dilini kullanır. İyi performans veren, güvenli ve geniş özelliklere sahip bir veritabanı yönetim sistemi yazılımıdır. Hemen hemen tüm UNIX ve UNIX türevi (Linux, FreeBSD gibi ) işletim sistemlerinde çalışır. Bunun dışında Microsoft Windows NT tabanlı işletim sistemlerinde de çalıştırılabilir.
MS Access: Microsoft firmasının Microsoft Office yazılım paketi içinde yer alan veritabanı yönetim sistemi yazılımıdır. Küçük ölçekli uygulamalarda masaüstü veritabanı sistemi olarak kullanılır. Yalnızca Windows işletim sisteminde çalışan ve işletim sisteminin sağladığı güvenlik seçeneklerini kullanan bir yapıya sahiptir.
DB2: IBM firması tarafından geliştirilen veritabanı yönetim sistemi yazılımıdır. Küçük ölçekli işletmeler açısından maliyetli bir sistem olan DB2 büyük ölçekli uygulamalarda tercih edilir. Windows, Linux ve Unix işletim sistemlerinde kullanılabilir.