Veri Tabanı Sistemleri

advertisement
C#
VERI TABANI UYGULAMALARI
Dr. Recep CAKIR
Veritabanı
• Düzenli bilgiler topluluğudur.
• Erişim imkânı olan, yönetilebilir,
güncellenebilir, taşınabilir, birbirleri
arasında tanımlı ilişkiler bulunabilen bilgiler
kümesidir.
KLASIK DOSYA YAPILARI
• Bilgisayarların ilk ortaya çıktığından bu yana
•
•
hem donanım hem de yazılım alanında pek
çok değişim ortaya çıkmıştır.
Bu değişim, kuruluşların ve kişilerin
gereksinimlerine daha iyi cevap verebilmek
amacıyla ortaya çıkmaktadır.
Pek çok kuruluşta eskiye oranla çok daha
fazla veri üretildiğinden, geleneksel veri
saklama ve işleme tekniklerinin yetersiz
kaldığı gözlemlenmiştir.
Veri Tabanı Sistemleri
• Karmaşık dosya yapıları ve çok sayıda
dosya arası ilişki ve kullanıcıların dosyalara
erişimi söz konusu olduğunda, geleneksel
dosya sisteminin yetersiz kaldığı
görülmektedir.
• Bu sorunu çözmek üzere, veriyi saklama
ve veriye erişim konusunda yeni yazılım
teknolojilerine yönelme başlamış ve Veri
Tabanı Yönetim Sistemleri (VTYS)
yaklaşımı ortaya çıkmıştır
VTYS
• Veri Tabanı Yönetim Sistemleri (VTYS)
•
•
yaklaşımında veri girişi ve depolanması, veriye
erişen uygulama programlarından bağımsızdır.
Veri tabanı sistemleri bilgisayar sistemlerinin
önemli bir bileşeni olarak değerlendirilir.
(VTYS), birbirleriyle ilişkili veri ve programlar
topluluğundan oluşmaktadır. Veri topluluğu bir
“veri tabanı” olarak değerlendirilir
İstemci / sunucu yapısı
İstemci (Client)
• Bilgisayar Ağlarında diğer ağ bileşenlerinin paylaşıma açık
•
•
•
•
kaynaklarını kullanabilen birimdir.
Şişman/Zengin istemci Yazılımın her seferinde sunucudan
bütün istemcilere yüklenmesi ya da bir başka medyadan
yüklenmesi gerekir. Örnek: Microsoft Outlook.
Zayıf istemci Sâdece sunumla ilgili grafik birimleri ve onların
denetim yazılımını içerir.
İşle ilgili yazılım sunucudadır.
Haberleşme kanalından gönderilen bilgi az olmasına dikkat
edilir. Yazılımının bilgisayara yüklenmesi problemi yoktur.
Zengin istemciye nazaran daha değişik bilgisayarlarda, WEB
istemci-sunucu (client-server) sistemi olarak bilinir
Sunucu (Server),
• Bilgisayar ağlarında, diğer ağ bileşenlerinin (kullanıcıların)
•
•
•
•
•
erişebileceği, kullanımına ve/veya paylaşımına açık kaynakları
barındıran Bilgisayar birim
Windows NT
Windows 2000, Windows 2003 , Windows 2008, Linux RedHat,
Suse
Sunucuların amaçları da önemlidir.
Web hizmeti veren sunucular vardır. Bunlara örnek olarak Apache,
Microsoft IIS ve Abyss ve Fastream IQ Web/FTP Server
gösterilebilir.
Dosya paylaşım, canlı yayın ve hatta çevrim içi(online) oyun
hizmeti verenleri de mevcuttur. Tüm bu sunucuların değişik sistem
gereksinimleri olacaktır.
Veri modelleme
• Veritabanında asıl önemli kavram, kayıt yığını ya da bilgi parçalarının
•
•
•
tanımlanmasıdır.
kayıt yığını ya da bilgi parçalarının tanimlanmasindan oluşan Şemalar
veritabanında kullanılacak bilgi tanımlarının nasıl modelleneceğini gösterir.
Buna Veri Modeli (Data Model) yapılan işleme de Veri Modelleme denir.
En yaygın olanı, İlişkisel Model dir (relational model),
Bu modelde veriler tablolarda saklanır.
•
•
•
•
Diğer modeller
Sıra Düzensel Veri Modeli
Ağ (Network) Veri Modeli
Nesneye Yönelik Veri Modeli
•
• Tablolarda bulunan satırlar (row) kayıtların kendisini, sütunlar (column) ise
bu kayıtları oluşturan bilgi parçalarının ne türden olduklarını belirtir.
• Başka modeller (Sistem Modeli ya da Ağ Modeli gibi) daha belirgin ilişkiler
kurarlar.
Veri Tabanı Yazılım
• Verileri sistematik bir biçimde depolayan yazılımlara
•
•
•
verilen isimdir.
Birçok yazılım bilgi depolayabilir ama aradaki fark,
veri tabanın bu bilgiyi verimli bir şekilde
düzenleyebilmesi ve ona hızla ulaşabilmesidir.
Bilgiye gerekli olduğu zaman ulaşabilmek esastır.
Veritabanı içinde düzenlenmemiş bilgiler, kataloğu
olmayan bir kütüphaneye benzetilebilir.
İmkânlarının sağlandığı, bilgilerin bütünlük içerisinde
tutulabildiği ve birden fazla kullanıcıya aynı anda
bilgiye erişim imkânının sağlandığı programlardır
Veri tabanı yöneticiliği
• Günümüzde veritabanı sistemleri
•
•
bankacılıktan otomotiv sanayisine, sağlık bilgi
sistemlerinden şirket yönetimine,
telekomünikasyon sistemlerinden hava
taşımacılığına kullanılır.
Veri tabanı fiziksel olarak bilgileri tutarken
mantıksal bir sisteme de sahiptir.
Veritabanı sistemlerinin kurulumu,
konfigürasyonu, tasarımı, sorgulaması,
güvenliği ve denetiminin karmaşık bir hal
alması veritabanı yöneticiliği kavramının
oluşmasına neden olmuştur
Veritabanı yönetim
sistem yazılımları
• Ms access
• MySQL
• Oracle
• MsSQL
• Penguen veri tabanı
• Filemaker
• Firebird
Microsoft Access
• Yazılım firması Microsoft tarafından
Microsoft Windows işletim sistemi
tabanında çalışmak üzere yazılan ve
dağıtımı yapılan veri tabanı programı.
• Veri tabanı programları arasında Access
çok sonradan girmiş olmasına rağmen bu
alanda önemli ölçüde başarı sağlamış
SQL dili (Structured Query Language),
• Veritabanları üzerinde sorgu yapmak için
kullanılan bir dildir.
• Sorgular, analiz aşamalarında, veri
eklerken güncellerken ve silerken kullanılır.
• Sorgular tek bir tablo üzerinde
yapılabileceği gibi birçok tablodan veri
okunmayı sağlar. Sorgular üzerinde konan
kriterler, detaylı veri analizi yapmak için
kullanılır
MySQL
• Altı milyondan fazla sistemde yüklü
bulunan çoklu iş parçacıklı (multithreaded), çok kullanıcılı (multi-user), hızlı
ve sağlam (robust) bir VYS
• UNIX, OS/2 ve Windows platformları için
ücretsiz dağıtılmakla birlikte ticari lisans
kullanmak isteyenler için de ücretli bir
lisans seçeneği de mevcuttur.
ORACLE
• Özellikle kurumsal alanda kullanılan yaygın
bir veritabanı sistemidir.
• ORACLE çok sayıda araçtan oluşur ve
uygulama geliştiricilerinin kolay ve esnek
uygulamalar geliştirmesini sağlar
Firebird
• Borland'ın Interbase 6.0 veri tabanını açık
kaynak kodlu hale getirmesinden sonra bu
kaynak kodlardan yola çıkılarak geliştirilmiş
olan, açık kaynak kodlu bir ilişkisel bir veri
tabanı yönetim sistemidir
VERI TABANI BILESENLERI
• Tablolar (Tables)
• Verilerin mantıksal olarak saklandığı
ortamlardır.
• Tabloları adlandırırken tablonun içeriği ile
uyumlu olmasına dikkat etmek gerekir
Sütunlar (Columns)
• Sütunlar ortak özellikli verileri tanımlar.
Sütunlara 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.
Satırlar (Rows)
• Bir tabloda yer alan her bir kayıt bir satıra
karşılık gelir.
Alanlar (Fields)
• Bir sütundaki aynı türdeki bilginin her bir
kısmını saklamak üzere yapılan
tanımlamalardır. Bir alan tanımlanırken
veri tipinin belirlenmesi gerekir
İndeksler
• Eğer bir tabloda birkaç yüz kayıt olduğu
düşünülürse bu tabloda işlem yapmak
• oldukça kolaydır.
• Tablonun milyonlarca kaydının olduğu
düşünülürse bu tabloyu belirli bir alana
göre yapılandırmak gerekir. Böylece
verilere erişim daha kısa sürede olacaktır.
• Bu yapılara indeks denilmektedir.
Primary key (Birincil
Anahtar)
• Bir tablonun seçilen bazı sütunlarındaki
verinin farklı satırlarda tekrarlanmamasını
(Bir kez kullanılmasını) işaret eder. T.C.
Kimlik no.gibi alanlar seçilmelidir.
SQL
• SQL (Structured Query Language), ilişkisel
veri tabanı yönetim sistemlerinden veri
almak, veri tabanında bulunan veriyi
düzenlemek veya sisteme veri girişi
yapmak içinkullanılan en popüler
sorgulama dilidir.
• SQL temelde, nesne-ilişkili (objectrelational) veri tabanı yönetim sistemlerini
desteklemek için tasarlanmıştır.
İkili Veri Tipleri
• binary
En çok 8000 bayt uzunluğunda sabit uzunluklu ikili
veri
• varbinary
En çok 8000 bayt uzunluğunda değişken uzunluklu
ikili veri
• image
En çok 2^32-1 bayt uzunluğunda değişken
uzunluklu ikili veri
Karakter Veri Tipleri
• char
En çok 8000 karakter uzunluğunda, sabit uzunluklu
unicode olmayan değerleri
• varchar
En çok 8000 karakter uzunluğunda, değişken
uzunluklu unicode olmayan değerler
• text
En çok 2^31-1 karakter uzunluğunda, değişken
uzunluklu unicode olmayan değerler
• nchar
En çok 4000 karakter uzunluğunda, sabit uzunluklu
unicode değerleri
• nvarchar
En çok 4000 karakter uzunluğunda, değişken
uzunluklu unicode değerler
• ntext
En çok 2^31-1 karakter uzunluğunda, değişken
uzunluklu unicode değerler
Temel Komutlar
Select * from ogrenci
“ogrenci” tablosunda kayıtlı tüm kayıtları tüm kolonlardaki bilgilerle birlikte listeler
Select no, adi, soyadi from ogrenci
“ogrenci” tablosunda kayıtlı tüm kayıtları no, adi ve soyadi kolonlardaki
bilgilerle birlikte listeler
• Select * from ogrenci
• Where no>2
“ogrenci” tablosunda kayıtlı olan ve numarası 2’den büyük olan kayıtları tüm
kolonlardaki bilgilerle birlikte listeler
SAYISAL İŞLEMLER
Sum ve group by terimleri
select sum(harc) as harctoplam, sum(harc2) as
harc2toplam from detay
group by left (bölümü,3)
“Öğrencilerin 1. ve 2 dönerlerde toplam ne kadar harç yatırdıklarını, bölümlerine
göre gruplayarak toplar.
SAYISAL İŞLEMLER
Max, min ve count fronksiyonları
select max(harc) as en_buyuk_harc from detay
Kayıtlar içerisindeki en yüksek harç miktarını verir
SAYISAL İŞLEMLER
Avg Fonksiyonu
select avg(harc) as ort_harc from detay
Öğrencilerin 1. harçlarının ortalamasını hesap eder.
C Sharp Veri tabanı işlemleri
• MSSQL veri tabanlarına direkt erişim.
• OLEDB protokolünü destekleyen veri tabanlarına
OLEDB protokolü ile erişim.
• Popüler tüm veri tabanları OLEDB protokolünü
desteklemektedir.
• OLEDB protokolüyle Access dosyalarına da bir veri
tabanıymış gibi bağlanabilirsiniz.
Kaynakca
Download