Veritabanı - enverbagci.net

advertisement
VERİTABANI-I DERS
NOTLARI
ENVER BAĞCI
Ders İçeriği

Veritabanı ve ilişkisel veritabanı kavramı, tasarımı ve yönetimini
anlamak,

Veri tabanı sistemlerinin denetimi ve erişimi yöntemlerini ve
araçlarını öğrenmek, (SQL komutlarının kullanımı)

Verilecek teori bilgiler temelinde VTYS uygulamalarını SQL Server
programı ile yapmaktır.
Ders Takibi
Ders ile ilgili dökümanlara
www.enverbagci.net
adresinden "Veri Tabanı 1" ilgili ders linkine
tıklatılarak ulaşılabilir.
VERİTABANI TEMELLERİ
İşlenecek Konular

Veri Nedir?

Veritabanı tanımı, önemi, kullanım alanları,
özellikleri?

Veritabanı Yönetim Sistemleri tanımı,

Kullanılan VTYSler ve aralarındaki farklar,

VTYS Özellikleri,

Veri Modelleri,

Veritabanı Tasarımı,

E-R Modeli.
Veri nedir?

Olguların, kavramların veya talimatların, insan tarafından veya
otomatik yolla iletişim, yorumlama ve işleme amacına uygun bir
biçimde ifadesidir.

Genellikle, biz veri veya veri birimleri üzerindeki işlemlerimizi varlık
hakkında her hangi bilgi almak için gerçekleştiririz.

Veri kaydedilebilir bilinen gerçeklerdir. Örneğin bir kişinin ismi,
adresi, telefon numarası gibi.
Veritabanı (Database) Nedir?

Veritabanı (Database), en sade tanımıyla birbiriyle ilişkili bilgi
topluluğudur.

Bilgisayar terminolojisinde veritabanı, bilgisayarda sistematik
şekilde saklanmış, programlarca işlenebilecek bilgi topluluğudur.
Bu bilgiler; bilgisayar ortamında yönetilebilir, güncellenebilir,
taşınabilir aynı zamanda bu bilgiler arasında ilişkiler tanımlanabilir.
Literatürde veritabanı, veri bankası olarak da geçmektedir.
Veritabanı (Database) önemi
 Yüksek
miktarda veriyle uğraşmak
bilgisayar teknolojisinin gelişmeye
başladığı ilk yıllardan günümüze kadar
süren, sürekli artan ve değişik boyutlar
kazanan bir ihtiyaçtır.
Veritabanı (Database) önemi
 Bilgisayar
ortamında bu verileri düzenli
bir biçimde saklamak, bu verilere
istenildiği an hızlı bir şekilde ulaşmak,
bu veriler arasından istenilen ölçütlere
uygun verileri listeleyebilmek, üzerinde
hesaplamalar yapabilmek gibi
gereksinimleri karşılayabilmek için
veritabanları geliştirilmiştir.
Veritabanı (Database) önemi
Verileri
yönetmek ilk zamanlar
yalnızca tek bir kişi için
yapılırken, günümüzde artık
bu tarz uygulamalar çoklu
kullanılıcılar için yapılmaktadır.
Veritabanı (Database)
kullanımı
 Günümüzde
geliştirilen pek çok
yazılımda veritabanının önemli bir
yeri vardır. Gerek işletim sistemi
tabanlı paket programlarda olsun
gerek web-tabanlı uygulamalarda
olsun veritabanına sıkça
başvurulur.
Veritabanı (Database)
kullanımı

Örneğin, bir muhasebe programında verileri düzenli bir şekilde
saklamak önemlidir.

Bir emlak firması, web sitesinde kullanıcılarının istediği ölçütlere
uygun olan konutları bulabilmesi için verilerini bir veritabanında
saklar.

Bankacılık işlemlerinde de veri tabanının önemini görmek
mümkündür. Bir banka müşterilerinin kişisel bilgilerini, hesap
bilgilerini, bu hesaplarla ilgili hareket bilgilerini veritabanı
yardımıyla saklar ve yönetir.
Veritabanı (Database)
kullanımı
Veritabanı için aşağıdaki örnekleri verebiliriz.

Telefon rehberleri

Adres defterleri

Öğrenci bilgileri ve notları

Finans yazılımları

Satış ve pazarlama yazılımları

Soru bankası yazılımları

Hasta takip sistemleri

Eczaneler için ilaç bilgilerinin tutulması
Bir Veritabanında Bulunması
Gereken Özellikler

Saklamak istediğiniz veriler, bir adres
defterindeki gibi basit bir yapıda olabilir ya
da bankacılık işlemlerindeki gibi karmaşık bir
yapıya sahip olabilir. Adres defterlerinde
yüzlerle ifade edilebilecek kişilerin (Bu bir
veri tabanı için hacmi küçük olan bir
bilgidir.) tutulması yeterli olabilecekken
bankacılık işlemlerinde milyonlarca kişinin
bilgileri tutulmak istenebilir.
Bir Veritabanında Bulunması
Gereken Özellikler
Bazı veriler için güvenlik çok önemli değilken,
özellikle bankacılık işlemlerinde saklanan
bilginin güvenliği oldukça önemli olabilir.
 İster basit ister karmaşık yapıda olsun, ister az
veri ister çok veri olsun, ister güvenlik ihtiyacı
alt seviyede ister üst seviyede olsun günümüz
veritabanlarının bulundurması gereken bazı
özellikler vardır.

Bir Veritabanında Bulunması
Gereken Özellikler
Bunları şu şekilde sıralayabiliriz:

Veritabanı veri saklama gereksinimini tam olarak
karşılayabilmelidir.

Veritabanındaki bilgiler güvenli bir şekilde tutulmalıdır.

Veriler kolayca çağırılabilmelidir.

Verilere ulaşabilmek için olabilecek en az çaba harcanmalı ve en
kısa zamanda bu verilere ulaşılabilmelidir.

Veritabanı içindeki verilerin güncellenebilmesi ve ekleme
yapılabilmesi için veriler yönetilebilir olmalıdır.
Veritabanı Yönetim Sistemleri
 Veritabanı
yönetim sistemleri
veritabanlarını oluşturmak, değiştirmek,
veri işlemek ve veri çıkarmak için dizayn
edilmiş yazılımlardır. Bir veri tabanı
yönetim sistemi sayesinde birden fazla
veritabanı kontrol edilebilir ve farklı
yazılımların sistemle iletişimi sağlanabilir.
En Popüler Veritabanı Yönetim
Sistemleri Hangileri?
Yaygın Kullanılan Veritabanı Yönetim Sistemleri
- Microsoft Access
- MySQL
- IBM DB2
- Informix
- Progress
- Microsoft SQL Server
- PostgreSQL
- Oracle
VTYS Karşılaştırma
Access

Microsoft Office ürünüdür.

Küçük ölçekli uygulamalar içindir.

Tablo başına 2 GB’ a kadar veri depolayabilir.

Aynı anda 255 bağlantıya izin verebilir.

Windows işletim sistemleri dışında kullanılamaz.
VTYS Karşılaştırma
MySQL

Açık kaynak kodludur.

Windows/Unix/Linux,… işletim sistemlerinde çalışır.
(platform bağımsız)

Tablo başına 4 TB veri depolayabilir.

Web uygulamalarında PHP ile çok sık kullanılır.
VTYS Karşılaştırma
IBM DB2

IBM tarafından geliştirilmiştir.

Windows/Unix/Linux,… işletim sistemlerinde çalışır.

“Transaction logging” , “trigger” ve “stored procedure”
özelliklerine sahiptir.
VTYS Karşılaştırma
Informix

Illustra firması tarafından geliştirildi.

2001 yılında IBM Informix’ i satın aldı.

Ücretli ve güçlü bir veritabanı.

Orta ölçekli işletmelerin yükünü kaldırabilecek kapasitedir.
VTYS Karşılaştırma
SQL Server

Microsoft firmasına ait veritabanı sunucu yazılımıdır.

Orta ve büyük ölçekli işlemler için kullanılır.

Kullanım kolaylığı, güvenilirliği, işlem gücü…

Tablo başına 4 TB veri depolama.

“Transaction logging” , “trigger” ve “stored procedure”
özelliklerine sahip.
VTYS Karşılaştırma
SQL Server (Dezavantajlar)

Sadece Windows üzerinde çalışır. (platform bağımlı)

Yüksek maliyet

SQL Server Enterprise Edition Lisans Fiyatı
VTYS Karşılaştırma
PostgreSQL

UNIX, Linux ve Windows platformlarının hepsinde çalışır.

Ücretsiz, açık kaynak kodlu.

Çok güçlü işlem yapısı.

Tablo başına 64 TB veri depolama.

“Transaction”, “trigger” ve “stored procedure” özelliklerine sahip.
VTYS Karşılaştırma
Oracle

Oracle firması tarafından geliştirildi.

Dünyanın en güçlü ve en güvenilir veritabanı olarak
gösterilir.

Birçok işletim sistemi üzerinde kullanılabilir.

Çok yüksek ölçekli uygulamalar için tercih edilir.

Oluşturulabilecek tablo sayısı sınırsızdır.

Dezavantajı çok yüksek maliyet
Veritabanı Yönetim Sistemlerinin
Farkları Neler?


Her ürünün kapasite, performans ve
ölçeklenebilirlik seviyeleri kullanılan yazılımın
donanıma hükmetme derecesine göre
değişiklik göstermektedir.
Oracle veritabanı yönetim sistemi bir çok
metriğe göre dünya genelinde en iyi olarak
kabul edilmesine karşın, kullandığı işlemci
başına talep ettiği lisans ücretleriyle de bir
çok firmanın bütçesini aşmaktadır.
Veritabanı Yönetim Sistemlerinin
Farkları Neler?

Microsoft SQL Server, Oracle DB ile bir çok
metrikte yarışabilmekte ve daha uygun
lisans fiyatlarıyla piyasaya sunulmaktadır.

MySQL veritabanı da yine bu ürünlerle
yarışabilen ve ücretsiz olarak piyasaya
sunulan bir veritabanı yönetim sistemidir.
Veritabanı Yönetim Sistemlerinin
Özellikleri

Günümüz veri tabanı yönetim sistemlerinin özelliklerini şu şekilde
sıralayabiliriz:

Sorgulama:

Sorgulama, bilgilerin çeşitli faktör ve şartların kombinasyonuna
göre istenmesi işlemidir. Örneğin; “Sınıftan kaç kişi matematik
dersinden 90 ya da üzeri not aldı” sorusuna yanıt arayan bir kişi
veritabanı sorgulama dili yardımıyla buna cevap bulabilir ve bir
raporlaştırma aracıyla bunun çıktısını elde edebilir.
Veritabanı Yönetim Sistemlerinin
Özellikleri

Yedekleme ve Çoğaltma:

Veritabanın saklı olduğu disk bozulabilir ya da
başka sorunlardan dolayı veritabanı zarar
görebilir. Veritabanı yönetim sistemleri bu
veritabanının yedeklerini periyodik olarak alacak
ve bunların kopyalarını diğer veritabanı sunucu
bilgisayarına aktaracak yardımcı araçlar sunarlar.
Veritabanı Yönetim Sistemlerinin
Özellikleri


Kural Uygulama:
Bazen verilere kısıtlama getirilmek istenebilir.
Örneğin; bir öğrenci işleri veri tabanında, bir
dersten alınabilecek notlar 0 ile 100 arasında
olmalıdır. Eğer bunun dışında bir not girilmek
istenirse veritabanı yönetim sisteminden bunu
engellemesini ve hata mesajı göstermesini
isteyebiliriz. Veritabanı yönetim sistemleri bu
şekilde kuraların eklenmesini ve kaldırılmasını
desteklemektedir.
Veritabanı Yönetim Sistemlerinin
Özellikleri

Hesaplama:

Belirli bir şarta uygun verilerin sayısını
bulma, verilerin toplamını, ortalamasını
alma, verileri belirli bir ölçüte göre
sıralama, gruplama gibi işlemler
günümüz veritabanı yönetim sistemleri
tarafından desteklenmektedir.
Veritabanı Yönetim Sistemlerinin
Özellikleri

Güvenlik:

Kimlerin verilere ulaşabileceği, kimlerin veriler
üzerinde değişiklik yapabileceği veritabanı
yönetim sistemleri tarafından belirlenebilecek
özelikler arasındadır.
Veritabanı Yönetim Sistemlerinin
Özellikleri

Günlük Tutma (Logging):

“Verilere kimler ulaştı?”, “Hangi bilgiler
değiştirildi?”, “Ne zaman değiştirildi?” gibi
kayıtlara veri tabanın yönetim sisteminin
günlük tutma özelliği sayesinde ulaşılabilir.
Veri Modeli



Verileri mantıksal düzeyde düzenlemek için
kullanılan yapılar, kavramlar ve işlemler
topluluğuna veri modeli (data model) denir.
Her VTYS belirli bir veri modelini kullanır.
Bir VTYS'yi kullanarak oluşturulacak her veri
tabanında yer alacak veriler ve veriler arası
ilişkiler, mantıksal düzeyde ilgili veri modeline
göre düzenlenir; bu veri modeli kullanılarak
veri tabanının kavramsal ve dış şemaları
oluşturulur.
Veri Modelleri
Bugüne kadar geliştirilmiş olan çok sayıda veri modeli
vardır.
 Ancak geçmişte ve günümüzde yaygın kullanılan veri
modellerini 4 grupta toplamak mümkündür:

Sıradüzensel Veri Modeli (Hierarchical Data Model)
 Ağ Veri Modeli (Network Data Model)
 İlişkisel Veri Modeli (Relational Data Model)
 Nesneye-Yönelik Veri Modeli (Object-Oriented Data
Model)


Yukarıdaki sıralama aynı zamanda kronolojik bir
sıralamadır.
Hiyerarşik Veri Modeli

Bu modelde veriler ağaç yapısına benzer bir biçimde modellenir.
En üste kök ve kökün dalları bulunur. Ayrıca her dalın alt dalı
sayesinde dallanma ve çeşitlilik artar.

Bu modelde her bir alt dalın sadece bir tane noktadan
bağlanma şartı bu modelin en büyük kısıtlamalarından biridir.

Hiyerarşik veri modeli 1960 ve 1970 yılları arasında popüler olan bir
modeldir.

Hiyerarşik yapının en tepesindeki düğüm noktasına kök denir ve
bu düğümün sadece bağımlı düğümleri bulunur. Bu veri yapısını
gösteren grafiğe de hiyerarşik tanım ağacı denir.
Hiyerarşik Tanım Ağacı
Ağ Veri Modeli

Hiyerarşik veri tabanlarının yetersiz kalmasından dolayı bilim
adamlarının ortak çalışması sonucu ortaya konulmuş bir veri tabanı
türüdür Ağ veri tabanları verileri ağaçların daha da gelişmiş hali olan
graflar (ağacın kendisi de özel bir graftır.) şeklinde saklarlar. Bu yapı
en karışık yapılardan biridir.

1970’lerden sonra kullanılmıştır. Her kaydın birçok ebeveyn ve birçok
çocuk kaydı bulunabilir.
Ağ Veri Modeli
İlişkisel Model

1980’lerde başlayıp şu anda kullanılan veri tabanlarının çoğu ilişkisel
veri modeline daha çok destek verirler. Bu modelde alakalı veriler
tablolar içinde saklanır. Ayrıca tablolar arasında değişik türde ilişki
kurulur. İlişkiler kurulurken birincil anahtar (Primary key) ve yabancı
anahtarlar (Foreign Key) kullanılır.

Anahtar alanlar sayesinde indeksleme (indexing) yapma olanağı
sunan ilişkisel veri tabanlarında erişim ve işlemler daha hızlı
yapılabilir.
İlişkisel Model
Book ID
1
2
3
4
5
Book ID
Title
pubid
Introductio
The history
New stuff ab
Another title
And yet more
Subid
1
2
3
4
4
2
4
3
2
1
Author id
1
2
3
4
5
pubid
1
2
3
4
Authorid
2
1
3
2
3
1
2
3
4
5
Author name
Smith
Wynar
Jones
Duncan
Applegate
Subid
pubname
Harper
Addison
Oxford
Que
Subject
1 cataloging
2 history
3 stuff
Nesneye-Yönelik Model

1990’lar
 Veriler
nesne olarak modellenir ve
yaratılır.
 Nesneye-Yönelik
Programlama (OOP) da
olan sınıf ve miras kavramlarına sahiptir.
 Karmaşık
veriler üzerinde işlem yaparken
yüksek performans sunan bir yaklaşımdır.
Veritabanı Tasarımı

Herhangi bir projenin en önemli kısımlarından birisi
veritabanı bölümüdür.

Projenin tasarım aşamasında veritabanı tasarımı
çok iyi yapılmalıdır. Daha sonra yapılacak
değişiklikler sorunlar çıkartabilir veya çok zahmetli
olabilir.

Veri tabanı tasarımında en çok tercih edilen model
VARLIK-İLİŞKİ adı verilen modeldir.
Varlık-İlişki Modeli (E-R Modeli)

Varlık-ilişki modeli, ya da kısaca E-R modeli (EntityRelationship model) 1976 yılında P.P. Chen
tarafından geliştirilen bir modeldir.

Bugüne kadar varlık-ilişki modeline dayalı hiçbir
VTYS geliştirilmemiştir.

Buna karşılık varlık-ilişki modeli, VTYS'den bağımsız
veri çözümlemede ve semantik veri
modellemede en çok kullanılan modeldir.
Varlık-İlişki Modeli

Bu model kullanılarak sırasıyla;
 VTYS'den
 Veri
bağımsız olarak veriler çözümlenir,
modellemesi yapılır,
 Veriler
ve veriler arası ilişkilerin anlamları ve
özellikleri incelenerek E-R çizelgeleri oluşturulur;
 Kullanılacak
 Hazırlanan
VTYS belirlenir,
E-R çizelgeleri bu sistemin veri
modeline dönüştürülerek veri tabanı şemaları
oluşturulur.
Varlık-İlişki Sembolleri
Varlık ve Nitelik

Varlık : Modelin en temel üyesidir. Var olan ve benzerlerinden ayırt
edilebilen her şey varlıktır. Örneğin; kitap, öğrenci, araba birer varlıktır.
Modelin içerisinde varlık kümesi dikdörtgen ile gösterilir. Veritabanı
olarak düşünülürse her bir tablo bir varlık kümesidir.

Nitelik : Varlıkların her bir özelliği bir nitelik olarak ifade edilir. Örneğin,
öğrenci adı ve numarası öğrenci varlığının nitelikleridir. Modelin
içerisinde nitelikler oval ile gösterilir ve içerisine niteliğin ismi yazılır.
Veritabanı olarak düşünülürse tablonun her bir sütunu bir niteliği gösterir.
Etki Alanı (Değer Alanı)

Her niteliğin bir etki alanı (domain) vardır. Etki alanı ilgili niteliğin
olabilecek değerlerinin tümünü içeren bir kümedir.
Adı ve Soyadı
Burak Özkan
Begüm Özkan
Dilay Dondurmacı
Nitelik
Etki Alanı
Türetilen Nitelik
Bir nitelik kullanılarak bir başka varlık niteliği
elde edilebiliyorsa, bu yeni niteliğe türetilen
nitelik adı verilir.
 Örneğin, “personel” varlığının “doğum
tarihi” niteliğinden yararlanılarak “yaş”
niteliği elde edilebilir. Bu örnekte “yaş”
niteliği türetilen niteliktir, tasarımda ayrıca
tanımlanmasına gerek yoktur.

Birleşik Nitelik

Birden fazla nitelik birleştirilerek yeni bir
nitelik oluşturulabilir. Bu tür niteliklere birleşik
nitelik adı verilir.

Örneğin, “mahalle”, “cadde”, “sokak”,
“apartman”, “posta kodu” ve “şehir” gibi
nitelikler birleştirilerek “adres” isimli yeni bir
nitelik oluşturulabilir.
Anahtar Nitelik

Bir niteliğin değeri her bir varlık için farklıysa bu nitelik
anahtar nitelik olarak belirlenir.

Anahtar nitelik şema içerisinde niteliğin altı çizilerek
gösterilir.

Örneğin; öğrenci no gibi.

(Yandaki tabloda id sütunu)
İlişki

Varlıklar arasındaki bağıntıya ilişki adı verilir.

İkili ilişki:


bir öğrenci ile bir ders

bir firma ile bir malzeme
Üçlü ilişki:


Bir işçi, bir ürün ve bir makine (işçi bu ürünü üretirken bu makineyi
kullandığı için)
Model içerisinde ilişkiler baklava dilimi ile gösterilir ve içerisine
ilişkinin adı yazılır.
İlişki
İlişki Tipleri

A ve B varlık kümeleri arasında tanımlanan (A ve B
varlık kümeleri aynı da olabilir), A'dan B'ye bir ilişki
kümesi, eşleme sınırlamaları açısından aşağıdaki dört
türden birinde olabilir.
 Birden-bire (one-to-one)
 Birden-çoğa (one-to-many)
 Çoktan-bire (many-to-one)
 Çoktan-çoğa (many-to-many)

Tablolar arasında kullanılan ilişkiler 1-1, 1-n, n-1, n-m
ile gösterilir.
İlişki Tipleri
(1-1) ilişki örneği

Örnek: “Evlilik” ilişkisi T.C. Medeni Kanunu’na göre birden-bire’dir.
Kadın
Ayşe
Fatma
Buket
Selin
Sezin
Evlilik
Erkek
Ali
Ahmet
Mustafa
Cemal
Veli
İlişki Tipleri
Bire Çok İlişki

En çok kullanılan ilişki şeklidir.

Bu ilişkide A tablosundaki bir kayıt B tablosundaki
birden çok eşleşen kayda sahiptir. Fakat, bunun
tersi doğru değildir.

Örneğin, müşteri-sipariş tabloları arasındaki ilişki
İlişki Tipleri
Çoka-Çok ilişki (n-m)

Bu ilişkide A tablosundaki bir satırın B tablosunda
çok sayıda eşi vardır ve tam tersi de geçerlidir.

Bu tür ilişkileri, birincil anahtarları A ve B
tablolarının yabancı anahtarlarından oluşan
bağlantı tablosu diye adlandırılan üçüncü bir
tablo tanımlayarak oluşturabilirsiniz.
İlişki Kümesi : Örnek

Aşağıda şekilde “öğrenci” ve “ders” varlık kümeleri ile bu iki varlık
kümesi arasındaki “aldığı” ilişki kümesi görülmektedir.
İlişki Kümesi Örnekleri
Erkek
Bölüm
Öğrenci
1
1
n
Evlilik
Okuyan
Aldığı
1
Kadın
n
Öğrenci
m
Ders
Download