SlideShare a Scribd company logo
1 of 28
Iletisim Icin :

Blog     : www.sevdanurgenc.com
E - Mail : sevdanurgenc@sevdanurgenc.com
           nanonungunlugu@gmail.com
Anahtarlar – Keys Mantigi Nedir ?

•Bir kayıt içerisinde farklılıkları ve nitelikleri gösteren belirleyicilere anahtarlar
(keys) denir.

•Bir tablo içerisinde bulunabilecek anahtarlar sunlardir ;

•Birincil anahtar (Primary key - PK)

•Tekil anahtar (Unique key - UK)

•Referans anahtar (Foreign key - FK)

•Birleşik anahtardır (Composite key – CK)
Birincil anahtar (Primary key):
•Bir tablo içerisindeki satırları birbirinden ayırt eder. Birincil anahtar olan bir veri
aynı tablo içerisinde tekrarlanamaz. Yine bu alandaki veri boş bırakılamaz, yani
NULL değeri alamaz. Tek bir alan birincil anahtar olabileceği gibi bazı tablolarda
birden fazla alanın birleşmesiyle birincil anahtar oluşabilir.

Tekil anahtar (Unique key):
•Tablonun tekil anahtar olarak tanımlanmış bir alanına aynı değer sadece bir kez
girilebilir. Birincil anahtardan farklı olarak, tabloda bu alana ait sadece bir kayıt
NULL değeri alabilir. Birincil anahtar aynı zamanda tek anahtar olarak sayılabilir
fakat tek anahtarlar birincil anahtar değildirler.

Referans anahtar (Foreign key):
•Tablodaki bir veriyi başka tablodaki bir veri ile ilişkilendirir. İki tablo arasında
yapılan bu ilişkilendirme ile referans anahtar olarak tanımlanmış alana sadece
ilişkilendirdiği tablonun alanındaki veriler eklenebilir.

Birleşik anahtar (Composite Key):
•Birden fazla alanın birleştirilmesiyle birincil anahtar görevini üstlenecek
tanımlamalar yapılabilir. Bunlar birleşik anahtar olarak adlandırılır.
MsSQL’de Asagidaki Gibi Iliskilendirilmis Tablolar Arasinda Bir Diagram
Olusturabilmemiz Icin Islemleri Adim Adim Yapmamiz Gerekiyor.
Yukaridaki sekilde
goruldugu gibi Object
Explorer penceresinde
bulunan Databases
sekmesinin uzerinde     Yukaridaki gibi acilan yeni pencerede Database
sag tus yaparak New     Name kismina Veri tabanimizin ismini veriyoruz.
Databases diyoruz.      OgrenciBilgiSistemi dedikten sonra OK butonuna
                        basiyoruz.
Simdiye kadar bildiginiz gibi tum islemlerimizi New Query penceresinde Sql
cumleleri yazarak yapiyorduk. Yeni bir veri tabani olustumak icin yazmis oldugumuz
komut neydi bir hatirlayalim.




Create Database OgrenciBilgiSistemi

sql cumlesini New Query penceresine yazip Execute dememiz yeterli olacaktir.
Yeni bir table olustururken bu sefer sql cumlesi
yazmadan nasil olusturuluyor onu ogrenelim.

Databases altindaki olusturmus oldugumuz
OgrenciBilgiSistemi veri tabanimizin hemen altinda
bulunan Tables klasoru uzerindeyken sag tus yapiyoruz
ve acilan listeden New Table komutunu tikliyoruz.
Yeni table’imizin kolon ismini, veri tipini ve bos gecilip gecilemeyecegine dair
bilgileri girebilecegimiz tablo dizaynini yapabilirsiniz.

Tablonuzda birincil anahtariniz icin belirlemis oldugunuz alaninin uzerinde sag tus
yaptiginizda acilan listeden Set Primary Key secenegini tiklamaniz yeterli olacaktir.

Ayni zamanda yukaridaki arac cubugunda bulunan anahtar simgesinide
tiklayabilirsiniz.
Table’imiz icin gerekli alan ve veri tiplerini asagidaki gibi olusturuyoruz. Column
Name ile alan isimlerimizi, Data Type ile girmis oldugumuz alanin veri turunu ve
Allow Nulls ile de alanimiza girilecek verinin olup olmadigi, o alana veri girilip
girilmeyecegi ile ilgili kisimdir. Son olarakta birincil anahtarinizi
olusturabilecegimiz sekilde alanin uzerindeyken set primary keys’i tiklariz.
Sql cumlelerini kullanarak yeni bir tablo olusturmak isteseydik ne yapmamiz
gerekiyordu inceleyelim.

Asagidaki gordugunuz create table sorgusunda bulunan primary key clustered
ifadesi ile o alana eklemis oldugumuz ifadeyle birincil anahtar ozelligini katmis
oluyoruz.

Not Null ifadeleri ile o alanlari veri girerken asla bos gecemeyeceginiz anlamina
gelmektedir.
Istediginiz yontemi kullanarak Dersler tablomuzu olusturalim.
Notlar tablomuzu olusturalim.
Bolumler tablomuzu olusturalim.
Fakulteler tablomuzu olusturalim.
Create Database OgrenciBilgiSistemi

CREATE TABLE Fakulteler(
FakulteNo int NOT NULL PRIMARY KEY CLUSTERED,
FakulteAdi nchar(10)
)

CREATE TABLE Bolumler(
BolumNo int NOT NULL PRIMARY KEY CLUSTERED ,
BolumAdi nchar(10),
FakulteNo int Not NULL
)

CREATE TABLE Dersler(
DersNo int NOT NULL PRIMARY KEY CLUSTERED,
DersAdi nchar(10),
BolumNo int NOT NULL,
TeorikKredi int,
UygulamaKredi int,
)
CREATE TABLE Ogrenciler(
OgrenciNo int NOT NULL PRIMARY KEY CLUSTERED,
OgrenciAdi nchar(10),
OgrenciSoyadi nchar(10),
Cinsiyet nchar(10),
DogumTarihi nchar(10),
BolumNo int NOT NULL
)

CREATE TABLE Notlar(
OgrenciNo int NOT NULL PRIMARY KEY CLUSTERED,
DersNo int NOT NULL,
Vize int,
Final int,
Butunleme,
Durum nchar(10)
)
Tablomuzu olusturduktan sonra veri girisi
yapabilmemiz icin tablo uzerinde sag tus
yapip acilan listede Edit Top 200 Rows
secenegini tiklariz.

Eger tabloya girilmis olan verileri gormek
istiyorsaniz da yine tablo uzerinde sag tus
yapip acilan listeden karsiniza gelen Select
Top 1000 Rows secenegini tiklayabilirsiniz.

Tablonuzdaki alanlarda yada alanlarin
sahip oldugu veri turlerinde degisiklik
yapmak istiyorsaniz yine o tablonun
uzerinde sag tus yapip acilan listede
Design secenegini secmeniz yeterli
olacaktir.
Olusturmus oldugumuz veritabanina tablolardaki birincil anahtarlar uyacak
sekilde tutarli veriler girelim. Girilen veriler arasindaki iliskilere dikkat ediniz.
Ogrenciler ve Notlar tablolari arasinda iliski olusturalim.




  Select Ogrenciler.OgrenciNo, Ogrenciler.OgrenciAdi,
  Ogrenciler.OgrenciSoyadi,
  Notlar.Vize, Notlar.Final, Notlar.Butunleme, Notlar.Durum

  From Ogrenciler, Notlar

  Where Notlar.OgrenciNo = Ogrenciler.OgrenciNo
Tablolar arasindaki iliskinin sonucu asagidaki gibidir.
Tablolar arasindaki iliskiyi basit bir sekilde Where sartinin icerisinde And
operatorunu kullanarak kullanalim.




Select Ogrenciler.OgrenciNo, Ogrenciler.OgrenciAdi,
Ogrenciler.OgrenciSoyadi,
Bolumler.BolumAdi, Fakulteler.FakulteAdi, Dersler.DersAdi
,
Notlar.Vize, Notlar.Final, Notlar.Butunleme, Notlar.Durum

From Ogrenciler, Bolumler, Notlar, Dersler, Fakulteler

Where Bolumler.BolumNo = Dersler.BolumNo
And Bolumler.FakulteNo = Fakulteler.FakulteNo
And Dersler.DersNo = Notlar.DersNo
And Notlar.OgrenciNo = Ogrenciler.OgrenciNo
Tablolar arasindaki iliskinin sonucu asagidaki gibidir.
Tablolar arasi iliskiyi Diagram seklinde inceleyecek olursak;

 Sekulde vermis oldugumuz birincil anahtarlarin iliskili oldugu
tablolardaki alanlara dikkat ediniz.
ODEV

 Kutuphane Bilgi Sistemini olusturunuz.

 Icerisine mantikli veriler giriniz.

 Tablolar arasi iliskiyi saglayiniz.

 Bunlarla ilgili tum sql cumlelerini ve ekran goruntulerini bir word
belgesinde rapor halinde sununuz.
Soru ve odev teslimleriniz icin mail adresinden ulasabilirsiniz…

                 nanonungunlugu@gmail.com

More Related Content

What's hot

Oracle EBS 12.1.3 : Integrate OA Framework BC4J components within java concur...
Oracle EBS 12.1.3 : Integrate OA Framework BC4J components within java concur...Oracle EBS 12.1.3 : Integrate OA Framework BC4J components within java concur...
Oracle EBS 12.1.3 : Integrate OA Framework BC4J components within java concur...Amit Singh
 
İleri Seviye T-SQL Programlama - Chapter 06
İleri Seviye T-SQL Programlama - Chapter 06İleri Seviye T-SQL Programlama - Chapter 06
İleri Seviye T-SQL Programlama - Chapter 06Cihan Özhan
 
LeverX SAP ABAP Basics - Creating Custom Screen Via Screen Painter
LeverX SAP ABAP Basics - Creating Custom Screen Via Screen PainterLeverX SAP ABAP Basics - Creating Custom Screen Via Screen Painter
LeverX SAP ABAP Basics - Creating Custom Screen Via Screen PainterLeverX
 
Oracle SQL, PL/SQL best practices
Oracle SQL, PL/SQL best practicesOracle SQL, PL/SQL best practices
Oracle SQL, PL/SQL best practicesSmitha Padmanabhan
 
Multiple files single target single interface
Multiple files single target single interfaceMultiple files single target single interface
Multiple files single target single interfaceDharmaraj Borse
 
İleri Seviye T-SQL Programlama - Chapter 12
İleri Seviye T-SQL Programlama - Chapter 12İleri Seviye T-SQL Programlama - Chapter 12
İleri Seviye T-SQL Programlama - Chapter 12Cihan Özhan
 
Web Güvenlik Açıkları ve Kullanımı (Geniş Anlatım)
Web Güvenlik Açıkları ve Kullanımı (Geniş Anlatım)Web Güvenlik Açıkları ve Kullanımı (Geniş Anlatım)
Web Güvenlik Açıkları ve Kullanımı (Geniş Anlatım)Mehmet Kelepçe
 
Presentation slides of Sequence Query Language (SQL)
Presentation slides of Sequence Query Language (SQL)Presentation slides of Sequence Query Language (SQL)
Presentation slides of Sequence Query Language (SQL)Punjab University
 
İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11Cihan Özhan
 

What's hot (20)

BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1
 
Oracle EBS 12.1.3 : Integrate OA Framework BC4J components within java concur...
Oracle EBS 12.1.3 : Integrate OA Framework BC4J components within java concur...Oracle EBS 12.1.3 : Integrate OA Framework BC4J components within java concur...
Oracle EBS 12.1.3 : Integrate OA Framework BC4J components within java concur...
 
Trigger
TriggerTrigger
Trigger
 
İleri Seviye T-SQL Programlama - Chapter 06
İleri Seviye T-SQL Programlama - Chapter 06İleri Seviye T-SQL Programlama - Chapter 06
İleri Seviye T-SQL Programlama - Chapter 06
 
Yazılım Gereksinim Mühendisliği Semineri
Yazılım Gereksinim Mühendisliği SemineriYazılım Gereksinim Mühendisliği Semineri
Yazılım Gereksinim Mühendisliği Semineri
 
LeverX SAP ABAP Basics - Creating Custom Screen Via Screen Painter
LeverX SAP ABAP Basics - Creating Custom Screen Via Screen PainterLeverX SAP ABAP Basics - Creating Custom Screen Via Screen Painter
LeverX SAP ABAP Basics - Creating Custom Screen Via Screen Painter
 
Oracle SQL Basics
Oracle SQL BasicsOracle SQL Basics
Oracle SQL Basics
 
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
Web uygulama açıklıklarından faydalanarak sistem ele geçirmeWeb uygulama açıklıklarından faydalanarak sistem ele geçirme
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
 
Oracle SQL, PL/SQL best practices
Oracle SQL, PL/SQL best practicesOracle SQL, PL/SQL best practices
Oracle SQL, PL/SQL best practices
 
Multiple files single target single interface
Multiple files single target single interfaceMultiple files single target single interface
Multiple files single target single interface
 
İleri Seviye T-SQL Programlama - Chapter 12
İleri Seviye T-SQL Programlama - Chapter 12İleri Seviye T-SQL Programlama - Chapter 12
İleri Seviye T-SQL Programlama - Chapter 12
 
Set operators
Set  operatorsSet  operators
Set operators
 
Bulut Bilişim
Bulut BilişimBulut Bilişim
Bulut Bilişim
 
Sql join
Sql  joinSql  join
Sql join
 
Web Güvenlik Açıkları ve Kullanımı (Geniş Anlatım)
Web Güvenlik Açıkları ve Kullanımı (Geniş Anlatım)Web Güvenlik Açıkları ve Kullanımı (Geniş Anlatım)
Web Güvenlik Açıkları ve Kullanımı (Geniş Anlatım)
 
Presentation slides of Sequence Query Language (SQL)
Presentation slides of Sequence Query Language (SQL)Presentation slides of Sequence Query Language (SQL)
Presentation slides of Sequence Query Language (SQL)
 
MYSQL
MYSQLMYSQL
MYSQL
 
İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11
 
Joins And Its Types
Joins And Its TypesJoins And Its Types
Joins And Its Types
 
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3
 

Similar to Anahtarlar Ve Tablolar Arasi Iliskiler

Tablolar arası ilişkiler
Tablolar arası ilişkilerTablolar arası ilişkiler
Tablolar arası ilişkilerİbrahim ATLI
 
EXCELL 2007'DE 4 İŞLEM
EXCELL 2007'DE 4 İŞLEMEXCELL 2007'DE 4 İŞLEM
EXCELL 2007'DE 4 İŞLEMSerhan Kablan
 
Temel Düzeyde MySQL ve PHP Eğitimleri 2
Temel Düzeyde MySQL ve PHP Eğitimleri 2Temel Düzeyde MySQL ve PHP Eğitimleri 2
Temel Düzeyde MySQL ve PHP Eğitimleri 2Univerist
 
Veritabani Programlama MySQL III. Egitimi
Veritabani Programlama MySQL III. EgitimiVeritabani Programlama MySQL III. Egitimi
Veritabani Programlama MySQL III. EgitimiSevdanur Genc
 
Veri Tabanı,tablo oluşturma ve düzenleme
Veri Tabanı,tablo oluşturma ve düzenlemeVeri Tabanı,tablo oluşturma ve düzenleme
Veri Tabanı,tablo oluşturma ve düzenlemeSelçuk Tüfekçi
 
Microsoft Office Access 2013 Hafta 7
Microsoft Office Access 2013 Hafta 7Microsoft Office Access 2013 Hafta 7
Microsoft Office Access 2013 Hafta 7abdullahgul42
 
Veri tabaniprogramlama 12.10.2012
Veri tabaniprogramlama 12.10.2012Veri tabaniprogramlama 12.10.2012
Veri tabaniprogramlama 12.10.2012Sevdanur Genc
 
İleri Seviye T-SQL Programlama - Chapter 04
İleri Seviye T-SQL Programlama - Chapter 04İleri Seviye T-SQL Programlama - Chapter 04
İleri Seviye T-SQL Programlama - Chapter 04Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 02
İleri Seviye T-SQL Programlama - Chapter 02İleri Seviye T-SQL Programlama - Chapter 02
İleri Seviye T-SQL Programlama - Chapter 02Cihan Özhan
 

Similar to Anahtarlar Ve Tablolar Arasi Iliskiler (14)

Tablolar arası ilişkiler
Tablolar arası ilişkilerTablolar arası ilişkiler
Tablolar arası ilişkiler
 
EXCELL 2007'DE 4 İŞLEM
EXCELL 2007'DE 4 İŞLEMEXCELL 2007'DE 4 İŞLEM
EXCELL 2007'DE 4 İŞLEM
 
Access 2013 Hafta 2
Access 2013 Hafta 2Access 2013 Hafta 2
Access 2013 Hafta 2
 
Sunu
SunuSunu
Sunu
 
Temel Düzeyde MySQL ve PHP Eğitimleri 2
Temel Düzeyde MySQL ve PHP Eğitimleri 2Temel Düzeyde MySQL ve PHP Eğitimleri 2
Temel Düzeyde MySQL ve PHP Eğitimleri 2
 
Veritabani Programlama MySQL III. Egitimi
Veritabani Programlama MySQL III. EgitimiVeritabani Programlama MySQL III. Egitimi
Veritabani Programlama MySQL III. Egitimi
 
Veri Tabanı,tablo oluşturma ve düzenleme
Veri Tabanı,tablo oluşturma ve düzenlemeVeri Tabanı,tablo oluşturma ve düzenleme
Veri Tabanı,tablo oluşturma ve düzenleme
 
Ders1
Ders1Ders1
Ders1
 
Ferruh asvaroglu ceit 418
Ferruh asvaroglu ceit  418Ferruh asvaroglu ceit  418
Ferruh asvaroglu ceit 418
 
Microsoft Office Access 2013 Hafta 7
Microsoft Office Access 2013 Hafta 7Microsoft Office Access 2013 Hafta 7
Microsoft Office Access 2013 Hafta 7
 
Veri tabaniprogramlama 12.10.2012
Veri tabaniprogramlama 12.10.2012Veri tabaniprogramlama 12.10.2012
Veri tabaniprogramlama 12.10.2012
 
MS Access 2013
MS Access 2013MS Access 2013
MS Access 2013
 
İleri Seviye T-SQL Programlama - Chapter 04
İleri Seviye T-SQL Programlama - Chapter 04İleri Seviye T-SQL Programlama - Chapter 04
İleri Seviye T-SQL Programlama - Chapter 04
 
İleri Seviye T-SQL Programlama - Chapter 02
İleri Seviye T-SQL Programlama - Chapter 02İleri Seviye T-SQL Programlama - Chapter 02
İleri Seviye T-SQL Programlama - Chapter 02
 

More from Sevdanur Genc

BANKACILIK 2023-2024 GÜZ FİNAL SINAV PRORAMI.pdf
BANKACILIK 2023-2024 GÜZ FİNAL SINAV PRORAMI.pdfBANKACILIK 2023-2024 GÜZ FİNAL SINAV PRORAMI.pdf
BANKACILIK 2023-2024 GÜZ FİNAL SINAV PRORAMI.pdfSevdanur Genc
 
Bilisim Hukuku Ders Notlarina bir örnek olarak paylaşılmıştır
Bilisim Hukuku Ders Notlarina bir örnek olarak paylaşılmıştırBilisim Hukuku Ders Notlarina bir örnek olarak paylaşılmıştır
Bilisim Hukuku Ders Notlarina bir örnek olarak paylaşılmıştırSevdanur Genc
 
Veritabani Programlama - Oracle V.Egitim - Materialized View Kullanimi
Veritabani Programlama - Oracle V.Egitim - Materialized View KullanimiVeritabani Programlama - Oracle V.Egitim - Materialized View Kullanimi
Veritabani Programlama - Oracle V.Egitim - Materialized View KullanimiSevdanur Genc
 
Veritabani Programlama - Oracle IV.Egitim - View Kullanimi
Veritabani Programlama - Oracle IV.Egitim - View KullanimiVeritabani Programlama - Oracle IV.Egitim - View Kullanimi
Veritabani Programlama - Oracle IV.Egitim - View KullanimiSevdanur Genc
 
Veritabani Programlama - Oracle I.Egitim - SQL Komutlari
Veritabani Programlama - Oracle I.Egitim - SQL KomutlariVeritabani Programlama - Oracle I.Egitim - SQL Komutlari
Veritabani Programlama - Oracle I.Egitim - SQL KomutlariSevdanur Genc
 
Veritabani Programlama - Oracle Kurulumu
Veritabani Programlama - Oracle KurulumuVeritabani Programlama - Oracle Kurulumu
Veritabani Programlama - Oracle KurulumuSevdanur Genc
 
Veritabani Programlama MySQL II. Egitimi
Veritabani Programlama MySQL II. EgitimiVeritabani Programlama MySQL II. Egitimi
Veritabani Programlama MySQL II. EgitimiSevdanur Genc
 
Veritabani Programlama MySQL I. Egitimi
Veritabani Programlama MySQL I. EgitimiVeritabani Programlama MySQL I. Egitimi
Veritabani Programlama MySQL I. EgitimiSevdanur Genc
 
MsSql Server'da Veri Tabani Calismalari
MsSql Server'da Veri Tabani CalismalariMsSql Server'da Veri Tabani Calismalari
MsSql Server'da Veri Tabani CalismalariSevdanur Genc
 

More from Sevdanur Genc (11)

BANKACILIK 2023-2024 GÜZ FİNAL SINAV PRORAMI.pdf
BANKACILIK 2023-2024 GÜZ FİNAL SINAV PRORAMI.pdfBANKACILIK 2023-2024 GÜZ FİNAL SINAV PRORAMI.pdf
BANKACILIK 2023-2024 GÜZ FİNAL SINAV PRORAMI.pdf
 
Bilisim Hukuku Ders Notlarina bir örnek olarak paylaşılmıştır
Bilisim Hukuku Ders Notlarina bir örnek olarak paylaşılmıştırBilisim Hukuku Ders Notlarina bir örnek olarak paylaşılmıştır
Bilisim Hukuku Ders Notlarina bir örnek olarak paylaşılmıştır
 
What Is Basecamp?
What Is Basecamp?What Is Basecamp?
What Is Basecamp?
 
Veritabani Programlama - Oracle V.Egitim - Materialized View Kullanimi
Veritabani Programlama - Oracle V.Egitim - Materialized View KullanimiVeritabani Programlama - Oracle V.Egitim - Materialized View Kullanimi
Veritabani Programlama - Oracle V.Egitim - Materialized View Kullanimi
 
Veritabani Programlama - Oracle IV.Egitim - View Kullanimi
Veritabani Programlama - Oracle IV.Egitim - View KullanimiVeritabani Programlama - Oracle IV.Egitim - View Kullanimi
Veritabani Programlama - Oracle IV.Egitim - View Kullanimi
 
Veritabani Programlama - Oracle I.Egitim - SQL Komutlari
Veritabani Programlama - Oracle I.Egitim - SQL KomutlariVeritabani Programlama - Oracle I.Egitim - SQL Komutlari
Veritabani Programlama - Oracle I.Egitim - SQL Komutlari
 
Veritabani Programlama - Oracle Kurulumu
Veritabani Programlama - Oracle KurulumuVeritabani Programlama - Oracle Kurulumu
Veritabani Programlama - Oracle Kurulumu
 
Veritabani Programlama MySQL II. Egitimi
Veritabani Programlama MySQL II. EgitimiVeritabani Programlama MySQL II. Egitimi
Veritabani Programlama MySQL II. Egitimi
 
Veritabani Programlama MySQL I. Egitimi
Veritabani Programlama MySQL I. EgitimiVeritabani Programlama MySQL I. Egitimi
Veritabani Programlama MySQL I. Egitimi
 
MySQL Kurulumu
MySQL KurulumuMySQL Kurulumu
MySQL Kurulumu
 
MsSql Server'da Veri Tabani Calismalari
MsSql Server'da Veri Tabani CalismalariMsSql Server'da Veri Tabani Calismalari
MsSql Server'da Veri Tabani Calismalari
 

Anahtarlar Ve Tablolar Arasi Iliskiler

  • 1.
  • 2. Iletisim Icin : Blog : www.sevdanurgenc.com E - Mail : sevdanurgenc@sevdanurgenc.com nanonungunlugu@gmail.com
  • 3. Anahtarlar – Keys Mantigi Nedir ? •Bir kayıt içerisinde farklılıkları ve nitelikleri gösteren belirleyicilere anahtarlar (keys) denir. •Bir tablo içerisinde bulunabilecek anahtarlar sunlardir ; •Birincil anahtar (Primary key - PK) •Tekil anahtar (Unique key - UK) •Referans anahtar (Foreign key - FK) •Birleşik anahtardır (Composite key – CK)
  • 4. Birincil anahtar (Primary key): •Bir tablo içerisindeki satırları birbirinden ayırt eder. Birincil anahtar olan bir veri aynı tablo içerisinde tekrarlanamaz. Yine bu alandaki veri boş bırakılamaz, yani NULL değeri alamaz. Tek bir alan birincil anahtar olabileceği gibi bazı tablolarda birden fazla alanın birleşmesiyle birincil anahtar oluşabilir. Tekil anahtar (Unique key): •Tablonun tekil anahtar olarak tanımlanmış bir alanına aynı değer sadece bir kez girilebilir. Birincil anahtardan farklı olarak, tabloda bu alana ait sadece bir kayıt NULL değeri alabilir. Birincil anahtar aynı zamanda tek anahtar olarak sayılabilir fakat tek anahtarlar birincil anahtar değildirler. Referans anahtar (Foreign key): •Tablodaki bir veriyi başka tablodaki bir veri ile ilişkilendirir. İki tablo arasında yapılan bu ilişkilendirme ile referans anahtar olarak tanımlanmış alana sadece ilişkilendirdiği tablonun alanındaki veriler eklenebilir. Birleşik anahtar (Composite Key): •Birden fazla alanın birleştirilmesiyle birincil anahtar görevini üstlenecek tanımlamalar yapılabilir. Bunlar birleşik anahtar olarak adlandırılır.
  • 5.
  • 6. MsSQL’de Asagidaki Gibi Iliskilendirilmis Tablolar Arasinda Bir Diagram Olusturabilmemiz Icin Islemleri Adim Adim Yapmamiz Gerekiyor.
  • 7. Yukaridaki sekilde goruldugu gibi Object Explorer penceresinde bulunan Databases sekmesinin uzerinde Yukaridaki gibi acilan yeni pencerede Database sag tus yaparak New Name kismina Veri tabanimizin ismini veriyoruz. Databases diyoruz. OgrenciBilgiSistemi dedikten sonra OK butonuna basiyoruz.
  • 8. Simdiye kadar bildiginiz gibi tum islemlerimizi New Query penceresinde Sql cumleleri yazarak yapiyorduk. Yeni bir veri tabani olustumak icin yazmis oldugumuz komut neydi bir hatirlayalim. Create Database OgrenciBilgiSistemi sql cumlesini New Query penceresine yazip Execute dememiz yeterli olacaktir.
  • 9. Yeni bir table olustururken bu sefer sql cumlesi yazmadan nasil olusturuluyor onu ogrenelim. Databases altindaki olusturmus oldugumuz OgrenciBilgiSistemi veri tabanimizin hemen altinda bulunan Tables klasoru uzerindeyken sag tus yapiyoruz ve acilan listeden New Table komutunu tikliyoruz.
  • 10. Yeni table’imizin kolon ismini, veri tipini ve bos gecilip gecilemeyecegine dair bilgileri girebilecegimiz tablo dizaynini yapabilirsiniz. Tablonuzda birincil anahtariniz icin belirlemis oldugunuz alaninin uzerinde sag tus yaptiginizda acilan listeden Set Primary Key secenegini tiklamaniz yeterli olacaktir. Ayni zamanda yukaridaki arac cubugunda bulunan anahtar simgesinide tiklayabilirsiniz.
  • 11. Table’imiz icin gerekli alan ve veri tiplerini asagidaki gibi olusturuyoruz. Column Name ile alan isimlerimizi, Data Type ile girmis oldugumuz alanin veri turunu ve Allow Nulls ile de alanimiza girilecek verinin olup olmadigi, o alana veri girilip girilmeyecegi ile ilgili kisimdir. Son olarakta birincil anahtarinizi olusturabilecegimiz sekilde alanin uzerindeyken set primary keys’i tiklariz.
  • 12. Sql cumlelerini kullanarak yeni bir tablo olusturmak isteseydik ne yapmamiz gerekiyordu inceleyelim. Asagidaki gordugunuz create table sorgusunda bulunan primary key clustered ifadesi ile o alana eklemis oldugumuz ifadeyle birincil anahtar ozelligini katmis oluyoruz. Not Null ifadeleri ile o alanlari veri girerken asla bos gecemeyeceginiz anlamina gelmektedir.
  • 13. Istediginiz yontemi kullanarak Dersler tablomuzu olusturalim.
  • 17. Create Database OgrenciBilgiSistemi CREATE TABLE Fakulteler( FakulteNo int NOT NULL PRIMARY KEY CLUSTERED, FakulteAdi nchar(10) ) CREATE TABLE Bolumler( BolumNo int NOT NULL PRIMARY KEY CLUSTERED , BolumAdi nchar(10), FakulteNo int Not NULL ) CREATE TABLE Dersler( DersNo int NOT NULL PRIMARY KEY CLUSTERED, DersAdi nchar(10), BolumNo int NOT NULL, TeorikKredi int, UygulamaKredi int, )
  • 18. CREATE TABLE Ogrenciler( OgrenciNo int NOT NULL PRIMARY KEY CLUSTERED, OgrenciAdi nchar(10), OgrenciSoyadi nchar(10), Cinsiyet nchar(10), DogumTarihi nchar(10), BolumNo int NOT NULL ) CREATE TABLE Notlar( OgrenciNo int NOT NULL PRIMARY KEY CLUSTERED, DersNo int NOT NULL, Vize int, Final int, Butunleme, Durum nchar(10) )
  • 19. Tablomuzu olusturduktan sonra veri girisi yapabilmemiz icin tablo uzerinde sag tus yapip acilan listede Edit Top 200 Rows secenegini tiklariz. Eger tabloya girilmis olan verileri gormek istiyorsaniz da yine tablo uzerinde sag tus yapip acilan listeden karsiniza gelen Select Top 1000 Rows secenegini tiklayabilirsiniz. Tablonuzdaki alanlarda yada alanlarin sahip oldugu veri turlerinde degisiklik yapmak istiyorsaniz yine o tablonun uzerinde sag tus yapip acilan listede Design secenegini secmeniz yeterli olacaktir.
  • 20. Olusturmus oldugumuz veritabanina tablolardaki birincil anahtarlar uyacak sekilde tutarli veriler girelim. Girilen veriler arasindaki iliskilere dikkat ediniz.
  • 21. Ogrenciler ve Notlar tablolari arasinda iliski olusturalim. Select Ogrenciler.OgrenciNo, Ogrenciler.OgrenciAdi, Ogrenciler.OgrenciSoyadi, Notlar.Vize, Notlar.Final, Notlar.Butunleme, Notlar.Durum From Ogrenciler, Notlar Where Notlar.OgrenciNo = Ogrenciler.OgrenciNo
  • 22. Tablolar arasindaki iliskinin sonucu asagidaki gibidir.
  • 23. Tablolar arasindaki iliskiyi basit bir sekilde Where sartinin icerisinde And operatorunu kullanarak kullanalim. Select Ogrenciler.OgrenciNo, Ogrenciler.OgrenciAdi, Ogrenciler.OgrenciSoyadi, Bolumler.BolumAdi, Fakulteler.FakulteAdi, Dersler.DersAdi , Notlar.Vize, Notlar.Final, Notlar.Butunleme, Notlar.Durum From Ogrenciler, Bolumler, Notlar, Dersler, Fakulteler Where Bolumler.BolumNo = Dersler.BolumNo And Bolumler.FakulteNo = Fakulteler.FakulteNo And Dersler.DersNo = Notlar.DersNo And Notlar.OgrenciNo = Ogrenciler.OgrenciNo
  • 24. Tablolar arasindaki iliskinin sonucu asagidaki gibidir.
  • 25. Tablolar arasi iliskiyi Diagram seklinde inceleyecek olursak;  Sekulde vermis oldugumuz birincil anahtarlarin iliskili oldugu tablolardaki alanlara dikkat ediniz.
  • 26.
  • 27. ODEV  Kutuphane Bilgi Sistemini olusturunuz.  Icerisine mantikli veriler giriniz.  Tablolar arasi iliskiyi saglayiniz.  Bunlarla ilgili tum sql cumlelerini ve ekran goruntulerini bir word belgesinde rapor halinde sununuz.
  • 28. Soru ve odev teslimleriniz icin mail adresinden ulasabilirsiniz… nanonungunlugu@gmail.com