Bu ünite veri tabanının ne olduğunu, neden basit listeler yerine veri tabanı kullanıldığını ve bir veri tabanı sistemini oluşturan temel kavramları anlatır.
Veri tabanı nedir?
Veri tabanı, birbiriyle ilişkili verilerin kullanım amacına uygun biçimde düzenlenerek saklandığı bilgi deposudur. Genellikle bilgisayarda elektronik olarak tutulan, yönetilebilir, güncellenebilir ve aralarında tanımlı ilişkiler bulunan yapılandırılmış bir veri koleksiyonudur. Üniversitedeki öğrenci işleri sistemi, hastanedeki hasta ve tedavi kayıtları, bir bankanın müşteri ve kredi bilgileri birer veri tabanı örneğidir.
- Veri yönetimi: Verilerin uygun biçimde üretilmesine, depolanmasına ve alınmasına odaklanan disiplin.
- Yapısal veri: Saklanması ve kullanılması kolay olsun diye biçimlendirilmiş veri. Yapılandırılmamış veri ise ham durumdaki veridir.
- Metadata (üst veri): Tabloların, sütunların, veri türlerinin ve ilişkilerin özelliklerini açıklayan veri; yani verinin verisi.
- VTYS (Veri Tabanı Yönetim Sistemi): Veri tabanlarını oluşturmak, saklamak ve yönetmek için tasarlanmış yazılım paketi.
Neden liste yerine veri tabanı?
Müşteri, firma ve satış bilgilerinin tek bir listede tutulması üç soruna yol açar:
- Güncelleme sorunu: Bir firmanın adresi üç satırda geçiyorsa, adres değiştiğinde birinin unutulması bilgi tutarsızlığı yaratır.
- Silme sorunu: Bir firmaya ait kayıtlar silinince müşteri bilgileri de kaybolur.
- Paylaşım sorunu: Her departman listenin farklı bir kısmına ihtiyaç duyar; listenin tamamını herkesle paylaşmak gizlilik açısından sakıncalıdır.
Çözüm, farklı konuları farklı tablolara ayırmak ve tabloları numaralarla birbirine bağlamaktır. Böylece firmanın adresi tek bir yerde durur ve değiştiğinde yalnızca bir satır güncellenir. Bu sürece normalizasyon denir.
Veri tabanı yaklaşımı veri tekrarını önler, merkezî denetim ve tutarlılık sağlar, veriyi yetkisiz kişilerden korur, programları verilerden ayırır ve yedekleme gibi işletim sorunlarına çözüm sunar.
VTYS ve veri modelleri
Yaygın veri tabanı yönetim sistemleri arasında Oracle, Microsoft SQL Server, MySQL, PostgreSQL, SQLite ve IBM DB2 sayılabilir. Veri modeline göre dört tür vardır:
- Hiyerarşik: İlk modeldir; veriler ağaç yapısında saklanır.
- Ağ: 1960'ların sonunda ortaya çıkmıştır; veriler graf şeklinde saklanır.
- İlişkisel: 1970'lerin başında geliştirilmiştir; veriler tablolarda tutulur ve tablolar birbirine bağlanır. Günümüz veri tabanlarının hemen hepsi bu modeldedir. Microsoft SQL Server da ilişkiseldir.
- Nesneye yönelik: C++ gibi nesneye yönelik dillerle oluşturulup kullanılan veri tabanıdır.
Veri tabanı sisteminin bileşenleri
Bir veri tabanı sistemi kullanıcı, veri tabanı uygulaması, VTYS ve veri tabanı bileşenlerinden oluşur. Kullanıcı formu doldurur; uygulama bu bilgiyi SQL isteğine çevirip VTYS'ye iletir; VTYS de veri tabanı dosyalarında okuma ya da yazma yapar. Formları ve raporları oluşturmak ve "stok yetmezse ne yapılacağı" gibi uygulama mantığını yürütmek uygulamanın; tabloları oluşturmak, kısıtları uygulamak, yetkileri denetlemek ve yedek almak ise VTYS'nin görevidir.
Tablo, kayıt, alan ve anahtarlar
Veri tabanı tablolardan oluşur. Tablodaki her satıra kayıt, her sütuna alan denir ve her alan için önceden bir veri türü seçilir.
- Birincil anahtar (PK): Bir kaydı diğerlerinden ayıran alandır. Sınıfta iki Ahmet varsa öğrenci numarası doğru kişiyi bulmayı sağlar. Birden fazla alan birlikte de birincil anahtar olabilir.
- Yabancı anahtar (FK): Bir tabloya girilebilecek değerleri başka bir tablodaki değerlerle sınırlayan ve iki tabloyu ilişkilendiren alandır.
Veri tabanında başka neler bulunur?
- İndeks: Kayıtların nerede olduğunu gösterip sorguları hızlandırır; kitabın sonundaki dizin gibidir.
- Saklı yordam (stored procedure): Veri tabanında tanımlanan, derlenmiş ve hızlı çalışan SQL kodlarıdır.
- Tetikleyici (trigger): Bir tabloda INSERT, UPDATE veya DELETE olduğunda kendiliğinden çalışan SQL kodudur. Örneğin stok hareketinde stok miktarını otomatik günceller.
- Veri tutarlılığı (referential integrity): Başka bir tabloda kullanılan bir kaydın silinmesini engelleyerek veri bütünlüğünü korur.
Saklı yordamlar ve tetikleyiciler sunucu üzerinde çalışır; böylece sunucudan istemciye en az veri çekilir. Veri tabanları ölçeğe göre de ayrılır: tek kişinin kullandığı küçük sistemler, aynı kaydın iki kişi tarafından aynı anda seçilmemesi gereken küçük işletme sistemleri ve yüzlerce kullanıcının 7/24 eriştiği büyük kurum sistemleri.