F.Ü. MÜH FAK: BİLGİSAYAR MÜH.BÖLÜMÜ BİLGİSAYAR SİSTEMLERİ LAB. DENEY NO:3 CLIENT SERVER ORTAMINDA VERİTABANI KULLANIMI Ön Çalışmalar 1. İlişkisel veritabanı tasarımı hakkında bilgi edininiz. 2. TSQL komutlarını gözden geçiriniz. 3. Visual C#, Visual Basic, ASP.NET ve JAVA dillerinde veritabanı kontrollerinin kullanımını inceleyiniz. 4. Dağıtık sunuculara bağlantı ve dağıtık programlama konularını inceleyiniz. 5. Uzaysal ve geometrik veri tipleri hakkında bilgi edininiz. SQL (STRUCTURED QUERY LANGUAGE)’E GİRİŞ İlişkisel veritabanı modeli 1970’i yıllarda Dr. Edgar F. Codd tarafından geliştirilmiştir. IBM ve Dr. Codd çalışmaları sonucunda SQL (Structure Query Language – Yapısal Sorgulama Dili) ortaya çıkmıştır. SQL bugün ilişkisel veritabanı sistemlerinde bir standart haline gelmiştir. Bugün internet ortamında program geliştirmek için kullanacağınız ASP, JSP, PHP, ASP.NET ve Java gibi dillerle veritabanı işlemleri yapacak olursanız SQL kullanmanız gerekecektir. SQL veriye erişmenin ve sorgulamanın en hızlı yoludur. SQL geliştirildiği 1970’li yıllardan günümüze gelene kadar birçok değişikliğe uğramıştır. SQL dilinde bir standardizasyona gidilmesi için ISO ( International Standard Organization) çalışma başlatmış ve en son SQL-92, ANSI SQL veya SQL 2 diye adlandırılan standart kabul edilmiştir. ANSI SQL, C, Basic, Pascal gibi dillerde gördüğünüz döngü ifadelerine ve şart yapılarına sahip değildir. Bu yüzden SQL’ e bir programlama dili diyemeyiz. Fakat bazı firmalar ANSI SQL’e bağlı kalarak bir kısım eklemeler yapmış ve SQL’i kendilerine göre değiştirmişlerdir. Örneğin Microsoft SQL Server’in Transaction SQL (TSQL) dili döngü yapılarına ve şart ifadelerine de sahiptir. TSQL KOMUTLARI TSQL veritabanı ile ilgili tanımlamalarda bulunmak, verilere erişip onları yönetmek ve veriye erişimi kontrol etmek için ayarlamalarda bulunmak üzere ifadeler içerir. Bu ifadeler için aşağıdaki tablo göz önüne alınmıştır. URUN TABLOSU UrunID UrunAdi Fiyati Stok_adedi Eklenme_tarihi EC200 Klavye 100 10 01.10.2010 BE121 Buzdolabı 1.000 32 12.03.2009 EL358 Telefon 535 45 28.03.2010 TSQL deyimleri üç aşağıdaki üç grupta incelenebilir: Veri Tanımlama Dili: Nesne oluşturma, silme ve nesneler üzerinde değişiklik yapma (CREATE, ALTER ve DROP). Nesne oluşturmak: CREATE CREATE deyimi ile veritabanındaki nesnelerden herhangi biri oluşturulabilir. Kullanımı: CREATE nesne_tipi nesne_adi [varsa_nesneye_ait_tanimlamalar] Veritabanı oluşturma Tablo oluşturma Create database bslab Use bslab; Create table urun( UrunID varchar(10) not null, UrunAdi varchar(20), Fiyati int, Stok_adedi int, Eklenme_tarihi Datetime, Primary key(UrunID)) Nesnelerde Değişiklik Yapma: ALTER Genel kullanımı: ALTER nesne_tipi nesne_adi degisiklik_ifadesi USE bslab Go ALTER TABLE urun ALTER COLUMN UrunAdi varchar(40) NOT NULL Nesne Silmek: DROP Genel Kullanımı: DROP nesne_tipi nesne_adi DROP TABLE urun Veri İşleme Dili: Veri ekleme, silme, seçim ve güncelleme işlemleri (INSERT, DELETE, SELECT ve UPDATE) Veri Eklemek: INSERT Genel Kullanımı: INSERT INTO tablo_adi(sutun1 [,sutun2,…]) VALUES(deger1 [, deger2,….]) Örnek: use bslab go insert into Urun(UrunID,UrunAdi,Fiyati,Stok_adedi,Eklenme_tarihi) values(‘BL300’,’Bilgisayar’,1250,10,’01.15.2010’) Veri Silmek:DELETE Genel Kullanımı: DELETE FROM tablo_adi WHERE şart_ifadesi Örnek: DELETE FROM Urun where UrunID=’BL300’ Veri Güncellemek: UPDATE Genel Kullanımı: UPDATE tablo_adi SET alan1=deger1, alan2=deger2 where şart_ifadesi Örnek: UPDATE Urun SET Fiyati=1500 WHERE UrunID=’BL300’ Veri Seçimi ve Filtreleme: SELECT sutun_adi1 [, sutun_adi2,…]|* FROM tablo_adi WHERE şart Tüm alanları seçmek için SELECT * FROM Urun Sadece Urunadi ve fiyatlarini göstermek için SELECT UrunAdi, Fiyati FROM Urun Fiyatı 500’den büyük olan ürünleri göstermek içinSELECT * FROM Urun where Fiyati>500 Urun adi Bilgisayar olan ürünleri göstermek içinSELECT UrunAdi, Stokadedi FROM Urun WHERE UrunAdi=’Bilgisayar’ Sonucu sıralı olarak göstermek için SELECT * FROM Urun WHERE Fiyati>50 ORDER BY Fiyati ASC Buradaki ASC sözcüğü Ascend yani artan şekilde harf için A’dan Z’ye rakam için küçükten büyüğe doğru sıralama anlamındadır. DESC sözcüğü ise bu işlemin tersini yapar. Eğer Fiyatı 1000 ile 2000 arasındaki ürünleri listelemek isteseydik BETWEEN sözcüğün kullanmamız gerekirdi. SELECT * FROM Urun WHERE Fiyati BETWEEN 1000 AND 2000 Gruplama fonksiyonları: SUM, AVG, MAX, MIN, COUNT Ürünlerin toplam fiyatını bulmak için SELECT SUM(Fiyati) FROM urun Kayıt sayısını bulmak içinSELECT count(*) FROM Urun Veri Kontrol Dili: Kullanıcılar ile ilgili yetki ve izinlerin kontrolü Yetki Verme: GRANT Genel Kullanımı: GRANT {ALL|izinler} ON {izinebaglanabilenler} TO {hesaplar} Örnek: GRANT CREATE TABLE TO Ahmet komutu ile Ahmet kullanıcısı için tablo oluşturma yetkisi verilir. Erişimi Engellemek: DENY Genel Kullanımı: DENY {ALL|izinler} TO {Kullanıcılar} Örnek: DENY SELECT ON bslab TO Ahmet komutu ile bslab tablosu üzerinde Ahmet kullanıcısının SELECT komutunu çalıştırmasını engelliyoruz. Erişim Tanımını Kaldırmak: REVOKE Genel Kullanımı: REVOKE {ALL|izinler} {TO|FROM} {hesaplar} Örnek: REVOKE ALL TO public örneği ile public rolüne verilen bütün yetkileri kaldırırız. TSQL’İN PROGRAMLAMA YETENEKLERİ Değişken Tanımlama: TSQL’de değişkenler tanımlanıp sorgulardan elde edilen sonuçlar bu değişkenlerde tutulabilir. Bir değişken aşağıdaki şekilde tanımlanabilir. DECLARE @degisken_adi veritipi [(boyut)] Örnek: DECLARE @pahaliurunadi VARCHAR(20); Değişkenlere değer atamak için SET veya SELECT ifadesi kullanılır. İki ifadenin kullanımı ile ilgili örnek aşağıda verilmiştir: Örnek: SET @pahaliurunadi=’LCD TV’ DECLARE @yuksekfiyat MONEY ------------------------------------------SELECT @yuksekfiyat=MAX(Fiyat) FROM bslab SELECT @yuksekfiyat Print Komutu: TSQL ile kod yazarken bazen hata mesajları ve değişken değerlerini mesaj olarak göstermek için kullanılır. Örnek: DECLARE @sonuc MONEY SELECT @sonuc=SUM(Fiyat) from urun PRINT CAST(@sonuc as VARCHAR(10)) Akış Kontrolleri: TSQL’de akış kontrolleri BEGIN… END blokları arasına yazılır. IF karar yapısı, Case deyimi, While döngüsü ve break ile continue deyimleri TSQL’de kullanılmaktadır. IF Karar Yapısı: Kullanımı Örnekler IF … ELSE Karar yapısı IF(SELECT MAX(Fiyat) FROM Urun)>=20000 IF(şartlar) BEGIN BEGIN PRINT ‘pahallı ürünler var’ Kodlar END ……. ELSE END BEGIN ELSE PRINT ‘Pahallı ürün yok’ BEGIN END …… IF NOT EXISTS(SELECT * FROM urun) END PRINT ’Stokta ürün yok’ CASE Deyimi: Kısa kodlar ile birçok duruma dallanan akış yapılarını kodlamakta kullanılır. Kullanımı Örnek CASE SELECT Fiyat, urunAdi, Durum= WHEN şart THEN değer CASE [ELSE değer] WHEN Fiyat>100 THEN ‘PAHALLI’ END WHEN Fiyat<100 AND Fiyat>50 THEN ‘ORTA’ ELSE ‘UCUZ’ FROM Urun While Döngüsü ve Break Continue deyimleri: While ile bir işlemi istediğimiz kadar tekrarlatabiliriz. Break ve Continue deyimleri döngüyü kesme veya sonraki adımdan devam ettirmede kullanılır. Kullanımı Örnek WHILE şart DECLARE @sayac INT BEGIN SELECT @sayac=1 Tekrarlanacak kodlar WHILE(@sayac<15) END SELECT @sayac=@sayac+1 SELECT ‘sayac=’, @sayac İLİŞKİSEL VERİTABANI TASARIMI Herhangi bir veritabanı sistemi tasarlanırken veriler farklı ilişkisel tablolarda tutularak hem veritabanı boyutunun aşırı artması engellenir hem de veri bütünlüğü sağlanır. Tabloları birlikte sorgulamak, normalizasyon gibi ilişkisel veritabanının temelini oluşturur. TSQL’de üç çeşit birleştirmeden (JOIN) bahsedilebilir. Bunlar aşağıda verilmiştir. JOIN türü Açıklama INNER JOIN İki tablo birlikte sorgulanırken, her iki tabloda da sadece uyuşan kayıtlar sonuçta gösterilir. OUTER JOIN İki tablo birlikte sorgulanırken, tablolardan herhangi birinde veya sadece birinde yer alan kayıtları sorgulamak için kullanılır. LEFT, RIGHT ve FULL olmak üzere üç alt türden oluşur. CROSS JOIN İki tablonun Kartezyen çarpımını bulmak için kullanılır. Tablolar arasındaki ilişkileri belirlemek için diyagramlar kullanılır. Diyagramlar görsel ortamda tablolar arasında ilişki kullanmayı sağlar. Daha önce Microsoft Access ile tablolar arasında ilişkiler tanımladıysanız bu nesneyi rahatlıkla kullanabilirsiniz. Sonradan tablo alanları üzerinde yaptığınız değişiklikler otomatikman bu diyagramlara yansıtılır. Aşağıda örnek bir veritabanı diyagramı verilmiştir. Veritabanı diyagramı şu şekilde oluşturulur: 1. SQL Server Managament Studio ‘da ilgili veritabanı içerisinde Database diagrams’a sağ tıklanır. 2. New Database Diagram seçeneği seçilir. 3. İlişkili olacak tablolar Add Table penceresinden eklenir. 4. Hangi alanlar arasında ilişki kurulacaksa bir alan üzerinden diğerine doğru sol Mouse tuşu sürüklenerek bırakılır. 5. Birleştirme türü (Primary Key-Foreign Key) belirlenir ve diyagram kaydedilir. Diyagram oluşturmak ilişkisel veritabanlarında veri bütünlüğünü sağlar. Örneğin kullanıcı veritabanında olmayan bir ürün hakkında yorum yazamaz. INNER JOIN işlemi en çok kullanılan birleştirme işlemidir. İki tablo arasında birleştirme yaparken, tablolardan her ikisinde de yer alan değerler seçilir, tablolardan sadece birinde yer alan Genel kullanımı aşağıdaki gibidir. … FROM tablo1 [INNER] JOIN tablo2 ON tablo1.alan1 karsilastirma_isareti tablo2.alan2; Karşılaştırmadan kasıt genellikle “=” işaretidir. Örnek: SELECT U. UrunKod, U. UrunAd, U.Fiyat, M. Umarka from Urun U INNER JOIN marka M ON U.markakod=M.markakod Yukarıdaki sorgu ile Marka ve Urun tabloları markakod alanaları üzerinden birleştirilmiştir. OUTER JOIN işlemi, aynı anda her iki tabloda da yer almayan kayıtlardan tek tablodakileri veya her iki tablodakileri de diğer sütunları NULL olmak üzere sonuçta gösterebilmek için kullanılır. Genel kullanımı şu şekildedir: …. FROM tablo1 JOIN_TIPI OUTER JOIN tablo2 ON tablo1.alan1=tablo2.alan2 Burada JOIN_TIPI LEFT, RIGHT veya FULL olabilir. LEFT JOIN’de soldaki tabloda yer alan kayıtlar, sağdaki tabloda karşılıkları olmasa bile getirilirler. Tam tersi durum RIGHT JOIN’de geçerlidir. FULL JOIN’de ise her iki tabloda karşılıklı olarak eşit satırı olmayan kayıtlar da getirilir. FULL JOIN’de ise her iki tablodaki karşılıklı olarak eşit olmayan kayıtlar getirilir. Genel kullanımı aşağıdaki gibidir: ….. FROM tablo1 {LEFT|RIGHT|FULL} [OUTER] JOIN tablo2 ON tablo1.alan1=tablo2.alan2 Örneğin müşterilerden sipariş verenlerin fatura kodlarını ve isimlerini, sipariş vermeyenlerin ise sadece isimlerini göstermek için; SELECT faturakod, isim+’ ’+soyad as ad FROM Kullanici K LEFT JOIN siparis S ON K.kullanicikod=S.kullanicikod CROSS JOIN ise her iki tabloda yer alan kayıtları çaprazlamak için kullanılır. Genel kullanımı …. FROM tablo1 CROSS JOIN tablo2 Saklı Yordamlar (Stored Procedurlar) Veritabanında saklanabilen ön derlemesi yapılmış Transact SQL deyimlerdir. Stored Procedurlar daha önce derlendiği için hızlı çalışırlar. Uygulamalar tarafından stored procedurlara erişerek kullanabilirsiniz. Örneğin bir Stored Procedure oluşturup; Java ile bu Stored Procedure erişip kullanabilirsiniz. Java, C#, Visual Basic gibi diller ile yazılan çok kullanıcı veritabanı programları stored procedure’leri oldukça yoğun kullanmaktadır. Genel kullanım şekli aşağıdaki gibidir: CREATE PROC[EDURE] prosedur_adi( @parametre_adi veri_tipi [=varsayılan değeri] --Giriş parametreleri ... ) AS TSQL deyimleri GO Stored procedur’ü çalıştırmak için ise aşağıdaki şekilde yapılabilir. EXEC prosedur_ismi @parametre_ismi=deger [,…=….] veya EXEC prosedur_ismi parametre_degeri [,…] Aşağıda urun_ara isimli bir Stored Procedure oluşturulmaktadır. CREATE PROC urun_ara @urunID varchar(20) AS SELECT UrunAd, Fiyat, Adet FROM urun WHERE Urun.UrunKod=@urunID GO Bu procedure’nin çalıştırılması için EXEC urun_ara ‘BL300’ veya EXEC urun_ara @UrunID=‘BL300’ yazılmalıdır. Burada UrunUD’si parametre olarak geçirilmiş ve ürün bilgileri listelenmiştir. Tetiklemeler(Triggers) Tetiklemeler de bir store procedure’dir. Fakat bir farkı tetiklemeler otomatik çalışırlar. Ancak UPDATE, INSERT, ve DELETE deyimlerini kullanarak bir tetikleme otomatik olarak başlatabilirsiniz. Genel kullanımı aşağıdaki gibidir: CREATE TRIGGER tirger_adi ON tablo_adi {FOR|AFTER|INSTEAD OF} {INSERT|UPDATE|DELETE} AS Otomatik_çalışacak TSQL ifadeleri GO Örneğin stoktan çıkan bir malın, fatura tablosundan da düşülmesi işlemini bir tetikleme oluşturarak yapabilirsiniz. Tablodan bir stok kartı silinecekse ve bu stok kartının stok hareketleri varsa DELETE işlemi ile ilgili bir tetikleme oluşturarak hareket gören stoğun silinmesini önleyebilirsiniz. CREATE TRIGGER tetik01 dbo.STOK FOR DELETE AS Declare @ STOKKOD varchar(15), @STOKSAYI int SELECT @ STOKKOD=HRK.STOKKOD,@STOKSAYI=HRK.STOKSAYI from deleted HRK update FATURA set miktar=miktar+@STOKSAYI WHERE skod=@STOKKOD GO View (Görünüm) Oluşturmak Viewlerde tablolara erişmenin bir yoludur. Viewler sayesinde çok kolonlu bir tablonun sadece belli kolonları listelenebilir ve kolonlar üzerinde hesaplamalar yaptırabilirsiniz. Örneğin tablonuzda diğer iki kolonun çarpımı olan yeni bir kolonu view ile rahatlıkla oluşturabilirsiniz. Gerçek tabloyla hiç ilişkisi olmayan tablolar oluşturup kullanıcıların bu tablo üzerinde işlem yapmasını sağlayabilirsiniz. Birden fazla tabloyu bir view ile birleştirebilirsiniz. Bu özellikle ilişkisel bir yapı kurduğunuzda oldukça yararlı olmaktadır. Şimdi adı ‘Bilgisayar’ olan ürünlerin listesini veren bir view oluşturalım. create view deneme as SELECT TOP (100) PERCENT UrunKod, UrunAd FROM dbo.Urun WHERE (UrunAd = 'Bilgisdayar') ORDER BY UrunAd CREATE VVIEW deyiminin CHECK ve WITH ENCRYPTION adında iki parametresi daha vardır. CHECK ile veri değişikliklerini kontrol edebilir, WITH ENCRYTION ile oluşturulan görünüm metnini şifrelenmesi işlemini yapabilirsiniz. CREATE personel_zam_view WİTH ENCRYTION AS SELECT Adı, Kademesi, Gorevi, Maasi*1.2 FROM Personel WHERE Kademesi=2 Yukarıda Personel tablosunda yer alan ve kademesi 2 olan memurların maaşlarına %20 zam yaptık ve bu metni SQL serverin syscomment tablosuna şifrelenmiş olarak kaydetmiş olduk. Viewlerle güvenlik işlemini daha kolay sağlayabiliriz. Kullanıcılara view üzerinde izinler verdiğiniz zaman; onlara gerçek tablo üzerinde izin vermemiş oluyorsunuz. Diyelim ki sadece Öğrenci Adı ve Soyadı bilgilerini içeren bir view oluşturup, Öğrencilerin özel bilgilerini içermeyen bu tabloyu kullanıcılara açabilirsiniz SQL Server Uzak Bağlantı(Remote Connection) Uzaktan Bağlantı için Yapılması Gerekenler 1 - SQL Server Instance' ınızın ilgili protokolünün yapılandırılması, 2 - Eğer varsa ve etkinse, Windows Güvenlik Duvarının yapılandırılması 3 - SQL Server' ınıza bağlanabilmeniz için kullanacağınız Login. SQL Server 2005 Instance' ınız için hangi protokolü kullanacağınızı belirledikten sonra, bu protokolün yapılandırmasını gerçekleştirirsiniz. SQL Server protokollerinin yapılandırılması işlemleri için SQL Server ile birlikte gelen SQL Server Configuration Manager' ı kullanabilirsiniz. (Başlat\Programlar\Microsoft SQL Server (Sürüm)\Configuration Tools) TCP/IP protokolünü etkinleştirmek veya etkin olduğundan emin olmak için, Şekil' de de gösterildiği gibi Protocol Name alanındaki TCP/IP protokolünün Status değerine bakabilirsiniz. "Enabled" etkin olduğu anlamına gelir, "Disabled" ise etkin değil demektir. Bu değeri değiştirmek için TCP/IP protokolünün üzerinde fare ile çift tıklayın veya TCP/IP protokolünün üzerinde farenin sağ tuşuna tıklayarak, açılan menüden "Properties" seçeneğine tıklayarak "TCP/IP Properties" penceresini açın. "Protocol" sekmesindeki "Listen All", bilgisayara bağlı tüm Ağ Kartlarının (Örn: Ethernet) IP adreslerinin SQL Server tarafından dinlenip dinlenmeyeceğini belirler. Eğer bu seçeneğin değeri "No" yapılırsa, "IP Addresses" sekmesindeki her IP adresini tek tek yapılandırmanız gerekir ve tekrar aynı sekmede bulunan "IPAll" seçeneklerinin herhangi bir geçerliliği kalmaz. Eğer değeri "Yes" yaparsanız, o zaman gene "IP Addresses" sekmesindeki "IPAll" seçenekleri etkinleşir ve diğer tüm IP adreslerine uygulanır. TCP/IP protokolünün IP adresi veya Port ayarlarını yapılandırmak için, gene "TCP/IP Properties" penceresinde bulunan "IP Addresses" isimli sekmeye tıklayın. Bu listede her Ağ Adaptörünüz için bir IP ayar bölümü listelenecektir. Hangisinin etkinleştirilmesini istiyorsanız, onun "Active" ve "Enabled" ayarlarının karşısındaki değerleri "Yes" durumuna getirin. "Active", o IP adresinin dinleneceğini belirtir. "Enabled" ise o IP adresinin kullanılıp kullanılmayacağını. "IP Address" bölümde ise IPv4 veya IPv6 değeri yer alır. Eğer "TCP Dynamic Ports" etiketinin değeri "0" ise, bunun anlamı bu IP adresi için kullanılacak portun dinamik bir şekilde belirleneceğidir. Bu durumda SQL Server, bu IP adresi için müsait olan bir port numarası atayacaktır. Eğer Windows Xp SP2 ve daha üstü bir sürüm kullanıyorsanız Windows güvenlik duvarına SQL Server’ı eklemeniz gerekir. SQL Server' da Authentication Mode (Yetkilendirme Modu) olarak iki adet seçeneğimiz bulunuyor. Birisi Windows Authentication, diğeri ise SQL Authentication (veya Mixed Authentication).Windows Authentication' ı sadece güvenilir ortamlarda kullanabilirsiniz. SQL kullanıcısı olarak SQL Server’a bağlanabilmek için ise SQL Server Management Studio ortamında SQL Server’ınıza sağ tıklayıp Properties seçeneğinden Security sekmesini seçtiğinizde aşağıdaki ekran karşınız gelir. Security sekmesinden SQL Server and Windows Authentication Mode seçildiğinde SQL Server kullanıcısı olarak SQL server’a bağlanılabilir. Deney Çalışmaları: Deney-1: 1. SQL Server’da bir veritabanı oluşturarak içinde en az üç adet ilişkisel tablo oluşturunuz. 2. Bu tablolar ile ilgili ilişkisel şemayı(diyagramı) SQL server’da oluşturunuz. 3. Tablolara en az üç kayıt ekleyiniz. 4. Stored Procedure ve trigger kullanımı ile ilgili kodlar yazınız. Deney-2: Daha önce oluşturduğunuz veritabanı için bir Login oluşturunuz. Bu Login ile SQL Server’a bağlanmayı deneyiniz. Oluşturduğunuz Login’e tablolar üzerinde belirli yetkiler vererek sonuçlarını görünüz. Araştırma Çalışmaları 1. SQL Server’da ilişkisel bir veritabanı oluşturarak görsel bir programlama dili veya ASP.NET, ASP, JSP dillerinden biri ile bu veritabanına bağlanınız. Stored Procedure ve Trigger deyimlerini ve tablo birleştirme sorgularını kullanınız. 2. Oluşturduğunuz veritabanı üzerinde differential ve FULL yedek alarak geri yükleme yapınız. Arasındaki farkları belirtiniz. 3. Bölünmüş tablolar ilgili bir uygulama gerçekleştiriniz. 4. SQL Server 2008’deki uzaysal ve geometrik veri tipleri ile ilgili uygulamalar yapınız. 5. Veritabanında XML dosyalarının kullanımı hakkında uygulama yapınız 6. Kilitlenme(Deadlock) yönetimi nasıl yapılır. Bir uygulama ile açıklayınız. 7. Service Brokers Mimarisini araştırınız. 8. Veri dönüşüm araçlarını kullanarak Excel, text, Access vb. programlarda yazılmış verileri SQL server ortamına aktarınız.