Veri tabanı nedir?
- Bir veri tabanı ,
–Mümkün olduğunca fazla uygulamaya hizmet vermek için depolanan verilerin bir koleksiyonudur.
–Kurum veya kuruluşların saklamak istediği verileri bir arada tutan yapıdır.
–Sadece verilerin elde edilmesinde değil aynı zamanda işlemlerin kontrol edilmesinde de ihtiyaç duyulan verileri tutan ortamdır.
–Sorgulara cevap bulmak için arama yapmaya izin veren bir ortamdır.
Veri tabanı avantajları
- Veri tabanı, veri tekrarını önemli ölçüde azaltır. (anahtar kullanımı ile)
- Veri tabanı, veri tutarsızlığını büyük ölçüde kontrol eder. (kısıtlar ve normalizasyon yardımıyla)
- Veri tabanı, veri paylaşımını kolaylaştırır. (transaction yönetimi ile)
- Veri tabanı, SQL sayesinde sorgulama imkanları sağlar
- Veri tabanı, veri güvenliğini garanti eder. (denetim mekanizmaları ile)
- Veri tabanı, veri bütünlüğü sağlar. (verilerin ilişkilendirilmesi ile)
- Veri tabanı, veri program bağımsızlığını sağlar. (katmanlı yapı sayesinde)
- Veri tabanı, farklı kullanıcılar için farklı görünümler sağlar. (yetki mekanizması ile)
- Veri tabanı, çok kullanıcılı ve eşzamanlı erişime izin verir. (vtys sayesinde)
Veri tabanı yönetim sistemi (VTYS)

Kullanıcılar
- Tipik bir DBMS, farklı amaçlarla kullanan farklı haklara ve izinlere sahip kullanıcılara sahiptir. Bazı kullanıcılar veriyi alır ve bazıları yedekler. DBMS kullanıcıları aşağıdaki gibi kategorize edilebilir –
- Yöneticiler;
–VTYS güvenliğinden sorumludur,
–Veri tabanını yönetmekten sorumludur,
–Kullanıcılar için erişim profilleri oluştururlar,
–Sistem lisansı, gerekli araçlar ve diğer yazılım ve donanımla ilgili bakım gibi işlere de bakarlar.
- Tasarımcılar;
–Hangi verilerin tutulması gerektiğini belirler,
–Verilerin hangi formatta olması gerektiğini belirler,
–Varlıklar, ilişkiler, kısıtlar ve görünümler kümesini tanımlar ve tasarlarlar.
- Son Kullanıcılar
–Verilerden rapor ve analiz çıktısı alanlardır.
VTYS Mimarisi
- Bir VTYS’nin tasarımı, mimarisine bağlıdır.
- Mimari – yönetimsel açıdan;
–Merkezi, merkezi olmayan veya hiyerarşik olabilir.
- Mimari – katman açısından;
–Tek katmanlı veya çok katmanlı olabilir.
- Bir n katmanlı mimari, tüm sistemi bağımsız olarak değiştirilebilen, güncellenebilen veya yer değiştirilebilen bağımsız modüllerden oluşur.
Tek katmanlı mimari
- Tek katmanlı mimaride, DBMS ve kullanıcı aynı makine üzerindedir.
- Kullanıcının yaptığı değişiklikler doğrudan DBMS’nin kendisinde yapılacaktır.
- Son kullanıcılar için kullanışlı araçlar sağlamaz.
- Veri tabanı tasarımcıları ve programcıları normal olarak tek katmanlı mimariyi kullanmayı tercih ederler.
İki katmanlı mimari
- DBMS mimarisi 2 katmanlı ise, DBMS’e erişilebilecek bir uygulama olmalıdır.
- Programcılar, bir uygulama aracılığıyla DBMS’e eriştikleri 2 katmanlı mimariyi kullanır.
- Burada uygulama katmanı, işlem, tasarım ve programlama açısından veri tabanından tamamen bağımsızdır.
Üç katmanlı mimari
- Veri tabanı (Veri) Katmanı – Bu katmanda veri tabanı, sorgu işleme dilleriyle birlikte bulunur. Ayrıca veriler ve kısıtları da bu adımda yer alır.
- Uygulama (Orta) Katmanı – Bu aşamada uygulama sunucusu ve veri tabanına erişen programlar bulunur. Bir kullanıcı için bu uygulama katmanı, veri tabanının soyut bir görünümünü sunar. Son kullanıcılar, uygulamanın ötesinde veri tabanının varlığından habersizdir.
- Kullanıcı (Sunum) Katmanı – Son kullanıcılar bu katmanda çalışırlar. Bu katmanda, veri tabanının çoklu görünümleri uygulama tarafından sağlanabilir. Tüm görünümler uygulama katmanında bulunan uygulamalar tarafından oluşturulur.
Dağıtık mimari

Transaction nedir?
- Bir veri tabanı yönetim sistemi içinde gerçekleştirilen ve diğer işlemlerden bağımsız olarak tutarlı ve güvenilir bir şekilde ele alınan bir iş birimidir.
- Veri tabanında bir ekleme, güncelleme veya veri düzeltme bir transaction olabilir. Bazen de bir amacı yerine getiren birden çok işlem bir transaction olabilir.
- Bir transactionun başarılı olabilmesi için ACID (atomicity – atomiklik, consistency-tutarlılık, isolation-izolasyon, and durability-dayanıklılık) ilkelerine uyması gerekir.
Atomicity (ya hep ya hiç)
- Transaction işlemini bir bütün olarak görür. İşlem sırasında birden fazla veri tabanı/tablodaki verinin güncellenmesi gerçekleşiyor ise tüm bunların hepsi birden başarılı olacaktır veya başarısız olacaktır.
–Veri tabanları erişilemez olabilir.
–Network problemi olabilir.
–Herhangi bir hata oluşabilir.
- Bu durumda işlem geçersiz sayılacaktır.
Consıstency(Tutarlılık)
- Transaction işlemi sonucunda veri tabanındaki verinin geçerli durumunun, bir sonraki geçerli duruma geçmesidir.
–Özetle Transaction tam anlamı ile gerçekleşince işlemden etkilenen verilerin değerlerinin bir sonraki duruma geçmesidir.
Isolatıon
- Aynı anda aynı veri üzerinde birden fazla Transaction değiştirme gereksinimi olabilir.
–Transaction’lar birbirlerinin işlemlerinden etkilenmemelidir.
–Transaction sırasında ilgili ve etkilenecek veri setleri kilitlenir. Taki işlem başarılı ve başarısız olarak sonuç dönünceye kadar.
Durabılıty(Dayanıklılık)
- Transaction sırasında fiziksel veya işlemsel bir hata olması durumunda sistemin kendisini bir önceki geçerli veri durumuna döndürebilme kabiliyetidir.
Veri modelleri
- Veri modelleri, bir veri tabanının mantıksal yapısının nasıl modelleneceğini tanımlar.
- Veri Modelleri, bir DBMS’de soyutlamayı gösteren temel varlıklardır.
- Veri modelleri, verilerin birbirine nasıl bağlandığını ve bunların sistem içinde nasıl işlendiğini ve depolandığını tanımlar.
Hiyerarşik model
- 1960’lı yıllarda ilk olarak geliştirilen veri model hiyerarşik modeldir.
- Hiyerarşik model verileri bir ağaç yapısında organize eder.
–Modelde ebeveyn ve evlat veri segmentleri hiyerarşisi vardır.
–Ebeveynler kayıtları evlatlar nitelikleri sunar.
–Dolayısıyla evlat veri segmentleri ebeveyn veri segmentlerine dayalı olarak oluşturulabilir.
Ağ modeli
- Bu modelde veriler arasındaki bağıntı bir ağ yapısı yardımıyla kurulur ve yine bu ağ yapısı sayesinde verilere bağlantılı erişim sağlanır.
- Ağ modelinde temel veri yapısı küme (set) olarak bilinir.
–Bir küme; bir kurucu kayıt tipi, küme ismi ve üye kayıt tipi ile tanımlanır. Her üye kayıt birden fazla küme içinde rol alabilir ve her kayıt birden fazla kurucu kayıta bağlı olabilir.
–Ek olarak bir kurucu kayıt da başka bir kurucu kayıtın üyesi olabilir.
- Hiyerarşik model ile ayrıştığı nokta hiyerarşik modelde alttaki düğümler üsttekilerden sadece birine bağlı iken ağ modeli daha esnektir. Daha fazla üst düğüme bağlı olup daha fazla düğümden özellik alabilirler.
İlişkisel model
- Hiyerarşik ve ağ veri modellerinin üzerine ilişkisel veri modeli inşa edilmiştir. İlişkisel veri modeli iki boyutlu tablolar şeklinde görselleştirilebilir. Günümüzde kullanılmakta olan veritabanlarının çoğu bu modele uygun olarak çalışmaktadır.
- Tablo adı ve sütun adları, her satırdaki değerlerin anlamını yorumlamak için faydalıdır.
- İlişkisel modelde, veriler tablo olarak saklanır.
–Bununla birlikte, verilerin fiziksel olarak depolanması, verilerin mantıksal olarak düzenlenme şeklinden bağımsızdır.
Nesne ilişkisel model
- Nesne ilişkisel veri modeli ilişkisel veri modeli özelliklerinin üzerine nesneye dayalı kavramların desteklendiği bir veri modelidir.
–Daha esnek veri tipi tanımlama, daha kolay erişim gibi ek özelliklere sahiptir.
Veri tabanı örneği (Instant)
- Veri tabanı şeması veri tabanının iskeletidir. Bütün tanımlamaları içerir fakat veri içermez.
- Veri tabanı örneği ise veri tabanının mevcut haldeki bütün verilerinin bir kopyasını ifade eder.
Uygulama
Veritabanı oluştur
- Create Database hayalindeki
- Drop Database yazilim
Tablo oluştur
CREATE TABLE hayal
(
id integer primary key,
name char(15),
description char(30),
size char(18),
color char(6),
quantity integer,
unit_price numeric(15,2)
)
Veri girişi yap
INSERT INTO hayal (id, name, description, size, color, quantity, unit_price)
VALUES (123, ‘deneme’, ‘deneme açıklama’, ’orta’, ’red’, 5, 14.5)
Veri düzeltme yap
UPDATE hayal SET unit_price=30
WHERE id=123
Veri sil
DELETE FROM hayal
Veya
DELETE FROM hayal WHERE id=123
Veri listele
- SELECT * FROM hayal