MODÜL 1 SQL Server 2008 ile Tanışma" Yaşar GÖZÜDELİ ygozudeli@verivizyon.com http://blog.verivizyon.com/ygozudeli
Modül-1 Konu Akışı SQL Server 2008 Yazılım Geliştirici Araçları SQL Server 2008 Mimarisine Genel Bakış İlişkisel Veritabanı Kavramsal Konular 2
SQL Server-2005+ Araçları Service Manager SQL Server Configuration Manager Enterprise Manager Management Studio Query Analyzer Management Studio Osql SqlCmd Profiler Profiler Booksonline Booksonline,MSDN Wizards ve diğer Toolar Index Tuning Wizard Database Engine Tuning Advisor DTS Server Integration Services (SSIS) Yeni Toollar Surface Area Configuration: Güvenlik ve yapılandırma ile ilgili ayarlamalar 3
SQL Server Configuration Manager Servislerin Yönetilmesi Port ve protokol ayarlamaları 4
Management Studio Kullanımı Sorgu çalıştırma Nesne Yöneticisi SQL Server solution ile çalışmak Server Registration Diagrams'ın Kullanımı Bir tablo nasıl düzenlenir-oluşturulur, açılır Diğer öğeler 5
Management Studio 6
Management Studio 7
SQLCMD 8
SAC(Surface Area Configurator) 9
SAC-2 Konfigurasyon Konfigurasyon aktarımı Politika oluşturma ve aktarma 10
SQL Profiler 11
Oturum-2: SQL Server Mimarisine Genel Bakış Veritabanı Mimarisi Disk Yönetim Mimarisi İstemci-Sunucu Mimarisi Kullanıcı Yönetim Mimarisi 12
Veritabanı Mimarisi Veri Dosyası ve Dosya Grubu Kavramları Master Data File (*.mdf) Secondary Data File(*.ndf) Transaction Log File (*.ldf) Standart Veritabanları Master Model Tempdb Msdb Distribution ReportsDB ReportsDBTemp Pubs Northwind AdventureWorks 13
Sistem Kataloğu Master veritabanında bulunurlar Bütün Sisteme ait verileri tutarlar sysdatabases: SQL Server kurulumu (instance)'unda hangi veritabanları bulunuyor, boyutları, kullandıkları fiziksel dosyalar vs. sysxlogins: SQL Server kurulumunda tanılı kullanıcı lar sysmessages: SQL Server'in hata anında gösterdiği veya @@error fonksiyonu ile döndürdüğü, sistem loguna kaydedebildiği hata mesajları Soru: Sistem kataloğunu E.M. 'den nasıl gizler/gösteririz? 14
Veritabanı Kataloğu Her bir veritabanında tekrarlayan sistem tablolarıdır. syspermissions: erişim izinleri systypes: Kullanıcı tanımlı veri tipleri syscomments: Oluşturulan veritabanı nesnelerinin kaynak kodları sysobjects: Veritabanında bulunan nesneler, adları, sahipleri, tanımlanma tarihleri vs. sysusers: Üstünde bulunduğu veritabanında hangi kullanıcılar tanımlı Soru: Bu tablolar Master veritabanında da bulunur mu? 15
Disk Yönetim Mimarisi Neden spesifik disk yönetimi? Page=8K Extend=ardışık 8 sayfa Mixed Extend: Nesne 8K'dan küçük ise Uniform Extend: Nesne 8 page'den büyük ise Geçiş Mümkün BLOB=2GB veri saklayabilen tipler BLOB'lar nerede saklanır? Indeksler Clustred-Nonclustred Heap B+ Tree yapılarda saklanır Bu Ölçüler ne zaman işe yarar? Tabloda bir satır 8060byte ı aşmamalıdır. LOB lar 16Byte Sayılır! 8 K 8 K 8 K 8 K 8 K 8 K 8 K 8 K 64 K 16
SQL Server hangi bileşenlerden oluşur? SSIS Data Transformation Services LINQ Full-Text Search SQL Server 2008 Relational Database Engine.NET CLR Reporting Services Replication Yeni Veri Tipleri Service Broker 17
Yazılımcılar Öne Çıkan Özellikler Transact-SQL iyileştirmeleri Doğal XML desteği Mesajlaşma temelli yenilikler-service Broker Common Language Runtime Reporting Services SQL Management Objects 18
AdventureWorks örnek veritabanı Bisiklet ve parçaları üreten bir firmaya ait veritabanı AdventureWorksDW: OLAP database Business intelligence data AdventureWorks: OLTP database 19
Kullanıcı Mimarisi(SQL2005) 20
Yetkilendirme Modları Windows Only Sadece Windows kullanıcıları yetkilendirilebilir! Mixed Mode SQL Server kendi kullanıcılarını yetkilendirebilir Nasıl Değiştirilir? Soru: SQL Server'daki server kullanıcıları, Windows only iken SQL Server'e erişebilir mi? 21
LAB-1 Veritabanı Atölyesi 1.2(s.68) 22
İlişkisel Veritabanının Temelleri SQL- Standartlar Veritabanı Veritabanı Nesneleri Temel Bazı Kavramlar www.verivizyon.com 23
İlişkisel VTYS Temel Terimleri İlişkisel Veritabanın Temelleri 1970'li Yıllarda J.F. Codd(IBM)'de ilişkisel cebir teorisi 1983 SQL(Structural Query Language) ortaya atıldı 1987 ANSI ve ISO tarafından standart olarak yayınlandı ANSI-92 olgunluğa ulaştığı standart ANSI-99 ve ANSI-2003 standartları yayınlandı İlişkisel VTYS SQL Server 2000: Orta-küçük ölçekli firmalarda popüler Windows temelli(windows VTYS pazarının %45'i) 2005: Kurumsal seviye için geliştirilmiş bir ürün : Platform Bağımsız Oracle IBM-DB2 : " Sybase : " MySQL : "-Açık kaynak PostgreSQL : " " www.verivizyon.com
Veritabanı Uygulamaların Neresinde? www.verivizyon.com
Veritabanı Nesnesi Veritabanı Tablo Constraint Indeks View SP Trigger Kullanıcılar Roller Rule Default Kullanıcı Tanımlı Tipler Kullanıcı Tanımlı Fonksiyonlar www.verivizyon.com
İlişkisel Veritabanı Yaklaşımının Temelleri Tablolardan oluşan yapıya veriler NF kurallarına göre dağıtılır Dağılmış veriler(tablolar) bir birincil anahtar ve bir yabancı anahtar ile ilişkilendirilir. (Sayı + harf 32 uzunluk) (En çok 250 karakter boş geçilmez) (Boş geçilmez ondalıklı olabilir 1. Kayıt Barkod Ürün Adı Ürün Fiyatı 1. Satır 1 Java 50 2. Kayıt 2. Satır 2 Delphi 2X2 Alanı 3.Sütun 120 3. Satır 3.Satır 3.Kayıt 3 Linux 1. Sütun 2. Sütun 3. Sütun www.verivizyon.com 60 Alan Sütun Satır Kayıt Veri Tipi
Örnek İlişkisel Şema Tasarımı Ürün Listesi Barkod Ürün Adı Fiyatı 1 Java 50 Sipariş Kodu Sipariş Listesi Ürün Kodu Kullanıcı Kodu Kullanıcı Kod 1 Ali 2 Delphi 120 1 1 1 2 Ahmet 3 Linux 60 2 2 1 3 Ayşe 4 XML 200 4 Fatma 5 Perl 70 6 C++ 80 Tablo İlişki Birincil Anahtar Yabancı Anahtar www.verivizyon.com
VTYS'nin Temel İşlevleri (ilişkisel cebir) Üç temel İşleç(Operatör) İZ DÜŞÜRME (PROJECTION SEÇME(SELECTION) BİRLEŞTİRME (JOINING) Sorgu optimizasyonunda önemli. Hangi işlemler hangi işlemlere dönüşebilir vs. www.verivizyon.com
Seçme Barkodu Adı Fiyatı 1 Java 50 Barkodu Adı Fiyatı 1 Java 50 2 Delphi 120 3 Linux 60 3 Linux 60 5 Perl 70 4 XML 200 6 C++ 80 5 Perl 70 7.Net 90 6 C++ 80 8 AutoCad 99 7.Net 90 8 AutoCad 99 www.verivizyon.com
İzdüşürme Barkodu Adı Fiyatı Markası KDV Barkodu Adı Fiyatı 1 Java 50 Seçkin 0.18 1 Java 50 2 Delphi 120 Türkmen 0.18 2 Delphi 120 3 Linux 60 Açıkkod 0.18 3 Linux 60 4 XML 200 Arkadaş 0.18 4 XML 200 5 Perl 70 Pusula 0.18 5 Perl 70 www.verivizyon.com
Birleştirme Ü rü n K o d u 1 2 3 4 Ü rü n A d ı J a v a D e lp h i L in u x X M L Ü rü n A d ı Ü rü n K o d u A d e t J a v a 1 5 J a v a 1 3 D e lp h i 2 7 Ü rü n K o d u A d e t L in u x 3 2 1 5 X M L 4 5 1 3 2 7 3 2 4 5 www.verivizyon.com
Sorgu Ağacı SELECT adet FROM tblurun JOIN tbladet ON tblurun.ürünkod=tbladet.ürünkod WHERE tblurun.urunkod>3 AND adet>4 İlişkisel Cebir: operatörlerioperantları- işlem dönüşümleri adet ürünkod>3 adet > 4 ürünkod=ürünkod tblurun tbladet www.verivizyon.com
Veritabanı Uygulamaları OLTP(Online Transactional Proccessing Proccessing) Online olarak veri üreten sistemler OLAP (Online Analiytical Proccessing) Raporlama ve veri analizi yapan sistemler www.verivizyon.com
Veritabanın OLTP Uygulamalardaki Rolü Windows Ortamı, {ASP.NET, PHP,ASP,JSP}+Browser PHP Script,VBScript,JavaScript, VB6.0,C#, VB.NET,Java ile yazılmış veri erişim Class ları-kodları Text dosyası, MSAccess,MySQL, SQL Server, Oracle... www.verivizyon.com
Sonuç Veritabanı Kavramları SQL Server'in Bileşenleri, Mimarisi, Başlıca araçlarının kullanımı 36
Bir Sonraki Modülden... (Katılımcıların Veritabanı Tasarımı ve İlişkisel Veritabanı Bilgisi) PK? FK? Constraints? Normalizasyon? E-R diyagram? İlişkiler ve Tablo Tasarım Desenleri Parent-Child ve Look-up Table(İller, ilçeler, ülkeler) Çoka Çok ilişki(hasta, Doktor, Muayene) (Ürün,Reyon) Genel-Özel ilişki(öğrenci, öğretmen,yönetici, veli) Hiyerarşik Data(Kategori) Kullanıcı-login farkının Management Studio ile aktarılması Uygulama için kullanıcı oluşturma E-Ticaret Sistemi tasarımı o Lab-160-174 birlikte yapılabilir!!! 37
38