VERİTABANI SİSTEMLERİ Dersi Veri Tanımlama soru cevapları:

Toplam 50 Soru & Cevap
PAYLAŞ:

#1

SORU:

Veritabanı yönetim sistemlerinde verilerin depolanması nasıl gerçekleşmektedir?


CEVAP:

Veritabanı yönetim sistemlerinde verilerin depolanması, veri gösterimi, güvenlik yönetimi, veri bütünlüğü yönetimi vb. fonksiyonlar; tasarımı yapılan şemalar ve oluşturulan nesneler üzerinden yapılmaktadır.


#2

SORU:

DDL (Data Definition Language)’yi açıklayınız?


CEVAP:

DDL ayrı bir dil olmayıp, veritabanı nesnelerinin oluşturulması ve düzenlenmesi işlemlerini yapan Yapılandırılmış Sorgu Dilinin (SQL-Structured Query Language) alt komut grubudur. SQL komutlarının kullanım amaçlarına göre oluşmuş diğer bazı gruplar ise Veri İşleme Dili (DML) ve Veri Kontrol Dilidir (DCL). Burada, DML, veri girmek, değiştirmek, silmek ve verileri almak için kullanılan SQL komut grubu; DCL ise veritabanı kullanıcısı veya rolü ile ilgili izinlerin düzenlenmesini sağlayan komut grubudur.


#3

SORU:

DDL komutlarını örneklendiriniz?


CEVAP:

DDL’ de, tabloların oluşturulması, silinmesi ve bazı temel özelliklerinin düzenlenmesini sağlamak üzere sırası ile CREATE, CREATE, DROP ve ALTER komutları kullanılır. DML örnek olarak, veri seçmek için SELECT, veri eklemek için INSERT, veri silmek için DELETE, veri güncellemek için UPDATE verilebilir. DCL’de ise, kullanıcıya yetki tanımlama için GRANT, kullanıcı yetkilerini engellemek için DENY ve daha önce yapılmış olan yetki ve izinleri kaldırmak için REVOKE komutları kullanılır.


#4

SORU:

SQL –DDL ilişkisini açıklayınız?


CEVAP:

SQL’in gelişim süreci ile beraber DDL komut setlerinde de gelişmeler olmuştur. Bilindiği gibi SQL’in ilk sürümü 1970’lı yıllarda SEQUEL olarak ortaya çıkmış olup 1980’li yıllarda ANSI standartlarında tanımlamalar yapılmıştır. Daha sonra 1992 yılına kadar, bazı ufak güncellemeler ile değişik ara sürümler çıkmıştır. 1992 yılında ise SQL için ISO/ANSI standartları tanımlanmıştır. Bu tarihteki standartlar içinde, veritabanı şemalarının yönetimini mümkün kılan DDL özellikleri de eklenmiştir.


#5

SORU:

Veri tanımlama dili ile neler gerçekleştirilebilir?


CEVAP:

Veri Tanımlama Dili ile veritabanında tablolar, indeksler, görümümler vb. oluşturulabilir, silinebilir veya bazı temel özellikleri düzenlenebilir. Veri Tanımlama Dili, ilişkisel veritabanı sistemlerinde varlık-ilişki veri modeline karşılık gelen ilişkisel şemalarının (relational schemas) seçilen VTYS üzerinde oluşturulması aşamasında kullanılır. Bu aşamada, veritabanından beklenen performans, veri bütünlüğü, veri gösterimi vb.’ne bağlı olarak VTYS üzerinde farklı nesneler oluşturularak tasarım beklentileri karşılanır. Bu amaçla DDL, veri tabanı tablo ve görünüm (view) oluşturulması, silinmesi ve değiştirilmesi, veritabanı tabloları üzerinde tanımlamalar ile bütünlük kısıtları (integrity constraint) oluşturulması vb. amaçlı kullanılır. Günümüzdeki VTYS sistemlerindeki güncel komutlara bakıldığında tablo, görünüm vb. oluşturma yanı sıra indeks oluşturma, tetikleyici (trigger) oluşturma, servis oluşturma vb. birçok işlem de DDL altında yapılmaktadır.


#6

SORU:

CREATE SCHEMA kodunu açıklayınız?


CEVAP:

Bu komut ile mevcut veritabanında bir şema içinde tablolar ve görünümler oluşturulabilir. Bu şema üzerinde farklı kullanıcılara ait yetkiler tanımlanabilir.


#7

SORU:

CREATE CERTIFICATE kodunu açıklayınız?


CEVAP:

SQL sunucudaki bir veritabanına sertifika ekler.


#8

SORU:

CREATE TRIGGER kodunu açıklayınız?


CEVAP:

DML, DDL vb. için tetikleyici oluşturur. Veritabanı sunucusunda belli bir olay gerçeklendiğinde ilgili saklı yordam çalıştırılabilir. DML için tetikleyici olaylar INSERT, UPDATE veya DELETE iken, DDL için tetikleyici olaylar CREATE, ALTER ve DROP’tur.


#9

SORU:

CREATE SEQUENCE kodunu açıklayınız?


CEVAP:

Dizi üretimi için bir nesne ve özelliklerini oluşturur. Tanımlanan değerlere bağlı olarak farklı değerlerde nümerik diziler üretir.


#10

SORU:

CREATE INDEX kodunu açıklayınız?


CEVAP:

Tablo veya görünüm üzerinde ilişkisel indeks oluşturur. Özellikle sorgu performansının arttırılması için farklı yapılarda oluşturulabilir.


#11

SORU:

Şema oluşturma sürecini açıklayınız?


CEVAP:

SQL, 1992 yılından önceki sürümlerinde veritabanındaki tüm tabloların aynı şemaya ait olmasını gerektirmekteydi. Veri tanımlama dili açısından, 1992’de oluşturulan standart ile aynı VTYS’de olan bazı tablolar ve ilgili nesneler gruplanarak bir şema oluşturma imkânı olmaktadır. SQL şemasını nitelemek üzere, şema ismi, şema sahibi ve şemadaki tüm elemanların tanımlanması yapılabilmektedir. Şema içinde, tablolar, görünümler, alanlar ve yetkilendirmeler şemayı tanımlamaktadır. Şema Tablo 5.1’de verildiği gibi CREATE SCHEMA komutu ile oluşturulmaktadır. CREATE DATABASE de birçok VTYS için aynı komut işlevini görmektedir. VTYS’de tüm kullanıcıların şema ve şema elemanı oluşturma yetkisi olmayabilir. Veritabanı yöneticisi tarafından ilgili kullanıcılara bu yetkilerin tanımlanması gerekir. Şema kavramına ek olarak, SQL’de ayrıca katalog kavramı da bulunmaktadır. Katalog ise belli şemaların bir araya gelmesi ile oluşturulmaktadır. Bir katalog her zaman bilgi sağlayan INFORMATION_SCHEMA şemasına sahiptir. Bütünlük kısıtları, eğer aynı katalog içindeki ilişkilerde tanımlı ise kullanılabilir.


#12

SORU:

Tablo ve kısıtların oluşturulmasından bahsediniz?


CEVAP:

İlişkisel örnek (relational instance) için tablo, tuple için satır veya kayıt, öznitelik (attribute) için sütün veya alan terimleri değişmeli olarak kullanılacaktır. Veri tanımlama dilinde CREATE TABLE komutu ile VTYS’de yeni bir tablo, öznitelikleri ve kısıtların tanımlanması yapılabilir. Tablo oluşturmada alanlar ve veri tipleri ilk olarak belirlenir. Bunun yanı sıra alan kısıtları, birincil anahtar kısıtları ve bütünlük kısıtları da tanımlanabilir. Veri tanımlama dilinde birden fazla tablo üzerinde tanımlanabilecek kısıt komutları da bulunmaktadır. Bütün bunlar dikkate alındığında, işletme ile ilgili birçok veri tipi ve ilişkisinin hata yapmayacak şekilde veritabanına aktarımı için CREATE TABLE komutu ve beraberinde kullanılacak seçenekler, yönetim bilişim sistemlerinde veritabanı gerçeklemesi için önemli bir yere sahiptir.


#13

SORU:

İndeks oluşturmayı açıklayınız?


CEVAP:

Veritabanı’nın performansının artırılmasında indeks kullanımı önemli bir yere sahiptir. VTYS’nin fiziksel şemasını oluşturmaya yönelik indeksler kullanılır. Eğer işletmelerde belli tip sorgular daha yaygın kullanılmakta ve sorguların cevaplarında gecikmeler olmakta ise yapılacak indeks tanımlamaları ile hızlandırma mümkün olabilir. SQL sorgusunun özelliklerine ve işlem yapılacak tablonun boyutuna bağlı değişik özelliklerde indeks tanımlaması yapılmaktadır. Yukarıdaki alt başlıklar incelendiğinde VTYS de en üstteki kavramsal şemadan, verilerin saklandığı alt katmandaki fiziksel şemaya kadar çok farklı katmanlardaki nesne tanımlamaları veri tanımlama dili ile mümkün olmaktadır. Takip eden bölümlerde öncelikle örnek bir veritabanı sistemi kurulumu verilecek olup, sonrasında ise veri tanımlama dili ile ilgili yaygın kullanılan bazı komutlar uygulamalı olarak verilecektir.


#14

SORU:

Görünüm oluşturmayı açıklayınız?


CEVAP:

İşletmelerin veritabanı sistemlerinde çok farklı kullanıcılar için veriler bulunmaktadır. Bazı veriler belirli kullanıcıların ortak erişimine açık iken bazı verilerin ise tüm kullanıcılara açık olmaması gerekir. Bu ise her kullanıcının veritabanını farklı bir erişim veya görünüm ile görmesini gerektirmektedir. VTYS’nin sağladığı görünüm nesnesi ile farklı kullanıcıların erişimi için CREATE VIEW ile sanal veri kümeleri oluşturulmaktadır.


#15

SORU:

Veritabanı kurulumuna hazırlık sürecinden bahsediniz?


CEVAP:

SQL Server 2014 Express yazılımı kurmadan önce bazı hazırlık ve kontrollerin yapılması gerekir. Bu kapsamda, kurulacak bilgisayardaki donanımın minimum sistem gereksinimleri, işletim sisteminin 32bit ya da 64 bit olup olmadığı bilgilerini kontrol ederek http:// www.microsoft.com/en-us/download/details.aspx?id=42299 adresinden “MS SQL Server 2014 Express” ve “SQLManagement Studio” ürünlerinin kurulum dosyalarının indirilmesi gerekir. Bu internet bağlantısının değişmesi ya da yeni sürümlerin çıkması durumunda Microsoft web sayfasından MS SQL Express yükleme sayfasına ulaşılması gerekecektir.


#16

SORU:

MS SQL Server 2014 Express Kurulum sürecini listeleyerek açıklayınız?


CEVAP:

Önce SQL sunucu kurulmamış 64 bit bilgisayar üzerine kurulum yapılacaktır. Bunun için ilgili dosyayı açıp klasördeki (örn: SQLEXPR_x64_ENU) kurulum (setup.exe) dosyasının çalıştırılması gerekmektedir. Kurulum yardımcısı ile aşağıdaki adımlar izlenerek kurulum tamamlanacaktır. Bu kitabın hazırlandığı ana kadar SQL Server yazılımının Türkçe sürümü bulunmadığı için kurulum ve yazılım ara yüzleri İngilizce olarak aşağıda adımlar olarak verilmektedir:

  1. Kurulum (Installation): Bu adımda “New SQL Server stand-alone installation or add features to an existing installation” seçeneğinin seçilmesi gerekir.
  2. Evrensel Kurallar (Global Rules): Bu adımda, kurulum yardımcısı tarafından kullanılacak dosyaların kurulumu sırasında bir problemle karşılaşılmaması için bazı kontroller yapılır. Problem yoksa otomatik olarak sonraki adıma geçilir.
  3. Kurulum Tipi (Installation Type): Bu adımda “Perform a new installation of SQL Server 2014” seçilip devam edilir.
  4. Lisanslama (License Terms): Bu adımda “I accept the license terms” ile lisans anlaşmasının kabul edildiğini işaretlenmelidir.
  5. Özellik Seçimi (Feature Selection): Express kurulum adımında, temel bileşenlerin hepsinin kurulumu önerilir. Bunlar, MS SQL Server üzerinde hangi alt özelliklerin çalışacağını belirler.
  6. Oluşum Yapılandırması (Instance Configuration): Bu adımında SQL Server 2014 için bir isim verebilir veya “Default instance” seçimiyle ilerlenebilir. Daha sonra yeni bir kurulum yapılacaksa ona isim verilmesi gerekir.
  7. Sunucu Yapılandırma (Server Configuration): SQL Server veritabanı motoru için daha önce seçilen özellikler de dikkate alınarak başlangıç parola belirlemesi yapılabilir.
  8. Veritabanı Motoru Yapılandırması (Database Engine Configuration): MS SQL Server 2014 veritabanı motoru servisine yönetici olarak erişirken kullanılacak kimlik doğrulama yöntemi belirlenir. “Mixed Mode (SQL Server authentication and Windows authentication)” seçeneği ile devam edilebilir. Bu şekilde “Data Directions” sekmesinde istenilen değişikliklerin yapılabileceği veritabanı, veri yedek gibi içeriklerin bulunacağı varsayılan dizinler listelenir.
  9. Kurulum İşlemi ve Tamamlanma (Installation Progress and Complete): Bu adımda kurulum işlemi sürdürülür ve tamamlanır. Kurulum yapılan özellikler de bu adımda listelenir.

#17

SORU:

SQL Server Management Studio kurulum sürecini listeleyerek açıklayınız?


CEVAP:

Bilgisayara indirilen dosyayı açıp klasördeki (örn: SQLManagementStudio_x64_ENU) kurulum (setup.exe) dosyasını çalıştırınız. Kurulum yardımcısı sizi aşağıdaki adımları izleterek kurulumu tamamlatacaktır.

  1. Kurulum (Installation): Bu adımda Şekil 5.7’deki “New SQL Server stand-alone installation or add features to an existing installation” seçeneği seçilir.
  2. Özellik Seçimi (Feature Selection ): SQL Server Management Studio için ekranda seçili temel özelliklerinin hepsinin kurulumu önerilir.
  3. Kurulum İşlemi ve Tamamlanma (Installation Progress and Complete): Bu adımda başarı ile kurulum yapılan özellikler listelenir. Bu kurulumdan sonra bilgisayarınızdaki “SQL Server Management Studio”yu çalıştırarak SQL Server 2014’e, sağlanan ara yüzler ile erişebilirsiniz.

#18

SORU:

MS SQL komutları ile veritabanı oluşturmayı kodlar aracılığıyla açıklayınız?


CEVAP:

“Northwind” veritabanını komut ile oluşturmak için; “SQL Server Management Studio” programı açılarak ana menüde “New Query” e tıklayarak SQL Sorgu penceresi oluşturulur. SQL Sorgu penceresine CREATE DATABASE Northwind2 komut satırı yazılıp ana menüde “Execute” e tıklanır veya “F5”tuşuna basılır. Veritabanının adını yeni bir isim olan NWYeniIsim’e değiştirmek için ALTER DATABASE Northwind2 MODIFY NAME=NWYeniIsim; satırı kullanılabilir.


#19

SORU:

MS SQL komutları ile veritabanı silmeyi nasıl gerçekleşir?


CEVAP:

“NWYeniIsim” veritabanını silmek için; “SQL Server Management Studio” programı açılarak ana menüde “New Query” e tıklayarak SQL Sorgu penceresi oluşturulur. İlgili SQL Sorgu penceresine DROP DATABASE NWYeniIsim komut satırı yazılıp ana menüde “Execute” e tıklanır veya “F5”tuşuna basılır.


#20

SORU:

Sayısal veri tiplerinden bahsediniz?


CEVAP:

Sayısal veri tiplerinde tamsayı (integer), kayan noktalı sayılar (oating point), nümerik sayılar ve ikili (binary) sayılar vb. için tanımlamalar yapılabilmektedir. Depolanacak tamsayının büyüklüğüne göre tinyint (1 bayt), smallint (2 bayt), int (4 bayt), bigint (8 bayt) veri tipleri bulunmaktadır. Kayan noktalı sayı veri tipinde float (4 bayt) ve real (4 bayt) veri türü ya da kullanıcının ihtiyacına göre basamak sayıları tanımlanabilen decimal ve numeric veri tipleri alanları tanımlamak için kullanılabilmektedir. İkili sayılar veri tipinde, sabit uzunlukta binary ve değişken uzunlukta varbinary veri tipi bulunmaktadır.


#21

SORU:

Metin-Karakter veri tiplerinden bahsediniz?


CEVAP:

Bu veri tipinde hem ASCII karakter seti, hem de Unicode uluslararası karakter seti kullanımı veya veri uzunluğunun sabit veya değişken olmasına bağlı olarak veri tipi tanımlamaları değişir. ASCII karakter seti için, sabit uzunluklu veri kümesi saklayan char, değişken uzunluklu veri kümesi saklayan varchar veri tipleri vardır. Unicode karakter seti için, sabit uzunluklu veri kümesi saklayan nchar, değişken uzunluklu veri kümesi saklayan nvarchar veri tipleri vardır. Tarih ve Zaman Veri Tipleri: Bu veri tipleri içinde tarih, zaman, tarih-zaman vb. veri tipleri bulunmaktadır. Tarihi Yıl-Ay-Gün olarak saklamak için date, Zamanı saat:dakika:saniye olarak saklamak için time, her ikisini beraber saklayabilen datetime, smalldatetime vb. veri tipleri vardır.


#22

SORU:

Öznitelik kısıtlarının tanımlanmasını açıklayınız?


CEVAP:

Öznitelik verilerinin değerlerinin ne olacağının SQL de tanımlanması gerekir. Örneğin, bir veri girişi sırasında bazı bilgilerin zorunlu dolması gerekiyorsa bu bilgilere karşılık gelen veritabanı özniteliklerinin de uygun şekilde tanımlanması gerekir. SQL, öznitelik değeri olarak NULL kabul edebilir. Veri tanımlaması gerekli ise ilgili öznitelik için NOT NULL kısıtının tanımlanması gerekir. Öznitelikler için herhangi bir değer girilmediğinde olağan(default) bir değer tanımlanması isteniyorsa DEFAULT tanımlanması gerekir. Eğer herhangi bir DEFAULT değer tanımlanmamışsa, NOT NULL olan öznitelikler için NULL değeri atanır. Öznitelikler ile ilgili diğer bir kısıt tipide aralık tanımlamaya imkân veren CHECK komutu ile mümkün olmaktadır. Örneğin, tamsayı değere sahip olan bir özniteliğin 0-18 arasında değer alması isteniyorsa; ... CHECK (sayi > 0 AND sayi < 18) şeklinde tanımlanabilir. Belirli bir sayıdan başlayıp, belirlediğimiz aralığa göre artan veya azalan bir şekilde sayısal değer üretilmesi isteniyorsa, IDENTITY komutu da kullanılabilir. Genellikle birincil anahtar ile birlikte kullanılır.


#23

SORU:

Siparişler tablosu öznitelikleri tanımlayarak SQL kodları ile oluşturmayı örneklendiriniz?


CEVAP:

CREATE TABLE [Siparişler] (

[Sipariş No] [int] IDENTITY(1,1) NOT NULL, [Çalışan No] [int] NULL,

[Müşteri No] [int] NULL,

[Sipariş Tarihi] [datetime] NULL DEFAULT (getdate()),

[Sevk Tarihi] [datetime] NULL,

[Taşıyıcı No] [int] NULL,

[Sevk Adı] [nvarchar](50) NULL,

[Sevk Adresi] [nvarchar](max) NULL,

[Sevk Şehir] [nvarchar](50) NULL,

[Sevk Eyalet/İl] [nvarchar](50) NULL,

[Sevk Posta Kodu] [nvarchar](50) NULL,

[Sevk Ülke/Bölge] [nvarchar](50) NULL, [Nakliye Ücreti] [money] NULL DEFAULT ((0)),

[Vergiler] [money] NULL DEFAULT ((0)), [Ödeme Türü] [nvarchar](50) NULL,

[Ödeme Tarihi] [datetime] NULL,

[Notlar] [nvarchar](max) NULL,

[Vergi Oranı] [float] NULL DEFAULT ((0)), [Vergi Durumu] [tinyint] NULL,

[Durum No] [tinyint] NULL DEFAULT ((0)))


#24

SORU:

Tablolarda bütünlük (integrity) kısıtını açıklayınız?


CEVAP:

Bu kısıt, tüm veritabanı tabloları arasındaki özniteliklerin birbirleri ile olan ilişkisinin bütünlüğünün sağlanması için önemlidir. Örnek uygulama 5.1’deki Siparişler tablosundaki [Sipariş No] özniteliğine başka bir tablodan FOREIGN KEY kullanılarak referans verildiğinde, Siparişler tablosunda değişiklik yapılırken VTYS belirlenen opsiyonlara bağlı kabul veya ret verebilir. Bu tanımlandıktan sonra, VTYS tablolara yapılan işlemler sırasındaki bu kısıtlara uyumluluğu kontrol eder. Burada, veritabanı tasarımcısı alternatif davranış seçenekleri olan SET NULL, CASCADE ve SET DEFAULT’u da tasarlayabilir. Bu davranışın tetiklenmesi için veritabanında yapılacak olan olası silme ve güncelleme içi ON DELETE veya ON UPDATE durumlarına bağlı tanımlanabilir.


#25

SORU:

Mevcut tablolarda değişiklik yapılma sürecini açıklayınız?


CEVAP:

Veritabanı üzerinde oluşturulan bir tablo ile ilgili, sonrasında adı, öznitelikleri veya alanlar, kısıtlar vb. tüm tablo özellikleri değiştirilebilir veya ek özellikler eklenebilir. Tablolar için, bir alanın eklenmesi veya çıkartılması, bir alanın adının değiştirilmesi, tablodan kısıt çıkartılması veya eklenmesi vb. değişiklikler ALTER komutu ile yapılabilir. Tablo üzerinde ALTER ve/veya DROP işlemi yaparken diğer tablolardan bu tabloya yabancı anahtar ile bağlı bir alan varsa işlem gerçeklenmeyecektir. Öncelikle bu tip ilişkisel kısıtların kaldırılması gerekir. Buna yönelik düzenlemeler “ALTER/DROP/CASCADE” komut seçenekleri ile ilerideki bölümde detaylı verilmektedir. DROP TABLE [Tablo Adı] komutu ile bir tablo nesnesi ve içindekiler VTYS’den silinir.


#26

SORU:

İndeks nedir?


CEVAP:

İndeksler veritabanı yönetim sistemlerinde mevcut verilerin dizin hâline getirilerek istenilen tablo alanlarına daha hızlı ulaşılmasını sağlayan mekanizmalardır.


#27

SORU:

Bir index oluşturma süreci örneklendiriniz?


CEVAP:

İstenilen indeksin oluşturulması için Create Index komutu kullanılmalıdır. Create Unique Index komutu ise ilgili alanda değerleri tekrarlanmadığı durumlarda kullanılır ve dolayısıyla aranan değerleri bulmak için daha az süre gerektirir. Siparişlere ilişkin aynı tarihte sevk olabileceği için [Sevk Tarihi] alanına benzersiz bir indeks uygulanamayacaktır. Dolayısıyla aşağıdaki komut uygulanarak indeks oluşturulur. CREATE INDEX INDX_Sevk_Tarihi ON [Siparişler] ([Sevk Tarihi]) İndeks oluşturma komutundaki [INDX_Sevk_Tarihi] adı kullanıcı tarafından belirlenir. Komut sonucu VTYS’de bu isimli bir nesne olacağı için isminin sistematik bir şekilde verilmesi yerinde olacaktır. Oluşturulan indeks SQL Managment Studio SQL sorgu penceresinde görüntülenebilir ya da Select * from sys.indexes komutu ile tüm sistemdeki indekslerle beraber İzlenebilir.


#28

SORU:

Görünüm oluşturma ve silme işlemlerini açıklayınız?


CEVAP:

Görünümler, kullanıcıların veritabanındaki nesneleri sorgulayarak istedikleri veri kümelerini elde etmek için kullanılan yapılardır. Bu yapılar veriyi değil veriyi elde edecek sorgu komutlarını saklarlar. Birden fazla tablo ya da veritabanı nesnesinden istenilen alanların ve kayıtların elde edilmesi için görünümler oluşturulabilir. Bu yöntem ile kullanıcıların istenilen veri alanlarına erişimi sağlanabilir. Bu şekilde güvelik artacağı gibi, karmaşık sorgulardan elde edilen görünümlerin kullanılması uygulamada raporlama ve benzeri amaçlar için kolaylık sağlamaktadır. Görünüm oluşturmak için aşağıdaki yazım kuralı kullanılır.

CR

EATE VIEW Görünüm_Adı

As

<SQL Seçme Sorgusu>

Bir görünümü oluşturmak için asıl önemli olan istenilen veri kümesini elde edecek seçme sorgusunun yazılmasıdır. Bir sonraki ünitede seçme sorgularıyla ilgili ayrıntılı bilgilere yer verilecek ancak bu soruda bir seçme sorgusu komutu yazılması örneklenecektir. Bazı durumlarda ulaşılmak istenilen veri kümesinin karmaşık olması istenilen veri kümesine birden fazla adımda ulaşılmasını gerektirebilmektedir. Bu durumda birden fazla görünüm oluşturularak nihai görünüme ulaşılır. Buradaki örnekte istenilen veri kümesine ulaşabilmek için hangi tabloların kullanılacağı ve bu tabloların birbiriyle olan ilişkileri bilinmelidir. Oluşturulan bir görünümün silinmesi için DROP komutu kullanılır.


#29

SORU:

Saklı yordam nedir?


CEVAP:

Saklı Yordam, sunucu üzerinde tutulan belirli bir görevi yerine getirmek için birden fazla tablo üzerinde işlem yapabilen, program içinden farklı parametreler ile çağrılarak kullanılabilen SQL tabanlı komut kümesidir. Saklı yordamlar veritabanı yönetim sistemi ile istemci yazılımlar arasında veri getirme, veri güncelleme ya da veri tabanındaki bir dizi işlemin gerçekleştirilmesi için yoğun olarak kullanılabilmektedir.


#30

SORU:

Saklı yordam oluşturma sürecini anlatınız?


CEVAP:

Kullanıcı tarafından oluşturulabilecek saklı yordamlar yerel saklı yordamlar (local stored procedures) olup kullanıcı tabanlı saklı yordamlar olarak da adlandırılırlar. Saklı yordamlar veritabanı üzerinde hızlı işlemler yapmak için kullanılan önemli araçlardan birisidir. Yerel saklı yordam oluşturmak için aşağıdaki yazım kuralı uygulanır. (-- ile baş- layan satırlar açıklama satırıdır.)

CREATE PROCEDURE Procedureİsmi

-- Parametre içermeyen Saklı yordamlarda alt satır yer alamaz

<@param1> veri_türü, <@param2> veri_türü AS

BEGIN

-- Sql Programlama ve seçme komutları END


#31

SORU:

Veri tanımlama dilinin (DDL) işlevi nedir?


CEVAP:

Veri Tanımlama Dili, ilişkisel veritabanı sistemlerinde varlık-ilişki veri modeline karşılık gelen ilişkisel şemalarının (relational schemas) seçilen VTYS üzerinde oluşturulması aşamasında kullanılır. Bu aşamada, veritabanından beklenen performans, veri bütünlüğü, veri gösterimi vb.’ne bağlı olarak VTYS üzerinde farklı nesneler oluşturularak tasarım beklentileri karşılanır 

Bu amaçla DDL, veri tabanı tablo ve görünüm (view) oluşturulması, silinmesi ve değiştirilmesi, veritabanı tabloları üzerinde tanımlamalar ile bütünlük kısıtları (integrity constraint) oluşturulması vb. amaçlı kullanılır. Günümüzdeki VTYS sistemlerindeki güncel komutlara bakıldığında tablo, görünüm vb. oluşturma yanı sıra indeks oluşturma, tetikleyici (trigger) oluşturma, servis oluşturma vb. birçok işlem de DDL altında yapılmaktadır.


#32

SORU:

"CREATE SCHEMA" komutunun işlevi nedir?


CEVAP:

Bu komut ile mevcut veritabanında bir şema içinde tablolar ve görünümler oluşturulabilir. Bu şema üzerinde farklı kullanıcılara ait yetkiler tanımlanabilir.


#33

SORU:

"CREATE TABLE" komutunun işlevi nedir?


CEVAP:

Bu komut veritabanında yeni bir tablo oluşturur.


#34

SORU:

İndex oluşturma veritabanı performansını nasıl etkiler?


CEVAP:

Veritabanı’nın performansının artırılmasında indeks kullanımı önemli bir yere sahiptir. VTYS’nin fiziksel şemasını oluşturmaya yönelik indeksler kullanılır. Eğer işletmelerde belli tip sorgular daha yaygın kullanılmakta ve sorguların cevaplarında gecikmeler olmakta ise yapılacak indeks tanımlamaları ile hızlandırma mümkün olabilir. SQL sorgusunun özelliklerine ve işlem yapılacak tablonun boyutuna bağlı değişik özelliklerde indeks tanımlaması yapılmaktadır.


#35

SORU:

Veritabanında görünüm oluşturmanın amacı nedir?


CEVAP:

İşletmelerin veritabanı sistemlerinde çok farklı kullanıcılar için veriler bulunmaktadır. Bazı veriler belirli kullanıcıların ortak erişimine açık iken bazı verilerin ise tüm kullanıcılara açık olmaması gerekir. Bu ise her kullanıcının veritabanını farklı bir erişim veya görünüm ile görmesini gerektirmektedir. VTYS’nin sağladığı görünüm nesnesi ile farklı kullanıcıların erişimi için CREATE VIEW ile sanal veri kümeleri oluşturulmaktadır.


#36

SORU:

SQL Server Express kurmadan önce bilgisayarda hangi bileşenlerin olması gerekir?


CEVAP:

SQL Server Express olan veritabanı motorunun kurulumu için bilgisayarda .NET 3.5 SP1 veya .NET 4 ‘un kurulması gerekir. Tam veya ileri versiyonların kurulumu için .Net Frame- work 4.0 veya 4.5 ile birlikte ayrıca .Net Framework 3.5 SP1 de yüklü olmalıdır (Yeni versiyonlarda buradaki bazı gereklilikler farklılık gösterebilecektir).


#37

SORU:

SQL Sorgu penceresinin işlevi nedir?


CEVAP:

Ana menüde “New Query” ile açılan SQL Sorgu penceresi sorguların çalıştırılması için kullanılmaktadır. Sorgu bir veritabanı üzerinde işlem yapacaksa ana menü veritabanı açılır listesinden ilgili veritabanının da seçili olması gerekmektedir. Bu pencerenin altında “Command(s) completed successfull” çıktısı yazdığımız komutun düzgün çalıştığını göstermektedir. Komutun diğer çıktıları da burada görselleşir.


#38

SORU:

MS SQL Komutları ile  "Northwind" isimli veritabanı nasıl oluşturulur?


CEVAP:

“Northwind” veritabanını komut ile oluşturmak için; “SQL Server Management Studio” programı açılarak ana menüde “New Query” e tıklayarak SQL Sorgu penceresi oluşturulur. Şekil 5.9’deki SQL Sorgu penceresine

CREATE DATABASENorthwind2

komut satırı yazılıp ana menüde “Execute” e tıklanır veya “F5”tuşuna basılır.


#39

SORU:

MS SQL Komutları ile "NWYeniIsim" adlı veritabanı nasıl silinir?


CEVAP:

“NWYeniIsim” veritabanını silmek için; “SQL Server Management Studio” programı açılarak ana menüde “New Query” e tıklayarak SQL Sorgu penceresi oluşturulur. İlgili SQL Sorgu penceresine

DROP DATABASE NWYeniIsim


komut satırı yazılıp ana menüde “Execute” e tıklanır veya “F5”tuşuna basılır.


#40

SORU:

MS SQL'de yer alan sayısal veri tipleri nelerdir?


CEVAP:

Sayısal veri tiplerinde tamsayı (integer), kayan noktalı sayılar (floating point), nümerik sayılar ve ikili (binary) sayılar vb. için tanımlamalar yapılabil- mektedir. Depolanacak tamsayının büyüklüğüne göre tinyint (1 bayt), smallint(2 bayt), int (4 bayt), bigint (8 bayt) veri tipleri bulunmaktadır. Kayan noktalı sayı veri tipinde float (4 bayt) ve real (4 bayt) veri türü ya da kullanıcının ihtiyacına göre basamak sayıları tanımlanabilen decimal ve numeric veri tipleri alanları tanımlamak için kullanılabilmektedir. İkili sayılar veri tipinde, sabit uzunlukta binary ve değişken uzunlukta varbinary veri tipi bulunmaktadır.


#41

SORU:

MS SQL'de yer alan metin-karakter veri tipleri nelerdir?


CEVAP:

Bu veri tipinde hem ASCII karakter seti, hem de Unicode uluslararası karakter seti kullanımı veya veri uzunluğunun sabit veya değişken olmasına bağlı olarak veri tipi tanımlamaları değişir. ASCII karakter seti için, sabit uzunluklu veri kümesi saklayan char, değişken uzunluklu veri kümesi saklayan varchar veri tipleri vardır. Unicode karakter seti için, sabit uzunluklu veri kümesi saklayan nchar, değişken uzunluklu veri kümesi saklayan nvarchar veri tipleri vardır.


#42

SORU:

MS SQL'de yer alan tarih ve zaman veri tipleri nelerdir?


CEVAP:

Bu veri tipleri içinde tarih, zaman, tarih-zaman vb. veri tipleri bulunmaktadır. Tarihi Yıl-Ay-Gün olarak saklamak için date, Zamanı saat:dakika:saniye olarak saklamak için time, her ikisini beraber saklayabilen datetime, smalldatetime vb. veri tipleri vardır.


#43

SORU:

SQL'de öznitelik kısıtlarının tanımlanması neyi ifade eder?


CEVAP:

Öznitelik verilerinin değerlerinin ne olacağı- nın SQL de tanımlanması gerekir. Örneğin, bir veri girişi sırasında bazı bilgilerin zorunlu dolması gerekiyorsa bu bilgilere karşılık gelen veritabanı özniteliklerinin de uygun şekilde tanımlanması gerekir. SQL, öznitelik değeri olarak NULL kabul edebilir. Veri tanımlaması gerekli ise ilgili öznitelik için NOT NULL kısıtının tanımlanması gerekir. Öznitelikler için herhangi bir değer girilmediğinde olağan(default) bir değer tanımlanması isteniyorsa DEFAULT <value> tanımlanması gerekir. Eğer herhangi bir DEFAULT değer tanımlan- mamışsa, NOT NULL olan öznitelikler için NULL değeri atanır. Öznitelikler ile ilgili diğer bir kısıt tipide aralık tanımlamaya imkân veren CHECK komutu ile mümkün olmaktadır. Örneğin, tamsayı değere sahip olan bir özniteliğin 0-18 arasında değer alması isteniyorsa; ... CHECK (sayi > 0 AND sayi < 18) şeklinde tanımlanabilir. Belirli bir sayıdan başlayıp, belirlediğimiz aralığa göre artan veya azalan bir şekilde sayısal değer üretilmesi isteniyor- sa, IDENTITY komutu da kullanılabilir. Genellikle birincil anahtar ile birlikte kullanılır.


#44

SORU:

SQL'de anahtar kısıtı nasıl oluşturulur?


CEVAP:

Anahtar kısıtının özel hâli olan birincil anahtar kısıtı ile tablolardaki bir veya daha fazla eşsiz değere sahip olan öznitelikler PRIMARY KEY komutu ile tanımlanabilir. Eğer birincil anahtar sadece bir öznitelikten oluşuyorsa, doğrudan PRIMARY KEY’den sonra yazılabilir. Birden fazla alanın, beraber anahtar olması durumunda UNIQE komutu da kullanılabilir.


#45

SORU:

SQL Veri tabanlarında bütünlük kısıtı neden önemlidir?


CEVAP:

Bu kısıt, tüm veritabanı tabloları arasındaki özniteliklerin birbirleri ile olan ilişkisinin bütünlüğünün sağlanması için önemlidir. Örnek uygulama 5.1’deki Siparişler tablosundaki [Sipariş No] özniteliğine başka bir tablodan FOREIGN KEY kullanılarak referans verildiğinde, Siparişler tablosunda değişiklik yapılırken VTYS belirlenen opsiyonlara bağlı kabul veya ret verebilir. Bu tanımlandıktan sonra, VTYS tablolara yapılan işlemler sırasındaki bu kısıtlara uyumluluğu kontrol eder. Burada, veritabanı tasarımcısı alternatif davranış seçenekleri olan SET NULL, CASCADE ve SET DEFAULT’u da tasarlayabilir. Bu davranışın tetiklenmesi için veritabanında yapılacak olan olası silme ve güncelleme içi ON DELETE veya ON UPDATE durumlarına bağlı tanımlanabilir.


#46

SORU:

MS SQL Server yazılımında indeks oluşturma işlemi nasıl yapılır?


CEVAP:

MS SQL Server yazılımında indeks oluşturma CREATE INDEX komutu ile yapılır. İndeks oluşturma komutunun yazım kuralı aşağıdaki gibidir.

CREATE [UNIQUE] INDEX <INDX_ADI> ON <TABLO> (<ALAN> [ASC|DESC])


#47

SORU:

MS SQL Server yazılımında oluşturulan indeks nasıl silinir?


CEVAP:

MS SQL Server yazılımında oluşturulan bir indeksin silinmesi için DROP komutu kullanılır. Aşağıdaki komut örnek için oluşturulan indeksin silinmesini sağlar.

DROP INDEX INDX_Sevk_Tarihi ON [Siparişler]


#48

SORU:
MS SQL Server yazılımında indeksleri “clustered” (kümelenmiş) veya “non-clustered”(kümelenmemiş) olarak oluşturmanın sorgu performansına etkisi nasıl olur?
 
 


CEVAP:

İndeks MS SQL Server’da iki şekilde de oluşturulabilir. Kü- melenmiş indekslerde satırların fiziksel kayıt alanında sıralaması değişir. Kayıtlar, bir sözlüğün alfabedeki harf sırasına göre dizilmesi gibi dizilip o sırada erişim hızlı olur. Normal kümelenmemiş indeks ise, kitapların son sayfasında olan in- dekse benzer. Veriyi tüm kitapta aramadan, arka sayfadaki kendisi harf sırasında dizilmiş indekse bakarak aradığınızın hangi sayfada olduğunu bulabilirsiniz. Kümelenmiş indeks diğerine göre daha hızlıdır. Normal bir tablo sadece bir adet kümelenmiş indekse sahip olabilir. Kümelenemiş indeks sayısı fazla olabilmekle beraber, her indeks için ayrı hafıza alanı gerektiğinde hafıza ihtiyacı bir dezavantajdır.


#49

SORU:

Saklı yordam ne demektir?


CEVAP:

Saklı Yordam, sunucu üzerinde tutulan belirli bir görevi yerine getirmek için birden fazla tablo üzerinde işlem yapabilen, program içinden farklı parametreler ile çağrılarak kullanılabilen SQL tabanlı komut kümesidir. Saklı yordamlar veritabanı yönetim sistemi ile istemci yazılımlar arasında veri getirme, veri güncelleme ya da veri tabanındaki bir dizi işlemin gerçekleştirilmesi için yoğun olarak kullanılabilmektedir.


#50

SORU:

Yerel saklı yordam için yazım kuralı nasıl oluşturulur?


CEVAP:

Saklı yordamlar veritabanı üzerinde hızlı işlemler yapmak için kullanılan önemli araçlardan birisidir. Yerel saklı yordam oluşturmak için aşağıdaki yazım kuralı uygulanır. (-- ile başlayan satırlar açıklama satırıdır.)

 CREATE PROCEDURE Procedureİsmi 

-- Parametre içermeyen Saklı yordamlarda alt satır yer alamaz

AS
BEGIN

 -- Sql Programlama ve seçme komutları 

END