dosyalama sistemleri - cu.edu.tr 213/549956129... · 2015-09-28 · Öğr.gör. erkut tekeli...

16
Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları 1 Dosyalama Sistemleri Bilgisayarda veri saklama işlemi bilgisayarın ilk bulunduğu yıllardan günümüze kadar uzanır. Veri saklama işleminde geçmişten günümüze çok farklı yöntemler kullanılmıştır. Geleneksel dosyalama sistemleri veritabanı yönetim sistemleri öncesinde veri depolamak için kullanılan sistemlerdir. Zamanla geleneksel dosyalama sistemleri artan veri kapasitesi, veri işleme hızı ve kullanım alanı gibi birçok ihtiyaca cevap veremez hale gelmiştir. Dolayısıyla artık yerini veritabanı yönetim sistemleri yazılımlarına bırakmıştır. Geleneksel dosyalama sistemlerinde, depolanacak veri grupları bağımsız olarak oluşturulmak zorundadır. Örneğin; kasa, satış, fatura bilgilerinin tutulması gerektiğinde bu bilgilerin ayrı dosyalarda tutulması gerekir. Bu tür dosyalarda veri, sıralı veya doğrudan erişim yöntemleriyle kullanılır. Sıralı Erişimli Dosyalar Sıralı erişimde bilgilerin tutulduğu dosya içeriği tarama yöntemiyle (sırayla) okunur. İstenilen kayda gelindiğinde işlem yapılır. Kullanılan programlama diline ve ihtiyaca bağlı olarak yeni eklenen veriler dosya sonuna, dosya başına veya imlecin bulunduğu konuma eklenebilir. Herhangi bir bilgi aranmak istendiğinde dosyanın başından itibaren okumaya başlanarak aranan kayıt bulunana kadar devam edilir. Sıralı erişimli dosyaların en büyük dezavantajı istenilen bilgiye anında ulaşılamamasıdır. Ancak yine de bazı durumlarda sıralı bir şekilde işlem yapmamız gerekebilir. Öğreğin müşteri bilgileri belirli bir müşteri numarasına göre tutulduğu bir dosya düşünelim. Müşterilerin tamamının hesap dökümünü almak uzun bir iş olmasının yanında sıralı bir iştir. Böyle bir işlem için sıralı erişim kullanılabilir çünkü müşteriler müşteri numarasına göre sıralı bir şekilde depolandığı için arama işlemi yapmadan sırayla döküm işlemi yapılacaktır. Doğrudan Erişimli Dosyalar Bu tür dosyalarda, isminden de anlaşılacağı gibi istenilen bilgiye doğrudan erişim söz konusudur. Dosya başından itibaren istenilen bilgiye ulaşana kadar tüm bilgilerin okunmasına gerek yoktur. Doğrudan erişimli dosyalar tutulduğu her satır bilgi için bir indeks numarasına sahiptir. Bilgilerin tutulduğu veri dosyasının yanında indeks değerlerinin tutulması için indeks dosyası oluşturulur. Bir bilgiye ulaşılmak istenildiğinde aranan bilginin karşılık geldiği indeks değeri bulunarak karşılık geldiği disk adresi bulunur ve bu disk adresi üzerinden aranan bilgiye erişilir.

Upload: others

Post on 25-Dec-2019

41 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Dosyalama Sistemleri - cu.edu.tr 213/549956129... · 2015-09-28 · Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları 6 Kaydedilmiş Yordamlar (Stored Procedures) Daha önce değerlendirilmiş

Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları

1

Dosyalama Sistemleri

Bilgisayarda veri saklama işlemi bilgisayarın ilk bulunduğu yıllardan günümüze kadar

uzanır. Veri saklama işleminde geçmişten günümüze çok farklı yöntemler kullanılmıştır.

Geleneksel dosyalama sistemleri veritabanı yönetim sistemleri öncesinde veri depolamak için

kullanılan sistemlerdir. Zamanla geleneksel dosyalama sistemleri artan veri kapasitesi, veri

işleme hızı ve kullanım alanı gibi birçok ihtiyaca cevap veremez hale gelmiştir. Dolayısıyla

artık yerini veritabanı yönetim sistemleri yazılımlarına bırakmıştır.

Geleneksel dosyalama sistemlerinde, depolanacak veri grupları bağımsız olarak

oluşturulmak zorundadır. Örneğin; kasa, satış, fatura bilgilerinin tutulması gerektiğinde bu

bilgilerin ayrı dosyalarda tutulması gerekir. Bu tür dosyalarda veri, sıralı veya doğrudan

erişim yöntemleriyle kullanılır.

Sıralı Erişimli Dosyalar Sıralı erişimde bilgilerin tutulduğu dosya içeriği tarama yöntemiyle (sırayla) okunur.

İstenilen kayda gelindiğinde işlem yapılır.

Kullanılan programlama diline ve ihtiyaca bağlı olarak yeni eklenen veriler dosya

sonuna, dosya başına veya imlecin bulunduğu konuma eklenebilir.

Herhangi bir bilgi aranmak istendiğinde dosyanın başından itibaren okumaya

başlanarak aranan kayıt bulunana kadar devam edilir.

Sıralı erişimli dosyaların en büyük dezavantajı istenilen bilgiye anında

ulaşılamamasıdır. Ancak yine de bazı durumlarda sıralı bir şekilde işlem yapmamız

gerekebilir. Öğreğin müşteri bilgileri belirli bir müşteri numarasına göre tutulduğu bir dosya

düşünelim. Müşterilerin tamamının hesap dökümünü almak uzun bir iş olmasının yanında

sıralı bir iştir. Böyle bir işlem için sıralı erişim kullanılabilir çünkü müşteriler müşteri

numarasına göre sıralı bir şekilde depolandığı için arama işlemi yapmadan sırayla döküm

işlemi yapılacaktır.

Doğrudan Erişimli Dosyalar Bu tür dosyalarda, isminden de anlaşılacağı gibi istenilen bilgiye doğrudan erişim söz

konusudur. Dosya başından itibaren istenilen bilgiye ulaşana kadar tüm bilgilerin okunmasına

gerek yoktur.

Doğrudan erişimli dosyalar tutulduğu her satır bilgi için bir indeks numarasına

sahiptir. Bilgilerin tutulduğu veri dosyasının yanında indeks değerlerinin tutulması için indeks

dosyası oluşturulur. Bir bilgiye ulaşılmak istenildiğinde aranan bilginin karşılık geldiği indeks

değeri bulunarak karşılık geldiği disk adresi bulunur ve bu disk adresi üzerinden aranan

bilgiye erişilir.

Page 2: Dosyalama Sistemleri - cu.edu.tr 213/549956129... · 2015-09-28 · Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları 6 Kaydedilmiş Yordamlar (Stored Procedures) Daha önce değerlendirilmiş

Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları

2

Veritabanı Nedir?

Veritabanı kavramı günümüzde hemen hemen tüm alanlarda kullanılmaktadır.

Veritabanı kullanılmayan sistemlerde bilgilerin kalıcı olması mümkün değildir. Veritabanı

istediğiniz bilgileri, istediğiniz türde, istediğiniz sürece saklanmasını sağlamaktadır.

Veritabanı, herhangi bir konuda birbiriyle ilişkili ve düzenli bilgiler topluluğudur.

Günümüzde, basit müşteri bilgilerinin tutulmasından büyük kapsamlı şirket verilerinin

tutulmasına kadar veri depolanması gereken alanların tamamında veritabanları

kullanılmaktadır. Veritabanlarında tutulan verilere erişim geleneksel dosya sistemlerine göre

daha kolay ve hızlı bir şekilde gerçekleşir ve gereksiz veri tekrarlarının oluşmasını engeller.

Günümüzde yaygın olarak kullanılan veritabanları İlişkisel Veritabanı (Relational

Database) yaklaşımında olan veritabanlarıdır. Bu yaklaşım, verileri tablo adı verilen listelerde

saklayarak listeler arasında ilişkiler tanımlar.

Veritabanı kullanışlı olmasına rağmen kullanıcı kaynaklı yapılan hatalar veritabanının

performansını düşürecek, gereksiz veri tekrarlarına sebep olacak ve istenilen verim

alınamayacaktır. Bu nedenle, veritabanı kullanılması gereken yerlerde veritabanı

organizasyonu hatasız bir şekilde yapılmalıdır.

Veritabanı, içerisinde bulunan veriler üzerinde değişiklik yapma, silme, yenisini

ekleme veya verileri istenilen kriterlere göre görüntüleme işlemleri yapılabilir. Aşağıdaki

tabloda ilişkisel veri modeline göre bir firmaya ait veritabanı, tablolar ve sütunlar verilmiştir.

FİRMA

MÜŞTERİ ÜRÜN ALIM SATIŞ

Müşteri Kodu Ürün Kodu Fatura_No Fatura_No

Müşteri Adı Ürün Adı Alış_Tarihi Satış_Tarihi

Adres Alış Fiyatı Müşteri Kodu Müşteri Kodu

Telefon Satış Fiyatı Ürün Kodu Ürün Kodu

Faks Birimi Miktar Miktar

Yetkili Kişi Tutar Tutar

Veritabanı Programlama Nerelerde Kullanılır? Veritabanı programlama ile birçok türden proje geliştirilebilir. İngilizce-Türkçe

Sözlük, e-ticaret sitesi, Kütüphane Takip Otomasyonu, Hastane Otomasyonu, Muhasebe

Programları ve daha birçok otomasyon programı temelde bir veritabanı projesidir.

Günlük hayata veritabanı programlama özellikle çok veri üreten şirketler tarafından

sıklıkla kullanılmaktadır. Kullanım amacına göre veritabanı çözümlerini iki gruba ayırabiliriz;

Veritabanı (Database)

Tablolar (table)

Sütunlar (alanlar)

Page 3: Dosyalama Sistemleri - cu.edu.tr 213/549956129... · 2015-09-28 · Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları 6 Kaydedilmiş Yordamlar (Stored Procedures) Daha önce değerlendirilmiş

Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları

3

OLTP (Online Transactional Processing) Kullanıcıların sürekli olarak veri üretmeye, veriler üstünde değişiklik yapmaya devam

ettiği sistemlerdir. Telekom şirketindeki veritabanı bu tür kullanıma en güzel örnektir. Her

dakika birileri telefonla konuşur ama telefon şirketinin bu konuşmaların süresini bir yere

kaydedip daha sonra faturaya yansıtması gerekmektedir.

OLAP (Online Analitical Prcessing)

OLAP’ta temel amaç verilerden neticelere varmaktır. Karar destek sistemleri gibi veri

yorumlayan sistemler VTYS’leri bu amaçla kullanırlar.

SQL SQL (Standart Query Language), ilişkisel veritabanını sorgulamak için kullanılan

yegane dildir. BU dil ANSII ve ISO gibi kuruluşlar tarafından belirlenmiş standartlarla

tanımlıdır. Bu standartların Microsoft SQL Server için gerçeklenmiş haline Transact SQL

denir ve kısaca T-SQL olarak anılır. T-SQL, veri tanımlama, veri işleme ve veri kontrol

olmak üzere 3 temel işleve sahiptir.

Temel Veritabanı Kavramları ve Nesneleri

Veritabanı Veriler fiziksel hafızada Veri Dosyaları (data files) halinde saklanır. SQL Server

verileri ve veriler hakkındaki logları tutan en az iki dosyadan oluşan yapıları bir veritabanı

olarak ele alır.

Şema (Diagram) SQL Server’da tanımlı veritabanları içerisinde SQL99 standardına uygun olarak

tabloları, tablolar arasındaki ilişkileri, stored procedure gibi nesneleri görebileceğimiz şemalar

tanımlayabiliriz.

Tablo (Table) Veritabanı içerisinde tutulacak verileri taşımak için kullanılır. Günlük hayatta

kullandığımız listeler gibi düşünülebilir. Veritabanı üzerinde birden fazla tablo kullanılabilir.

Oluşturulacak tablolar özellikle barındırılacak veri gruplarına göre belirlenir. Oluşturulacak

tablolar arasında çeşitli ilişkiler bulunabilir.

Hazırlanacak projeye başlamadan önce veritabanı tasarımı iyi yapılmalıdır. Sonradan

tablolar ve sütunlar üzerinde yapılacak önemli değişiklikler projenin tamamını etkiler ve

tekrar düzenlemeler gerektirebilir.

Page 4: Dosyalama Sistemleri - cu.edu.tr 213/549956129... · 2015-09-28 · Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları 6 Kaydedilmiş Yordamlar (Stored Procedures) Daha önce değerlendirilmiş

Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları

4

Satır ve Sütun (Row, Colomn) Tabloyu oluşturan temel kavramlardır. Bir tablo satır ve sütunlardan oluşmaktadır.

Sütun, bir tablo içerisinde tutulan her bir veri türüne verilen isimdir. Örneğin öğrenci

bilgilerinin tutulduğu bir tabloda öğrencilerin numarası, adı, soyadı gibi bilgilerin her biri

tablomuzda bir sütun ile gösterilecektir. Bazı kaynaklarda sütun yerine aynı anlama gelen alan

(field) ifadesi de kullanılmaktadır.

Satır ise her bir öğrencinin tüm bilgileridir. Satır ifadesi yerine kayıt (record) ifadesi

de kullanılmaktadır.

Sonuç Kümesi (Result Set) Bir seçme işlemi gerçekte veritabanında olmayan bir tablo döndürür. Bir sorgunun

neticesinde anlık olarak üretilen tabloya sonuç kümesi (result set) denir.

Veri Tipleri (Data Types) Oluşturulan veritabanındaki tutulan verilerin hepsi aynı türde değildir. Tutulacak

veriye göre değişiklik gösterir. (örneğin sayısal veri, metinsel veri veya resim için farklı veri

tipleri kullanmak gerekir.) Bir veri tabanı oluşturulurken önce tablolar, sonra sütunlar ve

sütunların veri türlerinin ne olacağı tanımlanır. Ayrıca bir sütunun ne kadar olacağı ve en

fazla kaç karakter alacağı da belirlenmelidir.

NULL NULL değer, tablo içerisinde bir sütuna hiçbir değer girilmediği durumda oluşur.

Boşluk tuşunun kullanımı NULL değer değildir.

Anahtar (Key)

Tabloda bulunan kayıtları birbirinden ayırt edebilmek için kullanılır. Ayırt etme işlemi

bir sütun üzerinden yapılabileceği gibi birden fazla sütun üzerinden de yapılabilir. Örneğin

öğrencileri birbirinden ayırt etmek için öğrenci numarası kullanılabilir.

Tablolarda anahtar sütun kullanma zorunluluğu yoktur ama kullanılması tavsiye

edilmektedir. Bir tablo içerisinde Birincil Anahtar, Tekil Anahtar ve Yabancı Anahtar olmak

üzere üç farklı anahtar tanımlaması yapılabilir.

Birincil Anahtar (Primary Key) Tabloda tutulan verilerden benzersiz yani aynı değeri iki kez içermeyecek olan sütun

Birincil anahtar olarak belirlenir.

Birincil Anahtar olan sütun NULL (boş) değerleri veya birbirinin aynı olan değerleri

içeremez.

Birincil Anahtar, kayıt silme ve düzeltme gibi işlemlerde büyük kolaylık sağlar.

Silinmek istenen kaydın birincil anahtarı verildiğinde başka sütunların kontrol edilmesine

gerek yoktur.

Page 5: Dosyalama Sistemleri - cu.edu.tr 213/549956129... · 2015-09-28 · Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları 6 Kaydedilmiş Yordamlar (Stored Procedures) Daha önce değerlendirilmiş

Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları

5

Yabancı Anahtar (Foreign Key) Başka bir tablo ile ilişki kurabilmek için kullanılır. Yabancı Anahtarlar sütunu aynı

tablodaki veya başka bir tablodaki Birincil Anahtar olan bir sütunla ilişkilendirebilir. Birbiri

arasında ilişki bulunan iki tablodan birisinden diğer tablodaki Birincil Anahtara başvuran

sütun Yabancı Anahtar olarak adlandırılır.

Yabancı Anahtar olan sütun başvurduğu Birincil Anahtar olan sütunun değerlerini

içermelidir ve NULL (boş) olmamalıdır. Aynı değeri içeren birden fazla satır bulunabilir.

Yabancı Anahtar bir veya birden fazla sütunun birleşmesinden oluşabilir.

Bir tabloya girilebilecek değerleri sınırlandırmak için de kullanılabilir. Örneğin not

tablosuna, tanımlanmamış bir öğrenci için not girişi bu yöntemle engellenebilir.

Tekil Anahtar (Unique Key) Birincil anahtarda olduğu gibi Tekil Anahtar olarak tanımlanmış sütunlarda bir değer

yalnız bir kere girilebilir yani benzersizdir. Birincil Anahtar’dan farklı olarak Tekil Anahtar

sütunlar NULL değeri alabilir. Bir tabloda birden fazla Tekil Anahtar kullanılabilir.

İndeks (Index) Tablodaki belirli sütunları kullanarak tablo içerisindeki verilere hızlı erişim ve

verilerin belirlenen sütuna göre sıralanmasını sağlamaktır. Bir tablo birden fazla indeks

içerebilir.

İlişkilendirme (Joining) Tek sorgu ile birden fazla tablodan bilgi alma işlemine ilişkilendirme denir. Öğrenci

ve Bölüm bilgilerinin ayrı ayrı tablolarda tutulduğu bir veritabanında öğrenci bilgileri ve

öğrencinin kayıtlı olduğu bölümün adını öğrenmek için ilişki kurulması gerekmektedir.

İlişkilendirme ayrıca veri tutarlılığını sağlamak için de kullanılmaktadır. Örneğin,

bölüm tablosunda olmayan bölüm konunun öğrenci tablosunda kullanılmasının engellenmesi,

öğrenci tablosundan öğrenci silindiğinde diğer tabloda o öğrenciye ait tüm bilgilerin silinmesi

veya değiştirilmesi için kullanılabilir.

Geçerlilik Kuralı (Rule) Herhangi bir sütun içerisine girilebilecek veriyi sınırlamak için kullanılır. Sistem,

geçerlilik kuralında belirtilen den farklı veri girişine izin vermeyecektir. Örneğin, öğrenci

notları girilen bir tabloda not sütununa 0 ile 100 arası not girişine izin vermek için

kullanılabilir. İstenirse kullanıcının NULL değer girişi de engellenebilir.

Belirlenecek kurallar ile veritabanına yanlış bilgi girişi engellenmiş olur. Kullanıcı

yanlış bilgi girdiğinde hata ile karşılaşır. Böylece veri tutarlılığı sağlanmış olur.

Kısıtlayıcı (Constraint) Herhangi bir sütuna girilebilecek verileri zorlayıcı kurallara kısıtlayıcı denir. Birincil

Anahtar Kısıtlayıcısı, Tekil Kısıtlayıcı, Default Kısıtlayıcısı, Yabancı Anahtar Kısıtlayıcısı,

Kontrol Kısıtlayıcısı olmak üzere 5 tür zorlayıcı vardır.

Page 6: Dosyalama Sistemleri - cu.edu.tr 213/549956129... · 2015-09-28 · Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları 6 Kaydedilmiş Yordamlar (Stored Procedures) Daha önce değerlendirilmiş

Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları

6

Kaydedilmiş Yordamlar (Stored Procedures) Daha önce değerlendirilmiş ve derlenmiş toplu SQL ifadelerini VTYS uzayında

saklayabiliriz. Bu türden nesnelere Stored Procedures (Kaydedilmiş Yordamlar) denir. T-SQL

ile yazılabildiği gibi C# veya başka bir .NET dili ile de yazılabilir.

İmleçler (Cursor) Bazı durumda kayıtlara satır satır erişmek gerekebilir. Bu durumda imleçler kullanılır.

Genellikle veritabanı üzerindeki veriler üstünde tamirat yaparken kullanılır.

Tetikleyici (Trigger) Tetikleyiciler, tablolara kayıt ekleme, değiştirme veya tablodan kayıt silme esnasında

otomatik olarak devreye giren özel bir çeşit Stored Procedure’lerdir.

Kullanıcı Tanımlı Fonksiyonlar (User Defined Functions) Karmaşık hesaplamaların bir defa fonksiyon olarak tanımlandıktan sonra tekrar tekrar

erişilebilir olmalarını sağlarlar. Stored Procedure’lardan farklı olarak, bir SQL ifadesinin

içerisinde, onun bir parçası olarak kullanılabilirler.

Page 7: Dosyalama Sistemleri - cu.edu.tr 213/549956129... · 2015-09-28 · Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları 6 Kaydedilmiş Yordamlar (Stored Procedures) Daha önce değerlendirilmiş

Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları

7

VTYS (Veritabanı Yönetim Sistemleri)

Veritabanı Yönetim Sistemi (Database Management System – DBMS), kuruluşlar ile

ilgili verileri tutmak ve yönetmek için kurulan yazılımlara denir. Bir VTYS’nin yaptığı

işlerden bazıları şunlardır;

• Yeni bir veritabanı oluşturmak

• Var olan veritabanı üzerinde değişiklik yapmak

• Veritabanının bakımını ve yedeklemesini gerçekleştirmek

• Verilerin tutulduğu tablolar arasındaki ilişkileri kurmak

• Kullanıcı yetkilerin belirlemek

Veritabanı Yönetim Sistemleri işletim sistemleri kadar popüler ve olmazsa

olmazlardandır. Farklı isimler altında olsalar da aynı prensiple çalışan birçok VTYS yazılımı

mevcuttur. Bunların bir kısmı lisans gerektirirken bir kısmı da ticari olmamak kaydıyla

ücretsiz olarak kullanılabilir.

Günümüzde kullanılan Veritabanı Sistemlerinin büyük çoğunluğu istemci-sunucu

mimarisini kullanmaktadır. Örneğin bir muhasebeci bünyesinde birden fazla bilgisayar

kullanılıyorsa her bilgisayarda kullanılan verilerin aynı olması gerekir. Verilerin merkezi bir

yerde depolanması gerekir. Bilgilerin depolandığı merkezi bilgisayar sunucu (server) olarak

hizmet vermektedir. Diğer kullanıcı bilgisayarları veritabanından bilgi okumak, veritabanına

bilgi yazmak gibi işlemleri sunucu üzerinden gerçekleştirecektir. Bu bilgisayar istemci (client)

olarak adlandırılır.

VTYS’nin Sağladığı Yararlar;

Veri Tekrarı (data redundancy) Bir uygulamaya ait veriler tek bir veritabanında birden fazla tablo içerisinde tutulur.

İlişkiler kullanılarak bir tabloya girilen bilginin diğer bir tabloya tamamen girilmesi

engellenebilir. Böylece veri tekrarı engellenmiş olur.

Veri Tutarlılığı (data consistency) Aynı veri farklı tablolarda bulunduğunda, bir yerdeki veri güncellenirse diğer

tablolardaki verinin de güncellenmesi gerekir. Bu işlem gerçekleşmezse veritabanı içerisinde

veri tutarsızlığı oluşacaktır.

Veri Paylaşımı (data concurrency) Veritabanı yönetim sistemleri sunucu-istemci mimarisi kullanarak tek bir veritabanını

ağ üzerinde birden fazla istemci için kullanıma açabilir.

Page 8: Dosyalama Sistemleri - cu.edu.tr 213/549956129... · 2015-09-28 · Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları 6 Kaydedilmiş Yordamlar (Stored Procedures) Daha önce değerlendirilmiş

Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları

8

VTYS kullanılmazsa birden fazla kullanıcı veriye aynı anda erişemez. VTYS

kullanıldığında ise aynı anda birden fazla kullanıcı aynı veriye erişebilir. Birden fazla

kullanıcı aynı veri üzerinde değişiklik yapmak isterse yetki önceliğine veya bağlantı

önceliğine göre VTYS birini belirler ve diğerlerini bekletir.

Veri Bütünlüğü (data integrity) Veritabanlarında bir veri birden fazla tabloda tutulabilir. Veri bütünlüğü, bir verinin

birden fazla parçaya bölündüğünde bir bütün olarak kullanılmasını sağlar. Veri bütünlüğü

özellikle silme işlemlerinde tehdit altında kalmaktadır. Bir veri silindiğinde o verinin ilişkili

olduğu tüm tablolardan o veri silinmelidir.

Veri Güvenliği (data security) VTYS, veritabanı yönetiminin yanı sıra kullanıcıların veritabanlarına erişimlerini de

düzenleyerek verinin güvenliğini sağlamaktadır. Kullanıcıların verilen yetki ve sorumluluk

dâhilinde verileri görebilmesi, yetkisiz kişilerin girişinin engellemesi, yedekleme ve bakım

işlemlerinin gerçekleştirilmesi VTYS’nin yapabildiği işlerdendir.

Veri Bağımsızlığı (data independence) Veritabanı fiziksel yapısı kullanıcılardan gizlenir. VTYS, veritabanı yapısını

kullanıcılara göstermeden çeşitli terimlerle veritabanı üzerinde işlem yapılmasını sağlar.

Böylece kullanıcı karmaşık verileri gösterimleri ve algoritmalarla ilgilenmeden isteklerini

kolayca gerçekleştirebilir.

Veritabanı Kullanıcıları

Veritabanı Yöneticisi (DBA - database administrator) Kullanılacak olan veritabanının tasarımı, oluşturulması ve işletiminden birinci

derecede sorumlu olan ve veritabanı üzerinde en fazla yetkiye sahip olan kullanıcıdır.

Görevlerinden bazıları şunlardır;

Veritabanının tasarımı

Veritabanı Performans Analizi

Erişim Yetkilerini Düzenleme ve Erişimi Sağlama

Yedekleme ve Geri Yükleme

Veri Bütünlüğünü Sağlama

Sistemin Sürekliliğini Sağlama

Uygulama Programcısı Uygulama programcıları veritabanlarını doğrudan kullanmaz. Temel görevleri,

veritabanlarını kullanabilecek son kullanıcılara yönelik yazılımlar geliştirmektir. Kullanıcılar

veritabanına doğrudan erişmek yerine hazırlanan yazılımlar yardımıyla gerekli giriş çıkış

işlemlerini gerçekleştirirler.

Page 9: Dosyalama Sistemleri - cu.edu.tr 213/549956129... · 2015-09-28 · Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları 6 Kaydedilmiş Yordamlar (Stored Procedures) Daha önce değerlendirilmiş

Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları

9

Sorgu Dili Kullanıcıları Sorgu dili kullanıcıları, mevcut veritabanı sorgulamaları dışında ihtiyaç duyulan

sorgulamaları hazırlamak ve işletmekten sorumludurlar. Bu işlem için SQL dili kullanılır.

Bir sorgu dili kullanıcısı, üzerinde sorgular çalıştıracağı veritabanının yapısını

(tablolar, sütunlar, indeksler vb.) bilmek zorundadır.

Son Kullanıcılar Son kullanıcılar, uygulama programcıları tarafından geliştirilen ve veritabanı üzerinde

çeşitli işlemler gerçekleştiren yazılımları kullanır. Bu kullanıcıların veritabanı yapısı hakkında

bilgi sahibi olmasına ve üst düzey bilgisayar kullanıcısı olmasına gerek yoktur.

Veritabanı Yönetim Sistemi Yazılımları Çok kullanılan İlişkisel Veri Tabanı Yönetim Sistemleri’nden bazıları Oracle, SyBase,

MS SQL Server, Informix ve MySQL’dir. Bu VTYS’lerin işlerini daha kolay yürütmesi için

kendi adlarına standart dilden uzaklaşan tarafları vardır. Ancak genel işlemlerde kullanılan dil

tümü için ortaktır ve SQL’dir. MS SQL ve Sybase SQL Server, standartlar çerçevesinde

Transact SQL (T-SQL) denilen komut takımlarını içerir. Oracle ise PL/SQL adı verilen dili

kullanır. PostgreSQL’in yine kendi adı ile anılan bir programlama mantığı vardır. Bu diller

sayesine Stored Procedure, Trigger, Cursor gibi VTYS uzayında yer alan programlanabilir

öğeler tanımlanabilir.

Microsoft SQL Server SQL ve T-SQL (Transact SQL)

Windows, Unix

Güncel Sürüm : SQL Server 2012 / Nisan 2012

Microsoft SQL Server günümüzde yaygın kullanılan bir Veritabanı Yönetim

Sistemidir. SQL Server’ın asıl görevi kullanıcı programlarına veritabanı desteği sağlayan,

ölçeklenebilir veritabanı sunucu sistemidir. Verinin kullanıldığı her uygulamaya, örneğin,

web tarayıcısına, muhasebe programına vb. veritabanı desteği sağlayabilir. En genel

kullanımıyla, kullanıcı uygulaması SQL Server’a bağlanarak bilgi isteğinde bulunur. Bunun

üzerine SQL Server, isteği işler ve sonuçları kullanıcıya gönderir.

SQL Server aynı zamanda büyük ölçekli bir OLTP (On Line Transaction Processing

System), veri ambarı ve e-ticaret uygulamaları için ciddi çözümler sunan bir veritabanı

platformudur. Ayrıca veri depolama, veri işleme ve analiz işlemlerini yapabilmesi için de

yetenekleri vardır.

Veritabanı geliştirme ve yönetim işleri için Studio adlandırması kullanılmıştır.

Management Studio ve Business Intellegent Development Studio gibi.

Page 10: Dosyalama Sistemleri - cu.edu.tr 213/549956129... · 2015-09-28 · Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları 6 Kaydedilmiş Yordamlar (Stored Procedures) Daha önce değerlendirilmiş

Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları

10

Management Studio ile SQL Server Database Engine hizmeti geliştirilebilir ve

yönetilebilir. Analiz hizmetleri yönetilebilir. Tümleştirme hizmetleri paketleri yönetilip

çalıştırılabilir. Rapolama Hizmertleri raporları ve modelleri yönetilebilir.

Business Intellegent Development Studio ile ek olarak analiz hizmetleri kullanılarak

çok-boyutlu yapılar ve böylece ticari istihbarat çözümleri geliştirilebilir.

Bu her iki stüdyo da Microsoft Visual Studio ve Microsoft Office ile bütünleşik

çalışabilmektedir.

SQL Server 2008'in Bileşenleri

(1) Veritabanı Motoru (Database Engine)

Veritabanı motoru; veri depolanması, işlenmesi ve güvenliği için en önemli hizmettir.

Veri kullanan uygulamaları için vertabanı motoru kontrollü erişim ve hızlıveri işlemleri

yapabilmelerini sağlar.

(2) Analiz Hizmetleri

Hızlı veri analizi, OLAP (On Line Analytical Processing) ve veri işleme işlevselliği

için kullanılan temel özelliktir.

Sunucu analiz hizmetleri iki kısımdan oluşmaktadır.

a) Çok Boyutlu Veri : OLAP desteği ile farklı veri kaynaklarındaki verileri içeren çok

boyutlu yapılar tasarlanabilir, oluşturulabilir ve yönetilebilir.

b) Veri Madenciliği : Veri madenciliği modelleri tasarlanabilir, oluşturulabilir ve

görselleştirilebilir. Bu modeller farklı veri kaynaklarından ve farklı algoritmalar kullanılarak

yapılabilir.

(3) Tümleştirme Hizmetleri (Integration Services)

Tümleştirme hizmetleri XML veri dosyaları, metin dosyaları, ilişkisel veri kaynakları

gibi çok çeşitli kaynaklardan veri çekebilir ve çeşitli veri kaynaklarına dönüşüm yapabilir.

Tümleştirme hizmetleri, üst düzey veri bütünlüğü ve veri dönüşüm çözümleri için

kullanılan bir ortamdır. Olaylara e-post ile yanıt vermek, veri ambarlarını güncellemek, veri

temizlemek, işlemek vb. için de kullanılabilir.

(4) Çoğaltma (Replication)

Çoğaltma, verinin veya nesnelerin bir veritabanından diğerine kopyalanması ve

dağıtılması demektir. Veritabanlarının eş zamanlamasından sorumludur.

(5) Raporlama Hizmetleri (Reporting Services)

İlişkisel ve çok boyutlu veri kaynaklarından geniş kapsamlı veri raporlaması sağlayan,

sunucu tabanlı bir raporlama platformudur.

Page 11: Dosyalama Sistemleri - cu.edu.tr 213/549956129... · 2015-09-28 · Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları 6 Kaydedilmiş Yordamlar (Stored Procedures) Daha önce değerlendirilmiş

Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları

11

Raporlama hizmetleri ile etkileşimli, tablo ya da serbest form şeklinde istenilen

verileri içeren raporlar oluşturulabilir. Tüm raporlar hem masaüstü hem de Web tabanlı

biçime dönüştürülebilir.

(6) SQL Sunucu Hizmet Acentası (Service Broker)

Farklı veritabanları arasında iletişim sağlayan veritabanı motoru bileşenlerinin

kullanan gelişmiş uygulamalar oluşturan tasarımcıların işini kolaylaştırır. Yoğun iş

görevlerini arka planda veritabanının yapabilmesini sağlar.

SQL Server 2008 Özellikleri

(1) İnternet ile bütünleşiktir.

SQL Server XML desteği sağlamaktadır. SQL Server veritabanı bileşeni FOR XML

cümleciği sayesinde veritabanı sorgulama sonuçlarını XML belgesi şeklinde alınmış olur.

Aynı zamanda XML belgeleri de OPENXML komutu sayesinde SQL Server veritabanlarına

aktarılabilir. Vb.

(2) Ölçeklenebilirlik ve Kullanılabilirlik

SQL Server ölçeklenebilir bir yapıdadır. Yani veritabanı Yönetim Sistemi şirketle

beraber büyüyebilir. Kullanıcıya hiçbir güçlük çıkarmadan diz üstü makinelerde de

çalışabilecek ayarı kendi kendine yapabilir.

SQL Server aynı anda pek çok kullanıcını erişimine izin verir.

(3) Veritabanı büyüklüğü

SQL Server 2008, terabyte’lar büyüklüğündeki veritabanlarını destekliyor.

(4) Veri Yedekleme

Veri yedekleme ve geri yükleme özelliğine sahiptir. Yedekleme işlemi veritabanını

tamamen yedekleme olabileceği gibi son yedekten itibaren değişen kısımları yedeklemek gibi

de olabilir.

(5) Paralel Sorgulama İşlemi

Paralel veritabanı mimarisini destekler. Eğer sunucuda birden fazla işlemci varsa

veritabanı komutları tüm işlemciler üzerinde eş zamanlı olarak işlenecektir.

(6) Çoğaltma

Birden fazla SQL Server aynı veriyi eş zamanlı olarak kullanabilir.

(7) Güvenilirlik

SQL SERVER hareket süreci (transaction processing), çevrim içi yedek alma (on line

backups) ve günlük gönderme (log shipping) gibi güvenlik özelliklerine sahiptir.

Page 12: Dosyalama Sistemleri - cu.edu.tr 213/549956129... · 2015-09-28 · Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları 6 Kaydedilmiş Yordamlar (Stored Procedures) Daha önce değerlendirilmiş

Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları

12

Ayrıca SQL Server Windows Clustring’i destekler. Bu özellik, bir küme (cluster)

içinde iki adet sunucu tanımlayabilmemizi sağlar. Herhangi bir kümeleme hatası durumunda

sunucu çalışması diğer sunucu üzerinden devam edecektir.

(8) Görevlerin Otomatikleştirilmesi

İşler belli zamanlarda çalışacak şekilde programlanabilir.

(9) Merkezi Yönetim

Bütün SQL Server’lar SQL Server Management Studio Express konsolu kullanılarak

yönetilebilir.

(10) Farklı Platformları destekler

Sadece Windows değil, UNIX ya da Apple Macintosh çalıştıran üçüncü parti

kullanıcıları da destekler.

(11) SQL Sunucu ve Windows Entegrasyonu

SQL Server tam anlamıyla Windows ile bütünleşebilmektedir. Active Directory,

Güvenlik, Çoklu İşlemci Desteği, Event Viewer, Windows Bileşen Hizmetleri, Sistem

Monitörü, ISS, Windows Clustring (kümeleme)

(12) SQL Server ve Diğer Microsoft Server Uygulamaları Entegrasyonu

SQL Server en iyi şekilde diğer Microsoft Server Uygulamalarıyla

bütünleşebilmektedir. Microsoft Exchange Server, Microsoft Host Integration Server,

Microsoft System Management Server gibi.

Page 13: Dosyalama Sistemleri - cu.edu.tr 213/549956129... · 2015-09-28 · Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları 6 Kaydedilmiş Yordamlar (Stored Procedures) Daha önce değerlendirilmiş

Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları

13

SQL Server’da kullanılan Veri Tipleri

Veri Tipi Açıklama

bigint -9.233.372.036.854.775.808 ile 9.233.372.036.854.775.807 arasındaki

tam sayıları tutar. 8 byte yer kaplar.

binary 8000 byte’a kadar sabit uzunlukta binary (ikili) veri alabilir.

bit 0 veya 1 tamsayı değerini alır.

char(n) Alfanümerik verileri tutar. n karakter sayısını belirler. Sonuna boşluk

doldurur.

datetime 01.01.1753 ile 31.12.9999 arasında tarih ve saat tutabilir.

decimal(p,s) 38 basamak uzunluğuna kadar tam sayı ve virgüllü sayı tutabilir.

float(n) -1,7E+308’den 1,79E+308’e kadar olan değerleri alabilir. Kapladığı

alan n değerine göre değişir. ( 1<= n <= 53 )

image Resim, sunu, Excel dosyası gibi ikili formatta veri saklamak için

kullanılır. (2.147.483.647 byte)

int -2.147.483.648 ile 2.147.483.647 arasındaki tam sayıları tutar. 4 byte

yer kaplar.

money -922.337.203.685.477,5808 ile 922.337.203.685.477,5807 arasında

parasal içerikli verileri tutmak için kullanılır. 8 byte yer kaplar.

nchar(n) Alfanümerik verileri tutar. (UNICODE formatında)

ntext Çok uzun alfanümerik verileri saklamak için kullanılır. 2GB’a kadar

veri girilebilir. UNICODE’u destekler.

numeric(p,s) Decimal ile aynıdır.

nvarchar(n) Alfanümerik verileri tutar. (UNICODE formatında)

real float(24) ile aynı özelliğe sahiptir. (-3,4E+38 ile 3,4E+38 arasında)

rowversion Veritabanı üzerinde benzersiz bir numaradır. Bir satır güncellendiğinde

bu değer kendini günceller.

smalldatetime 01.01.1900 ile 31.12.2079 arasında olan tarih ve saat bilgisini tutar. 4.

Byte yer kaplar.

smallint -32.768 ile 32.767 arasındaki tam sayıları tutar. 2 byte yer kaplar.

sql_variant 8000 byte kadar veri tipini bilmediğimiz sütunlarda kullanabileceğimiz

veri tipidir.

text Çok uzun alfanümerik verileri saklamak için kullanılır. 2GB’a kadar

veri girilebilir.

tinyint 0 ile 255 arasındaki sayıları tutar. 1 byte yer kaplar.

unique-

identifier Her çalışmada benzeri olmayan 16 byte uzunluğunda sayı üretir.

Benzersiz değerler elde etmek için kullanılabilir.

varbinary 8000 byte’a kadar değişken uzunlukta binary veri alabilir.

varchar(n) Alfanümerik verileri tutar. n karakter sayısını belirler. Sonuna boşluk

doldurmaz.

XML En fazla 2 GB uzunluğunda XML türünde verileri tutmak için

kullanılır.

Page 14: Dosyalama Sistemleri - cu.edu.tr 213/549956129... · 2015-09-28 · Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları 6 Kaydedilmiş Yordamlar (Stored Procedures) Daha önce değerlendirilmiş

Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları

14

Oracle SQL ve PL/SQL (Procedural Language / SQL)

Güncel sürüm : 12.1 / Haziran 2013

Oracle veritabanı yazılımları ö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. Oracle’de diğer veritabanı yönetim sistemlerinde olduğu

gibi, stored procedure’lar, paketler, trigger’ler gibi bileşenler yer alır.

MySQL

SQL

Unix, Linux, OS/2, Windows

Ücretsiz, Açık Kaynak Kodlu

Güncel sürüm : 5.6.14 / 20 Eylül 2013

Web sunucularında en çok kullanılan veritabanıdır, asp, php gibi birçok web

programlama dili ile kullanılabilir.

MySQL, tuttuğu tablolarla çok kullanıcılı sistemlerde söz konusu olan erişim hakları

sorununu başarılı bir şekilde çözmektedir. MySQL'in 4.0 sürümü ile birlikte "transaction"

desteği, 4.1 sürümüyle birlikte de alt sorgu desteği eklenmiştir.

Ayrıca "veri tutarlılığını (referential integrity)" sağlama işinin programcıya bırakılması

tercih edilmiştir, ancak bu bir dezavantaj olarak görülmeyebilir. Çünkü pek çok veritabanı

programcısı VTYS'lerdeki veri tutarlılığının esnek olmayan, zorlayıcı bir özellik olduğunu

düşünmektedir.

SyBase

SQL ve T-SQL (Transact SQL)

Unix, Windows

SAP ile uyumlu çalışıyor.

PostgreSQL SQL ve PostgreSQL

Unix, Linux, Windows

Ücretsiz, Açık Kaynak Kodlu

Güncel Sürüm : 9.3.0 / 9 Eylül 2013

Page 15: Dosyalama Sistemleri - cu.edu.tr 213/549956129... · 2015-09-28 · Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları 6 Kaydedilmiş Yordamlar (Stored Procedures) Daha önce değerlendirilmiş

Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları

15

Microsoft Access SQL

Windows

Güncel Sürüm : 2013 (15.0.4420.1017) / 2 Ekim 2012

Microsoft Access Jet veri tabanı motorunu, grafiksel kullanıcı arayüzünü ve yazılım

araçlarını aynı paketin içinde birleştirir.

Küçük ölçekli veri tabanları için kullanılır. Access'de veri tabanında bulunan

nesnelerin birçoğu sihirbazlar yardımıyla kolayca hazırlanabilir. Çoğu zaman hiç tasarım

ortamına girmeden, sadece sihirbazlar kullanılarak veri tabanı dosyaları hazırlanabilir.

Hiç programcılık bilgisi olmayan biri programcılığı öğrenmesine gerek kalmadan

kendi veri tabanı dosyalarını hazırlayabilir. Programcılık bilgisi olanlar Access'de

hazırladıkları veri tabanlarına kod yazarak daha ileri düzey işlemleri yapabilir.

IBM DB/2

SQL, ???

Unix, Linux, Windows

IBM tarafından geliştirilmiş ilişkisel veritabanı yönetim sistemidir.

Güncel Sürüm : DB2 Data Server (10.5) / 23 Nisan 2013

SQLite

SQL, ???

Android, iOS, Windows Phone 8, BlackBerry 10 OS, Symbian OS

Ücretsiz, Açık Kaynak Kodlu

Sunucu yazılımı ve konfigürasyon gereksinimi olmayan (gömülü), işlemsel ve ilişkisel

bir SQL veritabanı motorudur.

Güncel Versiyon : 3.8.0.2 / 3 Eylül 2013

Page 16: Dosyalama Sistemleri - cu.edu.tr 213/549956129... · 2015-09-28 · Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları 6 Kaydedilmiş Yordamlar (Stored Procedures) Daha önce değerlendirilmiş

Öğr.Gör. Erkut Tekeli Veritabanı Ders Notları

16

Nereden Başlamalıyız? Hazırlayacağınız proje ne olursa olsun veritabanı tasarımı projenin başlangıç

safhasında yapılmalıdır. Tasarımı iyi yapamazsanız ileride gereksiz bilgi yığınlarıyla dolu bir

veritabanıyla karşılaşırsınız. Veritabanı tasarımını ilk önce kâğıt üzerinde yapıp tekrar gözden

geçirdikten sonra uygulanmalıdır.

Veritabanı seçimi size ve projenin büyüklüğüne kalmıştır. Aşağıdaki sorular size

yardımcı olacaktır?

• Projeniz kaç tablodan oluşacak?

• Toplam kayıt sayısı en fazla kaç olabilir?

• Projenizi aynı anda kaç kişi kullanacak?

• Projeniz için ne kadar alan ayırdınız?

• Projeniz için ne kadar bütçe ayırdınız?

• Projenizde güvenlik önemli mi?

• Projeniz hangi tür platformlarda kullanılacak?

Yaralanılan Kaynaklar

Beylan K., 2009, “Veritabanı-II / SQL 2008 Uygulamalarıyla”, Papatya Yayınevi

Gözüdeli Y., 2008, “Yazılımcılar için SQL Server 2005 ve Veritabanı Programlama”, Seçkin

Yayınevi

Özseven, T., 2011, “Veri Tabanı Yönetim Sistemleri-1”, Murathan Yayınevi

Wikipedia, 2013, www.wikipedia.org