Veritabanı Nedir? www.asif.co.sr GİRİŞ 1. 2. 3. 4. 5. 6. Bu sunuda aşağıdaki konular anlatılacaktır: Veritabanı tanımı SQL nedir? Veritabanlarının kullanım alanları Relational veritabanlarının açıklanması Veritabanı çeşitleri ve açıklamaları Hangi veritabanı nerede kullanılmalıdır? Veritabanı nedir? Merriam-Webster sözlüğünde bir veritabanı : “a usually large collection of data organized especially for rapid search and retrieval (as by a computer).” olarak tanımlanır. Veritabanı nedir? Kitaplıklar, uygulamalar ve yardımcı programların birleşmesinden oluşur. Verilerin saklanması ve yönetilmesi ile ilgili konulardaki ayrıntılardan veritabanı yöneticilerini kurtarır. Kayıtların güncellenmesi ve kayıtlar üzerinde araştırma yapılması da mümkündür. SQL Nedir? SQL (Structured Query Language) Veritabanı dilidir. Program geliştiriciler, bir veritabanına veri eklerken, silerken, güncellerken veya sorgularken bu dili kullanırlar. ANSI ve ISO standardıdır. Select, Delete, Update, Where Neden Veritabanı? Gerçekten veritabanına gereksinmeniz var mı? Veritabanları, verilerin saklanması ve yönetilmesi için kullanılmalıdır. Küçük bilgiler için metin dosyaları yeterli olabilir. Amacınızın iyi belirlenmesi gerekir. Neden Veritabanı? Veri sadece bir konuyu içeren bir listenin içinde mi? Sorun karmaşık mı? İstatiksel bir analiz mi yapmak istiyorsunuz? Bir yönetim mi yapacaksınız? Metinsel veritabanları Kullanım kolaylığı Neden Veritabanı? Bilimsel formüllere gereksinmeniz olacak mı? Veriyi paylaşma gereksinmeniz olacak mı? Veriyi webde sunacak mısınız? Relational Database Modeli Tablolardaki kayıtlar matematiksel açıdan tuple olarak tanımlanırlar. Bir tuple tanımlanmış bir veri tipi olan bileşenlerden oluşan sıralı grup olarak tanımlanır. Tüm tuplelar aynı sayıda ve tipte bileşenlerden oluşur. {“ab01”, “Isparta”, “2001”}. {“ab02”, “Konya”, “2002”}. Relational Database Modeli Örnekteki her bir tuple da 3 bileşen bulunmaktadır: Kaçıncı akademik bilişim olduğu (string) Hangi ilde yapıldığı (string) Yıl (numeric) Relational veritabanlarında bu “kümeye” ya da tabloya eklenen tüm kayıtlar aynı biçemde olmalıdırlar Relational Database Modeli {“ab02”, “Konya”} – eksik bileşen {“ab02”, “Konya”, “2002”, “Şubat” } – fazla bileşen {2002, “ab02”, “Konya”} – yanlış bileşen tipleri (yanlış sırada) Relational Database Modeli Ayrıca tuple lardan oluşan bir tabloda aynı veriler bulunmaz.(No duplicate record). Dolayısıyla relational veritabanlarındaki herhangi bir tabloda birbiriyle tamamen aynı iki kayıt (row or record) bulunamaz. Bu, çok gereksiz bir sınırlama olarak görünebilir. Örnek vermek gerekirse, aynı kullanıcının aynı malı iki kez sipariş etmesi görünürde engellenmiştir. Bunu da tabloya bir bileşen ekleyerek çözebilirsiniz. Relational Database Modeli Bir kayıttaki her bir bileşen “atomik”, yani bir veri olmalıdır; başka bir kayıt ya da diğer bileşenlerin listesi olamaz. Tablodaki bileşenlerin veri tipleri de üsttekilerle ve dolayısıyla tablo tanımlarındakilerle aynı olmalıdır. (Veritabanı tarafından desteklenen veri tiplerinden biri olmalıdır.). Relational Database Modeli Birbiriyle eş kayıtları ayırmak için kullanılan bileşenlere key denir. referential integrity. Tablodaki bir kaydı diğer tüm kayıtlardan ayırmak için kullandımız bileşene, primary key adı verilir. Primary key, o kaydı “unique” yapar. Tüm relational veritabanlarında her bir tablo ya da relationda mutlaka primary key olmalıdır. Veritabanı çeşitleri 1. 2. 3. 4. 5. Öncelikle ne yapılacağına karar verilmelidir: Bu veritabanı ile neler yapacaksınız? Küçük bir şirket çalışanlarının özel bilgileri mi tutulacak, yoksa büyük bir şirketin binlerce müşterilerinin bilğileri mi? Sitenizi günde kaç kişi ziyaret edecek? Aynı anda kaç işlem yapılacak? Güvenlik ne ölçüde olacak? Verilerinizin güvenliği ne ölçüde olacak? Veritabanı çeşitleri Yanlış bir kanı : “Paralı ürünler iyidir, ücretsiz ürünler iyi değildir!” Linux, bu tezi çürüten, bilgisayar sektöründeki son yıllardaki en iyi konudur. Bir veritabanının ücretsiz olup olmamasından çok işinizi görüp görmeyeceği önemlidir. Veritabanı çeşitleri 1. 2. 3. 4. 5. 6. 7. 8. Microsoft Access MySQL IBM DB2 Informix Microsoft SQL Server PostgreSQL Oracle Interbase MS Access Microsoft Office ürünüdür. Küçük ölçekli uygulamalar içindir. Tablo başına 2 GB a kadar veri depolayabilir. Aynı anda 255 bağlantıya izin verebilir. Linux/MAC sistemlerinde kullanılamaz. “Transaction locking” özelliğine sahiptir, ancak “trigger” ve “stored procedure” özelliklerine sahip değildir. MySQL MySQL Inc. Windows, Linux, OS/2,Solaris, AIX vb. “trigger” ve “stored procedure” özelliklerine sahiptir, ancak “Transaction locking” özelliği bulunmamaktadır. Tablo başına 2 GB veri depolayabilir. IBM DB2 IBM Access ve MySQL e göre daha performanslı, ancak küçük işletmelere göre daha yüksek maliyete sahiptir. *nix ve Windows üzerinde çalışabilir. Transaction locking”, “trigger” ve “stored procedure” özelliklerine sahiptir. Informix Illustra Ücretli ve güçlü bir veritabanıdır. Orta ölçekli işletmelerin yükünü kaldırabilecek kapasitededir. 1994’deki Postgres kodundan geliştirilmeye başlanmıştır. MS SQL Server Microsoft Dezavantajı: Sadece Windows üzerinde çalışabilir. Yüksek maliyet Kullanım kolaylığı, güvenilirliği,işlem gücü Maliyeti diğer veritabanlarına göre yüksektir. Tablo başına 4 TB veri depolayabilmektedir. “Transaction locking”, “trigger” ve “stored procedure” özelliklerine sahiptir. PostgreSQL PostgreSQL Global Development Group Linux, Unix, BSD, Windows, AIX vb. Ücretsiz, akademik bir veritabanı Çok güçlü işlem yapısı Veri güvenliği ön planda Tablo başına 64 TB veri tutabilme özelliği “Transaction locking”, “trigger” ve “stored procedure” özelliklerine sahiptir. Oracle Oracle, Inc. Dünyanın en güçlü ve güvenilir veritabanı olarak gösterilmektedir. Çok yüksek maliyet Windows, Unix, Linux Oracle, sınırsız sayıda tabloları desteklemektedir. Hangi Veritabanını Seçmeli? Küçük yoğunlukta trafik: MySQL ya da Access Daha büyük ve orta ölçekli uygulamalar içinse, MS SQL ya da Linux üzerinde PostgreSQL kullanılabilir. Oracle ise çok yüksek güvenilirlik ve işlem gücü gerektiğinde tercih edilen bir veritabanı sunucusudur END www.asif.co.sr