İçeriğe geç
Educora
İleri10. sınıf22 dk38 / 59

Veri tabanı: modeller, VTYS ve ilişkili tablolar

Veri tabanı ve VTYS, hiyerarşik, ağ ve ilişkisel modeller, alan, kayıt ve anahtar alan, 1:1, 1:N ve M:N ilişkiler — ve DİM tipi soru: 2–3 ilişkili tablodan sayı veya toplam bulmak.

Kendini test et
Bu derste öğreneceklerin
  • 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

Tanım
Veri tabanı

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.

Tanım
Veri tabanı yönetim sistemi (VTYS)

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:

NesneNe işe yararÖrnek
Tabloverileri satır ve sütunlarda saklar; veri tabanının temelidir«Okuyucular», «Kitaplar»
Sorgukoşula uyan kayıtları seçer, sıralar, hesaplarNizami Caddesi’nde oturan okuyucular
Formveri girişi ve görüntüleme için kullanışlı pencereyeni okuyucu kayıt formu
Raporverileri yazdırmaya hazır, gruplanmış ve toplamlı bir belge olarak sunarbir ayda verilen kitapların listesi ve sayısı
Kodlu soru: eşleştirme

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
Access ve PostgreSQL veri tabanlarını yönetir; GIMP ve Photoshop piksellerden oluşan (raster) resimleri düzenler; LibreOffice Writer bir kelime işlemcidir. Bir maddeye birkaç harf karşılık gelebilir.
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:

ModelYapısıÖrnek
Hiyerarşikağaç: tepede tek kök, her öğenin yalnızca bir «ebeveyni» vardisk → 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şkiselortak 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

Tanım
Alan

Tablonun sütunu. Nesnenin bir özelliğini saklar (Okuyucu, Cadde). Her alanın bir adı ve türü vardır.

Tanım
Kayıt

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.

Tanım
Anahtar alan

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
Metinharfler, rakamlar, işaretlerad, cadde, telefon numarası
Sayıhesaplamada kullanılan sayılarsayfa sayısı, puan
Tarih/saattarih ve saat15.09.2025
Para birimipara tutarları12,50 ₼
Otomatik sayıher yeni kayda otomatik verilen artan numara1, 2, 3, …
Evet/Hayır (mantıksal)iki değerden biri: evet / hayırkitap iade edildi mi?
Alanlar, kayıtlar ve anahtar

«Öğ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
1) Alan = sütun: 5 alan. Kayıt = başlığın altındaki satır: 7 kayıt (başlık satırı sayılmaz).
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.
OkuyucularKart_NoOkuyucuCaddeKitaplarKitap_IDYazarSayfaÖdünç alma№Kart_NoKitap_ID1N1N
Okuyucular ile kitaplar arasındaki M:N ilişki, «Ödünç alma» tablosuyla iki 1:N ilişkiye bölünür. Anahtar alanlar mor renkle gösterilmiştir.

«Ö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.

Etkileşimli
Simülasyon yükleniyor…
Kendini dene: her çifti doğru gruba bırak ve «Kontrol et» düğmesine bas.

İ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.

  1. 1
    Soruyu çözümle

    Ne isteniyor (sayı, toplam, ad) ve hangi koşullar var (cadde, yazar, sınıf)?

  2. 2
    Koşulları anahtarlara çevir

    Her koşul için kendi tablosunda uyan anahtarları seç ve küme olarak yaz, örneğin {A1, A3, A5}.

  3. 3
    Bağlantı tablosunu süz

    Yalnızca iki kümeye de uyan satırları işaretle.

  4. 4
    İşlemi yap

    Satırları say (kaç kez), farklı kişileri say (kaç kişi) ya da gereken sütunu topla.

  5. 5
    Kontrol et

    Tekrarlanan satırlar ayrı sayıldı mı? Soru «kaç kez» miydi, «kaç kişi» mi?

Kart_NoOkuyucuCadde
A1AyselNizami Caddesi
A2MuradFuzuli Caddesi
A3LeylaNizami Caddesi
A4ElvinSamed Vurgun Caddesi
A5NigarNizami Caddesi
A6ReşatFuzuli Caddesi
Tablo 1. Okuyucular
Kitap_IDYazarSayfa
11Nizami Gencevi320
12Jules Verne280
13Nizami Gencevi240
14Mirza Fetali Ahundov150
15Jules Verne410
Tablo 2. Kitaplar
№Kart_NoKitap_ID
1A112
2A211
3A315
4A115
5A412
6A513
7A312
8A615
9A111
10A512
11A315
12A214
Tablo 3. Ödünç alma
DİM tipi soru: kaç kez?

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
1) Tablo 1: Nizami Caddesi → {A1, A3, A5}.
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.
Toplam: sayfa sayısı

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
1) Tablo 1: Leyla → A3.
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.
Python
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
Aynı soru Python’da: koşullar kümelere dönüşür, sonra bağlantı tablosunun satırları süzülür. Bir değeri değiştir ve «Çalıştır»a bas. SQL’de bunu JOIN yapar — bkz. «JOIN: tabloları birleştirme».
Tuzak: «10. sınıflar»

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
1) «10. sınıflar» 10a, 10b ve 10c’dir, yani Sınıf_ID ∈ {2, 3, 5}. Yalnızca 10a’yı almak en sık yapılan hatadır.
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.

1 / 12
VTYS nedir?