Veritabanı Sistemleri Dersi 5. Ünite Sorularla Öğrenelim

Veri Tanımlama

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


Güz Dönemi Ara Sınavı
7 Aralık 2024 Cumartesi
v