MS SQL Server 2005’de T-SQL ile İlişkisel Veritabanı Oluşturmak

Batuhan Düzgün tarafından yayınlanmıştır 6. September 2010 07:17

MS SQL Server 2005’deT-SQL  ile  İlişkisel Veritabanı Oluşturmak

Merhaba arkadaşlar bu yazımda sizlere MS SQL Server 2005‘de  T-SQL veri sorgulama dilinikullanarak ilişkisel veritabanı nasıl hazırlanır anlatmaya çalışacağım.

Peki Nasıl BirVeritabanı Hazırlayacağız?

Hazırlayacağımız veritabanı Türkiye’de ki üniversitelerinisimlerini ve her üniversiteye bağlı olan fakülte ve bölüm adlarını tutan basitbir veritabanı,eğer isterseniz örnekten sonra veritabanını geliştirip birprogramlama dili vasıtasıyla bir uygulama yazabilirsiniz.

İlk iş olarak MS SQL Server 2005 veritabanımızıaçıyoruz.Ardından,boş bir sorgu sayfası açıyoruz.Sol üst köşedeki  “NewQuery”  tuşuna tıklayarakaçabilirsiniz.Ardından hemen veritabanımızı oluşturalım.Aşağıdaki kod satırıile veritabanımız oluşturulacaktır.

CREATE DATABASE UnivesitelerDB

GO

Daha sonra da tablolarımızı oluşturan kodları yazmayabaşlayalım.Boş bir sorgu sayfası açıp aşağıdaki kodları yazıyoruz.

USEUnivesitelerDB

GO 

CREATE TABLE Universiteler

(

    UniversiteID intidentity(1,1) not null,

    UniversiteAdi nvarchar(200) not null,

    Primary key(UniversiteID)

)

 

CREATE TABLE Fakulteler

(

    FakulteID intidentity(1,1) not null,

    FakulteAdi nvarchar(200) not null,

    Primary key(FakulteID)

)

 

CREATE TABLE Bolumler

(

    BolumID intidentity(1,1) not null,

    BolumAdi nvarchar(200) not null,

    Primary key(BolumID)

)

 

CREATE TABLE UniversiteFakulte

(

    UniFakulID intidentity(1,1) not null,

    UniversiteID intnot null,

    FakulteID intnot null,

    Primary key(UniFakulID),

    Foreign key(UniversiteID) referencesUniversiteler,

    Foreign key(FakulteID) referencesFakulteler

)

 

CREATE TABLE UniversiteFakulteBolum

(

    UFBID int identity(1,1) not null,

    UniFakulID intnot null,

    BolumID intnot null,

    Primary key(UFBID),

    Foreign key(UniFakulID) referencesUniversiteFakulte,

    Foreign key(BolumID) references Bolumler

)

 

Şimdi de yazdığımız kodları açıklayalım. Yukarıdan aşağıyadoğru İlk üç tablomuz  arasında ilişkiyok normal şekilde primary key’i olan ve belirli sütunları olan tablolar.Biliyorsunuz ki “ identity(1,1) “  şeklinde bir bildirim indisin birden başlayıp birer birer artacağınısöylüyordu. “Primary key(UniversiteID)”   gibi bildirim ise “UniversiteID”  sütunun primarykey özelliğine sahip olacağını belirtiyor.

Yaptığımız tablolar arasında ilişki kurmaya çalıştığımızdagörülüyor ki bazı tablolar arasında çoka çok ilişki var.Ne demek çoka çok onuaçıklayalım.Şimdi   “Universiteler”tablosunda  A üniversitesi olsun.Buüniversite  “Fakulteler”  tablosundan  Mühendislik,Tıp ve İktisadi İdari Bilimler  fakultelerine sahip olsun.Fakat aynışekilde  B üniversitesi de bu fakülteleresahip olabilir.Tam tersinden baktığımızda bir Mühendislik Fakültesinin birden çok üniversite de  olmaihtimali de var.O halde bu iki tablo (Varlık) arasında çoka çok ilişki vardır.Bu sebeple araya yeni bir tabloçıkar.Unutmayalım arkadaşlar eğer ki çoka çok ilişkili bir tablo olursa ekolarak bir tablo daha meydana gelir.Yeni tablomuzun adını  “UniversiteFakulte”  olarak belirledik.Bu tablo hem "Universiteler"tablosundan hem de "Fakulteler" tablosundan iki adet Foreign key  (Yabancıl Anahtar)  içerir.

Tamam üniversiteler ve fakülteler arasındaki yapıyıbitirdik.Şimdi ise bu yapıya bölümleri ekleyeceğiz.

Bir bölüm "UniversiteFakulteler"  tablosunda birden çok yere ID verebilir mi?Evet verebilir.Yani Endüstri Mühendisliği bölümü hem  Sakarya Üniversitesi’nde,hem de EgeÜniversitesi’nde  olabilir.O halde"UniversiteFakulte" tablosuyla "Bolumler" tablosu arasında da çoka çok ilişki vardır.Napıyoruz? Yeni bir tablodaha araya ekliyoruz.

Bir detaya değineyim.Dikkat ederseniz Foreign key komutunuiçeren tabloları en son yazdım.Çünkü Foreign key komutunu kullanmadan önceilişki kurduğum tablonun yukarda oluşturulmuş olması gerekir.Yoksa böyle birtablo yok diyerek hata verecektir.Komutları satır satır işletir.İlk önce ilk üçtabloyu oluşturur,ardından diğerlerine geçer.Bu yüzden ilişki içeren tablolarıher zaman en sona yazınız.

Foreign key anahtar sözcüğü de iki tablo arasında ilişkikurar.Ardından  “Execute”  komutuna basarak,sorguyu çalıştırın solmenüde veritabanı isminizin altında “Tables” klasörü aşağıdaki resimde ki gibi olmalı.

 

İlişkisel tablolarımızın diyagramı aşağıdaki gibidir. 

Gördüğünüz gibi tablolarımız geldi.Eğer göremezseniz sağtıklayıp  “Refresh”  deyin gelecektir.

Sorgu sayfasını indirmek için tıklayınız http://rapidshare.com/files/417273974/SQL_IliskiselTabloMakalesi.sql

Bugünlük T-SQLile anlatacaklarım bu kadar.Bir sonraki makalemde görüşmek dileğiyle …

Batuhan Düzgün

Sakarya Üniversitesi

Bilgisayar Mühendisliği

 

 

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler:

T-SQL

Comments

Add comment


(Will show your Gravatar icon)  

  Country flag

biuquote
  • Comment
  • Preview
Loading





Bu site BlogEngine.NET 1.4.5.0 ile oluşturulmuştur. Türkçe çevirisi BlogEngine TR ekibi tarafından yapılmıştır.

Batuhan Düzgün

Sakarya Üniversitesi 

Bilgisayar Mühendisi

Endüstri Mühendisi

Yeditepe Üniversitesi

Bilgisayar Mühendisliği Yüksek Lisans 

 sahibinden.com

   Kıdemli Uzman Yazılım Mühendisi  

E-Mail 

   batuhan.duzgun@sahibinden.com

   batuhan.duzgun@windowslive.com

  github.com/batux

 

Sayfalar

Calendar

<<  September 2018  >>
MoTuWeThFrSaSu
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

Yazıları geniş takvimde göster