Veri Tabanı-I 5.Hafta DataBase Oluşturma 1
DATABASE Kolon,özellik,alanColumn,attributes,fields) Sunucu Tablo numarası adı soyadı 0913109001 Ali Can 0913109002 Nuri Koç Database 0913109003 Fatma Kara Satır,Kayıt row, record) 2
Database Büyüklüğü Hesaplaması SQL serverda veriler disk üzerinde sayfa page) şeklinde tutulur Her sayfa 8 KB lık bloklar şeklinde depolanır. Örneğin 1MB lık bir database de bilgiler; 1024/8 = 128 sayfa olarak tutulacaktır 128*8=1024 KB 1MB) Eğer bir tabloda birden fazla sütun varsa toplam satır boyutunu hesaplarken 9 Byte lik ilave yapmak gerekir row overhead). Satırlar rows) sürekli, bölünmeyen yapıdadır ve tek satırda maximum miktar 8096 Byte 8KB) dır. 3
Database Büyüklüğü Hesaplaması Örnek : Aşağıdaki gibi tanımlanmış bir tabloda 250.000 adet kayıt vadırn. Buna göre tablonun databese içerisinde kapladığı alanı bulalım: create table ogrenci adi char30), soy char30), tel cahr30), ceptel char30), dtarihi DateTime, vize int, final int ) adi soy tel ceptel dtarihi vize final 30 byte 30 byte 30 byte 30 byte 8 byte 4 byte 4 byte 1) Toplam Satır boyutu = 4*30 + 1*8 + 2*4 + 9 -> 147 byte birden çok sütun olduğundan 9 byte ilave) 2) Her sayfadaki satır sayısı = 8096/147 -> 55 satır 3) Tablo içindeki sayfa sayısı = 250.000 / 55 -> 4545 sayfa page) 4) Tablo boyutu = 4545 * 8 KB -> 36.363 KB veya 36 MB NOT: Bu tabloda INDEX leme yapılmamıştır. Hesaplanan değer, Index leme yapılan sütuna göre r %25 ile %50 oranında artacaktır. 4
Sistem Database leri SQL sunucunun bir takım ayarları ve işlemleri tutmak için kullandığı kendi sistem databaseleridir. Bunlar; MASTER, MODEL, TEMPDB, MSDB ve DISTRIBUTION Master : Kullanıcı hesapları ve sistem hata mesajları gibi izlenecek bilgileri tutar Model : Yeni oluşturulacak veri tabanı için temel kalıbı oluşturur. Tempdb : Geçici tablo bilgilerinin ve diğer geçici bilgilerin tutulduğu veri tabanıdır Msdb : Zamanlama scheduling) ve yapılan iş bilgilerini tutar Distribution : bu database normalde gelmez ayrıca kurulmalıdır) Replikasyon dağıtmak) sırasında kullanılan veri bilgisini ve yapılan iş bilgisini tutar 5
Database Dosyaları Oluşturulacak veri tabanında şu dosyalar olmalıdır. Veri tabanı bir, Primary Data File.mdf ) olmalı Bir veya daha fazla, Transaction Log File.ldf ) olabilir Ayrıca bir veritabanı dosyası içerisinde opsiyonel olarak ikincil veri dosyası olabilir Secondery Data File.ndf ) olbilir Not: Yeni oluşturulan veri tabanı model veri tabanının kopyası şeklindendir. Dolayısıyla tüm yeni veri tabanlarında olması gereken bir özellik varsa bu MODEL veri tabanı üzerinde yapılarak yeni oluşacak veri tabanlarına aktarılmış olur. 6
Database Oluşturma SQL sunucuda işlemler; SQL structured Query Language) dili ile komutlar ile yapılabildiği gibi Vizard sihribaz) kullanılarak da yapılabilir. SQL komutlarının yazılıp işletilebilmesi veya vizard kullanılabilmesi için SQL sunucu ile bağlantıyı sağlayacak bir arayüz programına ihtiyaç vardır. NaviCat, Toad, MS SQL Server Management Studio) Biz işlemlerimizi SQL Server Management Studio programı yardımıyla yapacağız. NOT : SQL komutları F5 ile RUN edildiği zaman işlem yapar. 7
SQL sunucuyu Çalıştırma Sunucu Hizmet veriyor ise çalışıyor ise) Sunucuya bağlanıp üzerinde işlem yapılabilir. Aksi halde öncelikle sunucunun çalışıyor olduğundan emin olunmalıdır. Bunun için SQL Server Configiration Manager Programı çalıştırılıp sunucunun durumu hakkında bilgi alınabilir veya sunucu bilgilerinde değişiklikler yapılabilir. SQL sunucunun çalıştığını gösteren ; SQL Server MI) > Satate Running) olmasıdır. 8
SQL sunucuya bağlanma Sunucu Hizmet veriyor ise çalışıyor ise) Sunucuya bağlanıp üzerinde işlem yapılabilir. Aksi halde öncelikle sunucunun çalışıyor olduğundan emin olunmalıdır. Sunucuya bağlanıp üzerinde işlemler yapılabilir. Sunucuya Bağlanmak için: Sunucu Adı veya IP si Server Name) Kullanıcı adı User Name veya login ) Şifre Password ) Bilgilerine ihtiyaç vardır 9
SLQ Server Management Studio 10
Database Oluşturma Veri tabanı oluşturulurken: Primary data file, Transaction log file, Secondery data file, Veri tabanının başlangıç büyüklüğü başlangıçtaki değeri MB olarak), Maximum alabileceği değer Büyüyebileceği maximum değer MB Olarak) Büyüme Oranı yüzde olarak veya değer olarak), gibi değerler belirtilebilir CREATE DATABASE database_adı ON PRIMARY NAME = primary takma adı, FILENAME = yol \ primary dosya adı.mdf, SIZE = başlangıç değeri MB, MAXSIZE = en büyük deri MB, FILEGROWTH = artış miktarı % veya sabit değer MB ) LOG ON NAME = log takma adı, FILENAME = yol \ log dosya adı. ldf, SIZE = başlangıç değeri MB, MAXSIZE = en büyük deri MB, FILEGROWTH = artış miktarı % veya sabit değer MB ) 11
Database Oluşturma Database ornek_db.mdf ornek_log.ldf ornek_sec.ndf PRIMARY LOG SECONDARY 12
Database Oluşturma USE master -- master databaseini seç if existsselect name='myo' from sysdatabases where name='myo' ) ) drop database myo -- meslek adında database varsa önce onu yok et bırak) Create DATABASE myo -- aşağıdaki özelliklerde database oluştur ON PRIMARY Name= myo_db, FILENAME = 'C:\myo.mdf', SIZE = 10 MB, MAXSIZE=25 MB, FILEGROWTH= 20% ) LOG ON Name= myo_log, FILENAME = 'C:\myo.ldf', SIZE = 3 MB, MAXSIZE = 5 MB, FILEGROWTH = 1 MB ) COLLATE TURKISH_BIN 13
Database Oluşturma Bu örneğimizde 2 adet veri tabanı dosyası 1 adet primary data file.mdf, 1 adet Secondary Data File.ndf dosyası ) ile 2 adet Transaction Log dosyası.ldf) oluşturulmuştur. Create DATABASE meslek ON PRIMARY Name= Prec4, FILENAME ='C:\meslek4.mdf', SIZE = 6 MB, MAXSIZE = 200 MB, FILEGROWTH = 20 ), Name= Prec4_2, FILENAME = 'C:\meslek4_2.ndf', SIZE = 2 MB, MAXSIZE = 20 MB, FILEGROWTH = 20 ) LOG ON Name= MesLog1, FILENAME= 'C:\Meslog1.ldf', SIZE = 2 MB, MAXSIZE = 20 MB, FILEGROWTH = 20 MB ), ) Name= MesLog2, FILENAME= 'C:\Meslog2.ldf', SIZE = 1 MB, MAXSIZE = 5 MB, FILEGROWTH = 2 MB 14
Veritabanı Dosyalarının gruplandırılması Eğer birden fazla fiziksel disk varsa performansı yükseltmek amacıyla oluşturulan ikincil veri dosyaları Secondery Data File) için dosya grupları oluşturulabilir. Direkt olarak veri tabanı oluştururken, dosya grupları oluşturulabileceği gibi daha sonrada oluşturulabilir. 15
Veritabanı dosyalarının gruplandırılması Sıradaki slayt da : PRIMARY grup içinde; bir adet Primary Data Fİle bir adet Secondery data file oluşturuyor. İlk Grup ismi MeslekGrup1 içinde 2 adet secondery file ve son olarak da bir adet Transaction Log File oluşturulmuş 16
Veritabanı dosyalarının gruplandırılması Create DATABASE meslek ON PRIMARY Name= Meslek_data, FILENAME = C:\ meslek_db.mdf, SIZE = 6 MB, MAXSIZE = 50 MB, FILEGROWTH = 15% ), FILEGROUP Meslekgrup1 Name= Meslek_grup1, FILENAME = C:\ meslek_grup1.ndf, SIZE = 2 MB, MAXSIZE = 50 MB, FILEGROWTH = 5 ), Name= Meslek_grup2, FILENAME = C:\ meslek_grup2.ndf, SIZE = 10 MB, MAXSIZE = 50 MB, FILEGROWTH = 5 ) LOG ON ) Name= Mes_Log, FILENAME = C:\ Meslek_log.ldf, SIZE = 5 MB, MAXSIZE = 30 MB, FILEGROWTH = 5 MB 17
Vizard ile database oluşturma 18
Vizard ile database oluşturma 19
Database Silme DROP DATABASE <database adı> DROP DATABSE meslek if existsselect name= meslek from sysdatabases where name= meslek ) ) drop database meslek 20
SQL sunucu Lisanslama Per Processor Licensing İşlemci Başına Lisans) : SQL sunucu kullanıldığı her işlemci için alınan lisans şeklidir. Bu tür lisanslama alındığında bağlanan kullanıcı sayısının önemi yoktur. Özellikle web ortamında ve büyük veri tabanlarında kullanılan SQL sunucu için oldukça idealdir. Per Seat Licensing Oturum Başına Lisans) : Her bir SQL server için ayrı bir lisans parası ödendiği gibi,ayrıca SQL sunucu bağlanan her bir Client için CAls lisans alınması gerekir. Küçük ve orta ölçekli işletmelerde kullanılır. 21
Bazı Linkler SQL server 2008 R2 EXPRESS sürüm: http://www.microsoft.com/express/database/installoptions.aspx https://www.microsoft.com/betaexperience/pd/sqlexpdbmt32/enus/ SQL KURULUMU http://www.cozumpark.com/blogs/sql/archive/2008/11/09/sql-server-2008-kurulum.aspx http://www.gulozturk.com/sql-server-2008-express-kurulum.html 22
Soru ve Önerileriniz? 23
Çalışma Sorusu BIR ADET PRIMARY FILE UC ADET SECONDERY FILE İKİ ADET TRANSACTION FILE DATABASE ADI ODEV1 BASLANGIC DEĞERİ = 20 MB MAXIMUM DEĞERİ = 100 MB ARTIŞ MİKTARI = %12 Not1 : Yukarıda verilen miktarlar sadece Primary Data File bilgileridir. Diğer data file bilgilerini siz kendiniz belirleyiniz. Not2 :Secondary dosyaları bir grup içerisinde tanımlanacak 24