Balık Tutmayı öğretelim
SQL Server Enterprise Manager Kullanımı
SQL Server Enterprise Manager nasıl kullanılır?
Database Yaratma :
Veritabanı oluşturduğumuz zaman karşımıza, bir takım veritabanı nesneleri çıkar. Bu veritabanı nesnelerini kullanarak veritabanının kullanımını ve yönetimini gerçekleştiririz.
Şimdi bir veritabanı oluşturalım.
Yukarıda gösterildiği gibi istenen bağlantının (LOCAL) altında Databases klasörü üzerine sağ tıkladığımızda yeni database yaratma seçeneğini bulabilirsiniz. Bu seçeneği seçtiğimizde aşağıdaki ekran karşımıza gelecektir.
Bu ekran üzerinde Name kısmına database isimini yazarız (Bu isim sadece SQL Server da kullanılacak olan isimdir. Database in dosya ismi farklı bir isim olarak verilebilir.)
Collation Name kısmında karakter seti ve harf duyarlılığı mutlaka Turkish_CS_AS olarak seçilmelidir. Aksi takdirde büyük-küçük harf farklılığından dolayı bazı sorgulamalarda sql sorgularından kaçan kayıtlar olabilir.
Data Files sekmesinden database dosyasının adı ve oluşturulacağı yer belirlenir. Aynı şekilde Transaction Log sekmesinden de database in log dosyasının adı ve oluşturulacağı yer belirlenir.
Veritabanı nesneleri aşağıdaki gibidir:
1. Tablolar
2. Diyagramlar
3. Görünümler
4. Saklı yordamlar
5. Kullanıcılar
6. Roller
7. Kurallar
8. Varsayılan Değerler
9. Kullanıcı Tanımlı Veri Türleri
10. Kullanıcı Tanımlı Fonksiyonlar
Bu nesneleri sırayla inceleyelim:
1.Tablolar
Tablolarda, oluşturulan veritabanı içindeki bilgiler tutulur.
Enterprise Manager'ın sağ tarafına dikkat ederseniz, önceden oluşturulmuş tablolar göreceksiniz. Bu tablolar hakkında "Veritabanı Tasarlamak" makalesinde detaylı bilgi bulabilirsiniz.
Veritabanı içinde iki tane tablo oluşturalım. Tablo oluşturmak için, veritabanı nesnelerinden olan Tables üzerinde sağ tıklayarak New Tables seçeneğini seçeriz.
(Tablo Oluşturma)
Tablo tasarlarken kolon isimlerini vererek kolonlar oluştururuz. Oluşturduğumuz kolonun, kullanım amacına göre tipini belirleriz. Yine kullanım hedefimize yönelik, boş olup olmamasına izin verme durumunu tablo tasarımında belirleriz.
Birinci tablomuzda kişinin adını ve soyadını tutan char tipinde alanlar olsun. Bunun yanında herbir kişiyi temsil edecek, o kişiye ait özel bir sayı olan KisiId'si int tipinde belirleyelim. Allow Nulls seçeneğinin işaretini kaldırarak bu alanın boş bırakılmasını engelleyebiliriz.
(Kolonları Oluşturma)
Yukarıdaki menüden anahtar simgesine tıklayarak,
sadece kayıt edilen kişiye özgü olacak olan KisiId kolonunu anahtar alan (primary key) olarak atayalım. Tablonun ismini Kisi olarak belirleyerek kayıt edelim.
İkinci tablomuzda kişiye ait adres ve telefon bilgileri tutalım. Bunun yanında girilen adres ve telefon bilgilerinini hangi kişiye ait olduğunu tespit etmek için KisiId isimli bir kolon belirleyelim. Bir tablodaki anahtar alan başka bir tabloda kullanıldığı zaman yabancıl anahtar (foreing key) ismini almaktadır. Bu sayede aynı bilgiyi birden fazla tabloda tutmamış oluruz. Tablomuzun ismini Irtibat olarak vererek kayıt edelim.
Böylece kişi bilgilerini tutabileceğimiz Kisi ve kişiye ait adres bilgilerini tutabileceğimiz Irtibat tablolarını oluşturmuş olduk.
(Tablo Üzerinde İşlemler )
Tablo üzerine gelerek sağ tuşa basıp, Return All Rows dediğimizde tabloya veri girmemiz için veya olan verileri görmemiz için bir ekran açılacaktır. Buradan verileri kontrol edebiliriz. (Return Top seçeneğinde bize tablodaki verilerden ilk kaçını listeleteceğimizi sorduktan sonra, belirlediğimiz değere göre tablodaki verileri listeler.)
Design Table diyerek, tablo tasarımında istediğimiz düzeltme, silme ve ya ekleme işlemlerini gerçekleştirebiliriz.
2.Diyagramlar:
Diyagramlar aracılığı ile, veritabanındaki tabloları, tablolardaki kolonları ve tablolar arasındaki ilişkileri görüp, yönetebiliriz. Bunun yanında tablolardaki dizinleri ve kısıtlamaları da görebiliriz.
Diyagramlar kullanarak, ilişkiler oluşturulabiliriz.
Yukarıda oluşturduğumuz tablolar arasında ilişki kuralım.
(İlişki Oluşturma)
Diagrams üzerinde sağ tıklayıp New Database Diagram diyerek yeni bir diyagram oluşturuyoruz. Açılan diyagram sihirbazında, sol tarafta kullanabileceğimiz tabloları sıralarken, sağ tarafta diyagrama eklenecek tabloları sıralar.
(Kullanılacak Tabloların Diyagrama Eklenmesi )
Buradan kullanacağımız tabloları seçip Add komut düğmesine tıklayarak, tabloları diyagrama ekliyoruz.
Tablolar arasındaki ilişkiyi, sürükle bırak mantığıyla da yapabiliriz.
(Kolonlar Arasındaki İlişkiyi Belirleme)
Irtibat tablosundaki KisiId kolonunun tutarak, Kisi tablosundaki KisiId alanının üzerine bıraktığımızda, oluşturacağımız ilişkiye ait özellikleri belirleyebileceğimizi bir form açılır.
(İlişkinin Özelliklerini Belirleme)
Buradan ilişkinin ismini verebilir, veya aralarında ilişki kuracağımız tablolardaki, ilişkili olacak olan kolonları değiştirebiliriz. Cascade yasak Related Fields, ve Cascade Delete Related Records seçenekleri sayesinde, bir tabloda meydana gelen güncelleme veya silme işlemlerinin ilişkili olduğu diğer tablolada da güncellenmesini veya silinmesini sağlayabiliriz. Bu sayede, mesela kaydı silinen bir kişinin, irtibat bilgileri veritabanında boşuna tutulmamış ve yer kaplamamış olur.
(Not : Aralarında ilişki kurulacak tablolardaki, birbiriyle ilişkilendireceğimiz kolonların isimleri aynı olmak zorunda değildir.)
3.Görünümler
Görünümleri, bir tablodan ya da arasında ilişki olan birden fazla tablodan, istediğimiz bakış açısıyla veri elde etmek için kullanırız. Görünümler fiziksel değil, sadece sanal tablolardır. Görünümler üzerinden verilere ulaşarak, onların üzerinde istediğimiz işlemleri gerçekleştirebiliriz.
Örnek olarak adresi İstanbul olan kişileri içeren bir görünüm oluşturarak, onları İstanbul'da düzenlenecek fuara davet edebiliriz.
Views nesnesini tıkladığımızda, Enterprise Manager'ın sağ tarafında standart olarak oluşturulmuş görünümleri görürüz. Bunlar, sistemle alakalı olan görünümlerdir.
4.Saklı Yordamlar
Saklı yordamlar bir yada daha fazla sayıda SQL deyimi içeren ifadelerdir. Veritabanında veritabanı kullanıcıları hakkında bilgi edinirken, veya belli bir görevi yerine getirirken kullanılırlar. SQL Server üzerinde derlenerek yine SQL Server üzerinde tutulurlar.
Veritabanını ilk oluşturduğumuzda dikkatimizi varolan saklı yordamlar çeker. Bunlar, sistem tablolarından, kullanıcılardan bilgi edinmek için kullanılan yönetim amaçlı saklı yordamlardır.
(Enterprise Manager'dan Saklı Yordam Oluşturma )
Veritabanı nesnelerinden Stored Procedures üzerinde sağ tıklayarak New Stored Procedure diyerek istediğimiz işlemleri gerçekleştirecek bir saklı yordam oluşturabiliriz.
5. Kullanıcılar
Veritabanını kullanmak için tanımlanan isimlerdir. Kullanıcıların veritabanı üzerinde belirli izinlerle işlem yapması için onlara belirli izinler atanır.
Users üzerinde sağ tıklayıp New Database User seçeneğini seçerek yeni kullanıcı oluştururuz. Users nesnesini seçerek, sağ taraftaki alandan, kullanıcılar üzerinde sağ tıklayarak, kullanıcıların özelliklerini değiştirme veya kullanıcı silme gibi işlemleri gerçekleştirebiliriz.
(Kullanıcılar )
Veritabanı oluşturduğumuzda, varolan kullanıcı olarak dbo'yu görürüz. Kullanıcı kendi veritabanında, veritabanı sahibi (database owner -dbo) olarak bilinir. Sadece bir tek veritabanı sahibi vardır. dbo kullanıcısı, veritabanı içinde bütün ayrıcalıklara sahiptir ve bu kullanıcı kaldırılamaz.
6. Roller
Veritabanı rollerini, belirli izinleri birçok kullanıcı üzerinde uygulamak için kullanırız. Bu sayede, belirlediğimiz kullanıcı kesiminin sahip oldukları izinleri üzerinde ekleme, kaldırma, değiştirme gibi istediğimiz değişiklikleri yapabiliriz.
SQL Server, belli izinlere sahip, hazır tanımlanmış rollere sahiptir. Bu rolleri bir kullanıcıya vererek, sadece belirlenen izinler çerçevesinde işlem yapmasını sağlayabiliriz.
(Roller )
Aynı şekilde, görünümler (views) üzerinde de istediğimiz izinlere sahip roller tanımlayabilir, kullanıcıları bu rollere atayarak, izinlerini belirleyebiliriz.
7. Kurallar
Kurallar, veri girişinde kısıtlamayı sağlamak için kullanılırlar. Kurallar kullanarak, bir kolona girilecek olan verinin şartlarını belirleyebiliriz.
Veritabanı nesnelerinden Rules üzerinde sağ tıklayarak New Rule dedikten sonra bir pencere açılır.
(Enterprise Manager Aracılığı ile Kural Oluşturma )
8. Varsayılan Değerler
Varsayılan değerler, veri girişi sırasında kullanıcı kolona herhangi bir veri girmezse, SQL Server tarafından otomatik olarak o kolona veri atanmasını sağlar.
Enterprise Manager içinde, veritabanı nesnesi olan Defaults üzerinde sağ tıklayıp New Default diyerek istediğimiz sabit değeri belirleriz.
(Varsayılan Değer Oluşturma)
9. Kullanıcı Tanımlı Veri Türleri
SQL Server içindeki herhangi bir veri türünü baz alarak kullanıcı tarafından belirlenebilecek veri türleri bu kısımdan belirlenir. SQL Server içindeki veri türünü belirttikten sonra kolonun uzunluğunu belirterek işlemimizi gerçekleştiririz.
10. Kullanıcı Tanımlı Fonksiyonlar
Fonksiyonlar; bir yada daha fazla T-SQL cümleciği içeren altprogramlardır. Tekrar kullanılmak için kodun kapsüllenmesini sağlar. SQL Server sayesinde istediğimiz işlemleri yapacak fonksiyonları tanımlayıp, kullanabiliriz.
Export Import :
İlk önce SQL Serverımızda bir yeni database açıyoruz ve ardından resimde gördüğünüz gibi import and export özelliği birlikte geliyor.
açtıktan sonra aynen resimleri izliyoruz. (Bu işlemi istersek Enterprise Manager içerisinden seçtiğimiz Database in üzerine sağ tıklayarak Tüm Görevler→Export Data / Import Data seçenekleriyle de yapabiliriz.)
daha sonra karşımıza gelen ekrandan (Choose a Data Source) bilgilerini çekeceğimiz database i seçiyoruz.
burada bir sql database ini import edeceğimizi düşünürsek Data Source kısmından yukarıda gördüğümüz seçeneği seçmemiz gerekir.
Yukarıdaki ekrandan da Genel database ini içine import etmek istediğimiz hedef database i belirtiyoruz. Bu veritabanının ismi database olarak seçilmiş. Daha sonra ileri diyoruz.
Yukarıda 1. seçenekle tüm tabloları ve view leri kopyalarız, 2. seçenek bir sql sorgusu ile kopyalama yapmamızı sağlar. 3. seçenek te kopyalamadan önce bazı ayarlara müdahale edip değiştirmemizi sağlar.
1. seçeneği seçip ileri diyoruz.
Yukarıdaki ekranda ise bu işlemin ne zaman yapılmak istendiğine dair bir pencere karşımıza geliyor. Buradan belli bir zaman ve periyod verip bu işlemin otomatik olarak istediğimiz zamanlarda yapılmasını sağlayabiliriz. Ancak biz bu ekranda run immediately yi seçip ileri diyoruz.
Yukarıdaki ekranda son dediğimiz takdirde de işlemi aşağıda görüldüğü şekilde başlatmış oluyoruz.
Burada yapılan işlem bir SQL Server database ini yine SQL Server daki oluşturduğumuz bir database in içine aktarmış oldu. Aynı şekilde SQL Server a başka databaselerden export import yapılabilir.
Backup Alma :
Donanım ve yazılım başarısızlıkları, DELETE veya yasak ifadelerinin yanlış kullanımı (örneğin; WHERE yancümleciği yasak ile kullanılmazsa), yıkıcı virüsler gibi çeşitli nedenlerle veriler kaybedilebilir. Bunun için en iyi koruma, verilerimizin düzenli olarak kopyalarını almak ve bunu güvenli bir yerde saklamaktır. Bu işlem Backup Database olarak adlandırılır. Bir sorun olduğunda, veritabanını sorundan önceki durumuna geri yüklemek için önceden oluşturduğumuz yedekleri kullanırız. Bu işlem Restore Database olarak adlandırılır.
Kullanıcılar veritabanı ile çalışırken, SQL Server veritabanını yedekleme işlemi yapılabilir. Ancak yedekleme sırasında dosyaları oluşturmak, silmek gibi veritabanının yapısını değiştiren işlemler yapılamaz. SQL Server yedekleme işlemi dinamiktir. Kullanıcı bir veritabanını yedeklerken, SQL Server şema ve dosya yapısı, veri ve transaction log dosyalarını yedekler. Yedeklenen transaction log, yedekleme işleminin başlamasından itibaren olan veritabanı aktivitelerini içerir. SQL Server orjinal dosyaların yerini kaydeder ve yedeği açma sırasında, bu yedekleri orjinal yerlerine yeniden oluşturur.
Üç çeşit yedekleme şekli vardır:
Tam Yedekleme (Full Backup): Veritabanının belli bir andaki tam kopyasını alan yedekleme türüdür.
Fark Yedeği (Differential Backup): En son alınan tam yedekten sonra değişen kayıtları yedekler. Fark yedeğinde saklanan veriler tam yedeklemede saklanan verilere nazaran oldukça küçüktür. Aynı zamanda fark yedek alma işlemi daha hızlıdır. Fark yedeği alabilmek için, ilk önce bir tam yedekleme işlemi gerçekleştirmiş olmamız gerekir.
İşlem Günlüğü Yedeği (Transaction Log Backup): Veritabanındaki değişiklikleri yedeklemek için işlem günlüğü yedeği kullanılır. İşlem günlüğü yedeği alabilmek için, ilk önce bir tam yedekleme işlemi yapılmış olması gerekir.Ayrıca veritabanını belli bir zamanda geri yüklememize olanak tanır.Sunucu çöktüğünde veritabanını otomatik olarak geri yüklemek için SQL Server işlem günlüğünü kullanır.
Şimdi backup işlemini Enterprise Manager kullanarak adım adım gerçekleştirelim:
Enterprise Manager konsol ağacında, sunucumuzun üzerini bir defa tıklayalım. Araç çubuğundaki 'Run a Wizard' düğmesini tıklayalım. (Tools menüsünden Backup Databasei seçerek de aynı işlemleri yapabiliriz.) Select Wizard iletişim kutusu açılır. Management öğesini genişleterek çıkan menüden Backup Wizardı seçip tamam butonunu tıklayalım.
(Select Wizard )
Database Backup Wizard iletişim kutusu açılır. İleri dedikten sonra bize hangi veritabanına yedekleme işlemini uygulayacağımızı soran bir sayfa görüntüler.
(Create Database Backup Wizard)
Yedeğini almak istediğimiz veritabanını Database listesinden seçip ileri butonuna tıklayalım. Bizden alacağımız yedeğin ismini ve gerekiyorsa açıklamalar eklememizi isteyen bir iletişim kutusu açılır. Name kısmı varsayılan değer olarak 'seçtiğimiz veritabanının ismi+backup' olarak atanır. İleri komut düğmesini tıklayalım.
(Veritabanı Yedeğinin İsmini Belirtilmesi )
Yedekleme tipini seçmemizi isteyen bir sayfa açılır. Birincisi tam yedekleme, ikincisi fark yedeği ve üçüncüsü işlem günlüğü yedeğidir.
Buradan yedekleme tipini seçip ileri komut düğmesine tıklayalım.
( Yedek Tipinin Seçilmesi )
Oluşturacağımız yedeği kaydedeceğimiz yeri belirtmemizi isteyen bir iletişim kutusu açılır. Oluşturacağımız yedeği kullandığımız veritabanı ile aynı fiziksel aygıtta saklamamaya, her zaman güvenli olabilecek başka bir aygıtta saklamaya dikkat etmeliyiz. Yedeği kaydedeceğimiz yeri belirledikten sonra ileri komut düğmesini tıklayalım.
(Yedekleme Dosyalarının Yerinin Belirlenmesi)
Karşımıza aşağıdaki gibi doğrulama ve zamanlama ayarlarını yapabileceğimiz bir iletişim kutusu çıkar. SQL Serverın yedeği onaylamasına gereksinim duymuyorsak Check media set name and backup set expiration date onay kutusunu temizlememiz gerekir. Schedule bölümünde yedeklemenin ne kadar zamanlık aralıklarla yapılabileceğini belirleyebiliriz. Bunu bir veritabanının yedeğini alırken ayarlayabileceğimiz gibi daha sonra veritabanı bakım plan sihirbazını (Database Maintenance Plan Wizard) kullanarak da ayarlayabiliriz.
(Onay ve zamanlama )
Örneğin her ay, ayın ikisinde saat 02:00de veritabanımızın yedeği alınsın. Aşağıdaki ayarları takip edelim. Yukarıdaki iletişim kutusunda Schedule onay kutusunu işaretleyelim ve Change komut düğmesini tıklayalım. Zamanlama ayarlarını yapacağımız aşağıdaki sayfa açılır. Name kısmı varsayılan değer olarak Schedule 1dir. İstediğimiz bir isim atayabiliriz. Sonra Change komut düğmesini tıklayalım.
(Zaman Çizelgesi Düzenleme)
Zamanlama ayarlarını yapabileceğimiz aşağıdaki gibi bir iletişim kutusu açılır. Occurs grubunda varsayılan değer olarak Weekly işaretlidir. Monthly seçeneğini seçelim. Monthly grubunda Day onay kutusunu seçip gün sayacını ikiye getirelim. Daily Frequency grubunda Occurs once at onay kutusunu işaretleyip saat sayacını 02:00 olarak ayarlayalım ve tamam komut düğmesini tıklayarak Edit Schedule iletişim kutusuna dönelim. Burada da tamam komut düğmesini tıklayıp doğrulama ve zamanlama sayfasına dönelim ve ileri komut düğmesini tıklayalım.
(Zamanlama Ayarı)
Sihirbaz aşağıdaki gibi yaptığımız seçimleri doğrulayan bir sayfa gösterir. Yaptığımız ayarları son olarak buradan kontrol edip yanlış yaptığımız ya da değiştirmek istediğimiz ayarlar varsa geri dönüp değiştirerek en son haliyle Finish komut düğmesini tıklayalım.
( Son Onaylama Ekranı )
Veritabanımızın yedeğini böylece almış olduk. Bundan sonra her ay, ayın ikisinde saat 02:00de otomatik olarak veritabanımızın yedeği alınacaktır.