VERİTABANI Temel Kavramlar VERİ NEDİR? Veri; bilgi edinmek için kullanılan ham (işlenmemiş) malzemedir. Veriler, ölçüm, sayım, deney, gözlem ya da araştırma yolu ile elde edilmektedir. Ölçüm ya da sayım yolu ile toplanan ve sayısal bir değer bildiren veriler nicel veriler, sayısal bir değer bildirmeyen veriler de nitel veriler olarak adlandırılmaktadır. Örneğin bir dünya haritasını düşünecek olursak; kıtalar, okyanuslar, ülkeler ile ilgili haritada gördüğünüz özelliklerin tümü veridir. VERİ NEDİR? Verilerin işlenmesi ile ise bilgiye ulaşılır. Bilgi, insanlık tarihinin her döneminde önemli olmakla beraber iletişim imkânlarının küçülttüğü dünyada en önemli etken durumuna gelmiştir. Çağımızda tartışılmaz üstünlük “bilgiyi üreten” ve “bilgiyi kullanan” larındır. Günümüzde toplanan tüm veri ve bilginin % 80´ine yakın bir bölümü ya coğrafi ya da ilişkili konulardır. Veri ile bilgi arasındaki farkı açıklamak için basit bir örnek vermek gerekirse; Herhangi bir kişinin doğum tarihi, üzerinde hiçbir işlem yapılmamış ham veridir. Kişinin yaşı ise bilgidir. Çünkü kişinin yaşının bilinmesi için doğum tarihi verisine gereksinim duyulmaktadır. Kişinin yaşı öğrenilmek istenilen tarihten doğum tarihi çıkartılarak bulunabilir. Örneğin kişi 2000 yılında doğmuş ise 2005 yılında 5 yaşında, 2011 yılında ise 11 yaşındadır. Her ne kadar kişinin yaşı da veri olarak görünse de yaşı elde etmek için bir işlem yapılmış, kişinin doğum tarihi ve yaşının öğrenilmek istendiği tarih verileri kullanılarak bir bilgi elde edilmiştir. VERİ NEDİR? Örnekte görüldüğü üzere verinin bilgiye dönüşmesi için bir veri işleme süreci gereklidir. Önce üretilecek bilginin ne olacağına karar verilmelidir. Yani amaç belirlenmelidir. Bu amaç için elde yeterli veri olup olmadığına bakılmalı, eğer veri yeterli ise bilgi üretimi için işlem yapılmalıdır. Son ürün amaç doğrultusunda üretilen bilgidir. Amaç: Kişinin yaşının bulunması Veri: Doğum tarihi, kişinin yaşının öğrenilmek istendiği tarih İşlem: Aritmetiksel işlem (çıkartma) Sonuç: Kişinin yaşı VERİ NEDİR? İngilizce karşılığı ile veri (data), bilgi (information) ve tam olarak anlam açısından karşılamasa da bilgi birikimi (knowledge), sürekli olarak karıştırılan ve birbirinin yerine kullanılan kavramlardır. Eski Türkçe'de ise bilgi (information) malûmat olarak kullanılmıştır. Temel olarak bu üç kavramın birbirleri arasındaki fark hiyerarşik sıralamalarıdır. Veri (data) bu hiyerarşideki en alt kademedeki kavram olup, bilgi (information) bir üst hiyerarşideki kavram ve son olarak bilgi birikimi (knowledge) ise en üst kademedeki kavrama karşılık gelmektedir. VERİ NEDİR? Veri ve bilgi kavramları günümüzde teknoloji ile iç içe girmiş ve bu bağlamda bilgi teknolojileri kavramı ortaya çıkmıştır. Herhangi bir araç veya teknik kullanılarak, bilgi elde etmek veya işlemek için kullanılan her tür teknolojiye bilgi teknolojisi adı verilir. Bilgi teknolojileri belirli bir sistematik kullanarak veriyi işleyen sistemlerin oluşmasına neden olmuştur. Veri, bilgi sistemleri için girdi olarak kullanılır. Bilgi sistemleri verileri işleyerek bilgi çıktısı oluştururlar. VERİ NEDİR? Bilgi verinin anlamlı hale gelmesi ile ortaya çıkmaktadır. Örneğin, öğrencilerin kayıt verileri, öğrenci numarası, isim, adres, bölüm ve telefon numarası vb. verileri temsil eder. Öğrencilerin seçtiği dersler sonucunda oluşan derse kayıtlı öğrenci listeleri ise bilgidir. VERİ NEDİR? Doğru zamanda doğru bilgiye ulaşabilmek için verinin sağlıklı bir şekilde üretilmesi, saklanması, veriye kolay erişimin sağlanması ve işlenmesi için doğru yönetilmesi gerekmektedir. Diğer bir deyişle veri bir sistematik altında yapılandırılmalı ve yönetilmelidir. Bilgi sistemleri bu gereksinime doğrudan cevap veren bir kavramdır. Verinin üretimi, saklanması, aranması, güncelleştirilmesi, analiz edilmesi, yönetilmesi, işlenmesi ve anlamlı bilgi olarak çıktı verilmesi için tasarlanmış dijital ve analog teknolojilerinin genel adına Bilgi Sistemleri denir. Bilgi sistemlerinin en temel ögesi veritabanlarıdır. VERİTABANI Kullanım amacına uygun olarak düzenlenmiş veri topluluğuna veritabanı denir. Veritabanları ve veritabanı sistemleri modern toplumda günlük yaşamın önemli bir bileşeni haline gelmiştir. Çoğumuz veritabanları ile etkileşim içeren çeşitli etkinliklerle karşılaşıyoruz. Örneğin otel veya havayolu rezervasyonu yaptırırken, üniversite kütüphanesini tararken, internet üzerinden alış-veriş yaparken, ya da internet üzerinden arabamızı veya evimizi satılığa çıkarmak için ilan verirken veritabanları üzerinde sorgulama, veri girişi ve veri güncelleme işlemleri yapıyoruz. Artık internetin hayatımızın ayrılmaz parçası olduğu günümüzde, hemen herkes, öyle veya böyle, bir şekilde veritabanları ile tanışıyor. VERİTABANI Veritabanları ve veritabanı teknolojisi bilgisayarların artan kullanımı üzerinde büyük bir etkiye sahipler. Veritabanları bilgisayarlar yardımı ile iş, elektronik ticaret, mühendislik, tıp, hukuk, eğitim ve kütüphanecilik dâhil olmak üzere, kullanılan hemen her alanda hayatımızda kritik bir rol üstlenmektedir. Bu rol öylesine kritik ki yaşayıp yaşamadığımızı bile artık veritabanları biliyor. VERİTABANI VERİTABANI-AMACA UYGUNLUK Tanıdığımız insanların isimlerini, telefon numaralarını ve adreslerini düşünün. Bunlar bilgisayar ortamında bir yazılım kullanarak kaydedilmiş olsun. İşte bu telefon rehberi veri toplama işi basit bir veritabanıdır. Telefon rehberinde birçok kişinin adı, soyadı, adresi ve telefon verileri alfabetik sıra ile düzenlenmiştir. Telefon numarasını öğrenmek istediğimiz kişin adını soyadını kullanarak telefon rehberi üzerinden kişinin telefon numarasına kolayca erişebiliriz. Bu açıdan telefon rehberi kullanım amacına uygun düzenli bir veri topluluğudur, yani veritabanıdır. VERİTABANI Veritabanından beklenen, verileri saklaması, başka veriler ile ilişkilendirilebilmesi ve gerektiğinde veriler üzerinde düzenlemelerin ve sorgulamaların yapılabilmesidir. Veritabanı kullanılarak yeni veriler üretilebilmekte, veriler tek bir merkezde toplanabilmekte, erişim kolaylığı ve güvenliği sağlanabilmekte ve diğer sistemlerle entegre çalışılabilmektedir VERİTABANI NEDEN VERİTABANI KULLANILIR? Numaralar, isimler, telefonlar, adresler, ürünler, fiyatlar aklınıza gelebilecek her şey binlerce, on binlerce, milyonlarca veri bilgisayar ortamında tutulmaya başlandı. Tüm verileri saklamak, gerektiğinde kolayca ulaşmak veya diğer kişilerinde bu verilere ulaşmasını sağlamak, veriler çoğaldıkça içinden çıkılmaz bir hal almaktadır. Bir kütüphanede bulunan tüm kitapların bir yığın şeklinde kütüphanenin ortasında durduğunu düşünün. Böyle bir durumda aradığınız bir kitabı bulmanız saatler hatta günler sürebilir. Ancak bir kütüphanede kitaplar birbirleriyle ilgili alanlarda ve isim sırasına göre dizilmiş olarak raflarda olursa aradığınızı bulmak çok daha kolay olacaktır. NEDEN VERİTABANI KULLANILIR? Başka bir örnek vererek neden veritabanı kullanılır sorusuna yanıt arayalım. Bir ecza deposu düşünün. Her gün çok çeşitli ilaçların geldiği ve eczanelere sevk edildiği bir depo. Veritabanı sistemi olmadan bu ilaçların geleneksel yöntemlerle, evrak sistemi ile işletildiğini varsayalım. A fabrikasında 10 kalem ilaç, B fabrikasından 20 kalem ilaç ve adetlerinin fatura ve irsaliyelerle geldiğini ve bu ilaçların gereksinimler doğrultusunda eczanelere sevk edildiğini düşünelim. Ecza deposundaki işleyişin takibinin ne kadar zor olduğunu sanırım hayal edebilirsiniz. NEDEN VERİTABANI KULLANILIR? Bilgisayar ortamında veritabanı sistemi kullanıldığında ise bu ecza deposunda; • Verileri sıkıştırarak saklayabilirsiniz. Ancak kâğıt fatura ve irsaliyeler için bu durum pek de mümkün değildir. • Bilgisayar hızı ile bütün kayıtlar içinde aradığınızı anında bulabilirsiniz. Hangi ilaçtan kalmamış, nereye ne kadar ilaç sevk etmişsiniz vb. sorulara yanıt alabilirsiniz. Geleneksel stok işlemleri ile bu hızda sorularınıza yanıt alamazsınız. • Deponun anlık durumunu öğrenebilirsiniz. Gün, hafta, ay, yıl gibi kriterleri vererek depodaki ilaç sirkülasyonunu raporlayabilirsiniz ve stokta hangi ilaçtan ne kadar var sorusuna doğru, güncel ve hızlı bir şekilde istendiğinde ulaşabilirsiniz. • Ecza deponuzla ilgili tüm verileri daha güvenli bir şekilde saklayabilirsiniz. NEDEN VERİTABANI KULLANILIR? Veritabanı kullanmanın avantajlarını kısaca şöyle belirtebiliriz; • Veri tekrarının önlenmesi, • Veri tutarlılığının sağlanması, • Veri paylaşımının sağlanması, • Yetkilendirme yapılarak veri gizliliği sağlanması, • Her kullanıcıya istediği verilerin, alışık olduğu kolay, anlaşılır yapılarda sunulması, • Sunulan çözümleme, tasarım ve geliştirme araçları ile uygulama yazılımı geliştirmenin kolaylaşması, • Güvenlik sağlanması, • Yedekleme kolaylığı sağlanması. VERİTABANI YÖNETİM SİSTEMLERİ Veritabanı yönetim sistemi (Database Management System), veri tabanlarını oluşturmak ve yönetmek için tasarlanmış sistem ve yazılımdır. Veritabanı tanımlama, yaratma, değiştirme, yedekleme ve veritabanı kullanıcı yetkilerini tanımlama gibi veritabanı ile ilgili tüm işlemler veritabanı yönetim sistemi yazılımları ile gerçekleştirilir. Microsoft Access, Oracle, Microsoft SQL Server, Sybase, DB2, Ingres ve MySQL veritabanı yönetim sistemi yazılım ürünlerine örnek gösterilebilir. VERİTABANI YÖNETİM SİSTEMLERİ Veritabanı yönetim sistemi yazılımları genel olarak; • Veritabanı oluşturmada, • Veritabanı üzerinde sorgulama yapmada, • Veritabanı bakımı yapmada, • Veritabanının gereksinimlere göre geliştirilmesi ve değiştirilmesini sağlamada, • Veritabanına erişecek kullanıcıları ve bu kullanıcıların yetkilerini tanımlamada kullanılmaktadır. VERİTABANI YÖNETİM SİSTEMLERİ Veritabanı yönetim sistemi yazılımları desteklemiş oldukları veritabanı modellerine göre veritabanı oluşturmaktadır. En yaygın olarak bilinen veritabanı modelleri hiyerarşik, ağ, ilişkisel ve nesne veritabanı modelleridir. Günümüzde en çok kullanılan veritabanı modeli ilişkisel veritabanı modelidir ve bu model birçok veritabanı yönetim sistemi yazılımı tarafından desteklenmektedir. Veritabanı yönetim sistemi yazılımları ile veritabanının oluşturulması depolanacak olan verilerin özelliklerinin tanımlanması, verilerin eklenmesi, silinmesi, değiştirilmesi işlemleri gerçekleştirilmekte olup ayrıca bu veriler sorgulanabilmekte ve istenilen raporlamalar oluşturulabilmektedir. Veritabanı yönetim sistemi yazılımı kullanıcıların veritabanı üzerinde işlem yapmasını sağlamanın yanında veritabanı uygulama yazılımlarının da veritabanına erişimini ve veritabanı üzerinde işlem yapmasını sağlar. VERİTABANI YÖNETİM SİSTEMLERİ Veritabanlarının bakımı, onarımı ve güvenliği de veritabanı yönetim sistemi yazılımları üzerinden gerçekleştirilir. Veritabanına erişecek kullanıcıların tanımlanması ve yetkilendirilmesi işlemleri ile birden fazla kullanıcı ve uygulama yazılımının erişimi veritabanı yönetim sistemi yazılımları ile sağlanmaktadır. VERİTABANI YÖNETİM SİSTEMLERİ Veritabanı veri ve metaveriden oluşmaktadır. Metaveri kısaca veri hakkındaki veri, verinin verisi olarak tanımlanabilir. Veritabanı yönetim sistemleri veritabanı ve veritabanındaki verilerle ilgili yapısal bilgileri metaveri olarak tutar. Örneğin Türkiye'deki iller hakkındaki bilgilerin olduğu bir il veritabanı düşünelim. Veritabanında tutulan iller ile ilgili tabloda birinci kolonda plaka numarası, ikinci kolonda il adı, üçüncü kolonda yüz ölçümü ve dördüncü kolonda da nüfus bilgisi tutulsun. Verilerin tutulduğu alan adları, türleri, uzunlukları, veri içeriği ve hangi yılda kimin tarafından üretildiği gibi veriler metaveridir. VERİTABANI YÖNETİM SİSTEMLERİNİN AVANTAJLARI Veri Tekrarının ("data redundancy") Önlenmesi: Veritabanında veriler tek bir merkezde saklanmaktadır. Bu da verilerin farklı yerlerden birden çok kez kaydedilmesini engelleyerek veri tekrarlarını önler. Veri tekrarının önlenmesi depolama alanı kazanılmasını sağlar. Gereksiz yere veriler birden çok yerde hafızada yer işgal etmemiş olur. Veri tekrarlarının önlenmesi veriler üzerinde yapılan işlemlerdeki performansı arttır. Veri Tutarlılığının ("data consistency") Sağlanması: Veritabanındaki verilerin tek bir merkezde saklanması ile veri tekrarlan önlenildiği gibi aynı zamanda veri tutarlılığı sağlanır. Veriler tek bir merkezde tutulduğu için ekleme, silme, güncelleştirme gibi işlemler yapıldığında veri tutarlılığı bozulmaz. Eğer veriler birçok yerde saklanıyor olsaydı, tüm veriler üzerinde işlem yapılması gerekirdi. Bu durumda bu verilerden herhangi birinde bu işlemlerin uygulanmaması veri tutarsızlığına ("data inconsistency") yol açacaktı. VERİTABANI YÖNETİM SİSTEMLERİNİN AVANTAJLARI Veri Bütünlüğünün ("data integrity") Sağlanması: Veritabanı yönetim sistemlerinde veri bütünlüğü sağlamak, dosya sistemlerine göre oldukça kolaydır. Verilerin bütünlüğünü sağlamak için çeşitli kısıtlamalar veritabanı yönetim sistemi yazılımları ile veritabanı tasarımı aşamasında belirlenmektedir. Örneğin, Türkiye'deki il plaka kodları 81' e kadardır. Veritabanına il bilgileri girilirken il plaka koduna 100 değeri girilirse, yanlış bilgi nedeniyle bu isteğin yerine getirilmemesi istenebilir. Burada il plaka kodunun 81'den büyük olmayacağı şeklinde kısıtlama yapılarak veri bütünlüğü sağlanmaktadır. Veri Paylaşımı / Eşzamanlılık ("concurrency") Sağlanması: Veritabanında depolanan verilere birden fazla kullanıcının veya uygulama yazılımlarının aynı anda erişimi veritabanı yönetim sistemi tarafından sağlanmaktadır. Veritabanına veri bütünlüğü ve veri tutarlılığı bozulmadan çok sayıda erişim yapılabilir. VERİTABANI YÖNETİM SİSTEMLERİNİN AVANTAJLARI Uygulama Geliştirme Kolaylığı: Kullanıcıların gereksinimlerine göre veritabanı uygulama programları geliştirilebilir. Veritabanı yönetim sistemi eş zamanlı erişim, güvenlik, veri bütünlüğü, vb konularda işlemleri gerçekleştirir. Bu sayede uygulama geliştirme daha kolay bir şekilde yapılır. Veri Güvenliği ("data security") Sağlanması: Veri güvenliği verilerin tek merkezde saklanmasından dolayı çok daha kolaydır. Veritabanı yönetim sistemi veritabanına erişecek kullanıcıları tanımlama ve belirli kısıtlamalar getiren çeşitli güvenlik fonksiyonlarına sahiptir. Kullanıcılar için şifre tanımlanabilmekte kullanıcıların belirli tabloları görmesi ve değiştirmesi gibi yetkilendirme işlemleri yapılabilmektedir. Kullanıcı Arayüzleri: Veritabanı yönetim sistemi, farklı teknik bilgiye sahip, çeşitli kullanıcıların gereksinimlerini karşılamak amacıyla, veri sorgulamalarının yapılabildiği uygulama programları, arayüzleri ve grafik kullanıcı arayüzleri (GUI) ile bunlara benzer form ve arayüzler sağlar. VERİTABANI YÖNETİM SİSTEMLERİNİN AVANTAJLARI Yedekleme ve Kurtarma: Veritabanı yönetim sistemi donanımsal ve yazılım- sal nedenler ile oluşabilecek veri kayıplarını önlemek amacı ile yedekleme ve kurtarma araçlarına sahiptir. Uygulama-Veri Bağımsızlığı ("data independence") Sağlanması: Veritabanı yönetim sistemi, veritabanı ile çalışan uygulama yazılımlarından bağımsız şekilde veriler üzerinde hertürlü değişikliği yapabilmektedir. Veri Soyutlama: Veritabanı yönetim sistemleri kullanıcılara veritabanının fiziksel depolama özelliklerini ve uygulama detayları vermeden verileri soyut bir görünüm halinde sunmaktadır. VERİTABANI YÖNETİM SİSTEMLERİNİN DEZAVANTAJLARI Veritabanı yönetim sistemlerinin kullanılmasının avantajlarının yanında dezavantajları da göz önünde bulundurulmalıdır. Bunlar; • Veritabanı yönetim sisteminin dosya sistemlerine göre daha karmaşık yapıda olması, • Veritabanı yönetim sistemlerinin yönetilmesi için yeterli eğitimi almış deneyimli personele ihtiyaç duyulması, • Veritabanı yönetim sistemlerinin kullanılması donanımsal, yazılımsal ve deneyimli personel istihdamı gibi birçok maliyeti beraberinde getirmesi olarak sıralanabilir. VERİTABANI YÖNETİM SİSTEMİ MİMARİSİ Veritabanı yönetim sistemi mimarisi veritabanındaki verilerin kullanıcılar tarafından nasıl görüntülendiğini açıklamaktadır. Bu mimaride kullanıcılara veriler soyut bir bakış açısı ile sunulmaktadır. Bu yapı kullanıcıların verilerin nerede, nasıl tutulduğunu önemsemeden sadece veriler üzerinde işlem yapmasını sağlar. Genel olarak veritabanı yönetim sistemi mimarisi iç, dış ve kavramsal şema olmak üzere üç seviyeden oluşmaktadır. Bu mimari ANSI / SPARC (Amerikan Ulusal Standartlar Enstitüsü / Standartlar Planlama ve Koşullar Komitesi) tarafından önerilmektedir. Bu nedenle aynı zamanda ANSI / SPARC mimarisi olarak da isimlendirilmektedir. VERİTABANI YÖNETİM SİSTEMİ MİMARİSİ VERİTABANI YÖNETİM SİSTEMİ MİMARİSİ İç Şema: Veritabanın fiziksel yapısı ile ilgili tanımlamalar ile erişim yollarının tanımlamalarını içermektedir. İç şema fiziksel şema olarak da isimlendirilmektedir. İç şema veri soyutlamada en düşük seviyedir. Bu şema fiziksel olarak verilerin nasıl depolandığını ve depolama ortamında nasıl düzenlendiğini açıklar. Veri tabanının performansını arttırmak için indeksler, veri sıkıştırma ve şifreleme gibi teknikler ile verilerin saklanması için depolama alanlarının ayrılması gibi teknikleri içerir. Veritabanının bilgisayarda bulunan disk üzerindeki adresi ve özellikleri ile ilgili tanımlar iç şemayı oluşturur. Kavramsal Şema: Veritabanında bulunan tüm veriler ile bu veriler arasındaki ilişkileri tutan kısımdır. Kavramsal şema veritabanının kuruluş düzeyindeki mantıksal yapısıdır. Bu nedenle mantıksal şema olarak da isimlendirilmektedir. VERİTABANI YÖNETİM SİSTEMİ MİMARİSİ Dış Şema: Veritabanında kullanıcıların görünüm oluşturduğu şemadır. Aynı zamanda görüntüleme şeması olarak da bilinmektedir. Veritabanı yönetim sisteminin en yüksek soyutlama seviyesidir. Kullanıcılar ve uygulama yazılımları genel olarak veritabanında bulunan tüm verilere ihtiyaç duymazlar. Bu şema kullanıcıların aynı anda aynı veriyi görebilmelerine, istedikleri gibi görünümü özelleştirebilmelerine olanak sağlar. Böylece farklı kullanıcılar kendileri için özelleştirilmiş verilere erişim sağlarlar. Bu soyutlamalar kullanıcının veritabanının arka tarafında çalışan uygulamalardan habersiz olmasını sağlar. Bu üç şema da çeşitli düzeylerde veritabanı şemasını tanımlamak için kullanılır. Bu yapı üç seviyeli mimari veya üç şema mimarisi olarak da bilinir. Özetlersek, iç şema veritabanının fiziksel depolama yapısını açıklar, kavramsal şema tüm veritabanının yapısını tanımlar ve dış şema da kullanıcıların gereksimlerine göre veritabanında belirli kısmı göstermek ve geri kalan kısmı gizlemek için kullanılır. ÖDEV Bilinen Veritabanı Yönetim Sistemi Yazılımları