Showing posts with label veritabanı özet. Show all posts
Showing posts with label veritabanı özet. Show all posts

Monday, August 27, 2007

Veritabanı Nedir?

GİRİŞ

• Bu dökümanda aşağıdaki konular ele alınacaktır

  1. Veritabanı tanımı
  2. SQL nedir?
  3. Veritabanlarının kullanım alanları
  4. Relational veritabanlarının açıklanması
  5. Veritabanı çeşitleri ve açıklamaları
  6. Hangi veritabanı nerede kullanılmalıdır?
  7. e-posta listeleri

Veritabanı nedir?

http://www.m-w.com/ adresindeki 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. Şuanda çalışmakta olduğum ortramdan çıkardığım tanımıysa “You know DB is most complicated arena , just behind Operating system” olarak değerlendirilmesi gerken en karmaşık ve önemli yapılardandır.

• 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 (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

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.

• 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ığı

• Bilimsel formüllere gereksinmeniz olacak mı?

• Veriyi paylaşma gereksinmeniz olacak mı?

• Veriyi webde sunacak mısınız?

Relational Database Modeli (RDBMS)

• 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”, “Aydın”, “2001”}.

• {“ab02”, “İstanbul”, “2002”}

• Ö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

• {“ab02”, “Aydın”}

• – eksik bileşen

• {“ab02”, “Aydın”, “2002”, “Şubat” }

• – fazla bileşen

• {2002, “ab02”, “Aydın”}

• – yanlış bileşen tipleri (yanlış sırada)

• 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.

• 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.).

• 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

• Öncelikle ne yapılacağına karar verilmelidir:

  1. 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?
  2. Sitenizi günde kaç kişi ziyaret edecek?
  3. Aynı anda kaç işlem yapılacak?
  4. Güvenlik ne ölçüde olacak?

Verilerinizin güvenliği ne ölçüde olacak?

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.

  1. Microsoft Access (Hala bankalarda kullanılan m.ö’den kalan db)
  2. MySQL (tam anlamıyla sp yazamadığın nasa’nın nasıl kullandığına hayret ettiğim db)
  3. IBM DB2 (Yetenekleri hiçbirzaman Oracle kadar olamayacak pahalı db)
  4. Informix
  5. Microsoft SQL Server (Her ms ürünü gibi kullanmaya mecbur kalacağım db)
  6. PostgreSQL (Favorim – Open Source’un en kral db’si)
  7. Oracle (Hala var olan en yetenekli ve gelişmis db)
  8. 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.

• Anlıyacağınız Oracle’ın ücretsiz haline yakındır, 14tb veri tuttuğunu gözlerimle gördüm :)

Oracle

• Oracle, Inc.

• Dünyanın en güçlü ve güvenilir veritabanı olarak gösterilmektedir.

• Support konusunda sorunu olmayacak, yüzlerce tool’u olan bir efsanedir.

• Çok yüksek maliyetlidir

• Windows, Unix, Linux

• Oracle, sınırsız sayıda tabloları desteklemektedir.

Hangi Veritabanını Seçmeli?

Çok derin ve stratejik bir karar olmakla birlikte çok çok sığ bakarsak olaya;

• 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 makineler ve Server'lar üzerinde PostgreSQL kullanılabilir.

• Oracle ise çok yüksek güvenilirlik ve işlem gücü gerektiğinde tercih edilen bir veritabanı sunucusudur.