Veri tabanı nedir? Veritabanı basit olarak bilgi depolayan bir yazılımdır. Birçok yazılım bilgi depolayabilir ama aradaki fark, veritabanın bu bilgiyi verimli ve hızlı bir şekilde yönetip değiştirebilmesidir. Veritabanı, bilgi sisteminin kalbidir ve etkili kullanmakla değer kazanır. Bilgiye gerekli olduğu zaman ulaşabilmek esastır. İndeksi olmayan bir kütüphane ve bütün kitapların aynı kapağa sahip olduğunu düşündüğünüzde kütüphane kullanıcılarının ne kadar çok işi olacağını tahmin edersiniz. Bir veritabanı bir kütüphanenin mükemmel bir indeks sistemi olduğu gibi , aynı zamanda kütüphanenin kendisidir. İlişkisel Veritabanı Yönetim Sistemleri (Relational Database Management Systems - RDBMS) büyük miktarlardaki verilerin güvenli bir şekilde tutulabildiği, bilgilere hızlı erişim imkanlarının sağlandığı, bilgilerin bütünlük içerisinde tutulabildiği ve birden fazla kullanıcıya aynı anda bilgiye erişim imkanının sağlandığı programlardır. Oracle veritabanı da bir ilişkisel veri tabanı yönetim sistemidir
Veri Tabanı Yöneticiliği Günümüzde veritabanı sistemleri bankacılıktan otomotiv sanayisine, sağlık bilgi sistemlerinden şirket yönetimine, telekomünikasyon sistemlerinden hava taşımacılığına, çok geniş alanlarda kullanılan bilgisayar sistemlerinin alt yapısını oluşturmaktadır. Veritabanı fiziksel olarak bilgileri tutarken mantıksal bir hiyerarşiye de sahiptir. Veritabanı sistemlerinin kurulumu, konfigürasyonu, dizaynı, sorgulaması, güvenliği ve denetiminin karmaşık bir hal alması veritabanı yöneticiliği kavramının oluşmasına neden olmuştur.Bir veritabanı yöneticisi mantıksal data modelleme, fiziksel veritabanı dizaynı çıkarma, fiziksel olarak veritabanı oluşturma, Transact-SQL kullanarak sorgu yazma, Microsoft SQL Server kurulumu ve konfigürasyonu, güvenlik yönetimi ve konfigürasyonu, veritabanı yönetimi ve bakımı, veritabanı denetleme ve optimize etme işlerini üstlenir. kaynak:http://www.ege-web.com.tr
MS SQL SERVER 2005 KURULUM
İlk yazımızda MS SQL Server 2005 ile hayatımıza ne gibi yenilikler geldiğinden bahsetmiştik. Bu yazımızda ise artık işe koyulmanın vaktinin geldiğini düşünüyor ve MS SQL Server 2005'in kurulumu ile devam ediyoruz.
Yazımız bol resimli bir anlatıma sahip olacak. Belli başlı aşamalarda nelere dikkat etmemiz gerektiğinden bahsediyor olacağız. Zira MS SQL Server 2005 yeni bir installer ile karşımıza çıkıyor.
DVD'nin çalışmasının ardından karşınıza ilk gelecek olan ekran;
Bu aşamada MS SQL Server 2005'i yüklemek için bilgisayarınızda hangi yazılımsal ve donanımsal gereksinimlere ihtiyacınız var bunları görebilir, SQL Server Upgrade Advisor'u yükleyebilir, MS SQL Server 2005 Server araçlarını, Books Online'ı ve örnek veritabanı dosyalarını yükleyebilir, Native Client bileşenlerini yükleyebilir, yada DVD ile ilgili işlemlerinizi yapabilirsiniz.
MS SQL Server 2005'i bilgisayarınıza kurabilmek için öncelikle IIS'in yüklü olması, IE 6.0 ve üzerinde bir browserın sisteminizde var olması ve Windows Installer 3.1'in yüklü olması gerekiyor. Windows Installer 3.1'in yüklü olmaması durumunda DVD içersinden Tools klasöründe bulunan setup ı kullanabilirsiniz.
Biz direk yükleme işlemine başlamak için "Server components, tools, Books Online and samples" sekmesini seçiyor ve devam ediyoruz. Karşımıza ilk olarak klasik "End User Licence Agreement" çıkıyor. Çoğumuzun yaptığı gibi yazılanları okumuyor :) ve checkboxu işaretleyerek ileri aşamalara doğru yol alıyoruz
Bir sonraki aşamamız MS SQL Server 2005 kurulumu için gerekli olan bileşenlerin yüklenmesi aşaması. Bu aşamada seyretmekle yetiniyoruz. Ve ardından karşımıza gelecek sihirbaz ekranını "next" ile geçiyoruz.
Bu aşamadan sonra MS SQL Server 2005 kurulumu bilgisayarınızda bir tarama gerçekleştiriyor. Gerekli donanımsal yapıya sahip misiniz, IIS yüklü mü, vs. Bu alanda alabileceğiniz warning ve error mesajlarına dikkat etmenizi öneririm. Örneğin IIS yüklü değilse bu konuda bir warning mesajı alacaksınız. kuruluma devam edebilirsiniz lakin IIS'i yinede kurmalısınız. Ancak error kodlu mesajları iyi değerlendirmelisiniz.
Bir sonraki aşamamız ise CD Key... Bu aşamaya kadar başarıyla geldiyseniz burada elinizdeki MS SQL Server 2005 DVD'si kapağında bulunan Product Key'i girerek devam edebilirsiniz.
şimdi karşımıza çıkacak olan ekran ise bize yüklemek istediğimiz MS SQL Server 2005 bileşenlerini soruyor. Burada gereksiz kaynak kullanımını önlemek adına sadece kullanacaklarınızı işaretleyebileceğiniz gibi şayet ilk kez bu ürünle tanışıyor ve tüm fonksiyonlarını test etmek istiyorsanız tüm bileşenlerini kurabilirsiniz.
Burada dikkat etmeniz gereken bir nokta şu ki tüm bileşenleri seçseniz bile MS SQL Server 2005 ile beraber gelen samples ve sample database bileşenleri yüklenmiyor. Bu nedenle herşeyi seçtikten sonra "Advenced" a tıklayarak Sample bileşenlerini de yükleyin. Özellikle yeni tanıştığınız bu ürün üzerinde bazı demo çalışmalar yapacaksanız elinizin altında örnek bir database'in bulunması işinize yarayacaktır. SQL Server 2000 versiyonunda "pubs" ve "northwind" database leri varken MS SQL Server 2005 ile beraber "Adventureworks" isimli bir database karşımıza çıkıyor.
Sonraki aşamamız ise instance yaratılması ve workstation bileşenlerinin yüklenmesi aşaması. şayet default instance yerine farklı bir instance kullanmak isterseniz bu aşamada değişikliğinizi yapabilirsiniz.
Bir sonraki aşamamız Authentication Mode aşaması. Burada MS SQL Server 2005'inizin kullanıcı yetkilendirme ayarlarını düzenleyebilirsiniz. Ben mixed mode seçeneğini seçmeyi uygun buluyorum her zaman.
Ve sona yaklaşıyoruz. karşınıza gelecek ekranda sizden talep edilen bilgi hangi dil ayarlarını kullanacağınız bilgisi. Seçiminizi bir listeden yapabilir yada default seçimlere boyun eğebilirsiniz. Takip eden menüde ise MS SQL Server 2005'inizin konfigürasyon ayarlarını yapmanızı sağlıyor.
Ve artık sona ciddi anlamda yaklaştık. :) Size şu ana kadar yaptığınız tüm seçimlerin bir özeti gösteriliyor.
ve kurulum başladı!
Kurulum bize biraz farklı gelecektir. Zira sıralı bir kurulum değil. Listenin 3. bölümünden başlayan kurulum bir anda 5. sekmeye geçiyor sonra tekrar 3'e dönüyor. Bu nedenle aceleci olmamanızı öneririm. Kurulumun tamamen bitmesini beklemelisiniz.
Ve işte başarı!
Artık MS SQL Server 2005'inizi kullanmaya başlayabilirsiniz.
Yapılandırılmış sorgulama dili SQL(Structured Query Language). Bilgisayarda tutulan verilerin kontrol edilmesi, erişilmesi, kullanılması vb işlemlerin gerçekleşmesi için zaman içinde standartlarının oluşturulduğu veritabanı sorgulama dili. Veritabanı mantığı olmadan önce veriler çok farklı şekillerde dosyalarda tutuluyordu. Dosyalarda tutulmasının avantajları olduğu gibi dezavantajları da vardı. Özellikle:
-Verilerin tutarsızlığı ve tekrarlanmasının önlenememesi
-Veriye erişme ve veriyi paylaştırmada yaşanan güçlükler
-Veriyi saklama , yedeklemede yaşanan zorluklar ve güvenliğinin tam olarak sağlanamaması
Veritabanının avantajları
-Verilerin merkezi denemetimde tutulabilmesi
-Veri tutarlılığı ve veri tekrarının minimum orana indilmesi
-Veriye erişimde kolaylık sağlaması
-Veri depolama, saklama ve yedeklemenin kolaylıkla yapılabilmesi
-Verinin güvenli bir şekilde paylaşılabilmesi
-Standarlarının olması
-Tasarımın çok kolay olması .
SQL ’in kullanıcılar arasında rağbet görmesiyle pazar payında yeri artı. Bundan dolayı firmalar kullanıcının sql’i daha rahat kullanabilmesi için var olan standart SQL ’e kendilerine göre standart olmayan fonksiyon ve özellikler eklediler. Ve bir nevi kendi sql araçlarını oluşturdular. Örneğin Oracle PL-SQL, Ms SQL Server T-SQL , Borlanda InterBase ... Projenizdeki sql cümlelerinin bütün veritabanlarında çalışmasını istiyorsanız daha yalın olan ANSII SQL ’ i kullanmalısınız.Bu makalede kullanılacak bütün sql cümleleri Microsof SQL Server ’da kullanacak ve daha çok Transact SQL üzerine yoğunlaşacağız. Makalede Transact SQL’i t-sql olarak kullanacağım.
SQL komutları işlevlerini göre gruplandırırsak:
DDL (Data Definition Language) Veri tanımlama komutları
Create Alter Drop DML (Data Manuplation Language) Veri düzenleme komutları
Select Insert Update Delete DCL (Data Control Language) Veri kontrol komutları
Grant Revoke .... Create Database : Veritabanı oluşturmak için kullanılır.
Veri_Tipler : Oluşturduğumuz alanın veri tipi char, varchar, nvarchar, integer, decimal, double, datetime, text , vb. Bazı veri tipleri veritabanından veritabanına değişmektedir. Eğer veri karakter ise char , varchar(karakter uzunluğu) vb, çok uzun karakterler için text , sayı ise int , küsuratlı sayı ise decimal yada double , tarih alanı için datetime gibi tipler kullanabilirsiniz.
Alan Kısıtlaması : İlgili alanın boş geçilip geçilemeyeceği durumu. NULL boş geçilebilir, NOT NULL boş geçilemez ilgili alana kayıt girmek zorundasınız.
Örnek : Departman isimli bir tablonun oluşturulması.
Bu örnekte dikkat edilecek kısımlar : Bir alanın otomatik olarak artmasını istiyorsak ilgili alan tanımlanırken alan kısıtlamasına IDENTITY (Başlangıç değeri , Kaçar kaçar artacağı) ifadesinin eklenmesi gerek. Diğer bir husus alana ilk değer verme; DEFAULT () ifadesi ile alana ilk değer verilir.Eğer ilgli alan boş geçilirse yani değer atanmazsa ilk değeri atanacaktır.
CREATE TABLE Departman
( DepartmanID int IDENTITY (1, 1) NOT NULL , //DepartmanId birden başlayıp birer birer otomatik olarak artacaktır.
DAdi nvarchar (20) DEFAULT(') , //DAdi alanına değer atanmaması durumunda NULL değeri yerine ' (boşluk) atanması
KurulusTarihi smalldatetime NULL , //smalldatetime t-sql özgu bir veri titpidir.Standarı DateTime
Örnek: Tabloda çeşitli kısıtlamalar (Constrains) oluştururulması. Ve iki tablo arasında ikincil anahtarlar(foreing key) tanımlaması.
Bu örnekte dikkat edilecek kısımlar : Tekrarlanması istenmeyen alanların tekil (unique) tanımlanması. Bir alana belli değerler dışında değer girilmesi istenmiyorsa kısıtlama CHECK (Alan=’Deger1’ , Alan=’Deger2’, ...,Alana=2Deger2’) olarak tanımlanmalıdır.
CREATE TABLE Personel (
PersonelId int NOT NULL ,
TCKimlikNo char (11) NOT NULL ,
Adi varchar (30) NOT NULL ,
Soyadi varchar (50) NOT NULL ,
Maas decimal(18, 2) NOT NULL DEFAULT (0), // Bu alana değer atanmaması durumunda ilk değer verme ile 0 değerini atanmış oldu
CONSTRAINT FK_Personel_Departman FOREIGN KEY (PDepartmanId) REFERENCES Departman (DepartmanID), //Başka bir tablodaki bir alanı referans vererek ikincil anahtar (foreing key) tanımlama
CONSTRAINT CK_Personel CHECK (Cinsiyet = ’K’ or Cinsiyet = ’E’) //Cinsiyet alanına ’E’ ve ’K’ değerleri dışında değer atanmaması
)
Kod 3- Tabloda kısıtlamaların tanımlanması ve iki tablo arasında ilişki kurulması
Örnek : Personel tablosundaki bir personele ait mal bilgilerinin tutulacağı bir tablo oluşturalım.
Bu örnekte dikkat edilecek kısımlar : Personel tablosunda bir personelin silinmesi durumunda PersonelMal tablosunda o personele ait bilgilerin silinmesi için uygun ikincil anahtar (foreing key) tanımlayalım. Bunlar
ON DELETE CASCADE : Referans edilen tablodaki kayıt yada kayıtların silinmesi durumunda referans alan tabloda ilişkili kayıtların da silinmesi . ON UPDATE CASCADE : Referans edilen tablodaki kayıt yada kayıtların guncellenmesi durumunda referans alan tabloda ilişkili kayıtların da güncellenmesi.
CREATE TABLE PersonelMal (
MalId int NOT NULL ,
PPersonelId int NOT NULL ,
Adi nvarchar (50) NOT NULL ,
Bedeli decimal(18, 2) NOT NULL ,
CONSTRAINT PK_PersonelMal PRIMARY KEY CLUSTERED (MalIdMalId, PPersonelId ), // Birincil anahtarı (Primaty key) tanımlarken sadece tek alan olması gerekmez.Bu iki veya daha fazla alanda olabilir.
CONSTRAINT FK_PersonelMal_Personel FOREIGN KEY(PPersonelId) REFERENCES Personel (PersonelId) ON DELETE CASCADE //Personel tablosundaki ilgili kayıt silinmesi durumunda ona ait kayıtıların da silinmesi için gerekli tanımlama.
)
Kod 4- Master detay tablolarda iki tablo arasındaki foreing key in on delete cascade olarak tanımlanması.
Oluşturduğumuz tabloların MS SQL Server Enterprice Menegerda diyagramların görüntüsü.
Create View(Görünüm) :Fiziksel olarak olmayan fakat çeşitli sorgular sonucunda elde edilen verilerin sanal bir tablo olarak gösterilmesini sağlayan yapılar. Bu yapıların avantajı; veriye erişimi daha rahat kılmak ve kullanıcının asıl tablolarda değişiklik yapmasını engellemek.
CREATE VIEW View_Adi AS Sorgu Cümlesi [View_Kısıtlaması]
View_Kısıtlaması :View işleminde hata oluşması durumundaki davranış şekilleri .Bunlar [WITH CHECK OPTION CONSTRAINT] view yapısında hata olmasını engeller bir diğeri [WITH READ ONLY] View yapısınde sadece okuma yapılabileceğini belirtir. Bunun dışındaki durumlarda hata vermesini sağlar.
Örnek: Belli bir departmanda maaşı 1200 den küçük olan personelin maaşını 25 ile toplayıp yeni bir maaş hesaplayan bir view oluşturma. Burda kullanmış olduğumuz select ve inner join terimlerini daha sonra ayrıntılı olarak inceleyeceğiz.
CREATE VIEW YeniMaas AS
SELECT TCKimlikNo, Adi, Soyadi, (Maas + 25) as Y_Maas //as Yardımcı terimi ile (Maas+ 25) de oluşacak sonuca yeni isim veriyoruz
FROM Personel
INNER JOIN Departman ON DepartmanId = PDepartmanId // Departman ve Personel tabloları arasındaki birleştirme işlemi
WHERE Maas < 1200 AND PDepartmanId= 1
WITH CHECK OPTION CONSTRAINT ck_YeniMaas // View de hata olmasını engelleyen ilgili kısıtlama
Kod 5- Create View
Create Index : Tabloda bulunan belirli sutunlardaki değerlere hızlı erişim için kullanılan sıralama tekniği .Ayrıca indexin tekil (unique) özelliği verilerek sutundaki verinin tekrarlanmasını önler. Örneğin birincil anahtarlar (primary key) da aslında bir indextirler. Tanımlama işlemi yapılırken otomatik olarak indexlenirler.
CREATE INDEX Index_Adi ON Tablo_Adi(Alanlar)
Tablo_Adi : Indexi tanımlayacağımız tablo adı.
Alanlar : İlgili tablodaki indexleyeceğimiz alan isimleri
CREATE INDEX Ix_Personel_AdSoyad ON Personle(Adi, Soyadi); // Indek oluştururur. Erişimde kolaylık sağlar.
CREATE INDEX Ix_Personel_TCKimlik ON PERSONLE (TCKimlikNo ) UNIQUE // Unique .İlgili alanın tekrarlanmasını önler
Şekil 6- Create Index.
Bu makalemizde create komutunun genel kullanımına örnekler verdik. Bir sonraki makalemizde Alter ifadesini inceleyeceğiz.