veri - SABİS

advertisement
https://www.microsoft.com/en-us/download/confirmation.aspx?id=29062
VERİTABANI SİSTEMLERİ
Veri Nedir?
Veri (Data) ve Bilgi (Information) terimleri sık
sık birbirinin yerine kullanılmaktadır.
Genel Kavramlar
Bilgi ve Veri
Bilgi bir alıcı tarafından kazanılan anlam ile ilgilidir. Bu
anlamdaki bilgi, hem iletişim kaynağının hem de alıcının
bir fonksiyonudur.
Veri ile bilgi arasında farklılık olduğu ve verinin bilgi elde
etmeye yarayan işlenmemiş ham malzeme olduğu kabul
edilir.
Kişi; bilmek, öğrenmek istedikten ve veriyi kullanmaya
başladıktan sonra bilgi ortaya çıkar.
Genel Kavramlar
Veri Tabanı
• Veri tabanı en genel tanımıyla, kullanım
amacına uygun olarak düzenlenmiş veriler
topluluğudur.
• Veri tabanları gerçekte var olan ve birbirleriyle
ilişkisi olan nesneleri ve ilişkileri modeller.
Genel Kavramlar
Veri Tabanı
• Veri tabanı, bir kuruluşun uygulama
programlarının kullandığı operasyonel verilerin
bütünüdür.
Burada “kuruluş”, bir okul, üniversite, banka, bir
üretim şirketi, hastane, devlet kuruluşu, vb.
olabilir.
Genel Kavramlar
Operasyonel veri” bir kuruluşun çalışabilmesi, işleyebilmesi için
kullanılan çok çeşitli verilerdir ”.
Ticari bir şirket için
müşteri bilgileri,
satış bilgileri,
ürün bilgileri,
ödeme bilgileri, vb.,
okul için
öğrenci bilgileri,
açılan dersler,
kimlerin kaydolduğu, öğretmen
bilgileri,
boş ve dolu derslikler,
sınav tarihleri, vb.,
hastane için
hasta bilgileri,
doktor bilgileri,
yatakların doluluk boşluğu, teşhistedavi bilgileri, mali bilgileri, vb …
Genel Kavramlar
Veri tabanı yönetim sistemi(VTYS)- Data base management system
(DBMS)”,
• yeni bir veri tabanı oluşturmak,
• veri tabanını düzenlemek, geliştirmek
• veri tabanını bakımını yapmak gibi çeşitli karmaşık işlemlerin
gerçekleştirildiği birden fazla programdan oluşmuş bir yazılım
sistemidir.
Veri tabanı yönetim sistemi, kullanıcı ile veri tabanı arasında bir
arabirim oluşturmaktadır .
Veritabanı yönetim sistemi nedir?
• Veri tabanı sisteminin bileşenleri;
Veritabanı
Uygulaması
Kullanıcı
Veritabanı
Yönetim
Sistemi
Veritabanı
Genel Kavramlar
Veri tabanı yönetim sistemi(VTYS)
• Veri tabanının tanımlanması: veri tabanını oluşturan verilerin tip ve
uzunluklarının belirlenmesidir.
• Veri tabanını oluşturulması: veri için yer belirlemesi ve saklama
ortamına verilerin yüklenmesini ifade eder.
• Veri tabanı üzerinde işlem yapmak; belirli bir veri üzerinde
sorgulama yapmak, meydana gelen değişiklikleri yansıtmak için veri
tabanının güncellenmesi ve rapor üretilmesi gibi işleri temsil eder.
Ayrıca veri tabanı yönetim sistemi, verinin geri çağrılmasını sağlar.
Veri tabanına yeni kayıt eklemek, eskileri çağırmak ve gerekli
düzeltmeleri yapmak yoluyla, verinin bakımını ve sürekliliğini
gerçekleştirir, kayıtlara yeni veri eklemek ve yeni kayıtlar oluşturmakla,
veri tabanını genişletir.
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ı Yönetim Sistemlerinin
Sınıflandırılması
• Veri Modeline Göre
– Hiyerarşik
– Ağ
– İlişkisel
– Nesneye Yönelik
• Kullanıcı Sayısına Göre
– Tek kullanıcılı
– Çok kullanıcılı
Hiyerarşik Veri Tabanları :
Bu veritabanı tipi, ana bilgisayar ortamlarında çalışan
yazılımlar tarafından kullanılmaktadır. Bu türde en çok
kullanılan yazılım, IBM tarafından çıkarılan IMS' dir.
Uzun bir geçmişe sahip olmasına rağmen, PC ortamına
uyarlanan hiyerarşik veri tabanları yoktur. Hiyerarşik veri
tabanları, bilgileri bir ağaç (tree) yapısında saklar. Kök
(Root) olarak bir kayıt ve bu köke bağlı dal (Branch)
kayıtlar bu tip veritabanının yapısını oluşturur. Aşağıda
böyle bir veri tabanının yapısı gösterilmektedir.
Hiyerarşik Veri Tabanları :
Olumsuz yanları;
–Her varlık tek varlığa bağlı.
–Arama kökten dallara.
–Kökten veri silinirse dallar silinir.
İlk kullanılmış veri modelidir. IBM firması veri tabanı
sistemlerinde kullanmıştır. Ağaç yapısına benzer veri
yapısı düşünülmüş ve tasarlanmıştır.
Hiyerarşik Veri Tabanları :
• Genellikle veritabanlarında depolanan
hiyerarşik veri örnekleri arasında şunlar yer
alır:
• Bir organizasyon yapısı
• Grafik Web sayfaları arasında bağlantılar
Ağ Veri Tabanları :
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 kendiside özel bir graftır) şeklinde saklarlar. Bu
yapı en karışık yapılardan biridir.
• Olumsuz yanları;
• Karmaşık
Nesneye Yönelik Veri Tabanları :
Günümüzde nesne kavramı her yerde
kullanılmaktadır. Yazılımın mutlaka nesneye yönelik
bir dilde yazılmış olması beklenir. Fakat Windows
gibi işletim sistemi üzerinde çalışan yazılımlar bu
özelliklere tümüyle sahip değillerdir. Sadece nesne
kavramını kullanarak bazı ek özellikler sunarlar.
Nesneye yönelik veri tabanı da , C++ gibi nesneye
dayalı bir dille (OOPL) yazılmış olan ve yine C++ gibi
nesneye dayalı (OOPL) bir dille kullanılan veri tabanı
anlamına gelir. Günümüz teknolojisinde yüzde yüz
nesneye yönelik bir veri tabanı yaygın olarak
kullanıma sunulmuş değildir.
İlişkisel veritabanları
• 1970’lerin başında geliştirilmiştir.
• İlişkisel modeli 1970 yılında İngiliz bilimadamı
Codd önermiştir. Bu model, matematikteki ilişki
teorisine (“the relational theory”) dayanır.
• Bu sistemde veriler tablo şeklinde saklanır.
• Tablolar arasındaki bağlantılar matematiksel
ilişkilerle gösterilir.
• Günümüzdeki hemen hemen tüm veri tabanı
programları bu yapıdadır.
İlişkisel veritabanları
Veri Tabanı Yaklaşımının Avantajları
• Ortak verilerin tekrarını önIenmesi;
• Verilerin merkezi denetiminin ve tutarlılığının
sağlanması
• Veri payIaşımının sağlanması
• Fiziksel yapı ve erişim yöntemi
karmaşıklıklarının, çok katmanlı mimarilerle
kullanıcıdan gizlenmesi,
• Her kullanıcıya yalnız ilgilendiği verilerin, alışık
olduğu kolay, anlaşılır yapılarda sunulması
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ı (Örnek: Bir
tablodan bir öğrenci kaydı silinirse, öğrenci varolduğu diğer tüm
tablolardan silinmelidir.)
• Güvenlik ve gizliliğin istenilen düzeyde sağlanması
• Yedekleme, yeniden başlatma, onarma gibi işletim sorunlarına
çözüm getirilmesi,
• Veriler tek bir merkezde tutulur ve aynı veri her kullanılan değişik
bilgisayarlarda tekrar tekrar tutulmaz.
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
meslegi
char
50
1
indeksler
 Aynı zamanda veritabanlarında veritabanının
performansını artırmak için kullanılan indeksler
vardır.
 Indeksler hangi kayıtların hangi tablolarda
bulunduğunu gösteren kitapların başındakine
benzer bir mantığı olan araçlardır.
Saklı yordamlar
 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
 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.
Saklı yordamlar
• Bir stored procedure ilk çalıştırıldığı zaman derlenir.
Bir daha çalıştırılınca derlenmeden çalışırlar.
• Stored Procedure'ler database server'ında
saklanmasından dolayı daha hızlı çalışırlar
• Bir kez yazıp tekrar ve tekrar kullandığımız için
modüler bir yapıda program geliştirilmesi sağlanır.
• Stored Procedure'lerin diğer bir özelliği ise
programlama deyimleri içermesidir. if, next, set
vs..
• Stored Procedure'ler sadece giriş ve çıkış
parametreleri uygulama katmanında göründüğü
için daha güvenilirdir.
Transaction logging,
veri dosyasına karşı yapılan işlemlerin
kayıtlarının tutulduğu kayıt dosyası.
Trigger yani tetikleyici,
ilişkisel veri tabanı yönetim sistemlerinde bir
tabloda belirli olaylar meydana geldiği zaman
yani ekleme, güncelleme, silme işlemlerinden
biri gerçekleşmeden önce veya sonra çalışan ve
belirli işlemleri kodlandığı şekilde yerine getiren
yordamdır.
tetikleyici
 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.
– Tahakkuk ve tahsilatlar sonucu carî hesapların
etkilenmesi işlemlerinin tetikleyiciler aracılığı ile
yapılmaları, tipik bir tetikleyici 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ı Çeşitleri
1
2
3
4
5
Microsoft Access
MySQL
IBM DB2
Interbase
Informix
6
7
8
9
Progress
Microsoft SQL
Server
PostgreSQL
Oracle
MS 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.
MS Windows dışındaki sistemlerde kullanılamaz.
MS Access
• “Transaction logging” özelliğine sahiptir, ancak “trigger” ve
“stored procedure” özelliklerine sahip değildir.
MySQL
• MySQL Inc.
• Windows, Linux vb.
• “trigger” ve “stored procedure” özelliklerine sahiptir, ancak
“Transaction logging” özelliği bulunmamaktadır.
• Tablo başına 4 TB veri depolayabilir.
IBM DB2
• IBM
• Access ve MySQL e göre daha performanslı, ancak küçük
işletmelere göre daha yüksek maliyete sahiptir.
• Windows üzerinde çalışabilir.
• Transaction logging”, “trigger” ve “stored procedure”
özelliklerine sahiptir.
Informix
• Ücretli ve güçlü bir veritabanıdır.
• Orta ölçekli işletmelerin yükünü kaldırabilecek
kapasitededir.
MS SQL Server
• Microsoft
• Dezavantajları:
– Sadece Windows üzerinde çalışabilir.
– Yüksek maliyet
• Kullanım kolaylığı, güvenilirliği,işlem gücü
• Tablo başına 4 TB veri.
• “Transaction logging”, “trigger” ve “stored procedure”
özelliklerine sahiptir.
PostgreSQL
•
•
•
•
•
•
•
PostgreSQL Global Development Group
Linux, Unix, BSD, Windows, AIX vb.
Ücretsiz, akademik bir veritabanı
Çok güçlü işlem yapısı
Veri güvenliği ön planda
Tablo başına 64 TB veri tutabilme özelliği
“Transaction”, “Inheritance” “trigger” ve “stored
procedure” özelliklerine sahiptir.
Oracle
• Oracle, Inc.
• Dünyanın en güçlü ve güvenilir veritabanı olarak
gösterilmektedir.
• Çok yüksek maliyet
• Windows, Unix, Linux, ...
• Oracle, sınırsız sayıda tabloları desteklemektedir.
Hangi veritabanını seçmeli?
• Küçük yoğunlukta trafik: Access
• Web uygulamaları için: MySQL
• Daha büyük ve orta ölçekli uygulamalar içinse, Progress, MS
SQL ya da Linux üzerinde PostgreSQL .
• Oracle ise çok yüksek güvenilirlik ve işlem gücü
gerektirdiğinde tercih edilen bir veritabanı sunucusudur.
Kaynaklar
• http://pozitron.sdu.edu.tr/dersnotlari/veri%20taban%C4%B1%20sis
temleri%201/bol1.pdf
• http://sibelsomyurek.com/veritabani/ders_notlari.html
• http://www.ibrahimbayraktar.net/2014/10/stored-procedurenedir.html
• https://tr.wikipedia.org/wiki/Trigger
• http://www.yazgelistir.com/makale/kayit-dosyalari-transactionlogs-ve-boyut-sorunu
• http://web.firat.edu.tr/mbaykara/vtys.pdf
• Zehra Alakoç Burma, http://celalettinuyanik.com/wpcontent/uploads/2012/05/Veri-Taban%C4%B1-Y%C3%B6netimSistemleri-15.pdf
• http://www.slideshare.net/uyar/veritaban-ynetim-sistemlerinesneye-dayal-veritabanlar
Download