VERİTABANI PROGRAMLAMA - Ünite 1: Veritabanı Programlamaya Giriş Özeti :
PAYLAŞ:Ünite 1: Veritabanı Programlamaya Giriş
Giriş
İşletmelere ait süreçlerin güvenilir şekilde işletilmesi, işletmeler ile ilgili verilerin veritabanlarına doğru şekilde kayıt altında alınması, işletme süreçleri ile ilgili temel verilerin raporlanması veya karar destekleri üretme için veritabanındaki verilerin değerlendirilmesi vb. birçok alanda veritabanı programlama önemli rol oynar.
İşletmelere ait verilerin tutulması ve bilgi yönetim sistemleri amaçlı ilk çalışmalar 1960’lı yıllarda başlamıştır. Burada kritik dönüm noktası, 1970 yılında Edgar Codd’un ilişkisel veri modelini önermesi olmuştur. Bu aynı zamanda günümüzde yaygın olarak verilerin saklanmasında kullanılan ilişkisel veritabanı yönetim sistemi’nin de temelini oluşturmaktadır. Genel olarak Veritabanı Yönetim Sistemi (VTYS), veri tabanlarını kurmayı, oluşturmayı, kullanıcı haklarını tanımlama, verilere erişim ve sorgu optimizasyonu gibi özellikleri sağlayan programlar topluluğu olarak tanımlanabilir.
Farklı üreticilere ait VTYS üzerinde işlemleri yapmak üzere en yaygın olarak ortak kullanılan dil Yapısal Sorgu Dili (SQL)’dir. SQL’in ilk sürümü 1970’lı yıllarda SEQUEL olarak ortaya çıkmış olup 1980’li yıllarda ANSI/ISO standartlarında SQL olarak yeni sürümleri ortaya çıkmıştır. Bu yıllardan sonra önemli bir güncelleme olmakla beraber yakın zamanda olan 2008, 2011 güncellemelerinde eski sürümlerdeki özellikler korunarak yeni özellikler eklenmiştir. Bu sürümlerin yanı sıra SQL farklı VTYS’lerine özelleşmiş sürümleri de bulunmaktadır. T-SQL, PL/SQL gibi diller geliştirildikleri platformlar dışında diğer VTYS’lerde veya harici programlama dillerinde kullanılamazlar. Diğer taraftan, değişen ihtiyaçlar ve gelişen teknolojiler ile birlikte VTYS’leri de merkezî olmayan dağıtık yapılara kaymıştır.
Veritabanı Programlama
SQL ilişkisel veritabanlarındaki veriye erişim ve veri isleme için birincil olarak kullanıl-maktadır. Amerikan Ulusal Standartlar Enstitüsü (ANSI) standartları ile tanımlı olup farklı firmalara ait ilişkisel VTYS’lerinde kullanım imkânı vardır. Bildirim dili olduğu için programcılar bu dilde ara adımlara odaklanmadan girdi ve çıktı üzerine odaklanırlar.
SQL komutları kullanım amaçlarına göre üç genel kategoriye ayrılır. Bunlar:
- Veri Tanımlama Dili (DDL-Data Definition Language): DDL veritabanında verilerin saklanması için kullanılan nesnelerin (tablolar, indeksler, prosedür ve fonksiyonlar vb.) oluşturulmasını, silinmesini ve bazı temel özelliklerinin düzenlenme-sini sağlayan komutlardır.
- Veri İşleme Dili (DML Data Manipulation Language): DML veri girmek, değiştirmek, silmek ve verileri almak için kullanılan komutların tümüdür.
- Veri Kontrol Dili (DCL-Data Control Language): DCL veritabanı kullanıcısı veya rolü ile ilgili izinlerin düzenlenmesini sağlar.
Eğer işletme süreçlerinde veri isleme için akış kontrolü, döngü vb. gerektiren bir dil (Java, C / C ++ / C#, COBOL vb. yordamsal dil) ihtiyaç olursa, standart SQL bu işlemlerin yapılması için yeterli olmaz. Bu durum için çözüm yöntemleri veritabanı ile etkileşimi de içermek üzere üç sınıfa toplanabilir:
- Gömülü SQL(Embedded SQL): Veritabanı komutlarının yordamsal programlama dili içine özel bir ön metin ile gömülmesi ile gerçeklenir. Derleyici, derleme sırasında bunları ayrıştırarak VTYS için ayırmaktadır.
- Veritabanı bağlantısı için yazılım kütüphaneleri kullanma: Programlama dilleri-ne veritabanı sistemlerine erişim için belli yazılım kütüphaneleri sunulur. Bu kütüphaneler her bir dil ve VTYS için özel olarak tasarlanmış olup uygulama programlama arayüzü (API) olarak da bilinir.
- Veritabanı programlama dili kullanma: Bazı VTYS için özelleşen SQL standartları korunarak akış kontrolü, döngü vb. yordamsal dil özelliklerinin içerildiği özelleşmiş SQL programlama dilleri geliştirilmiştir.
Farklı Kullanıcı Tipleri ve Erişim Hakları
İşletmelerin veritabanı sistemlerinde çok farklı kullanıcılar için veriler bulunmaktadır. Bazı veriler belirli kullanıcıların ortak erişimine açık iken bazı verilerin ise tüm kullanıcılara açık olmaması gerekir. VTYS’nin sağladığı görünüm özelliği ile farklı kullanıcıların erişimi için sanal veri kümeleri oluşturulmaktadır.
İşletmelerin veritabanı sistemleri birçok kullanıcı için tasarlanmış ve kullanılmaktadır. Bundan dolayı aynı veriye birden fazla kullanıcının aynı anda erişimi gerekebilir. VTYS’nin aynı veriyi güncelleme ve okuma erişimlerinde doğruluğu garantilemek için es zamanlılık (concurrency) kontrolü gerekir. İşlemlerin doğru yönetimi için VTYS’de hareket (transaction) yönetimi önemli bir yere sahiptir. Hareket, veritabanı kayıtları üzerindeki okuma veya güncelleme işlemlerinin her birine denir. Her bir transaction’in doğru şekilde sonlanması gerekir.
Veritabanı Yönetim Sistemi Kurulumu
Microsoft SQL Server, MySQL, Oracle vb. yaygın olarak kullanılan veritabanı yönetim sistemi yazımlarıdır. SQL Server 2014 Express yazılımını kurmadan önce birtakım hazırlık ve kontrolleri yapmanız gerekmektedir. Yazılımın çalışabilmesi için bilgisayarınızın sağlaması gereken minimum sistem gereksinimleri sağlayıp sağlamadığı, işletim sisteminizin 32 bit ya da 64 bit olup olmadığı bilgilerini kontrol ederek kurulum dosyasının indirilmesi gerekmektedir. Yazılımın kurulumu için ilgili dosyayı açıp klasördeki kurulum dosyasının çalıştırılması gerekmektedir. Kurulum yardımcısı, kullanıcıya kurulumu tamamlatacaktır.
- Kurulum (Installation): Bu adımda “New SQL Server stand-alone installation or add features to an existing installation” seçeneği uygulamaları çalıştıracak bir SQL sunucu oluşturmak için uygundur.
- Evrensel Kurallar (Global Rules): Bu adım için sizden bir girdi beklememekte olup kurulum yardımcısı tarafından kullanılacak dosyaların kurulumu sırasında bir problemle karşılaşılmaması için bazı kontroller yapılır.
- Kurulum Tipi (Installation Type): Bu adımda Perform a new installation of SQL Server 2014” seçilip devam edilir.
- Lisanslama (License Terms): Bu adımda, kurulumun devam etmesi için “I accept the license terms” ile lisans anlaşmasının kabul edildiği işaretlenmelidir.
- Özellik Seçimi (Feature Selection): Bu adımda, MS SQL Server üzerinde hangi alt özelliklerin çalışacağı belirlenir.
- Oluşum Yapılandırması (Instance Configuration): Bu adımında SQL Server 2014 için bir isim verilebilir
- Sunucu Yapılandırma (Server Configuration): Daha önce seçilen özelliklere göre belirlenen SQL Server veritabanı motoru için başlangıç parola belirlemesi yapılabilir.
- Veritabanı Motoru Yapılandırması (Database Engine Configuration): Bu adım-da, MS SQL Server 2014 veritabanı motoru servisine yönetici olarak erişirken kullanılacak kimlik doğrulama yöntemi belirlenir.
- Kurulum İşlemi ve Tamamlanma (Installation Progress and Complete): Bu adımlarda sırası ile kurulum işlemi sürdürülür ve tamamlanır.
SQL Server Mangement Studio kurulumu için ilgili dosyayı açıp klasördeki kurulum dosyasını çalıştırınız. Kurulum yardımcısı size kurulumu tamamlatacaktır.
Veritabanı Oluşturma
SQL Server VTYS’de veritabanı oluşturmak için veritabanı oluşturma yardımcısı veya SQL kodları kullanılabilir.
Teknoloji ürünlerinin satısının yapıldığı bir mağaza için çalışanların, bölümlerin, ürünlerin ve satışların bilgisinin tutulması için tasarlanmış “Bilişim” veritabanı için ilişkisel şemalar;
Bolümler(
Bolum_No
, Bolum_Adi),
Calisanlar(
TC_no
, Adi, Bolum_No, Cinsiyet)
Urunler(
Urun_No
, Urun_Adi, Urun_Sayisi, Urun_Fiyati, Bolum_No)
Satislar (
Satis_No
, Urun_No, Calisan_TC_No, Miktar, Fiyati, Tarih) olsun. Bu şemalarda altı çizili alanlar birincil anahtar olan alanlardır.
Bilişim veritabanındaki ilişkisel şemaları gerçeklemek üzere MS SQL Server 2014 ortamında hem görsel arayüz hem de SQL sorgu dili kullanarak veritabanını ve tabloları oluşturalım:
- “SQL Server Management Studio” programı açılarak programı yüklerken seçtiğimiz sunucu ismi ile bağlantı işlemi gerçekleştirilir.
- Nesne Tarayıcısı (Object Explorer) açık değilse “View > Object Explorer” ile açılır, (kitabın 13. sayfasında yer alan) Resim 1.10’daki gibi Databases alanına sağ tıklayıp “New Database” seçeneği tıklanarak yeni veritabanımızın ismini yazmak için veritabanı ismi ve ilk özelliklerinin tanımlanacağı form gelir.
- Bilişim veritabanına ait tabloları oluşturmak için (kitabın 13. sayfasında yer alan) Resim 1.11’deki gibi Object Explorer alanında, “Databases > Bilisim > Table” sağ tıklayıp “Table” deyince yeni tablonun özelliklerinin tanımlanacağı (kitabın 14. sayfasında yer alan) Resim 1.12’deki arayüz gelir.
- Bolumler(Bolum_No, Bolum_Adi) şemasına uygun olarak Resim 1.12’deki gibi alan isimleri ve uygun veri tipleri tanımlanır. Ayrıca veri tekrarı olmaması istenen alanlar için birincil anahtar tanımlaması yapılması gerekir. “Bolum_No” satırına gelip sağ tıklayarak “Set Primary Key” ile birincil anahtar ataması yapılabilir. Sonra menüden Save(Kaydet) dendiğinde tablo ismi girilir. Eğer herhangi bir alan için mutlaka tanımlı bir değer olması isteniyorsa “Allow Nulls” u seçmemek gerekir.
Yardımcı arayüzler ile oluşturulan veritabanı ve tablolar SQL sorgu dilini kullanarak da aşağıdaki gibi yapılabilir:
- “SQL Server Management Studio” programı açılıp ana menüde “New Query” e tıklayarak SQL Sorgu penceresi olusturulur.
- “Bilisim” veritabanını komut ile oluşturmak için (kitabın 14. sayfasında yer alan) Resim 1.13’teki SQL Sorgu penceresine “CREATE DATABASE Bilisim” komut satırı yazılıp ana menüde “Execute” tıklanır veya “F5”tusuna basılır.
- Oluşturulan “Bilisim” veritabanına ait tabloların oluşturulması için aşağıdaki kod bloğunun SQL Sorgu penceresine yazılıp çalıştırılması gerekir.
USE Bilisim
CREATE TABLE Bolumler(
Bolum_No int NOT NULL,
Bolum_Adi nchar(50)NULL,
PRIMARY KEY(Bolum_No)
)
CREATE TABLE Calisanlar(
TC_No nvarchar(11) NOT NULL,
Adi nvarchar(100) NULL,
Bolum_No int NULL,
Cinsiyet nchar(1) NULL,
PRIMARY KEY(TC_no),
FOREIGN KEY(Bolum_No) REFERENCES Bolumler(Bolum_No)
)
CREATE TABLE Urunler(
Urun_No int NOT NULL,
Urun_Adi nvarchar(50) NULL,
Urun_Sayisi int NULL,
Urun_Fiyati decimal(18, 2) NULL,
Bolum_No int NULL,
PRIMARY KEY(Urun_No),
FOREIGN KEY(Bolum_No) REFERENCES Bolumler(Bolum_No)
)
CREATE TABLE Satislar(
Satis_No int NOT NULL,
Urun_No int NULL,
Calisan_TC_No nvarchar(11) NULL,
Miktar int NULL, Fiyat decimal(18, 2) NULL,
Tarih date NULL,
PRIMARY KEY(Satis_No),
FOREIGN KEY(Urun_No) REFERENCES Urunler(Urun_No),
FOREIGN KEY(Calisan_TC_No) REFERENCES Calisanlar(TC_No)
)
Dikkat edilirse “USE Bilisim” komut satırı ile oluşturulacak olan tabloların “Bilisim” veritabanı üzerinde oluşturulması sağlanır. Eğer herhangi bir alan için mutlaka değer olması isteniyorsa alan tanımlama devamında “NOT NULL” un olması gerekir.