You are on page 1of 67

VERİ TABANLARINA GİRİŞ

VERI TABANı NEDIR?


 Veritabanı basit olarak bilgi depolayan bir
yazılımdır.
 Bir çok yazılım bilgi depolayabilir ama aradaki
fark, veritabanın bu bilgiyi verimli ve hizli bir
şekilde yönetip degiştirebilmesidir.
 Veritabanı, bilgi sisteminin kalbidir ve etkili
kullanmakla değer kazanır.
 Bilgiye gerekli oldugu zaman ulaşabilmek
esastır.
VERI TABANı ÖRNEKLERI
 Üniversite- Öğrenci İşleri Bilgi Sistemi
 Hastane-Hasta, doktor, tedavi, araç-gereç, mali
bilgiler
 Ticari bir şirket- Müsteri, Ürün, Satış, Ödeme,
Teslimat bilgileri
 Banka-Müşteri, mevduat, kredi kartı, kredi
bilgileri
VERI TABANı
 Veritabanı kavramı ilk olarak 1980’li yıllarda
ortaya atılmış olmasına rağmen; günümüzde
hemen hemen tüm veri kullanılan alanlarda
Veritabanı Yönetim Sistemleri (VTYS) olmadan
hiçbir şey yapılamaz hale gelmiştir.
 Basit bir Web uygulamasından, devasa
kuruluşların ağır verilerine kadar, günümüzde
bir çok alanda veritabanı uygulamalarına ihtiyaç
duyulmaktadır.
 İşletim sistemlerinden sonra en popüler ve en çok
gelir getiren yazılımlar Veritabanı Yönetim
Sistemi Yazılımlarıdır.
VERI TABANı YÖNETIM SISTEMI NEDIR?
 Yeni bir veritabanı oluşturmak,
 Veri tabanını düzenlemek

 Kullanmak,

 Geliştirmek

 Bakımını yapmak için

 Çeşitli karmaşık işlemlerin gerçekleştirildiği bir


yazılım sistemidir.
VERI TABANı YÖNETIM SISTEMLERININ
SıNıFLANDıRıLMASı
 Veri Modeline Göre
 Hiyerarşik
 Graph
 İlişkisel
 Nesneye Yönelik
 No-Sql
 Kullanıcı Sayısına Göre
 Tek kullanıcılı
 Çok kullanıcılı
HIYERARŞIK VERITABANLARı
 Tablolar birbiriyle ilişkili ve hiyerarşik olarak (üstten alta doğru
genişleyen bir yapıda) oluşturulur.
 Bir ağaç yapısı üzerine oturtulan hiyerarşik veritabanlarında alt
kırılımların sayısı arttıkça yönetim ve performans açısından problemler
yaşanmasına sebep olacaktır.
GRAPH VERITABANLARı
 Bir graph veritabanı düğümler, kenarlar ve özelliklerle beraber graph
yapılarını kullanarak veriyi sunar ve saklar.
 Tanımsal olarak bir graph veritabanı, indissiz yakınlık (index-free
adjacency) sağlayan bir veri saklama sistemidir.
 Bu tanıma göre, her öğe (element) yakın olduğu öğeye doğrudan bir
işaretçi (direct pointer) içerir ve indis aramaları (lookup) gereksizdir.
 Herhangi bir graph tutabilen genel graph veritabanları, “ağ veritabanları”
ve “triplestores” gibi özelleştirilmiş graph veri tabanlarından farklıdır.
İLIŞKISEL VERITABANLARı
 İlişkisel veritabanı, organize edilmiş verilerin
tablolarda saklanması ve bu tablolar arasında
kurulan bağ ile oluşan veritabanı çeşitidir.
 Tablolar satır ve sütunlardan oluşur, üzerinde
verileri saklayabilir, ekleyebilir, silebilir ve
güncelleyebiliriz.
 Her satır aynı sütunlara yani alanlara sahiptir.

 Her bir sütun o tabloda bulunması gereken ortak


özellikleri yansıtır.
 Tablo üzerinde ki her bir satıra ise kayıt diyoruz.
İLIŞKISEL VERITABANLARı
 Örneğin resimdeki tabloda First Name alanında her kayıt için kişilerin
isimleri bulunmaktadır.
 Bu alana daha sonra değineceğimiz bir veri tipi tanımlaması yapılmıştır.
 Yani bu alana isim dışında mesela int tipinde olan yaş bilgisi girmek
hataya yol açacaktır.
İLIŞKISEL VERITABANLARı
NESNEYE YÖNELIK VERITABANLARı
 Günümüzdeki pek çok kelime işlemci ve hesap tablosu programında kullanılan
nesneler artık veritabanlarında da kullanılmaktadır.
 Nesneye yönelik veritabanı C++ gibi nesneye yönelik bir dille oluşturulan ve yine
bu tarz bir dille kulanılan veri tabanı anlamına gelir.
NO-SQL VERITABANLARı
 NoSQL, ilişkisel veritabanı sistemlerine alternatif bir çözüm
olarak ortaya çıkan, yatay olarak ölçeklendirilen bir veri
depolama sistemidir.
 İnternetin hızlanması ile beraber, sistemlerde çok fazla
kullanıcının aktif rol alması, birçok ihtiyacın yanında
veritabanı şemasının artan bir sıklıkla değiştirilmesi
zorunluluğunu ortaya çıkardı.
 Hepimizin kullandığı ilişkisel veritabanlarındaki hiyerarşi,
önce tabloları ve her tabloya ait sütunları oluşturmak
sonrasında ise bilgileri satır satır eklemektir.
 Fakat burada karşımıza çıkan bir sıkıntı, tanımı olmayan
alana bilgi kaydetmektir.
 Bu sıkıntıdan kurtulmak için yapmamız gereken öncelikle
tabloyu tekrardan ele alıp yeni sütunlar eklemektir.
 Tabi bununla birlikte veritabanındaki tüm tablo ve ilişkileri
etkileyecek durumlar da ortaya çıkabilmektedir.
 Bu işlemi gerçekleştirmek sistemi tekrardan ele almayı
gerektirdiği için çok maliyetli olabilmektedir.
NOSQL SISTEMLERIN
AVANTAJLARı NELERDIR?
 NoSQL veritabanı sistemleri ilişkisel veritabanlarına
göre yüksek erişilebilirlik imkanı sunarlar.
 NoSQL veritabanı sistemleri okuma ve yazma
performansları olarak göreceli olarak ilişkisel veritabanı
sistemlerine göre daha performanslı olabilirler.
 NoSQL veritabanı sistemleri yatay olarak
genişletilebilirler. Binlerce sunucu birarada küme olarak
çalışabilir ve çok büyük veri üzerinde işlem yapabilirler.
 NoSQL veritabanı sistemleri esnek yapılarından dolayı
programlama ve bakım anlamında kolaylık sağlarlar.
 NoSQL veritabanı sistemlerinde farklı özelliklere sahip
birçok implementasyon arasından seçim yapma şansınız
vardır.
 NoSQL veritabanı sistemleri birçok açık kaynak kodlu
projelere ve bulut bilişim teknolojilerine uygun olduğu için
maliyet olarak ilişkisel veritabanı yönetim sistemlerine
göre daha avantajlıdır.
NOSQL SISTEMLERIN DEZAVANTAJLARı
NELERDIR?
 İlişkisel veritabanı yönetim sistemlerini kullanan
uygulamaların NoSQL sistemlere taşınması başlangıçta
zor olacaktır. Veri başarılı bir şekilde taşınsa bile
bağlantıyı (join) kullanan kodlarda düzenlemelerin
yapılması gerekecektir.
 İlişkisel veritabanı yönetim sistemlerindeki sorgu
tabanlı veri erişimi yerine NoSQL sistemlerdeki anahtar
tabanlı veri erişimi sağlamak gerekmektedir. Buna göre bir
yapılandırmaya gidilmesi zaman alabilmektedir.
 İlişkisel veritabanı yönetim sistemlerindeki işlem
hareketleri (transaction) kavramı, NoSQL veritabanı
sistemlerinde bulunmadığı için veri kaybı söz konusu
olabilmektedir.
 NoSQL veritabanı sistemleri veri güvenliği konusunda
ilişkisel veritabanı yönetim sistemleri kadar gelişmiş
özelliklere henüz sahip değiller. Bazı NoSQL projelerin
dökümantasyon ve profesyonel destek konusunda eksikleri
vardır.
NEDEN VERI TABANı KULLANıLıR?
 Verilerin tutulması, saklanması ve erişilmesinde
geleneksel yaklaşım verilerin ayrı ayrı
dosyalarda gruplanması yaklaşımını
kullanmaktadır.

 Verilerin artması, verilere aynı anda erişme ve


düzenlenme ihtiyacı ile geleneksel yakaşım
yetersiz kalmıştır.
VERI TABANı YAKLAŞıMıNıN AVANTAJLARı
 Gereksiz veri tekrarını önler
 Bellek israfını önler

 Daha güvenli bir sekilde verilerin saklanmasını


saglar
 Veri paylasımı saglanır

 Veriler daha düzenli bi sekılde tutulur veri


bütünlügü saglanır
 Verilerin yönetilmesi için kullanılmalıdır
VERI TABANı YAKLAŞıMıNıN AVANTAJLARı
 Sunulan çözümleme, tasarım ve geliştirme
araçları ile uygulama yazılımı geliştirmenin
kolaylaşması.
 Veri bütünlüğünün gerekli olanakların
sağlanması,
 Güvenlik ve gizliliğin istenilen düzeyde
sağlanması
 Yedekleme, yeniden başlatma, onarma gibi
işletim sorunlarına çözüm getirilmesi
VERI TABANı YÖNETIM SISTEMLERI
 Oracle database
 IBM DB/2
 Adaptive Server Enterprise
 Informix
 Microsoft Access
 Microsoft SQL Server
 Microsoft Visual FoxPro
 MySQL
 PostgreSQL
 Progress
 SQLite
 Teradata
 CSQL
 OpenLink Virtuoso
NOSQL VERITABANLARı
VERI TABANı BILEŞENLERI

 Tablo
 Kolon

 Üst veri (metadata)

 İndeks

 Saklı yordam (stored procedure)

 Tetikleyici (trigger)
VERI TABANı YAPıSı

Veri tabanı

Tablo 1 Tablo 2 Tablo 3 Tablo 4 Tablo 5

Kolon1 Kolon Kolon3 Kolon4


2
Kayıt 1
Kayıt2
Kayıt3
TABLO
 Bir veritabanı tablolarda saklanan verilerden
oluşur.
 Tablolar verilerin satırlar ve sütunlar halinde
düzenlenmesiyle oluşan veri grubudur.
 Örneğin ders içeriği ve öğrenci bilgilerini
veritabanında saklamak için 2 tablo oluşturulur:
 Ogrenci_bilgileri
 icerik
TABLO
 Tablo içindeki her bir bilgi kayıt,
 Sütunlar ise alan olarak isimlendirilir.

 Örneğin öğrenci bilgileri tablosunda


 Öğrenci numarası,
 adı soyadı,
 doğum tarihi,
 doğum yeri,
 e-mail adresi
bilgileri yer alacaksa
TABLO
Alan

Ogr_no Ad_soyad d_tarih d_yeri e-mail


1 Gökhan Memiş 06.09.1982 Eskişehir gokhan@baskent.edu.tr

2 Ali Özek 22.04.1975 Mersin ali@baskent.edu.tr

3 Çağlar Gönül 07.02.1981 Kırşehir


Alan
caglar@baskent.edu.tr

4 Ersin Saraç 06.11.1985 Ankara ersin@baskent.edu.tr

5 Yeşim Atasoy 18.06.1983 Trabzon yesim@baskent.edu.tr

6 Tuba Akyüz 10.04.1978 Kayseri tuba@baskent.edu.tr


KOLON

 Kolonlar varlıkların özelliklerini tanımlar.


 Kolonlara verilen adlar, konusuna göre anlamlı
olmalıdır.
 İlk iki ya da dört karakterlik kısmı, ait olduğu
tablonun adının kısaltması olması tercih edilir.
 Bunun kullanımdaki avantajı join'li yapılan
sorgularda "ambiguous column name" hatasına
düşme olasılığının ortadan kalkmasıdır.
 Örnek olarak;
ÜST VERI (METADATA)
 Veri tabanının yapısı hakkındaki verilere
metadata adı verilir.
 Tablo isimleri
 Sütun isimleri
 Tablo ve sütunların özellikleri vb.
INDEKS
 Index'ler de herhangi bir tabloya bağlı olarak
çalışırlar, adlandırılmaları ona göre olur.
 Veritabanı performansını arttırmak için kullanılırlar.
 Örnek olarak;
 st-urun(
urun_no smallint,
urun_ad char(20))
 Index'ler unique ya da non-unique
(duplicate) olarak yaratılabilirler. Index yazım şekli
şöyledir:
tablo_adı + kolon_adı + unique/non-unique + idx
 "st_urun" tablosu "urun_no" kolonuna göre unique
olarak şu şekilde index'lenir:
st_urun_urun_no_idx
INDEKS
 "Composite index" kullanılıcaksa, yani birden fazla
kolon üstünde index oluşturmak isteniyorsa şu
biçimde olur:
st_urun_urun_no + urun_ad + idx
 Yazım şekli şöyledir:
tablo_adı +kolon_adı1 +kolon_adı2 +unique/non-
unique +idx
 Burada 2 ve 3 nolu alanlarda kolon adlarını
görüyoruz; bu aynı zamanda, index'in "urun_no"
kolonu altında, "urun_ad" kolonuna göre yapılmasını
sağlar. Index yaratılırken adlarının uzun olmasından
kaynaklanan bir hatayla karşılaşılırsa, veritabanının
kabul ettiği maksimum ad uzunluğuna göre, anlam
bütünlüğünü bozmadan ismi kısaltmak gerekir.
SAKLı YORDAMLAR(STORED PROCEDURES-
SPL)

 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(STORED PROCEDURES-
SPL)

 SPL yapılan bir iş sonucu uygulanan işlemlerdir.


SPL'lere verilen adlar yaptıkları iş ve işlemlerle
uyumlu olmalıdır.
 SPL'ler yaptıkları işleme göre mantıksal olarak
gruplandırılabilirler. Örneğin, satış bölümündeki
üretim tablosunda insert (bilgi girişi) işlemi
yapan bir SPL'in adı sp_ur_insert _bil, delete
(silme) işlemi yapan bir SPL'in
adı sp_ur_delete_bil olursa mantıksal olarak bir
gruplandırma yapılmış olur.
 SPL'ler veritabında create procedure
SPL_adı ile yaratılıp execute SPL_adı ile
çalıştırılırlar.
TETIKLEYICI (TRIGGER)
 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.
TETIKLEYICI (TRIGGER)
 Trigger'lar da SPL'lerin özel bir türüdür. Yapılan bir
işlem sonucunda otomatik olarak arka planda
yapılmak için tetiklenen bir işlemdir.
 Triggers adlandırmaları SPL ile aynı özellikleri taşır,
mantıksal gruplandırmaya dikkat edilir. Trigger'lar
tablo bazında çalışırlar, dolayısıyla hangi tablo
üstünde çalışıyorlarsa o tablonun adı ile birlikte
kullanılırlar. Bir trigger üzerinde insert, update,
delete işlemleri olabilir; trigger adları, tablo adı ile
birlikte yaptıkları işlemi de yansıtmalıdırlar.
 Örneğin; ürün tablosunda "st_ urun_ins" insert işlemi
yapan, "st_ urun_del" delete işlemi yapan, "st_
urun_ins" ise update işlemi yapan bir trigger olarak
veritabanında create trigger trigger_adı şeklinde
yaratılırlar.
VERI TABANı SISTEMLERI
 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ı SISTEMLERININ SAĞLADıĞı
YARARLAR
 Veri Tekrarı (“Data Redundancy”) :Aynı verinin
sürekli tekrarlanmasını önler.Aynı tablo içerisinde,
farklı bilgisayarlarda vb..; Veri Tekrarı azaltılır ya da
yok edilir.
 Veri Tutarlılığı (“Data Consistency”): Aynı
verinin değişik yerlerde birkaç kopyasının bulunması
“bakım” zorluğu getirir: bir yerde güncellenen bir
adres bilgisi başka yerde güncellenmeden kalabilir ve
bu durum veri tutarsızlığına yol açar.
 Veri Paylaşımı / Eşzamanlılık (“Concurrency”):
Veri tabanı yönetim sistemi (VTYS) kullanılmadığı
durumlarda, veriye sıralı erişim yapılır. Yanı birden
çok kullanıcı aynı anda aynı veriye erişemez. Bir
VTYS’de ise aynı veritabanlarına saniyede yüzlerce,
binlerce erişim yapılabilir.
VERI TABANı SISTEMLERININ SAĞLADıĞı
YARARLAR
 Veri Bütünlüğü (“Data Integrity”): Bir tablodan
bir öğrenci kaydı silinirse, öğrenci var olduğu diğer
tüm tablolardan silinmelidir.
 Veri Güvenliği (“Data Security”): Verinin
isteyerek ya da yanlış kullanım sonucu bozulmasını
önlemek için çok sıkı mekanizmalar mevcuttur. Veri
tabanına girmek için kullanıcı adı ve şifreyle
korumanın yanı sıra kişiler sadece kendilerini
ilgilendiren tabloları ya da tablo içinde belirli
kolonları görebilirler.
 Veri Bağımsızlığı (“Data Independence”):
Programcı, kullandığı verilerin yapısı ve
organizasyonu ile ilgilenmek durumunda değildir.
VERİ BAĞIMSIZLIĞI, VTYS’lerinin en temel
amaçlarındandır.
VERITABANı KULLANıCıLARı
 Son Kullanıcılar
 Yazılımı kullanan
 Sorgu Dili Kullanıcıları
 Mevcut sorgular dışındaki diğer sorguları hazırlamak. Veri
eklemek,silmek.
 Uygulama Programcısı
 Son kullanıcılara yönelik uygulama yazılım geliştirmek. Veri
işleme dili ve geliştirme.
 Veritabanı Yöneticisi (DBA-Database
Administrator): Tasarım,oluşturma ve işletiminden
sorumludur. Görevleri;
 Tasarımı
 Performans Analizi
 Erişim Yetkilerini Düzenleme ve Erişim Sağlama
 Yedekleme ve Geri Yükleme
 Veri Bütünlüğü Sağlama
 Sistem Sürekliliği Sağlama
VERI TÜRLERI
 Veri tabanında tutulan kayıtların yapısı
hakkında bilgi sahibi olmak için alanların bazı
özelliklerinin önceden tanımlanması gerekir.

 Örneğin personel sicil numarası mutlaka tam


sayı, ad soyad harflerden oluşması gibi
VERI TÜRLERI
 Sayısal (Numeric)
 Tarih Saat (Date and Time)

 Metinsel (String)

 Uzamsal (Spatial)
SAYıSAL VERI TÜRLERI
 BIT
 Bir byte uzunluğunda tamsayı veri tipidir.
 Tablodaki ilk bit, bir byte büyüklüğünde yer kaplar,
sonraki yedi bit aynı byte’ı kullanabilir.
 TINYINT:
 Çok küçük tam sayı değerler içindir
 Signed tanımlı durumda iken alabileceği değerler –
128 ile 127 arasındadır.
 Unsigned tanımlı aralık 0 ile 255 arasındadır.
SAYıSAL VERI TÜRLERI
 SMALLINT:
 Küçük tam sayı değerler içindir.
 2 byte büyüklüğündedir.
 Signed tanımlı durumda iken alabileceği değerler –
32768 ile 32767 arasındadır.
 Unsigned tanımlı aralık 0 ile 65535 arasındadır.
SAYıSAL VERI TÜRLERI
 MEDIUMINT:
Orta büyüklükteki tam sayı değerler içindir.
Signed tanımlı durumda iken alabileceği
değerler –8388608 ile 8388607arasındadır.
Unsigned tanımlı aralık 0
ile 16777215 arasındadır.
SAYıSAL VERI TÜRLERI
 INT(n):Tamsayı
4 byte büyüklüğündedir.
Normal büyüklükteki tamsayı değerler için.
Signed tanımlı durumda iken alabileceği
değerler –2147483648 ile 2147483647
arasındadır.
Unsigned tanımlı aralık 0 ile 4294967295
arasındadır.
SAYıSAL VERI TÜRLERI
 BIGINT:
8 byte büyüklüğündedir.
Büyük tam sayı değerler içindir
Tam sayı -9223372036854775808’den
9223372036854775807’e
SAYıSAL VERI TÜRLERI
 FLOAT:
Boyutu ve doğruluğu (ondalık kısım duyarlılığı)
aldığı parametreye göre değişen kayan noktalı
sayılar için kullanılır.
Sayıları kesirleri ile birlikte tutar.
Max. karakter genişliği parametre olarak alınır.
(23 basamağa kadar)
SAYıSAL VERI TÜRLERI
 REAL
Float veri tipinin parametre olarak 24 değerini
aldığında ortaya çıkan halidir. -3.40E+38 ile
3.40E+38 arasında değer alır.
 DOUBLE:
Sayıları kesirleri ile birlikte tutar.
Max. karakter genişliği parametre olarak alınır.
(24’ten 53 basamağa kadar)
SAYıSAL VERI TÜRLERI
DECIMAL:
Sayıları kesirleri ile birlikte tutar.
Tam kısmı maksimum 64
Kesirli kısmı maksimum 30 değerini alabilir.
TARIHSEL VERI TÜRLERI
 DATETIME:
Yıl+Ay+Gün+Saat+Dakika+Saniye biçimindeki
zaman bilgisi
YYYY-MM-DD HH:MM:SS
TARIHSEL VERI TÜRLERI
 TIMESTAMP:
1 Ocak 1970'den 18 Ocak 2038'e kadar olan ve
Yıl+Ay+Gün+Saat+Dakika+Saniye biçimindeki
zaman bilgisi.
YYYYMMDDHHMMSS
TARIHSEL VERI TÜRLERI
 DATE:
1000-01-01'den 9999-12-31'e kadar değişebilen
tarih alanı.
YYYY-MM-DD
METINSEL VERI TÜRLERI
 CHAR(n):
n sayısı kadar karakteri olan sabit uzunluklu
veridir.
METINSEL VERI TÜRLERI
TEXT:
En fazla 65535 karakter alabilen metin alanı.
METINSEL VERI TÜRLERI
MEDIUMTEXT:
En fazla 16777215 karakter alabilen metin alanı
METINSEL VERI TÜRLERI
 VARCHAR(n) ya da nvarchar :
n sayısını geçmemek şartıyla değişen boyutta
karakter
METINSEL VERI TIPLERI ARASıNDAN
SEÇIM YAPMAK
 Sabit uzunluk veya değişken uzunluk veri tiplerine
karar vermek: Bir sütuna girilecek verilerin tamamı
benzer uzunlukta ise (telefon numarası, tc kimlik no,
telefon kodu v.b) char, nchar gibi sabit uzunluktaki
veri tipleri kullanılmalıdır. Fakat girilecek verinin
uzunluğu önceden belli değilse (isim, soyisim,
adres v.b) değişken uzunlukta olan varchar,
nvarchar veri tipleri tercih edilmelidir.
 Unicode olan ve olmayan veri tiplerine karar vermek:
char ve varchar veri tipleri Unicode değildir, yani
sadece ASCII tabloda yer alan karakterleri
saklayabilirsiniz. Eğer Türkçe karakterli veriler
girecekseniz ve Collation ayarları hakkında da bilgi
sahibi değilseniz sorun yaşamamak için nchar ve
nvarchar veri tiplerini kullanınız.
SAYıSAL VERI TÜRLERI
 BOOL:
0 veya 1 değerini alan veri türüdür.
DIĞER VERI TIPLERI
 timestamp ve rowversion: Tabloya kayıt eklendiğinde ve
güncellendiğinde binary türünde özel bir değer alan veri
tipidir. Tarih veri tipleriyle alakası yoktur. Kullanıcı bu
alanı değiştiremez veya kendisi değer atayamaz.
 uniqueidentifier: 16 byte uzunluğunda eşsiz bir GUID
değeri saklamak için kullanılır. Guid ve yapısı hakkında
internetten bilgi bulabilirsiniz.
 xml: XML türünde hiyerarşik verileri saklamak için
kullanılır. Bellekteki boyutu saklanan xml verisine göre
değişir.
 geography: Coğrafi koordinatları ve gps verilerini tutmak
için kullanılır.
 geometry: Öklid koordinat sistemine ait verileri tutmak
için kullanılır. Geometrik şekillerin en, boy, yükseklik
verilerini saklar.
 hierarchyid: Ağaç veri modeli veya hiyerarşik olarak
sınıflandırılmış verileri saklamak için kullanılır.
DIĞER VERI TIPLERI
 Çok büyük miktardaki veri ya da dosya
saklamak için :
 Blob (Binary Large Objects)

 Clob (Char Large Objects)

 Bfile (Binary File)

 Nclob (Belirli boyutlu clob)


ANAHTAR (KEY)
 Bir anahtar bir tabloda özel bir sütundur. Bazı tuşları arama ve
indeksleme için kullanılır, diğer ilgili tablolar veya benzersiz bir kayıt
bağlantısı tanımlamak için kullanılır. Bir veritabanı tablosu bir birincil
anahtar veya dizin olmadan kullanılamaz.
 3 çeşit anahtar vardır:
 Birincil Anahtar (Primary Key)
 Yabancı Anahtar (Foreign Key)
 Benzersiz anahtar (Uniquie Key)
BIRINCIL ANAHTAR
 Birincil anahtar amacı benzersiz bir tabloda her bir
kayıtı ayrı ayrı belirlemektir. Genel olarak, birincil
anahtar tek bir sütun üzerinde tanımlıdır ve iki
sütun üzerinde tanımlı olması mümkün değildir.
 Dört temel kural birincil anahtarları tanımlayan
özelliktir:
 Her kayıtın birincil anahtarında bir değer olması gerekir.
 O boş olamaz.
 Birincil anahtar değerleri benzersiz olmalıdır.
 Birincil anahtar değerleri yenilenen olmamalıdır. Eğer
yenileme olursa bir kayıt silindiğinde bu hata ve karışıklık
yaratabilir, bu yüzden birincil anahtar başka bir kayıt
yeniden atanınca yinelenen olmamalıdır.
YABANCı ANAHTAR
 Bir yabancı anahtar bir alanı (veya hedef olarak
başvurulan bir tablodan) başka bir tabloda belirli bir
anahtar yerine birincil anahtarı gösteren kolonlardır. Bu
ilgili tabloları mantıklı bilgilerle ilişkilendiren bir yoludur.
 Örneğin, ürün tablosunda başvuran birincil anahtar alanı
üreticiler tablosunda bir yabancı anahtar içerir. Bu şekilde,
her ürün - dış kilit noktaları ilişkili bir üreticisi var olur.
Unutmayın ki yabancı anahtar genellikle benzersiz değidir
ancak başvurulan alanı başvurulan tabloda (birincil
anahtar) gösterir.
 Örneğin, CD çalar ve televizyon ABC şirketi tarafından
üretilmektedir, bu nedenle her iki kayıtta aynı yabancı
anahtar değeri ayarlanır. Yani üretici tablosundaki ABC
değerine.
 Yukardaki şekilde tablolardaki primary ve forein keyler
belirtilmişlerdir. PK ve FK olarak.
BENZERSIZ ANAHTAR (UNIQUIE KEY)
 Benzersiz anahtar iki aynı değerleri sahip olmayan sütun olarak tanımlanır.
Benzersiz anahtar sütunları boş değerler içeremez.
 Bir tablo içinde birden çok benzersiz anahtar veya benzersiz anahtarlar sütunu
olabilir.
 Örneğin, üretici adı alanına önceki örnekten benzersiz bir anahtar tanımlamak
isteyebilirsiniz. Bu şekilde, bu başvuru kullanıcıları ACME şirket için iki ayrı
kayıt yaratmaz.
ANAHTARLAR
Müşteri Firma Fiyat
No No

1 1 1000 YTL
Firma Firma Adres
Müşteri Müsteri Mesleği
No
No adı 2 2 250 YTL

1 A Çanakkale
1 Ahmet mimar 3 3 350 YTL Cad. 43/5

2 Sema öğretmen 2 B Kayabaşı


4 2 700 YTL
mah. A
Blok 8/4
3 Serdar mühendis 5 2 1200 YTL
3 C Gazi Mah
6/7
4 Zerrin emekli 6 4 100 YTL
4 D Gazi Mah
6/7
5 Mehmet Öğretim 7 1 150 YTL
elemanı
6 Defne Doktor

7 Elif avukat
ANAHTARLAR
Yabancı Yabancı
Anahtar Anahtar
Müşte Firm Fiyat
ri a Birincil
No No Anahtar

Birincil Müşte Müster Mesleği 1 1 1000 YTL Firm Firm Adres


Anahtar ri i adı a a
No 2 2 250 YTL No

1 Ahmet mimar 1 A Çanakkale


3 3 350 YTL
Cad. 43/5
2 Sema öğretme 4 2 700 YTL 2 B Kayabaşı
n mah. A Blok
5 2 1200 YTL 8/4
3 Serdar mühendi
s 3 C Gazi Mah 6/7
6 4 100 YTL
4 Zerrin emekli
4 D Gazi Mah 6/7
7 1 150 YTL
5 Mehme Öğretim
t elemanı
6 Defne Doktor

7 Elif avukat
ÖRNEK VERI TABANı TASARLAMA

Kütüphane sistemi: kitap, üyeler, türler, ödünç


hareketleri
ÖRNEK VERI TABANı TASARLAMA-2
 Öğrenci ders kayıt sistemi:
ÖRNEK VERI TABANı TASARLAMA-3
 Futbolcu, takım, antrenör, kurucu sistemi

You might also like