Veritabanı Yönetim Sistemleri-I Ders 1 Veritabanı Temel Kavramları Veritabanı Tasarımı Dr. Akın Özçift Dr. Mustafa Karabulut
Veritabanı Kavramı Veritabanı bir amaç için toplanmış bilgi topluluğudur Herhangi bir şekilde gruplanmış ve düzenli bir şekilde saklanan veri bütününe genelde veritabanı denmektedir. Günlük hayatta pek çok alanda veritabanlarına rastlarız Bir kurumun personeline ait bilgileri sakladığı sistemde Bir alışveriş sitesinin ürünlerini, müşterilerini, satışlarını takip ettiği sistemde Üniversite öğrencilerinin bilgilerinin tutulduğu otomasyon sisteminde
Veritabanı Kavramı Veritabanına neden ihtiyaç duyulur ? Pek çok işlemi yapmak için yazılan programlar kullanıcı tarafından girilen verileri bir yere kaydetmek zorundadır Çünkü hangi programlama dili kullanılırsa kullanılsın, program içindeki veriler (değişkenler) RAM’de tutulduğu için bilgisayar kapandığında hepsi silinmektedir. Dolayısıyla veritabanı (VT) bilgilerin KALICI olarak saklandığı fiziksel ortam olarak, veri işleyen tüm programların bilgilerini depolaması için gereklidir
Veritabanı Kavramı Program yazarken verileri saklamak için veritabanı dışında metotlar da kullanmıştır/kullanılmaktadır Sıralı dosyalar: (Sequential access files): Program bilgisayarda kendisi için bir dosya açar ve bilgileri oraya kaydeder. Yavaştır ve çok zahmetlidir. Büyük boyutlu verilerde sistem çalışamaz duruma gelir
Veritabanı Kavramı Program yazarken verileri saklamak için veritabanı dışında metotlar da kullanmıştır/kullanılmaktadır Sıralı dosyalar: (Sequential access files): Program bilgisayarda kendisi için bir dosya açar ve bilgileri oraya kaydeder. Verilerin bakımı ve organizasyonu programcı tarafından yapılmaktadır. Yavaştır ve çok zahmetlidir. Farklı programların verileri birbiriyle uyumsuzdur ve veri paylaşımı çok zordur Büyük boyutlu verilerde sistem çalışamaz duruma gelir
Veritabanı Kavramı Oysa Veritabanı kullanırken: Programcı verilerin depolanması ve bakımı ile ilgilenmez. Bu işleri Veritabanı Yönetim Sistemi denilen bir yazılım yapar. Büyük boyut veriler hızlı bir şekilde işlenebilirler. Örneğin 1.000.000 kaydın işlenmesi sadece saniyeler sürer. Veritabanı yönetim sistemi SQL denen ortak bir protokolü desteklediği için veri farklı programlar tarafından paylaşılabilir ve farklı sistemler için de uyumludur
Veritabanı Yönetim Sistemi Veritabanı Yönetim Sistemi nedir ? Verileri depolayan ve Veritabanlarını organize eden Veriler üzerinde program tarafından gönderilen ekleme/silme/güncelleme gibi istekleri yerine getiren Verilerin güvenliğini sağlayan …..BİR YAZILIMDIR
VTYS Kullanım Avantajlar Veri tekrarının ve tutarsızlığının kontrol edilmesi Yetkisiz erişimin sınırlandırılması Programlama dilleri ile etkili iletişim platformu sağlama Sonuç çıkarmaya elverişli olma Çok kullanıcılı arayüz sağlamak Veriler asasındaki karmaşık ilişkileri tanımlama Veri tutarlılığının sağlanması Yedekleme ve kurtarma fonksiyonlarını sağlama
Veritabanı Yönetim Sistemi VTYS ve VT iki farklı kavramdır VTYS bir yazılımdır, VT ise bir veri topluluğudur, yani fiziksel olarak dosyalarda tutulan bir bilgi kümesidir VTYS veritabanlarını yönetir, depolar, siler, ekler v.b. işlemleri yapar. VT ise üzerinde işlem yapılan bir veri grubundan ibarettir (bu işlemleri kendisi yapamaz) Programcı verileri depolamak için veritabanına doğrudan ulaşmaz, bunun yerine VTYS sistemine erişir ve ona talebini iletir Dolayısıyla sistemde her zaman bir VTYS bulunmak zorundadır
Veritabanı Yönetim Sistemi Client = İstemci, DBMS = Veritabanı Yönetim Sistemi, Database = Veritabanı
Veritabanı Yönetim Sistemi Veritabanına erişen programlar C#, Pascal, Delphi, PHP, ASP.NET v.b. Dillerde yazılan herhangi bir program olabilir Veritabanı yönetim sistemi Ağ/İnternet üzerinden erişilebilir Hizmet (Service) mantığında çalışır Aynı anda birden fazla istemciye yanıt verebilir Aynı anda birden fazla veritabanını barındırabilir
Veritabanı Yönetim Sistemi Veritabanına erişen programlar C#, Pascal, Delphi, PHP, ASP.NET v.b. Dillerde yazılan herhangi bir program olabilir Veritabanı yönetim sistemi Ağ/İnternet üzerinden erişilebilir Hizmet (Service) mantığında çalışır Aynı anda birden fazla istemciye yanıt verebilir Aynı anda birden fazla veritabanını barındırabilir
Veritabanı Yönetim Sistemleri VTYS yazılımları birden fazla türdedir Hiyerarşik VTYS: Veriler alt-üst ilişkisi şeklinde tutulur Ağ VTYS: Veriler birbirlerine yine alt-üst ilişkisi ile bağlıdır ama her verinin birden fazla üstü bulunabilir Nesne Tabanlı VTYS: Veriler nesneler halinde tutulur. İlişkisel VTYS: Günümüzde en çok kullanılan VTYS türüdür. Veriler tablolar şeklinde gruplanır ve her tablo başka tablolar ile mantıksal olarak ilişkilendirilir.
İlişkisel VTYS Müşteri No Firma Fiyat 1 1000 YTL 2 250 YTL 3 350 YTL 4 700 YTL 5 1200 YTL 6 100 YTL 7 150 YTL Firma No Adres 1 A Çanakkale Cad. 43/5 2 B Kayabaşı mah. A Blok 8/4 3 C Gazi Mah 6/7 4 D Müşteri No Müsteri adı Mesleği 1 Ahmet mimar 2 Sema öğretmen 3 Serdar mühendis 4 Zerrin emekli 5 Mehmet Öğretim elemanı 6 Defne Doktor 7 Elif avukat Bir ilişkisel VT’deki farklı üç tablo ve aralarındaki ilişkiler
İlişkisel VTYS İlişkisel VTYS modelinde Tablolar (Tables): Birbirinden bağımsız her bir veri grubunu temsil eder Satırlar (Rows / Records): Her bir tablodaki kayıtları temsil eder Alanlar (Fields / Columns): Bir tablodaki bir kayda ait bir özelliği temsil eder. Ör: Müşterinin adı veya siparişin tarihi İlişkiler (Relations): Tablolar arasındaki mantıksal ilişkilerdir. Tabloda yabancı anahtar (Foreign key) kullanımı ile gerçeklenir.
Tablo tasarımı ve Normalizasyon Tablo tasarlanırken Nesneler tanımlanır Her nesne için bir tablo oluşturulur Her tablo için bir anahtar alan (primary key) seçilir Nesnelerin gerekli özellikleri için tabloya sütunlar eklenir Tekrarlayan özellikler için ek tablolar oluşturulur Tablolar arası ilişkiler tanımlanır
Normalizasyon Normalize edilmemiş tablo. Kira ve müşteri bilgilerini tutuyor. Dikkat edilirse veri tekrarları var, bu da veri güncellemeyi zorlaştırıyor
Normalizasyon Normalizasyon adımları bir tur tekrarlanınca, tabloların yeni yapısı:
Normalizasyon İkinci tur sonunda tabloların yapısı (2. Normal form = 2NF)
Normalizasyon Üçüncü tur sonunda tabloların yapısı (3. Normal form = 3NF) Birincil anahtar (PK)
Tablo tasarımı Birincil anahtar (Primary Key): Bir tabloda ki satırları birbirinden ayırmak için kullanılan alan veya alanlardır. Bu değer satırlarda tekrar etmez Yabancı anahtar (Foreign key): Bir tabloda birincil anahtar olan değer, ilişkili diğer bir tabloda yabancı anahtar olarak tanımlanır Tablolar arası mantıksal ilişki kurmaya yarar Böylece veri tekrarı engellenir
Veritabanı Yönetim Sistemleri Tüm bu anlatılanları herhangi bir VTYS yazılımında kullanabiliriz Çünkü tüm VTYS yazılımları bu standartları desteklemektedir Bazı sık kullanılan VTYS Microsoft SQL Server Oracle MySQL PostgreSQL Informix Firebird …
VTYS Gelecek derste Microsoft SQL Server ile devam edeceğiz…