Veri taban*na Giri

advertisement
VERITABANI / TEMEL KAVRAMLAR
13 Mart 2017
Yrd. Doç. Dr. Muhammet ARUCU
Veritabanı neden kullanılır?

Veritabanının amacı;
 insanların
ve
 organizasyonların birşeyleri takip
edebilmesine yardımcı olmaktır.
Veritabanı neden kullanılı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
Veritabanı neden kullanılır?

Listeler;
Müşteri
adı
Mesleği
Ahmet
mimar
Sema
Firma
Adres
Fiyat
A
Çanakkale Cad. 43/5
1000 TL
öğretmen
B
Kayabaşı mah. A Blok 8/4
250 TL
Serdar
mühendis
C
Gazi Mah 6/7
350 TL
Zerrin
emekli
B
Kayabaşı mah. A Blok 8/4
700 TL
Mehmet
Öğretim elemanı
B
Kayabaşı mah. A Blok 8/4
1200 TL
Defne
Doktor
D
Gazi Mah 6/7
100 TL
Elif
avukat
A
Çanakkale Cad. 43/5
150 TL
Veritabanı neden kullanılır?

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.
Veritabanı neden kullanılır?

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.
Veritabanı neden kullanılır?

Paylaşılan verilerle ilgili problemler;
 Örneğin
şirketinizin farklı departmanlarının
firma bilgisini görüntülemesi gerekiyor;
departmanı: firma, adresi
 Pazarlama departmanı: firma, fiyat
 Müşteri hizmetleri: müşteri adı, mesleği, firma
 İletişim
Veritabanı neden kullanılır?

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
 vb.
gizliliği
Veritabanı neden kullanılır?
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,

Veritabanı neden kullanılır?


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
Veritabanı neden kullanılır?
 Müşteriler
Müsteri adı
Mesleği
Ahmet
Sema
mimar
öğretmen
Serdar
Zerrin
Mehmet
Defne
mühendis
emekli
Öğretim elemanı
Elif
Doktor
avukat
Veritabanı neden kullanılır?
 Çalışılan
Firma
A
B
C
D
firmalar
Adres
Çanakkale Cad. 43/5
Kayabaşı mah. A Blok 8/4
Gazi Mah 6/7
Gazi Mah 6/7
Veritabanı neden kullanılır?
 Satış
bilgileri
Fiyat
1000 TL
250 TL
350 TL
700 TL
1200 TL
100 TL
150 TL
Veritabanı neden kullanılır?

Farklı temalar farklı tablolara
yerleştirildiğinde,
 Değişen
bilgiler,
 Silinen bilgiler ve
 Paylaşılan bilgilerle ilgili problemlerin çoğu
ortadan kalkar.
Veritabanı neden kullanılır?

Farklı temalar farklı tablolarda yer
aldığında;
 Hangi
müşteri hangi firmadan ürünü almış
gibi soruları cevaplamak için ilişkilerin
kurulması gereklidir.
Veritabanı neden kullanılır?

İlişkiler
Müşter
i
No
Müşteri
No
Müşteri
adı
Mesleği
1
Ahmet
mimar
2
Sema
öğretmen
3
Serdar
mühendis
4
Zerrin
5
Firma
No
Fiyat
1
1
1000 TL
2
2
250 TL
3
3
350 TL
4
2
700 TL
5
2
1200 TL
emekli
6
4
Mehmet
Öğretim
elemanı
7
1
6
Defne
Doktor
7
Elif
avukat
Firma Firma Adres
No
1
A
Çanakkale
Cad. 43/5
2
B
Kayabaşı mah.
A Blok 8/4
100 TL
3
C
Gazi Mah 6/7
150 TL
4
D
Gazi Mah 6/7
Veritabanı neden kullanılır?

İlişkiler
Müşteri
No
Firma
No
Fiyat
1
1
1000 TL
2
2
250 TL
mimar
3
3
350 TL
Sema
öğretmen
4
2
700 TL
3
Serdar
mühendis
5
2
1200 TL
4
Zerrin
emekli
6
4
100 TL
5
Mehmet
Öğretim
elemanı
7
1
150 TL
6
Defne
Doktor
7
Elif
avukat
Müşteri
No
Müşteri
adı
Mesleği
1
Ahmet
2
Firma Firma Adres
No
1
A
Çanakkale
Cad. 43/5
2
B
Kayabaşı mah.
A Blok 8/4
3
C
Gazi Mah 6/7
4
D
Gazi Mah 6/7
Veritabanı neden kullanılır?

Tabloları birleştirmek
 Peki
baştaki bütüncül listeyi elde etmek için
ne yapılır?
 SQL dilinden faydalanılır.
Veritabanı neden kullanılır?
Veritabanı yönetim sistemi nedir?

Veri tabanı sisteminin bileşenleri;
Veritabanı
Uygulaması
Kullanıcı
Veritabanı
Yönetim
Sistemi
Veritabanı
Veritabanı yönetim sistemi nedir?
Veritabanı yönetim sistemi nedir?

Kullanıcı:
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
 İşlerini
Veritabanı yönetim sistemi nedir?

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.
Veritabanı yönetim sistemi nedir?

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.
Veritabanı yönetim sistemi nedir?

İşlevler
 Veri
Tabanı Uygulaması
 Veri Tabanı Yönetim Sistemi
Veritabanı yönetim sistemi nedir?

Veri Tabanı Uygulaması:
1.
2.
3.
4.
5.
Formlar oluşturur ve formları işler,
Sorgular oluşturur ve sorgular iletilir,
Raporlar oluşturur ve raporları işletir,
Uygulama mantığını gerçekleştirir,
Uygulamayı kontrol eder.
Veritabanı yönetim sistemi nedir?

Veri Tabanı Uygulaması:
Formlar oluşturur ve formları işler,
1.
▪
▪
▪
▪
Ö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.
Veritabanı yönetim sistemi nedir?

Veri Tabanı Uygulaması:
Sorgular oluşturur ve sorgular iletilir,
2.
▪
▪
▪
VTYS’ne iletilecek sorguyu üretir,
Bu istekler genellikle SQL ile ifade edilir,
Sorgu işletilince, sonuçlar biçimlendirilir ve
kullanıcıya iletilir,
Veritabanı yönetim sistemi nedir?

Veri Tabanı Uygulaması:
Raporlar oluşturur ve raporları işletir,
3.
▪
VTYS’den sorgular aracılığıyla veri istenir ve
sorgu sonuçları raporlar biçiminde sunulur,
Veritabanı yönetim sistemi nedir?

Veri Tabanı Uygulaması:
Uygulama mantığını gerçekleştirir,
4.
▪
▪
▪
Ö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.
Veritabanı yönetim sistemi nedir?

Veri Tabanı Uygulaması:
5.
Uygulamayı kontrol eder
Veritabanı yönetim sistemi nedir?

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.
Veritabanı

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)
Veritabanı

Veri tabanının yapısı hakkındaki verilere
metadata adı verilir.
▪
▪
▪
Tablo isimleri
Sütun isimleri
Tablo ve sütunların özellikleri vb.
Veritabanı

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
mesleği
char
50
1
Veritabanı



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.
Veritabanı


Aynı zamanda veritabanlarında
veritabanının performansını artırmak için
kullanılan indeksler vardır.
İndeksler hangi kayıtların hangi tablolarda
bulunduğunu gösteren kitapların başındakine
benzer bir mantığı olan araçlardır.
Veritabanı



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.
Veritabanı


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.
Veritabanı


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.
Veritabanı
 Örneğin
stok hareketleri sonucunda stok
miktarlarının azalması veya artması
işlemlerinin yapılması tipik bir trigger
kullanım yeridir.
Veritabanı
 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.
Veritabanı
 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.
Veritabanı
 İ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.
Veritabanı
 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.
Veritabanı
 Veri
tutarlılığını sağlamak amacı ile trigger
kullanımı çok tercih edilir.
Veri Tabanı Sistemleri

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
Veri Tabanı Sistemleri

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?
Veri Tabanı Sistemleri

Tek bir kişi tarafından kullanılan,
Veri Tabanı Sistemleri

Tek bir kişi tarafından kullanılan,
Veri Tabanı Sistemleri

Tek bir kişi tarafından kullanılan,
Veri Tabanı Sistemleri

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!
Veri Tabanı Sistemleri

Küçük çaplı işletmeler tarafından kullanılan,
Veri Tabanı Sistemleri

Küçük çaplı işletmeler tarafından kullanılan,
Veri Tabanı Sistemleri

Küçük çaplı işletmeler tarafından kullanılan,
Veri Tabanı Sistemleri

Küçük çaplı işletmeler tarafından kullanılan,
Veri Tabanı Sistemleri

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
Veri Tabanı Sistemleri

Büyük uluslar arası şirketler tarafından
kullanılan,
Download