Veri Tabanı Yönetim Sistemleri – Temel Kavramlar
➤ Veri (Data) nedir?
Ham gerçeklerden, rakamlardan ve resimlerden oluşan bir koleksiyondur.
İnsanlar, nesneler ve diğer varlıklarla ilgili gerçeklerden oluşur.
İşlenmemiş, yorumlanmamış ve değerlendirilmemiş özelliklere sahiptir.
Tek başına bir anlam ifade etmezler.
Veriler dosyalarda veya veritabanlarında saklanabilir.
Örnekler:
50,-9,cm,km,Hasan
↳ Bu verilerin anlamlı hale getirilmesi gereklidir.
➤ Bilgi (Information) nedir?
Verilerin yorumlanmaya uygun halde sunulmasıdır.
Veriler bilgiye programlar ve sorgular aracılığıyla dönüşür.
Bilgi, dosyalarda ya da veri tabanlarında saklanmaz.
Veri, dosyalarda ve veri tabanlarında saklanır.
Örnekler:
Yaş: 50
Sıcaklık: -9 derece
180 cm boy
Denizli – İzmir arası 243 km’dir.
Öğrenci adı Hasan
↳ Veriler anlam kazanarak bilgi haline dönüştü.
➤ (Çıkarım, Yorumlanmış) Bilgi (Knowledge) Nedir?
Yorumlanan verilere dayalı olarak uygun eylemlere ilişkin bilgiler içerir.
Genellikle yorumlanmamış bilgi olan Information ile karıştırılır.
➟ Dikkat Edelim:
Dosyalarda ve veri tabanlarında veri saklanır. Bilgi saklanmaz.
Örnekler:
Yaş 50, artık emekli olma dönemindeyim.
Hava -9 derece, kalın giymeliyim.
Denizli – İzmir arası 243 km’dir. Ortalama 100 km hızla gidersem 2 saat 43 dakikada ulaşırım.
Hasan adlı öğrenici deneme sınavına okul birincisi olmuş
Bilgi (Information) ve Bilgi (Knowledge) Farkı:
➟ Bilgi (Information): Bir konun gerçekleri veya ayrıntılarıdır.
➟ Bilgi (Knowledge): Deneyim veya eğitim yoluyla elde ettiğimiz farkındalık, anlayış veya beceridir.
Denizli – İzmir arası 243 km’dir. (Bilgi-Information)
Denizli – İzmir arası 243 km’dir. Ortalama 100 km hızla gidersem 2 saat 43 dakikada ulaşırım.(Bilgi-Knowledge)
NOT:
Veri tabanlarında sadece veriler saklanabilir ve veritabanından yönetilirler. Yorumlanmamış bilgi (Information) ve yorumlanmış bilgi (Knowledge) veritabanlarında saklanamaz.
NOT:
Veriler veritabanında saklanır.
Programlar veya sorgular aracılığıyla bu veriler yorumlanmamış(Information) bilgiye çevirilir.
Daha sonrasında yorumlanarak yorumlanmış(Knowledge) bilgiye çevrilirler.
Kısaca: Veritabanında veriler saklanırken bilgiler saklanmaz.
➤ Veri Tabanı (Database) Nedir?
Veriyi elektronik yada elektronik olmayan ortamda saklayabildiğimiz, sakladığımız veriye ulaşabildiğimiz ve güncelleyebildiğimiz her ortam Veri Tabanı’dır.
Veriler bilgisayarların yaygın olmadığı dönemde klasörlerde ve çekmecelerde saklanıyordu.
Sonraki dönemlerde veritabanı niteliğinde olmasa da Word ve Excel adlı programlar kullanılmaya başlandı.
Veri tabanı disk üzerinde belli bir hiyerarşiye göre verilerin depolandığı dosyalardan oluşur.Depolanan verileri yönetmek amaçlı bir mekanizmaya ihityaç vardır. Bu mekanizma olmadan depolanmış olan bu verilerin(database’deki) herhangi bir fonksiyonu yoktur.
➤ Veri Tabanı Yönetim Sistemi (Database Managment System-DMBS) Nedir?
Veritabanınada depolanan verileri yönetmeye yarayan sistemdir.
Bir veritabanı oluşturmak ve yönetmek için kullanılan programlar koleksiyonudur.
➟ Görevi:

Ham gerçeklerden, rakamlardan ve resimlerden oluşan bir koleksiyondur.
İnsanlar, nesneler ve diğer varlıklarla ilgili gerçeklerden oluşur.
İşlenmemiş, yorumlanmamış ve değerlendirilmemiş özelliklere sahiptir.
Tek başına bir anlam ifade etmezler.
Veriler dosyalarda veya veritabanlarında saklanabilir.
Örnekler:
50,-9,cm,km,Hasan
↳ Bu verilerin anlamlı hale getirilmesi gereklidir.
➤ Veri Tabanı & Veritabanı Yönetim Sistemi(VTYS)
Veritabanı dediğimizdee hem veritabanını hem veritabanı yönetim sistemini kastederiz. Bunlar aslında farklı kavramlardır.
Veritabanı olarak kastettiğimiz ortam 2 kısımdan oluşmaktadır.
1) Depolama alanı: Disket üzerinde belli bir hiyerarşiye göre saklanan dosyalardan oluşur.
2) Veritabanı Yönetim Sistemi: Bu kısım veritabanını yöneten programdır. Veritabanı, bir yönetim sistemi olmadan bir anlam ifade etmez. Uygulamalar ya da kullanıcılar bağlanırlar.
Depolama alanındaki bilgilere kullanıcılar değil veritabanı yönetim sistemleri ulaşırlar.

VERİ TABANI TEMEL İÇERİKLERİ
➤ Tüm veritabanları genelde 4 ana içerikten oluşur.
1) User Data
Kullanıcılar tarafından veritabınna işlenen verilerdir. Öncede hazır olarak bulunmaz, kullanıcılar oluşturur. Kullanıcılar tarafından güncellenebilir, silinebilir ve yenileri oluşturulabilir.
2) Metadata(Data Dictionary)
Metadata’lar veritabanı içerisinde veri sözlükleri içerisinde tutulur. Metadata veri hakkında veri demektir. Dosyaların, tabloların yapısı (tanımları, index yapıları, veri tipleri, boyutları vs.) gibi bilgileri içerirler. Veri işleme ve sorgulama işlemlerinde görüntüleme ve biçimlendirme kuralları, güvenlik ve erişim kuralları, tetikleyici(trigger) kurallarıdır. Veri tabanının kendisiyle ilgili bilgilerdir.(Lisans, RAM, DISK, Version, Mimari vs.)
User data’ları kullanıcılar oluştururken metadata’lar kurulum esnasında hazır olarak gelirler.
Metadata’lar kullanıcılar tarafından doğrudan oluşturulamaz, silinemez ve güncellenemez.
Yapılan yapısal değişikliklerde Metadata otomatik olarak güncellenir.
3) Acces Engine (DBMS Interface)
Bir çok alt bilgisi vardır. Acces Engine’i oluşturan üç adet yapı vardır.
➤ Bağımsız sorgu diline ve arayüzüne sahiptir
Örneğin ilişkisel veritabanlarında SQL dili ortak dildir. NOSQL veritabanlarında ise hazır servisler ve metodlar vardır. Veri tabanını yöneten program kısmında tutulan bilgilerdir.
Veritabanı yönetim sistemine Acces Engine otomatik olarak gelmektedir.
➤ Programlama dilleriyle DML yani silme, ekleme, güncelleme gibi veri manipülsayonu işlemlerini gerçekleştirebilmek için bir takım programcı arayüzleri vardır. Aşağıdaki yapıları içerir:
➟ Ön Derleyiciler (Compiler)
➟ Procedure ve API servis tanımlayıcılarından oluşur.
➤ Kullanıcı dostu arayüzleri: Veritabanı yönetim sistemleri menü tabanlı ve grafik tabanlı arayüzlerinden oluşturulabilir.
4) Tools & Utilities (Araçlar ve Yardımcı Programlar)
• Harici bir ortamdan verilerin veritabanına yüklenmesini sağlayan araçlar.(Load Data)
– Bir veritabanı içerisinde kurulum yapıldıktan sonra araçlar ve yardımcı programlar bu veritabanı içerisinde kurulumla birlikte de gelebilir ya da haricen yüklenmesi gerekebilir.
• Veritabanının periyodik olarak yedeklenmesi/yedekten dönülmesini sağlayan araçlar vardır. Farklılık gösterebilirler.(Backup&Recovery)
• Veritabanı bozulmalarına karşı otomatik yedekleme ve yedekten dönülmesini sağlayan araçlar. (Archive&Restore)
• Veritabanı dosya yapılarının yeniden düzenlenmesini ve versiyon yükseltmelerini sağlayan araçlar.(Upgrade)
• Rapor oluşturma yardımcı programları.
• Performans izleme yardımcı programları ve bunlara benzer birçok program ve araç vardır.
Bu araçlar ve yardımcı programlar kurulum esnasında genellikle otomatik olarak yüklenir.

Veri Tabanı Kullanımının Avantajları
Günümüzde her iş ve işlem elektronik ortamda gerçekleştirilmektedir. Bu yüzden veritabanı kullanımı kaçınılmazdır. Veritabanı kullanımı:
– Verinin daha az tekrar edilmesini (Less Redundancy)
– Veri Uyumluluğu ve Tutarlılığı (Data Concurrency and Consistency)
– Verimlilik ve Etkililik (Efficiency and Effectiveness)
– Veri Bütünlüğü (Data Integrity)
– Gizlilik ve Güvenlik (Confidentiality and Security)
– Yedekleme ve Yedekten dönme (Backup and Recovery)
➤ Verinin daha az tekrar edilmesini (Less Redundancy)
Veri tekrarı hem gereksiz kaynak kullanımını arttırır hem de karmaşıklığa yol açar. Veri tabanlarında veri tekrarlarını önleyen modellemeler mevcuttur.
Örnek: Türkiye’de ki tüm ilçeleri tabloya koyduğumuzu düşünelim ve tablomuzda ilçe adı, il ve bölge olmak üzere ilçeyi tanımlayan üç alanımız olsun.
Burada ilçe adları tekrara uğramazken il ve bölge adları tekrara uğrar. Bu istenmeyen bir durumdur.
Tekrara uğrayan bu alanlar için ayrı tablolar oluşturup birbirleriyle ilişkilendirebileceğimiz id’ler atamak ve sadece bu id’leri tekrarlı kullanmak bu soruna çözüm olacak bir modelleme yöntemidir.


Veritabanlarında istediğimiz gibi bir modelleme yapabiliriz. Veritabanı bu konuda bizi serbest bırakır fakat daha sistemin daha optimize bir şekilde çalışması için modelleme yapmak bize fayda sağlar.
➤ Veri Uyumluluğu ve Tutarlılığı (Data Concurrency and Consistency)
Veri Uyumluluğu(Data Concurrency): Birden çok veri tabanı kullanıcısı aynı anda aynı verilere erişebilir.
Veri Tutarlılığı(Data Consistency): Her veritabanı kullanıcısı verilerin tutarlı halini (son halini) görürüler.
Örneğin veritabanımızda İLÇELER adlı bir tablomuz olsun ve 5 farklı kullanıcı da aynı tabloya erişmek istedeğinde aynı anda erişebilir ve verilerin son halini görebilir.

➤ Verimlilik ve Etkililik (Efficiency and Effectiveness)
Veriler uyumlu ve tutarlı bir şekilde tek bir saklama alanında tutulduğundan, işlemler verimli ve etkili bir şekilde yapılır.

Örneğin yandaki gibi veritabanı üzerinde farklı işlemler yapmaya çalışan 3 adet kullanıcımız olsun. Bu işlemler uyumlu ve tutarlı bir şekilde gerçekleştirilir.
➤ Veri Bütünlüğü (Data Integrity)
Veriyi modellediğimizde yani normalizasyon işlemi yaptığımızda eğer veriler arasında herhangi bir ilişki yoksa veri bütünlüğü sağlanamaz. Veri bütünlüğünü sağlayabilmek için tablolarımızda Primary Key ve Foreign Key’ler belirleriz. Bu Key’ler sayesinde tablolar arasında ilişkiler kurarız ve veritabanında bütünlüğü sağlarız. Ancak bu işlemler daha çok ilişkisel veritabanlarında geçerlidir.
Veri bütünlüğünü sağlayacak kolon ve tablo bazında olan diğer kısıtlamalar(constraints) ise şunlardır:

➤ Gizlilik ve Güvenlik (Confidentiality and Security)
Veritabanı kullanımının en önemli avantajlarından biridir ve aşağıdaki özelliklere sahiptir:
Erişim ve Yetki Kuralları (Rules)
Kullanıcı Profilleri (User Profiles)
Kullanıcı Rolleri (User Roles)
Kullanıcı Yetkileri (User Privileges)
Nesne Yetkileri (Object Privileges)
Sistem Yetkileri (System Privileges)
…

Örneğin şekildeki gibi bir kullanıcıyı tablolara erişirken farklı şekillerde yetkilendirebiliriz. Burada kullanıcı seçim(Select) işlemiyle yetkilendirilirken silme(Delete) işlemi ile yetkilendirilememiştir.
➤ Yedekleme ve Yedekten dönme (Backup and Recovery)
Genellikle modern veritabanlarında bulunan bir özelliktir. Eğer bir veritabanında yedekleme ve yedekten dönme özelliği yoksa bu veritabanına modern veritabanı diyemeyiz.
Yedekler bir kurum veya işletmenin en değerli varlıklarındandır. Her türlü riske karşı verilerin yedeklenmesi hayat önem taşımaktadır.

Veri Tabanı Kullanımının Dezavantajları
➤ Karmaşıklık (Complexity): Veritabanı büyüdükçe işler karmaşık hale gelir. İş hacminin büyümesi, verilerin artması vb.
➤ Arıza ve Felaket Durumunda Olumsuz Etkiler (Higher impact of a disaster and failure):
Bir firma yada kurumun verileri veritabanı içerisindedir. Olumsuzluk durumunda tedbir amaçlı verilerin kurtarılması için sistemler kurulur. Bu sistemler ek bir maliyet yaratır.
➤ Maliyet(Cost):
– Donanım ve yazılım (Hardware ve Software) -> Artan ihtiyaçlara göre ilave yazılım ve donanımlar alınabilir.
– İşletim ve Sürdürülebilirlik (Operation and Sustainability) -> İş hacimleri büyüdükçe ve değiştikçe veritabanları da büyüyecektir ve akabinde veritabanını işletmek zorlaşacaktır. Bunun için çeşitli tedbirler alınması gerekmektedir. Aksi halde veritabanı çalışamaz hale gelebilir.
– Yetkin Personel -> En önemli maliyetlerden biridir. Uzman personel bulunması gerekmektedir.
➤ …
Amaca uygun seçilmemiş veritabanları karmaşıklığı ve maliyeti arttıracaktır. Bu nedenle amaca uygun olan ve doğru yapılandırmış veritabanı seçmek önemlidir.
Veri Tabanı Kullanmaya İhtiyaç Var mı?
– Verilerin sürekli büyümesi ve depolanma ihtiyacı varsa,
– Verilerin merkezi kontrolü gerekiyorsa,
– Veri tekrarının engellenmesi gerekiyorsa,
– Veri tutarlılığı ve bütünlüğü sağlanacaksa,
– Çoklu kullanıcı erişim desteği olacaksa,
– Veri dokümantasyonu gerekiyorsa,
– Veriye erişim-güvenlik kontrolü gerekiyorsa,
– Verilere hızlı erişim, analizve raporlama ihtiyacı varsa,
– Veriler, yedekleme ve kurtarma gerektirecek derecede kritikse
– …
Cevabınız yukarıda belirtilen ifadelerden en az 3-4 tanesini karşılıyorsa veritabanı kullanmaya ihtiyacınız var demektir.
Eğer verileriniz basit dosyalama sistemlerinde tutulabiliyorsa (Word,Excel,Notepad,Adobe Acrobat,Kağıt,…) veritabanı kullanımına ihtiyacınız yok demektir.
