Veri tabanına Giriş

advertisement
Fahri YILMAZ

Veritabanının amacı;
 insanların ve
 organizasyonların birşeyleri takip edebilmesine
yardımcı olmaktır.

Veritabanını kullanmaksızın birşeylerin
kaydını tutmak için listeler kullanılır.
 Alışveriş listesi,
 Yapılacak işler listesi,
 Ödenen faturaların listesi

Listeler;
Müsteri
adı
Mesleği
Ahmet
mimar
Sema
Firma
Adres
Fiyat
A
Çanakkale Cad. 43/5
1000 YTL
öğretmen
B
Kayabaşı mah. A
Blok 8/4
250 YTL
Serdar
mühendis
C
Gazi Mah 6/7
350 YTL
Zerrin
emekli
B
Kayabaşı mah. A
Blok 8/4
700 YTL
Mehmet Öğretim
elemanı
B
Kayabaşı mah. A
Blok 8/4
1200 YTL
Defne
Doktor
D
Gazi Mah 6/7
100 YTL
Elif
avukat
A
Çanakkale Cad. 43/5
150 YTL

Listelerle ilgili problemler;
 Örneğin B firmasının adresi değişti
 3 satırdaki adres bilgisi de değişmeli
 Eksik kalırsa bilgi tutarsızlığı oluşur
 Hem zaman kaybına hem de hataya neden
olabilir.

Listelerle ilgili problemler;
 Örneğin A firması artık sizin şirketinizle çalışmıyor,
 Listeden firmayla ilgili kaydı silerseniz ürün satışı
yapılan müşteri bilgisini ve firma adresi gibi
bilgileri kaybedersiniz.

Paylaşılan verilerle ilgili problemler;
 Örneğin şirketinizin farklı departmanlarının firma
bilgisini görüntülemesi gerekiyor;
▪ İletişim departmanı: firma, adresi
▪ Pazarlama departmanı: firma, fiyat
▪ Müşteri hizmetleri: müşteri adı, mesleği, firma

Paylaşılan verilerle ilgili problemler;
 Bu bilgilerin tamamının tüm departmanlarla
paylaşılması ise farklı nedenlerden dolayı
sakıncalıdır
▪ Güvenlik
▪ Müşteri gizliliği
▪ vb.


Listeler oluşturmanın en büyük sakıncası
farklı temalarla ilgili bilgileri bir arada
bulundurmasıyla ilgilidir.
Örneğin bir yazılı doküman oluşturulurken
farklı temalar için farklı paragraflar
oluşturulur,

Benzer şekilde farklı temalardaki bilgilerin
farklı tablolara yerleştirilmesi süreci
normalizasyon olarak adlandırılır.

Biraz önceki liste için;
 Müşteriler
 Çalışılan firmalar
 Satış bilgileri gibi
 Müşteriler
Müsteri adı
Mesleği
Ahmet
mimar
Sema
öğretmen
Serdar
mühendis
Zerrin
emekli
Mehmet
Öğretim
elemanı
Defne
Doktor
Elif
avukat
 Çalışılan firmalar
Firma
Adres
A
Çanakkale Cad. 43/5
B
Kayabaşı mah. A
Blok 8/4
C
Gazi Mah 6/7
D
Gazi Mah 6/7
 Satış bilgileri
Fiyat
1000 YTL
250 YTL
350 YTL
700 YTL
1200 YTL
100 YTL
150 YTL

Farklı temalar farklı tablolara
yerleştirildiğinde,
 Değişen bilgiler,
 Silinen bilgiler ve
 Paylaşılan bilgilerle ilgili problemlerin çoğu
ortadan kalkar.

Farklı temalar farklı tablolarda yer aldığında;
 Hangi müşteri hangi firmadan ürünü almış gibi
soruları cevaplamak için ilişkilerin kurulması
gereklidir.

İlişkiler
Müşteri
No
Firma
No
Fiyat
1
1
1000 YTL
2
2
250 YTL
Firma
No
Firma
1
A
Çanakkale Cad.
43/5
700 YTL
2
B
Kayabaşı mah.
A Blok 8/4
2
1200 YTL
3
C
Gazi Mah 6/7
6
4
100 YTL
4
D
Gazi Mah 6/7
7
1
150 YTL
Müşteri
No
Müsteri
adı
Mesleği
1
Ahmet
mimar
3
3
350 YTL
2
Sema
öğretmen
4
2
3
Serdar
mühendis
5
4
Zerrin
emekli
5
Mehmet
Öğretim
elemanı
6
Defne
Doktor
7
Elif
avukat
Adres

İlişkiler
Müşteri
No
Firma
No
Fiyat
1
1
1000 YTL
2
2
250 YTL
Firma
No
Firma
1
A
Çanakkale Cad.
43/5
700 YTL
2
B
Kayabaşı mah.
A Blok 8/4
2
1200 YTL
3
C
Gazi Mah 6/7
6
4
100 YTL
4
D
Gazi Mah 6/7
7
1
150 YTL
Müşteri
No
Müsteri
adı
Mesleği
1
Ahmet
mimar
3
3
350 YTL
2
Sema
öğretmen
4
2
3
Serdar
mühendis
5
4
Zerrin
emekli
5
Mehmet
Öğretim
elemanı
6
Defne
Doktor
7
Elif
avukat
Adres

Tabloları birleştirmek
 Peki baştaki bütüncül listeyi elde etmek için ne
yapılır?
 SQL dilinden faydalanılır.

Veri tabanı sisteminin bileşenleri;
Veritabanı
Uygulaması
Kullanıcı
Veritabanı
Yönetim
Sistemi
Veritabanı

Kullanıcı:
 İşlerini gerçekleştirmek için veritabanını kullanır,
 Yeni veri ekler,
 Mevcut verileri değiştir,
 Verileri siler,
 Formlar, sorgular ya da raporlar yoluyla verileri
okur

Veri Tabanı Uygulaması:
 Veri tabanı yönetim sistemi ile kullanıcı arasında
iletişimi sağlayan bir ya da birden fazla bilgisayar
programıdır.
 Formlar , sorgular ve raporlar oluşturur,
 Kullanıcıdan verileri alır ya da kullanıcıya verileri
gönderir,
 Kullanıcı davranışlarını veri tabanı yönetim
sisteminden veri yönetim etkinliği için isteklere
dönüştürür.

Veri Tabanı Yönetim Sistemi:
 Uygulamadan gelen istekleri alarak bunları veri
tabanı dosyaları üzerinde verileri okuyarak ya da
veri yazarak gerçekleştirir,
 SQL cümlelerini okur ve bu ifadeleri bilgisayarın
işletim sisteminin veritabanı dosyaları üzerinde
verileri okuyacağı ya da yazacağı yönergelere
dönüştürür.

İşlevler
 Veri Tabanı Uygulaması
 Veri Tabanı Yönetim Sistemi

Veri Tabanı Uygulaması:
1. Formlar oluşturur ve formları işler,
2. Sorgular oluşturur ve sorgular iletilir,
3. Raporlar oluşturur ve raporları işletir,
4. Uygulama mantığını gerçekleştirir,
5. Uygulamayı kontrol eder.

Veri Tabanı Uygulaması:
1. Formlar oluşturur ve formları işler,
▪ Örneğin web temelli bir uygulamada;
▪ Kullanıcının bilgisayarında görüntülenecek HTML ve
diğer web biçimlerini oluşturur,
▪ Kullanıcı formları doldurarak verileri geri yolladığında
VTYS’ne gerekli düzenlemelerle ilgili istekleri gönderir.
▪ Süreçte bir hata meydana gelirse, hatalara ulaşır ve
kullanıcıya gerekli mesajı gösterir ve/veya gerekli
işlemleri gerçekleştirir.

Veri Tabanı Uygulaması:
2. Sorgular oluşturur ve sorgular iletilir,
▪ VTYS’ne iletilecek sorguyu üretir,
▪ Bu istekler genellikle SQLile ifade edilir,
▪ Sorgu işletilince, sonuçlar biçimlendirilir ve kullanıcıya
iletilir,

Veri Tabanı Uygulaması:
3. Raporlar oluşturur ve raporları işletir,
▪ VTYS’den sorgular aracılığıyla veri istenir ve sorgu
sonuçları raporlar biçiminde sunulur,

Veri Tabanı Uygulaması:
4. Uygulama mantığını gerçekleştirir,
▪ Örneğin kullanıcı 10 birimlik bir istekte bulundu ancak
stokta 8 birim bulundu,
▪ Ne olacağı programın mantığına bağlıdır,
▪ Uygun mantığın gerçekleştirilmesi uygulama
programının görevidir.

Veri Tabanı Uygulaması:
5. Uygulamayı kontrol eder

Veri Tabanı Yönetim Sistemi:
1.
2.
3.
4.
5.
6.
Veritabanını oluşturmak, tabloları oluşturmak,
Veritabanından veri okumak ve verileri güncellemek,
Veri değerlerine ilişkin sınırlamaları gerçekleştirmek,
Bir kullanıcının işleminin diğer kullanıcıyı
engellemesini önlemek,
Kullanıcıların yetkileri ölçüsünde etkinlikte
bulunmalarına izin vermek,
Veri tabanındaki verileri yedekleme.

Veri Tabanı:
 İlişkili kayıtlardan oluşan veri depolarıdır.
▪ Üst veri (metadata)
▪ indeks
▪ saklı yordam (stored procedure)
▪ tetikleyici (trigger)
▪ veri tutarlılığı (referential integrity)
 Veri tabanının yapısı hakkındaki verilere metadata
adı verilir.
▪ Tablo isimleri
▪ Sütun isimleri
▪ Tablo ve sütunların özellikleri vb.
 Metadata örneği:
Tablo
no
Tablo adı
Sütun sayısı
Satır sayısı
1
Müşteriler
3
7
2
Firmalar
3
4
3
Satışlar
3
7
Sütun
no
Sütun
adı
Veri türü
Uzunluğu
Tablo
no
1
id
int
4
1
2
Mus_adi
char
50
1
3
meslegi
char
50
1
 Bazı veritabanları uygulama üst verisi içerir.
 Bu üst veriler, formlar ve raporlar gibi uygulama
bileşenlerini tanımlar.
 VTYS’inin veritabanının yapısını göstermek için
çeşitli araçları vardır.
 Aynı zamanda veritabanlarında veritabanının
performansını artırmak için kullanılan indeksler
vardır.
 Indeksler hangi kayıtların hangi tablolarda
bulunduğunu gösteren kitapların başındakine
benzer bir mantığı olan araçlardır.
 Saklı yordamlar derlenmiş sql cümlecikleridir.
 Birer veritabanı nesnesi oldukları için, doğrudan
veritabanı yöneticisi olan programda yer alırlar.
 Örneğin bir tablodaki verilerin yedeğini alan ya da
1 yıldan fazla zaman geçen verilerin yedeğini
kaldıran saklı yordamlar oluşturulabilir.
 Saklı yordamlar bir tabloya bağlı olmaksızın
veritabanı içinde tanımlanan belirli bir işi yapmaya
yönelik kodlardır.
 Bu kodlar yazıldığı zaman aynı zamanda
derlendikleri için optimize edilmiştir ve en hızlı
şekilde çalışmaya hazır kodlardır.
 Bir tablo üzerinde belirli bir olaya bağlı olarak
tetiklenip çalışan SQL kodlarına tetikleyici
(trigger) denir.
 Tablo üzerindeki triggerları tetikleyen olaylar
insert, update, delete olaylarıdır.
 Örneğin stok hareketleri sonucunda stok
miktarlarının azalması veya artması işlemlerinin
yapılması tipik bir trigger kullanım yeridir.
 Hem tetikleyici hem de saklı yordamlar veritabanı
üzerindeki kodlar olmaları sebebi ile veritabanını
sunan sunucu üzerinde çalışırlar.
 İstemci&Sunucu mimarinin güçlü
bileşenlerindendir.
 İstemci&Sunucu mimarideki SQL veritabanları
tarafından desteklenmektedir.
▪ Oracle, Sybase, MS SQL, Interbase, FireBird vb.
 Verilerin bulunduğu sunucu üzerinde
çalışmalarından dolayı veriler istemci ile sunucu
arasında gidip gelmezler ve de sunucudan istemci
tarafına minimum veri çekilmiş olur.
 İlişkisel bir veritabanında
▪ PERSONEL tablosundaki kişinin bölüm bilgisinin
BOLUM_NO değişkeninde tutulduğunu ve
▪ bölümün adının da BOLUM tablosunda bulunduğunu
düşünelim.
 Eğer 1 numaralı bolum herhangi bir personelde
kullanıldıysa BOLUM tablosundan BOLUM_NO
değeri 1 olan kaydın kesinlikle silinememesi
gerekmektedir.
 Bu tür kontrollerin yapılarak veri bütünlüğünün
korunmasına veri tutarlılığı (referential integrity)
denir.
 Veri tutarlılığını sağlamak amacı ile trigger
kullanımı çok tercih edilir.

3 tür veri tabanı sistemi olabilir:
 Tek bir kişi tarafından kullanılan,
 Küçük çaplı işletmeler tarafından kullanılan,
 Büyük uluslar arası şirketler tarafından kullanılan

Tek bir kişi tarafından kullanılan,
 Boyacı
 Kimlerin evi, ne zaman, ne kadar boyandı?
 Boyamada nereler boyandı, hangi renk ve stiller
kullanıldı?
 Kimler başkalarına referans oldu? Referansla
gelen kimler?

Tek bir kişi tarafından kullanılan,

Tek bir kişi tarafından kullanılan,

Tek bir kişi tarafından kullanılan,

Küçük çaplı işletmeler tarafından kullanılan,
 Kiralanan müzik enstrümanları neler?Kaça
kiralandı?
 En çok hangi müzik enstrümanları kiralanıyor?
 Kiralamayı kim yaptı? (çok kullanıcılı veritabanı)
 Aynı anda aynı enstrüman iki farklı satıcı
tarafından seçilememeli!

Küçük çaplı işletmeler tarafından kullanılan,

Küçük çaplı işletmeler tarafından kullanılan,

Küçük çaplı işletmeler tarafından kullanılan,

Küçük çaplı işletmeler tarafından kullanılan,

Büyük uluslar arası şirketler tarafından
kullanılan,





Sürücü lisansı veren ve otomatik kayıt bürosu
52 farklı merkezi var
Kişilerin kazaları, trafik ihlalleri tutuluyor,
Lisans yenilenebilir mi, herhangi bir sınırlama var mı?
100’lerce kişi tarafından veritabanı kullanılıyor
▪ Lisans ve kayıt personeli
▪ Kanun yaptırımlarını takip edenler
▪ Maliye departmanı personeli
 Haftada 7 gün 24 saat ulaşılabilmeli

Büyük uluslar arası şirketler tarafından
kullanılan,

Kroenke, D. M. (2006). Database Processing:Fundamentals,
Design, and Implementation.Pearson Education
International. Singapore,Canada,Japan.

http://www.delphiturkiye.com/trigger.htm
Download