- Veri tabanını, VTYS’yi ve VTYS nesnelerini (tablo, sorgu, form, rapor) ayırt etmek
- Hiyerarşik, ağ ve ilişkisel modelleri örnekten tanımak
- Bir tabloda alanları, kayıtları ve anahtar alanı bulmak, ilişkinin türünü (1:1, 1:N, M:N) belirlemek
- İlişkili tablolarla ilgili DİM tipi soruları adım adım çözmek
Okul kütüphanesinde bin kitap ve yüzlerce okuyucu var. Kütüphaneci «bu ay kim hangi kitabı aldı?» sorusunu birkaç saniyede yanıtlıyor, çünkü bilgiler defterde değil, veri tabanında tutuluyor. Elektronik okul sistemleri, banka hesapları ve çevrim içi mağaza kataloğu da böyle çalışır.
Giriş sınavının bilişim bölümünde 2025–2026 yıllarının her kitapçığında veri tabanıyla ilgili 2 soru vardı: biri sorgu, diğeri ilişkili tablolar üzerine. Bu derste kavramları ve ilişkili tablo sorularının çözüm yöntemini, sonraki derste — «Veri tabanında sorgular, arama ve sıralama» — sorguları öğreneceksin.
Veri tabanı ve VTYS
Belirli bir konuya ait, önceden düşünülmüş kurallara göre düzenlenmiş ve bilgisayarda saklanan veriler topluluğu. Kurallar sayesinde gereken bilgi hızla bulunur, eklenir ve değiştirilir.
Veri tabanı oluşturmayı, doldurmayı, düzenlemeyi, içinde arama ve sıralama yapmayı, verileri korumayı sağlayan program. Örnekler: Microsoft Access, LibreOffice Base, MySQL, PostgreSQL, SQLite, Oracle Database, Microsoft SQL Server.
Farkı aklında tut: veri tabanı verilerin kendisidir (kütüphane kataloğu), VTYS ise onlarla çalışan araçtır (kataloğu tutan kütüphaneci). Yazılım sınıflandırmasında VTYS uygulama yazılımıdır. Bir DİM eşleştirme sorusunda Yukon da VTYS olarak verilmişti: bu, Microsoft SQL Server 2005’in kod adıdır. VTYS’nin dört temel nesnesi vardır:
| Nesne | Ne işe yarar | Örnek |
|---|---|---|
| Tablo | verileri satır ve sütunlarda saklar; veri tabanının temelidir | «Okuyucular», «Kitaplar» |
| Sorgu | koşula uyan kayıtları seçer, sıralar, hesaplar | Nizami Caddesi’nde oturan okuyucular |
| Form | veri girişi ve görüntüleme için kullanışlı pencere | yeni okuyucu kayıt formu |
| Rapor | verileri yazdırmaya hazır, gruplanmış ve toplamlı bir belge olarak sunar | bir ayda verilen kitapların listesi ve sayısı |
Eşleştirin.
1. Veri tabanı yönetim sistemi
2. Raster grafik düzenleyicisi
3. Kelime işlemci
a. Microsoft Access b. GIMP c. LibreOffice Writer d. PostgreSQL e. Adobe Photoshop
Çözümü gösterÇözümü gizle
Cevap: 1 – a, d; 2 – b, e; 3 – c.
Veri modelleri
Veri modeli, verilerin ve aralarındaki bağlantıların nasıl düzenlendiğini gösteren yapıdır. Programda üç klasik model yer alır:
| Model | Yapısı | Örnek |
|---|---|---|
| Hiyerarşik | ağaç: tepede tek kök, her öğenin yalnızca bir «ebeveyni» var | disk → klasör → alt klasör → dosya; okul → sınıflar → öğrenciler |
| Ağ | graf: bir öğe birçok öğeyle bağlı olabilir ve birden çok «ebeveyni» olabilir | öğretmenler ve sınıflar: her öğretmen birkaç sınıfta, her sınıfta birkaç öğretmen |
| İlişkisel | ortak alanlarla bağlanan iki boyutlu tablolar kümesi | «Okuyucular», «Kitaplar», «Ödünç alma» tabloları |
Bugün en yaygın model ilişkisel modeldir: yukarıda adı geçen VTYS’lerin hepsi tablolarla çalışır. Ağaçlar ve graflar «Ağaç bilgi modeli» ve «Graf bilgi modeli: komşuluk matrisi ve yol sayısı» derslerinde ayrıntılı anlatılır.
Tablo: alan, kayıt ve anahtar alan
Tablonun sütunu. Nesnenin bir özelliğini saklar (Okuyucu, Cadde). Her alanın bir adı ve türü vardır.
Tablonun satırı: bir nesneyle ilgili tüm bilgiler (bir okuyucu, bir kitap). Alan adlarının yazıldığı başlık satırı kayıt sayılmaz.
Değeri hiçbir iki kayıtta tekrarlanmayan ve bu yüzden kaydı tek başına belirleyen alan (birincil anahtar): Kart_No, Kitap_ID. Başka bir tabloda bu anahtarın değerlerini tutan alana yabancı anahtar denir.
| Alan türü | Ne saklar | Örnek |
|---|---|---|
| Metin | harfler, rakamlar, işaretler | ad, cadde, telefon numarası |
| Sayı | hesaplamada kullanılan sayılar | sayfa sayısı, puan |
| Tarih/saat | tarih ve saat | 15.09.2025 |
| Para birimi | para tutarları | 12,50 ₼ |
| Otomatik sayı | her yeni kayda otomatik verilen artan numara | 1, 2, 3, … |
| Evet/Hayır (mantıksal) | iki değerden biri: evet / hayır | kitap iade edildi mi? |
«Öğrenciler» tablosunun başlık satırında 5 alan adı var: ID, Ad, Soyad, Sınıf, Doğum tarihi; altında 7 satır dolu. 1) Tabloda kaç alan ve kaç kayıt var? 2) Hangi alan anahtar olabilir? 3) «Doğum tarihi» alanının türü nedir?
Çözümü gösterÇözümü gizle
2) Ad, soyad, sınıf, hatta doğum tarihi iki öğrencide aynı olabilir. Her öğrenciye verilen ID asla tekrarlanmaz; anahtar alan ID’dir.
3) Tarih/saat türü.
Tablolar arasındaki ilişkiler
Her şeyi tek bir tabloya yazsaydık Aysel her kitap aldığında caddesi de yeniden yazılırdı: bu yer kaplar ve hataya yol açar, çünkü adres değişince onlarca satırda düzeltmek gerekir. Bu yüzden her nesne türü kendi tablosunda tutulur, tablolar da anahtar alanlarla bağlanır. Üç tür ilişki vardır:
- Bire bir (1:1): ilk tablonun bir kaydına ikincinin en fazla bir kaydı karşılık gelir — vatandaş ve kimlik kartı.
- Bire çok (1:N): ilk tablonun bir kaydına ikincinin birçok kaydı karşılık gelir, tersi ise yalnızca bir — sınıf ve öğrencileri.
- Çoka çok (M:N): iki taraftan da çok — okuyucular ve kitaplar. İlişkisel veri tabanında bu ilişki üçüncü bir bağlantı tablosuyla kurulur: onda iki tablonun anahtarları yabancı anahtar olarak durur ve M:N ilişki iki 1:N ilişkiye dönüşür.
«Ödünç alma» tablosunun her satırı bir olaydır: «bu okuyucu bu kitabı aldı». Aynı okuyucu ya da kitap birkaç satırda görünebilir; bunlar tekrar değil, ayrı ödünç almalardır.
İlişkili tablolarla DİM tipi sorular
Soruda 2–3 ilişkili tablo verilir ve sorulur: kaç kez, kaç kişi, ID’lerin toplamı, günlerin toplamı. VTYS bunu tek bir sorguyla yapar, sınavda ise elle yapmak gerekir. En güvenilir yol, anahtarları küme olarak yazmaktır.
- 1Soruyu çözümle
Ne isteniyor (sayı, toplam, ad) ve hangi koşullar var (cadde, yazar, sınıf)?
- 2Koşulları anahtarlara çevir
Her koşul için kendi tablosunda uyan anahtarları seç ve küme olarak yaz, örneğin {A1, A3, A5}.
- 3Bağlantı tablosunu süz
Yalnızca iki kümeye de uyan satırları işaretle.
- 4İşlemi yap
Satırları say (kaç kez), farklı kişileri say (kaç kişi) ya da gereken sütunu topla.
- 5Kontrol et
Tekrarlanan satırlar ayrı sayıldı mı? Soru «kaç kez» miydi, «kaç kişi» mi?
| Kart_No | Okuyucu | Cadde |
|---|---|---|
| A1 | Aysel | Nizami Caddesi |
| A2 | Murad | Fuzuli Caddesi |
| A3 | Leyla | Nizami Caddesi |
| A4 | Elvin | Samed Vurgun Caddesi |
| A5 | Nigar | Nizami Caddesi |
| A6 | Reşat | Fuzuli Caddesi |
| Kitap_ID | Yazar | Sayfa |
|---|---|---|
| 11 | Nizami Gencevi | 320 |
| 12 | Jules Verne | 280 |
| 13 | Nizami Gencevi | 240 |
| 14 | Mirza Fetali Ahundov | 150 |
| 15 | Jules Verne | 410 |
| № | Kart_No | Kitap_ID |
|---|---|---|
| 1 | A1 | 12 |
| 2 | A2 | 11 |
| 3 | A3 | 15 |
| 4 | A1 | 15 |
| 5 | A4 | 12 |
| 6 | A5 | 13 |
| 7 | A3 | 12 |
| 8 | A6 | 15 |
| 9 | A1 | 11 |
| 10 | A5 | 12 |
| 11 | A3 | 15 |
| 12 | A2 | 14 |
Tablo 1–3’e göre Nizami Caddesi sakinleri Jules Verne’in kitaplarını toplam kaç kez almıştır?
A) 4 B) 5 C) 6 D) 3 E) 7
Çözümü gösterÇözümü gizle
2) Tablo 2: Jules Verne → {12, 15}.
3) Tablo 3’te iki koşula da uyan satırlar: 1 (A1, 12), 3 (A3, 15), 4 (A1, 15), 7 (A3, 12), 10 (A5, 12), 11 (A3, 15).
4) Soru «kaç kez» olduğu için satırları sayarız: 6. (Leyla 15 numaralı kitabı iki kez almış; bunlar iki ayrı ödünç almadır.)
Doğru cevap: C) 6.
Tablo 1–3’e göre Leyla aldığı kitapların hepsini okuduysa toplam kaç sayfa okumuştur? Her ödünç alma ayrı sayılır.
Çözümü gösterÇözümü gizle
2) Tablo 3: A3 olan satırlar — 3 (kitap 15), 7 (kitap 12), 11 (kitap 15).
3) Tablo 2: 15 → 410 sayfa, 12 → 280 sayfa.
4) 410 + 280 + 410 = 1100 sayfa.
Tuzak: 15 numaralı kitabı bir kez sayarsan 690 çıkar; bu yanlıştır.
readers = {'A1': 'Nizami', 'A2': 'Fuzuli', 'A3': 'Nizami',
'A4': 'Vurgun', 'A5': 'Nizami', 'A6': 'Fuzuli'}
books = {11: ('Nizami Ganjavi', 320), 12: ('Jules Verne', 280),
13: ('Nizami Ganjavi', 240), 14: ('Mirza Fatali Akhundov', 150),
15: ('Jules Verne', 410)}
loans = [('A1', 12), ('A2', 11), ('A3', 15), ('A1', 15), ('A4', 12), ('A5', 13),
('A3', 12), ('A6', 15), ('A1', 11), ('A5', 12), ('A3', 15), ('A2', 14)]
nizami = {card for card, st in readers.items() if st == 'Nizami'}
verne = {book for book, (author, pages) in books.items() if author == 'Jules Verne'}
print('Readers:', sorted(nizami), 'Books:', sorted(verne))
times = sum(1 for card, book in loans if card in nizami and book in verne)
print('Loans of Verne books by Nizami St. readers:', times)
pages = sum(books[book][1] for card, book in loans if card == 'A3')
print('Pages read by A3 (Leyla):', pages)▸ Beklenen çıktı
Readers: ['A1', 'A3', 'A5'] Books: [12, 15] Loans of Verne books by Nizami St. readers: 6 Pages read by A3 (Leyla): 1100
Sınıflar (Sınıf_ID — sınıf adı): 1 — 9a, 2 — 10a, 3 — 10b, 4 — 11a, 5 — 10c.
Öğrenciler (ad — Sınıf_ID — boy): Kamran — 2 — 172 cm, Fidan — 4 — 168 cm, Tural — 3 — 181 cm, Sebine — 5 — 165 cm, Orhan — 1 — 175 cm, Günay — 3 — 169 cm, Kenan — 5 — 177 cm.
10. sınıflarda boyu 170 cm’den uzun kaç öğrenci vardır?
Çözümü gösterÇözümü gizle
2) Bu sınıfların öğrencileri: Kamran (172), Tural (181), Sebine (165), Günay (169), Kenan (177).
3) 170 cm’den uzun: Kamran, Tural, Kenan.
Cevap: 3. (Yalnızca 10a alınsa 1, sınıf koşulu unutulsa 4 çıkar.)
Önemli noktalar
- Veri tabanı verilerin kendisidir; VTYS onlarla çalışan programdır (Access, MySQL, PostgreSQL, SQLite); VTYS uygulama yazılımıdır.
- VTYS nesneleri: tablo saklar, sorgu seçer, form veri girişine yardım eder, rapor yazdırmaya hazırlar.
- Modeller: hiyerarşik — ağaç, ağ — graf, ilişkisel — bağlı tablolar.
- Alan = sütun, kayıt = satır (başlık sayılmaz), anahtar alanın değeri tekrarlanmaz.
- M:N ilişki bir bağlantı tablosuyla iki 1:N ilişkiye bölünür; her satırı bir olaydır ve ayrı sayılır.
- İlişkili tablo sorusu: koşullar → anahtar kümeleri → bağlantı tablosunu süzme → sayı ya da toplam.
Kendini test et
12 soru. Her doğru cevap XP kazandırır.