27 Ocak 2011 Perşembe

İLİŞKİSEL VERİTABANI

Günümüzde en çok kullanılan veritabanı modelidir. İlişkisel veritabanının iki önemli özelliği vardır :
* Tablo : Veriler satır ve sütunlardan oluşan tablo halinde tutulur.
* Şema : İlişki adı ve ilişki niteliklerinin adlarından oluşur.
En önemli özelliği ise tablolar birbirleriyle ilişkilidir. Bir veritabanının ilişkisel olması için en az iki tablo olması ve bu tabloların da birbirleriyle ilişkili olmaları gerekir. Her tablo bir varlığı temsil eder ve her tablo bir varlığa aittir. İlişkisel veritabanında veriler tablolara parçalanarak saklanır.
Tablolarda bir başka önemli husus primary key (süper anahtar, birincil anahtar) kavramıdır. Primary key, tablolarda tektir. Veritabanlarında bu anahtar unique ve aynı zamanda not null'dır; yani tektir ve bu alan hiçbir şekilde boş geçilemez demektir. Bir diğer kavram da foreign key (yabancı anahtar)'dır. Bir tabloda foreign key alan varsa farklı tablo ya da aynı tabloda kayıt ilişkisi söz konusudur. Referans olarak primary key alanını kontrol eder. Primary key harici değer insert edilemez. Tekrar edip etmeme kısıtı yoktur. Genellikle diğer tablolar ile ilişki kurmak için kullanılır.

20 Ocak 2011 Perşembe

Varlık-İlişki Modeli (Entity Relationship Model)

Varlık İlişki Modeli; veri modellemede ve çözümlemede ilişkilerin ortaya konmasında kullanılan bir araçtır. 1976 yılında Chen tarafından geliştirilen bir modeldir. Tabloların semboller ile ifade edilmesidir.

Varlık (entity) :

Var olan ve benzerlerinden ayırt edilen her şeye varlık denir. Kalem, masa, defter, sandalye, vb. hepsi birer varlığı temsil eder.

Varlık Kümesi (entity set) :

Aynı türdeki varlıkların biraraya gelmesi ile oluşturulan kümeye verilen isimdir.

Nitelik (attributes) :

Varlık kümesindeki varlıkların özelliklerini göstermek ve varlıkları birbirinden ayırt etmek için kullanılır.

İlişki (relationship) :

Varlıklar arasındaki bağlantıya verilen isimdir.
varlık-İlişki sembolleri :
Günümüze kadar çok sayıda veri modelleri geliştiriilmiştir. Bunları 4 grupta toplamak mümkündür. :
1) Hiyerarşik veri modeli (Hierarchical data model); 1960'lı yıllarda geliştirilen veri modelidir. Hiyerarşik veri modeli, ana-bilgisayar ortamlarında çalışan yazılımlar tarafından kullanılmaktadır. Bu model, ağaç yapısına benzer. Bilgileri bir ağaç yapısında saklar. Kök (root) ve bu köke bağlı bağlı dal (branch) kayıtlar bu veri tabanının yapısını oluşturur. Bu modelde çoklu ilişkileri temsil edebilmek için, varlık tiplerinin her ilişki için ayrı ayrı tanımlanması gerekir ki; bu da gereksiz veri tekrarına sebep olur. Bu türde en çok kullanılan yazılım, IBM tarafından çıkarılan IMS'dir.
2) Ağ veri modeli (Network data model); 1960'lı yıllardan sonra geliştirilen modeldir. Veriler birbirine ağ şeklinde bağlanmıştır.
3) İlişkisel veri modeli (Relational data model); günümüzde en yaygın kullanılan veri modelidir. 1970-1980'li yıllarda Kod tarafından ortaya atılmış ve yaygınlaşıp kullanılmaya başlanmıştır. İlişkisel veri tabanını çeşitli tablolar arasında organize edilmiş verilerden oluşan veri tabanı olarak açıklanabilir. Bu farklı tablolar arasındaki veriler, çeşitli anahtarlar vasıtası ile birbirine bağlanırlar. İlgili tablolarda, sütunlar arasında bir anahtar sütun yer alır.
4) Nesneye Yönelik veri modeli (Object-Oriented data model); Son yıllarda, nesneye yönelik programlama dillerinin kullanımına paralel olarak nesneye yönelik veri tabanları da günümüzde önem kazanmaktadırlar. Nesneler, bir tabloda yer alan bir kayıttan çok daha karmaşık bir yapıya sahiptirler ve daha esnek bir yapıda daha kullanışlı düzenlenebilmektedirler. Nesneye dayalı bir veri tabanında yapısı gereği arama işlemleri çok hızlı yapılabilmektedir. Özellikle büyük tablolarla uğraşırken ilişkisel veri tabanlarından çok daha hızlı sonuca ulaşmaktadırlar, ancak çalışmanın mantığı tümüyle değişmektedir.

19 Ocak 2011 Çarşamba

Veritabanı nedir?

Veri; kaydedilebilir bilinen gerçeklerdir.
Dosya sisteminde, kullanılacak dosyanın yapısı ve dosya erişim biçimleri program tarafından oluşturulur. Dosya sistemleri bir standarda sahip değildir. Dosya sistemi kullanıcı ile veri tabanı yönetim sistemi arasında arabirimlik yapar.
Veri tabanı (Database); düzenli bilgiler topluluğudur. Bilgisayar terminolojisinde, sistematik erişim imkanı olan, yönetilebilir, taşınabilir, birbirleri arasında tanımlı ilişkiler bulunabilen bilgiler kümesidir. Birbirleriyle ilişkiseldir. Veri tekrarı yok; verilerin güvenliği ve dil bağımsızlığı vardır.
Veri tabanında en önemli kavram, kağıt yığını ya da bilgi parçalarının tanımlanmasıdır; buna şema (schema) denir. Şema, veritabanında kullanılacak bilgi tanımlarının nasıl modelleneceğini gösterir. Buna Veri Modeli, yapılan işleme de Veri Modelleme denir.
Veri tabanı sistemleri ise bilgisayar ortamında büyük boyutlu düzenli veri kümelerinin yönetimi için kullanılan bir araçtır. Veri tabanlarındaki veriler gereksiz tekrarlardan arınmış olarak, düzenli biçimde bilgisayar belleğinde saklanır, aynı zamanda bu veriler birçok uygulama tarafından paylaşılan verilerdir. Bu veriler üzerinde birçok işlem yapmak mümkündür. Bunlar; güncelleme, ekleme, silme gibi işlemlerdir. Bu işlemler ile verileri değiştirmek mümkündür. Yalnız bu verilere doğrudan erişmek söz konusu değildir. Java ya da C#'ta yazdığımız uygulamalardaki derleyiciler ile veya işletim sistemi komutları ile bu verilere erişemeyiz. Bu ancak, Veri Tabanı Yönetim Sistemi (Database Management System) olarak adlandırılan yazılımlar ile mümkündür. Bu sistem ile bilgisayarın belleklerinde tutulan verinin fiziksel yapısı kullanıcılardan saklanmış olur ve kullanıcı soyut terimler;yani mantıksal yapılar sayesinde veri tabanı ile ilişki kurar. Veri üzerinde değişiklik yapmak ve verileri tanımlamak Veri Tabanı Yönetici (Database Administrator) olarak adlandırılan, veri tabanından sorumlu olan kişiler tarafından yapılır.
Veri tabanında veriler üzerinde işlem yapmak için bir dil kullanılır; buna sorgulama dili dili denir.
Veri Tabanı Yazılım araçları şunlardır :
* Access; Microsoft tarafından Microsoft Windows İşletim Sistemi tabanında çalışmak üzere yazılan ve dağıtılan veri tabanı programıdır. Küçük ölçekli uygulamalar içindir. Tablo başına 2 GB'a kadar veri depolayabilir. "Transaction Logging" özelliğine sahiptir; "Trigger" ve "Stored Procedure" özelliklerine sahip değildir.
* MySQL; multi-threaded (çok iş parçacıklı) ve multi-user (çok kullanıcılı) bir veri tabanı yönetim sistemidir. Tablo başına 4 TB veri depolayabilir. "Trigger" ve "Stored Procedure" özelliklerine sahiptir; "Transaction Logging" özelliği yoktur.
* DB2; IBM tarafından geliştirilmiş ilişkisel veri tabanı yönetim sistemidir. "Transaction Logging", "Trigger" ve "Stored Procedure" özelliklerine sahiptir.
* Informix; IBM tarafından geliştirilmiş ilişkisel veri tabanı yönetim sistemidir. Daha çok OLTP (Online Transaction Proccessing) uygulamalarında kullanılır.
* SQL Server; Microsoft'un veri tabanı sunucu yazılımıdır. Sadece Windows üzerinde çalışabilir. Tablo başına 4 TB veri depolayabilir. "Transaction Logging", "Trigger" ve "Stored Procedure" özelliklerine sahiptir.
* PostgreSQL; SQL standart sorgu dilini destekleyen, veri tabanları için ilişkisel modeli kullanan ücretsiz, akademik bir veri tabanıdır. Tablo başına 64 TB veri depolayabilir. "Transaction Logging", "Trigger" ve "Stored Procedure" özelliklerine sahiptir. Çok güçlü işlem yapısı vardır ve aynı zamanda veri güvenliği de ön plandadır.
* Oracle; Oracle şirketinin bir ürünüdür. Sınırsız sayıda tabloları destekleyen ilişkisel bir veri tabanı yönetim sistemidir. En güveniliridir. Büyük miktarda veri tutabilmekte ve verilerin depolandığı alanları ayarlamak mümkündür. Aynı anda çok sayıda kullanıcıya hizmet verebilmektedir. 7/24 hiç kapatılmadan çalışabilmektedir.