İlişkisel Veritabanı Yaklaşımı:

advertisement
İlişkisel Veritabanı Yaklaşımı:
İngilizce'de Relational Database Management System (RDBMS) olarak ifade edilir.
İlişkisel veri tabanı yönetim sistemi verilerin tablolarda satır ve sutunlar halinde tutulduğu ve
yüksek bir veri tutarlılığına sahip veri depolama sistemidir.
ilişkisel veri tabanını çeşitli tablolar arasında organize edilmiş verilerden oluşan veri tabanı
olarak açıklayabiliriz. Bu farklı tablolar arasındaki veriler, çeşitli anahtarlar vasıtası ile
birbirlerine bağlanırlar. İlgili tablolarda, sütunlar arasında bir anahtar sütun yeralır. Bu anahtar
sütun aracılığı ile birden çok tablo verileri birbiriyle bağlantı sağlayabilir ve herhangi bir
sorgulamada birlikte görüntülenebilir. Bu tür veri tabanları arasında Ms Access, Ms Sql
Server. Mysql, Oracle, dBase, Progress, Informix, Ingres,...vb. gelmektedir.
Örnek vermek gerekirse Büyük bir firma diyelim ki internette ticaret yapama karar verdi. Bu
nedenle ürünlerin listesini bir tabloda tutup Web sitesi aracılığı ile güncellenebilir
yapacaksınız.
Öncelikle iki adet liste yapmamız lazım, birincisi ürünler listesi ikincisi üyeler listesi. Üyeler
alışveriş yaptıklarında hangi ürün veya ürünleri aldıklarını gösteren 3. bir liste lazımdır. Bu
listeye de sipariş listesi diyebiliriz.
Ürün bilgilerini kaydedeceğimiz ÜRÜNLER tablosu
MÜŞERİ bilgilerini kaydedeceğimiz MÜŞTERİLER
tablosu, Web programlamada genelde üye listesi olarak
oluşturulur.
Ve sipariş durumunda sipariş bilgilerini tutacağımız
SİPARİŞLER tablosu
Bir ilişkinin olabilmesi için en az iki tablonun olması lazım. Ve bu iki tablodaki verilerin bir
şekilde birbirleri ile ilişkilendirilmesi gerekir. Ürünler ve siparişler tablomuza bakacak
olursak. Siparişin verilebilmesi için ürünün ürünler tablosunda kayıtlı olması lazım. Ürünler
tablosunda karşılığı olmayan ürünü sipariş vermesiniz.
Olaya tersinden bakacak olursak, sipariş verilen bir ürünün ayrıntılarına bakmak istediğimizde
sipariş tablosunda barkod numarası alınırız daha sonra aynı barkod numarasına karşılık gelen
ürünü bulmak için ürünler tablosuna bakarız. Ürün tablosu bize ürünler ilgili bütün ayrıntıları
verir.
Ürünler tablosundaki barkod no birincil anahtardır „parimary key‟. Sipariş tablosundaki
sipariş verdiği ürün alanı yabancı anahtar „foregin key‟ alandır.
Access veritabanında oluşturulmuş tabloların ilişkisel diyagramı aşağıdaki gibidir.
Bir veri tabanı olması gereken özellikler.
1- Veri Tabanı Güvenliği
Güvenlik veri tabanına göre değişiklik göstermektedir. Paradox ve Dbase gibi veri
tabanları sadece alan bazında güvenlik sağlayabilmektedir. Tablolar şifrelenerek korumalı
erişim sağlanabilmektedir.
Veri tabanı yönetim sistemlerine daha çok güvenlik yönetimi bölümünden, güvenlik
sağlanmaktadır.
2- Hareketler(Transaction)
Transaction, bir veya birkaç tablo üzerinde yapılan değişikliklerin, eklemelerin, veri
tabanına kalıcı olarak işlenmesi(commit) yapılmadan önce, kayıt işleminin başarılı olup
olmadığını denetleyebilen bir grup harekete (SQL ifadelerine) denmektedir. Eğer bu
hareket herhangi bir şekilde başarısız olursa tüm yapılan değişiklikler geri alınır(rollback).
Donanım hatalarına(elektrik kesintileri sistem çökmesi gibi), karşı veritabanı üzerinden
sağlamak amacıyla hareket kullanılır.
Yukarıda verdiğim Ürünler, Sipariş, Müşteriler tablolarına kayıt işlemi ilişkisel bağlantı
sayesinde aynı anda gerçekleşmektedir. Diyelim ki bir sipariş geldi, siparişin kimden
geldiği ile ilgili müşteri bilgileri müşteri tablosuna, ürünler ile ilgili stok durum bilgileri
vb ürünler tablosuna, ve sipariş bilgileri siparişler tablosuna kaydolur. Bu üç tablo
arasında daima bir tutarlılık olmalıdır. SQL ifadelerinin bu şeklinde çalışma biçimine
atomik olarak çalışması denmektedir.
BEGIN TRANSACTION
INSERT INTO SIPARIS(SIPNO,MUSNO,URUNKODU,MIKTAR)
VALUES(23,5,1001,4)
UPDATE MUSTERI
SET BORC=BORC+TOPLAMBORC
WHERE MUSNO=5
UPDATE URUNLER
SET MIKTAR=MIKTAR-4
WHERE URUNKODU=1001
COMMIT
Yukarıdaki üç hareket işleme yapsındaki SQL ifadeleri 3 tabloda da değişiklik meydana
getirmektedir. Bu harekerin başarıyla tamalanması ekleme(insert) güncelleme(update), ve
güncelleme(update) SQL ifadelerinin hepsinin eksiksiz olarak gerçekleştirilmesini sağlar.
İlişkisel Bütünlük,Saklı Prosedürler ve Tetikleyiciler:
İlişkisel Bütünlük (relational İntegrity)








Null değerler (Nulls)
Özelliğin, verilmiş satır için uygulana bilmeyen veya şuan belli olmayan değerini
ifade eder
Varlık bütünlüğü (Entity İntegrity)
Taban ilişkide birincil anahtar özelliği null değer alamaz
Erişimsel Bütünlük (Referential İntegrity)
İlişkide yabancı anahtar varsa, bu anahtarın değeri, ana ilişkinin aday anahtarının her
hangi satırındaki değerine eşit olmalı veya null değer almalıdır
Şirket sınırlamaları
Kullanıcılar veya veri tabanı yöneticisi tarafından belirlenmiş kurallar
Saklı Prosedürler(Stored procedures) : Bir veritabanı sunucusu üzerinde kayıtlı bulunan
SQL komutlarından oluşan bir prosedür kümesi. Bu prosedürler genellikle sunucu
üzerinden veritabanı ile ilgili görevleri yerine getirirler.
Tetikleyiciler(Tiggers):Belirli komutların otomatik olarak çalıştırılmasını sağlayan SQL
komutları kümesidir. Bu komutlar yerine saklı prosedürlerde kullanılmaktadır.
Veritabanı çeşitleri
1.
Microsoft Access
Microsoft firmasının Office paketi içinden çıkan Access, paralı veritabanları arasında nispeten
ucuz olarak göze çarpar. Küçük ölçekli uygulamalardaki gereksinimlerinizi karşılayabilir.
Eğer bir web sitesinde veri miktarı ve aynı anda yapılan işlem sayıları az ise, Access
kullanabilirsiniz. Tek bir veri tablosunda 2 GB a kadar veri depolayabilir ve aynı anda 255
bağlantıya izin verebilirsiniz. Access, MS Windows sistemlerinde kullanılamamakta, bu da
yaygınlaşmasını engellemektedir. “Transaction locking” özelliğine sahiptir, ancak “trigger”
ve “stored procedure” özelliklerine sahip değildir.
2.
MySQL
MySQL Inc. Tarafından kodlanan MySQL, Access ile karşılaştırıldığında daha güvenlidir.
Windows‟un yanı sıra Linux, OS/2, Solaris, AIX ve birçok işletim sistemini desteklemesi
nedeniyle çok yaygındır.. Ev kullanıcıları tarafından, kolay kurulumu ve gelen kurulum
paketleri nedeniyle sıkca tercih edilmektedir. Tablo başına 8 TB veri depolayabilmektedir.
MySQL‟ in en büyük dezavantajlarından biri ücretsiz olmasından kaynaklanan destek
eksikliğidir. Özellikle web uygulamaları için cok hızlıdır. Transaction‟ ları desteklemediği
için alabildiğine yalındır ve transaction desteği olmadan gerçekleştirilebilecek web
uygulamaları için çok hızlı bir alternatiftir. Oldukça fazla yazılım desteği bulunmaktadır.
3.
IBM DB2
IBM firmasının ürünü olan DB2, Access ve MySQL e göre daha performanslı, ancak küçük
işletmelere göre daha yüksek maliyete sahiptir. Windows ve lunix sistemlerinde çalışabilir.
“Transaction locking”, “trigger” ve “stored procedure” özelliklerine sahiptir.
1.
Informix
Ü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.
1.
Microsoft SQL Server
Yine Microsoft firmasının bir ürünü olan Microsoft SQL Server (MSSQL), iyi bir
performansa sahiptir. En büyük dezavantajı, sadece Windows üzerinde çalışabilmesidir.
Kullanım kolaylığı, güvenilirliği ve işlem gücüyle dikkat çekmektedir. Maliyeti diğer
veritabanlarına göre yüksektir. Tablo başına 4 TB veri depolayabilmektedir. “Transaction
locking”, “trigger” ve “stored procedure” özelliklerine sahiptir.
1.
PostgreSQL
PostgreSQL, veritabanları için yukarıda bahsedilmiş olan ilişkisel modeli kullanan ve SQL
standart sorgu dilini destekleyen bir veritabanı yönetim sistemidir.
PostgreSQL aynı zamanda iyi performans veren, güvenli ve geniş özellikleri olan bir
DBMS‟tir. Hemen hemen tüm UNIX ya da Unix türevi (Linux, FreeBSD gibi) işletim
sistemlerinde çalışır. Ayrıca NT çekirdekli tüm Windows sistemlerde de çalıştırılabilir.
Ücretsiz ve açık kodludur.
PostgreSQL diğer ticari ya da açık kodlu veritabanlarında bulabileceğiniz özelliklerin hemen
hemen hepsini (ya da daha fazlasını) kapsar.
PostgreSQL özellikleri (PostgreSQL FAQ‟da listelendiği gibi):
Transactions
Subselects
Views
Foreign key referential integrity
Inheritance
User-defined types
Rules
1.
Oracle
Oracle, dünyanın en güçlü ve güvenilir veritabanı olarak gösterilmektedir, ancak çok yüksek
maliyeti nedeniyle sadece büyük kurumların tercih edebilecekleri bir veritabanıdır. Windows
ye Unix sistemlerinde kullanılabilmektedir. Oracle, sınırsız sayıda tabloları desteklemektedir.
Çok büyük yazılım desteği vardır.
1.
Interbase
Linux platformu üzerinde çalışan, ücretsiz bir veritabanı sunucusudur. Yaygın değildir.
Ücretsizdir.
1.
Progress
Linux ve Windows platformu üzerinde çalışan çok kuvvetli bir veritabanı sunucusudur.
İstemci sunucu (clint/server) veri tabanları
Tek katmanlı, iki katmanlı ve çok katmanlı database yapıları
Tek katmanlı(single-tier): Genel olarak local veritabanları tek katmanlıdır. Tek katmanlı yapıda
program veritabanına direk ulaşır ve yapılan işlemler (kayıt ekleme, kayıt silme, değiştirme) anında
gerçekleştirilir.
İki katmanlı(two-tier): Burada program client tarafında çalışır. Client tarafında çalışan program
gerekli sürücüleri kullanarak serverdaki veritabanına ulaşır.
Çok katmanlı(multi-tier): Burada program yine client tarafında çalışır. Program database server'la
direk bağlantı kurmaz. Server tarafında çalışan bir application server ile bağlantı kurar. Bu yapı
genellikle güvenlik ve hız amacıyla kullanılır.
Download