SQL Veri Yapıları 2024
SQL Veri Yapıları
SQL Veri Yapıları Nedir?
SQL (Structured Query Language), ilişkisel veritabanı yönetim sistemlerinde veri işleme, sorgulama ve yönetme için kullanılan bir dilidir. SQL’in temel veri yapıları şunlardır:
- Tablolar (Tables): SQL’de veriler tablolar şeklinde düzenlenir. Her bir tablo, bir veya daha fazla sütun (alan) ve bu sütunlarda bulunan veri satırlarından oluşur.
- Sütunlar (Columns): Tablolarda her bir sütun, belirli bir veri türüne ve isme sahip bir alanı temsil eder. Örneğin, bir müşteri tablosunda “ad”, “soyadı”, “telefon” gibi sütunlar olabilir.
- Satırlar (Rows): Her bir satır, tablodaki bir veri setini temsil eder. Bir satır, tablodaki sütunların bir kombinasyonudur.
- Anahtarlar (Keys): Veritabanlarında anahtarlar, satırları benzersiz bir şekilde tanımlamak için kullanılır. İki anahtar türü vardır:
- Primary Key: Bir tablodaki her bir satırı tekil bir şekilde tanımlayan bir sütundur.
- Foreign Key: İki tablo arasındaki ilişkiyi sağlayan bir sütundur. Bu, ilişkisel veritabanlarının temel bir bileşenidir.
- İndeksler (Indexes): İndeksler, belirli bir sütundaki verilere hızlı erişim sağlamak için kullanılır. İndeksler, sorgu performansını artırır.
- Görünümler (Views): Görünümler, bir veya daha fazla tablodan türetilen sanal tablolardır. Görünümler, veri güvenliği ve karmaşıklığı azaltmak için kullanışlıdır.
- Yordamlar (Procedures): Yordamlar, SQL komutlarını birleştiren ve ardından bir işlemi gerçekleştiren adlandırılmış depolama birimleridir. Yordamlar, kod tekrarını azaltmak ve sorgu işlemlerini optimize etmek için kullanılır.
- Tetikleyiciler (Triggers): Tetikleyiciler, belirli bir olay gerçekleştiğinde otomatik olarak çalışan özel saklı işlevlerdir. Örneğin, bir tabloya bir satır eklendiğinde tetikleyici çalışabilir.
Bu yapılar, ilişkisel veritabanlarını oluşturan temel yapı taşlarıdır ve SQL’in veri yönetimini sağlamak için kullanılır.
Bu veri yapılarını daha detaylı açıklayalım:
Tablolar (Tables)
SQL’de veri yapılarından biri tablolardır. Tablolar, ilişkisel veritabanlarında verileri tutmak için kullanılan yapısal bir bileşendir. Her bir tablo, sütunlar (kolonlar) ve satırlardan (kayıtlar) oluşur. Her sütun, belirli bir veri türünü temsil ederken, her satır ise bir kaydı veya veri öğesini temsil eder.
Tablolar, ilişkisel veritabanlarında veri düzenlemek, saklamak, güncellemek ve sorgulamak için kullanılır. Tablolar genellikle birincil anahtar (primary key) adı verilen bir benzersiz tanımlayıcıya sahiptir, bu da her bir satırın tekil olarak tanımlanmasını sağlar. Tablolardaki veriler, SQL (Structured Query Language) kullanılarak eklenir, güncellenir, silinir ve sorgulanır.
Tablolar, veritabanı sistemlerinde veri depolamanın temel birimidir ve verilerin etkili bir şekilde yönetilmesini sağlar. İyi tasarlanmış tablolar, veritabanı performansını artırabilir ve verilerin tutarlılığını sağlayabilir. Bu nedenle, tablo tasarımı veritabanı yönetimi sürecinin kritik bir parçasıdır.
Sütunlar (Columns)
SQL veri yapılarından biri olan sütunlar (columns), bir tablonun yapısını tanımlayan bileşenlerdir. İşte SQL’de sütunların detaylı bir açıklaması:
Sütun Adı (Column Name): Sütunun adı, o sütunu tanımlayan benzersiz bir isimdir. Örneğin, bir müşteri tablosunda “ad”, “soyad”, “email”, “telefon” gibi sütun adları olabilir. Sütun adları genellikle anlamlı ve açıklayıcı olmalıdır. |
Veri Türü (Data Type): Her sütunun belirli bir veri türünü tanımlar. Veri türleri, saklanan verinin türünü belirtir ve verinin nasıl işleneceğini belirler. Örneğin, varchar (metin), integer (tam sayı), date (tarih) gibi yaygın veri türleri bulunur. |
Uzunluk (Length): Metinsel veri türleri için kullanılır ve sütundaki verinin maksimum uzunluğunu belirtir. Örneğin, varchar(50) ifadesi, o sütunda saklanabilecek en fazla 50 karakterlik metinleri tanımlar. |
Varsayılan Değer (Default Value): Bir sütuna atanacak varsayılan değeri belirtir. Eğer bir satır eklenirken veya sütun güncellenirken bir değer belirtilmezse, varsayılan değer kullanılır. |
NULL İzin Verme (Allowing NULL): Bir sütuna NULL değer atanabilir mi yoksa zorunlu olarak bir değer mi gereklidir belirtir. NULL, bir değerin tanımlanmamış veya bilinmeyen olduğunu ifade eder. |
Birincil Anahtar (Primary Key): Bir sütunun birincil anahtar sütunu olup olmadığını belirtir. Birincil anahtar, bir tablodaki her satırı benzersiz şekilde tanımlayan bir değerdir. Bir tabloda yalnızca birincil anahtar bir sütun olabilir. |
Otomatik Artan (Auto Increment): Sütuna otomatik olarak artan değerler atanıp atanmayacağını belirtir. Bu genellikle birincil anahtar sütunları için kullanılır ve her yeni satır eklenirken değerlerin otomatik olarak artmasını sağlar. |
Sütunlar, tabloları tanımlamak için kullanılan temel yapısal öğelerdir. Her sütunun veri türü, sınırlamaları ve davranışları, tablonun veri yapısını belirler ve verilerin doğru şekilde depolanmasını ve işlenmesini sağlar.
Satırlar (Rows)
SQL veri yapılarından biri olan satırlar (rows), bir tablodaki her bir veri girişini temsil eder. İşte SQL’de satırların detaylı bir açıklaması:
- Satır Kimliği (Row Identifier): Her satırın benzersiz bir kimliği vardır. Genellikle birincil anahtar (primary key) olarak adlandırılan bir sütun tarafından belirlenir. Bu, her bir satırın diğer satırlardan ayırt edilmesini sağlar.
- Alan Değerleri (Field Values): Satırdaki her bir sütunun değerini içerir. Her sütunun, o sütunu tanımlayan veri türüne uygun bir değeri bulunur. Örneğin, bir müşteri tablosunda bir satırın “ad”, “soyad”, “email”, “telefon” gibi alan değerleri olabilir.
- Veri Bütünlüğü (Data Integrity): Satırlar, veri bütünlüğünü korumak için önemlidir. Veritabanı tasarımında, her bir satırın belirli bir tabloya uygun ve doğru veri içermesi gerekir. Bu, veritabanının doğru ve güvenilir veri sağlamasını sağlar.
- Sıra (Order): Satırlar genellikle tabloya eklenme sırasına göre sıralanır. Ancak, SQL sorguları kullanılarak satırlar belirli bir sıraya göre düzenlenebilir veya filtrelenir.
- İlişkiler (Relationships): Bir tablodaki satırlar, diğer tablolarla ilişkilendirilebilir. Bu ilişkiler, yabancı anahtarlar (foreign keys) aracılığıyla tanımlanır ve veritabanındaki verilerin ilişkisel yapısını oluşturur.
- Ekleme, Güncelleme ve Silme İşlemleri (Insert, Update, Delete Operations): SQL komutları kullanılarak satırlar tabloya eklenir, mevcut satırlar güncellenir veya silinir. Bu işlemler, veritabanındaki veri manipülasyonunu sağlar ve veri güncellemelerini yönetir.
Satırlar, veritabanındaki gerçek verileri temsil eder ve veritabanı uygulamalarında önemli bir rol oynar. Her bir satır, bir tablodaki belirli bir veri girişini temsil eder ve bu veriler, çeşitli SQL sorguları kullanılarak sorgulanabilir, güncellenebilir ve silinebilir.
Anahtarlar (Keys)
SQL veri yapılarında anahtarlar (keys), veritabanındaki ilişkisel modellemeyi ve veri bütünlüğünü sağlamak için kullanılan önemli bileşenlerdir. İşte SQL’de kullanılan anahtar türlerinin açıklamaları:
- Birincil Anahtar (Primary Key): Bir tablodaki her satırı benzersiz şekilde tanımlayan bir veya daha fazla sütundur. Her tabloda yalnızca birincil anahtar bir sütun olabilir. Birincil anahtar, bir tablodaki her satırı tekil olarak tanımlamak için kullanılır ve veri bütünlüğünü sağlar.
- Yabancı Anahtar (Foreign Key): Bir tablodaki sütunlar arasındaki ilişkileri tanımlar. Başka bir tablodaki birincil anahtara atıfta bulunurlar. Yabancı anahtarlar, ilişkisel veritabanlarında bir tablo ile diğer tablo arasındaki ilişkiyi belirlemek için kullanılır. Bu ilişkiler, bir tablodaki verilerin diğer tablodaki verilere bağlanmasını sağlar.
- Benzersiz Anahtar (Unique Key): Bir tablodaki sütunların değerlerinin benzersiz olmasını sağlayan bir kısıtlamadır. Bir tabloda birden fazla benzersiz anahtar olabilir ve bir sütun hem birincil anahtar hem de benzersiz anahtar olabilir.
- Alternatif Anahtar (Alternate Key): Birincil anahtar dışında bir tablonun diğer sütunlarından birinin de benzersiz olduğu bir durumda kullanılır. Yani, birincil anahtar olmayan sütunlardan birine uygulanan bir benzersiz anahtardır.
Bu anahtarlar, veritabanlarında veri bütünlüğünü sağlamak ve veriler arasındaki ilişkileri yönetmek için kullanılır. Doğru anahtarlar seçilerek veritabanı yapılandırması optimize edilir ve veri manipülasyonu daha etkili hale gelir.
İndeksler (Indexes)
SQL veri yapılarından biri olan indeksler, veritabanında veri erişimini hızlandırmak için kullanılan yapısal öğelerdir.
Indeks Nedir?
Bir veya daha fazla sütunu içeren bir tablonun, bu sütunlara hızlı erişim sağlamak için oluşturulan veri yapısıdır.
Veritabanı motoru tarafından kullanılarak sorgularda ve veri manipülasyonunda performansı artırır.
Indeks Türleri:
- Birincil Anahtar (Primary Key) İndeksi: Bir tablonun birincil anahtar sütununa otomatik olarak oluşturulan indekstir. Birincil anahtar sütununun benzersiz ve indekslenmiş olması veri erişimini hızlandırır.
- Benzersiz Anahtar (Unique Key) İndeksi: Bir tabloda benzersiz anahtar olarak işaretlenen sütunlara oluşturulan indekstir. Bu, belirli bir sütunun değerlerinin benzersiz olduğunu belirterek performansı artırır.
- Düz (Normal) İndeks: Belirli bir sütuna oluşturulan standart indekstir. Sorgularda veya veri manipülasyonunda bu sütuna hızlı erişim sağlar.
- Kompozit (Composite) İndeks: Birden fazla sütunu içeren indekstir. Belirli bir sorguda kullanılan sütunlar kombinasyonuna göre indekslenir ve bu sorguların performansını artırır.
Indeks Oluşturma:
CREATE INDEX
komutu kullanılarak indeksler oluşturulur. Örneğin:
- Bu,
customers
tablosundakilast_name
sütununa bir indeks oluşturur.
Indeksler, belirli sorgularda performansı artırırken, veritabanının genel performansını iyileştirmeye yardımcı olabilir. Ancak, indekslerin dengeli bir şekilde kullanılması ve gereksiz indekslerin oluşturulmaması önemlidir, aksi takdirde veritabanı performansı olumsuz etkilenebilir.
Görünümler (Views)
SQL’de görünümler (views), bir veya birden fazla tablodan alınan verilerin sanal bir tablo olarak görüntülenmesini sağlayan yapısal nesnelerdir.
Görünüm Nedir?
- Görünümler, bir veya daha fazla tablodan alınan verilerin birleştirilerek, belirli bir sorgu veya iş mantığına göre düzenlenip sanal bir tablo olarak görüntülenmesini sağlar.
- Gerçek verileri depolamazlar, sadece bir sorgunun sonucunu temsil ederler.
- Görünümler, veri güvenliği ve karmaşıklığı azaltmak için kullanılabilir.
Görünüm Oluşturma:
CREATE VIEW
komutu kullanılarak görünümler oluşturulur. Örneğin:
- Bu,
customers
tablosundan sadece aktif müşterilerin adını, soyadını ve e-posta adresini içerencustomer_info
adında bir görünüm oluşturur.
Görünümler, veritabanı uygulamalarında sıklıkla kullanılan ve veri erişimini basitleştiren önemli bir yapısal bileşendir. Ancak, kullanımları ve güncellemeleri dikkatle planlanmalı ve yönetilmelidir.
Yordamlar (Procedures)
SQL veri yapılarından biri olan yordamlar (procedures), bir dizi SQL ifadesini mantıksal bir işlem veya görev olarak gruplamak için kullanılan yapısal öğelerdir.
Yordam Nedir?
Yordamlar, bir veya daha fazla SQL ifadesinin bir araya getirilerek, bir işlemi veya görevi gerçekleştirmek için kullanılan yapısal nesnelerdir.
Yordamlar, tekrar kullanılabilir ve modüler kodlama sağlar.
Veritabanı yöneticileri tarafından oluşturulabilir ve saklanabilir.
Yordam Oluşturma:
CREATE PROCEDURE
veya CREATE OR REPLACE PROCEDURE
komutları kullanılarak yordamlar oluşturulur. Örneğin:
- Bu,
GetCustomerByID
adında bir yordam oluşturur ve belirtilen müşteri kimliği ile ilgili müşteri bilgilerini döndürür.
Yordam Kullanımı:
- Yordamlar,
EXECUTE
veyaEXEC
komutu kullanılarak çağrılır. Örneğin:
Bu, GetCustomerByID
yordamını çağırarak müşteri kimliği 123 olan müşteri bilgilerini getirir.
Parametreler:
Yordamlar, giriş ve çıkış parametreleri alabilir. Giriş parametreleri yordama veri sağlar ve çıkış parametreleri yordamın sonuçlarını döndürür.
Parametreler, yordamın tanımında belirtilir ve yordam çağrısında değerlerle birlikte iletilir.
Avantajlar:
- Tekrar kullanılabilirlik: Kod tekrarını azaltır ve modüler kodlama sağlar.
- Performans: Yordamlar, veritabanı sunucusunda ön işlem yaparlar, bu da performansı artırabilir.
- Güvenlik: Yordamlar, veri erişimini kontrol etmek için kullanılabilir ve SQL enjeksiyon saldırılarına karşı koruma sağlayabilir.
Dezavantajlar:
- Yordamlar, karmaşıklığı artırabilir ve bakımı zorlaştırabilir.
- Doğru bir şekilde kullanılmazsa, yordamlar performans sorunlarına neden olabilir.
Yordamlar, veritabanı uygulamalarında iş mantığını uygulamak, veri işlemek ve veri manipülasyonunu gerçekleştirmek için yaygın olarak kullanılan bir yapısal bileşendir. Ancak, yordamların doğru bir şekilde tasarlanması ve kullanılması önemlidir, aksi takdirde performans ve bakım sorunlarına yol açabilirler.
Tetikleyiciler (Triggers)
SQL veri yapılarından biri olan tetikleyiciler (triggers), belirli bir olayın gerçekleşmesini bekleyen ve bu olay gerçekleştiğinde otomatik olarak belirli bir işlemi başlatan yapısal nesnelerdir. İşte SQL’de tetikleyicilerin detaylı bir açıklaması:
Tetikleyici Nedir?
Tetikleyiciler, bir veritabanı olayının gerçekleşmesini bekleyen ve bu olay meydana geldiğinde belirli SQL ifadelerini otomatik olarak çalıştıran yapısal nesnelerdir.
Tetikleyiciler, bir veri ekleme, güncelleme veya silme işlemi gibi belirli bir veritabanı işlemi gerçekleştiğinde tetiklenir.
Tetikleyiciler, veri bütünlüğünü sağlamak, veri izleme ve güvenlik kontrolleri gibi birçok senaryoda kullanılabilir.
Tetikleyici Oluşturma:
CREATE TRIGGER
komutu kullanılarak tetikleyiciler oluşturulur. Örneğin:
Bu, Customers
tablosuna her yeni bir müşteri eklenmesinden sonra AuditTrail
tablosuna bir kayıt ekleyen bir tetikleyici oluşturur.
Tetikleyici Türleri:
- AFTER Tetikleyiciler: Belirli bir işlem gerçekleştikten sonra tetiklenirler. Örneğin, bir veri eklendikten sonra bir log kaydı oluşturmak için kullanılabilirler.
- BEFORE Tetikleyiciler: Belirli bir işlem gerçekleşmeden önce tetiklenirler. Örneğin, bir veri ekleneceği zaman veri doğrulaması yapmak için kullanılabilirler.
- INSTEAD OF Tetikleyiciler: Belirli bir işlem gerçekleşmeden önce, işlemi tamamen değiştirerek tetiklenirler. Genellikle görünümlerde ve güncellenebilir görünümlerde kullanılır.
Tetikleyici Kullanımı:
- Tetikleyiciler, otomatik olarak tetiklenir ve belirli SQL işlemlerini gerçekleştirmek için kullanılır.
- Tetikleyiciler, bir tabloya veri ekleme, güncelleme veya silme işlemi gerçekleştiğinde veya belirli bir koşul gerçekleştiğinde çalışabilirler.
Avantajlar:
- Veri bütünlüğünü sağlamak için kullanılabilirler.
- Veri izleme ve denetim için kullanılabilirler.
- Belirli işlemleri otomatikleştirmek için kullanılabilirler.
Dezavantajlar:
- Fazla sayıda ve karmaşık tetikleyiciler, performans sorunlarına yol açabilir.
- Tetikleyicilerin işlevi ve nasıl çalıştığı belirli senaryolara bağlı olarak karmaşık olabilir.
Tetikleyiciler, veritabanı uygulamalarında veri bütünlüğünü sağlamak, denetlemek ve otomatikleştirmek için önemli bir yapısal bileşendir. Ancak, doğru kullanılmaları ve gereksiz karmaşıklıklardan kaçınılması önemlidir.