Veri Tabanı

advertisement
YÖNETİM
BİLİŞİM
SİSTEMLERİ
7. Hafta Notu
Bilişim ve Veri Tabanları
Dersin Koordinatörü: Prof. Dr. Orhan TORKUL
Dersi Veren : Öğ.Gör.ERKAL ETÇİOĞLU
YÖNETİM BİLİŞİM SİSTEMLERİ
7. Hafta Ders Notu
BİLİŞİM VE VERİ
TABANLARI
VERİ TABANLARI, VERİ AMBARI
ÖĞRENME ÇIKTILARI
 Veri modellemede varlık-ilişki diyagramlarının rolü nedir?
 Veri tipleri nelerdir ve hangi durumda hangi veri tipi kullanılmaktadır?
 Veri tabanı nedir?
 Bir bilişim sisteminde veri depolama için genellikle tek bir dosya niçin yetersizdir?
 Veri tabanı modelleri nelerdir?
 Veri tabanı tasarımı nasıl yapılır?
 Veri ambarı nedir, ne işe yarar?
Sayfa 1
YÖNETİM BİLİŞİM SİSTEMLERİ
7. Hafta Ders Notu
Veri Modelleme
Veri modelleme, bir işletmenin, kurumun hatırlamaya değer bulduğu verilerin şekil ve metin
olarak ifade edilmesidir. Diğer bir deyişle bir işletmede teknik ve teknik olmayan herkesin
bilişim ihtiyaçlarını ifade etmeye çalışırken birbirini anlamada kullanabileceği görsel bir
iletişim dilidir. Yazılım geliştirmenin en önemli süreçlerinden biri olan veri modelleme bilişim
ihtiyaçlarının keşfedilmesi ve herkesin anlayabileceği bir şekilde belgelenmesi işlemidir.
Bilişim ihtiyaçları, veriler ve işletme ihtiyaçlarını destekleyen işletme kurallarıdır. Bir veri
modeli herhangi bir işletmenin veya bir yazılımın karmaşık bilişim ihtiyaçlarının tümünü
yeterince ifade edebilmek için kullanılabilecek bir araçtır.
Veri modeli, sistemde ne tür verilerin ne şekilde tutulacağını tasarlayarak bilgi isteminden
elde edilebilecek çıktıları, başka bir deyişle bilgi sisteminin hareket kabiliyetini belirler. Veri
modeli, iş ortamında bulunan verinin tanımını, karakterini ve ilişkilerini ifade etmektedir.
Veri modellemenin amacı; verinin taşıdığı anlamı, veriler arasındaki ilişkileri, verilerin
niteliklerini ve verilerin net tanımlarını açıkça belirlemektir. Verilerin anlaşılabilmesi için en
iyi yolun veri modeli oluşturulması olduğu ifade edilmektedir.
Kullanıcıların bakış açısı dikkate alındığında bir bilişim sisteminde bilişimi organize etme ve
bilişime erişmeyle ilgili çoğu mesele şu 3 soru ile özetlenebilir:



Bilişim sisteminde ne tür bilgi vardır?
Bilişim nasıl organize edilir?
Kullanıcılar ihtiyaçları olduğu bilişim çeşidini nasıl elde edebilirler?
Bu üç sorunun cevabı veri modelleme ile çözülür. İlk iki soru varlık-ilişki diyagramlarının
temelini oluşturmaktadır.
Varlık-İlişki Diyagramları
Varlık-ilişki diyagramları, bir durumdaki varlık tiplerini belirlemede ve aralarındaki ilişkileri
diyagram ile göstermede kullanılan tekniktir. Veri tabanın hangi verileri içereceğinin ve nasıl
yapılandırılacağının belirlenmesine yardımcı olur. Kullanıcılar ve geliştiriciler arasında
mükemmel bir iletişim kanalıdır.



Varlık tipleri: sistemin, veri tabanında veriyle ilgili ne çeşit şeyler topladığıdır. Varlıklar,
veri ile alakalı toplanan belirli şeylerdir.
İlişki: varlıklar arasındaki ilişki veya birleşmelerdir.
Nitelikler: her varlık tipi için saklanan spesifik veri parçalarıdır.
Örneğin, bir üniversiteye kayıt sistemi kurulacağı düşünülürse, sistem ne tip bilişimlere
ihtiyaç duyar? Güncel sistemle uyumlu geliştirme düşünceleriyle birlikte bu soru 3 parçaya
bölünebilir:
Sistem bilişimi hangi tip şeyler hakkında toplar? Topladığı özel şeyler varlıktır. Bilişim
topladığı şeylere de varlık tipleri denir. Bir kayıt sisteminde varlık tipleri kurslar, öğrenciler,
profesörler vs. olabilir. Örnekte 6 varlık tipi bulunmaktadır.
Sayfa 2
YÖNETİM BİLİŞİM SİSTEMLERİ
7. Hafta Ders Notu
Bu varlıklar arasındaki ilişki nedir? Bunların arasındaki ilişki birbirleri ile birleşmeleridir.
Mesela bir öğrenci birden çok kursa yazılabilir ve kurs sadece bir sınıfta olabilir.
Sistem bu şeyler hakkında hangi tipte özel bilişimler toplar? Varlıklar hakkındaki spesifik
bilişimlere nitelik denir. Öğrencinin varlık bilgisinde telefon, adres ve ödemediği harç bilgileri
olabilir.
Şekil 1. Üniversite Kayıt Sistemi İçin Varlık-İlişki Diyagramı
Varlık-ilişki diyagramlarındaki ilişki tipleri şu şekildedir:





Bire-bir ilişki (her profesör bir ofise sahiptir ve her ofis bir profesöre tahsis edilir)
Bire-çok ilişki (her konu bir profesör tarafından öğretilir, ama her profesör birçok konu
öğretebilir)
Seçmeli bire-çok ilişki (her ders birçok konuya sahiptir, ama hiçbir konuya sahip olmayabilir
de)
Çoğa-çok ilişki (her öğrenci birçok konuyu alabilir ve her konu birçok öğrenci tarafından
alınabilir)
Kendisiyle ilişkili (bir ders birçok koşula sahip olabilir ve diğer dersler için koşul olabilir)
Örnekteki varlık tipleri bölüm, ders, konu (dönem), profesör, öğrenci ve ofistir. Bu varlık
tiplerinin olası nitelikleri ise şunlardır:
Sayfa 3
YÖNETİM BİLİŞİM SİSTEMLERİ
7. Hafta Ders Notu
Tablo 1. Varlık Tipleri İçin Olası Nitelikler
Varlık Tipi
Bölüm
Ders
Konu
Profesör
Öğrenci
Ofis
Bu Varlık Tipinin Olası Nitelikleri
Fakülte
Başkan
Ders kodu
Bölüm
Ders tipi
Dersin tanımı
Kayıt kodu
Dönem
Yıl
Derslik
Başlangıç zamanı
Bitiş zamanı
Dersin günü
Çalışan kodu
İsim
Adres
Doğum tarihi
Ofis telefonu
Sosyal güvenlik numarası
Öğrenci kodu
İsim
Adres
Doğum tarihi
Telefon
Cinsiyet
Etnik grup
Ofis no
Bina
Varlık tiplerini ve aralarındaki ilişkileri tanımlandığımızda sistemde olması gereken bilişimi
irdelemek daha kolay olacaktır.
Veri modelleme, bir sisteme gerekli olan bilişimi tanımlamada yardımcı olur.
Diğer adım ise bu bilişimi bilgisayarlaştırılmış veri tabanına aktarmaktır. Bunun için verinin
tipi, verinin mantığı ve fiziksel görünüşü ve diğer anlamaya yardımcı olacak konular
gereklidir.
Veri Tabanı
Veri Tipleri
Günümüz bilişim sistemlerindeki 5 veri tipi şunlardır:

Biçimlendirilmiş veri: içeriği önceden açıkça belirlenmiş sayısal veya alfabetik öğeler
(ATM’ler, muhasebe sistemleri, sipariş takibi sistemlerinde bu veri tipi bulunur.)
Sayfa 4
YÖNETİM BİLİŞİM SİSTEMLERİ




7. Hafta Ders Notu
Metin: içeriği önceden belirlenmemiş harfler, rakamlar ve diğer karakterler
Görüntü: görüntü, fotoğraflar, el yapımı resimler, grafikler
Ses: seslerden oluşmuş veri
Video: resimlerin ve seslerin kombine edilmiş hali
Geleneksel işletme bilişim sistemleri sadece biçimlendirilmiş veri ve metin tipini içerir.
Kütük/Dosya (File) Yapısı
Bilgiler YBS’lerde manyetik ortamlarda saklanmaktadır. Bilgisayar donanım ve yazılımdaki
gelişmeler çerçevesinde bilgi saklama ortamları da değişmekte ve gelişmektedir. Bu konuda
iki temel kavramdan bahsedilebilir. Bunlardan birinci kütük (file) yapısı diğeri ise çağdaş
yaklaşım olarak kullanılan veri tabanı (database) kavramıdır.
Bilgisayarların işletmelerde kullanılmaya başladığı yıllarda bilgiler Kütük (file) yapısında
saklanırdı. Bu kütüklerde bilgiler sıralı olarak yazılır ve yine sıralı olarak okunurlardı. Her
kütüğün kendine özgü bir yapısı (formatı) bulunurdu.
YBS açısından bilgileri kütüklerde saklamak oldukça zahmetli bir işlemdi. Bilgi girişleri zor
olmakta ayrıca girilen bilgileri güncelleştirmek içinde ayrıca programlar geliştirmek
gerekmekteydi.
Bu yöntem bilgi işlem çalışanlarına büyük yükler getirirdi. Her iş için ayrı ayrı kütüklerde
bilgiler tutulurdu. Kütük sayısı çoğalınca birbirleri arasındaki iletişim kopmakta, bilgiler
arasında uyumsuzluklar oluşmaktaydı. Bir kütükte güncellediğiniz bir bilgiyi ilgili diğer
kütüklerde yapmazsanız pek çok sorun çıkmaktaydı.
Günümüzde artık pek kullanılmayan bir bilgi saklama yöntemidir.
Veri Tabanı Sistemleri
Veri tabanı; belirli bir veri modeli ile saklanan, sistematik erişim imkanı olan, yönetilebilir,
güncellenebilir, taşınabilir, birbirleri arasında tanımlı ilişkiler bulunabilen bilgiler kümesidir.
Veri tabanları bilgisayarlar aracılığıyla kontrol edilir ve erişilir. 5 veri tipinden her birini
içerebilir. Veri tabanlarında, önceden tanımlı veri tipleri arasında önceden tanımlı ilişkiler
bulunur.
Veri tabanları çeşitli tiplerde olabilir ve çeşitli tiplerde kullanılabilir.
Veri tabanı yönetim sistemi (VTYS); veri tabanını tanımlamak, güncellemek ve kontrol etmek
için kullanılan geniş kapsamlı yazılım sistemidir.
Veri tabanı kullanmanın yararları şunlardır:
1. Veri tabanında bilgiler yinelenmez. Her kayıttan sadece bir tane vardır. Bunu açıklamak
istersek herhangi bir YBS’de müşterilere ait adresleri içeren bir veri tabanı varsa her
müşteri için tek adres bilgisi vardır.
Sayfa 5
YÖNETİM BİLİŞİM SİSTEMLERİ
7. Hafta Ders Notu
2. Veri tabanında bulunan bilgiler standart hale getirilir. Yine aynı örnek üzerinde
açıklamak gerekirse her müşterinin adres bilgileri standart olur. Her müşterinin
bulunduğu ile Eskişehir ise hepsinde Eskişehir’dir. Bilgi girişinde yanlışlık yapılarak bazı
müşterilerde Eskişehir bazılarında Eskisehir bazılarında Eşkısehır gibi yanlış şehir ismi
olarak girilmez.
3. Veri tabanında bulunan bilgiler çeşitli kullanıcılar tarafından farklı işlemler için
paylaşılabilir. YBS içinde kurulmuş bulunan ve YBS’nin gerçekten en önemli parçasını
oluşturan veri tabanında bulunan bilgiler kullanıcıların amaçları doğrultusunda farklı
bakış acıları ile aynı anda kullanılabilir. YBS’deki veri tabanında yine müşterilere ait
bilgiler varsa bir kullanıcı müşterilere ait adresleri kağıt üzerine çıktı alırken bir başka
kullanıcı müşterilere ait hesap işlemlerini yapabilir. Veri tabanı üzerinde güvenlik sınırları
oluşturulur. Tüm bilgiler aynı yerde saklandığı için giriş ve çıkışlar kontrol altında tutulur.
İstenmeyen, güvenlik açısından sakıncalı kullanıcıların veri tabanına erişimi engellenir.
4. Veri tabanındaki bilgilerin periyodik olarak yedekleri alınır. Böylece istenmeyen
herhangi bir durumda bilgi kaybı en aza indirgenir.
Şekil 2. Veri Tabanının Çalışması
Veri Tabanı Kayıtları
Dosya; ilişkili kayıtlar bütünüdür.
Kayıt; aynı şey, insan veya olayla ilişkili alanlar bütünüdür.
Alan; önceden tanımlı bir anlama sahip karakter grubudur.
Anahtar; kaydı belirleyen eşsiz (özgün) alandır.
Sayfa 6
YÖNETİM BİLİŞİM SİSTEMLERİ
7. Hafta Ders Notu
Veri Tabanı Yaklaşımı
Dosya İşleme Sistemi
Veri Tabanı Yaklaşımı
Kuruluştaki her bir bölüm veya alan kendi Birçok program ve kullanıcı veriyi bir veri
veri dosyası setine sahiptir.
tabanında paylaşır.
Uzun yıllardır kullanılır.
Veri artıklığını düşürür.
Veri artıklığı oluşur.
Veri bütünlüğünü artırır.
Fazlalık veri (kopya veri) oluşur.
Veriyi paylaşır.
Veriyi izole eder.
Kolay erişim sağlar.
Geliştirme zamanını azaltır.
Daha savunmasız (zarara açık) olabilir.
Daha karmaşıktır.
Özel eğitim, daha fazla bilgisayar belleği,
depolama alanı ve işleme gücü gerektirir.
Veri daha değerlidir.
Hangi Veri Tabanı Kullanmalı

Çok küçük veri depolama ihtiyacında: PARADOKS

Eğer bir web sitesinde veri miktarı ve aynı anda yapılan işlem sayıları az, küçük
yoğunlukta trafik varsa; basit web uygulamaları için: ACCESS, MYSQL

Daha büyük ve orta ölçekli uygulamalar için: PROGRESS, MS SQL, ya da Linux üzerinde
POSTGRESQL.

ORACLE ise çok yüksek güvenlik ve işlem gücü gerektiğinde tercih edilen bir veri tabanı
yönetim sistemidir.
Veri Modeli
Veri modeli, verileri mantıksal düzeyde düzenlemek için kullanılan yapılar, kavramlar ve
işlemler topluluğudur.
Her VTYS belirli bir veri modeli (ilişkisel, nesneye yönelik, çok boyutlu veri modelleri)
kullanır. En çok kullanılan veri modeli ilişkisel veri modelidir.
Veri tabanını tasarlayan kişi, veri modelinin yapılarını ve kavramlarını kullanarak mantıksal
düzeydeki düzenlemeleri oluşturur. Daha sonra o veri modelini kullanan bir VTYS üzerinde
bu düzenlemelere göre veri tabanı yaratılır.
İlişkisel Veri Tabanları
İlişkisel veri tabanı, veriyi satırlar ve sütunlardan oluşan tablolarda saklar. Her satır birincil
anahtara sahiptir. Her sütun eşsiz bir isme sahiptir. İki boyutludur.
İlişkisel veri tabanı geliştiricisi, bağlantı olarak bir dosyaya, değişkenler grubu olarak bir
kayda ve nitelik olarak bir alana başvurur.
İlişkisel veri tabanı kullanıcısı dosya olarak tablo, kayıt olarak satırları ve alan olarak da
sütunları kullanır. İlişki, bir ilişkisel veri tabanındaki verideki bağlantıdır.
Sayfa 7
YÖNETİM BİLİŞİM SİSTEMLERİ
7. Hafta Ders Notu
İlişkisel veri tabanını çeşitli tablolar arasında organize edilmiş verilerden oluşan veri tabanıdır.
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 yer alı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 MySQL, Oracle, dBase, Progress, Informix,
Ingres, başta gelmektedir.
İlişkisel veri tabanı mantığı 1970 yılında Dr. Edgar F. Codd tarafından yazılan “A Relational
Model of Data for Large Shared Data Banks” adlı makalede ortaya atılmıştır. Bu makalede
Codd; ilişkisel mantığı tanıtarak, gerçek hayattaki nesnelerin tablo olarak nasıl ifade
edilebileceğini, bunların nasıl kullanılabileceğini anlatmıştır. İlişkisel sözcüğü veri tabanında
yer alan herhangi bir kaydın tek bir konu hakkında ve sadece o konuyla ilgili bilgileri içermesi
gerektiğini ifade eder.
İlişkisel veritabanlarındaki yapıda veriler tablolar halinde saklanır. Tablolar alanlardan (fields)
ve alanlardaki kayıtlardan (records) oluşur. İlişkisel veri tabanı modeli ‘Anahtar’ (key)
kullanarak farklı içerikteki tabloların birbirlerine bağlanmasına izin verir. Bir tablodaki alanlar
esas anahtar (primary key) olarak tanımlanabilirler. Kayıtlar ise tanımlanan anahtara göre
sıralanırlar. Tablolar arasındaki ilişkiler belirtilir ve bunlar matematiksel ilişkilerle (bağıntı)
temsil edilir. Bu ilişkiler iki tabloda da ortak bulunan alanlar aracılığıyla sağlanır. Ayrıca iki
farklı konuyla ilgili bilgiler, mesela teklifler ve o teklife ait kalem bilgileri (döviz fiyatı, döviz
kuru vs.), ilişkili veri değerlerine bağlı bir bütün olarak yönetilebilir. Örnek vermek gerekirse,
verilen her teklifin firma adı ve firma adresini saklamak gereksiz olur. Bir teklif numarası gibi
bir alan oluşturularak buna ait bilgileri kalem bilgilerinin bulunduğu tabloda tutarsak ve
bunları birbirine bağlarsak gereksiz kalabalıktan kurtulmuş oluruz. İlişkisel veritabanları
verinin hızlı geri alınımını sağlamasıyla birlikte daha birçok özelliğe sahiptir.
Şekil 3. İlişkisel Veri Tabanı
Sayfa 8
YÖNETİM BİLİŞİM SİSTEMLERİ
7. Hafta Ders Notu
YAPILANDIRILMIŞ SORGU DİLİ (SQL)
Yapılandırılmış sorgu dili (SQL), ilişkisel veri tabanı modellerinde kullanıcıların veriyi
yönetmesine, güncellemesine ve okumasına izin veren bir sorgu dilidir.
SQL herhangi bir veri tabanı ortamında kullanılan bir alt dildir. SQL ile yalnızca veri tabanı
üzerinde işlem yapılabilir.
Örneğin, elimizde bulunan veri tabanından “17 numaralı bölümde çalışan sekreterlerin ad,
soyad ve adresleri” bulunmak isteniyor, bunun için aşağıdaki SQL kullanılabilir:
SELECT ADI, SOYADI, ADRESİ FROM PERSONEL WHERE BÖLÜMNO = 17 AND GÖREVİ
= ‘Sekreter’;
Nesneye Yönelik Veri Tabanı
Günümüzde pek çok kelime işlemci ve hesap tablosu programlarında kullanmaya alışılan
nesneler artık veri tabanı yönetim sistemi yazılımlarında da kullanılmaktadır. Yüzde yüz
nesneye yönelik bir yazılımın tamamen nesne temelli çalışması ve yazılımın mutlaka nesneye
yönelik bir dilde yazılmış olması beklendiğinden; nesneye yönelik veritabanları gerçek
anlamda bir nesneye yönelik yazılım değildirler. Nesneye yönelik veri tabanı, C++ gibi
nesneye dayalı bir dille yazılmış olan ve yine C++ gibi nesneye dayalı bir dille kullanılan veri
tabanı anlamına gelir. Günümüz teknolojisinde yüzde yüz nesneye yönelik bir veri tabanı
yaygın olarak kullanıma sunulmamış olmasına rağmen nesneye yönelik veritabanlarının bazı
üstünlükleri olacağından söz edilmektedir. Nesneye yönelik veritabanlarının ilişkisel
veritabanlarına göre sahip olması gereken üstünlükleri şunlardır:


Nesneler, bir tabloda yer alan bir kayıttan çok daha karmaşık bir yapıya sahiplerdir ve
daha esnek bir yapıda çok daha kullanışlı düzenlenebilirler.
Nesneye dayalı bir veri tabanında, yapısı gereği arama işlemleri çok hızlı yapılabilir.
Özellikle büyük tablolarla uğraşırken ilişkisel veritabanlarından çok daha hızlı sonuca
ulaşırlar. Ancak çalışma mantığı tümüyle değişir.
Tüm bu özellikler tamamen nesneye yönelik olan veritabanları için geçerlidir. Bazı ilişkisel
veritabanları ile çalışan yazılımlarda da nesnelerin bazı özellikleri kullanılırlar. Ama nesneye
yönelik veri tabanı bunu kendini ilişkisel veri tabanı kurallarına uydurarak gerçekleştirebilir.
ÇOK BOYUTLU VERİ TABANLARI
Çok boyutlu veri tabanları bilgi keşfi, görüntü işleme, veri madenciliği, örüntü tanıma ve
karar destek sistemleri gibi birçok uygulama alanında önem kazanmaktadır. Günümüzde veri
tabanı yönetim sistemleri eski örneklerine göre çok daha karmaşıktır. Modern uygulamalarda
veri tabanı kavramı yalnızca ilişkisel veya nesne yönelimli olarak iki türe değil, uygulama
alanlarına özel birçok farklı türe ayrılmaktadır.
Çoklu Ortam Veri Tabanları
Çoklu ortam veri tabanları birçok farklı biçimde görüntü, ses ve video verileri içerirler.
Fotoğrafik görüntüler, uydu görüntüleri, uzaktan algılama resimleri, tıbbi görüntüler (iki
Sayfa 9
YÖNETİM BİLİŞİM SİSTEMLERİ
7. Hafta Ders Notu
boyutlu X ışınları ve üç boyutlu beyin MRI taramaları), jeolojik görüntüler, biyometrik
tanımlama görüntüleri (parmak izi, retina) gibi farklı çoklu ortam verileri depolamak üzere
özelleştirilmiş birçok uygulama bulunmaktadır. Bu uygulamalarda amaç, hedef olarak
seçilmiş bir nesneye en fazla benzeyen nesneleri bulmaktır. Bu sebeple her görüntü renk, şekil,
desen gibi özelliklerden oluşan özellik vektörlerine dönüştürülür. Benzerlik, özellik vektörleri
arasındaki uzaklık hesaplanarak bulunur.
Şekil 4. Çok Boyutlu Veri Tabanı
Zaman Serileri Veri Tabanları
Bu veritabanları finansal, tıbbi ve bilimsel verilerin analizinde, veri madenciliğinde ve karar
verme sürecinde kullanılırlar. Zaman serileri veri tabanları zaman serisi şeklindeki verileri
ayrık fourier dönüşümü veya ayrık dalgacık dönüşümü dönüşüm yöntemleri ile çok boyutlu
noktalara dönüştürürler. Benzerlik arama işlemi dönüştürülmüş veriler üzerinde
gerçekleştirilir.
DNA Veri Tabanları
Genetik materyal (DNA) bir canlının tüm hücresel fonksiyonları için gerekli tüm bilgileri
depolamaktadır. DNA, dört harfli alfabesi olan bir metin dizisidir. Bu dört harf A, C, G ve T
olarak dört farklı çeşit nükleotidi temsil eder. Yeni bir metin dizisi (örneğin bilinmeyen bir
Sayfa 10
YÖNETİM BİLİŞİM SİSTEMLERİ
7. Hafta Ders Notu
hastalığa ait olabilir), eski dizilerin herhangi bir bölümü eşleştirilmeye çalışılır. Eşleştirmenin
amacı belirli bir uzaklık fonksiyonu kullanılarak aranan metne en fazla uyan bölümü
bulmaktır.
Doküman Veri Tabanları
Bu veritabanları çoğunlukla belirli bir dile ait kelimeler veya metinlere ait özellik vektörleri
içerirler. Çok fazla sayıda boyuta sahip olabilirler. İnternet’in doğuşu ile birlikte gelişme
göstermiştir. İnternet arama motorları, on-line veritabanları, doğal dil işleme, doküman
sınıflandırma gibi alanlarda yoğun olarak kullanılmaktadır.
Yukarıda açıklanan veritabanları çok boyutlu veri nesnesi şeklinde temsil edilen ve sayısal
verilerden oluşan özellik vektörlerine sahiptir. Bu yüzden bu tür veritabanlarına genel olarak
“çok boyutlu veri tabanı” adı verilir. Çok boyutlu veri tabanları, anahtar (key) ifade tabanlı
geleneksel sorgular yerine “benzerlik tabanlı” veya içerik tabanlı bilgi çekme sorgularına
gereksinim duyarlar. Bu tür veri tabanlarında benzer örüntüler arama süreci büyük önem
taşır. Çünkü bu süreç tahmin etme, karar verme, bilgisayar destekli tıbbi muayene, hipotez
doğrulama ve veri madenciliği için kritik öneme sahiptir.
Veri Ambarı Tasarımı
İyi bir veri tabanı tasarımı yapabilmek için yetenek, bilgi ve tecrübe çok önemlidir. Bir veri
tabanı ile proje yapılırken işin en önemli aşaması veri tabanının tasarlanmasıdır. Başlangıçta
yanlış tasarlanan bir veri tabanı ile yapılan projede sonradan yapılacak düzenlemelerle geri
dönüş yapılamaz. O nedenle veri tabanı tasarımı yapılırken aşağıdaki maddelere uyularak
yapılması gerekir.
Nesnelerin Tanımlanması
Nesne, çeşitli özellikleri bulunan bir varlıktır. Herhangi bir proje de öncelikle nesneler
tanımlanır. Birkaç proje için nesnelere örnek verilecek olunursa,






Kütüphane sistemi: Kitap, üyeler, türler, ödünç hareketleri.
E-ticaret sistemi: Ürünler, müşteriler, siparişler, teslimat, fatura bilgileri, üreticiler,
tedarikçiler, dağıtıcılar.
Futbol Ligi: Takımlar, sahalar, oyuncular, fikstür, hakemler, antrenörler.
Okul Sistemi: Öğrenciler, öğretmenler, dersler, derslikler.
Personel Sistemi: Çalışanlar, meslekler, çalışılan birimler, maaşlar, izinler.
Sözlük: kelimeler, anlamlar, diller.
Tablolara isim verilirken mümkünse tekil isimler kullanılmalıdır. Böyle yapılırsa; hem daha
anlaşılır bir tasarım yapılmış olur hem de daha sonra kodlama aşamasında karışıklığın önüne
geçilmiş olur.
Her Nesne İçin Tablo Oluşturması
Her nesne için bir tablo oluşturulur ve her bir tabloya içereceği veriyi en iyi anlatan bir isim
verilir. Tablo oluşturma işi, bir kâğıt üstünde sembolik olarak gösterilebilir veya doğrudan MS
Sayfa 11
YÖNETİM BİLİŞİM SİSTEMLERİ
7. Hafta Ders Notu
Access, SQL Server, MySQL, Oracle gibi kullanılmakta olunan VTYS üstünden de
oluşturulabilir. Tüm proje bitirilinceye kadar bu tablolar üzerinde muhtemel değişiklikler
yapılabilir.
Her Bir Tablo İçin Bir Anahtar Alan Seçilmesi
Veri tabanındaki herhangi bir veriye erişilmeden önce tabloya erişilir. Bir veri tabanında
üzerinde en çok işlem yapılan nesne grubu genellikle tablolardır. Bu aşamaya kadar hangi
tabloların oluşturulacağına karar verildi. Her bir tablonun içinde hangi bilgilerin saklanılacağı
kabaca tasarlanır. Bu aşamada, tabloda yer alacak her bir kaydı bir diğerinden ayırabilecek bir
sütuna ihtiyaç duyulur. Örneğin bir kitap seçilmek istenildiğinde, bu kitabın hangi kitap
olacağı öyle bir anlatılabilmeli ki, başka hiçbir kitap ile karışmamalıdır. Bunu yapmanın tek
yolu, bir alanı birincil anahtar alan olarak belirlemektir. Anahtar alan seçilirken, kısıtlamadığı
sürece, doğal alanlar seçilmeye dikkat edilmelidir. Örneğin araçlar ile ilgili bir tablo
yapılırken, plakalar anahtar alan olarak belirlenebilir. Çünkü her bir plakadan bir tek araç
trafiğe çıkabilir ve plakalar kısıtlamaz.
Nesnelerin Her Bir Özelliği İçin Tabloya Bir Sütun Eklenmesi
Tablo adları tanımlandıktan ve anahtar adları belirlendikten sonra, tablolara sırasıyla adını
veren nesnelerin her bir özelliği için bir alan (sütun) eklenir. Örneğin,



Kitap için; Kitap no, ISBN no, kitap adı, yazarı, türü, sayfa sayısı, özeti, fiyatı, baskı yılı vb.
Üye için; UyeNo, adı, soyadı, e-mail adresi, ev telefonu, cep telefonu, iş telefonu vb.
Personel için; Personel sicil No, adı, soyadı, e-mail adresi, mesleği, çalıştığı birim, maaş vb.
Bu hazırlıklar yapılırken yapılması istenilen proje ile ilgili basılı formlar vs. varsa, onların
incelenmesi tabloya eklenecek sütunların hangi özellikler olması gerektiği konusunda karar
verilmesinde yardımcı olurlar.
En başa birincil anahtar olarak belirlenen alanı eklemek bir kural değildir ancak tablonun
anlaşılırlığı ve göze hoş görünmesi açısından tercih edilmesi faydalı olacak bir tekniktir.
Genellikle, yapay birincil anahtar alanlar tablo adı ile başlar ve sonunda ID vardır. Ogrenci
tablosu için ogrenciID, Personel tablosu için personelID gibi.
Tekrarlayan Nesne Özellikleri İçin Ek Tablolar Oluşturması
Akılda hep şu soru olmalıdır: veri tekrarı olacak mı? Veri tekrarı olacaksa bir yerlerde hata
yapılıyor demektir. Bu durumda eldeki tablonun en az bir tabloya daha ayrılması gerekiyor
demektir. Şu da unutulmamalıdır, her projeye uyacak evrensel bir veri tabanı tasarım tekniği
yoktur. Yani her şey belli kurallar çerçevesinde ne kadar detayıyla düşünülüp tasarlandığına
bağlıdır. Örneğin, her bir kitap için tür belirledik ama bir kitap hem kişisel gelişim
kategorisine hem de hikâye kategorisine girebilir. Veya bir kitap birden fazla kişi tarafından
yazılmış olabilir. Bir kitap için birden fazla türü kaydedebilme ele alınsın: Bu türden bir
sorunu çözmek için ilk akla gelen şey, Kitap tablosunda tür alanı için 2.sütun daha eklemek
olabilir. Bu tabloya 2.Tür ve 3.Tür diye iki sütun alanı daha eklemek. Ama çoğu kitap bir tek
türdendir ve bu kitap için eklenen 2 alan hep boş kalacaktır. Öte yandan, 4.türe birden giren
Sayfa 12
YÖNETİM BİLİŞİM SİSTEMLERİ
7. Hafta Ders Notu
bir kitap olduğunda 4.tür bilgisi nereye yazılacaktır? Aynı alana mı? Ya da dört adet bölüm
mü açılacak? Bunlar, veri tabanı tasarımının doğasına terstir. Diğer çözüm yolu ise, bir kitabı
iki kere kaydedip, birincisini, ‘Kişisel Gelişim’ türü olarak; ikincisini de ‘Hikaye’ olarak
girmektir. Bu durumda tabloda aynı kitaba ait iki kayıt olacaktır ve kitap türü dışındaki diğer
tüm bilgiler tekrar edecektir. Ya da bir süre sonra, kitap hakkında girilen bilgilerin yanlış
olduğu fark edilecektir. Hangi kayıt güncellenecektir? Ya biri düzeltip diğeri unutulursa?
Sonuçta veri tekrarı ve veri bütünlüğünün bozulması söz konusudur. Bu da yine ilişkisel veri
tabanı tasarımının doğasına terstir. Bu durumda, türler diye bir yeni tablo oluşturup, bir de
kitap_turler diye 2.tablo’yu oluşturduktan sonra bu türden bilgileri burada tutmak
gerekecektir. Böylelikle, hiçbir türde yer almayan kitaptan 10 ayrı türde yer alan kitaba kadar
bütün olasılıklar için bir çözüm geliştirilmiş olur.
Anahtar Alana Bağlı Olmayan Alanların Belirlenmesi
İlişkisel veri tabanında, tablodan herhangi bir tek kayda erişmek için mutlaka bir farklı özellik
sağlanmalıdır ve bu özellik de anahtar alan tarafından sağlanır. Ancak bazen, anahtar alan ile
aynı satırda yer aldığı halde, anahtar alan ile birebir ilişkisi olmayan bir alan yer alabilir. Bu
türden alanların elimine edilip ayrı tablolara ayrılması gerekir. Örneğin, ödünç tablosu ele
alınacak olursa, ödünç verilen her kitap için ödünç alanın adresi de bilinmek istenirse, bu
ödünç tablosuna yazılamaz. Çünkü ödünç tablosunun birincil anahtar alanı oduncno’dur ve
bu alan, ödünç verme işlemi ile ilgilidir. Oysa ödünç alanın adresi, ödünç alan kişinin
kendisine bağlı bir özelliktir. Bu kişinin her aldığı kitap için adresini tekrar yazmaya gerek
yoktur. Aynı şekilde otomasyon içerisinde başka yerlerde de bu kişinin adres bilgilerine
muhtemelen ihtiyaç duyulabilir çünkü adres, üyenin bir özelliğidir. Ödünç verilen kitabın
adresi öğrenilmek istenildiğinde, üyeler adında bir tablo daha açılıp, burada herkesin adres
bilgisi tutulmak zorunda kalınır. Ödünç tablosunun ise, oduncAlan bilgisi olarak, Üyeler
tablosunun birincil anahtar alanına bir bağlantı (yabancı anahtar) içermesi daha doğru olur.
Tablolar Arasındaki İlişkiler Tanımlanması
Tanımlanan tablolardaki alanların birbirleriyle olan ilişkileri tanımlanır. Örneğin öğrenci
bilgilerinin tanımlandığı tablo ile öğrenci notlarının tanımlandığı tablo arasında bir ilişki
kurulur ve bu ilişki öğrenci numarası ile olur. Öğrencinin hangi dersine ait not bilgisi
yazılacaksa ders kodları ve adlarının tanımlandığı tablo ile öğrenci notları tablosu arasında bir
ilişki vardır. Bu ilişki notlar tablosundaki ders kodu ile ders kodları tablosundaki dersin kodu
alanları arasında yapılır. İlişki her iki tablo bir birincil alan ve bir yabancı anahtar alan
üstünden birbirine bağlanır. Bu ilişkiler MS SQL Server, MS Access veya Oracle
veritabanlarında şematik olarak hazırlanabilir.
Farklı tablolardaki iki alan aynı veriyi tutuyorsa iki alana da aynı ismi vermek karışıklığa yol
açabilir gibi görünse de aslında daha düzgün bir yapının ortaya çıkmasını sağlar. OgrenciNo
alanı örgenci tablosunda da notlar tablosunda da öğrenci numarası olarak tanımlanabilir. Bu
alanlardan birine OgrenciNo, diğerine NotlarOgrenciNo ismi verilmesi sorgu ve program
yazılımında isim karışıklıklarına neden olabilir. En önemlisi de her alan için her tabloda farklı
isimlerin kullanılması değişkenlerin isimlerinin akılda tutulmasını ve daha sonraki tablolar
üzerinde işlem yaparken işlemleri zorlaştırır. Tablo ve alanları kullanılacağı zaman her
Sayfa 13
YÖNETİM BİLİŞİM SİSTEMLERİ
7. Hafta Ders Notu
seferinde ilgili alanın hangi isimle kaydedildiğine bir listeden bakmak zorunda kalınır. Çünkü
büyük bir veri tabanı projesinde 250’den fazla tablo bulunabilir. Her tabloda da birçok alanın
bulunacağı dikkate alındığında her alana ait isimlerin akılda tutulması mümkün
olmamaktadır. Birden fazla tabloda olan alanlar için; aynı ismi kullanmak bu zorluğu ortadan
kaldıracaktır. En mantıklısı her ikisine de Ogrencino ismi verilmesidir.
Veri Tabanı Normalizasyonu
Bir tablo içerisinde yer alacak kaydın nelerden oluşmasına karar vermeye yarayan
düzenlemelere normalizasyon kuralları denilir. Bu kurallar ilişkisel veri tabanı tasarımından
başlı başına bir işlemdir. Normalizasyon, veri tabanı tasarım aşamasında çok önemli bir
işlemdir. Normalizasyon arttıkça tablolar arasındaki ilişkiler artar. Bu nedenle tablodaki
veriler erişmek için gerekli bağlantıların sayısı da artar.
Veri Ambarı
Veri ambarı; bir işletmenin ya da kuruluşun değişik birimleri tarafından canlı sistemler aracılığı
ile toplanan bilgilerin, gelecekte kullanılabilecek ya da değerlendirilebilecek olanlarının arka
planda üst üste yığılarak birleştirilmesinden oluşan büyük çaplı bir veri deposudur. Ürün
değil, ortamdır.
Datamart; veri ambarının alt kümesidir, küçük boyutludur. Metadata; veri ambarında verilerin
tanımlandığı kısımdır.
Veri Ambarının Kullanım Amaçları




Müşterilerin gizli kalmış satın alma eğilimlerini tespit etmek
Satış analizi ve trendler üzerine odaklanmak
Finansal analizler yapmak
Stratejik Analiz (Bir karar destek sistemi olmasından dolayı)
Veri Ambarı Fonksiyonları






Değişik platformlar üzerindeki işletimsel uygulamalara ait verilere erişim ve gerekli
verilerin bu platformlardan alınması
Alınan verilerin temizlenmesi, tutarlı duruma getirilmesi, özetlenmesi, birleştirme ve
birbirleriyle entegrasyonunun sağlanması
Dönüştürülen verilerin veri ambarı veya datamart ortamına dağıtımı
Gönderilen verilerin bir veri tabanında toplanması
Depolanan bilgi ile metadatada bulunan ilgili bilgilerin veri katalogunda saklanması ve
son kullanıcılara sunulması
Veri ambarı veya datamartta bulunan bilgileri uç kullanıcıların karar destek amaçlı
kullanımının sağlanması
Sayfa 14
Download