You are on page 1of 34

ETM : VER TABANINA GR VE TEMEL VER TABANI KAVRAMLARI

Blm : Veri Tabanna Giri

Konu : Veri Tabanna Giri

Veri Nedir?
Veri taban (Database) kavramna girmeden nce veriyi ksaca tanmlamak nemlidir. Veri, (data) bir veya birden fazla bilgiden oluan bir kmedir. sim, ya, telefon numaras, bir toplama ileminin sonucu ya da bir snfn ya ortalamas birer veridir. Bir veritaban yaps ierisinde tutulan bilgilere veri denilmektedir. Bilgisayar ortamna aktarlan, ilenmemi (ham) bilgiler de veri olarak adlandrlabilir. Bilgisayara girilen, bilgisayar tarafndan saklanabilen ve ilenebilen hereye veri denir.

Veri Neden Saklanr?


Veri saklamaktaki ana ama, daha ileri bir tarihte saklanan verilere yeniden ulaabilmek ve kullanabilmektir. Kullanma sreci sadece verinin listelenmesi gibi basit bir ilem olabilecei gibi, veriler zerinden hesaplamalar yaplarak raporlar hazrlanmas gibi daha karmak bir ilem de olabilir. imdi sra geldi veriyi nasl saklayabileceimizi renmeye.

Veri Saklama Yntemleri


Verileri saklamak iin eitli ortamlar tercih etmek mmkndr. Verilerin klasi k yntem ile kalem kullanarak bir dosya kadna satr satr yazlmas da bir veri saklama yntemidir, bilgisayar zerinde notepad kullanarak metin tabanl basit bir dosyada depolanmas da bir veri saklama yntemidir. Daha dzenli ve detayl bir ekilde veri saklamamz salayacak yntemler arasnda, tablo yapsnda veri saklamamz salayan Excel ve Access gsterilebilir. Veri saklama ilemini bir rnek ile detaylandralm: Bakkal ve marketlerde veresiye sat yapldnda mterinin ald rnlerin ad, miktar, fiyat gibi bilgiler bir veresiye defteri ierisinde mteriye ait bir sayfada saklanr. Bu ekilde bakkaln sahibi, gerektiinde ilgili mterinin sayfasn ap hangi rnlerden ne kadar miktarda aldn ve bor toplamnn ne kadar olduunu hesaplayabilir. Fakat verinin bu ekilde saklanmas birok adan kt sonulara yol aabilir. Verilerin kttan yaplm bir defterde tutulmas dzensizliklere ve karklklara yol aabilecei gibi yrtlma, slanma, kaybolma gibi veri kaybna sebep olabilecek risklere de aktr. O zaman gelin biz bu defterdeki verileri bilgisayar ortamnda saklayalm. Bilgisayarmzda veresiye adnda bir klasr oluturalm. Bu klasr ierisine Notepad gibi bir metin editr ile her mterimiz iin bir metin dosyas aalm. Atmz dosyalarn adlarna, daha sonra kolay bir ekilde ulaabilmek iin bir numara verelim. (rnein Ahmet isimli mterimiz iin 302 numarasn verelim) Bu metin dosyasndan faydalanarak, defterde tuttuumuz verileri daha dzenli bir ekilde saklayabiliriz. Bu bilgileri dzenli bir ekilde kaydedip, yedekleyerek bamza gelebilecek veri kayplarn da en aza indirebiliriz. kinci senaryomuz, yani verileri bilgisayarda saklamamz ilk senaryodaki veresiye defterine gre elbette ki daha esnek, hzl ve salkl bir yntem olacaktr. Fakat bir metin dosyas zerinde girilen verilere mdahale etme ansmz pek olmayacaktr. rnein cret bilgisinin yazlaca alana 40, 40,5 veya krk gibi farkl tipte veriler girilebilir ya da cret ksm bo braklabilir. Bu ekilde kaydedilen bir dosyann daha sonra baz karklklara yol aabilme riski yksektir. Peki, bu bilgiler zerine yeni veri eklemek, istediimiz kstaslara gre veri semek, var olan veriyi deitirmek veya veriler zerinde ilemler yapmak istediimizde ok iyi sonulara ulaabilir miyiz? Elbette ki bu tip ilemleri metin dosyas zerinde yapmamz biraz olsun iimizi kolaylatracaktr. Fakat Daha iyi bir yol olabilir mi? diye dnecek olursak cevab kesinlikle Evet olacaktr.

2/34

ETM : VER TABANINA GR VE TEMEL VER TABANI KAVRAMLARI

Blm : Veri Tabanna Giri

Konu : Veri Taban Nedir?

3/34

Veri taban (Database) temel olarak farkl tiplerdeki verileri dzenli bir ekilde saklamamz ve kullanmamz salayan depolama ortamdr. Bu ortam ierisinde verileri saklayabilir, onlara kolay bir ekilde ulaabilir ve gerektiinde bu verilerin zerinde deiiklikler yapabiliriz. Veri taban, veriler arasnda btnlk ve dzen salarken, veriye hzl eriim ve bakm kolayl da sunar. Bu sistemin kullanlmas sonucu veriyi hatasz ve salkl bir biimde ilemek de kolaylar. Bir veri taban sistemi zerinde istediimiz verileri depolayabilir, depolanan verileri arrken baz artlar belirtebilir, verileri deitirebilir veya silebiliriz. lerleyen konularda reneceimiz T -SQL dili ile aadaki rnekleri ok basit bir ekilde gerekletirebileceiz: Burak Batur isimli mterinin bor bilgisine 1,5 YTL fiyatyla 2 adet margarin ekle. Burak Batur isimli mterinin satn ald tm rnlerin listesini getir. Ercan Bozkurt isimli mterinin 1 Ocak 2011 ile 10 ubat 2011 tarihleri arasnda satn ald tm rnleri getir. Ferda Demir isimli mterinin toplam bor bilgisini getir. Tm mterilerin toplam bor bilgisini getir.

Bu rnekleri geniletmemiz ve arttrmamz elbette mmkn. Fakat imdilik bu rnekler bir veri taban sistemi zerinde ne gibi ilemler yapabileceimizi grmemiz asndan yeterli bir temel tekil edecektir. Gnmzde veritabanlar hemen hemen her alanda sklkla kullanlmaktadr. Bu alanlara rnek verecek olursak; Kiisel adres defterleri Telefon rehberi TV rehberi Online szlkler Ktphane sistemleri deme ve bor sistemleri rn sat ve sipari sistemleri E-Ticaret siteleri Banka sistemleri Okul sistemleri Hastane sistemleri

gibi birok alanda gerekli bilgiler veritabanlarnda tutulmaktadr. rnein bir ktphan eden dn aldmz kitaplarla ilgili olarak, kitap ad, al tarihi, geri veri tarihi gibi bilgiler veri tabanndaki bir tabloda tutulmaktadr. Ktphanedeki grevli istedii zaman kaytl bir kullanc ile ilgili bilgilere ulaabilmektedir.

4/34

ETM : VER TABANINA GR VE TEMEL VER TABANI KAVRAMLARI

Blm : Veri Tabanna Giri

Konu : Veri Taban Ynetim Sistemleri

5/34

Veri Taban Ynetim Sistemleri (DataBase Management System - DBMS), veri tabannda tutulacak olan verilerin uyaca standartlar, bu verilere nasl eriilebileceini ve verilerin disk zerinde nasl tutulacan belirleyen sistemlerdir. Bu sistemler araclyla verilerin btnl ve gvenlii salanmaktadr. Programlarn veya sistemlerin veri taban ierisindeki verilere kolay ve hzl bir ekilde eriebilmesini ve verileri yedekleyebilmesini salamaktadr. Bu sistemler, birden fazla veri taban zerinde ilemler yapabilecek ekilde tasarlanmtr. Bunlarn yansra, olabilecek felaket senaryolar (disaster case) karsnda, veri tabannn sorunsuzca ileyebilmesi iin tedbirler almaktadr.

likisel Veri Taban Ynetim Sistemleri


Gelien bilgi teknolojileri ile birlikte, veri taban sistemlerinde de birok yenilikler olmutur. lk veri taban sistemlerinde veriler geliigzel bir ekilde depoland iin veriler zerinde deiiklikler yapmak zor bir ilemdi. Kullanclarn veriler zerinde deiiklik yapabilmesi iin veri tabannn yapsn iyi bilmesi gerekiyordu. Yine bu sistemler tam olarak veri btnln ve gvenliini salayamyordu. Gnmzde en yaygn olarak kullanlan veri taban mimarisi olan ilikisel veritabanlarnda ise veriler tablolar, satrlar ve alanlar halinde tutulmaktadr. Bu sayede veriler arasnda ilikilendirmeler yaplabilmekte, verilerin kullanm ve ynetimi daha verimli hale getirilmektedir. likisel veri taban mimarisini kullanan sistemlere ise likisel Veri Taban Ynetim Sistemi (Relational Database Management System - RDBMS) ad verilmektedir. Gnmzde en sk kullanlan ilikisel veri taban ynetim sistemleri arasnda Microsoft SQL Server , Oracle , Microsoft Access , PostgreSQL , Sybase , MySQL , Berkeley ve Firebird gsterebiliriz. Bir veri tabann doru bir biimde tasarlayabilmek iin varlklar arasndaki ilikileri (entity relationship) iyi ekilde kavramak gerekmektedir. Verileri gerek hayat ile ilikilendirip, aralarndaki balantlar oluturup, veri tabannn mantksal ablonu karlmaldr. SQL Server gibi bir RDBMS ile hazrlanan veri tabannda yer alacak veriler, tablolar ve alanlar (stunlar) ierisinde tutulur. Tablolara kaydedilecek olan verilerin kendilerine ait uygun veri tipleri belirlenip, girilecek olan deerler iin baz snrlandrmalar getirilebilir. Yine veriler arasnda ilikilendirmeler yapp, veri tabanna ilikisel bir yap kazandrlabilir. SQL (Structered Query Language) dili ile sorgular oluturarak RDBMS zerinden veri taban ile iletiim kurulabilir. Veri taban tasarlanrken, verilerin gerek dnyada aralarnda olan ilikilerini gz nne aldmzda, verileri ilikilendirmemiz daha da kolaylar. rnein bir niversite iin temel olarak faklteleri, blmleri ve rencileri ele aldmzda blm ile faklte arasnda ve renci ile blm arasnda baz ilikiler olacaktr. Alt birimden st birime doru bir sralama yaptmzda renci-blm-faklte gibi bir ilikilendirme ortaya kmaktadr. Byle bir senaryoda, veri taban tasarlanrken renci, blm ve faklte arasndaki ilikiler ele alnarak tablolar tasarlanabilir ve gerekli ilikilendirmeler yaplabilir. Aadaki ekilde renci, blm ve fakltenin ilevleri ve aralarndaki ilikilerin ekle dklm hali bulunmaktadr.

Faklte, blm ve rencilerin ekil zerinde tanmlanmas ve ilikilendirilmesi

6/34

ETM : VER TABANINA GR VE TEMEL VER TABANI KAVRAMLARI

Blm : Veri Tabanna Giri

Konu : SQL Server Management Studio

7/34

SQL Server nereden indirilir?


http://www.microsoft.com/download adresini taraycnda ap, arama kutusuna sql server 2008 r2 express yazarak arama ilemini balattktan sonra, gelen sonular arasndan Microsoft SQL Server 2008 R2 RTM Express with Management Tools linkini takip ederek indirme sayfasna ulaabilirsin. Bu sayfada iletim sistemine uygun olan srm (32-bit veya 64-bit) indirebilirsin. Detaylarn anlatld videoyu izlemek iin aadaki simgeye tkla.

SQL Server Kurulumu


SQL Server kurulumu ile ilgili detaylar kurulum videomuzda bulabilirsin.

SQL Server Management Studio


Veri taban zerinde gerekletirilecek olan ilemleri, programlama dilleri araclyla yapabildiimiz gibi SQL Server Management Studio uygulamasyla da gerekletirebiliriz. SQL Server Management Studio, Microsoft SQL Server 2008 R2 RTM Express with Management Tools kurulumu srasnda makinana yklenecektir. SQL Server makinanda daha nceden kurulu ise ve sen sadece Management Studioyu indirmek istiyorsan; http://www.microsoft.com/download adresini taraycnda ap, arama kutusuna management studio express yazarak arama ilemini balattktan sonra, gelen sonular arasndan Microsoft SQL Server 2008 Management Studio Express linkini takip ederek indirme sayfasna ulaabilirsin. Bu sayfada iletim sistemine uygun olan srm (32-bit veya 64-bit) indirip kurabilirsin.

SQL Server Management Studio zerinde Sorgularla almak


SQL Server Management Studio, Microsoft SQL Server ile birlikte gelmi olan yeni bir sorgulama ve ynetim aracdr. Management Studio, SQL Server veritabanlarna erime, veritabanlar zerinde ayarlama ilemlerini gerekletirme, ynetim ve veri taban zerinde sorgular altrma gibi ilemleri yapabilmektedir. Yine Management Studio zerinde SQL Server projeleri oluturulup, almalarn Visual Studio ortamnda olduu gibi proje eklinde kaydedilip, daha sonra bu projeler zerinde gelitirme ilemleri yaplabilmesi salanmaktadr. SQL Server Management Studio ayn zamanda, veri taban zerinde T -SQL sorgularn altrmak, sonularn grmek, sorgular analiz etmek ve veri taban zerinde baz ayarlamalar yapmak iin de kullanlabilir. SQL Server Management Studio ile yapabilecein ilemler ve sunulan kolaylklardan bazlarn aada liste halinde bulabilirsin. Veri taban ve tablolar zerinde yaplabilecek tm sorgu ilemlerinin gerekletirebilecei, kodlar renklendirilerek sorgularn daha anlalr olmasn salayan metin edit rn kullanmak. alan sorgularn sonularn grmek. Hazrlanan sorgularn test edilmesi. Sorguda bir hata olmas durumunda hatann nerede olduunu ve neden kaynaklandn kolayca grebilmek. Bal olunan veri taban zerindeki tablolar ve dier nesne leri arayz zerinden grebilmek. (Object Browser aracl ile) Birok SQL sorgusunun hazr olarak bulunduu ablonlar (template) kullanmak. Bu ablonlar yardmyla kolay bir ekilde sorgular hazrlayabilmek.

8/34

SQL Server Management Studio, Microsoft tarafndan SMO (SQL Server Management Object) ktphanesinden yararlanlarak Visual Studio ile .NET Framework kullanlarak gelitirilmitir. SQL Server Management Studioyu amak iin Trke iletim sistemlerinde Balat > Programlar > Microsoft SQL Server mensnden SQL Server Management Studio uygulamasn balatmalsn. Management Studio aldnda karmza ilk olarak bir SQL Server sunucusuna ulamamz iin bir balant penceresi gelecektir. Bu pencereden Server Type, Server Name ve Authentication seeneklerinden balanacamz sunucunun zelliklerine gre uygun seenekleri girerek balant yapabiliriz. Kendi bilgisayarmzdaki SQL Server sunucusuna balanmak istediimizde, Server Name ksmnda makina admz ve bilgisayarmzda kaytl olan SQL Servern ismini (instance name) yazmamz gerekir. Uzak bir bilgisayar zerindeki SQL Server sunucusuna balanmak iin ise Server Name ksmna balanlacak bilgisayarn IP numaras veya uzak sunucudaki SQL Servern alan ad (domain name) yazlr. Windows zerinde o an giri yapm olan kullancnn hesab ile balant yapmak iin Windows Authentication seeneini sememiz yeterli olacaktr. Balanlacak SQL Server zerindeki bir kullanc ile giri yapmak iin ise SQL Server Authentication seip sunucuya balanma yetkisi olan kullanc ad ve ifreyi girmemiz gerekecektir. Connect butonuna tkladmzda girilen bilgiler doru ise SQL Server sunucusuna balanlacaktr.

SQL Server Management Studio balant ekran Management Studio ile bir SQL Server sunucusuna balandmzda karmza gelen arayzde Object Explorer, Template Explorer ve Object Explorer Details pencereleri yer alabilmektedir. (Bu pencerelerden herhangi biri ak deilse, View mensnden alp tekrar kapatlabilir.)

9/34

SQL Server Management Studio genel grnm Object Explorer: Bal bulunan SQL Server sunucusu zerinde bulunan tm nesneleri (veritabanlar, tablolar, kullanclar vb.) aa yaps biiminde grntlememizi ve bu yaplarn ierisinde gezinmemizi salar. Yine Object Explorer zerinden yeni veri taban oluturma, tablo ekleme, varolan nesneleri silme gibi ilemler yaplabilmektedir. Grntlenen nesneler zerinde filtreleme ilemleri yaplabilmektedir. Management Studio ile birden fazla SQL Server sunucusuna balanabilir, bal bulunduun tm sunucular Object Explorer penceresi ierisinde grntleyebilir ve zerlerinde ilemler yapabilirsin. Object Explorer zerinde yapabilecein baz temel ilemler unlardr: Yeni bir SQL Server sunucusuna balanmak iin Object Explorer penceresinin sol st kesinde yer alan Connect butonu aracl ile ayn anda birden fazla SQL Server sunucusuna balanlabilir. Bal olduun SQL Serverda sorgu altrmak iin, sunucu adnn zerine sa tklayp New Query seenei seilir. Bir veritaban zerinde sorgu altrmak iin o veritabannn zerine sa tklayp New Query seenei seilir. Veritabanna yeni bir tablo eklemek iin veritaban iindeki Tables ksmnda sa tklayarak New Table seenei seilir. Bir tablonun yapsn incelemek ve deiiklikler yapmak iin tablo zerine sa tklayp Design seenei seilir. Bir tablo ierisindeki kaytlar grmek iin tablo zerine sa tklayp Select Top 1000 Rows seeneini kullanmak gerekir.

10/34

Object Explorer Details: Bu ekranda ise Object Explorer ierisinde o an iin seilmi olan nesnenin ierii grntlenmektedir. Pencerenin kendi ierisinden bir stteki veya bir alttaki yaplara ulalabilir. Veri taban ierisinde gezinme ilemlerini daha kolay hale getirmek iin bu pencere kullanlabili r. Template Explorer: SQL Servern ierisinde gelen ve baz ilemleri basit bir ekilde yapmamz salayan sorgu ablonlar(template) bulunmaktadr. Bu ablonlar ierisinde birok ilevi yerine getiren SQL sorgu cmleleri bulunur. Template Explorer ierisindeki sorgu ablonlarn ap gerekli deiiklikleri yaparak sorgular altrlabilir ve hzl bir ekilde ilemler gerekletirebilirsin. ablon ierisinde deitirilmesi gereken parametreler, Query mensnden Specify Values for Template Parameters seenei ile kan pencerede gerekli parametreler girilerek dzenlenebilir.

Specify Values for Template Parameters ekranndan template ierisindeki parametreler kolay bir ekilde deitirebilir Management Studioda SQL Komutlar ile almak

Template Explorer ierisinde bulunan hazr SQL sorgu ablonlar

Management Studio ierisinde SQL komutlar altrmak iin komutlarn altrlaca veritaban zerine sa tklayp New Query seeneini semelisin. Alan pencerede, SQL cmleleri yazp, tes t edebilir ve altrlabilirsin. Yazlan SQL sorgularn test etmek iin Query mensnden Parse seeneini kullanabilir veya CTRL+F5 tu kombinasyonunu ksayol olarak kullanabilirsin. Test etme ilemi sadece yazlan kodlarn doru olup olmadn kontrol etmek iin yaplan bir ilemdir. Test edilen kodlar altrlmaz, yani veri taban veya tablolar zerinde herhangi bir ilem gereklemez. Test ilemi sonucunda eer yazm olduun SQL ifadelerinde bir hata varsa, alt ksmda alan bir pencerede hatann neden kaynakland ve kodun neresinde olutuunu grebilirsin. Hazrladn SQL ifadelerini altrmak iin ise Query mensnden Execute seeneini seebilir veya F5 tuunu ksayol olarak kullanabilirsin. Test ileminden farkl olarak altrma ileminde veritaban hazrlanan sorgu sonularndan etkilenecektir. Sorgu altrma ekrannda birden fazla SQL ifadesi yazabilir ve bunlardan sadece istediin ksm altrabilirsin. altrmak istediin SQL kodlarn seerek Execute (F5) ilemini yaparak, sadece seili alandaki kodlar altrabilirsin.

Query penceresi ierisinde sadece iaretli alandaki sorgular altrlr

11/34

ETM : VER TABANINA GR VE TEMEL VER TABANI KAVRAMLARI

Blm : Veri Tabanna Giri Konu : Temel Veri Taban Kavramlar

12/34

SQL (Yapsal Sorgulama Dili)


SQL, yani Structered Query Language (Yapsal Sorgulama Dili) tm ilikisel veritabanlarnda standart olarak kullanlan bir dildir. SQL veritaban ile kullanc arasndaki iletiimi salar. Bu dil araclyla hazrladn sorgular kullanarak veritabannda depolanan veriler zerinde btn ilemleri yapabilirsin. SQL dilinin standartlar ANSI (American National Standart Institute) ve ISO (International Standar ts Organization) tarafndan salanmakla birlikte, gnmzde en yaygn olarak ANSI standartlar kullanlmaktadr.

T-SQL (Transact SQL)


T-SQL, Transact SQL ad verilen bir SQL dilidir. SQL dilinin Microsoft SQL Server zerinde kullanlan srmdr. Daha iyi performans salamas iin SQL dili zerine eklentiler ve fonksiyonellikler eklenerek oluturulmutur. Veri tabanndan bamsz olarak, bir programlama dili araclyla kullancdan gelen T -SQL sorgularnn sonular ilikisel veri taban ynetim sistemi (RDBMS) tarafndan oluturularak kullancya gnderilir. Bu ekilde kullanc, veri taban ile birebir uramakszn, sadece sorgular yazarak veri taban zerinde ilemler yapabilir, veri tabanndan gelen sonular program veya bir web sayfas zerinde grntleyebilir.

T-SQL fade Tipleri


T-SQL ierisinde 3 farkl ifade tipi bulunmaktadr. Veri Tanmlama Dili (Data Definition Language) Veri Kontrol Dili (Data Control Language) Veri leme Dili (Data Manipulation Language)

Bu ifade tipini de eitimimiz ierisinde yeri geldike inceleyeceiz.

13/34

ETM : VER TABANINA GR VE TEMEL VER TABANI KAVRAMLARI

Blm : Veri Tabanna Giri

Konu : Veri Tanmlama Dili (DDL)

14/34

Veri Tanmlama Dili (Data Definition Language - DDL)


Veri tabannda nesneler oluturmak iin gerekli olan ifadeleri salamaktadr. Bu ifadeler, veri taban veya tablo gibi yeni bir nesnenin oluturulmas, var olan nesne zerinde deiiklikler yaplmas veya nesnenin yok edilmesi iin kullanlr. zerinde ilem yaplan nesnenin ne gibi zellikleri ve alanlar olaca bu ifadeler ierisinde belirlenir. T-SQL dilinde 3 adet veri tanmlama ifadesi bulunmaktadr. Bunlar: CREATE ALTER DROP

ifadeleridir. CREATE nesne oluturmak, ALTER var olan bir nesne zerinde deiiklikler yapmak, DROP ise varolan bir nesneyi kaldrmak iin kullanlmaktadr. CREATE Veri taban zerinde nesne oluturmak ya da tanmlamak iin kullanlan komuttur. Oluturulacak nesnenin zelliklerine gre farkl parametreler alabilmektedir. Genel kullanm u ekilde olmaktadr: CREATE NESNETP Nesne Ad (Nesneye ait gerekli tanmlamalar) Aada CREATE ifadesi ile ilgili inceleyebilecein rnek bir kullanm bulunmaktadr. CREATE DATABASE Universite ON ( NAME = Universite, FILENAME = 'C:\universite.mdf', SIZE = 4mb, MAXSIZE = 10mb, FILEGROWTH = 1mb ) Yukardaki ifadede Universite adnda yeni bir veri taban oluturuyoruz. ON ( ) ksmnda oluturulan veri tabannn zellikleri belirleniyor. NAME deeri ile oluan birincil veri taban dosyasnn adn, FILENAME deeri ile veri taban dosyasnn nereye ve ne isimle yazlacan, SIZE deeri ile dosyann balangta diskte ne kadar yer kaplayacan, MAXSIZE ile dosyann diskte en fazla ne boyuta kadar byyebileceini, FILEGROWTH ile de dosyann ne kadarlk boyutlarla byyeceini belirlemektedir. Sadece CREATE DATABASE Universite ifadesini kullanarak ta Universite isimli bir veri taban oluturabiliriz. Bu durumda oluturacamz veri taban sistem tarafndan atanm olan varsaylan ayarlamalara gre oluturulacaktr. ALTER Varolan bir nesne zerinde deiiklikler yapmak iin kullanlr. CREATE komutunda olduu gibi deitirecei nesneye gre farkl parametreler alabilmektedir. Genel kullanm aadaki gibidir. ALTER NESNETIPI Nesne Ad Yaplacak Deiiklik Aadaki rneklerde ALTER ifadesi kullanlarak varolan bir tablo zerinde nasl deiiklikler yaplabilecei gsterilmitir.

15/34

ALTER TABLE Ogrenci ALTER COLUMN AdSoyad NVARCHAR(30) NOT NULL Yukardaki rnek ALTER ifadesine ainalk salamak amacyla verilmitir. DROP Veri tabanndaki herhangi bir nesneyi silmek iin kullanlr. Silinen nesne ile ilgili olarak ierisinde tuttuu tm bilgiler de silinmektedir. rnein bir tablo silindiinde ierisindeki tm bilgiler de veri tabanndan silinecektir. Kullanmnda dikkat edilmesi gereken bir sorgu ifadesidir. Genel kullanm aad aki gibidir. DROP NESNETIPI Nesne Ad Aadaki rneklerde DROP ifadesi kullanlarak varolan tablolarn nasl silinebilecei gsterilmitir. zerinde alm olduunuz veritabannda herhangi bir veri kayb yaamamak iin, nce geici olarak ilevi olmayan bir veritaban oluturup, sonra bu nesneyi DROP sorgusu ile nasl silebileceimizi grelim. CREATE DATABASE TestVeritabani GO

Yukardaki ifade ile TestVeritabani adnda bir veri taban oluturulur. GO komutu ncelikle CREATE DATABASE TestVeritabani sorgusunun almasn salar. GO ifadesi bir sorguyu altr anlamnda kullanlmaktadr. Yukardaki sorguda iki farkl sorgu cmlesi bulunmaktadr ve buradaki ikinci cmlenin alabilmesi iin ncelikle TestVeritabani isimli bir veri tabannn oluturulmas gerekmektedir. GO ifadesi nce ilk sorgunun almasn salamaktadr.

DROP DATABASE TestVeritabani DROP DATABASE ifadesi ile TestVeritabani isimli veri taban silinmektedir.

16/34

ETM : VER TABANINA GR VE TEMEL VER TABANI KAVRAMLARI

Blm : Veri Tabanna Giri

Konu : Veri Kontrol Dili (DCL)

17/34

Veri Kontrol Dili (Data Control Language - DCL)


T-SQLde veri kontrol ifadeleri veri taban zerindeki kullanclara ve rollere yetki vermek iin kullanlmaktadr. T-SQLde 3 adet veri kontrol komutu bulunmaktadr. Bu komutlar unlardr: GRANT Kullancya veritabanna eriebilmesini veya T-SQL ifadeleri altrabilmesini salayacak yetkileri verir.

DENY Kullancnn belirli bir alana eriimini engellemek veya belirli T -SQL ifadelerini altramamasn salamak amacyla kullanlr. REVOKE Daha nceden GRANT veya DENY ile verilmi yetki veya engelleri kaldrmak iin kullanlr. Veri kontrol ifadelerini altrabilmek iin veri tabanna bal olan kullancnn sysadmin, dbcreator, db_owner veya db_securityadmin rollerinden birine sahip olmas gerekmektedir.

18/34

ETM : VER TABANINA GR VE TEMEL VER TABANI KAVRAMLARI

Blm : Veri Tabanna Giri

Konu : Veri leme Dili (DML)

19/34

Veri leme Dili (Data Manipulation Language - DML)


Veri ileme ifadeleri, veri taban zerinde depolanan veriler zerinde yaplmas gereken ilemler iin kullanlan ifadelerdir. Veri seme/getirme, veri ekleme, veri gncelleme ve veri silme gibi ilemlerin yaplmasn salarlar. Toplam 4 adet veri ileme ifadesi bulunmaktadr. SELECT INSERT UPDATE DELETE

simlerinden de anlalaca gibi, SELECT tablolardan veri seme/getirme ilemini, INSERT tablolara ver i ekleme ilemini, UPDATE varolan veriler zerinde deiiklik yapma, gncelleme ilemini, DELETE ise varolan verilerin silinmesi ilemini gerekletirmektedir. SELECT Bir tablo ierisindeki verilerin tamamn getirir veya belirli artlara gre bir ksmn filtreleyerek seme ilemlerini gerekletirir. Genel kullanm ekli aadaki gibidir. SELECT SeilecekAlan1, SeilecekAlan2 FROM TabloAd rnek Kullanm: Ogrenci tablosundaki tm kaytlarn OgrenciID ve AdSoyad bilgileri aadaki sql ifadesi ile elde edilebilir. SELECT OgrenciID, AdSoyad FROM Ogrenci

Sorgu sonucunda seilen rencilerin numaralar ve ad -soyadlar

INSERT Bir tablo ierisine yeni bir veri eklemek iin kullanlr. Genel kullanm aadaki gibidir. INSERT INTO TabloAd (VeriEklenecekAlan1, VeriEklenecekAlan2, ...) VALUES (EklenecekDeer1, EklenecekDeer2, ...) rnek Kullanm: Ogrenci tablosuna, renci numaras 115874 olan 101 numaral blmden Ercan Bozkurt isimli renci, aadaki sql ifadesi yardmyla eklenebilir. INSERT INTO Ogrenci (OgrenciID, AdSoyad, BolumID) VALUES (115874, 'Ercan Bozkurt', 101)

UPDATE Bir tablo ierisinde bulunan verilerin deitirilmesi iin kullanlr. Genel kullanm aadaki gibidir.

20/34

UPDATE TabloAd Set GuncellenecekAlan1 = YeniVeri1, GuncellenecekAlan2 = YeniVeri2 WHERE Koul veya koullar rnek Kullanm: Ogrenci tablosunda ogrenci numaras 115874 olan rencinin blm kodunu 102 olarak deitirmek iin aadaki sql ifadesinden yararlanlabilir. UPDATE Ogrenci SET BolumID = 102 WHERE OgrenciID = 115874

DELETE Tablo ierisinde bulunan bir kayd veya kaytlar silmek iin kullanlr. Genel kullanm ekli aadaki gibidir. DELETE FROM TabloAd WHERE Koul veya koullar rnek Kullanm: Ogrenci tablosundaki 115874 numarasna sahip rencinin kaydn silmek iin aadaki sql ifadesinden yararlanlabilir. DELETE FROM Ogrenci WHERE OgrenciID = 115874

21/34

ETM : VER TABANINA GR VE TEMEL VER TABANI KAVRAMLARI

Blm : Veri Tabanna Giri

Konu : Veri Taban Oluturmak

22/34

DML ierisindeki create komutunu kullanarak veritaban oluturabilecein gibi, Management Studio arayzn kullanarak da veritaban oluturabilirsin. Kod Kullanarak Veritaban Oluturmak Management Studio ile veritabanna balant saladktan sonra sol st blmde yer alan New Query seenei ile sorgular yazabilecein sayfay aabilirsin. Burada create database Universite ifadesini yazp, F5 ksayolu ile altrarak, varsaylan ayarlarla Universite isimli bir veritaban oluturabilirsin. Arayz zerinden Veritaban Oluturmak Management Studio ierisindeki Object Explorer blmnde yer alan databases alanna sa tklayp New Database seeneini seerek, yeni veritaban oluturma penceresini aabilirsin. Sonrasnda bu penceredeki Database name alanna oluturmak istediin veritabannn adn verip, OK butonuna tklaman yeterli olacaktr.

23/34

ETM : VER TABANINA GR VE TEMEL VER TABANI KAVRAMLARI

Blm : Veri Tabanna Giri

Konu : Attach Detach lemleri

24/34

ATTACH ve DETACH komutlar bir SQL Servern ynetimindeki veritabann SQL Serverdan ayrmak (DETACH) ya da SQL Server zerine daha nceden oluturulmu bir veritabann eklemek (ATTACH) amacyla kullanlrlar. Detach lemi Bir veritabann SQL Serverdan ayrmak iin, Management Studio ierisinde veritaban adnn zerine sa tklayp, Tasks blmnden Detach seeneini emelisin.

Sonrasnda, alan Detach Database ekrannda Drop Connections seeneini iaretleyip OK butonuna tklayarak ilemi tamamlayabilirsin.

Detach Database Ekran

Attach lemi

25/34

Mevcut bir veritaban dosyasn SQL Servera eklemek iin, Object Explorer ierisindeki Databases blmne sa tklayp Attach seeneini semelisin.

Sonrasnda alan Attach Databases ekrannda Add butonunu kullanarak, yeni gelen pencerede ekleyecein veritabann semelisin. Ardndan OK tuu ile mevcut pencereyi kapatp ilk ekrana dnyor olacaksn. Burada bir kez daha OK tuunu kullanarak ilemleri tamamlayabilirsin. Eklenen veritaban, Object Explorer ierisinde Databases bal altnda grlebilir.

SQL

imdi, rneklerde uygulama srasnda kullanlmak zere hazrlanm, Universite ve Sirket veri tabanlarn Servera eklemelisin (attach). Bu veri tabann aadaki adresten indirebilirsin. http://www.myenocta.com/enocta/3563/attachments/Universite.zip http://www.myenocta.com/enocta/3563/attachments/Sirket.zip

26/34

ETM : VER TABANINA GR VE TEMEL VER TABANI KAVRAMLARI

Blm : Veri Tabanna Giri

Konu : Temel Veri Tipleri

27/34

T-SQLde Veri Tipleri


Tablo olutururken tablo ierisindeki her alann hangi tipte veri tayabileceini belirleyen baz ve ri tipleri bulunmaktadr. T-SQLde bulunan temel veri tiplerinden bazlar unlardr:

Metinsel Veri Tipleri


Tip char(n) nchar(n) varchar(n) nvarchar(n) varchar(MAX) nvarchar(MAX) text ntext Deer Aral ASCII trnden ve sabit boyutta veri saklar. En fazla 8000 karakter tutulabilir. (n) alabilecei en fazla karakteri belirler. Unicode trnden ve sabit boyutta veri saklar. En fazla 4000 karakter tutulabilir. ASCII trnden ve deiken uzunlukta veri saklar. En fazla 8000 karakter tutulabilir. Unicode trnden ve deiken uzunlukta veri saklar. En fazla 4000 karakter tutulabilir. varchar veri tipi ile ayn zelliklere sahiptir ve 2 GBa kadar veri tutabilmektedir. nvarchar veri tipi ile ayn zelliklere sahiptir ve 2 GBa kadar veri tutabilmektedir. ASCII trnden metin saklamak iin kullanlr. 2 GBa kadar snr vardr. Unicode trnden metin saklamak iin kullanlr. 2 GBa kadar snr vardr. Sql metin veri tipleri

Saysal Veri Tipleri


Tip int bigint smallin t tinyint float(n) 0-255 arasndaki tamsay deerlerini tutar. Kayan noktal say deerlerini tutar. -1.79e+308 ile 1.79E+308 arasnda deer tutabilir. n, 1 ile 53 arasnda deer alabilir. 1 ile 24 arasnda olduunda 7 haneye kadar hassasiyet ve 4 byte yer ayrlmas sz konusudur. 25 ile 53 aral iin ise 15 haneye kadar hassasiyet ve 8 byte yer ayrlmas sz konusudur. Varsaylan olarak n deeri 53tr. -3.40e+38 ile 3.40e+38 arasnda deerler alabilir. 7 haneye kadar hassasiyet sunar ve 4 byte yer kaplar. Bu veri tipi float(24)n karldr. Eer 7 haneye kadar hass asiyet gerekiyorsa real tipi varsaylan float tipi yerine tercih edilebilir. Yaklak -922 milyar ile +922 milyar arasndaki deerleri tutar. Bu tip genelde parasal deerlerin tutulaca alanlarda kullanlr. Sql saysal veri tipleri Deer Aral Yaklak -2 milyar ile +2 milyar arasndaki tamsay deerlerini tutar. Yaklak -2 ile +2 arasndaki tamsay deerleri tutar. Yaklak -32 bin ile +32 bin arasndaki tamsay deerlerini tutar.
63 63

real money

28/34

Tarihsel Veri Tipleri


Tip datetime smalldatetim e date time 01.01.0001 ile 31.12.9999 arasndaki tarih bilgisini tutar. 00:00:00.0000000 ile 23:59:59.9999999 arasndaki zaman bilgisini tutar. Sql tarihsel veri tipleri Deer Aral 01.01.1753 ile 31.12.9999 arasndaki tarih ve zaman bilgisini tutar. 01.01.1900 ile 06.06.2079 arasndaki tarih ve zaman bilgisini tutar.

Dier Veri Tipleri


Tip bit image xml binary(n) varbinary(n) varbinary(MA X) Sql dier veri tipleri Deer Aral Boolean deerler tutmak iin kullanlan veri tipidir. Sadece 1 veya 0 deerlerini alabilir. 1 True, 0 False deerlerini temsil eder. Resim dosyalarnn veri tabannda tutulmas iin kullanlan veri tipidir. 2 GBa kadar resim dosyas tutabilmektedir. XML dosyalarn ve XML kodlarn saklayabilen veri tipidir. 2 GBa kadar veri tayabilir. Sabit uzunluktaki binary veriyi tutmak iin kullanlr. Maksimum uzunluu 8000 byte tr. Varsaylan uzunluu ise 1 byte tr. Deiken uzunlukta binary veriyi tutmak iin kullanlr. Maksimum uzunluu 8000 byte tr. Varsaylan uzunluu ise 1 byte tr. Maksimum 2 GB binary veriyi tutabilen veri tipidir.

Microsoft, Sql Servern 2005 srmnden itibaren, image, text ve ntext veri tipleri yerine varbinary(MAX), varchar(MAX), nvarchar(MAX) trlerinin kullanlmasn tavsiye etmektedir. Veri tipleri ile ilgili daha detayl bilgi almak iin aadaki MSDN linkini kullanabilirsiniz. http://msdn.microsoft.com/en-us/library/ms187752.aspx

29/34

ETM : VER TABANINA GR VE TEMEL VER TABANI KAVRAMLARI

Blm : Veri Tabanna Giri

Konu : Tablo Oluturmak

30/34

Tablolar (Tables)
Tablolar verilerin saklanmasn salayan, alanlar (stun-column) ve satrlardan (row) oluan birimlerdir. Tablo, ilikisel veritabanlarnda temel veri depolama nesnesidir ve bilgiler tablolarda saklanmaktadr. Tablo ierisinde her satr bir kayd temsil etmektedir. Alanlar ise kaytlara ait zellikleri tamaktadrlar. rnein bir renciye ait kaytta okul numaras, renci ad ve renci soyad bilgilerini temsil eden 115874, Ercan, Bozkurt gibi bilgiler tutulabilmektedir. Burada renci numaras, renci ad ve soyad birer alan, bu verinin tamam ise bir satr, yani bir kayd oluturmaktadr. (Aadaki ekilde bir tablo zerinde satr ve alan gsterilmitir.) Bir tabloda en az bir tane alan bulunmas gerekmektedir. Tabloda satrlar olabilecei gibi hibir satr olmayabilir de. Yani tablomuzda hi veri tamayacamz durumlar olabilir. Tablo ierisinde kaytlara ait bilgileri tutacak olan alanlarn hangi veri tipinde veri saklayabilecei de belirlenebilmektedir. Yukardaki renci rneindeki kaytlarda, renci ad ve soyad bilgileri metinsel bir ifade, renci numaras da rakamsal bir ifade iersin gibi

Bir tablo zerindeki satrlar ve alanlar Yukardaki ekilde 1 numara ile belirtilmi ksm satr, 2 numara ile belirtilmi ksm ise alan olarak adlandrlr. 1. Satr (Row): Tabloda bulunan bir kayt. 2. Alan (Stun-Column): Bir kayda ait zellik. rnein; Kaytl rencinin ad. Tablolar tasarlanrken ierecekleri bilgi trlerine gre gruplandrlmaldr. Daha nce ksaca ele aldmz rnei dnecek olursak, bir niversitenin veri taban Faklte, Blm ve renci gibi tablolardan oluabilir. Blm ve renci bilgileri birbirinden farkl eyler olduu iin, ayr tablolarda tutulmas hem veri btnl asndan, hem de veriye eriimin daha kolay ve hzl olmas asndan nemlidir. sterseniz imdi rnek olarak Blm ve renci tablolarn oluturalm. Ardndan da bu tablolarn yaplarn ve ieriklerini inceleyelim. Bolum Tablosu BolumAd Bilgisayar Mhendislii Bilgisayar retmenlii Mimarlk Fizik

Bol umId 10 1 10 2 10 3 10 4

Ogrenci Tablosu

31/34

Bolum ve Ogrenci tablolar ve ierdii bilgiler Bolum tablosu 2 alan (stun) ve 4 satrdan (kayt), Ogrenci tablosu ise 4 alan ve 4 satrdan olumaktadr. Bu ekilde birbirinden farkl ierikleri olan blmler ve renciler farkl iki tabloda depolanm oldu. Yine Ogrenci adl tablodaki BolumId alanna dikkat edilecek olursa, rencinin hangi blmde bulunduu bilgisinin Bolum tablosundaki BolumId ile ilikilendirilmi olduu grlebilir. (Buradaki 101, 102 eklindeki ifadeler aslnda Bolum tablosundaki Bilgisayar Mhendislii, Bilgisayar retmenlii gibi blmleri temsil etmektedir.) Bolum tablosunda BolumId ve BolumAd dnda, blm adresi, blm bakan, blmn bal olduu faklte gibi bilgileri de tuttuumuzu varsayarsak, bu bilgileri rencilerin bilgileri ile ayn tabloda tutmak hem gereksiz yere verilerin tekrarlanmasna, hem de veri karklna sebep olacakt. liki diyagramlarnda bir tablo ile dier tablo arasndaki iliki aadaki ekilde olduu gibi belirtilir.

Bir renci ve bir blm arasndaki ilikinin ekille gsterimi Tablo ve alan isimlendirilirken dikkat etmemiz gereken baz hususlar vardr. Microsoft SQL Server 2005ten nceki versiyonlarda ayn veri taban ierisinde ayn isme sahip sadece bir tablo bulunabilirken, Microsoft SQL Server 2005 ile gelen ema (schema) kavram sayesinde bu kst alabilmektedir. Bununla birlikte, bir tablo ierisinde ayn isme sahip sadece bir alan bulunabilir. Tablo ve alan isimleri ierisinde rakam veya harfler dndaki karakterlerin kullanlmamas tavsiye edilmektedir. (*) simlerin rakam ile balamamas tavsiye edilmektedir. (*)

(*) Tavsiye edilmeyen durumlarda kullanlacak isimlerin ancak [ ] iaretleri arasna alnarak kullanlmasna izin verilmektedir.

Tablo oluturmak
Management Studio arayzn kullanarak tablo oluturmak iin Databases bal altndaki Tables blmne sa tklayp New Table seeneini seebilirsin. Alan ekranda kolon adlar , veri tipleri ve ilgili kolona deer girilmemesine (null) izin verilip verilmemesi gibi tanmlamalar yaptktan sonra , stteki menden Save (disket ikonu) seenei ile tabloyu oluturabilirsin. Save butonuna bastnda alan ekrana tabloya vermek istediin ad yazmalsn.

32/34

ETM : VER TABANINA GR VE TEMEL VER TABANI KAVRAMLARI

Blm : Veri Tabanna Giri

Konu : Anahtarlar

33/34

Anahtarlar (Keys)
Bir kayt ierisinde farkllklar ve nitelikleri gsteren belirleyicilere anahtarlar (keys) denir. Farkl ieriklere sahip olacak verileri farkl tablolarda depolayarak yapabileceimiz birok ii kolaylatrabiliyorduk. Benzer ekilde, tablodaki kaytlar da birbirinden ayrt edebilmek iin tablo iindeki alanlara belirli anahtarlar atayarak birok ilemi kolaylatrabilmekteyiz. Bir tablo ierisinde bulunabilecek anahtarlar, birincil anahtar (primary key), tekil anahtar (unique key), referans anahtar (foreign key) ve birleik anahtardr. (composite key) Birincil anahtar (Primary key): Bir tablo ierisindeki satrlar birbirinden ayrt eder. Birincil anahtar olan bir veri ayn tablo ierisinde tekrarlanamaz. Yine bu alandaki veri bo braklamaz, yani NULL deeri alamaz. Tek bir alan birincil anahtar olabilecei gibi baz tablolarda birden fazla alann birlemesiyle birincil anahtar oluabilir. (Bu aslnda az sonra greceimiz birleik anahtardr) Tekil anahtar (Unique key): Tablonun tekil anahtar olarak tanmlanm bir alanna ayn deer sadece bir kez girilebilir. Birincil anahtardan farkl olarak, tabloda bu alana ait sadece bir kayt NULL deeri alabilir. Birincil anahtar ayn zamanda tek anahtar olarak saylabilir fakat tek anahtarlar birincil anahtar deildirler. Referans anahtar (Foreign key): Tablodaki bir veriyi baka tablodaki bir veri ile ilikilendirir. ki tablo arasnda yaplan bu ilikilendirme ile referans anahtar olarak tanmlanm alana sadece ilikilendirdii tablonun alanndaki veriler eklenebilir. Birleik anahtar (Composite Key): Birden fazla alann birletirilmesiyle birincil anahtar grevini stlenecek tanmlamalar yaplabilir. Bunlar birleik anahtar olarak adlandrlr.

Ogrenci tablosu zerinde bulunan anahtarlar OgrenciID her renci iin tek ve belirleyici bir unsur olaca iin Ogrenci tablosunda birincil anahtar olarak belirlenmitir. Yine EMail her renci iin tek olaca iin bu alan tablo iin tekil anahtar olacaktr. Daha nceki rneimizden hatrlayacanz gibi BolumID, Bolum tablosunun BolumID alan ile ilikilendirilmiti. Ogrenci tablosunun bu alanna sadece Bolum tablosundaki deerleri alabilmektedir. Baka bir tablodaki anahtar ile ilikilendirildii iin tablonun referans anahtar olmutur.

Bu ders notu, Ak Akademi projesi erevesinde TCM tarafndan Microsoft Trkiye iin hazrlanmtr. Tm haklar Microsoft Trkiye ye aittir. zinsiz oaltlamaz, para ile satlamaz.

34/34

You might also like