Linkcini.com || Arama Motoru || Toplist || Webmaster Kaynaklari || Banner Degisim || Hosting Ara || Site Ara || Domain
 
  Site Girişi Editör Girişi Site Ekle  
 
Google
   
   
 
.

SQL dilini kullanarak veritabanımızda işlemler yapabileceğimiz pek çok DBMS (Database Management System - Veritabanı Yönetim Sistemi) bulunmaktadır. Bazıları MySQL, Interbase, Sybase, PostgreSQL olarak sayılabilir. Bu programlar veritabanının oluşturulması ve yönetimi amaçlıdır. Genelde verinin son kullanıcıya ulaştırılmasında kullanılan arayüzler farklı programlama dilleri tarafından yapılmaktadır. Bu diller destekledikleri DBMS'lere ulaşmak için, bu veritabanlarında sorgulama yapmak için kendi özel fonksiyonlarını/yöntemlerini kullanırlar. Bunlardan ASP ve PHP web arayüzü, C++ Builder ve Vbasic de PC arayüzü hazırlamakta kullanılanlara örnek olarak verilebilir.

Bir çok programlama dilinde olan "okunabilir kod" kavramı veritabanları içinde geçerlidir. Tasarladığız sistemin anlaşılabilir olması, kararlı ve performanslı olması gerekir. Geniş tabloları okuması ve anlaması zordur. Bunun yanında verileri pek çok ufak tabloya bölmek de veri ilişkilerinin görülmesini zorlaştırır. İyi bir tasarımda amaç; uyumsuz veri ilişkilerinin kurulması, verilerin farklı tablolarda gereksiz tekrarlanmamasıdır. İyi bir tasarım peşinde performansı da getirecektir. Bir verinin ayrı pek çok tablodan gelmesinin yavaş olabileceği gibi, o verinin geniş bir tablodan ayıklanması da performans kaybı yaratır.

Tasarımımıza aşağıdaki maddelere karar vererek başlayacağız.
-Veritabanımızın içereceği tablolar
-Her tablonun içereceği sütunlar(Yani o tabloda saklayacağımız veri çeşitleri)
-Tablo ve sütunların birbirleriyle olan ilişkileri


Tasarımında dikkat edilmesi gerek en önemli nokta veritabanımızın mantıksal tasarımının fiziksel tasarımından tamamen bağımsız olması gerektiğidir. Yani fiziksel olarak hangi veriyi hangi tabloda sakladığımızdan bağımsız olarak tüm veri ilişkilerinin görülebilir olması gerekir. Pratik olarak, fiziksel tasarımın, son kullanıcının görmek istediği veri ilişkilerini kısıtlamamasıdır.

Veritabanının ilk tasarımında aşağıdaki basamaklar izlenebilir:

1- Modelleyeceğiniz veri ortamının özelliklerini inceleyin. Veriler kimler tarafından ve hangi formlarda girilecek? Ne sıklıkla değişmesi gerekecek? Girilen veriler kimler tarafından ne şekillerde görülebilecek? Bu sorular sizin bir ilk fikir edinmenize yardımcı olacaktır.

2- Veritabanımıza konu olan varlıkların/nesnelerin ve bunların özellik/niteliklerinin bir listesini çıkarın. Tahmin edeceğiniz gibi bu konular tablolarımızı oluştururken, özellikleri de sütunları oluşturacak. (Örneğin bir şirkette çalışan işçiler tablosunun isim-adres-maaş-görev sütunlarını içermesi)

3- Tabloları özellikleri ve veri ilişkilerini kağıt üzerinde yada bir metin editörü yardımıyla modellemek çok yardımcı olacaktır. Her tabloyu bir kutu olarak gösterip, kutuların içlerine ise sütunlarımızı oluşturacak özellikleri yazabilirsiniz. Daha sonra ise veri ilişkilerini oklarla belirtebilirsiniz.

4- Bu ön çalışmanın ardından tasarımın ilk adımlarına başlıyoruz. Öncelikle emin olmamız gerek bir konu var. Her tabloda satırları diğerlerinden ayırt etmemizi sağlayacak en az bir sütun/özelliğin olması gerekiyor. Yani her tabloda öyle bir sütun olacak ki, o sütunun her değerine karşılık gelen sadece 1 satır olacak. (Az önceki işçi tablomuza kimlik numarasını eklersek bu sütun tüm kayıtlarda farklı olan bir özellik oluşturacaktır.) Bu özelliğe genelde "Primary Key" diyeceğiz. Eğer doğal olarak tablomuz böyle bir özellik içermiyorsa bizim, bir anlam içermeyen ancak her satırda farklı olacak bir sütun eklememiz gerekecek. Bu ise genelde her satıra bir kayıt numarası(ID) vererek yapılmakta.

5- Daha sonra tablolarımız arasındaki ilişkileri inceleyeceğiz. Bu ilişki iki yolla olabilir. One-to-Many (Tekten çoğa): Yukarıdaki 3 tablodan oluşan veritabanı modelimize bakalım. Kitaplar tablosundaki her kitap sadece 1 derse ait olabilir, ancak bir dersin birden çok kitabı olabilir. Bu One-to-Many ilişkisine bir örnektir.

Many-to-Many (Çoktan çoğa): Bir öğretmen birden çok ders veriyor olabilir, aynı zamanda bir dersi veren birkaç öğretmen de olabilir.
Bu ilişkilerin ışığında geçiş tabloları oluşturmamız gerekecektir. "Foreign Key" diyeceğimiz bir ilişki bize bu konuda yardımcı olacak. Bu konuya daha ayrıntılı olarak sonraki derslerde değineceğiz.

6- Tasarımız kabaca oluştuktan sonra, veritabanımızı normalizasyon teorilerine göre inceleyip, oluşmuş olabilecek mantık hatalarını düzelteceğiz. Veritabanı normalizasyonun nasıl yapılacağını ise ileriki konularda göreceğiz.

7- Son olarak veritabanımız aktif hale getirip test edeceğiz. Örnek kayıtlar ekleyerek yada olabilecek muhtemel sorguları deneyerek tasarım aşamamızı bitiriyoruz.

TEMEL OPERATÖRLER

Select kullanımı
Select sözcüğü veritabanındaki sütunlardan uygun veriyi çekmek için kullanılır. “Select” sözcüğü “From” sözcüğü ile birlikte kullanılır.

Where Kullanımı
Veritabanımızdaki bir tablonun sütunlarına bazı kısıtlara göre erişmek istiyorsak bunu “where” ile yaparız. Sorgu cümleciğimizde Where ifadesinden sonra koşulları belirtebiliriz;

Like Kullanımı
Sql cümleciğimizle ulaşmak istediğimiz kayıtların özelliklerini belirtmek için “=” kullanabileceğimiz gibi “LIKE” yancümlesini de kullanabiliriz.

And Or Kullanımı
Sql cümleciğimizle WHERE ile birlikte “=” yada “LIKE” kullanarak koşul yaratmayı öğrendik. Ancak bu koşulları artırmak isteyebiliriz. Bunun için AND ve OR kullanacağız.

Örneğin, “sutun1” sütunumuzdaki değeri “1” olan ve "sutun2" değeri “örnek yazı” olan kayıtları seçmek istiyoruz.

Bu durumda sql cümleciğimizi;
Select * from tablo_adi where sutun1=1 and sutun2=’örnek yazı’
şeklinde yazacağız.
Veya “sutun1” değeri "1" ya da “örnek yazı” olan kayıtları seçmek isteyebiliriz, o zaman sql cümleciğimiz;
Select * from tablo_adi where sutun1=1 or sutun1=”örnek yazı”
şeklinde olacak.

Bettween .. And Kullanımı
Sql cümleciğimizle iki veri arasındaki kayıtları seçmek isteyebiliriz. Bu gibi durumlarda BETWWEN ve AND ikilisini kullanırız.

Örneğin, üyelerimizin yaşlarını kaydettiğimiz “sutun1“ sütunumuzdaki yaşları 15 ile 30 arasındaki kayıtları listelemek istersek;

SELECT * FROM tablo_adi WHERE sutun1 BETWEEN 15 AND 30
şeklinde bir sql cümleceği yazabiliriz.
 
Bunun tam tersi koşulu yani yaşları 15 ile 30 arasında olmayan kayıtları listelemek isteseydik, cümleciğimize NOT ekleyerek;

SELECT * FROM tablo_adi WHERE sutun1 NOT BETWEEN 15 AND 30

Distinct Kullanımı
Select kullanarak bir veritabanındaki kayıtları listelerken aynı verilerin tekrar edip edilmediğini denetleyemeyiz. En azından sadece select ile bunu yapamayız. Ancak DISTINCT kullanarak bir sütundaki verilerin sadece bir kere listelenmesini sağlayabiliriz.

Örneğin; üyelerimizin isimlerini kaydettiğimiz “sutun1“ sütunumuzdaki isimlerden aynı olanları tekrarlamamak üzere listelemek istersek;

SELECT DISTINCT sutun1 FROM tablo_adi

Order By Kullanımı
Sql cümleciğimizle seçtiğimiz verileri özelliklerine göre sıraya sokmak isteyebiliriz. Örneğin "sütun1” sütunumuz isim kayıtları içeriyor ve biz bu kayıtları isim sırasına göre ekrana basmak istiyoruz. Bu durumda sql cümleciğimizi;

Select * from tablo_adi order by sutun1 olarak oluştururuz.

Order by yan cümleciği sql cümleciğimizin sonunda yer alır.

 

Linkcini.com © 2006 - 2007 Tüm Hakları Saklıdır. Sitemize eklenen dosyalardan, verilerden ve linklerden Linkcini.com sorumlu değildir.
Samanalevi Tasarım Sorumluluk Reklam Editörlük Başvurusu © 2007 Linkcini.com