sistem analizi ve tasarımı

advertisement
VERİTABANI TASARIMI
VERİTABANI TASARIMI KAVRAMI
 Sistem analizi ve tasarımı sırasında sistemde görülen
bir varlık, sınıf, nesne veya bunlara ait bir özellik bile
veritabanı tasarımını etkileyen bir işlem olmaktadır.
 Veritabanı tasarımının gerçekleşebilmesi için
gereksinim belirlemesi, ve gereksinimlerin toplanması,
sistemin yapısının ve mimarisinin analiz edilmesi vb.
eylemlerin gerçekleşmesi gerekmektedir.
 Verilerin saklanması, işlenmesi ve düzenlenmesi gibi
işlemler veritabanı yazılımlerı tarafından
gerçekleştirilmektedir.
VERİTABANI TASARIMI KAVRAMI
 Sisteme alınan veriler bir takım modellemelerden
geçirilir. Bu modellemelerin uygunluğu ve sistem
içinde işleyebilirliği kullanım durumları ile
netleştirilir.
 Netleşen modeller sistem içinde test edilir.
 Diğer taraftan UML yardımıyla sınıf tasarımları
yapılabilir.
VERİTABANI TASARIMI KAVRAMI
 Veritabanı tasarımı, sistemin özelliklerine,
kullanıcıların gereksinim ve isteklerine göre birkaç
değişik yöntemle gerçekleştirilebilir. Bu yöntemler;
ilişkili veritabanı, nesne-ilişkili veritabanı ve nesne
yönelimli şemalarıdır.
 Veritabanı tasarımında yapılması gereken ilk işlem veri
kayıtlarının tutulması için en uygun biçemin
seçilmesidir. Bu işlemi mantıksal veri modelinden
fiziksel veri modeline geçiş takip eder. Daha sonra
tasarlanan veritabanı yapısının iyileştirilmesi
gerekmektedir.
VERİ KAYIT BİÇİMLERİ
 Veri kayıtları için kullanılan temel biçimler dosyalar
ve veritabanlarıdır.
 Dosyalar; verilerin listelendiği elektronik ortamlardır.
 Gerçekleştirilecek işlemler çok kapsamlı ve büyük
değilse dosya kullanımı uygun olabilir. Maliyetleri
düşük olup ve işlemleri gerçekleştirmekte oldukça
hızlıdırlar.
 Veritabanları; dosyalara göre daha geniş kapsamlı ve
işlevsel biçimlerdir. Dosyalarda yapılması uygun
olmayan sınıflama ve sıralama gibi işlemler
veritabanları tarafından daha kolay yapılır.
VERİ KAYIT BİÇİMLERİ
 Veritabanları; veritabanlarının oluşturulması ve
üstünlüklerinin kullanılması “Veritabanı Yönetim
Sistemleri (DBMS)” yazılımları tarafından sağlanır. Bu
yazılımlar veritabanında bulunan tablolar/veriler ve
sistem kullanıcılarının arasındaki arayüz köprüsünü
temsil eder.
 MS Access, MSSQL server, MYSQL server, ORACLE
günümüzde kullanılan veritabanı yönetim sistemlerine
birkaç örnektir.
Dosyalar
 Dosyalarin genel kullanım amacı verilerin listeler
şeklinde elektronik ortamlarda saklanabilmesine ve
üzerinde işlemler yapılabilmesine olanak verir.
İşlemleri gerçekleştirmek için kullanılabilecek farklı
dosya türleri bulunmaktadır.
Veri Dosyaları
 Veri dosyalarının verileri saklama ve bu dosyalarda veri
kayıtları oldukça basit yöntemlerle gerçekleşmektedir.
 Bu dosyalarda veriler genellikle sıralı bir şekilde, bir
varlığa ait bilgiler bir diğerinin ardından gelecek
şekilde tutulmaktadır.
 Varlıklara ait veriler genellikle “,” virgül işareti veya
“tab” sekme boşlukları ile birbirlerinden ayrılırlar.
 Veri değiştirme ve silme işlemlerinde çok kullanışlı
değildir.
 Veri ekleme yapıldığında yeni veriler dosyanın en
sonuna eklenmektedir.
Veri Dosyaları
 Veri dosyaları kullanım amaçlarına göre
özelleşmektedirler. Temel (master) dosyalar, tarama
(look-up) dosyalar, işlem (transaction) dosyalar,
denetim (audit) dosyalar ve kayıt (history) dosyaları
başlıca veri dosya çeşitleridir.
 Temel dosyalar; sistemle ilgili temel ve işlevsel
bilgilerinin tutulduğu dosyalardır.
 Tarama dosyaları; sistemle ilgili doğrulama bilgilerinin
tutulduğu dosyalardır. (Or. Username-password)
Veri Dosyaları
 İşlem dosyaları; işlemlerin yapıldığı sırada yaratılan ve
sonuç temel dosyalara kaydedildikten sonra silinen
geçici dosyalardır.
 Denetim dosyaları; sistem içinde gerçekleşen
değişikliklerin kimler tarafından ne zaman ve nasıl
gerçekleştiğinin tutulduğu dosyalardır.
 Kayıt dosyaları; bu dosyalar eski verilerin depolandığı
ve işlem için kullanılmayan arşiv amaçlı dosyalardır.
Veritabanları
 Sistem analizi ve tasarımı açısından sınıflamanın,
veritabanlarının veriyi tutma ve işleme şekillerine göre
yapılması daha uygun görülmektedir. Miras (legacy),
ilişkisel (relational), nesne (object) ve çok
boyutlu (multidimensional) veritabanları temel
veritabanı türleri olarak kabul edilirler.
Miras Veritabanları
 Bilgi sistemlerinde donanıma en alt düzeyde ve
programcılığa en üst düzeyde yüklenme gereksinimini
karşılayabilecek bir veritabanı sistemi olarak miras
veritabanı kullanılmaktaydı.
 Miras veritabanları verileri saklama ve veriler üzerinde
işlemleri gerçekleştirme şekillerine göre iki temel
gruba ayrılabilmekteydi;
 Hiyerarşik veritabanları
 Ağ veritabanları
İlişkisel Veritabanları
 İlişkisel veritabanları birçok tablodan oluşan bir küme
gibidirler. Küme içindeki her tablonun diğer bir tablo
ile ilişkisi bulunmaktadır. Her tabloda satırlar ve
sütunlar bulunmaktadır.
 Sütunların ilki genellikle birincil anahtar (primary
key) adı ile anılan alandır.
 Birincil anahtarın başka tablolar içinde kullanımına
yabancı anahtar (foreign key) denilmektedir.
İlişkisel Veritabanları
 İlişkisel veritabanları sistemlerinde bir nesne ile ilgili
elde edilmek istenen bir takım bilgilerin sorgulanması
işlemi SQL (Structure Query Language) sorgulama dili
ile gerçekleştirilir.
 İlişkilendirilmiş tablolar üzerinde işlemler gerçekleşir.
Bazı sorgulamalar birden fazla tablodaki bilgiyi
içerebilmektedir. Bu durumda ilgili tablolar içlerindeki
birincil ve yabancı anahtarlar aracılığı ile birleştirilir ve
sankı tek bir tabloymuş gibi davranırlar.
Nesne Veritabanları
 Nesne veritabanları nesne yönelimli yaklaşımla ortaya
çıkmış veritabanı sistemleridir.
 Nesne veritabanlarında sistem içindeki her şey bir
nesne olarak kabul edilir. Her nesne bir sınıftan
türemiş ve her sınıfın alt sınıfları olabilmektedir. Her
nesneye ait tutulan veriler ve davranışlar
bulunmaktadır.
 Jasmine bu tür veritabanlarına bir örnektir.
Nesne-İlişkisel Veritabanları
 Bir çok firma kullanım alanına göre nesne tabanlı ile
ilişkisel veritabanlarını bir arada kullanıyorlar. Bu tür
karma veritabanlarına en iyi örnek ORACLE’dır.
Çok Boyutlu Veritabanları
 Büyük mağazalar gibi veri akışının çok yoğun ve büyük
miktarlarda olduğu sistemlerde bütün veriler veri
ambarında tutulur.
 Çok boyutlu veritabanları bu verileri işleyerek, bir
takım gruplamalarla verileri daha küçük birimlere
ayırarak, verilerin daha kullanışlı olmasına yardımcı
olurlar.
 Elde edilen veri depoları sistemin gerçekleştirdiği
işlemlerin biriyle veya bir grubuyla ilgili
olabilmektedir.
Çok Boyutlu Veritabanları
 Çok boyutlu veritabanları daha çok, birden fazla veri
üzerinden genellemeler ve istatistiksel bilgiler elde
ederek karar mekanizmalarına yardımcı olurlar.
MANTIKSAL VERİ MODELİNDEN
FİZİKSEL VERİ MODELİNE GEÇİŞ
 Gereksinimlerin belirlenmesi sürecinde kullanılan
varlık ilişkili şemaları mantıksal veri modelleme
kapsamındayken, sistemin tasarlanması ve yeni
sistemin geliştirilmesi fiziksel veri modelleme olarak
tanımlanıyor.
 Fiziksel varlık ilişki şemaları, mantıksal veri ilişki
şemalarına göre daha ayrıntılı ve belirleyici bilgiler
bulundururlar.
MANTIKSAL VERİ MODELİNDEN
FİZİKSEL VERİ MODELİNE GEÇİŞ
 Mantıksal şemalar varlıkları, varlıklar arasındaki
ilişkiyi ve varlıkların niteliklerini gösterirken, hangi
verinin nereden nasıl alınacağı, nerede, nasıl
tutulacağı ve nerede, nasıl işleneceğı fiziksel
modellemede temsil edilir.
MANTIKSAL VERİ MODELİNDEN
FİZİKSEL VERİ MODELİNE GEÇİŞ
 Mantıksal varlık ilişki şemalarından fiziksel varlık
ilişki şemalarına geçmek için gerçekleştirilmesi
gerekenler;
 Varlıkların tablo veya dosyalara dönüştürülmesi,
 Niteliklerin alanlara dönüştürülmesi,
 Birincil anahtarların belirlenmesi,
 Yabancı anahtarların eklenmesi,
 Sisteme ilişkili bileşenlerin eklenmesidir.
VERİ KAYIT İYİLEŞTİRMESİ
 Sistemin veritabanı açısından verimli bir işleyişe sahip
olması için yapılması gereken bir takım iyileştirmeler
(optimization) yapılmalıdır.
 Veritabanı tasarımı kapsamında yapılabilecek
iyileştirmeler temelde iki çeşittir.
 Biri veritabanında tutulan verilere erişim hızını
iyileştirme, diğeri ise verilerin sistemde ne kadar yer
tutacağıdır yani kayıt-verimliliği iyileştirmesidir.
Kayıt Verimliliği İyileştirmesi
 Kayıt verimliğinin iyileştirilebilmesi için yapılması
gereken ilk iş veritabanında tekrar eden verilerin
bulunmaması ve bir veri için gereğinden fazla yer
ayrılmamasıdır.
 Yabancı anahtar dışında birden fazla tabloda tekrar
edilen her veri fazladan tutulan ve sistemi birçok
açıdan zayıflatan bir veridir.
 Veritabanında alanlar oluşturulurken bir takım
tanımlamalar yapılır (int(7), string(10) gibi). Bunlar
tutulacak veri türünü ve bu tür için kaç bitlik yer
ayrılacağını belirler.
Erişim Hızı İyileştirmesi
 Verilerin olası en düşük sürede istenen şekilde elde
edilmesi bir sistem için istenen bir durumdur. Kayıt
verimliliği sonucu meydana gelen bir çok küçük
tablolar bulunmakta, bu da veri boyutunu
arttırmaktadır.
 Kayıt verimliliğiyle ortaya çıkan bu zayıflığı
gidermenin bir kaç yolu bulunmaktadır;
Anormalleştirme (Denormalization)
 Bir işlem için birden fazla tablonun tek bir tabloya
dönüştürülmesidir.
 Küçük tablolardan her defasında ayrı işlem yapılması
verimli değildir. Bu tür küçük tabloların bir tabloda
birleştirilmeleri veri erişim verimliliği açısından
olumlu sonuçlar yaratacaktır.
Kümeleme (Clustering)
 İnternet üzerinde gerçekleştirilen bilgi erişim işlemleri
kümeleme işlemlerine benzerdir. İnternet üzerinden
erişebilecek bilgi miktarı sonsuz denebilecek kadar
çoktur. Bu bağlamda bilgilerin iyi gruplanması gerekir.
 Kümeleme işlemi bir veri ambarı, veri deposu veya
veritabanında yer alan benzer ve ilişkili verilerin erişim
açısından kolaylık sağlanması amacıyla bir arada
tutulması ile sağlanmaktadır.
Dizinleme (Indexing)
 Dizinleme işlemi bir maket veya yönlendirici panonun
işlevine benzemektedir. Erişebilecek veri miktarı fazla
olunca, bütün veritabanındaki verilerin taranması
verimli bir yöntem değildir ve oldukça fazla bir zaman
almaktadır.
 Bir dizin üzerinden arama yapmak – bir bilgilendirme
panosuna göz gezdirmek gibi – veri erişim hızı
açısından çok daha verimli bir yöntem olacaktır.
Tahmini Veri Boyutu
 Veritabanı tasarımını etkileyen bir diğer faktör de
donanımdır. Yani veritabanı için yapılan iyileştirmeler
donanımla uyumlu olmayabilir.
 Dolayısıyla donanımın desteklediği bir veri miktarı
hedefi konmalı ve tüm iyileştirme çalışmaları bu
hedefe göre yapılmalıdır.
 Böylece veritabanı tasarımları, veri kayıt verimliliği
açısından orta düzeyde, veri erişim verimliliği
açısından orta düzeyde, fakat sistemin genel verimliliği
açısından en üst düzeyde sağlanabilmektedir.
Download