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ğne­memiş 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

Bu blogdaki popüler yayınlar

VLSI Devre Tasarımı

Yapay Sinir Ağlarına Giriş

İnsan Bilgisayar Etkileşimi