Veri Tabanı Sistemleri

Prof. Dr. Ahmet Ünal YARIMAĞAN

 

 farkımız, kitaplarımızda

 

 

 

 

 

 

 

 

 

 mürekkep kokulu kitaplarımız

 

ISBN: 978-605-9594-84-4, 12 Eylül 2022'de dağıtıma verilecektir.

3. Basım, 410 sayfa (16,5x24 cm2), 80 gr. 1. hamur kağıt


Veri Tabanı Sistemleri Prof. Dr. Ünal Yarımağan PDF     şimdi satın al


Bu kitabın amacı, bilgisayar mühendisliği ve bilişim eğitimlerinde önemli bir yer tutan veri tabanı sistemlerine ait temel kavramların öğretilmesidir; özellikle de veri tabanı tasarımı, veri tabanı dilleri ve veri tabanı kullanımıyla ilgili bilgiler verilmektedir.

Kitabımızda bol miktarda çözülmüş soru vardır; ayrıca cevapları kitap sonunda verilen çok sayıda soru da verilmiştir. Sorular çoğunlukla ilişkisel şema tasarımı, varlık-bağıntı çizenekleri, işlevsel bağımlılıklar, ilişkisel cebir deyimleri, ilişkisel hesap deyimleri ve SQL sorguları konusunda yoğunlaşmaktadır. Örneklerde ve anlatımlarda varlık-bağıntı çizenekleri UML notasyonuna uygun olarak verilmiştir.

Kitabımızda, kuramsal bilgilere ek olarak çeşitli uygulamalara örnek olması açısından 20 kadar farklı uygulamanın veri tabanının tanımı verilmiştir; ayrıca bu veri tabanları ile ilgili varlık-bağıntı çizeneği oluşturulması, ilişkisel şema tasarlanması ve sorguların ilişkisel cebir, ilişkisel hesap ve SQL deyimleriyle ifade edilmesiyle ilgili ifadeler ve sorular da yer almaktadır.

Kitabımızın en özgün ve farklı yanı da, ülkemizdeki somut uygulama alanlarında gerçek gereksinimler düşünülerek oluşturulmuş çok çeşitli veri tabanlarının tanımları ve bu veri tabanları üzerindeki sorgu ifadeleridir. Kitabımız ciddi öğretim modeli uygulayan üniversitelerin ilgili bölümleri için ciddi bir yardımcı kaynak niteliğindedir.


         


İÇİNDEKİLER

Önsöz

Terimlere Verilen Türkça Karşılıklar

Kısaltmalar

 

Bölüm 1. Tanımlar ve Temel Kavramlar

1.1.   Giriş 

1.2.   Veri Tabanı Yönetim Sisteminin Temel Bileşenleri

1.3.   Veri Tabanı Yaklaşımının Yararları

1.4.   Veri Tabanı ile İlgili Diğer Kavramlar

1.4.1. Kullanıcı Türleri ve Kullandıkları Olanaklar

1.4.2. Soyutlama Düzeyleri ve Veri Bağımsızlığı

1.4.3. Veri Tabanı Yönetim Sistemi için Örnek Bir Mimari

 

Bölüm 2. Varlık ~ Bağıntı Modeli

2.1.   Veri Modelleri ve Varlık~Bağıntı Modeli

2.2.   Varlık~Bağıntı Modelindeki Başlıca Kavram ve Yapılar

2.2.1.  Varlık, Varlık Kümesi ve Nitelikler

2.2.2.  Bağıntı ve Bağıntı Kümesi

2.2.3.  Bağıntı Kümeleri ile İlgili Sınırlamalar ve Bağıntı Türleri

2.2.4.  Anahtarlar ve Güçlü / Zayıf Varlık Kümeleri

2.3.   Genelleme (Generalization) 

2.4.   Kümeleme (Aggregation)

2.5.   Sorular (17 Adet)

 

Bölüm 3. İlişkisel Veri Modeli

3.1.  Temel İlişki Yapısı

3.2.  İlişkilerin Özellikleri

3.2.1.  İlişki Anahtarları

3.2.2.  Şema ve Olgu (Örnek)

 

3.3.  Varlık~Bağıntı Çizeneklerinin İlişki Şemalarına Dönüştürülmesi

3.3.1.  Varlık Kümelerinin Dönüştürülmesi

3.3.2.  Bağıntı Kümelerinin Dönüştürülmesi

3.3.3.   Genellemelerin Dönüştürülmesi

3.3.4.   Kümelemelerin Dönüştürülmesi

3.4.  Diğer Veri Modelleri

3.4.1.  Ağ Veri Modeli

3.4.2.  Sıradüzensel Veri Modeli

3.5.  Sorular (34 Adet)

 

Bölüm 4. Bütünlük Kısıtlamaları ve İlişkisel Tasarım

4.1. Bütünlük Kısıtlamaları

4.2. Alan Kısıtlamaları

4.3. Referans Kısıtlaması

4.4. Nitelikler Arası Bağımlılıklar

4.4.1. İşlevsel Bağımlılık: Temel Kavramlar

4.4.2. İşlevsel Bağımlılık Türleri

4.4.3. İşlevsel Bağımlılıklarla ilgili Tanım, Önerme ve Algoritmalar

4.5.   İlişki Anahtarları

4.6.   İlişkiler İçin Normal Biçimler

4.6.1.   Birinci Normal Biçim (1NF)

4.6.2.   İkinci Normal Biçim (2NF)

4.6.3.   Üçüncü Normal Biçim (3NF)

4.6.4.   Boyce Codd Normal Biçimi (BCNF)

4.7.   İlişkilerin Ayrıştırılması

4.7.1.   Yitimsiz~Birleştirme Ayrıştırması

4.7.2.   Ayrıştırmanın İşlevsel Bağımlılıkları Koruması

4.7.3.   BCNF Ayrıştırma Algoritması

4.7.4.   3NF Ayrıştırma Algoritması

4.7.5.   BCNF ve 3NF Normal Biçimlerinin Karşılaştırılması

4.8.   Çok Değerli Bağımlılık ve Dördüncü Normal Biçim

4.8.1.   Çok Değerli Bağımlılığın Tanımı

4.8.2.   İlişkiler için 4. Normal Biçim (4NF)

4.9. Sorular (67 Adet)

 

Bölüm 5. İlişkisel Cebir

5.1.   İlişkisel Diller

5.2.   Örnek Veri Tabanı I

5.3.   İlişkisel İşlemler

5.3.1.   Seçme İşlemi

5.3.2.   İzdüşüm İşlemi

5.3.3.   Birleşim İşlemi

5.3.4.   Kesişim İşlemi

5.3.5.   Küme Fark İşlemi

5.3.6.   Karteziyen Çarpım İşlemi

5.3.7.   Birleştirme İşlemi

5.3.8.   Doğal Birleştirme İşlemi

5.3.9.   Bölme İşlemi

5.4.   Aktarma İşlemi ve Ara İlişkilerin Adlandırılması

5.5.   İlişkisel İşlemlerle Sorgu Örnekleri

5.6.   Sorular (10 Adet)

 

Bölüm 6. İlişkisel Hesap

6.1.  Niceleme Mantığı

6.1.1.   Varlıksal Niceleyici ve Varlıksal Önerme

6.1.2.   Tümel Niceleyici ve Tümel Önerme

6.1.3.   Niceleyicilerin Değillenmesi ve Dağılması

6.1.4.   Birden Çok Niceleyicinin Birlikte Kullanılması

6.2.   İlişkisel Hesap Deyimi

6.3.   Yalın Bir İlişkisel Hesap Dili

6.3.1.   RANGE Deyimi

6.3.2.   GET Deyimi

6.4    İlişkisel Hesap Deyimleri İle Sorgu Örnekleri (20 adet)

6.5.   Sorular (8 Adet)

 

Bölüm 7. SQL ~ Standart İlişkisel Dil

7.1.   Veri Tanımlama Olanakları

7.1.1.   CREATE DOMAIN Deyimi

7.1.2.   CREATE TABLE Deyimi

7.1.3.   CREATE VIEW Deyimi

7.2.   Veri İşleme Olanakları

7.2.1.   SELECT Deyimi

7.2.2.   UPDATE Deyimi

7.2.3.   INSERT Deyimi

7.2.4.   DELETE Deyimi

7.3.   SQL Sorgu Örnekleri (45 Adet)

7.3.1.   Yalın Sorgular

7.3.2.   Çok Düzeyli Sorgular

7.3.3.   Seçme Listesinde Deyim ve İşlev Kullanılması

7.3.3.   Gruplandırma Gerektiren Sorgular

7.4.  Sorular (20 Adet)

 

Bölüm 8. Nesneye Yönelik Veri Tabanı

8.1.   Veri Tabanı Sistemlerinin Gelişmesi

8.2.   Nesneye Yönelik Paradigma

8.3.   Nesneye Yönelik Veri Modelinin Özellikleri

8.3.1.   Nesne Kimliği

8.3.2.   Karmaşık Nesneler

8.3.3.   Türler ve Sınıflar

8.3.4.   Kalıtım

8.4.   Nesneye Yönelik Şema Örneği

8.5.   Nesneye Yönelik Dil Özellikleri

8.5.1.   Sarmalama

8.5.2.   Birden Çok Anlam Yükleme, Üstünlük Sağlama ve Geç Bağlanma

8.5.3.   Anlık Sorgu

8.5.4.   Hesaplama Yetkinliği

8.5.5.   Sürüm Yönetimi

8.5.6.   Genişleyebilirlik

8.5.7.   Genel Özellikler

8.6.   Sorgu Örnekleri    (26 Adet)

8.6.1.   Nesnelere Erişim Sorgu Örnekleri

8.6.2.   Birleştirme İşlemleri Sorgu Örnekleri

8.6.3.   Yöntemlerin Kullanılması

8.6.4.   Sınıf Sıradüzeninin Etkileri

8.6.5.   Referansların Ters Yönde Kullanılması Örnekleri

8.6.6.   Alt-kümelerin Tanımlanması ve Değişik İşlemleri

8.7.   Sorular (3 Adet)

 

Bölüm 9. Gerçekleştirim Teknikleri 

9.1.   Sorgu İşleme ve Eniyileme

9.1.1.   Cebirsel Eşdeğerlikler

9.1.2.   Buluşsal Eniyileme Algoritması

9.1.3.   İlişkisel Cebir İşlemlerinin Gerçekleştirimi

9.1.4.   Sorgu Eniyileme İçin Bedel Kestirimleri

9.2.   Hareket kavramı

9.2.1.   Hareket Durumları

9.3.   Hareketlerin Birlikte İşletilmesi

9.3.1.   Serileştirilebilir İşletim Planı

9.3.2.   Kurtarılabilir İşletim Planı

9.4.   Birliktelik Denetimi

9.4.1.   İki-Evreli Kilitleme Protokolü

9.4.2.   Kilitlenmeler

9.5.   Kurtarma Teknikleri

9.5.1.   Günlük Kütüğü (Log File)

9.5.2.   Hareketin Geri Alınması

9.5.3.   Ertelemeli Günleme Tabanlı Kurtarma Teknikleri

9.5.4.   Anında Günleme Tabanlı Kurtarma Teknikleri

9.5.5.   Gölge Sayfalama Tekniği

9.6.   Veri Tabanı Güvenliği

9.7.   Sorular (6 Adet)

 

Bölüm 10. Yeni Teknolojiler ve Yeni Uygulamalar

10.1.    Dağıtımlı Veri Tabanları

10.1.1. Verinin Dağıtılması

10.1.2. Dağıtımlı Sorgu İşleme

10.1.3. Dağıtımlı Ortamda Hareket Yönetimi

10.2.    Etkin Veri Tabanları

10.3.    Çıkarımsal Veri Tabanları

10.4.    Veri Ambarı

10.5.    Veri Madenciliği

10.6.    Gelişen Teknolojiler ve Uygulamalar

10.6.1. Web Üzerinden Veri Tabanlarına Erişim

10.6.2. Çoklu Ortam Veri Tabanları

10.6.3. Hareketli Veri Tabanları

10.6.4. Coğrafi Bilgi Sistemleri

10.6.5. Sayısal Kitaplıklar

 

Seçilmiş Soruların Çözümleri

Bölüm 2 Sorularından Çözümler 

Bölüm 3 Sorularından Çözümler

Bölüm 4 Sorularından Çözümler

Bölüm 5 Sorularından Çözümler

Bölüm 6 Sorularından Çözümler

Bölüm 7 Sorularından Çözümler

Bölüm 8 Sorularından Çözümler

Bölüm 9 Sorularından Çözümler

Seçilmiş Kaynakça

Yazarımız ~ Prof. Dr. A. Ünal Yarımağan 

Dizin


         


 

Önsöz.

Genel amaçlı bilgisayarların ilk kullanılmaya başlandığı yıllardan bugüne kadar geçen yaklaşık 40 yıllık sürede donanım, yazılım ve iletişim alanlarında çok büyük gelişmeler yaşandı. Bu kapsamda, en çok gelişen ve kullanımı en çok yaygınlaşan alanlardan birisi de veri tabanı sistemleri alanı oldu. Günümüzde, bilişim sistemlerinin en temel ve vazgeçilmez bileşeninin veri tabanı sistemleri olduğunu söyleyebiliriz. Bu kitabın amacı, bilişim ve bilgisayar mühendisliği eğitimlerinde önemli bir yer tutan veri tabanı sistemleri ile ilgili temel kavramların aktarılmasıdır. Aktarılacak kavramlar arasında özellikle veri tabanı tasarımı, veri tabanı dilleri ve veri tabanı kullanımı ile ilgili kavramlar yer almaktadır. Bu arada veri tabanı yönetimi ile ilgili önemli kavramlar da özet olarak aktarılmaya çalışılmıştır.

Kitabın ana kaynağı, Hacettepe Üniversitesi Bilgisayar Mühendisliği Bölümünde okutulmakta olan "Veri Tabanı Sistemleri" dersinin notlarıdır. Bu nedenle kitabın içeriği özellikle bilgisayar mühendisliği bölümlerinde lisans düzeyinde okutulacak bir ders için uygundur. Bunun yanında, lisans ya da yüksek lisans düzeyinde veri tabanı sistemleri konusunda herhangi bir ilk ders için bu kitabın kullanılabileceği düşünülmektedir. Bu kitaptaki tüm konuların, bir yarıyıl süreli bir derste işlenmesi pek uygun görülmemektedir. Bu tür bir derste, kitabın ilk yedi ya da sekiz bölümündeki konuların işlenmesi daha uygundur.

Kitabın özellikle belirli bölümlerinde bol miktarda soru yer almaktadır. Sorular çoğunlukla ilişkisel şema tasarımı, varlık~bağıntı çizenekleri, işlevsel bağımlılıklar, ilişkisel cebir deyimleri,  ilişkisel hesap deyimleri ve SQL sorguları konusunda yoğunlaşmaktadır. Kitapta çeşitli uygulama alanlarıyla ilgili 20 kadar veri tabanının tanımı yer almakta ve bu veri tabanları ile ilgili varlık~bağıntı çizeneği oluşturulması, ilişkisel şema tasarlanması ve sorguların ilişkisel cebir, ilişkisel hesap ya da SQL deyimleri ile ifade edilmesiyle ilgili sorular yer almaktadır. Kitabın en özgün yanının, ülkemizdeki somut uygulama alanlarında, gerçek gereksinimler düşünülerek oluşturulmuş bu veri tabanlarının tanımları ve bu veri tabanları üzerindeki sorgular olduğu düşünülmektedir.

Kitabın Birinci Bölüm'ü veri tabanı sistemlerine genel bir bakış ve konuya giriş niteliğindedir. Bu bölümde genel kavramlar ortaya konulmakta, tanımlar yapılmakta ve veri tabanı yönetim sistemlerin genel yapısı ve bileşenleri sunulmaktadır.

İkinci Bölüm'de, veri modelleri konu edilmekte, veri modeli yaklaşımlarının başlıcaları tanıtılmakta ve varlık~bağıntı modeli ayrıntılı olarak incelenmektedir. Bu bölümün sonunda veri tabanı tasarımı ile ilgili çok sayıda soru yer almaktadır.

Üçüncü Bölüm'de ilişkisel modelin tanımı ve temel kavramları verildikten sonra varlık~bağıntı çizeneklerinin ilişkisel modele dönüştürülmesi incelenmektedir. Bölümün sonunda, geçmişte çok kullanılmış veri modeli yaklaşımları olan sıradüzensel ve ağ yaklaşımları tanıtılmaktadır. Bu bölümün sonunda da veri tabanı tasarımı ile ilgili çok sayıda soru yer almaktadır.

Dördüncü Bölüm'ün konusu bütünlük kısıtlamaları ve ilişkisel tasarımdır. Bu bölümde alan kısıtlamaları, referans kısıtlamaları ve özellikle de nitelikler arası bağımlılık konusu incelenmekte ve konu ile ilgili tanımlar ve algoritmalar verilmektedir. Bölümün sonunda çok sayıda soru yer almaktadır.

Beşinci ve Altıncı Bölümler sırasıyla ilişkisel cebir ve ilişkisel hesap işlemlerine ayrılmıştır. Bölüm sonlarında, sorguların ilişkisel cebir ve ilişkisel hesap deyimleri ile ifade edilmesine ilişkin sorulara yer verilmiştir.

Yedinci Bölüm'ün konusu, ilişkisel veri tabanları için standart bir dil olan SQL dilinin temel özellikleri ile veri tanımlama ve işleme olanaklarıdır. Bölüm sonundaki soruların büçük çoğunluğu da veri tabanı sorgularının SQL diliyle anlatımı ile ilgilidir.

Sekizinci Bölüm'ün konusu nesneye yönelik veri tabanı sistemleridir. Bu bölümde nesneye yönelik yaklaşım ile ilgili temel kavramlar verilmekte ve veri tabanı sistemleri alanında, nesneye yönelik yaklaşımın ilişkisel yaklaşımdan üstün olan yönleri gösterilmeye çalışılmaktadır.

Dokuzuncu Bölüm'de Veri Tabanı Yönetim Sistemi gerçekleştirimi ile ilgili, veri tabanı teknolojileri olarak da bilinen başlıca konular tanıtılmaktadır. Bu bölümde işlenen konular sorgu işleme ve eniyileme, hareket kavramı, hareketlerin birlikte işletilmesi, birliktelik denetimi, kurtarma teknikleri ve veri tabanı güvenliği başlıkları altında toplanmıştır.

Diğer bölümlerde işlenemeyen ve bilinmesinde yarar görülen konular özet olarak Onuncu Bölüm'de ele alınmaktadır. Bu bölümde işlenen konular dağıtımlı veri tabanları, etkin veri tabanları, çıkarımsal veri tabanları, veri ambarı, veri madenciliği ile gelişen teknolojiler ve uygulamalar başlıkları altında toplanmıştır.

Bölüm sonlarında yer alan soruların bir kesiminin yanıtları, Seçilmiş Soruların Çözümleri başlığı altında toplanmış ve kitabın sonuna eklenmiştir. Verilen yanıtların örnek yanıtlar olduğu ve birçok sorunun verilen dışında başka farklı geçerli yanıtlarının da olabileceği unutulmamalıdır.

Kitabın sonunda Seçilmiş Kaynakça'ya yer verilmiştir. Kitaba ait terimler listesinde, kitapta kullanılan başlıca terimlerin İngilizceden~Türkçeye karşılıkları yer almaktadır. Terimlerin Türkçe karşılıkları için çoğunlukla Bilişim Terimleri Sözlüğü'nden [TBD-1996] yararlanılmıştır. Kısaltmalar listesinde de yine konu ile ilgili ve kitabımızda kullanılan kısaltmalar verilmiştir.

Ünal YARIMAĞAN


Kitaplarımızın tüm listesi için buraya tıklayınız.


Papatya Bilim Üniversite Ders Kitapları, Akademik Kitaplar, Bilimsel Kitaplar