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. Tabloları adlandırırken tablonun içeriği ile uyumlu olmasına dikkat etmek gerekir. Btp bölümü muhasebe bölümü Btp_dersler muh_derslik Btp_öğrenci muh_öğretmen
Kolonlar Kolonlar adlandırılırken, içerdiği veriyi temsil edebilmeli aynı konu ile ilgili verilerin toplandığı kısım Kolonlar adlandırılırken, içerdiği veriyi temsil edebilmeli Ait olduğu tabloyu temsil etmeli (join işlemlerinde birleştirilen tablolardaki aynı adlar çakışır) Veri tipleri belirlenmeli Btp_dersler btp_ogrenci Dr_kodu otomatik ogr_kodu metin(8) Dr_adi metin(50) ogr_adi metin(20) Dr_donemi integer ogr_soyadi metin(20)
Kayıtlar Çift kayıt olmamasına dikkat edilmeli bir tabloya ait tüm kolonlarını içeren veriler kümesi Çift kayıt olmamasına dikkat edilmeli Aynı numaralı tek öğrenci olmalı btp_ogrenci ogr_kodu ogr_adi ogr_soyadi 08020512 mustafa akyol 08020525 mustafa armağan 08020512 ahmet selim
Anahtarlar (birincil) her tablonun en az 1 tane birincil anahtarı olmalı Her bir kaydı diğerlerinden ayırmalı Tekrar etmeyen (tek=unique) ve boş geçilemez btp_ogrenci ogr_kodu ogr_adi ogr_soyadi 08020512 mustafa akyol 08020525 mustafa armağan 08020515 ahmet selim ?? Birincil anahtar hangisi olmalı
Anahtarlar (yabancı) Ana tabloda birincil anahtar olan alan iki tablo arasındaki ilişkiyi tanımlar Ana tabloda birincil anahtar olan alan Veri türü tutarsız olmamalı (intint) Btp_dersler btp_donem Dr_kodu otomatik dn_kodu integer Dr_adi metin(50) dn_adi metin(20) Dr_donem_kodu integer
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 Arama yapılırken tüm kayıtlara bakılmaksızın istenen bilgiye daha kolay ulaşılır -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 Bu tablo veya tablolara kayıt eklendikçe, ilgili view'da kayıtlar güncellenir View'daki bilgiler veritabanında depolanmaz, ilgili tablolardan alınır. Adı üstünde görünüm(ekleme,silme,güncelleme yapılmaz,sadece sorgu çekilir-select- )
Görünüm(view) Btp_dersler btp_donem Dr_kodu otomatik dn_kodu integer Dr_adi metin(50) dn_adi metin(20) Dr_donem_kodu integer Vw_dersler Dr_kodu dr_adi dr_donem_kodu dn_adi 203 Veri tabanı 2 2 2006-2007 güz
Saklı yordamlar(SP) Sunucu tarafında derlenmiş olarak tutulan SQL kümesi Bu küme içerisinde gönderilen parametreler ile birden fazla SQL sorgusu gerçekleştirilebilir SP’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
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) Bir tablo üzerinde değişiklik gerçekleştiğinde (UPDATE, INSERT, DELETE) tetikçileri daha evvelden tanımlamış olduğunuz eylemi gerçekleştirirler silme 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 ) yeni 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 Diller tablosundaki dile karşılık gelen ID kitapYayinTarihi tarih kitabın yayınlanma tarihi kitapYayineviID Yayınevleri atblosundaki yayınevine karşılık gelen ID kitapSayfaSayisi KitapFiyati para / ondalık KitapYazarID yazarlar tablosundaki yazara karşılık gelen ID
Yazarlar kolan adı veri türü açıklama yazarID otomatik her yazara ait ID numarası Vt tarafından otomatik verilir.çif kayda izin vermemek için yazarAdi metin(50) yazarTel metin(11)
Yayınevleri kolan adı veri türü açıklama yyID otomatik her yayınevine ait ID numarası Vt tarafından otomatik verilir.çif kayda izin vermemek için yyAdi metin(50) yyTel metin(11) yyAdresi metin(250)
okuyucular kolan adı veri türü açıklama okuyucuID otomatik her okuyucuya ait ID numarası Vt tarafından otomatik verilir.çif kayda izin vermemek için okuyucuAdi metin(50) okuyucuTel metin(11) okuyucuAdresi metin(250)
okuyucular kolan adı veri türü açıklama okuyucuID otomatik her okuyucuya ait ID numarası Vt tarafından otomatik verilir.çif kayda izin vermemek için okuyucuAdi metin(50) okuyucuTel metin(11) okuyucuAdresi metin(250)
Türler ve diller kolan adı veri türü açıklama turler turID otomatik turAdi metin(50) diller dilID dilAdi metin(25)
Okuyunan kitaplar kolan adı veri türü açıklama okunanKitaplar okID otomatik kitapID sayı okuyucuID alinmaTarihi tarih teslimTarihi