← Kursa Dön
📄 Text · 35 min

Veritabanı Nedir? RDBMS Kavramı

Giriş — Neden Bu Konuyu Öğreniyoruz?

Bir an için şunu düşün: telefonundaki rehber uygulamasını açıyorsun. İsimler, telefon numaraları, e-posta adresleri — hepsi düzenli bir şekilde sıralanmış. Bir isim arıyorsun, saniyeler içinde buluyorsun. Peki bu bilgiler nerede tutuluyor? Nasıl bu kadar hızlı bulunuyor? İşte tam bu noktada veritabanı kavramıyla tanışıyoruz.

Günümüzde kullandığın neredeyse her dijital ürün — Instagram, Netflix, bir e-ticaret sitesi, bankanın mobil uygulaması — arka planda bir veritabanı kullanıyor. Sipariş verdiğinde o sipariş bir yere kaydediliyor. Şifreni değiştirdiğinde yeni şifre bir yerde güncelleniyor. Ürün aradığında sonuçlar bir yerden geliyor. İşte o "bir yer" veritabanı.

Bu ders, SQL yolculuğunun ilk adımı. Burada veritabanının ne olduğunu, neden var olduğunu, nasıl çalıştığını ve temel yapı taşlarını öğreneceğiz. Bu temeli sağlam atmadan ileriki derslerdeki sorgular havada kalır.


Veritabanı (Database) Nedir?

En yalın tanımıyla veritabanı, verilerin düzenli ve organize bir şekilde saklandığı yapıdır. Ama bu tanım çok soyut kaldı, somutlaştıralım.

🎯 Analoji: Veritabanını bir kütüphane gibi düşün. Kütüphanede binlerce kitap var ama hepsi rasgele yığılmış değil — bölümlere ayrılmış (Roman, Bilim, Tarih...), her bölümde raflar var, her rafta kitaplar sıralı duruyor. Bir kitap arıyorsan katalog kartına bakıyorsun ve doğrudan gidip alıyorsun. İşte veritabanı da tam olarak bunu yapar: verileri düzenli tutar, hızlıca bulmanı sağlar.

Peki neden verileri düz bir dosyaya (mesela bir Excel dosyasına veya bir .txt dosyasına) yazmıyoruz? Yazabiliriz aslında, ama sorunlar hemen başlar:

Düz Dosya vs Veritabanı

ÖzellikDüz Dosya (Excel, CSV, TXT)Veritabanı
Eş zamanlı erişimBir kişi açınca diğeri açamaz ya da çakışma olurBinlerce kullanıcı aynı anda okuyup yazabilir
Veri tutarlılığıAynı müşteri 3 farklı yerde 3 farklı isimle olabilirKurallar koyarsın, tutarsız veri giremez
Hız1 milyon satırlık Excel'i açmayı dene...Milyarlarca satırda bile saniyeler içinde sonuç
GüvenlikDosyayı açan her şeyi görürKim neyi görebilir, kontrol edersin
Yedekleme & KurtarmaDosya bozulursa? Geçmiş olsunOtomatik yedekleme, crash recovery
İlişkisel sorgulamaÇok zor ve yavaş"Bu müşterin tüm siparişlerini getir" tek satırda

İşte bu yüzden ciddi her uygulama veritabanı kullanır.

Veritabanının Temel Görevleri

Bir veritabanı sisteminin dört temel görevi vardır — bunlara CRUD operasyonları denir:

  1. Create (Oluşturma) — Yeni veri ekleme

  2. Read (Okuma) — Mevcut verileri sorgulama

  3. Update (Güncelleme) — Var olan verileri değiştirme

  4. Delete (Silme) — Verileri kaldırma

Bu dört operasyon, veritabanıyla yapacağın her şeyin temelidir. İlerleyen derslerde bunların her birini detaylıca öğreneceğiz.


Veritabanı Yönetim Sistemi (DBMS) Nedir?

Veritabanı tek başına bir şey yapmaz — ona komut vermen, veri eklemen, sorgulaman gerekir. İşte bu işleri yapan yazılıma Veritabanı Yönetim Sistemi (DBMS — Database Management System) denir.

🎯 Analoji: Veritabanı bir depo ise, DBMS o deponun yönetici yazılımıdır. Depoya malzeme koyma, çıkarma, sayım yapma, güvenliği sağlama — hepsini DBMS yapar. Sen sadece "3 numaralı raftan şu ürünü getir" diyorsun, gerisini o hallediyor.

Yani:

  • Veritabanı = Verilerin kendisi + yapısı

  • DBMS = O verileri yöneten yazılım

Günlük konuşmada ikisi sıklıkla birbiri yerine kullanılır. "MySQL veritabanı" derken aslında "MySQL DBMS'i ile yönetilen veritabanı" kastedilir.


İlişkisel Veritabanı (Relational Database) ve RDBMS

Veritabanlarının birçok türü var: ilişkisel, belge tabanlı (document-based), anahtar-değer (key-value), grafik tabanlı (graph) ve daha niceleri. Bu kursun odak noktası ilişkisel veritabanlarıdır çünkü endüstride en yaygın kullanılan tür budur.

İlişkisel Model Nedir?

İlişkisel model, 1970 yılında IBM'de çalışan Edgar F. Codd tarafından ortaya atıldı. Temel fikir şudur: veriler tablolar (tables) halinde saklanır ve bu tablolar arasında ilişkiler (relationships) kurulur.

🎯 Analoji: Bir e-ticaret sitesi düşün. Müşteriler bir Excel sayfasında, ürünler başka bir sayfada, siparişler başka bir sayfada. Ama siparişler sayfasında "Bu siparişi kim verdi?" sorusunun cevabı, müşteriler sayfasına bir referansla verilir. İşte tablolar arası bu "referans verme" mekanizmasına ilişki (relationship) denir.

RDBMS Nedir?

RDBMS (Relational Database Management System), ilişkisel modeli uygulayan veritabanı yönetim sistemidir. Yani:

  • Verileri tablolar halinde saklar

  • Tablolar arasında ilişkiler tanımlar

  • SQL dilini kullanarak sorgulama yapar

  • Veri bütünlüğünü (data integrity) kurallarla korur

Popüler RDBMS'ler

RDBMSAçıklamaLisans
MySQLDünyanın en popüler açık kaynak RDBMS'i. Web uygulamalarının favorisiAçık kaynak (GPL)
PostgreSQLGelişmiş özelliklere sahip, güçlü açık kaynak RDBMSAçık kaynak (BSD)
Oracle DatabaseKurumsal dünyada çok yaygın, güçlü ama pahalıTicari
Microsoft SQL ServerMicrosoft ekosisteminin veritabanıTicari (Express ücretsiz)
SQLiteDosya tabanlı, kurulum gerektirmeyen hafif RDBMSAçık kaynak (Public domain)
MariaDBMySQL'in fork'u, topluluk tarafından geliştiriliyorAçık kaynak

Bu kursta MySQL syntax'ını temel alacağız çünkü:

  • Öğrenmesi en rahat olanlardan biri

  • Web dünyasında çok yaygın (WordPress, Laravel, Django hepsi destekler)

  • Ücretsiz ve açık kaynak

  • Diğer RDBMS'lere geçiş görece rahat (SQL büyük ölçüde standarttır)

💡 İpucu: PostgreSQL farklılıklarını derslerde not olarak belirteceğiz. Eğer PostgreSQL kullanıyorsan endişelenme — SQL'in %90'ı her iki sistemde de aynıdır.


Temel Kavramlar: Tablo, Satır, Sütun

İlişkisel veritabanının yapı taşlarını tanıyalım. Bu kavramlar kursun geri kalanında sürekli karşına çıkacak.

Tablo (Table)

Tablo, belirli bir varlığı (entity) temsil eden yapıdır. "Varlık" derken gerçek dünyada tanımlayabileceğin bir şeyi kastediyoruz: müşteri, ürün, sipariş, çalışan...

Her tablo bir isme sahiptir ve bu isim genellikle çoğul olarak verilir:

  • customers (müşteriler)

  • products (ürünler)

  • orders (siparişler)

Bir tabloyu Excel'deki bir sayfa (sheet) gibi düşünebilirsin — ama çok daha güçlü kuralları var.

Sütun (Column / Field)

Sütunlar, tablodaki varlığın özelliklerini (attributes) tanımlar. Her sütunun:

  • Bir adı vardır (örn: first_name, email, price)

  • Bir veri tipi vardır (metin mi, sayı mı, tarih mi?)

  • Opsiyonel kısıtlamaları (constraints) olabilir (boş bırakılamaz, benzersiz olmalı vb.)

Örneğin customers tablosundaki sütunlar:

  • customer_id — Benzersiz müşteri numarası (sayı)

  • first_name — Müşterinin adı (metin)

  • last_name — Müşterinin soyadı (metin)

  • email — E-posta adresi (metin, benzersiz)

  • city — Yaşadığı şehir (metin)

Satır (Row / Record / Tuple)

Satır, tablodaki tek bir veri kaydını temsil eder. Her satır, sütunlarda tanımlanan özelliklerin somut değerlerini içerir.

Bir örnekle görelim:

customers tablosu:
+-------------+------------+-----------+------------------------+----------+
| customer_id | first_name | last_name | email                  | city     |
+-------------+------------+-----------+------------------------+----------+
| 1           | Ahmet      | Yılmaz    | ahmet@email.com        | İstanbul |
| 2           | Zeynep     | Kaya      | zeynep@email.com       | Ankara   |
| 3           | Mehmet     | Demir     | mehmet@email.com       | İzmir    |
+-------------+------------+-----------+------------------------+----------+

Bu tabloda:

  • 3 satır (3 müşteri kaydı) var

  • 5 sütun (5 özellik) var

  • Her satır bir müşteriyi temsil ediyor

  • Her sütun müşterinin bir özelliğini tutuyor

Birincil Anahtar (Primary Key)

Her tabloda, satırları birbirinden ayırt eden benzersiz bir tanımlayıcı olması gerekir. Buna birincil anahtar (primary key) denir.

Yukarıdaki tabloda customer_id birincil anahtardır çünkü:

  • Her müşterinin customer_id değeri farklıdır (benzersiz)

  • Hiçbir zaman boş (NULL) olamaz

  • Bir kez atandıktan sonra değiştirilmez (best practice)

🎯 Analoji: TC kimlik numarası gibi düşün. Herkesin farklı bir numarası var, hiç kimsenin numarası boş olamaz ve ömür boyu değişmez. İşte primary key de tablodaki her satır için aynı şeyi yapar.

Yabancı Anahtar (Foreign Key)

Tablolar arasındaki ilişkiyi kuran sütuna yabancı anahtar (foreign key) denir. Bir tablodaki foreign key, başka bir tablonun primary key'ine referans verir.

orders tablosu:
+----------+-------------+---------------------+--------------+
| order_id | customer_id | order_date          | total_amount |
+----------+-------------+---------------------+--------------+
| 101      | 1           | 2024-01-15 10:30:00 | 299.99       |
| 102      | 2           | 2024-01-15 14:20:00 | 150.00       |
| 103      | 1           | 2024-01-16 09:00:00 | 75.50        |
+----------+-------------+---------------------+--------------+

Burada orders tablosundaki customer_id bir foreign key'dir. customers tablosundaki customer_id'ye referans verir. Bu sayede:

  • Sipariş 101'i kimin verdiğini biliyoruz: customer_id = 1 → Ahmet Yılmaz

  • Ahmet'in tüm siparişlerini bulabiliriz: customer_id = 1 olan tüm satırlar → 101 ve 103

İşte bu ilişki (relationship) kavramı, "ilişkisel veritabanı" adının kaynağıdır.

⚠️ Dikkat: Foreign key, veri bütünlüğünü korur. Eğer customers tablosunda olmayan bir customer_id ile sipariş eklemeye çalışırsan, veritabanı bunu reddeder. Yani "hayalet müşteri"ye sipariş atamazsın.


Veritabanı Şeması (Schema)

Şema (schema), veritabanının yapısal tasarımıdır. Hangi tablolar var, her tabloda hangi sütunlar var, veri tipleri ne, tablolar arası ilişkiler nasıl — bunların tamamını tanımlayan plandır.

Bir binanın mimari planı nasıl binanın yapısını gösteriyorsa, şema da veritabanının yapısını gösterir. Binayı inşa etmeden önce planını çizersin — veritabanını oluşturmadan önce de şemasını tasarlarsın.

Bu kurs boyunca kullanacağımız e-ticaret veritabanı şemasını görselleştirelim:

┌─────────────┐       ┌─────────────┐
│  categories  │       │  products    │
├─────────────┤       ├─────────────┤
│ category_id  │◄──────│ category_id  │
│ category_name│       │ product_id   │
│ parent_cat_id│───┐   │ product_name │
└─────────────┘   │   │ price        │
       ▲          │   │ stock_qty    │
       └──────────┘   └──────┬───────┘
                             │
┌─────────────┐       ┌──────┴───────┐       ┌─────────────┐
│  customers   │       │ order_items   │       │   orders     │
├─────────────┤       ├──────────────┤       ├─────────────┤
│ customer_id  │◄──────│ item_id      │──────►│ order_id     │
│ first_name   │  ┌───►│ order_id     │       │ customer_id  │──┐
│ last_name    │  │    │ product_id   │       │ order_date   │  │
│ email        │  │    │ quantity     │       │ total_amount │  │
│ city         │  │    │ unit_price   │       │ status       │  │
└─────────────┘  │    └──────────────┘       └─────────────┘  │
       ▲         │                                              │
       └─────────┼──────────────────────────────────────────────┘
                 │
┌─────────────┐  │    ┌──────────────┐
│ departments  │  │    │  employees    │
├─────────────┤  │    ├──────────────┤
│ dept_id      │◄─┼────│ department_id │
│ dept_name    │  │    │ employee_id   │
│ manager_id   │──┘    │ first_name    │
└─────────────┘        │ last_name     │
                       │ salary        │
                       │ manager_id    │───► (self-reference)
                       └──────────────┘

Bu şemada 7 tablo ve aralarındaki ilişkiler var. Kurs boyunca tüm örneklerimizi bu veritabanı üzerinden yapacağız.


İlişki Türleri — Kısa Bir Bakış

Tablolar arasında üç tür ilişki olabilir. Bunları ileride çok daha detaylı göreceğiz ama şimdiden tanışalım:

1. Bire-Çok (One-to-Many / 1:N)

En yaygın ilişki türü. Bir müşterinin birden fazla siparişi olabilir, ama her sipariş tek bir müşteriye aittir.

customers (1) ────► orders (N)
Bir müşteri → birçok sipariş
Bir sipariş → tek bir müşteri

2. Bire-Bir (One-to-One / 1:1)

Bir tablodaki her satır, diğer tablodaki tam olarak bir satırla eşleşir. Örneğin, her müşterinin bir detay profili olabilir.

customers (1) ────► customer_profiles (1)

3. Çoka-Çok (Many-to-Many / N:M)

Her iki tarafta da birden fazla eşleşme olabilir. Bir sipariş birden fazla ürün içerebilir ve bir ürün birden fazla siparişte yer alabilir. Bu ilişki doğrudan kurulamaz — bir ara tablo (junction table) gerekir.

orders (N) ◄───► order_items ◄───► products (M)

order_items tablosu, orders ve products arasındaki çoka-çok ilişkiyi yönetir.


Veritabanı Mimarisi: İstemci-Sunucu Modeli

Veritabanı sistemleri genellikle istemci-sunucu (client-server) mimarisinde çalışır:

┌──────────────┐         ┌──────────────────┐
│   İstemci     │  SQL ──►│  Veritabanı       │
│  (Client)     │◄── Sonuç│  Sunucusu         │
│               │         │  (DB Server)       │
│ - MySQL CLI   │         │                    │
│ - PHP uyg.    │         │  ┌──────────────┐ │
│ - Python app  │         │  │  Veritabanı   │ │
│ - Web app     │         │  │  Dosyaları    │ │
└──────────────┘         │  └──────────────┘ │
                          └──────────────────┘
  1. İstemci (senin uygulamanız, komut satırı aracı vb.) bir SQL sorgusu gönderir

  2. Veritabanı sunucusu sorguyu alır, işler, veritabanı dosyalarına erişir

  3. Sonucu istemciye geri döndürür

Bu model sayesinde:

  • Veritabanı sunucusu güçlü bir makinede çalışabilir

  • Birden fazla istemci aynı anda bağlanabilir

  • Ağ üzerinden uzaktan erişim mümkün olur

💡 İpucu: SQLite bunun bir istisnasıdır — sunucu gerektirmez, doğrudan dosya üzerinde çalışır. Küçük projeler, mobil uygulamalar ve prototipleme için idealdir. Ama ciddi web uygulamaları için MySQL veya PostgreSQL kullanılır.


ACID Özellikleri — Veritabanının Güvenilirlik Garantisi

Bir veritabanı sistemi, verilerin güvenliğini ve tutarlılığını garanti etmek için ACID prensiplerini uygular. Bu kavram biraz ileri seviye gibi görünebilir ama temel mantığını anlamak önemlidir:

A — Atomicity (Bölünmezlik)

Bir işlem ya tamamen gerçekleşir ya da hiç gerçekleşmez. Yarım kalmaz.

Örnek: Banka havalesinde senin hesabından 1000 TL düşülüyor ve karşı tarafa 1000 TL ekleniyor. Ya ikisi de olur, ya ikisi de olmaz. "Senden düştü ama karşıya gitmedi" durumu kabul edilemez.

C — Consistency (Tutarlılık)

İşlem sonrasında veritabanı tutarlı bir durumda kalır. Tanımlanan kurallara uyulur.

Örnek: Stok sayısı negatif olamaz kuralı varsa, stoğu 0 olan üründen sipariş verilmeye çalışıldığında işlem reddedilir.

I — Isolation (Yalıtım)

Aynı anda çalışan işlemler birbirini etkilemez. Her işlem sanki tek başına çalışıyormuş gibi davranır.

Örnek: İki kişi aynı anda son bir ürünü sepete eklerse, ikisi de "eklendi" görmez — biri başarır, diğeri stok hatası alır.

D — Durability (Kalıcılık)

Bir işlem başarıyla tamamlandıysa, sonucu kalıcıdır. Sistem çökse bile veri kaybolmaz.

Örnek: Siparişini onayladın ve "Siparişiniz alındı" mesajını gördün. O anda sunucu çökse bile, sunucu tekrar açıldığında siparişin veritabanında duruyor.


NoSQL ile Karşılaştırma

Son yıllarda NoSQL veritabanları da çok popüler oldu. Hızlıca farkı anlayalım:

Özellikİlişkisel (SQL)NoSQL
Veri yapısıTablolar, satırlar, sütunlarBelgeler, anahtar-değer, graf, sütun ailesi
ŞemaKatı, önceden tanımlıEsnek, şemasız veya gevşek şemalı
İlişkilerForeign key ile güçlü ilişkilerİlişkiler zayıf veya yok
Sorgu diliSQL (standart)Her biri kendine özgü (MongoDB → JSON-like sorgu)
ACIDTam destekÇoğunda kısıtlı (eventual consistency)
ÖlçeklemeDikey (daha güçlü sunucu)Yatay (daha fazla sunucu ekle)
KullanımBankacılık, e-ticaret, ERPSosyal medya, IoT, gerçek zamanlı analitik

Örnek NoSQL veritabanları: MongoDB (belge tabanlı), Redis (anahtar-değer), Neo4j (graf tabanlı), Cassandra (sütun ailesi)

⚠️ Dikkat: "SQL mi yoksa NoSQL mi daha iyi?" yanlış bir soru. Doğru araç, doğru iş için seçilir. Bir e-ticaret sitesinin sipariş sistemi için ilişkisel veritabanı idealdir. Ama anlık mesajlaşma uygulamasının mesaj geçmişi için NoSQL daha mantıklı olabilir. Çoğu büyük şirket ikisini birlikte kullanır.


E-Ticaret Veritabanımız — Kurs Boyunca Kullanacağımız Örnek

Bu kursta tüm örneklerimizi bir e-ticaret veritabanı üzerinden yapacağız. Şimdi bu veritabanını ve tablolarını tanıyalım:

Tablolar ve Amaçları

TabloAmacıGerçek Dünya Karşılığı
categoriesÜrün kategorileri"Elektronik", "Giyim", "Kitap"
productsSatılan ürünler"iPhone 15", "Mavi T-Shirt", "SQL Kitabı"
customersKayıtlı müşterilerSite üyeleri
ordersVerilen siparişlerHer sepet onayı bir sipariş
order_itemsSipariş detaylarıSiparişin içindeki her ürün
employeesŞirket çalışanlarıMüşteri hizmetleri, kargo ekibi
departmentsDepartmanlar"Satış", "Pazarlama", "IT"

Tablolar Arası İlişkiler

  • Bir kategori birden fazla ürün içerir (1:N)

  • Bir kategori alt kategorilere sahip olabilir (self-referencing, 1:N)

  • Bir müşteri birden fazla sipariş verebilir (1:N)

  • Bir sipariş birden fazla ürün içerebilir (N:M, order_items aracılığıyla)

  • Bir çalışan bir departmana aittir (N:1)

  • Bir çalışan başka bir çalışanın yöneticisi olabilir (self-referencing, 1:N)

  • Bir departmanın bir yöneticisi vardır (1:1)

Bu yapıyı ilerleyen derslerde SQL komutlarıyla oluşturacağız. Şimdilik "böyle bir veritabanımız var" bilgisi yeterli.


Gerçek Dünya Örneği — Bir E-Ticaret Siparişinin Yolculuğu

Tüm kavramları bir gerçek senaryo üzerinden birleştirelim:

Senaryo: Zeynep, e-ticaret sitemize girip 2 ürün satın alıyor.

  1. Müşteri kaydı: Zeynep siteye üye olduğunda customers tablosuna bir satır eklenir:

`` customer_id: 2, first_name: "Zeynep", last_name: "Kaya", email: "zeynep@email.com", city: "Ankara" ``

  1. Sepet onayı: Zeynep sepetini onaylayınca orders tablosuna bir satır eklenir:

`` order_id: 102, customer_id: 2, order_date: "2024-01-15 14:20:00", total_amount: 150.00, status: "pending" ``

  1. Sipariş detayları: Sepetindeki her ürün order_items tablosuna ayrı satır olarak eklenir:

`` item_id: 201, order_id: 102, product_id: 5, quantity: 1, unit_price: 100.00 item_id: 202, order_id: 102, product_id: 12, quantity: 2, unit_price: 25.00 ``

  1. Stok güncelleme: products tablosunda ilgili ürünlerin stock_quantity değeri düşürülür

  2. Durum güncellemesi: Sipariş kargoya verildiğinde orders tablosundaki status "shipped" olarak güncellenir

Gördüğün gibi, tek bir "sipariş ver" işlemi birden fazla tabloda okuma ve yazma işlemi gerektiriyor. İşte ilişkisel veritabanının gücü burada ortaya çıkıyor: tüm bu veriler birbiriyle ilişkili ve tutarlı şekilde yönetiliyor.


Sıkça Yapılan Hatalar

  1. "Veritabanı = Excel tablosu" düşüncesi: Excel bir elektronik tablo uygulamasıdır, veritabanı değildir. Eş zamanlılık, veri bütünlüğü, performans gibi konularda Excel tamamen yetersizdir. Küçük veri setleri için iş görür ama "ciddi" iş yapacaksan veritabanı şart.

  2. Birincil anahtarı atlama: "İsimlere göre bulurum" diye primary key koymamak büyük hatadır. İki "Ahmet Yılmaz" olduğunda sorun başlar. Her tabloya mutlaka bir primary key koy.

  3. Her şeyi tek tabloya tıkmak: Müşteri bilgisini, sipariş bilgisini, ürün bilgisini tek bir tabloda tutmak başlangıçta "pratik" görünür ama veri tekrarı, güncelleme anomalileri ve performans sorunlarına yol açar. Verileri doğru tablolara bölmek (normalizasyon) çok önemlidir.

  4. İlişkisel veritabanıyı ilişkisiz kullanmak: Tablolar oluşturup foreign key tanımlamamak, ilişkisel veritabanının en güçlü özelliğini kullanmamak demektir. Tabloların "konuşmasını" sağla.

  5. "SQL eski teknoloji" düşüncesi: SQL 1970'lerden beri var — ama bu onu "eski" yapmaz, kanıtlanmış yapar. NoSQL'in popülerliği SQL'i öldürmedi, tam aksine SQL hâlâ en çok aranan veritabanı becerisi. Hemen her büyük şirketin sistemi SQL veritabanları üzerine kurulu.


Özet

  • Veritabanı, verilerin düzenli ve organize saklandığı yapıdır

  • DBMS, veritabanını yöneten yazılımdır (MySQL, PostgreSQL, Oracle vb.)

  • RDBMS, verileri tablolar halinde saklayan ve tablolar arası ilişkileri yöneten DBMS türüdür

  • Tablo bir varlığı temsil eder (müşteriler, ürünler, siparişler)

  • Sütun varlığın özelliklerini tanımlar (isim, fiyat, tarih)

  • Satır tek bir veri kaydını içerir (bir müşteri, bir ürün)

  • Primary Key her satırı benzersiz şekilde tanımlar

  • Foreign Key tablolar arası ilişkileri kurar

  • ACID özellikleri veritabanının güvenilirliğini garanti eder

  • İlişkisel veritabanları, veri bütünlüğü gerektiren uygulamalar (e-ticaret, bankacılık, ERP) için en uygun seçimdir