Bölüm 1: Veritabanı Yönetim Sistemlerine Giriş -1-

advertisement
Bölüm 1: Veritabanı Yönetim Sistemlerine Giriş
-1-
Dr. Serkan DİŞLİTAŞ
1.1. Veri ve Bilgi (Data & Information)
Hesaplama, saklama gibi çeşitli işlemler amacıyla bilgisayara verilen sayı, yazı, resim, ses,
ölçüm vb. değerlerden oluşan her türlü sayısal, alfasayısal bilgiler veri olarak
adlandırılmaktadır. Şekil 1.1’de veri-işlem-bilgi arasındaki ilişki görülmektedir.
Veri
(Data)
İşlem
(Process)
Bilgi
(Information)
Şekil 1.1. Veri-İşlem-Bilgi arasındaki ilişki
Verinin bilgisayar tarafından işlenmesiyle bilgi elde edilmektedir. Ayrıca bir işlem sonucu
elde edilen bilgi başka bir işlem için veri olarak kullanılabilmektedir.
1.2. Veritabanı (Database)
Veritabanı, uygulama programları tarafından kullanılan verilerin tutulduğu ortamdır.
Örneğin bir okula ait öğrenci, akademisyen, ders bilgilerinin tümü veritabanında
tutulabilmektedir. Burada öğrencilerin kimlik bilgileri, ders kayıtları, aldığı notlar,
akademisyen kimlik bilgileri, alınan dersler, sınav tarihleri gibi daha birçok veri örnek
olarak sayılabilir.
1.3. Veritabanı Yönetim Sistemleri
( Database Management Systems
- VTYS
- DBMS )
Veritabanlarının oluşturulması, düzenlenmesi ve kullanılması amacıyla mevcut kitaplıklar,
uygulamalar ve yardımcı programların oluşturduğu sistemlere Veritabanı Yönetim
Sistemleri (VTYS) adı verilmektedir. VTYS’ler sayesinde, veritabanı yöneticileri verilerin
yönetilmesi ile ilgili ayrıntılı işlerden kurtulmaktadır.
-2-
Bölüm 1: Veritabanı Yönetim Sistemlerine Giriş
1.4. Veritabanı Çeşitleri
Kullanılacak veritabanının seçiminde güvenlik, kullanıcı sayısı, aynı zamanda işlem sayısı
ve verilerin toplam miktarı önemli rol oynamaktadır. Bu isteklere bağlı olarak uygun bir
veritabanı seçimi yapılabilir. İlişkisel VTYS’lere Oracle, MSSQL Server, MySQL, DB/2 ve
Access örnek olarak verilebilmektedir.
DB/2
IBM firması tarafından büyük sitemler için geliştirilen bir veritabanı yönetim sistemidir.
Oracle
Oracle en gelişmiş veritabanlarından biridir ve kullanımı oldukça yaygındır. Windows ve
Unix işletim sistemleri tarafından desteklenmekte olup, geniş bir yazılım desteği vardır.
Oracle en güçlü yapıya sahip, güvenilirliği çok yüksek bir veritabanıdır. Oracle ile bir
tabloda sınırsız sayıda (Bilgisayar kapasitesine bağlı) veri tutulabilmektedir. Oracle
veritabanı diğer veritabanlarına göre daha pahalıdır.
Microsoft SQL Server
Microsoft firması tarafından geliştirilen Microsoft SQL Server (MSSQL) iyi bir
performansa sahiptir. Kullanım kolaylığı ve güvenilirliğinin yüksek olması gibi iyi yönleri
mevcut olmasına rağmen sadece Windows işletim sistemlerinde çalışıyor olması
dezavantajıdır. Şu anda diğer işletim sistemlerine yönelik uyumluluk üzerinde çalışmalar
mevcuttur. Microsoft MSSQL ile bir tabloda yaklaşık 4 Tbyte veri tutulabilmektedir.
MSSQL Server veritabanı “Transaction”, “Trigger” ve “Stored Procedure” gibi özelliklere
sahiptir.
MySQL
MySQL veritabanı MySQL Inc. tarafından geliştirilmiştir. Windows, Linux, OS/2 gibi
birçok işletim sistemi tarafından desteklenmektedir. Web uygulamaları için hızlıdır ve
kullanımı oldukça yaygındır. MySQL veritabanı ile bir tabloda 8 TByte veri
tutulabilmektedir. ‘Transaction’ özelliğine sahip değildir.
Microsoft Access
Microsoft Office uygulamalarından Access, küçük uygulamalar için ucuz maliyetli bir
seçimdir. Access veritabanı veri miktarı ve aynı zamandaki işlem sayısı az olan Web
sayfalarında kullanılabilir. Access ile aynı anda 255 bağlantı yapılabilmekte ve bir tabloda
2 GB’a kadar veri tutulabilmektedir. Access “Transaction” özelliğine sahip olmasına
rağmen “Trigger-Tetikleyici” ve “Stored Procedure-Saklı Prosedür” özelliklerine sahip
değildir.
-3-
Dr. Serkan DİŞLİTAŞ
1.5. Veritabanı Yönetim Sistemlerinin Yararları
Klasik dosyalama sistemlerinin aşağıda belirtilen özelliklerin birçoğunu sağlayamaması ve
zorluğu nedeniyle VTYS’lere olan ilgi artmış ve kullanım alanları genişlemiştir. Aşağıda
VTYS’lerinin yararları maddeler halinde kısaca anlatılmaya çalışılmıştır :

Minimum Veri Tekrarı (Minimum Data Redundancy): Mevcut veriler
kullanıcı veya bilgisayarlara bağlı olarak birden fazla tutulmamaktadır. Bu sayede
aynı verinin birkaç yerde tutulması engellenmiş olmaktadır.

Veri Tutarlılığı (Data Consistency): Verinin merkezi bir yerde tutulması
nedeniyle güncelleme, yedekleme, yeniden başlatma, onarma gibi işlemlerden
kaynaklanabilecek sorunlar da giderilmiş olmaktadır.

Veri Paylaşımı (Data Share): Veritabanındaki verilerin tutarlılığını ve
bütünlüğünü bozmadan birden çok (veritabanına bağlı olarak 255, 1000, 5000 …)
bağlantıya eşzamanlı olarak izin verilebilmektedir.

Veri Bütünlüğü (Data Integrity) : Birbiriyle ilişkili tablolarda; bir kayıt silme
veya güncelleme durumunda o kayıta bağlı olarak diğer tablolarda da değişiklikler
kolaylıkla yapılabilmektedir. Bu sayede veriler bir bütün olarak
düzenlenebilmektedir.

Veri Güvenliği (Data Security) : VTYS’ler ile güvenlik ve gizlilik istenen
düzeyde sağlanabilmektedir. Veritabanlarına erişimde güvenlik amacıyla şifreler
kullanılabilmektedir. Ayrıca tablolarda yapılacak işlemlerde yetkiler
belirlenebilmekte ve bu yetkilere bağlı olarak gerekli yönetimsel ve tanımlama
işlemleri yapılabilmektedir. Tabloların tamamının ya da bir kısmının (belirli
sütunlarının) izlenip güncellenebilmesi sağlanabilmektedir.

Veri Bağımsızlığı (Data Independence) : VTYS’lerde veriler bağımsız olarak
kullanılabilmektedir. Verinin yapısı ve organizasyonu ile programcı ilgilenmek
zorunda değildir.
1.6. Veritabanı Türleri
Veritabanında bulunan verilerin değişik şekillerde (modellerde) organize edilmesi
mümkündür. Geliştirilen veritabanı modelleri aşağıdaki gibi 3 türde incelenmektedir :
 İlişkisel Veritabanı Modeli
 Hiyerarşik Veritabanı Modeli
 Nesnesel Veritabanı Modeli
Bunlar içerisinde en çok ilişkisel veritabanları kullanılmaktadır.
-4-
Bölüm 1: Veritabanı Yönetim Sistemlerine Giriş
1.7. İlişkisel Veritabanı ( Relational Database ) Modeli
İlişkisel Veritabanı modeli, günümüzde en çok tercih edilen veritabanı modelidir. İlişkisel
Veritabanı modellerinde veriler kendi içerisinde ilişkilendirilerek basit tablolar halinde
tutulurlar. Burada tablo kümelendirilmiş veri topluluğu anlamına gelmekte olup, satır ve
sütunlardan oluşmakta ve veriler bu tablolara kayıt yapısında kaydedilmektedir. Bir tabloda
mevcut sütun bilgilerinin oluşturduğu her satır kayıt olarak adlandırılmaktadır. İlişkisel
veritabanları için en az iki tablonun birbirleri ile ilişkilendirilmiş olması gerekmektedir.
Örneğin öğrenci takibi amacıyla oluşturulacak bir ilişkisel veritabanında kimlik bilgileri,
not bilgileri, ders bilgileri ayrı ayrı tablolarda tutulmaktadır.
İlişkisel veritabanlarında sorgular yapılarak aşağıdaki işlemler yapılabilir :





Kayıt Süzme
Sütun Süzme
Tablo Birleştirme
Hesaplama
Yeni Alanlar
: Tüm kayıtlar ya da istenen kayıtların elde edilmesi.
: Tüm alanların ya da istenen alanların elde edilmesi.
: İki ya da daha çok tablonun birleştirilerek elde edilmesi.
: Alanlar üzerinde hesaplamaların yapılması.
: Yeni alanların oluşturulabilmesi.
1.8. Normalizasyon Kuralları
Tablo tasarımında birtakım kurallara uyulması veritabanının performansını ve
güvenilirliğini artırmaktadır. Tablolarda sütün sayılarının, veri tekrarlarının ve Null
değerlerin en az sayıda olması istenir. Ayrıca veri bütünlüğünün sağlanması ve veriler
arasında ilişkilerin tanımlanması yapılabilmelidir.
Tablo oluşturmada uyulması gereken normalizasyon kuralları şunlardır :
1.
Tablolar, en az sayıda alan ile oluşturulmalıdır. Bu sayede gereksiz satır ve sütun
tekrarları engellenir.
2.
Tabloyu oluşturan alanlar bir bütünü oluşturmalı ve tablo diğer tablolardan
bağımsız olmalıdır.
3.
Tabloyu oluşturan her alan sadece bir bilgi içermelidir.
4.
Her tablo için en az bir Birincil Anahtar (Primary Key) tanımı olmalıdır.
5.
Tablodaki alanlar birincil anahtara bağlı diğer bilgileri içermelidir. Bir alan
anahtar olmayan başka bir alana bağlı olmaz.
-5-
Dr. Serkan DİŞLİTAŞ
1.9. İlişkisel Veritabanı Tasarımı
İlişkisel veritabanı tasarımında aşağıdaki kurallara uyulması son derece yararlı olmaktadır :
1.
Proje kapsamında, veritabanı oluşturacak veriler belirlenir.
2.
Veriler analiz edilerek bağımsız tablolar oluşturulur.
3.
Tablolar için en az bir Birincil Anahtar (Primary Key) oluşturulur.
4.
Birincil Anahtar (Primary Key) ve Yabancı Anahtar (Foreign Key) alanları
kullanılarak tablolar arasında ilişkiler tanımlanır.
Şekil 1.2’de Kimlik, Notlar ve Dersler adında oluşturulan tabloların mevcut alanları
verilmiş ve bu tablolar arasındaki ilişki gösterilmiştir. Tablolar arasındaki ilişkilerin
oluşturulmasında anahtar alanlar kullanılmaktadır. Şekil 1.3’te Kimlik, Notlar ve Dersler
adlı tablolar için girilen örnek veriler ile bir tablodaki Anahtar (Key), Alan (Field) ve Kayıt
(Record) yapıları görülmektedir.
Kimlik
Numara
FK
PK
Notlar
FK
Numara
PK
Dersler
DersKodu
DersAdi
Ad
DersKodu
Soyad
Vize
Teori
Telefon
Final
Pratik
Kredi
Adres
PK : Primary Key (Birincil Anahtar) FK : Foreign Key (Yabancı Anahtar) -
Başvuran Tablo Alanı
Başvurulan Tablo Alanı
Şekil 1.2. İlişkisel veritabanında tabloların örneksel ilişkisi
-6-
Bölüm 1: Veritabanı Yönetim Sistemlerine Giriş
a. ‘Notlar’ tablosunun tasarım yapısı
Kayıt
(Record )
Alan (Field)
b. Öğrenci Kimlik bilgilerinin tutulduğu ‘Kimlik’ tablosu
-7-
Dr. Serkan DİŞLİTAŞ
c. Not bilgilerinin tutulduğu ‘Notlar’ tablosu
d. Ders bilgilerinin tutulduğu ‘Dersler’ tablosu
Şekil 1.3. Tablo Yapıları ve Alanlar
1.10. Index (İndeks) ve Key (Anahtar)
İndeks ve anahtarlar kayıtlara erişimin daha hızlı olmasını sağlamaktadır. İndeksiz bir
tabloda kayıtlar sıra erişimli olarak getirilecek, bu da performansın düşmesine yol açacaktır.
Tablolar için bir veya daha fazla sayıda indeks ya da anahtar belirlenebilmektedir.
Anahtarlar tablodaki kayıtların fiziksel olarak sıralı bir biçimde elde edilmesini sağlarken,
indeksler belirtilen indeks alanına göre sıralama kriterlerini tutmaktadırlar. Anahtar olarak
belirlenen alan ya da alanlardaki veriler tek olmak zorundadır.
-8-
Bölüm 1: Veritabanı Yönetim Sistemlerine Giriş
Örneğin Numara, Ad, Soyad, Telefon ve Adres alanlarından oluşan bir tabloda Numara
alanı Key (Anahtar) olarak tanımlanırsa, bu tabloda Numara alanına göre kayıt girişleri
sıralı olarak yapılacaktır. Yeni yapılan kayıtlara göre fiziksel olarak yer değişimleri
yapılmaktadır. Ayrıca anahtar alanı aynı olan yeni kayıtların girişi engellenmektedir.
Tabloda hem Ad hem de Soyad alanına birlikte Key özelliği verilirse, yeni girilen bir kayıt
için daha önceki kayıtlara göre hem adın hem de soyadın aynı olması engellenmektedir.
Daha önceden görüldüğü gibi Şekil 1.3.a’da Notlar tablosu için OgrNo, DersKodu ve
DyilDonem alanlarına birlikte Key özelliği verilmiştir. Bu durumda Notlar tablosuna bu üç
alan değeri aynı olan ikinci bir kayıt girmek imkansızdır. Çünkü bir öğrenci bir dersi ilgili
dönemde sadece bir kez alma durumundadır. Aksi halde öğrencinin ders kayıtlarında
sorunlar yaşanabilmektedir.
Anahtar Alanların 3 temel görevi vardır:
 Anahtar alan(lar)a göre kayıtların fiziksel olarak sıralanması
 Anahtar alan(lar)a göre kayıt tekrarının engellenmesi
(Anahtar alan(lar)a veri giriş mecburidir.)
 Anahtar alanlara göre tabloların ilişkilendirilmesi
-9-
Dr. Serkan DİŞLİTAŞ
-10-
Download