Veri tabanı bileşenleri

Download Report

Transcript Veri tabanı bileşenleri

Veri tabanı bileşenleri
http://www.fatih.edu.tr/~zcetin
Veri tabanı bileşenleri
1-tablolar
a- kolonlar (alanlar = field )
b-kayıtlar ( record )
c- anahtarlar
birincil anahtar = primary key
yabancı anahtar = foreign key
(ikincil anahtar=secondery key)
2-indexler
3- görünümler (view)
4- Store Procedure (SP)
5- Tetikleyiciler (triger)
Tablolar
Verilerin mantıksal olarak saklandığı
ortamlardır.
oTabloları adlandırırken tablonun içeriği ile
uyumlu olmasına dikkat etmek gerekir.
o
Btp bölümü
Btp_dersler
Btp_öğrenci
muhasebe bölümü
muh_derslik
muh_öğretmen
Kolonlar
aynı konu ile ilgili verilerin toplandığı kısım
oKolonlar adlandırılırken, içerdiği veriyi temsil
edebilmeli
oAit olduğu tabloyu temsil etmeli (join
işlemlerinde birleştirilen tablolardaki aynı adlar
çakışır)
oVeri tipleri belirlenmeli
o
Btp_dersler
Dr_kodu
otomatik
Dr_adi
metin(50)
Dr_donemi integer
btp_ogrenci
ogr_kodu
metin(8)
ogr_adi
metin(20)
ogr_soyadi metin(20)
Kayıtlar
bir tabloya ait tüm kolonlarını içeren
veriler kümesi
oÇift kayıt olmamasına dikkat edilmeli
oAynı numaralı tek öğrenci olmalı
o
btp_ogrenci
ogr_kodu
08020512
08020525
08020512
ogr_adi
mustafa
mustafa
ahmet
ogr_soyadi
akyol
armağan
selim
Anahtarlar (birincil)
her tablonun en az 1 tane birincil anahtarı
olmalı
oHer bir kaydı diğerlerinden ayırmalı
oTekrar etmeyen (tek=unique) ve boş geçilemez
o
btp_ogrenci
ogr_kodu
08020512
08020525
08020515
ogr_adi
ogr_soyadi
mustafa
akyol
mustafa
armağan
ahmet
selim
?? Birincil anahtar hangisi olmalı
Anahtarlar (yabancı)
iki tablo arasındaki ilişkiyi tanımlar
oAna tabloda birincil anahtar olan alan
oVeri türü tutarsız olmamalı (intint)
o
Btp_dersler
Dr_kodu
otomatik
Dr_adi
metin(50)
Dr_donem_kodu integer
btp_donem
dn_kodu
integer
dn_adi
metin(20)
indexler
tablo içindeki kayıtlara,bir veya daha çok
sayıda alanın içerdiği veri baz alınarak hızlı
erişim sağlayan nesneler
oArama yapılırken tüm kayıtlara
bakılmaksızın istenen bilgiye daha kolay
ulaşılır
o
-kitap indexleri
-mahalle muhtarı indexi
Görünüm(view)
bir veya birden fazla tablodan verileri çekmek
için; bir SQL cümlesi ile oluşturulan sanal bir
tablodur
oBu tablo veya tablolara kayıt eklendikçe, ilgili
view'da kayıtlar güncellenir
o View'daki bilgiler veritabanında depolanmaz,
ilgili tablolardan alınır.
oAdı üstünde görünüm(ekleme,silme,güncelleme
yapılmaz,sadece sorgu çekilir-select- )
o
Görünüm(view)
Btp_dersler
Dr_kodu
otomatik
Dr_adi
metin(50)
Dr_donem_kodu integer
Vw_dersler
Dr_kodu
dr_adi
203
Veri tabanı 2
btp_donem
dn_kodu
integer
dn_adi
metin(20)
dr_donem_kodu
2
dn_adi
2006-2007 güz
Saklı yordamlar(SP)
Sunucu tarafında derlenmiş olarak tutulan SQL
kümesi
oBu küme içerisinde gönderilen parametreler ile
birden fazla SQL sorgusu gerçekleştirilebilir
oSP’ler oluşturulduktan sonra sadece ilk
çalıştırıldıklarında bir kez derlenir ve derlenmiş
hali hafızada tutulur.(SQL sorguları çalışma
zamanında sunucu tarafından derlenir)
!!Uygulamlar içerisinden direkt SQL sorgusu
yollamak yerine sunucu tarafında daha evvel
tanımladığımız SP’leri çağırarak performansı
arttırabiliriz
o
Saklı yordamlar(SP)
CREATE PROCEDURE sp_musteri_siparis
@musteriID nchar(5)
AS
SELECT siparisID,
siparisTarih,
teslimTarihi
FROM Siparis
WHERE musteriID = @ musteriID
ORDER BY siparis ID
GO
Tetikleyiciler(triger)
oBir tablo üzerinde değişiklik gerçekleştiğinde
(UPDATE, INSERT, DELETE) tetikçileri daha
evvelden tanımlamış olduğunuz eylemi
gerçekleştirirler
osilme işlemi gerçekleştirildiğinde aynı kayıt
uzantılarının diğer tablolardan silinmesini
sağlamak (ders silersen, öğrencinin aldığı
dersler tablosunda da silinmesi )
oyeni bir kayıt girildiğinde ilgili kişiye mail
atılmasını sağlamak gibi. (siteye üye oldunuz
hoşgeldiniz maili geliyor hemen )
Örnek veri tabanı tasarımı
Kütüphane arşiv bilgileri
Kitaplar
Yazarlar
Yayın evleri
Okuyucular
Örnek veri tabanı tasarımı
Kütüphane arşiv bilgileri
Kitaplar
Yazarlar
Yayın evleri
Okuyucular
Kitaplar
kolan adı
veri türü
açıklama
kitapID
otomatik
sayı
her kitaba ait ID numarası Vt tarafından otomatik
verilir.çift kayda izin vermemek için
kitapKodu
metin(10) ilk 3 (türünü),2. üç (dilini), 3. 4 (yayın tarihi) // 00102098
KitapTurID
sayı
Turler tablosundaki türü karşılık gelen ID
kitapDilID
sayı
Diller tablosundaki dile karşılık gelen ID
kitapYayinTarihi
tarih
kitabın yayınlanma tarihi
kitapYayineviID
sayı
Yayınevleri atblosundaki yayınevine karşılık gelen ID
kitapSayfaSayisi sayı
KitapFiyati
para /
ondalık
KitapYazarID
sayı
yazarlar tablosundaki yazara karşılık gelen ID
Yazarlar
kolan adı veri türü
yazarID
otomatik
yazarAdi
metin(50)
yazarTel
metin(11)
açıklama
her yazara ait ID numarası Vt
tarafından otomatik verilir.çif kayda izin
vermemek için
Yayınevleri
kolan adı
veri türü
yyID
yyAdi
yyTel
yyAdresi
otomatik
metin(50)
metin(11)
metin(250)
açıklama
her yayınevine ait ID numarası Vt
tarafından otomatik verilir.çif kayda
izin vermemek için
okuyucular
kolan adı
veri türü
okuyucuID
okuyucuAdi
okuyucuTel
okuyucuAdresi
otomatik
metin(50)
metin(11)
metin(250)
açıklama
her okuyucuya ait ID numarası Vt
tarafından otomatik verilir.çif kayda
izin vermemek için
okuyucular
kolan adı
veri türü
okuyucuID
okuyucuAdi
okuyucuTel
okuyucuAdresi
otomatik
metin(50)
metin(11)
metin(250)
açıklama
her okuyucuya ait ID numarası Vt
tarafından otomatik verilir.çif kayda
izin vermemek için
Türler ve diller
kolan adı
turler
turID
turAdi
veri türü
kolan adı
diller
dilID
veri türü
dilAdi
açıklama
otomatik
metin(50)
otomatik
metin(25)
açıklama
Okuyunan kitaplar
kolan adı
okunanKitaplar
okID
kitapID
okuyucuID
alinmaTarihi
teslimTarihi
veri türü
otomatik
sayı
sayı
tarih
tarih
açıklama