1 - mugursan

advertisement
1 SELECT * FROM Ogrenciler
2 -- yukarıdaki kod ile tüm kolonlar listelenir
3 -- iki tire işareti remark anlamına gelir açıklama satırları bu şekilde girilir
4
5 SELECT Adi, Soyadi FROM Ogrenciler
6 SELECT Soyadi, Adi
FROM Ogrenciler
7 -- Yukarıda ise öğrenciler tablosundan adı ve soyadı fieldları alınır.
8 SELECT * FROM Ogrenciler WHERE Adi = 'Burcu'
9 --Sorguya koşul yazmak istersem WHERE ifadesini kullanırım
1
0 --varchar tanımlı alanlar için ve tarih tanımlı alanlar tek tırnak içinde içinde
1 sorgulanır.integer yani tamsayılar ise ' olamdan sorgulanır.
1 --Sorgular f5 tuşu ya da Execute butonu ile çalışır.
1 SELECT * FROM Ogrenciler
WHERE Ogrencinumarasi = 60202009
2 SELECT * FROM Ogrenciler
WHERE Adi LIKE '%li%'
1 --Yukarıdaki sorgu adında 'li' harf öbeği geçen kayırları listeler
3
1 SELECT * FROM Ogrenciler
WHERE Adi LIKE '_li'
4 SELECT * FROM Ogrenciler
WHERE Adi LIKE '_li%'
1 --Yukarıdaki kod örneğinde ise ilkinde ali,eli gibi sonuçlar dönebilir yani ilk harf ne
5 olursa olsun önemli değil ama 3 harfli ve 2. 3. harfleri li olan kayıtlar listelenir.%
1 işareti ise sağdan kaç harf olucağını önemsemez.
6
1 SELECT * FROM Ogrenciler
WHERE Adi LIKE '__li%'
7 -- Yukarıdaki sorgu içerisinde li harf öbeği olsun.
1 -- li nin solunda 2 karakter olsun
8 --sağında ne olup olmadığı çok önemli değil
1
9 SELECT * FROM Ogrenciler
WHERE Adi LIKE '__li'
2 SELECT count(*) FROM Ogrenciler
0 --Count yani Adet verir
2
1 SELECT count(*) FROM Ogrenciler
WHERE OgrenciNumarasi IS NOT NULL
2 SELECT count(*) FROM Ogrenciler
WHERE OgrenciNumarasi IS NULL
2 --Yukarıdaki örnekte ise ogrennciNumarasi alani null yani boş olmayan kayıtları getirir.
2
3 SELECT count(*) FROM Ogrenciler
WHERE Adi LIKE 'A%'
2 --Adı A ile başlayan kayıtlar döner.
4
2 SELECT * FROM Ogrenciler
WHERE Adi='alper'
5 SELECT * FROM Ogrenciler
WHERE Cinsiyeti=0
2
6 SELECT count(Cinsiyeti) AS Adet,Cinsiyeti
FROM Ogrenciler
2 GROUP BY Cinsiyeti
7 --field adını değiştirmek için As kullanırım.
2 --Count komutu ile field ın adı kaybolur
8 --as ile isimlendirmekte fayda var.
2
9 SELECT * FROM Ogrenciler ORDER BY OgrenciNumarasi
3 -- Order by Sıralamayı sağlar
0 --order'da hiç birşey yazmazsak default olan ASC dir
3 SELECT * FROM Ogrenciler
1 ORDER BY OgrenciNumarasi ASC
3
2 SELECT * FROM Ogrenciler
3 ORDER BY OgrenciNumarasi DESC
3 -- Order by desc tersten Sıralamayı sağlar
3
4 SELECT * FROM Ogrenciler
3 ORDER BY Adi , Soyadi
5 --iki field a göre sıralama yapabilmek mümkündür.
3
6 SELECT Adi ,count(Adi)
AS Adet FROM Ogrenciler
3 GROUP BY Adi
7
3 -- JOIN : iki veya daha fazla tablodan
8 -- ilişkisel veri sorgulamya yatar
3 SELECT Ogrenciler.Adi , Ogrenciler.Soyadi , City.City FROM Ogrenciler INNER JOIN City ON C
9 ity.CityId =Ogrenciler.CityId
4 -- Ogrencilerin CityID sini göstermek işime yaramaz
0 -- fakat İl bilgisi işime yarar.
4 -- amacım iki tablo arasında ilişki tanımlayarak
1 --veriyi getirmek.
4 -- iki tarafta da aynı olan eşleşen kayıtları getirir.
2
4
3
4
4
4
5
4
6
4
7
4
8
4
9
5
0
5
1
5
2
5
3
5
4
5
5
5
6
5
7
5
8
5
9
6
0
6
1
6
2
6
3
6
4
6
5
6
6
6
7
6
8
6
9
7
0
Örnek SQL Kodları-II
Programcılığın veritabanı yönetiminde önemli yer tutan SQL komutlarının II. kısmı
VIEWLER
Bazen, tabloları olduklarından farklı gösterecek filtrelere ihtiyaç duyarız. Bu türden işlevler için ANSI SQL
VIEW kullanmayı önerir. VIEW’ler, saklanmış sorgulardan ibarettir. Aslında tablo gibi kullanılsa da böyle bir
tablo halihazırda yoktur.
VIEW’ler şu görevler için kullanılır:
1. Kullanıcıların bazı kritik tabloların sadece belli sütunlarını veya satırlarını görmesi istendiğinde,
2. Kullanıcıların, çeşitli birim dönüşümlerinden geçmiş değerler görmeleri gerektiğinde,
3. Halihazırdaki tablolarda var olan verilerin başka bir tablo formatında sunulması gerektiğinde
4. Çok kompleks sorguları basitleştirmek için
Örneğin
Örneğin Cari tablomuzdaki sadece Cari sınıf türündeki carimizin yer alacağı bir VIEW şu şekilde
oluşturulabilir:
cari_id : cari identity(cari kimlik nosu)
CREATE VIEW cari_sinif [(cari_id, cari_adi)] AS
SELECT cari_sinif.cari_id
FROM cari;
VERİ TABANI TASARIMI
İyi bir veritabanı tasarımı yapabilmek için yeteneğinizi, bilginizi ve tecrübenizi kullanmanız gerekir. Bu iş için
evrensel geçerliliği olan metotlar maalesef yoktur. Öncelikle, ilişkisel veritabanının tanımını çok iyi bilmek
gerekir. Bununla ilgili olarak, 5 Normalizasyon kuralını okumanızda fayda vardır. Ancak 5N, tasarım
aşamasında size yol göstermek yerine hangi şartlara uygun tasarım yapmanız gerektiğini anlatır.
Bazen, bu kurallardan vazgeçmek durumunda kalabilirsiniz ancak, veritabanında saklanacak verilerin hacmi
arttıkça bu kuralların daha sıkı sağlanmasında fayda vardır.
1.Nesneleri Tanımlayın:
Herhangi bir proje önünüzde konduğunda öncelikle nesneleri tanımlayın. Nesne, çeşitli özellikleri bulunan bir
varlıktır. Başlangıçta özellikleri ile ilgilenmeyeceğiz.
Örnek-14:
Birkaç örnek proje için nesneleri verecek olursak,
Kütüphane sistemi: Kitap, üyeler, türler, ödünç hareketleri
E-ticaret sistemi: Ürünler, müşteriler, siparişler,teslimat, fatura bilgileri,üreticiler,tedarikçiler,dağıtıcılar...
Futbol Ligi: Takımlar, sahalar, oyuncular, fikstür, hakemler, antrenörler
Okul Sistemi: Öğrenciler, öğretmenler, dersler, derslikler
Sözlük: kelimeler, anlamlar,diller
2.Her nesne için bir tablo oluşturun:
Her bir nesne için bir tablo oluşturun ve her bir tabloya içereceği veriyi en iyi anlatan bir isim verin. Tablo
oluşturma işini, bir kağıt üstünde sembolik olarak gösterebilirsiniz veya doğrudan MS Access, SQL Server,
MySQL,Oracle ...gibi kullanmakta olduğunuz VTYS üstünden de oluşturabilirsiniz. Ama tüm proje bitinceye
kadar bu tablolar üstünde muhtemel değişiklikler olacaktır.
İPUCU:
Tablolar isim verirken mümkünse tekil isimler kullanın. Böyle yaparsanız hem daha anlaşılır bir tasarım
yapmış olursunuz hem de daha sonra kodlama aşamasında karışıklığın önüne geçmiş olursunuz.
Örneğin içinde Kitap ile ilgili bilgiler bulunduracak tablonun adını Kitap koymak oldukça mantıklıdır.
3.Her bir tablo için bir anahtar alan seçin:
Veritabanındaki herhangi bir veriye erişmeden önce tabloya erişilir.Bir veritabanında en çok muhatap olunan
nesne grubu genellikle tabloalrdır. Buraya kadar hangi tabloları oluşturacağımıza karar verdik. Her bir
tablonun içinde hangi bilgileri saklayacağımızı kabaca biliyoruz. Bu aşamada, tabloda yer alacak her bir kaydı
bir diğerinden ayırabilecek bir sütuna ihtiyaç duyarız. Örneğin bir kitabı seçmek istediğimizde, bu kitabın hangi
kitap olacağını öyle bir anlatabilmeliyiz ki, başka hiçbir kitap ile karışmamalı. Bunu yapmanın tek yolu, bir
alanı birincil anahtar alan olarak belirlemektir.
Anahtar alan seçerken, sizi kısıtlamadığı sürece, doğal alanlar seçmeye dikkat etmenizde fayda vardır.
Örneğin araçlar ile ilgili bir tablo yaparken, plakalarını anahtar alan olarak belirleyebilirsiniz. Çünkü her bir
plakadan bir tek araç trafiğe çıkabilir. Bu bizi kısıtlamaz. Öğrenci tablosu için, öğrenci numarası doğal bir
anahtar alandır çünkü aynı okulda, aynı numaradan bir öğrencinin daha bulunması söz konusu değildir.
Kitap tablosu için ISBN numarasını anahtar alan olarak tanımlayabilirsiniz ama, elinizde aynı kitaptan iki adet
olduğunda, ISBN numarası sizi kısıtlayacaktır. elinizde iki adet ‘Önümüzdeki Yol’ kitabı varsa, her iki kitabın da
ISBN numarası aynıdır.Kitapdan biri eski biri yeni olabilir.Bu bir kargaşaya neden olabilir. Çünkü eski kitabı
kime yeni kitabı kime verdiğinizin takibini ISBN numarası ile mümkün değildir. Ancak bir E-Ticaret sitesi
tasarlarken, stoktaki tüm Kitap birbiri ile eşdeğer olacağından ya da öyle olduğu varsayıldığından ISBN
numarası birincil anahtar alan olabilir. Bu durumda, adet diye bir niteliğin aynı tabloda yer alması
gerekecektir.
4.Nesnelerin gerekli her bir özelliği için tabloya bir sütun ekleyin:
Tablo adlarını tamamladıktan ve anahtar adlarını belirledikten sonra, tablolarınıza sıradan adını veren
nesnenin her bir özelliği için bir alan(sütun) ekleyin.
İPUCU:
1.En başa birincil anahtar olarak belirlediğiniz alanı eklemek bir kural değildir ancak tablonuzun anlaşılırlığı ve
göze hoş görünmesi açısından tercih etmenizin yararınıza olacak bir tekniktir.
2. Genellikle,yapay birincil anahtar alanlar tablo adı ile başlar ve sonunda ID vardır. ogenci tablosu için
ogrenciID gibi.
Örneğin, kitap için:
Kitap no, ISBN no, kitap Adı, Yazarı, türü,Sayfa Sayısı, Özeti, fiyatı, baskı yılı...
Üye için: UyeNo, Adı, soyadı, e-mail adresi, ev telefonu, cep telefonu, iş telefonu....
Bu noktada, sizden istenen proje ile ilgili basılı formlar vs. varsa, bir göz atmanız hangi özelliklerin yer alması
gerektiği konusunda karar vermenize yardımcı olacaktır.
5.Tekrarlayan nesne özellikleri için ek tablolar oluşturun
Aklınızda hep şu olmalı: veri tekrarı olacak mı? Veri tekrarı olacaksa bir yerlerde hata yapıyorsunuzdur.
Elinizdeki tablonun en az bir tabloya daha ayrılması gerekiyor demektir.
Şunu da unutmayın, her projeye uyacak evrensel bir veritabanı tasarım tekniği yoktur. Yani her şey sizin belli
kurallar etrafında ne kadar teferruatlı düşünebildiğinize bağlıdır.
Örneğimizde, her bir kitap için tür belirledik ama, bir kitap hem kişisel gelişim kategorisine hem de hikaye
kategorisine girebilir. Ya da e-ticaret sisteminde bir ürünün birden fazla reyonda yer alması gerekli olabilir.
Veya bir kitap birden fazla kişi tarafından yazılmış olabilir..
Bir kitap için birden fazla türü kaydedebilmeyi ele alalım:
Bu türden bir sorunu çözmek için ilk akla gelen şey, Kitap için, 2.Tür,3.Tür diye iki alan daha eklemek. Ama
çoğu Kitap bir tek türdendir ve bu Kitap için 2 alan hep boş kalacaktır. Öte yandan, 4 türe birden giren bir
kitap olduğunda 4.tür bilgisini nereye yazacağız? Aynı alana mı? Ya da dört adet bölüm mü açacağız? Bunlar,
veritabanı tasarımının doğasına terstir.
2.Çözüm yolu ise, bir kitabı iki kere kaydedip, birincisini, ‘Kişisel Gelişim’ türü olarak; ikincisini de ‘Hikaye’
olarak girmek.. Ancak bu durumda da diğer bilgiler tekrar edecektir. Ya da bir süre sonra, kitap hakkında
girilen bilgilerin yanlış olduğunu fark ettiniz.Hangi kaydı güncelleyeceksiniz? Ya birini düzeltip birini
unutursanız... Sonuçta veri tekrarı ve veri bütünlüğünün bozulması söz konusudur. Bu da yine ilişkisel
veritabanı tasarımının doğasına terstir.
Bu durumda, türler diye bir yeni tablo oluşturup, bir de kitap_turler diye 2. tablo yu oluşturduktan sonra bu
türden bilgileri burada tutmak gerekecektir. Böylelikle, hiçbir türde yer almayan Kitapdan 10 ayrı türde yer
alan Kitapa kadar bütün olasılıklar için bir çözüm geliştirmiş oluruz.
6.Anahtar Alana Bağlı Olmayan Alanları Belirleyin
İlişkisel veritabanında, tablodan herhangi bir tek kayda erişmek için mutlaka bir farklı özellik sağlanmalıdır ve
bu özellik de anahtar alan tarafından sağlanır. Ancak bazen, anahtar alan ile aynı satırda yer aldığı halde,
anahtar alan ile birebir ilişkisi olmayan bir alan yer alabilir. Bu türden alanları elimine edip ayrı tablolara
ayırmak gerekir.
Örneğin, ödünç tablosunu ele alacak olursak, ödünç verdiğimiz her kitabı ödünç alanın adresini de bilmek
istediğimizde, bunu ödünç tablosuna yazamayız. Çünkü ödünç tablosunun birincil anahtar alanı oduncNo’dur
ve bu alan, ödünç verme işlemi ile ilgilidir. Oysa ödünç alanın adresi, ödünç alan kişinin kendisine bağlı bir
özelliktir. Bu kişinin her aldığı kitap için adresini tekrar yamaya gerek yoktur. Aynı şekilde otomasyon
içerisinde başka yerlerde de bu kişinin adres bilgilerine muhtemelen ihtiyaç duyulabilir çünkü adres, üyenin bir
özelliğidir.
Ödünç verilen kitabın adresini bilmek istediğimizde, üyeler adında bir tablo daha açıp, burada herkesin
adresini tutmak durumundayız demektir. Ödünç tablosunun ise, oduncAlan bilgisi olarak, Üyeler tablosunun
birincil anahtar alanına bir bağlantı(yabancı anahtar) içermesi daha doğru olur.
7.Tablolar arasındaki ilişkileri tanımlayın
Her biri bir nesneye dair özellikleri barındıran tabloların tümünü göz önüne alın ve birbirleri ile olan ilişkilerini
tanımlamaya çalışın. Örneğin Kitapı ödünç veririz. Bu durumda, ödünç tablosu ile Kitap tablosu ilişkili
olacaktır. Kitap üyelere ödünç verilir. Bu durumda, ödünç ile üyeler arasında da bir ilişki vardır. Türler ile Kitap
arasında bir ilişki vardır, bir kitabın en az bir türe dahil olması gerekir.
Örnek-15:
Bizim projemizdeki nesneler(tablolar) arasında aşağıdaki ilişkiler yer almaktadır:
Kitap.kitapNo (1)----(¥) odunc.kitapNo
Uyeler.uyeNo(1)---(¥)odunc.uyeNo
Tur.turNo(1)---(¥)Kitap_tur.turNo
Kitap.kitapNo(1)---(¥)Kitap_tur.kitapNo
Yazar.yazarNo(1)--- (¥)kitap_yazar.yazarNo
İki tablo arasında ilişkiyi sağlayan alanların aynı adda olması zorunluluk değildir. Teorik olarak tabloları
istediğiniz herhangi iki alanları üstünden birleştirebilirsiniz. Ancak, türler tablosundaki türNo ile üyeler
tablosundaki uyeNo alanını birleştirdiğinizde hiçbir işinize yaramayacak anlamsız bir ilişki ortaya koymuş
olursunuz.
Bu ilişkileri analiz ederken, her bir alanın hangi tablo için birincil anahtar alan, hangi tablo için yabancı anahtar
olduğunu not etmeniz, daha sonra fiziksel olarak veritabanını tasarlarken işinizi kolaylaştıracaktır. Hatta bu
bilgileri bir şema üstünde de gösterebilirsiniz. İşte bir çok VTYS tarafından sağlanan örnek bir şema:
diyagram_1: Bu kısımda anlatılanlar doğrultusunda örnek projemizin SQL Server 2000 üstünde görünen
diyagramı. İlişkili her iki tablo bir birincil alan ve bir yabancı anahtar alan üstünden birbirine bağlanır. Projenin
tüm şekli yer alacaktır. Aynı diyagramın bir benzerini MS Access ile degerçekleştirebiliriz.
İPUCU:
Farklı tablolardaki iki alan aynı veriyi tutuyorsa, iki alana da aynı adı vermek, karışıklığa yol açabilir gibi
görünse de aslında daha düzgün bir yapı ortaya çıkar. KitapNo alanı, Kitap tablosunda da ödünç tablosunda da
kitap numarası tutmaktadır. Bu alanlardan birine kitapNo diğerine oduncGidenKitapNo demek, kafa
karışıklığına neden olabilir. En Mantıklısı her ikisine de kitapNo demektir. [12/12/2003]
2.7.Veritabanı Normalizasyonu
Veritabanı normalizasyonu, ilişkisel veritabanında tablolara karar verme anayasasıdır. Veritabanı
uygulamasının ciddiyeti arttıkça, bu kurallara uymak zorunluluk arzeder.
Aslında ilişkisel veri tabanı tasarımından ziyade bir tablo içerisinde yer alacak kaydın nelerden oluşmasına
karar vermeye yarayan normalizasyon kuralları başlı başına bir işlemdir. Sonuç itibari ile veritabanı tasarım
aşamasında gerekli bir işlem olduğundan bu bölüme almayı uygun bulduk.Genel kabul görmüş 5
normalizasyon kuralı vardır. Burada her bir kuralı tam olarak anlatmak mümkün değildir.Ancak bu kurllar,
ilişkisel veritabanının tanımı ile birlikte ortaya konmuştur. Özet olarak fikri vermesi açısından yer verilmiştir.
1. Normalizasyon Kuralı:
Bir satırdaki bir alan yalnızca bir tek bilgi içerebilir. Örneğin kitap tablosunda, birden fazla yazarı olan kitap
için yazar1, yazar2, yazar3 diye alanlar açsaydık, bu kurala uymamış olurduk. Böyle bir durumda, ayrıca
yazarlar tablosu da oluşturarak kuralı çiğnememiş oluruz.
Genellikle yapılan hata:
Verileri virgül veya bir başka karakter ile ayırıp aynı alana girmek. Daha sonra program içerisinde split ile bu
değerleri ayırmak. Ancak bu ilişkisel veritabanının doğasına terstir.
2. Normalizasyon Kuralı:
Bir tablo için, anahtar olmayan her alan, birincil anahtar olarak tanımlı tüm alanlara bağlı olmak zorundadır.
Mesela, Ödünç tablosunda KitapAdi diye bir alan eklese idik, bu sadece ödünç verilen kitap ile ilgili bir bilgi
olacaktı ve oduncNo’na bağlı bir nitelik olmayacaktı. Bunu çözmek için, kitap adlarını ayrı bir tabloda tutarak
sorunu çözdük.
Ya da anahtar alanın birden fazla alandan oluştuğu tablolarda, anahtar alanlardan sadece birine bağlı veriler,
tabloda yer almamalı, ayrı bir tabloya taşınmalıdır.
Bunun tersi de geçerlidir. Yani iki ya da daha fazla tablonun birincil anahtarı aynı olamaz. Şayet böyle ise, bu
iki tablo tek tabloya indirilmelidir.
3. Normalizasyon Kuralı:
Bir tablo için, anahtarı olmayan bir alan, anahtarı olmayan başka hiç bir alana bağlı olamaz. Örneğin,
kitaplarımız için cilt tipi adında bir alan ekleyip burada da karton kapak için K, deri cilt için D, spiral cilt için S
yazsaydık, bu kodlama, kitap tablosunun birincil anahtarı olan kitapNo alanına bağlı bir kodlama olmayacaktı.
Çünkü bu kodlama bir başka anahtarı olmayan alana bağlıdır. Bunun sonucunda da veritabanımızda, karşılığı
olmayan bir kodlama yer almış olacaktır. Cilt tipi bilgisini kodlu olarak tutan alan aslında cilt tipi açıklaması
olan başka bir alana bağlıdır. Bu ilişki başka bir tabloda tutulmalıdır.
Bu durumda, ciltSekli adında bir tablo açmamız gerekir. Bu tablonun alanları da ciltTipKodu ve ciltSekli
olmalıdır. Ancak bundan sonra, kitaplar tablosunda ciltTipi adında bir sütun açıp buraya da D,S,K gibi kodları
yazabiliriz.
4. Normalizasyon Kuralı:
Birincil anahtar alanlar ile anahtarı olmayan alanlar arasında, birden fazla bağımsız bire-çok ilişkisine izin
verilmez. Örneğin, tablomuzda yer alan bir kitap hem hikaye kitabı hem de kişisel gelişim kitabı olabilir.(Bu
durumda kitabın adı, kişisel gelişim hikayeleri olurdu her halde) Bu durumu Kitap tablosunda nasıl ifade
edeceğiz?
4.Normal formu sağlamak için, her bağımsız bire çok ilişki için ayrı bir tablo oluşturmak gerekir.
Bu örnekte, türler diye bir tablo açmamız gerekiyor. Daha sonra kitapTurleri diye bir başka tablo daha
açmamız gerekiyor. ‘Kişisel Gelişim Hikayeleri’ adlı kitap için, öncelikle kitap numarası, Hikaye bölümünün
kodunun yer aldığı bir satır; ardından da yine kitap numarası, ardından da kişisel gelişim türünün kodunun
aldığı yeni bir satır daha eklemek gerekir.
5. Normalizasyon Kuralı:
Tekrarlamaları ortadan kaldırmak için her bir tabloyu mümkün olduğunca küçük parçalara bölmek gerekir.
Aslında ilk 4 kural sonuçta bu işe yarar ancak, bu kurallar kapsamında olmayan tekrarlamalar da 5.nolu
normalizasyon kuralı ile giderilir.
Örneğin, kitaplarımız için bir edinme şekli bilgisi girilecek sütun eklemek isteyelim: Bu bölüme girilebilecek
bilgiler bellidir: Bağış veya satın alma.
Bu bilgileri başka bir tabloda tutabiliriz. Böylelikle, kullanıcıların bu alan gelişi güzel bilgiler girmesini
engellemiş oluruz. Bu da sorgulama esnasında verilerimiz arasında bir tutarlılık sağlar. Bu işlem sonucunda,
tutarsızlıklara neden olabilecek ve sık tekrarlayan veriler başka bir tabloya taşınmış olur. Bu tablo için,
veritabanı programlamada ‘look-up table’ terimi kullanılır.
Ancak, veritabanı normalizasyon kuralları, bir ilişkisel veritabanının tasarlanma aşamalarını değil de ilişkisel
veritabanında yer alacak kayıtların ilişkisel veritabanı ile uyumlu olup olmadığını denetlemeye yöneliktir.
Özetle ilişkisel bir veritabanı tasarımı şu dört öğeyi barındırmalıdır.
* Veri tekrarı yapılmamalıdır.
* Boş yer mümkün olduğunca az olmalıdır.
* Veri bütünlüğü sağlanmalıdır.
* Veriler, aralarında bir ilişki tanımlanmaya müsait olmalıdır.
3.SQL Veri İşleme Dili (Data Maniplation Language)
DDL ile tanımlanan nesneleri bir kaba benzetirsek, DML'in görevi bu kabın içini doldurup-boşaltmak ile ilgi
şeylerdir.
Veri İşleme dili, verinin şablonu üstünde değişiklik yapmaz. Sadece var olan tablolardaki bilgileri uygun
şekilde raporlamak(SELECT), yeni kayıtlar eklemek(INSERT), kayıtlar üstünde güncelleme yapmak(UPDATE)
ve kayıtları silmek(DELETE) için kullanılır. Veri işleme dili sadece veritabanında kaydı tutulan bilgilerle ilgilenir.
Bu bilgilerin nasıl tutulduğu ile ilgilenmez.
RESULTSET, RECORDSET ve DATASET kavramları
VTYS’de bir sorgu çalıştırıldığında, tablo mantığında bir sonuç üretir. Bu sonuca resultset denir. Bir ResultSet,
birden fazla tablodan kayıt içerebilir. Bir ResultSet’in içeriği, veritabanı programları geliştirilirken, ADO
nesnelerinden RecordSet içerisine aktarılır ve veriler program içerisinde bu nesne aracılığıyla yönetilir.
ADO.NET içerisinde ise ResultSet’ler (birden fazla recultSet) ADO.NET içerisinde ise DataSet denilen nesnelere
aktyarılabilir . RecordSet ve DataSet konusunu, 3.Kitapçıkta teferruatlı olarak incelenecektir.
SQL Veri İşleme Dili (Data Maniplation Language)
Veri İşleme dili, verinin şablonu üstünde değişiklik yapmaz. Sadece var olan tablolardaki bilgileri uygun
şekilde raporlamak(SELECT), yeni kayıtlar eklemek(INSERT), kayıtlar üstünde güncelleme yapmak(UPDATE)
ve kayıtları silmek(DELETE) için kullanılır. Veri işleme dili sadece veritabanında kaydı tutulan bilgilerle ilgilenir.
Bu bilgilerin nasıl tutulduğu ile ilgilenmez
RESULTSET, RECORDSET ve DATASET nedir ?
RESULTSET, RECORDSET ve DATASET kavramları
VTYS’de bir sorgu çalıştırıldığında, tablo mantığında bir sonuç üretir. Bu sonuca resultset denir. Bir ResultSet,
birden fazla tablodan kayıt içerebilir. Bir ResultSet’in içeriği, veritabanı programları geliştirilirken, ADO
nesnelerinden RecordSet içerisine aktarılır ve veriler program içerisinde bu nesne aracılığıyla yönetilir.
Download