• Tidak ada hasil yang ditemukan

Veritabani-Programlama-II.pdf

N/A
N/A
Protected

Academic year: 2021

Membagikan "Veritabani-Programlama-II.pdf"

Copied!
65
0
0

Teks penuh

(1)

Veritabanı

Programlama 2

Şubat 2004

V

er

ita

ba

P

ro

gr

am

la

m

a

2

Yaşar Gözüdeli

Eğitim dizisi

(2)
(3)

Veritabanı

Programlama

2

Şubat 2004

Yaşar GÖZÜDELİ

Bu ek kopyalanamaz, satılamaz. Her hakkı saklıdır. BYTE’ın okurlarına ücretsiz armağanıdır.

© 2004 BYTE

(4)

İÇİNDEKİLER

GİRİŞ...8

Belli başlı VTYS’ler ...8

Bir Proje İçin Hangi VTYS’yi Seçilmeli?...9

Veritabanı Programlama-2 Kitapçığı Neleri İçeriyor... 10

Teknik Destek ... 10

1.MS SQL Server 2000’e giriş ...12

Web Matrix ve MS SQL Server Desktop Engine... 12

A. MSDE’nin Kurulumu ve Kaldırılması ... 13

Gereksinimler ... 13

Kurulumu... 13

Kaldırılması... 16

SQL Server İstemci Taraf Bileşenleri ... 16

SQL Server Enterprice Manager ... 16

Enterprise Manager’e Bir SQLServer Kaydetme ... 17

Enterprise Manager ile Veritabanı Bakım ve Yönetimi ... 18

Enterprise Manager ile Yeni bir Veritabanı Oluşturmak... 19

Bir Veritabanını Ölçeklemek ... 20

SQL Query Analyzer ... 21

Query Analyzer ile Veritabanı Oluşturmak... 23

Loglamadan Tablo Boşaltma: Truncate Table... 24

Bir Sorguyu Query Analyzer ile Analiz Etme ... 25

Import & Export Data ... 27

SQL Service Manager ... 28

SQL Server ve XML Desteği ... 29

SQL Server’de Veritabanı Nesneleri ... 29

SQL Server ve Kullanıcı Yönetimi... 33

Roller ... 33

Kullanıcılar ... 33

Yetki verme (Grant Komutu) ... 34

(5)

2.T-SQL ve VTYS temelli programlama ...36

T-SQL ile ANSI-SQL komutlarını çalıştırma ... 37

Değişken Tanımlama ve Kullanma... 37

Değişkenler ve Sistem Fonksiyonları... 38

Print komutu ... 39

Akış Kontrolleri ... 39

Go Komutu... 40

1.IF ... ELSE karar yapısı ... 40

2.CASE deyimi... 42

3.While Döngüsü ... 43

Geçici Tablolar ... 45

Kontrol Zorlayıcıları (Check Constraints) ... 46

3.Saklı Prosedürler (Stored Procedures) ...48

Prosedür ne demektir? ... 48

SP oluşturma ... 48

SP üstünde değişiklik yapmak ... 49

Bir SP’yi Silmek ... 50

SP’ye Parametre Yollama... 50

Sp’den Değer Döndürme... 52

Bu prosedürün döndürdüğü sonucu nasıl alabiliriz? ... 52

SP’yi VTYS Uzayı Dışından MDACs ile Çağırmak ... 54

Cursor’ler ... 56

Başlıca Sistem Saklı Prosedürleri... 57

4.İşlemler(Transactions) –Tetikler(Triggers) ...61

Transactions... 61

Trigger’lar ... 62

(6)

Önsöz

Veritabanı kavramının ilk olarak ortaya atıldığı 1980’li yılların üstünden henüz 23 yıl geçti. Ancak bu gün, operasyonel iş dünyası, Veritabanı Yönetim Sistem-leri (VTYS) olmadan hiçbir şey yapa-maz hale geldi. İşletim sistemlerinden sonra en popüler ve en çok kazandıran yazılımlar Veritabanı Yönetim Sistem-leridir.

Günümüzde, bir çok alanda ope-rasyonel veri işlemlerinde VTYS’ler yaygın olarak kullanılmakta. Bu prog-ramlar için bir çok nesne birbiri ile aynı temel işlevi yerine getirir ve yaklaşık olarak aynı teorilere dayanarak çalışır. VTYS’lerinden orta ve büyük ölçekli olanlarından biri olan MS SQL Server 2000 bu kitapçıkta teferruatlı olarak ele alınıyor.

MS SQL Server 2000’i tanırken daha çok VTYS’ler için ortak olan noktalara değinildi. Böylelikle kitapçıkta anla-tılan konular sadece MS SQL Server kullanıcıları için değil, Sybase, Oracle hatta Advantage (Türk programcılar tarafından geliştirilmiş bir VTYS. Bu vesile ile projede emeği geçenleri da tebrik etmek gerekir.) için bile bir çok teknik olarak uygulanabilirlik

seviye-Sorumlu Yazı İşleri Müdürü:

Murat Yıldız [email protected] Yönetici Editör: İbrahim Özdemir [email protected] Editörler: Burak Kahyaoğlu [email protected]

Üsame İldar Özdemir

[email protected]

Tasarım ve Uygulama:

Yağız Akay

[email protected]

ACAR Yayıncılık adına imtiyaz sahibi:

Murat Yıldız Reklam Müdürü: Ahmet Aslantürk Baskı: ETAM A.Ş. Film Çıkış: Figür Merkez Ofis:

Fulya Cad. Fulya Bayırı Sk. Bilsan Plaza 11/4 80300 Mecidiyeköy - İSTANBUL Tel: (212) 212 62 06 Faks: (212) 212 62 11 www.byte.com.tr

(7)

sinde yer almaktadır. Bu kapsamda, hemen her VTYS’de ortak olarak yer alan saklı prosedürler, trigger’ler, kur-sörler, transaction’lar, zorlayıcılar ve diğer nesneler yine sırayla bu kitapta ele alınan konular arasında.

Bu kitapçıkta genel olarak MS SQLServer ve Sybase’de kullanılan T-SQL komutları yer alıyor. Oracle tara-fından kullanılan PL/SQL komutları da aslında T-SQL ile bir çok noktada hemen hemen aynıdır. Bu nedenle VTSY’ler için bir noktaya kadar ortak bir kitapçık ortaya çıktığını söyleyebi-liriz.

Tüm bunlarla birlikte son yıllarda popülerlik kazanan VTYS uygulama şekillerinden replication (çoğaltmalı çalışma) ve Data Warehousing (Veri ambarlama) konuları, kitapçığın ala-nının kısıtlı olması nedeniyle yer lemeyen konular arasında. XML veri-tabanları da yavaş yavaş popülerleşen bir konu ama bu konu da bu kitapçığın içeriği dışında. Bütün bunlar kitapçıkta yer almamalarına rağmen veritabanı konusunda kendisini geliştirmek iste-yen arkadaşlara fikir vermesi açısından burada zikredilmiştir. Ayrıca veritabanı

programlamadan ziyade yönetimi ile daha çok ilgili olan, Kullanıcı Yönetimi, Yedekleme-Kurtarma, DTS-BCP gibi konulara da kısıtlı sayfa sayısı nedeniyle değinilmedi.

Başta, gece gündüz demeden yoğun bir çalışmayla siz değerli okurlara bu seriyi ulaştırmak için uğraşan Yönetici Editör İbrahim Özdemir ve ekibine, Veritabanı konusunda tecrübelerini çekinmeden aktaran ve kitap için düzeltmeler yapan sayın Nurullah Kılıç’a ve kitabın içerdiği örnekleri test eden eşim Lale Gözüdeli’ye olmak üzere kitapçıkta emeği geçen her-kese sonsuz teşekkürlerimi sunarım. Bununla birlikte, seride yer alan bütün hatalar bana aittir.

-Yaşar GÖZÜDELİ

(8)

V

eritabanı Yönetim Sistemleri, verilerin fiziksel hafızadaki durumlarını, kullanıcıların erişimlerini düzenleyen sistemlerdir. İlişkisel VTYS’ler günümüzde yaygın olarak kullanılmaktadır.

VTYS’ler fiziksel hafızayı ve veri tiplerini kullanıcılar adına şekillendirip denetleyen ve kullanıcılarına standart bir SQL arayüzü sağlayarak onların dosya yapıları, veri yapısı, fiziksel hafıza gibi sorunlarla ilgilenmek yerine veri giriş-çıkışı için uygun arayüzler geliştir-melerine olanak sağlayan yazılımlardır. VTYS’de verileri tutmak üzere bir çok türde nesne ve bu nesnelere erişimleri düzenlemek üzere kullanıcılar, roller ve gruplar yer alır. Her bir kullanıcının belli hakları vardır. Bu haklar, kısıtlanabilir. Örneğin bir tablo ya da programcığı bir kullanıcı kullanabilirken bir başkasının hakları veritabanı yöneticisi tarafından kısıtlanmış olabilir.

VTYS’lerin bir çoğu ANSI SQL’in karşılayamadığı durumlarda kullanıl-mak üzere ek programlama komutları barındırırlar. Bu iş için MS SQL Server ve Sybase SQL Server Transact SQL denilen komut takımlarını içerir. Oracle ise PL/SQL ile bu işe çözüm getirir. Bu diller sayesinde, bu konu içerisinde öğreneceğimiz Stored Procedure (saklı prosedürler), Trigger, Fonksiyon gibi veritabanları için vazgeçilmez olmuş

nesneler yazılabilmektedir.

Belli başlı VTYS’ler

MS SQL Server: Bir orta ve büyük ölçekli VTYS’dir. ANSI SQL’e eklentiler yazmak için T-SQL’i destekler.

Oracle: Daha çok yüksek ölçekli

uygu-lamalarda tercih edilen bir VTYS’dir. ANSI SQL’e eklentiler yapmak için PL/SQL geliştirilmiştir.

Sybase: Bir orta ve büyük ölçekli

VTYS’dir. ANSI SQL’e eklentiler yazmak için T-SQL komutlarını destek-ler. Ülkemizde daha çok bankacılık ve kamusal alanlarda tercih edilmektedir.

Informix: Bir orta ve büyük ölçekli

VTYS’dir.

MySQL: Genellikle Unix-Linux temelli

Web uygulamalarında tercih edilen bir VTYS’dir. Açık kod bir yazılımdır. Küçük-orta ölçeklidir. Özellikle Web için geliştirilmiş bir VTYS’dir denilebilir.

Postrage SQL: Bu da MySQL gibi açık

kod bir VTYS’dir.

MS Access: Çoklu kullanıcı desteği

yoktur. İşletim sisteminin sağladığı güvenlik seçeneklerini kullanır. Bunun

(9)

yanında belli sayıda kayda kadar (1000000 civarı) ya da belli bir boyutun (yaklaşık 25MB) altına kadar bir sorun çıkartmadan kullanılabilecek bir küçük ölçekli VTYS’dir.

Advantage: Türk programcılar

tarafın-dan geliştirilen bir orta ve büyük ölçekli VTYS’dir.

DB/2: IBM’in framework’lere yönelik

büyük ölçekli VTYS’dir.

Bunların dışında daha bir çok VTYS mevcut olabilir. Burada yer alanlarına popüler olmaları nedeni ile değinildi.

VTYS’lerinin Avrupa genelindeki pazar payları yaklaşık olarak şu şekilde: En büyük pay IBM(DB/2) ile Oracle arasında. Hemen arkasında MS SQL Server geliyor. Informix ve Sybase ise onu takip ediyor.

Yeni başlayanlar için hangi VTYS’yi öğrenmem en iyisi olur sorusunu yanıt-lamak gerekebilir. Ülkemizde insan kay-nakları açısından en çok kalifiye elaman aranan VTYS Oracle ve arkasından da MS SQL Server gelmekte. Çok nadir olarak Sybase bilen elemanlar da aran-maktadır.

Bu konuda TBD(Türkiye Bilişim Vakfı) yayın organında yayınlanmış bir araştırmaya göz atmak için aşağıdaki adresi tıklayabilirsiniz.

http://www.tbd.org.tr/sayi77_html/ insan.htm

Bir Proje İçin Hangi

VTYS’yi Seçmeli?

Bir projede hangi veritabanının seçile-ceği, projenin çapı ile ilgili bir karardır. Şu soruları kendinize sormanız proje-nizin çapı konusunda karar vermenize yardımcı olacaktır.

•Projede kaç tablo kullanacak?

•Her bir tabloda en fazla kaç satır yer alabilir?

•Projenize aynı anda en fazla kaç kulla-nıcı bağlanacak?

•Projeniz günlük kaç transaction (INSERT-DELETE-UPDATE) ger-çekleştirecek?

•Projeniz en fazla ne kadarlık yer kap-layacak bir veritabanı dosyasına ihtiyaç duyacak?

•Projeniz için güvenlik ne derece

IBM ... %37.8 Oracle... %26.3 Microsoft ... %15.4 Informix ... %3.2 Sybase ... %3 Digerleri ... %14.3

2001 yılında bir araştırmaya göre Avrupa çapında VTYS’lerinin pazar payları [kaynak: Gartner]

(10)

önemli? Ancak bir VTYS kullanarak proje geliştirecekseniz, hangisini seçme-niz gerektiğinin dışında, hangi sürümleri kullanacağınız ya da hangi donanımlar üstünde çalıştıracağınız da önemlidir.

Veritabanı Programlama 2

Kitapçığı Neleri İçeriyor

1.Bölüm: Veritabanı Yönetim

Sistem-leri ele alınıyor. VTYS’ler, SQL’den anlayabilen programlardır. Verdiğimiz SQL komutlarını yerine getiren, sahne arkasındaki iş bitirici veritabanı yönetim sistemidir. VTYS’ler SQL ile ifade ede-bildiğimiz tüm işlemleri yerine getirebi-lirler. Bu bölümde VTYS’ler hakkında detaylı bilgi edineceğiz.

2.Bölüm: T-SQL komutları ele anıyor.

Bazen, SQL’de yer alan komutlar, derdi-mizi anlatmamız için yeterli olmayabilir. Bu tür durumlarda Transact SQL içeri-sinde yer alan komutlardan faydalanaca-ğız. Transact SQL, kısaca T-SQL olarak anılır. Bu konudaki detaylı bilgiyi ikini ünitede edineceğiz.

3.Bölüm: Stored Procedure ele alınıyor.

T-SQL ile Stored Procedure’ler yazmak, VTYS’lerinin daha etkin bir şekilde kul-lanılmasını sağlar ve çeşitli performans artırıcı etkileri vardır. Stored Procedure ile, tekrar tekrar kullanmak üzere paket-lenmiş T-SQL komutları oluşturacağız. Ayrıca, SYBASE ve MSSQLServer tarafından kullanılan ve sistemde hali

hazırda yer alan Stored Procedure’leri de yakından tanıyacağız.

4.Bölüm: Transaction’lar ve Trigger’ler

ele alınıyor. T-SQL ile Stored Procedu-re’ler dışında Transaction’lar ve Trig-ger’ler de programlanabilir. Transaction, Daha küçük parçalara ayrılamayan en küçük işlem birimi demektir. Trigger’ler ise Stored Procedure’lerin bir özel hali-dir ve bir tabloda değişiklik yapıldığında otomatik olarak devreye girerler. Zorlayı-cılar ve SP’ler ile sağlayamadığımız veri kararlığını ve bütünlüğünü trigger’ler ile sağlamaya çalışacağız.

Teknik Destek

Eğitim serisi ile ilgili iletmek istediğiniz öneri, istek, şikayet ya da düzeltmeleri-nizi doğrudan BYTE Türkiye dergisine iletmek için www.byte.com.tr/bizeulas.asp

adresini tıklayınız.

Kitapçık ve içerdiği konular hakkın-daki her türlü soru ve sorunlarınızla ilgili olarak [email protected]

adre-sine e-posta göndermekten çekinmeyin. Yine Veritabanı Programlama serisi hakkındaki görüş, şikayet ve önerile-riniz için www.verivizyon.com/sqlkitabi/

adresindeki formdan faydalanabilirsi-niz. Seri hakkındaki duyuruları da aynı adresten takip edebilirsiniz.

(11)
(12)

V

TYS temelli programlamayı öğrenmek istiyorsanız, öncelikle bu ünitede anlatılan her şeyi anlamaya çalışmayınız. 2.Üniteyi çok iyi etüt ettikten sonra bu üniteyi daha iyi anlayabilirsiniz.

Ancak SQL Server konusunda başlan-gıç seviyesinde bilginiz varsa, bu bölüm ile onu daha etkili bir şekilde nasıl kulla-nacağınızı öğrenmiş olacaksınız.

MS SQL Server, orta ve büyük ölçekli VTYS’ler arasında en yaygın olanların-dan biridir. Bunun sonucu olarak da bir

çok veri yönlendirmeli Web sitesi bu gün bu program üstünde inşa edilmiş durum-dadır. Bu bölümde MS SQLServer 2000 Developer Edition(artık MSDE olarak anılacak)’in kurulumu ve kaldırılması anlatılacaktır. MSDE, Eğitim ve kişisel kullanım maksatlı en geniş SQL Server 2000 sürümüdür. Bu bölüm boyunca verilen uygulamalar SQL Server’in bah-sedilen sürümü üstünde test edilmiştir.

MSDE’nin Kurulumu ve

Kaldırılması

MS SQL Server

2000’e Giriş

MSDE ayrıca MS SQL Server Desktop Edition için de kullanılmaktadır. Desktop Edition’da bir istemci arayüz bulun-mamakla birlikte SQL Server kurulumunu ger-çekleştirebilirsiniz. Bu programı ücretsiz olarak

www.microsoft.com adre-sinden indirebilirsiniz.

Desktop Edition’ı kurmak için, MSDE

dizi-nindeki setup.exe prog-ramını tıklayın.

Kurulum esnasında bir güvenlik sorunu ile karşılaşmamak için MSDE dizininde bulunan setup.ini dosyasına şu iki satırın yer aldığından emin olun [Options] SAPWD=sasifresi ve daha sonra setup.exe programını tıklayın. Böylece, SQL Server Desktop edition kurulduğunda sa kulla-nıcı adında ve sasifresi şifresinde temel verita-banı kullanıcısını oluş-turacak bir kurulumu başlatmış olursunuz.

MS SQL Server’in bu sürümü için kısıtlı da olsa bir arayüz sağlaya-bilmek üzere ücretsiz olarak Web Matrix

(13)

SQL Server Developer Edition kuru-lumu, kullanıcı ayarlarını saymazsak ve sadece kendi bilgisayarınıza kurmak veya kaldırmak isterseniz, herhangi bir prog-ram kurulumundan farkı yoktur.

Gereksinimler

Gerçek hayatta veritabanı uygulama-ları ciddi manada kaynak ihtiyacı olan uygulamalardandır. Hafıza büyüklüğü, işlemci hızı ve benzeri gibi sistem para-matrelerini, üstünde kurgulamayı plan-ladığınız projeye göre şekillendirmeniz gerekir. Burada verilen gereksinimler sadece öğrenme amaçlı uygulamaların denenebileceği bir sistem elde etmek için yeterlidir. MSDE kurulumu için en azın-dan bir Windows 2000 Professional veya

XP Professional yüklü bir PC’ye ihtiyacı-nız olacaktır. Donanımsal ihtiyacıihtiyacı-nız ise bu işletim sistemlerinin duyduğu mini-mum ihtiyaçlardır. Bu, bütün programın kurulumu için geçerli gereksinimdir. Sadece istemci programları kurup, hali hazırda zaten olan bir MSDE sunucu-sunu kontrol etmek isterseniz, Windows 98 de yeterli olabilir. Ancak, buradaki bütün uygulamaları bir tek PC’de test etmek istiyorsanız, MSDE’nin tamamını kurmanız gerekir.

Kurulumu

Bu kısımda bir tek PC üzerine tüm MSDE’nin nasıl kurulacağı anlatılacak-tır.

ramını kullanabilirsiniz. Web matrix programını

www.asp.net/webmatrix

adresinden ücretsiz indirebilirsiniz. Ya da

MDACs bileşenlerini kul-lanarak kendiniz için bir arayüz hazırlayabilirsi-niz. Bunun bir benzerini

w w w. v e r i v i z y o n . c o m

download adresinden indirebilirsiniz.

Desktop edition üstünde burada anlatılan işlemlerin bir çoğunu yapamazsınız. Yapa-bilmek için en azından bu ünitede anlatılan istemci programlarını da kurmanız gerekir. Ancak

sonuçta ücretsiz bir MS SQL Server sürümünü elde etmiş olursunuz.

Bu iki yazılımın birlikte kullanımı konu-sunda daha geniş bilgiyi ADO.NET ile .NET temelli veritabanı uygulamaları geliştirme ve Web Ser-visleri konulu serinin 3. kitabında bulabilirsiniz.

(14)

1. Adım: IIS ve diğer SQL Server’i

kul-lanacak servisleri durdurun. Registry’e erişecek gereksiz uygulamalar varsa kapatın.

2. Adım: Sıkıştırılmış paketi bir yere

açın ve x86\setup\setupsql.exe progra-mını çalıştırın. (Resim 1)

3. Adım: Bu aşamada programı nereye

kuracağınız sorulmaktadır. Kendi maki-nenize kuracaksanız, Local Computer seçeneğini işaretleyin. Uzaktaki bir bil-gisayara bağlanıp o bilbil-gisayara kurmak isterseniz, Remote Computer seçene-ğin işaretleyebilirsiniz. Virtual Server seçeneği, Clustered Server kurmak için gerekli bir seçenek olup biraz ileri bir konudur. Özetle Clustered: Birden fazla SQL Server kurulu makinenin birbirinin devamı gibi iş yükü ve trafik dengeleme işlemlerini yerine getirebilmesi amacıyla kurulmasıdır. (Resim 2)

4. Adım: İlk seçenek olan create new

instance of SQLServer seçeneğini

işa-retli bırakın. Daha önce bu programı kurdunuz ve üstünde değişiklik yapmak istiyorsanız ikinci seçeneği işaretleye-bilirsiniz. Instance, SQL Server’in bir tek makinede iki ayrı uzayda çalışmak üzere yeniden kurulmasını kasteder. Bu durumda ikinci Instance(kopya)’ya MAKINEADI/INSTANCEADI notas-yonu ile erişilir. Bir makinede birden fazla kopya çalışma özelliği tam olarak MSSQL Server 2000 sürümünde mev-cuttur. 6,0 sürümünde ise bu konuda hiçbir destek yer almaz. Aynı makinede ne fazla 16 kopya çalışabilmektedir.

5. Adım: Adınızı ve firmanızı giriniz. (Resim 3)

6. Adım: Sözleşmeyi onaylamak için

[yes] botununu tıklayın.

7. Adım: Server and client tools

seçe-neğini işaretli bırakın. Server olarak SQL Server daha önce kurulu ise veya bulunduğunuz ağ ortamında başka bir bilgisayarda kurulu ise ilk seçeneği de

Resim 2 Resim 1

(15)

işaretleyebilirsiniz.

8. Adım: SQL Server yapılandırma

konusunda tecrübeli değilseniz, bu adımda default seçeneğini işaretli bıra-kın. Bir makinede, birden fazla SQL Server kurulumu çalıştırabilirsiniz. Bu durumda her bir kurulum farklı bir uzayda çalışacaktır. Aynı ismi iki SQL Server kurulumuna veremezsiniz.

(Resim 4)

9. Adım: Karşınıza çıkan pencereden,

Typical seçeneğini işaretli bırakın. SQL Server bileşenleri hakkında yeterli bilginiz varsa, Costum seçeneğini, sistem kaynaklarınızın kısıtlı olduğunu düşünüyorsanız, minimum seçeneğini kullanın. SQL Server’in programı farklı bir diske kurmasını istiyorsanız, program files seçeneğinin önündeki [browse] butonunu tıklayın ve kurmak istediğiniz klasörü seçtikten sonra [ok]’i tıklayın. SQL Server’in veri dosyalarını-(veritabanı dosyalarını) farklı bir adreste saklamasını istiyorsanız, data files

seçe-neğinin karşısında yer alan [browse] butonunu tıklayın ve aynı işlemi yapın. Windows konusunda yeterli bilginiz yoksa, bu kısımla da oynamamanız tavsiye edilir.

10. Adım: Gelen seçenekleri aynen

onaylayın. SQL Server ve Active Direc-tory konusunda bilgi sahibi iseniz bu konudaki ayarları uygun hale getirebi-lirsiniz.

11. Adım: SQL Server, iki çeşit

yetkilen-dirmeyi destekleyebilir.

a. İşletim sistemi ve domain

ayarla-rından gelen yetkilendirmeleri geçerli kabul eder ve SQL Server kaynaklarına erişimini geçerli kabul edebilir.(Bu durumda, sistem yetkilendirmesi olan kişi dbo(veritabanı sahibi) kullanıcısı olarak yetkilendirilir.)

b. Sistem yetkilendirmelerinin yanı

sıra SQLServer’in kendi kullanıcılarını da oluşturup yetkilendirmesini isteyebi-liriz. Bu durumda veritabanı kaynakla-rına erişim için iki yetkilendirmeden biri

(16)

tarafından yetkilendirilmiş bir kullanıcı-nın erişimi geçerli sayılır.

Uygun olan seçeneği işaretleyin. Şayet kendiniz SQL Server için bir kullanıcı oluşturursanız, bu kullanıcının kullanıcı adını(muhtemelen bu isim sa olacak) ve şifresini unutmayacağınız bir şekilde güvenli bir yerlere kaydedin. Daha sonra gerekli olacaktır. Ancak a’ya göre bir yetkilendirme tercih ederseniz, işletim sistemi şifrenizi korumanız gere-kecektir.

12. Adım [Next] butonunu tıklayarak

dosyaların kurulumunu sağlayın. Dos-yaların kopyalanması bittiğinde [Finish] butonunu tıklayın. Böylelikle kurulum tamamlanmış olur.

Kaldırılması

MSDE’yi ya da SQL Server’i kaldırmaya karar vermeden önce, üstünde çalışacak projelerinizin olmadığından emin olma-nız gerekir. Aksi halde kaldırıldıktan sonra MSDE’yi kullanan projeleriniz çalışamayacaktır.

1. SQL Server’i kullanmakta olan bütün

servisleri durdurun.

2. SQL Server hizmetini durdurun. Açık

olan tüm SQL server toollarını kapatın

3. [Denetim masası\program ekle

kal-dır’dan SQL Server 2000]’i seçin ve normal bir program kaldırır gibi kaldı-rın.

SQL Server İstemci Taraf

Bileşenleri

SQL Server Enterprise

Manager:

Enterprise manager, SQL Server’in görsel bir arayüzden yönetilmesi için geliştirilmiş bir istemci taraf parçasıdır. Kullandığı temel arayüz MMC (Micro-soft Management Console) temelli bir arayüzdür. Bu konuda, MMC’nin nasıl kullanıldığı anlatılmayacaktır. Sadece yapılabilecekler hakkında özet bilgiler bulabilirsiniz.

Enterprise manager ile aynı zamanda birden fazla veritabanı sunucusuna bağlanılabilir. Bu işlem için veritabanı sunucularının (SQL Server) kaydının yapılması gerekir. Kaydın yapılabilmesi için de yetkilendirilmiş bir kullanıcı ile erişim şarttır.

•Bir veritabanı sunucusuna eriştikten sonra, üstünde yer alan kullanıcıları, yet-kimiz olan veritabanı dosyalarını, stored procedure, view, tablo gibi veritabanı öğelerini görebiliriz.

•Yetkimiz dahilinde değişiklerde bulu-nabiliriz.

•SQL server grupları tanımlanabilir •Her bir grup içerisinde yer alacak tekil SQL Server’ler kaydedilebilir.

•Kaydı yapılan her bir SQL server için istenilen ayar ve değişiklikler yapılabilir. •Herhangi bir SQL Server üstünde veritabanları, nesneler, kullanıcılar, yetkilendirmeler ve izinler oluşturulup düzenlenebilir.

(17)

•Yetki çerçevesinde, kaydedilmiş SQL Server’ler üstünde SQL Server yönetim görevleri çalıştırılabilir, tanımlanabilir. •SQL ifadelerinin, yığınlarının ve scriptlerinin çalıştırılması için gereken yerden Query Analyzer’e geçiş sağlar. •Veri ithal-ihraç etme işlemleri başta olmak üzere bir çok işlem için kolaylaştı-rıcı sihirbazların başlangıç noktasıdır.

MMC, Microsoft’un sunucu uygu-lamalarını yönetmek için geliştirdiği bir genel arayüzdür. Bu nedenle bir çok sunucu uygulamada bu standart arayüz ile kullanıcıların sunucu uygulamalarını yönetmeleri sağlanmıştır. (IIS de bu türden bir yönetim paneli kullanıcı ara-yüzüne sahiptir). Her bir uygulamanın kendisi için bir bileşen yüklenir ve arayüz bu bileşen sayesinde o uygulamanın özelliklerini yönetecek bir hal alır. SQL Server’ın de böyle bir eklentisi mevcuttur. Bu eklenti ile MCC’nin birlikte oluştur-duğu yönetim programının adı da SQL Enterprise Manager olarak anılmaktadır.

(Resim 5)

SQL Enterprise Manager’i başlatmak için (tabi öncelikle MSDE’yi kurduğu-nuzu var sayıyoruz.) yukarıdaki şekilde görüldüğü gibi Başlar>Programla-r>SQL Server>Enterprise Manager’i

tıklamak yeterli olacaktır.

Enterprise Manager’i çalıştırmak tek başına hiçbir anlam ifade etmez. Hangi veritabanını yönetmek istiyorsanız o sunucuyu (ya da veritabanı kurulum kopyası – ‘installation instance’) kaydet-tirmeniz gerekir.

Enterprise Manager’e Bir

SQLServer Kaydı Eklemek:

Herhangi bir SQL Server’i Enterprise Manager ile yönetebilmek için kaydettir-mek gerektiğini biliyoruz. Bu işlem için şu aşamalar takip edilir:

1. Bu işlem için öncelikle Enterprise

Manager bir önceki konuda anlatıldığı şekilde başlatmak gerekir.

2. Ardından, Microsoft SQL

Serve-r>SQL Server Group ağaç yapılarını sırayla tıklayarak açın.

3. SQL Server Group seçeneğini, fare ile

sol tıklayın. Ardından açılan menüden New SQL Server Registration seçene-ğini tıklayın.

4. Register SQL Server Wizard

başlatıla-caktır. [Next] butonunu tıklayın.

5. Ağda geçerli SQL Server’lerin bir

lis-tesi sol tarafta belirecektir. Kendi maki-nenizdeki SQL kopyasını normal olarak kurduysanız, (local) şeklinde gösterili-yordur. Uygun sunucuyu seçtikten sonra [Add >] butonunu tıklayın ve ardından [Next]’i tıklayın.

6. Hangi yetkilendirme seçeneğini

kul-lanacağınız belirleyin. Bunu, ağda daha önceden kurulmuş bir SQL Server için

(18)

yapacaksanız, Veritabanı Yöneticisine danışmanız daha iyi olacaktır. Kendi kurduğunuz SQL Server’e bağlana-caksanız, kurulum aşamasında hangi yetkilendirmeyi seçtiğinizi hatırlayın ve aynı seçeneği burada da seçip [Next]’i tıklayın. (Resim 6)

7. Hangi SQL Server Goup’a

ekleyece-ğinize karar verin ve işaretleyin. İlk defa kullanıyorsanız, standart ayarları takip etmeniz önerilir. [Next]’i tıklayın.

8. Uygun sunucuyu seçin ve [Next]’i

tıklayın.

9. Kayıt işlemi burada sona erdi. Başarılı

bir şekilde ekleme işlemini yerine

getir-diniz ise resim 7’deki gibi bir ekran elde edeceksinizdir. (Resim 7)

SQL Server kaydını kaldırmak oldukça kolaydır:

1. Kaydını kaldırmak istediğiniz SQL

Server’i fareniz ile sol tıklayın. (Resim

8)

2. Gelen doğrulatma mesaj kutusunda

[yes]’ i tıklayın.

Enterprise Manager ile

Veritabanı Bakım ve Yönetimi

Herhangi bir VTYS’de olduğu gibi SQLServer’de de asıl verilerin tutul-duğu yer veritabanıdır. Bir veritabanı bir çok nesne ve verilerle birlikte kullanıcı tanımları ve haklar gibi rolleri de içerir.

(Resim 9)

SQL Server 2000’de verilerin ve tanımlamaların yer aldığı bir veritabanı dosyasının yanı sıra bir de log dosyası yer alır. Veritabanı dosyası *.mdf uzan-tılıdır. Log dosyası ise *.ldf uzantılı bir

Resim 6 Resim 7

İPUCU:

Bir SQL Server kayıt bilgisi silin-diğinde SQL Server’de yer alan bilgiler kaybolmaz, silinmez sadece sizin Enterprice Manager’iniz kaydı silinen SQL Server’i tekrar kaydet-mediğiniz sürece yönetemez.

(19)

dosyadır.

Bu tür veritabanı dosyalarına ait bilgileri görmek için Enterprise Mana-ger’de herhangi bir veritabanı dosyasını sol tıklayın ve çıkan menüden properti-es’i tıklayarak detay bilgilerine erişebilir, bir kısım değerleri değiştirebilirsiniz.

Transaction log dosyaları aslında ilk bakışta pek de önemli bir dosya değil gibi görünür. Ama aslında bir çok bilgi işlem en kara günlerden bu loglar saye-sinde kurtulur. Transaction log dosyaları, SQL Server’da verilerin depolanması ve kurtarılması durumunda oldukça büyük önem arzetmektedir. Bir tablonun içer-diği verilerde yapılan değişiklikler önce transaction log dosyasına yazılır, ardın-dan veritabanına kaydedilir. Bu sistem başta veritabanına yapılan kayıt işle-minin tutarlılığını sağlamak için böyle geliştirilmiştir ve hemen her VTYS’de aynı şekilde çalışır.

SQL Server’da INSERT, UPDATE veya DELETE komutları çalıştırıldı-ğında oluşan değişiklikler transaction

log dosyasına işlenir.

Veritabanı yönetimi, veritabanı dos-yalarının düzenlenmesi, oluşturulması ve silinmesi işlemlerinden ibarettir. Bir SQL Server’deki en yetkili stan-dart kullanıcı sa(system admin-sistem yöneticisi) kullanıcısıdır. Bir veritabanı dosyasındaki en yetkili standart rol dbo (database owner – veritabanı sahibidir)

Enterprise Manager ile Yeni

bir Veritabanı Oluşturmak

Enterprise Manager ile bir çok işlem gibi veritabanı oluşturma işi de görsel bir arayüzden gerçekleştirilebilir. Bu işlem için, öncelikle Enterprise Manager’e girin. Ardından Databases üzerinde sağ tıklayarak New Database seçin. Sizden veritabanı adı girmeniz istenecektir. İste-diğiniz bir veritabanı adını girin.

Bir veritabanı tanımlanma aşama-sında ya da tanımlandıktan sonra şu parametrelerini de ölçeklemek gerekir. Ölçeklemek’ten kasıt projenin

(20)

ğüne göre performans-kapasite denge-sini oturtmaktır. Bu biraz da veritabanı konusunda tecrübeli olmanızı gerektiren bir işlemdir.

Bir Veritabanını

Ölçeklemek

Enterprise manager ile bir veritabanının özelliklerini görmek için öncelikle o veritabanına dosyası seçilir. Daha sonra bu veritabanının üstünde sağ tık yapılır. Ardından properties seçeneği tıklanır. Ardından options sekmesi tıklanarak üstünde değişiklikler yapılır.

Veritabanının boyutu: Veritabanına

kayıt girdikçe ya da yeni tanımlamalar - nesneler girdikçe boyutu büyür. Bir azami boyut tanımlanması halinde bu değere çıkılmasından itibaren depolama biriminde (harddisk) yer gerektiren veri-tabanı işlemleri yapılamaz.

Transaction log dosyası azami boyutu:

Bir veritabanında yapılan kayıt ekleme, kayıt silme ve kayıt güncelleme işlem-lerinin veritabanı log dosyasında işaret-lendiğini biliyoruz. Bu dosya üstünden veritabanının bütünlüğünün sağlandı-ğına da değinmiştik. İşte bu dosya da belirtilen azami boyutun üstüne çıkarsa UPDATE-INSERT-DELETE işlemleri gerçekleştirilemeyecektir. Transaction Log’a işaretlenmesi gereken hiçbir şey çalıştırılamayacaktır. Bu tür durumlarda bir alternatif olarak artık işinize

yarama-yacağını düşündüğünüz transaction log kayıtlarını truncate edebilirsiniz (silebi-lirsiniz).

Database Seçenekleri: Veritabanı

seçe-nekleri, veritabanın ölçeklenmesinde etkili bir diğer faktördür. Bu seçenekler kısaca:

Autoshrink: Veritabanının otomatik

olarak küçültülmesini ayarlayan özellik-tir. Bu özellik seçili iken veritabanı dos-yası ve log dosdos-yası belli aralıklarla sistem tarafından otomatik olarak gereksiz alanları dosyadan çıkarılmaya zorlanır.

dbo use only: Bu özellik seçildiği

anda sistemde login olan kullanıcılar ve db_owner sabit sistem rolüne haiz kullanıcılar dışında diğer kullanıcılar bu veritabanı dosyasını kullanamazlar. Halihazırda sisteme login olan kulla-nıcılar ise sistemden çıkmaları halinde db_owner rolüne haiz değil ise tekrar-dan veritabanına erişemezler.

read only: Veritabanı dosyasının sadece

okunabilir olmasını sağlayan seçenektir. Bu seçenek seçildiğinde kullanıcılar veritabanından veri okuma (SELECT) komutlarını çalıştırabilir ancak DELETE, UPDATE, INSERT gibi DML komutları ile ALTER, CREATE ve DROP gibi DDL komutlarını çalış-tıramaz.

(21)

anda bir tek kişinin kullanmasını sağlar. Bu komut çalıştırıldığı anda veritabanında birden fazla kişi bağlıysa bu özellik açıldıktan sonra kullanmaya devam ederler ancak bağlantı kesildiği andan itibaren bir tek kullanıcı kuralı dikkate alınır.

Kurtarma Modeli Seçenekleri:

Verita-banı ölçeklemede bir diğer seçenek de veri kurtarma modelidir. Bu işlem için olan seçenekler de aşağıdaki şekildedir.

1. Full Recovery Model: Bu seçenekte

veritabanı üstünde yapılan işlemlerin logları tutulur. Bir veri kurtarma işle-minde, log dosyaları ile birlikte verita-banı kayıtları da elde edildikten sonra veritabanı kurtarma işlemi gerçekleştiri-lebilir. Standart olan kurtarma seçeneği bu seçenektir.

2. Bulk_Logged Recovery Model: Full

Recovery Model ile yaklaşık aynı

seçe-nekleri kullanır. Farklı olarak toplu işlemler için daha az log tutar. Örneğin SELECT INTO vb. gibi komutlar için daha kısıtlı bir log tutulur.

3. Simple Recovery Model: En basit

transaction log tutma seçeneğidir. Daha çok küçük ölçekli ve deneme amaçlı veri-tabanlarında veya sadece okuma amaçlı kullanılan veritabanı dosyaları için kullanılır. Bunun dışında ticari amaçlı veritabanı uygulamalarında bu türden bir kurtarma modelinin seçilmemesi gerekir.

SQL Query Analyzer

Query Analyzer, SQL ve T-SQL temelli komutlarla Veritabanı Sunucularının konfigüre edilmesini sağlamanın yanı sıra SQL ifadelerini çalıştırma ve analiz etme konusunda faydalanılmak üzere geliştirilmiş bir SQL Server bileşenidir.

Yine Query Analyzer ile bir veritaba-nına erişebilmek için yetkilendirilmiş bir işletim sistemi kullanıcısı veya domain kullanıcısı yahut veritabanı sunucusu yöneticisi hesabına sahip olmak gerekir. Bu kullanıcı grubunun hangisi veya hangilerinin geçerli olacağı, Enterprise Manager ile bir veritabanına sa (sistem yöneticisi) veya eşdeğeri bir hesap ile bağlandıktan sonra [properties\Security] sekmesinden düzenlenebilir. Yine nes-neler için yetkiler Enterprise Manager sayesinde düzenlenebilir.

Bir sonraki ünitede anlatılan T-SQL

İPUCU:

Query Analyzer’i Enterprice Mana-ger’den çağırmak mümkündür. Bunun en büyük faydası yetkilen-dirme bilgilerini yeniden girmemize gerek kalmamasıdır. Bu işlem için Enterprice Manager’dan bağlanmak istediğiniz veritabanını seçtikten sonra [Tools\SQL Query Analyzer]’i tıklamak yeterlidir.

(22)

komutları ve Saklı Prosedür, Trigger, Cursor gibi veritabanın nesnelerinin oluşturulması esnasında Query Analyzer programı kullanılacaktır.

SQL Server Query Analyzer’in

belli başlı özellikleri:

1. T-SQL ifadelerini çalıştırmak için bir

metin editörü

2. ANSI-SQL ve T-SQL için Sentaks

boyama

3. Nesne gezgini ve nesne arama

seçe-nekleri ile bir veritabanını veya üstünde yer alan nesnelere erişim kolaylığı.

4. Tablo oluşturmak gibi bir çok işlem için

kullanılabilir hazır T-SQL şablonları.

5. Bir etkileşimli hata ayıklayıcı ile Saklı

yordamlar için analiz imkanı.

6. Resultset’leri metin (text) temelli veya

ızgara (grid) temelli sunabilme.

7. Grafik ve metin temelli Sorgu

çalış-Resim 10. (1) Query Analyzer’de T-SQL komutlarının yazıldığı sorgu penceresi. (2)

Sonu-cun ne olarak görünmesini istediğinizi bu menüden belirleyin. (3) Sorgunuzda bir

sen-taks hatası olup olmadığını denetlemek için bu kısmı kullanabilirsiniz. (4) Sorgunuzu

çalıştırmak için bu kısmı kullanın.(F5 tuşuna da basabilirsiniz.) (5) Hangi veritabanında

çalıştığınızı buradan görüp değiştirebilirsiniz. (6) Çalıştırma planını görmek için burayı

tıklayın. (7) Nesneleri görmek için kullanılan menü ve nesneler. (8) Sorguların sonuç

(23)

tırma planı ile Query analiz etme seçe-neği ile daha az kaynak tüketen sorgula-malar geliştirme imkanı

8. Index ayarlama sihirbazı ile T-SQL

komutlarını analiz ederek daha iyi sorgu performansı için bir tablo üstünde ek bir index alana gerek olup olmadığını bula-bilme.(İndeksler hakkında geniş bilgi için serinin ilk kitabına bakınız.)

(Resim 10)

Query Analyzer ile

Veritabanı Oluşturmak:

Create Database

Enterprise manager ile görsel ortamda yaptığımız hemen her şeyi Query

Analy-zer ile de yapmak mümkündür. Hatta bu ortamda doğrudan kodlarla muhatap olduğumuz için daha fazla detaya hük-metme şansına sahibiz. Bu kısımda, bir önceki bölümde Enterprise manager ile nasıl yapılacağını anlattığımız veritabanı oluşturma işini T-SQL komutlarını kullanarak nasıl yapabileceğimize deği-neceğiz. Bu işlem için kullanacağımız komutu, Create Database deyimini bir önceki kitapçıkta özet olarak anlatmış-tık.

Genel kullanımı şu şekildedir:

CREATE DATABASE veritabani_adi [ON

[PRIMARY] (NAME= veri_dosyasi_adi, FILENAME= fiziksel_veri_dosyasi_adi [, SIZE = veri_dosyasi_boyutu ] [, MAXSIZE= maksimum_veri_dosyasi_ boyutu ] [, FILEGROWTH=veri_artim_miktari]) [LOG ON (NAME= log_dosyasi_adi, FILENAME= fiziksel_log_dosyasi_adi [, SIZE = log_dosyasi_boyut] [, MAXSIZE= maksimum_veri_dosyasi_ boyutu ] [, FILEGROWTH=veri_artim_miktari] ) ]

PRIMARY: Bazen veritabanı

tanım-lanırken birden fazla dosya üstünde veri saklayabilecek bir şekilde tanım-lanabilir. Bu durumda birinci dosya PRIMARY ile belirtilen dosyadır. Bir dosya bir ana gruba sahip olabilir. PRIMARY deyimi kullanılmazsa bir veritabanı için tanımlanan ilk dosya PRIMARY dosya olarak kabul edilir. Bütün veritabanı tanımlama tabloları ve değerleri birincil dosyada saklanır. Birin-cil veri dosyası *.mdf ’ dir. İkinBirin-cil veri

İPUCU:

Veritabanında, kullanıcı bilgileri, haklar, nesneler ve özellikleri gibi bilgilerin tutulduğu veri tabloları için birçok literatürde Veri Sözlüğü (Data Dictionary) terimi kullanılır. Veritabanı oluşturulduğunda bir çok verinin yer aldığı bir çok tablo sistem tarafından oluşturulur ve sistemin kendi ihtiyacı olan bilgiler tutulur. Bir de proje tarafından referans alınan ve il listesi, tür kod-ları ve benzeri gibi sabit kayıtkod-ları içeren tablolar vardır ki bu türden tablolara da look-up table(referans tablosu) denir.

(24)

dosyalarının uzantısı ise *.ndf ’ dir.

veritabani_adi: Veritabanına vermeyi

planladığınız isim. Bu isim VTYS tara-fından geçerli kabul edilen ve T-SQL ile gönderimde bulunmak istediğiniz (ileri seviyeli işlemlerde) isim.

veri_dosyasi_adi: Veritabanının fiziksel

adı. Bu isim işletim sistemi tarafından bilinene ismidir.

fiziksel_veri_dosyasi_adi: İşletim

sis-temi üzerinde saklanacak dosyanın adını ve yolunu belirtir.

veri_dosyasi_boyut: Veri dosyasının MB

cinsinden boyutunu belirtir. En az ve standart değer 1MB’tır. Bir birim belir-tilmezse MB olarak alınır ancak diğer hafıza birimlerini de belirterek kullan-mak mümkündür. GB, MB, KB gibi.

maksimum_veri_dosyasi_boyutu: Bu

veritabanının ne kadar boyut ile sınır-landırılacağını belirtir. Şayet bir değer girilmezse, tüm disk doluncaya kadar veritabanı dosyasına veri eklenebilir.

artim_miktari: Veritabanının başlangıçta

belirtilen boyutu dolduğunda sistem tarafından boyutu otomatik olarak artı-rılır. Bu aşamada veritabanının boyunun ne kadar artırılacağı bu parametre ile belirtilir. % oran değeri verilebileceği gibi sabit bir artım boyutu da girilebilir.

Örnek 1:

Bir önceki kitapçıkta da kullandığımız dbKutuphane veritabanını oluşturalım: Başlangıç boyutu 1MB olsun. En fazla 1GB‘a kadar olmak üzere her seferinde veri dosyası %20’si kadar artırılmak üzere en fazla 1GB’a kadar çıkarıla-bilsin. Veri dosyaları için isim kutup-hane_data olsun ve fiziksel dosya adı ‘D: \data\dbKutuphane.mdf ’ olsun.

Loglar için başlangıçta sadece 1 MB yer ayrılsın. Ancak bu alan dolarsa, her seferinde 1MB olmak üzere en fazla 1GB’a kadar sistem tarafından çıkarı-labilisin. Loglar için sistem dosya adı kutuphane_log olsun ve fiziksel dosya adı ‘D:\data\dbKutuphane.ldf ’ olsun.

CREATE DATABASE dbKutuphane ON PRIMARY (NAME =kutuphane_data, FILENAME= ‘D:\data\dbKutuphane.mdf’, SIZE = 1, MAXSIZE = 1GB, FILEGROWTH = 20% ) LOG ON( NAME = kutuphane_log, FILENAME= ‘D:\data\dbKutuphane.ldf’, SIZE = 1MB, MAXSIZE = 1GB, FILEGROWTH = 1MB )

Loglamadan Tablo Boşaltma:

Truncate Table

Bir tabloda yer alan tüm kayıtları silmek ama bu silme işlemleri için de satır bazlı birer transaction log oluşturulmasının istenmediği durumlar olabilir. (Özellikle replication ile ilgili uygulamalarda). Bu tür durumlarda TRUNCATE TABLE komutu kullanılır.

(25)

Genel kullanımı şu şekildedir:

TRUNCATE TABLE tablo_adi

Burada, tablo_adi argümanı, İçeriğini satır satır loglamaksızın boşaltacağımız tablo adını ifade eder.

TRUNCATE TABLE ile WHERE cümleciği olmayan DELETE komutu aynı işlevi yapar; bir tablonun tüm satır-larını boşaltır. TRUNCATE TABLE komutunu, WHERE koşulu olmayan DELETE cümlelerinin yerine kul-lanmak daha hızlı bir tablo boşaltma yöntemidir. Sistem kaynaklarını da TRUNCATE komutu daha az meşgul eder. Çünkü, her bir silinen satır için log oluşturmasında gerek yoktur.

TRUNCATE TABLE komutunun neticesinde, tablonun sadece içerdiği veriler silinir. Kolonlar, zorlayıcılar, indeksler, trigger’ler ve benzeri diğer tablo üstünde yer alan tanımlamalar silinmez. Bu tür tanımlamaların da silinmesini istiyorsanız, DROP TABLE komutu ile tabloyu silmek gerekir.

Örnek 2:

DELETE * FROM kitap

ile

TRUNCATE TABLE kitap

Komutlarının herhangi biri çalıştı-rılsa idi, daha sonra eklenecek bir kitap için sistem tarafından verilen kitap-No(kitap tablosunun otomatik artan anahtar alanı) alanı değeri arasında ne

fark olurdu?

1. işlemden sonra, kitapNo alanına en

son verilen kitapNo değerinin bir fazla-sı(bir sonraki daha doğru olur.) verilirdi.

2. işlemde ise kitap no tekrardan 1

değe-rinden(ilk verilen değerden) başlar ve eklenen her kayıt için artmaya devam eder.

TRUNCATE TABLE komutu, yabancı anahtar zorlayıcılarına takılır. Bunun anlamı şudur, ödünç tablo-sunda, kitapNo yabancı anahtar olarak tanımlandığı için; kitap tablosu üstünde TRUNCATE komutu çalıştırıldığında, komut çalıştırılmayacaktır. Aksine

DELETE * FROM kitap

çalıştırılır. Çünkü DELETE komutu log tutar ve bu nedenle bir TRIGGER tetikleyebilir. Ancak TRUNCATE komutu log tutmadığı için trigger harekete geçiremeyeceği önlem olarak komut çalıştırılmaz.

TRUNCATE TABLE komutu son olarak, indeksli görünüm(view) ‘lere işti-rak eden tablolar için de çalıştırılamaz.

TRUNCATE TABLE komutu, stan-dart olarak tablonun sahibine(owner) aittir. Bu hak başka rollere ya da kullanı-cılara aktarılamaz.

Bir Sorguyu Query

Analyzer ile Analiz Etme

SQL Query Analyzer ile bir sorgunun çalıştırılma planını görsel ve metin bazlı olarak detaylı görerek üstünde

(26)

optimi-zasyon yapmak mümkündür. Böylece aynı sonucu daha hızlı üreten sorgular yazmak mümkün olabilmektedir.

SQL Server Query Analyzer ile görsel çalıştırma planını görmek için

1. [Query>Display Execution Plan]

seçeneğini işaretleyin. Kısayol olarak CTRL+L’yi de kullanabilirsiniz.

2. Daha sonra analiz etmek istediğiniz

sorguyu yazıp çalıştırın.

3. Ardından [Estimated Execution Plan]

sekmesini tıklayın.

SQL Server’in çalıştırma planını metin ortamında bir resultset olarak döndürmesi için şu komutu kullanabi-lirsiniz:

SET SHOWPLAN_TEXT ON go

Dedikten sonra çalıştırdığınız bütün sorgular için bir metin bazlı çalıştırma planı da görüntülenecektir.

Bu özelliği tekrar kapatmak için çalış-tırmamız gereken komut oldukça basit:

SET SHOWPLAN_TEXT OFF Go

dememiz yeterli olacaktır.

Ayrıca daha özet ama kapsamı geniş bir çalışma planı çıktısı almak için SQL Server’in SHOWPLAN_ALL özelliğini açabiliriz. Bunun için de şu komutu

UYARI

Bir tablo oluşturacak SQL cümle-ciğini çalıştırma planını görmek üzere Query Analyzer ile SQL Ser-ver’e gönderdiğimizi varsayalım. Bu durumda tablo oluşmayacağı için bu tabloya kayıt eklemeye kalkıştığımızda böyle bir tablonun olmadığına dair bir hata alırız.

(27)

çalıştırmamız gerekir:

SET SHOWPLAN_ALL ON go

dedikten sonra çalıştırılan bütün sor-gular özet çalışma planı verilecektir.

Aynı şekilde bu özelliği tekrardan kapatmak için bu özelliği kapatmak yeterli olacaktır bunun için de şu komutu çalıştıracağız:

SET SHOWPLAN_ALL OFF Go

Çalıştırma Planını gösterirken SQL server kendisine gelen sorguları çalıştır-mak yerine analiz ederek hangi işlemler-den geçerek çalıştırılacağını, hangi işle-min yaklaşık ne kadar zaman alacağını gösterir, öngörür.

Çalıştırma planı özellikle DML(Veri İşleme Dili) için ve T-SQL ifadeleri için kullanılır. Bir Saklı Prosedür’ün, bir komut tarafından çağrılan Tetikleme(T-rigger)’in daha az kaynak tüketerek daha kısa sürede nasıl gerçeklenebileceğini analiz etmede faydalanacağız.

Örneğin bir SELECT ifadesini ger-çeklemek için SQL Server tüm tabloyu taramak zorunda kalabilir(table scan) Bunu önlemek için bu tabloda bir birin-cil anahtar alan oluşturursak, bu sorgu artık table scan yerine indeks bulma (index seeking) yapacaktır. Bunun mali-yeti de bir çok durumda table scan’a göre daha kısadır.

SHOWPLAN_TEXT ve SHOWP-LAN_ALL özellikleri yardımı ile alınan

metin temelli çalıştırma planı daha tek düzedir. Her bir parametere birer satır gibi gösterilir. Görsel çalıştırma planı ise her bir düğüm için detaylı istatistikleri düğümün üstüne gelindiğinde gösterir. Ayrıca her bir düğüm için bu düğümde yapılan işlemleri özetleyen bir ikon ile gösterilir. Bu ikonların anlamı için SQL Server ile birlikte kurulan Books Online ya da MSDN’den yardım alabilirsiniz. Books Online’den Query Analyzer’in komut ekranına ‘Query Analyzer’ yazıp bu iki kelimeyi seçtikten sonra SHIFT + F1 tuşuna basmanız yeter-lidir. Bulunan konulardan en baştakini tıklayarak ikonlar hakkındaki detaylara erişebilirsiniz. Diğer konularda da bilgi almak için aynı yolu kullanabilirsiniz.

(Resim 11)

Import & Export Data

Bazen MS Access(*.mdb), text dosyası ya da MS Excel ve benzeri gibi

(28)

dırılmış dosyalardan veri almak veya bu türden bir dosyaya veri aktarmak durumunda kalabiliriz. Bu durumda Import & Export Data toolu kullanılır.

(Resim 12)

1. Bunun için öncelikle [Başlat\

Programlar\Microsoft SQL Server\ Import and Export Data] takip edilerek program başlatılır.

2. Uygun olan kaynak seçilir. Örneğin

MS Access(*.mdb)

3. Uygun olan hedef seçilir. Örneğin MS

Access’den SQL Server’e veri alacaksak, hedef SQL Server’dir.

4. Kaynakta var olan tablolar getirilir ve

kullanıcının hangi tabloları aktarmak istediği sorulur. İstediğiniz tabloları işaretleyin.

5. Hemen çalıştırmak için Run

Immedi-ately seçeneğini kullanın.

6. Bir sonuç ekranı ile size kaç tablonun

aktarıldığı gösterilecektir.

SQL Server’den başka bir formata veri aktarmak için de yapılması gereken işlemler aynıdır. Değişen tek şey hedef ile kaynak türlerinin değişmesinden ibarettir.

SQL Service Manager

İPUCU:

MSDOS komut ortamından veri-tabanına erişmek için eski adı ile isql(Sybase’de halen aynı adla kullanılıyor), SQL Server’de ise osql.exe programı kullanılabilir. Bunun için komut satırını açtıktan sonra osql deyip enter’i tuşlayın. Ardından kullanıcı adı - şifreyi girin. SQL komutlarınızı yazıp go komutu ile bitirdikten sonra enter tuşuna basarak sonucunu görebilirsiniz. Bu programı sonlandırmak için exit yazıp enter’i tuşlamanız yeterlidir. Programın daha detaylı kullanımı için BOL(Books Online)’den yardım alabilirsiniz.

(29)

SQL Server’i başlatmak, durdurmak veya duraklatmak için kullanılan basit bir hizmet yönetim programcığıdır.

(Resim 13)

Bu servis çalışırken sistem çubu-ğunda (sistem saatinin hemen yanı) durumunu gösteren (çalışıyor, duruyor, duraklatılmış) ikon ile birlikte görünür. Bu ikon çift tıklanırsa resimde görünen ekran açılır.

İşletim Sistemi kapatılıp açıldığında otomatik olarak başlatılmak için bu seçeneği işaretli olarak bırakmak gere-kir.

SQL Server’de 4 farklı durum için durum ikonu mevcuttur. Aynı durum ikonunu, Enterprise Manager ile kay-dettirdiğiniz her bir Veritabanı için de görebilirsiniz.

Bu 4 ikon şu şekildedir:

1. Çalışıyor, bağlanılmadı: yeşil ok 2. Çalışıyor ve bağlanıldı: Yeşil Yuvarlak

içinde beyaz ok

3. Duraklatıldı: Yuvarlak içinde iki

düşey çizgi

4. Durduruldu: Yuvarlak içerisinde

kırmızı kare

SQL Server ve XML Desteği

XML, yazılım ve donanımdan bağımsız veri taşıma ve saklama standardı olup eXtensible Markup Language (Genişle-tilebilir İşaretleme Dili) kelimelerinden elde edilmiş bir ankronimdir. XML ile işaretlenmiş bir bilgi bir cep telefonunda bir PC’de gösterildiği kadar kolay göste-rilebilir. XML ayrıca farklı platformlarda çalışan uygulamalar arasında veri pay-laşımı için ve HTML’den arındırılmış olarak bilgilerin Web’e açılması için de kullanılır. XML de verinin görünümü ve sunumu ile ilgilenen işaretleme dili HTML (Hiper Metin İşaretleme Dili) gibi SGML (Standartd Generalized Markup Language)’den türetilmiştir. SGML çok geniş bir dil olduğundan Web’de tam olarak kullanılması oldukça zordur. Bu nedenle bu türden geliş-tirmelere gidilerek amaca özel kısıtlı elemanlardan oluşan işaretleme dilleri elde edilmiştir.

SQL Server 2000 veri aktarımı ve sak-lama konusundaki bu son teknoloji için şu destekleri sağlar:

•SQL Server’e URL üstünden erişim.

•XML Data Schema desteği ve bu şemalar üstünde XPath sorgulama.

•XML içerikli veri çekme ve XML’den veri ekleyebilme.

(30)

XML Web Servisleri ile de bir veri-tabanınızı XML destekli olarak Web’e veya başka bir kurumun kullanımına istediğiniz kısıtlar doğrultusunda, aça-bilirsiniz.

XML konusunu serinin son kitabında detaylı olarak serinin son kitabı ‘XML ve Web Servisleri’nde bulabilirsiniz.

Örnek 3:

Bir sorguda tablolara arsında hiyerarşik ilişkiyi de içeren XML çıkış üretmek İçin

SELECT * FROM kitap FOR XML RAW

kullanılır.

SQL Server’de Veritabanı

Nesneleri

Bu kısımda anlatılan nesnelerin bir kısmı bir önceki kitapçıkta detaylı olarak incelenmişti. Diğer bir kısmı da bu kitapçıkta anlatılacaktır. Önemli olduğu düşünülen nesneler hakkında detaylı bilgi bu seride yer almamaktadır.

Nesneler veritabanı yapıları içeri-sinde yer alır. SQL Server ilk kurul-duğunda kendi ihtiyaçları için bir dize veritabanı ve her bir veritabanı da kendi içerisinde sabit bir dize nesne içerir. Bunlara VTYS’nin kendisinin ihtiyacı vardır.

Bir SQL Server kurulduğunda şu veritabanları standart olarak kurulur:

Master: Hangi veritabanları

oluştu-ruldu, disk kullanımı, kullanıcı hesap-ları, sistem ayarları vb. gibi veritabanı ile ilgili ortam değer ve değişkenleri bu veritabanında yer alır.

Model: Yeni oluşturulacak tüm

verita-banları için bu veritabanı model alınır. Yani şablon veritabanıdır. Oluşturulacak her veritabanında olması istenen deği-şiklikler (tablo, saklı prosedür, trigger vs.) bu veritabanında yapılır.

Msdb: SQL Server Agent servisi

tarafın-dan kullanılan veritabanıdır.

Tempdb: Geçici bilgilerin saklandığı

veritabanıdır. Bir sonraki ünitede, kulla-nımı hakkında bilgi verilecektir.

Pubs: Örnek bilgilerin yer aldığı

verita-banıdır. (Resim 14)

Her bir veritabanı içerisinde yer alan nesneler şu gruplardan birine aittir:

Diyagramlar: Veritabanındaki

tablola-rın birbiri ile ilişkisini gösterir. Burada mantıksal olarak zorlayıcılar vb. gibi öğelerle ile ilişkilendirilmiş tabloların ilişkilerinin fiziksel olarak görünümü yer alır.

(31)

Tablolar: Veritabanının kayıtları

sakla-yan mxn boyutlu matrisleridir. Bir çoğu kullanıcı tarafından tanımlanır. Sistem tarafından kurulum aşamasında oluş-turulup kullanılan tablolar da yer alır. Tablolar hakkında ilk kitapta yeterince konuşmuştuk, burada sadece şunu da eklemek yeterli olur sanırım: Bir tablo 8060byte’ten daha uzun olmamalıdır. Bu, SQL Server’in disk yönetim birimi ‘sayfa’nın boyutundan kaynaklanan bir sınırlamadır. Tabloları meydana getiren satırlar, sayfalar halinde saklanır ve bir tablonun bir satırı en fazla bir sayfa yer kaplayabilir, ikinci sayfaya taşamaz.

Görünümler (view): Gerçekte olmayan

tablolardır. Veritabanında var olan tablo-lar üstünden select işlemi ile getirdikleri sonuçları ifade eden nesnelerdir. (Bir önceki kitapçıkta hakkında geniş bilgi verilmiştir.)

Saklı prosedürler (Stored Procedu-res): Bir dize T-SQL(MSSQLServer

- Sybase) veya PL/SQL(Oracle) komu-tunun bir işlevi yerine getirmek üzere paketlenmiş halidir.

Kullanıcılar: Sistemdeki nesnelere

erişim hakkı verilmiş birer kullanıcı adı ve şifrenin sistemdeki eşdeğeridir. Bir kısmı sistem tarafından oluşturula-bileceği gibi örneğin (dbo) daha sonra veritabanı yöneticisi tarafından da

ekle-SQL Server2000’de Tanımlı Veritabanı Rolleri

Rol

AÇIKLAMA

db_accessadmin

Veritabanı Erişim Yöneticisi

db_backupoperator

Veritabanı Yedekleme Operatörü

db_datareader

Veritabanı Veri Okuyucusu

db_datawriter

Veritabanı Veri Yazıcısı

db_ddladmin

Veritabanı DDL Yöneticisi

db_denydatareader

Veritabanı engelli veri okuyucu

db_denydatawriter

Veritabanı engelli veri yazıcı

db_owner

Veritabanı Sahibi

db_None

Boş

(32)

nebilir.

Roller: Veritabanında yapılabilecek belli

başlı işlemler, belli nesneler üstünde belli haklar için erişim tanımlayarak oluşturulan hak grubu. Bu gruplar daha sonra kullanıcılara aktarılır. Böylece VTYS üstünde var olan sayısız erişim ve yetkilendirme için denetleme işlemi gruplar üstünden denetlenebilir.

Default’lar: Bir alana değer girilmemesi

halinde, bir değer ile başlaması için default nesneleri tanımlanır. Örneğin bir hesap yeni açıldığında para yatırmadığı-nız sürece hesabıyatırmadığı-nızda 0 lira görünür.

Kullanıcı Tanımlı Tipler: Her ne kadar

ANSI SQL’de standartta tanımlı veri tiplerinin dışındaki veri tiplerini kul-lanamasak da VTYS’ler bunu aşarak kullanıcının gerektiğinde veri tipi

tanım-lamalarına olanak sağlarlar.

Kullanıcı Tanımlı Fonksiyonlar: ANSI

SQL’de tanımlı fonksiyonların bir kısmını ve bazı VTYS’ler tarafından sağlanan ek fonksiyonları bir önceki kitapçıkta anlatılmıştı. Tüm bu ANSI ve Sistem fonksiyonlarının dışında kullanıcı ihtiyaç duyduğunda fonksiyon da tanımlayabilmektedir. Her ne kadar saklı prosedürler(SP) fonksiyon benzeri bir görevi yerine getirse de kullanıcı tanımlı fonksiyonlar işlev olarak daha özel işlemlerde kullanılır.

Tetiklemeler (Trigger): Trigger’ler bir

tabloya kayıt eklendiğinde veya silindi-ğinde otomatik olarak devreye giren özel saklı prosedürlerdir. Özellikle veritabanı tutarlılığını sağlamak için kısıtlayıcıların yetersiz kaldığı durumlarda (örneğin

SQL Server 2000’de Tanımlı Server Rolleri

Rol

AÇIKLAMA

dbcreator

Veritabanı oluşturucusu

diskadmin

Disk Yöneticisi

processadmin

İşlem Yöneticisi

securityadmin

Güvenlik Yöneticisi

serveradmin

Sunucu Yöneticisi

setupadmin

Kurulum Yöneticisi

sysadmin

Sistem Yöneticisi

(33)

basamaklı güncelleme gibi) kullanılır.

SQL Server ve Kullanıcı

Yönetimi

SQL Server’de kullanıcı yönetimi ile ilgili iki tip öğe bulunmaktadır: Roller ve kullanıcılar. Kullanıcı tek bir kişiye ait tanımlamaları içerirken roller yetki ve erişim tanımlamalarını gruplamada kullanılır. Bir rol bir çok kullanıcıya atanarak, haklar üstünde bir gruplamalı erişim yönetimi uygulanabilir. Böylelikle her bir kullanıcının haklarını teker teker oluşturup yönetmek yerine roller ciddi şekilde denetlenebilir. Çünkü bir çok kullanıcı için neredeyse aynı haklar ve yetkiler verilir. Bir okul otomasyonu ger-çekleştiriyorsak, bir çok öğretmen kulla-nıcısının aynı tablo ya da T-SQL ifade-lerine erişimleri olmak durumundadır. Öğrenciler için de aynı şey geçerlidir.

Roller:

Birden fazla kişiye verilebilen ve yetki-lendirmeler için bir grup oluşturmada kullanılan kullanıcılara yönelik tanım-lamalardır.

Halihazırda var olan ve değiştirile-meyen rollere sabit sistem rolü(fixed system role) denir. İki grup sabit sistem rolü vardır: sabit server rolleri ve sabit veritabanı rolleri...

Kullanıcılar:

SQL Query Analyzer’de yeni bir kulla-nıcı oluşturmak için, create user deyimi

kullanılır. Genel kullanımı şu şekildedir.

CREATE USER (Kullanici_adi) identified by (sifre) default tablespace kullanici_verileri;

Kullanici_adi:

kullanıcı adı. Zorunlu.

sifre: Kullanıcının şifresidir. kullanici_verileri: Kullanıcı verilerinin nerede tutulduğunu belirtir.

sa (systemAdmin) rolüne sahip temel kullanıcıdır. Güvenlik nedeniyle bu kullanıcının adını değiştirilmesi önerilir. Ancak bu ayrı bir tartışma konusu.

Yetki verme

(Grant Komutu)

Grant komutu ile bir kullanıcının veya tüm kullanıcıların bir T-SQL ifadesine ya da veritabanına erişimi için güvenlik sisteminde izin açmaya yarar. Bu komut ile yapılabilecek hemen her şey Enterprise Manager programı ile de yapılabilir.

Genel kullanımı şu şekildedir:

GRANT {ALL [PRIVILEGES] |izin[,....n]} { [(kolon[,...n])] ON {tablo|view} [(sutun[,...n])] |ON {sp|ep|udf} } TO guvenlik_hesabi[,...n] [WITH GRANT OPTION] [AS {kullanici_grubu|rol}]

ALL: Tüm verilebilecek hakların

veri-leceğini gösterir. db_owner, sysadmin ve database object owner tarafından

(34)

kulla-nılabilir.

TO: iznin kimlere verileceğini belirtir.

guvenlik_hesabi: Bir veritabanı giriş hesabı, işletim sistemi kullanıcısı ya da domain kullanıcısı olabilir.

n: Bir önünde geçen şeyin n defa tekrar

edebilir olduğunu gösteren yer tutucu.

PRIVILEGES: ANSI-92’ye uyumlu olsun

diye konmuş bir kelime olup kullanımı isteğe bağlıdır.

sp: Saklı Prosedür adı. ep: Genişletilmiş Prosedür adı. udf: Kullanıcı Tanımlı Fonksiyon adı. izin:

•Tablolar için SELECT, INSERT, DELETE, REFERENCES veya UPDATE gibi izinlerdir. UPDATE ve SELECT için gerekirse sütun tanımları da verilebilir. Aksi halde verilen izin tüm sütunlar için geçerli olur. REFERENCES ile tablo üstünde bir alana yabancı anahtar olarak referans içeren bir başka tablo vs. oluşturabilme izni verir.

•Nesneler için (SP, EP, UDF) ek olarak tek izin vardır; EXECUTE. EXECUTE ile bir nesneye çalıştırılma izni verilebi-lir. Ayrıca REFERENCES ile referans verebilme izni de sağlanabilir. Nesneler için REFERENCES, View oluştururken kullanılan WITH SCHEMABINDING deyimi ile bu nesnenin ürettiği sonuçları içerebilmesine hak sağlar.

tablo: Veritabanında yer alan tablo adı view: Veritabanında tanımlı view adı sutun: adı verilen tablo ya da view’de

geçen sütun ad(lar)ı

WITH GRANT OPTION: Sadece

nes-neler için geçerli olan bu deyim ile izin verilen bir kullanıcının bu nesne üstünde başka birine daha kullanım izni verebilme hakkı sağlayabilmesine yarar.

AS: Nesne için yetki tanımlaması,

kulla-nım yetkisi olanların dışında Bir kullanıcı grubuna ya da role de yetkilendirme yet-kisi açmak için kullanılır.

Örnek 4:

sp_kitapbul adında bir saklı yordam üstünde SQLServer’e giriş hakkı olan herkese tüm haklarını açalım:

GRANT ALL ON sp_kitapbul TO public;

ile bu iş tanımlanır.

Yetki Kaldırma

(Revoke Komutu)

GRANT komutu ile verilen hakların bir çoğu Enterprise Manager kullanılarak görsel bir ortamda geri alınabilir ancak Query Analyzer ile kod yazarak bu hak-ları geri almak için REVOKE komutu kullanılır.

Genel kullanımı şu şekildedir:

REVOKE [GRANT OPTIONS FOR] {ALL [PRIVILEGES] |izin[,....n]} { [(kolon[,...n])] ON {tablo|view} [(sutun[,...n])] |ON {sp|ep|udf} } {TO|FROM} guvenlik_hesabi[,...n] [CASCADE] [AS {kullanici_grubu|rol}]

(35)

REVOKE komutunu çalıştırabilmek için sys_admin sabit sunucu rolüne veya db_owner, db_securityAdmin sabit veri-tabanı rollerine sahip kullanıcı olmak ve elbette nesne için dbo olmak gerekir.

ALL: Nesne üstünde verilen tüm izinlerin

iptal edileceğini anlatır.

FROM: Güvenlik hesabı listesi belirtmede

kullanılır.

GRANT OPTION FOR: Bu kelimelerle

REVOKE komutu çalıştırıldığında kul-lanıcılılar nesneleri kullanmaya devam eder ancak yeni kullanım hakkı tanım-layamaz.

guvenlik_hesabi: Bir veritabanı giriş

hesabı, işletim sistemi kullanıcısı ya da domain kullanıcısı olabilir.

n: Bir önünde geçen şeyin n defa tekrar edebilir olduğunu gösteren yer tutucu.

PRIVILEGES: ANSI-92’ye uyumlu olsun

diye konmuş bir kelime olup kullanımı isteğe bağlıdır.

sp: Saklı Prosedür adı. ep: Genişletilmiş Prosedür adı. udf: Kullanıcı Tanımlı Fonksiyon adı. izin:

•Tablolar için SELECT, INSERT, DELETE, REFERENCES veya UPDATE gibi izinlerdir. UPDATE ve SELECT için gerekirse sütun tanımları da verilebilir. Aksi halde verilen izin tüm sütunlar için geçerli olur. REFERENCES ile tablo üstünde bir alana yabancı anahtar olarak referans içeren bir başka tablo vs. oluşturabilme izni verir.

•Nesneler için (SP, EP, UDF) ek olarak tek izin vardır; EXECUTE. EXECUTE ile bir nesneye çalıştırılma izni verilebi-lir.Ayrıca REFERENCES ile referans verebilme izni de sağlanabilir. Nesneler için REFERECES, View oluştururken kullanılan WITH SCHEMABINDING deyimi ile bu nesnenin ürettiği sonuçları içerebilmesine hak sağlar.

tablo: Veritabanında yer alan tablo adı view: Veritabanında tanımlı view adı sutun: Adı verilen tablo ya da view’de geçen sütun ad(lar)ı

CASCADE: Hak verme hakkını

kaldırır-ken kullanılır. Yetki verme yetkisi kaldırıl-dıktan sonra, bu kişiler tarafından yetki-lendirilen kişilerin yetkilerini de kaldırır.

Örnek 5:

ogrenci kullanıcısından saklı prosedür ve tablo oluşturma yetkilerini kaldıralım:

REVOKE CREATE PROC, CREATE TABLE FROM ogrenci

Örnek 6:

Bir önceki bölümde üstünde yetki

tanım-DİKKAT:

Bir saklı prosedür için yetki verme yetkisi dbo’ya aittir.(Yani bu nes-neyi oluşturan kişiye) Bu nedenle REVOKE komutu çalıştırıldığında bu saklı prosedürü oluşturan kişinin nesne üstündeki yetkilendirme ve kullanma hakkı kaybolmaz.

(36)

Referensi

Dokumen terkait

Volume biogas yang dihasilkan diamati setiap hari untuk mempelajari pengaruh perlakuan suhu pada produksi biogas dengan menggunakan bahan baku limbah kolam

Tahapan proses analisis menggunakan MDS dengan pendekatan Rap-Biopore yaitu: scoring atribut pengelolaan LRB, penentuan ordinasi dengan análisis MDS, analisis

Sehingga membuat penulis tertarik untuk melakukan penelitian mengenai faktor-faktor yang mempengaruhi niat beli konsumen pada Peer-to-Peer platform media sosial,

Begitu juga dengan proses verifikasi dan penetapan yang dilakukan oleh KPU terhadap calon-calon Presiden dan wakil Presiden di Indonesia ada persamaan tugas dan kewenagan

Algoritma Tokenization With Vectors dipilih sebagai pendukung untuk metode AIS ini karena berdasarkan performansi yang dihasilkan pada sistem Information Retrieval

“Karena setelah kegiatan MTQ ini para peserta terbaik pertama akan dikirim mewakili kabupaten Seruyan mengikuti STQ tingkat Provinsi Kalteng tahun 2015 yang digelar di

keluar dari paru-paru diserap kembali oleh tubuhnya melalui sel khusus yang terdapat khusus yang terdapat di hidung bagian dalam, membentuk kristal dan suatu saat dapat diambil.