Veritabanı Dünyasına Giriş
Merhaba! Bu kursta SQL kullanarak veriye soru sormayı, tablolardan bilgi çekmeyi ve basit raporlar hazırlamayı öğreneceksin. Daha önce hiç veritabanı görmemiş olman hiç sorun değil; bu ilk derste en temel kavramları, günlük hayattan örneklerle, sıfırdan ve yavaşça anlatacağız. Hazırsan başlayalım.
Bu derste ne yapacağız?
Bu dersin hedefi, veritabanı, tablo, satır ve sütun kavramlarının ne anlama geldiğini net biçimde anlamak. Bu dersi tamamladığında bir veritabanının içinde neyin nasıl saklandığını gözünde canlandırabilecek, tablo yapısına bakınca hangi bilginin nerede tutulduğunu ayırt edebileceksin. Bu, serinin ilk dersi olduğu için herhangi bir ön koşul yok; hiçbir önceki bilgiye ihtiyacın yok. Sadece merak ve biraz zaman yeterli.
Kavram
Veritabanı nedir? En basit tanımıyla veritabanı, bilgilerin düzenli biçimde saklandığı bir depodur. Bunu büyük ve düzenli bir dolap gibi düşünebilirsin. Dolabın içinde farklı çekmeceler vardır; her çekmece belirli bir tür eşyayı tutar. İşte bu çekmecelerin her biri, veritabanı dünyasında tablo olarak adlandırılır.
Bir okulun öğrenci kayıt sistemini düşünelim. Bu sistemde muhtemelen bir "Öğrenciler" tablosu, bir "Dersler" tablosu ve bir "Notlar" tablosu olur. Her tablo, kendi konusuyla ilgili bilgiyi düzenli bir biçimde tutar. Tıpkı bir dolaptaki çekmecelerin farklı eşyalar için ayrılmış olması gibi, her tablo da farklı bir bilgi türü için ayrılmıştır.
Şimdi bir tabloyu daha yakından inceleyelim. Bir tablo, aslında bir Excel sayfasına çok benzer. Satır ve sütunlardan oluşan bir ızgara (grid) düşün. Bu ızgarada:
- Sütun, bir bilginin türünü veya kategorisini belirtir. Örneğin "Öğrenciler" tablosunda "Ad", "Soyad", "Doğum Tarihi" gibi sütunlar olabilir. Her sütun, o tablodaki her kayıt için aynı tür bilgiyi tutar.
- Satır ise tek bir kaydı, yani tek bir gerçek örneği temsil eder. Örneğin "Öğrenciler" tablosunda her satır, tek bir öğrenciye ait bilgileri barındırır. Bir satırda o öğrencinin adı, soyadı ve doğum tarihi bir arada bulunur.
Bunu bir sınıf listesi gibi düşünebilirsin. Listenin en üstünde başlıklar vardır: "Ad", "Soyad", "Numara". Bu başlıklar sütunlardır. Listedeki her satır ise tek bir öğrenciyi gösterir; o öğrencinin adı, soyadı ve numarası o satırda yan yana yazılıdır. Aşağıdaki tablo bu fikri somutlaştırıyor:
| Öğrenci No | Ad | Soyad | Sınıf |
|---|---|---|---|
| 101 | Ayşe | Yılmaz | 5-A |
| 102 | Mehmet | Demir | 5-B |
| 103 | Zeynep | Kaya | 5-A |
Bu tabloda dört sütun var: "Öğrenci No", "Ad", "Soyad" ve "Sınıf". Her sütun farklı bir bilgi türünü temsil ediyor. Tabloda üç satır var; her satır tek bir öğrenciye ait tüm bilgileri bir arada gösteriyor. Örneğin ikinci satır, Mehmet Demir adlı öğrencinin bilgilerini taşıyor: numarası 102, soyadı Demir, sınıfı 5-B.
Peki bir veritabanı neden sadece tek bir büyük tablo yerine birden fazla tablo kullanır? Çünkü farklı bilgi türlerini karıştırmak düzensizliğe yol açar. Okul örneğine dönersek, öğrenci bilgilerini ve ders notlarını aynı tabloda tutmaya çalışsaydık, her öğrencinin aldığı her ders için satırı tekrar tekrar yazmamız gerekirdi; bu hem karışık hem de hataya açık olurdu. Bunun yerine "Öğrenciler" tablosunda öğrenci bilgilerini, "Notlar" tablosunda ise hangi öğrencinin hangi dersten kaç aldığını ayrı ayrı tutarız. Bu tablolar daha sonra birbirine bağlanabilir; bu bağlama işini ileride SQL dersinde öğreneceğiz.
Şunu da belirtmek gerekir: Gerçek dünyada kullanılan veritabanı yazılımlarının (bunlara veritabanı yönetim sistemi denir) arayüzleri birbirinden farklı olabilir ve sürümden sürüme değişebilir. Bu kursta arayüz üzerinden ekran görüntüsü göstermek yerine kavramları ve mantığı anlatacağız; ileride bir program açtığında gördüğün menüler burada anlatılanlardan biraz farklı görünebilir, ama temel mantık hep aynı kalır: veritabanı, içinde tablolar barındıran bir depo; tablo, satır ve sütunlardan oluşan bir ızgara; satır, tek bir kayıt; sütun ise bir bilgi türüdür.
Adım adım uygulama
Bu derste henüz bir bilgisayar programı açmayacağız; amacımız kavramları zihninde netleştirmek. Bunun için küçük bir "kâğıt üzerinde veritabanı tasarımı" alıştırması yapalım.
- Aklına bir konu getir: Bu bir kütüphane, bir market, bir spor kulübü veya bir aile arkadaş listesi olabilir.
- Bu konu için hangi "şeyleri" (kayıtları) saklamak istediğini düşün. Örneğin bir kütüphane için "kitaplar" saklanabilir.
- Bu şeylerin hangi özelliklerini bilmek istediğini listele. Bir kitap için: kitap adı, yazar adı, yayın yılı, raf numarası gibi özellikler bunlar olabilir. Bu özellikler, gelecekteki tablonun sütunları olacak.
- Şimdi zihninde üç veya dört örnek kitap düşün ve her biri için bu özelliklerin değerlerini belirle. Her kitap, gelecekteki tablonun bir satırı olacak.
- Son olarak, bu bilgileri kâğıda veya bir not uygulamasına, yukarıdaki öğrenci tablosuna benzer şekilde satır ve sütun düzeninde yaz.
Bu alıştırmayı yaparken şu mantığı hep hatırla: sütun başlıkları "hangi tür bilgiyi tutuyoruz" sorusuna, satırlar ise "kaç farklı kayıt var ve her biri ne" sorusuna cevap verir. Bu basit alışkanlık, ileride SQL sorguları yazarken sana çok yardımcı olacak; çünkü SQL sorgularının çoğu aslında "hangi sütunları görmek istiyorum" ve "hangi satırları görmek istiyorum" sorularına cevap aramaktır.
Sık karşılaşılan sorunlar
| Karşılaşılan zorluk | Açıklama ve çözüm |
|---|---|
| Tablo ile veritabanını karıştırmak | Veritabanı, birden fazla tabloyu içinde barındıran büyük bir depodur; tablo ise bu deponun içindeki tek bir çekmecedir. Bir veritabanında genellikle birden fazla tablo bulunur. |
| Satır ile sütunu karıştırmak | Sütunlar dikey, satırlar yataydır. Sütun bir bilgi türünü (örneğin "Ad"), satır ise tek bir kaydın tüm bilgilerini (örneğin bir öğrencinin tüm verileri) temsil eder. Bir tabloya bakarken önce en üstteki başlık satırına bak; onlar sütun adlarıdır. |
| Her bilgiyi tek bir tabloya sıkıştırmaya çalışmak | Farklı konulara ait bilgileri tek tabloda tutmak karışıklık yaratır. Konuya göre ayrı tablolar oluşturmak (öğrenciler, dersler, notlar gibi) daha düzenli bir yapı sağlar. |
| Boş bir hücrenin ne anlama geldiğini bilmemek | Bir satırda bazı sütunlar boş kalabilir; bu, o bilginin henüz girilmediği veya o kayıt için geçerli olmadığı anlamına gelir. Bu durum ileride "eksik veri" konusunda daha ayrıntılı ele alınacaktır. |
Mini görev
Şimdi öğrendiklerini kendi başına uygulama zamanı. Aşağıdaki adımları takip ederek kendi küçük "tablo tasarımını" oluştur:
- Bir konu seç: kendi müzik listen, favori filmlerin, evindeki eşyalar veya arkadaş grubun olabilir.
- Bu konu için bir tablo adı belirle (örneğin "Filmlerim").
- En az üç sütun adı belirle (örneğin "Film Adı", "Yönetmen", "Çıkış Yılı").
- En az üç satır (üç farklı kayıt) oluştur ve her sütun için gerçek bir değer yaz.
- Sonucu, yukarıdaki öğrenci örneğine benzer şekilde bir tablo düzeninde kâğıda veya not uygulamasına yaz.
Kontrol listesi:
- Tablomun bir adı var mı?
- En az üç farklı sütun başlığım var mı ve bunlar birbirinden farklı bilgi türlerini temsil ediyor mu?
- En az üç satırım var mı ve her satır farklı bir kaydı (örneğin farklı bir filmi) temsil ediyor mu?
- Her satırdaki her sütun hücresine bir değer yazdım mı (ya da bilinçli olarak boş bıraktım mı)?
- Sütun başlıklarını satırlarla karıştırmadan, başlıkları en üste yazdım mı?
Kendini sına
1. Bir veritabanı ile tablo arasındaki temel fark nedir?
2. Aşağıdaki ifadelerden hangisi bir "sütun" örneğidir: "Ayşe Yılmaz" mı, yoksa "Ad" mı?
3. Bir tabloda üç satır varsa, bu kaç farklı kaydın saklandığı anlamına gelir?
4. Bir okul veritabanında neden tek bir büyük tablo yerine "Öğrenciler" ve "Notlar" gibi ayrı tablolar kullanmak daha mantıklıdır?
5. Bir tabloda bir hücrenin boş olması ne anlama gelebilir?
Cevaplar
1. Veritabanı, birden fazla tabloyu içinde barındıran büyük bir depodur; tablo ise bu deponun içinde belirli bir konudaki bilgileri tutan tek bir bölümdür (dolap ve çekmece benzetmesi).
2. "Ad" bir sütun örneğidir, çünkü bir bilgi türünü belirtir. "Ayşe Yılmaz" ise bir sütun hücresindeki gerçek bir değerdir, yani bir satırın parçasıdır.
3. Üç satır, o tabloda üç farklı kaydın (üç farklı gerçek örneğin) saklandığı anlamına gelir.
4. Çünkü farklı konulara ait bilgileri (öğrenci kimlik bilgileri ile ders notları gibi) aynı tabloda tutmak tekrarlara ve karışıklığa yol açar; ayrı tablolar kullanmak veriyi düzenli tutar ve ileride tabloları birbirine bağlayarak esnek sorgular yazmayı mümkün kılar.
5. Boş bir hücre, o bilginin henüz girilmediğini veya o kayıt için geçerli/mevcut olmadığını gösterebilir.
Bu dersi kayıt olmadan izleyebilirsin. İlerlemeni kaydetmek, sertifika almak ve puan tablosuna girmek için ücretsiz üye ol: Kayıt Ol