Veri Tabanı-1
VERİ TABANI I
Veri Tabanına Giriş
Günümüzde veri tabanı
sistemleri, bankacılıktan otomotiv sanayisine, sağlık bilgi sistemlerinden
şirket yönetimine, telekomünikasyon sistemlerinden hava taşımacılığına, çok
geniş alanlarda kullanılan bilgisayar sistemlerinin alt yapısını
oluşturmaktadır. Veri tabanı fiziksel olarak bilgileri tutarken mantıksal bir
hiyerarşiye de sahiptir. Veri tabanı sistemlerinin kurulumu, konfigürasyonu,
düzeni, sorgulaması, güvenliği ve denetiminin karmaşık bir hal alması veri
tabanı yöneticiliği kavramının oluşmasına neden olmuştur. Bir veri tabanı
yöneticisi mantıksal data modelleme, fiziksel veri tabanı dizaynı çıkarma,
fiziksel olarak veri tabanı oluşturma, Transact-SQL kullanarak sorgu yazma,
Microsoft SQL Server kurulumu ve konfigürasyonu, güvenlik yönetimi ve konfigürasyonu,
veri tabanı yönetimi ve bakımı, veri tabanı denetleme ve optimize işlerini
üstlenir.
Veritabanı Yönetim Sistemi
Veri tabanı yönetim
sistemi, veri tabanlarını tanımlamak, yaratmak, kullanmak, değiştirmek ve veri
tabanı sistemleri ile ilgili her türlü işletimsel gereksinimleri karşılamak
için tasarlanmış sistem ve yazılımdır.
Dosya Sistemi
Dosya sistemi disk
üzerindeki dosyaların organize edilmesidir. Bir işletim sisteminin bir disk
veya bölümleri üzerindeki dosyalarının izlerini bulmak için kullandığı yapı ve
yönteme dosya sistemi denir. Ayrıca dosya sistemi terimi, dosyaların veya dosya
sistemlerinin depolandığı bir disk veya disk üzerindeki bir bölümü tanımlamak
için de kullanılabilir. Bu nedenle birisi “ben iki adet dosya sistemine
sahibim” derken; aslında disk üzerinde her birinde dosyaların tutulduğu, iki
adet bölüme veya ek bir disk bölümüne sahip olduğu anlaşılmalıdır. Bir disk
veya disk bölümü ile dosya sistemi arasındaki farklılık ne ihtiva ediyor
olduğuna göre önem arz eder. Çok az program işlenmemiş disk veya bölüm
yüzeyinde işlem yapılabilir. Buna dosya sistemi yapabilen programlar dâhildir. Şayet
orada bir dosya sistemi var ise bu programların kullanılması sonucu silinir
veya büyük ölçüde hasar görürler. Pek çok program ise dosya sistemleri üzerinde
çalışır; olmaya veya yanlış parametreler içeren bölümler üzerinde çalışamazlar.
Genelde dosya sistemi olmayan bir disk yüzeyinde bir program çalışmaz.
Programların çalışması için bir dosya sistemine ihtiyaç vardır; dosya
sistemlerinin olabilmesi için de bir disk veya disk bölümüne ihtiyaç
duyulur. Bir disk veya disk bölümü dosya
sistemi olarak kullanılmadan önce, disk yüzeyi ilk haline döndürülmeli ve
gerekli bilgiler diske yazılmalıdır. Bu işlem dosya sistemi oluşturma olarak
adlandırılır.
Veri Modelleri
Veri tabanı tasarımının en
büyük sorunlarından biri verinin tasarımcı, programcı ve kullanıcı tarafından
farklı şekillerde görülmesidir. Veri modeli karmaşık gerçek dünya veri
yapılarının basit olarak gösterilmesi için kullanılan araç. Veri tabanı
tasarımcıları, uygulama programcıları ve uç kullanıcılar arasındaki iletişimi
kolaylaştırır. Veri modelleri sayesinde veri tabanı tasarımını gerçekleştirmek
daha kolay olur. Veri modelleme yinelemeli bir işlemdir. Önce basit model, daha
sonra ayrıntılar eklenir. En sonunda veri tabanı tasarımında kullanılan şablon
elde edilir.
İş Kuralları
• Veri tabanı
oluşturulurken iş kurallarına bakılır.
• Veri tabanı
tasarımı yapılacak organizasyon ile ilgili işleyiş, kural ya da yönetmeliğin
özetlenmiş şekline iş kuralları denebilir.
• Örnek iş
kuralları:
ü Bir müşteri çok sayıda sipariş
verebilir.
ü Her müşterinin adı, soyadı, telefon
numarası vs. istenir.
ü Öğrenciler bir ara sınav ve bir yarıyıl
sonu sınavına girerler.
• İş
kurallarının kaynağı; yöneticiler, kural koyucular ve yazılı dokümanlar
olabilir.
• İş kurallarını
oluşturmak için doğrudan uç kullanıcılarla görüşmek de oldukça etkili bir
çözümdür.
• Veritabanı
tasarımı açısından iş kurallarının önemi;
ü Kullanıcılar ile tasarımcılar arasındaki
iletişimi sağlar.
ü Tasarımcının verinin doğasını, önemini
ve kapsamını anlamasını sağlar.
ü Tasarımcının iş süreçlerini anlamasını
sağlar.
ü Tasarımcının doğru bir veri modeli
geliştirmesine yardım eder.
ü Kuruluşun veriye bakışını standart
haline getirir.
Veri Modeli Temel Bileşenleri
1.
Varlık (Entity) = Hakkında veri toplanan ve saklanan her şey (öğrenci, ders,
personel vb.). gerçek dünyadaki nesneleri ifade eder. Var olan ve
benzerlerinden ayırt edilen her şey.
2.
Nitelik (Attribute) = Varlığın sahip olduğu özellikler.
3.
İlişki (Relationship) = Varlıklar arasındaki bağıntıyı ifade eder.
Varlık Bağıntı Modeli
Gerçek hayattaki nesneler
ve aralarındaki ilişkileri, bağlantıları tasvir eden bir modelleme tekniğidir.
Genel olarak günümüzde veri tabanı oluşturmak için kullanılmaktadır. Bu
modelleme tekniği ilk olarak 1976 yılında Peter Chen tarafından bilime
kazandırılmıştır. 1977 yılında Smith and Smith tarafından geliştirilmiş ve
1980’li yıllarda Wong ve Katz tarafından son şeklini kazanmıştır.
Normalizasyon
Normalizasyon (Ayrıştırma), veri
tabanlarında çok fazla sütun ve satırdan oluşan
bir tabloyu tekrarlardan arındırmak için daha az satır ve sütun içeren alt kümelerine ayrıştırma
işlemidir.
Ünlü Fransız bilim adamı Hubert Francesci tarafından
ortaya atılan 3 esnek kuralına uygun protonlar tarafından entegre edilen bir
sisteme sahiptir. Satır başlarında yapılan tekrar veri tabanında ayrıştırma
işlemine tabii tutularak depolanır.
Eğer bir ilişki belirli bir normal formda (3NF, BCNF,
v.s.) ise, problemlerin bazıları oluşmaz, bu yüzden şemanın daha fazla
ayrıştırılmasına gerek yoktur.
Farzedelim ki R ilişkisi
A1,..,An niteliklerini içersin. R’nin ayrıştırılması R’yi bir ya da daha fazla
ilişkiyle yer değiştirmektir. Öyle ki;
·
Her bir yeni
ilişki şeması, R’nin niteliklerinin bir alt kümesini içerir. R’de olmayan
hiçbir nitelik bu yeni ayrıştırılmış şemalarda yer alamaz.
·
Her R
niteliği bu ilişkilerden birinin bir niteliği olarak gözükür.
R’nin ayrıştırılması ile
ayrıştırmanın ürettiği ilişki şemalarının örnekleri depolanır.
Normal Formlar
·
1NF (Birinci Normal Form): Bütün
niteliklerin öz alanından (domain)
aldığı değerler atomik olmak zorundadır. İlişkisel veri tabanı modelinin temel
kuralıdır ve her nitelik ancak atomik veriler alabilir. Örneğin kitap
tablosunda, birden fazla yazarı olan kitap için yazar1, yazar2, yazar3 diye
alanlar açsaydık, bu kurala uymamış olurduk. Böyle bir durumda, ayrıca yazarlar
tablosu da oluşturarak kuralı çiğnememiş oluruz.
·
2NF (İkinci Normal Form): Eğer R’deki
herhangi bir birincil olmayan nitelik A, R’nin hiçbir anahtar niteliğine kısmi fonksiyonel bağımlı değilse bu ilişki şeması 2NF’dir denir. Burada kısmi
fonksiyonel bağımlılıktan şunu anlamalıyız: Eğer X --> Y geçerli ise ve bir
nitelik A X’in elemanı ise ve A, X’ten çıkarıldığı halde söz konusu bağımlılık
hala geçerli ise burada bir kısmi fonksiyonel bağımlılık vardır.
·
3NF (Üçüncü Normal Form): Eğer R’deki
herhangi bir birincil olmayan (non-prime)
nitelik A, R’nin hiçbir anahtar niteliğine geçişli (transitively) fonksiyonel
bağımlı değil ve hali hazırda 2NF’da ise, bu ilişki şeması R 3NF’dadır denir.
Burada geçişli fonksiyonel bağımlılıktan şunu anlamalıyız: Eğer X --> Y ve
R’nin herhangi bir anahtarının altkümesi olmayan nitelikler kümesi Z söz konusu
ve de X --> Y ve Y --> Z birlikte geçerli olmamalıdır.
Eğer bir ilişki şeması R 3NF’da
ise ve R’de bir fonksiyonel
bağımlılık X
--> A söz konusu ise; ya X, R’nin bir süper anahtarıdır (superkey)
ya da A, R'nin birincil niteliğidir (prime
attribute). Birincil nitelik demekle anahtarı oluşturan niteliklerin her
birini kastediyoruz.
Bir R ilişkisinin 3NF
ilişkilerine kayıpsız-birleştirme (lossless-join)
ve bağımlılıkların-korunması (dependency-preserving)
ayrıştırması her zaman mümkündür.
BCNF (Boyce Codd Normal Form): Eğer bir ilişki
şeması R’de bir fonksiyonel bağımlılık X --> A söz konusu olduğunda, X
nitelikler kümesi R’nin süper anahtarı ya da A, R'nin birincil niteliği ise, bu
ilişki şeması R BCNF’dadır.
Veri Tabanı
Tasarımı
Veri tabanı tasarımı işlemine belli ilkeler yön verir.
İlk ilkeye göre bilgilerin yinelenmesi (gereksiz veri olarak da bilinir)
kötüdür; çünkü bunlar gereksiz alan kaplar, hata ve tutarsızlık olasılığını
artırır. İkinci ilkeye göre bilgilerin doğru ve tam olması önemlidir. Veri
tabanınızda yanlış bilgiler varsa, veri tabanından bilgi alan raporlar da
yanlış bilgi içerecektir. Sonuç olarak, bu raporlar esasında alacağınız
kararlar yanlış bilgilere dayanacaktır. Bu nedenle bir veri tabanı tasarımı
aşağıdakileri gerçekleştirir.
·
Gereksiz verileri azaltmak için
bilgilerinizi konulara göre oluşturulmuş tablolara böler.
·
Gerektikçe tablolardaki bilgileri
birleştirmek üzere Access’e ihtiyaç duyduğu bilgileri sunar.
·
Bilgilerinizin doğruluğunu ve
tutarlılığını sağlar ve destekler.
·
Veri işleme ve raporlama
gereksinimlerinizi birbirleriyle uyumlu hale getirir.
SQL Query Language
SQL, ilişkisel veri
tabanında verileri tanımlamak ve değiştirmek için standartlaştırılmış bir
dildir. Verilerin ilişkisel modele uygun olarak, veri tabanı bir dizi tablo
olarak ele alınır, ilişkiler tablolardaki değerlerle gösterilir ve veriler, bir
veya daha fazla temel tablodan türetilebilecek bir sonuç tablosu belirterek
alınır. SQL deyimleri bir veri tabanı yöneticisi tarafından yürütülür. Veri
tabanı yöneticisinin işlevlerinden biri, bir sonuç tablosunun spesifikasyonunu,
veri alımını optimize eden dizi iç operasyona dönüştürmektir. Dönüşüm iki
aşamada gerçekleşir: hazırlanma ve bağlanma. Tüm yürütülebilir SQL deyimleri
yürütülmeden önce hazırlanmalıdır. Hazırlamanın sonucu, ifadenin yürütülebilir
veya işlemsel formudur. Bir SQL hazırlanma yöntemi işletim biçiminin kalıcılığı
statik SQL’ yi dinamik SQL’den ayırır.
SQL, DML Komutları
Veri girmek,
değiştirmek, silmek ve verileri almak için kullanılan DML komutlarının tümü
olarak tanımlanır. Kısaca veri tabanında bilgi üzerinde çalışmayı sağlar.
Bilgiyi çağırma, bilgiye yeni bir şeyler ekleme, bilgiden bir şeyler silme,
bilgiyi güncelleştirme işlemlerini yapar. Temel 4 komutu vardır:
·
Select: Veri tabanındaki nesneden alan
çağırmayı ve gereken bilgiyi görebilmeyi sağlar.
·
Update: Nesnede bilgi güncellemeyi sağlar.
·
Insert: Nesneye alan eklemeyi sağlar.
·
Delete: Nesneden alan silmeyi sağlar.
SQL Fonksiyonları
Bilgisayarda
fonksiyon bir veya daha fazla işlem satırından oluşan kodların bir kod bloğu
şeklinde bir isim altında toplanması olarak ifade edilebilir. Böylece, sadece
fonksiyon ismi çağrılarak, fonksiyon içinde yer alan kodlar çalıştırılır. SQL
içinde veriler üzerinde işlemler yapmak üzere hazır fonksiyonlar bulunur.
Grup Fonksiyonları
Grup fonksiyonları
tek kayıt fonksiyonlarından farklı olarak birden çok girdi alıp sonuç olarak da
bir tane sonuç dönderen fonksiyonlarıdır. Girdi değerleri sorgu çalışıp tüm
kayıtlar çekilmeden belli olmaz. Tek kayıt fonksiyonlarında girdi sayısı SQL cümlesinin
ayrıştırılma işlemi sırasında bilinir. Bu özelliğiyle grup fonksiyonları
kullanımı ve sonuçları yönüyle tek kayıt fonksiyonlarından ayrılır. Grup
fonksiyonları SQL cümlelerinin SELECT ya da HAVING kısımlarında yer alabilir.
SELECT kısmında kullanıldığı zaman genelde GROUP BY ifadesi ile birlikte
kullanılır. Eğer GROUP BY ifadesinde gruplamanın neye göre yapılacağı
belirtilmez ise gruplama işlemi için kayıtların tamamı kullanılır. Grup
fonksiyonları SQL cümlelerinin WHERE kısmında kullanılamaz.
PLSQL Giriş
PLSQL, Oracle
tarafından geliştirilen Oracle veri tabanı sistemlerine özel dildir. Oracle
veri tabanı sistemlerinde tetikleyici ve saklı yordam yazmak üzere
geliştirilmiş temel sql komutlarının yanında programlamada akış kontrollerini
ve değişkenleri kullanmaya olanak sağlayan yani yapısal dillere ait
özelliklerin standart SQL’E eklenmesi sonucu oluşan bir dildir. Ada dili örnek
alınarak tasarlanmıştır.
Yorumlar
Yorum Gönder