Bilgi/Açıklama

SQL Kursu

İlişkisel Veritabanı (Relational Database)

Bir uygulamanın kullandığı verilerin tümüne veritabanı (database) adı verilir. Bu tür yazılımlar uygulama çalışırken geçici (transient) olan verileri değil, uzun süreli saklanması gereken, direyici (persistent) verilerle çalışırlar. Veritabanlarına yerel (local) ya da uzak (remote) bilgisayarlardan erişilmesini sağlayan uygulamalara veritabanı sunucusu (database server) adı verilir. Bir sunucu birden çok veritabanını içerebilir. Kimi zaman veritabanı denince sunucunun denmek istediği de olur.
Verilerin varlık (entity) olarak tutulduğu ve bunlar arasındaki ilişki (relation) kurulduğu veritabanı türüne ilişkisel veritabanı (relational database) adı verilir. Bu tür yazılımlara dayalı yapılara ilişkisel veritabanı yönetim düzeni (relational database management system) ya da kısaca İVTYD (RDBMS) adı verilir.
Veritabanı yazılımları ortaya çıkmadan önce veriler dosya / sırtlı (file) adı verilen birimlerde tutulurdu. Verileri bunlara yazmak ve bunlardan okumak geliştirici (developer) ya da izlendirici (programmer) orununda çalışan kişilerin göreviydi. Ancak bu işlem çok yorucu ve rutin bir iş olarak görülürdü. Veritabanı yazılımları bu görevi geliştiricilerden almıştır. Öte yandan veriye erişmek için gereken işlemlerin yapılması gibi bir gereklilik doğmuştur.
İlişkisel veritabanlarına almaşık olarak sırtlı-tabanlı veritabanı (file-based database), nesne veritabanı (object database) ve NoSQL (SQL Yok ya da Yalnızca SQL Değil) biçiminde ürünler bulunmaktadır. Ancak bunlarla çalışılması için de veritabanı kavramlarını öğrenmek için SQL bilinmelidir. Sayılan ürünlere ilişkin belgelemeler ve betikler çoğunlukla SQL konusunun bilindiğini varsayarak bilgilendirme yaparlar.

SQL

SQL dili ilişkisel veritabanlarına erişim için kullanılır. Çok yalın bir sözdizimi olduğu için başlangıçta öğrenimi çok kolaydır. Temelde bir kaç buyruk (command) kullanımı önemli işlemleri yapmak için yeterli olur Ancak yalın dil özellikleri, karmaşık işlemleri için oldukça uzun düzgü (code) yazılmasını gerekli kılar. Bu nedenle karmaşık işlemler için yüzlerce çizgiden oluşan bir geliştirme yapılır.
SQL için temel buyruklar sokma (insert), güncelleme (update), silme (delete) ve seçme (select) olarak sayılabilir. Bir çizelge (table) üzerinde yapılacak temel işlemler bunlardır. Seçme işlemleri için bir kaç alt birimden söz edilebilir. Tüm kayıtları seçmek, tek bir çizgiyi seçmek, verilerden bir kesimini seçmek ya da toplam, sayı, ortalama, en küçük ve en büyük gibi değerleri bulan yığışım (aggregate) işlemleri sayılabilir.
SQL veritabanında tablo / çizelge (table) içerisinde sütun / dikeç (column) biçiminde tarla (field) öğeleri tanımlanır. Belli bir nesneyle ilgili her bilgi bir satır / yataç (row) olarak belirlenir. Her dikeç için bir veri türü (data type) belirlenir ve verilerin ona göre girilmesi denetlenir. Örneğin bütün sayı (integer number) türündeki bir tarlaya sicim (string) değerleri girilemez.

SQL Aytışları (SQL Dialects)

SQL dili tek bir dil değil, bir çok dilin ortak özelliklerini içeren bir ölçün (standard) olarak anlaşılmalıdır. Gerçekte her bir veritabanı üreticisi kendine özgü bir SQL dili üretir. Bu yüzden bunlara lehçe / aytış (dialect) adı verilir. SQL ölçünü de sürekli geliştirilmektedir. Belli aralıklarla özellikler eklenir ve böylece bir aytıştaki gelişmiş özellikler ötekilerde de aynı biçimde kullanılabilir.
Kimi SQL dilleri verilerle temel işlemler yapmanın ötesinde, bir izlendirme dili (programming language) özellikleri içerecek düzeyde gelişmiş bir yapı sunabilir. Buna göre döngü (loop), yordam (procedure) ve (işlev) gibi konuları içeren SQL aytışları bulunur. Örneğin PL/SQL dili Oracle veritabanının kullandığı dildir. Öteki veritabanları da, örneğin Microsoft SQL Server ve IBM DB2 da benzer dilleri içerirler. Kimisinin özel bir adı vardır. Örneğin Microsoft kurumunun gelişmiş SQL dili T-SQL adını alır. Kimisi özel bir ad vermez ve SQL olarak adlandırmayı sürdürür.

İleri SQL Konuları

SQL dilinde temel tablo / çizelge (table) yapısı dışında görünüm (view), tetik (triger) gibi gelişmiş yapılar da bulunur. Ayrıca kısıt (constraint), dizin (index), birincil açar (primary key) ve yadırgı açar (forign key) ile ilgili bir çok konu bulunmaktadır. Bunların bir kesimi ölçün bir biçimde, her veritabanında aynı biçimde çalışırken kimisinde küçük ayrımlar olabilir.
Gelişimiş SQL özellikle herkesçe bilinmek durumunda değildir. Özellikle bir izlendirme diliyle çalışan geliştiriciler karmaşık işlemleri kendi dillerinde gerçekleştirir. Başka bir deyişle kimi kişiler veritabanlarını yalnızca veri sakalamak ve erişmek için kullanılırken kimi kişiler de bir geliştirme ortamı olarak kullanmaktadır.

Nesne-İlişkisel Eşleme (Object-Relational Mapping - ORM)

Kimi durumlarda SQL dilini doğrudan kullanmadan ilişkisel veritabanlarıyla çalışmak olanaklıdır. Bu amaçla bir çok izlendirme dili (programming language) nesneler için doğrudan veritabanına yazma ve okuma desteği içermektedir. Bunların genel adı nesne-İlişkisel eşleme (object-relational mapping - ORM) olarak verilmiştir. Buna göre geliştirici her nesne (object), daha doğru bir deyişle sınıf (class) için veritabanına saklamak için gerekli bilgileri verir. Buna eşleme adı verilir. Ve kullanılan çatı (framework) bu verilen eşlemeye göre nesnelere yönelik işlemleri SQL diline çevirerek veritabanıyla çalışır. Geliştiricinin SQL kullanmasına gerek kalmaz. Öte yandan eşleme (mapping) yapmak için de veritabanının temel kavramlarını bilmek gerektiği için SQL, doğrudan kullanılmasa da bilinmelidir. Bunun dışında, ORM tekniğinin geçerli olmadığı bir çok durumda, örneğin yazanaklama (reporting) konularında SQL kullanmak gereklidir.

Veritabanı Çözümleme (Analysis), Tasarım (Design), Taslamlama (Modelling)

İlişkisel veritabanlarının temel çalışma biçimlerini öğrendikten sonra kullanılabilir uygulamalar geliştirmek için gerçek yaşamdaki verilerin veritabanında nasıl tutlacağının belirlenmesi gerekir. Bir kurumun ya da bir kişiler öbeğinin nasıl çalıştığının anlaşılması işlemine iş çözümleme (business analysis) adı verilir. Bu işlemin veritabanıyla ilgili olan kesimine de veritabanı çözümleme (database analysis) denir. Bu sözcükten veritabanı için çözümleme anlamı çıkarılması gerekir. Çünkü var olan veritabanın çözümlenmesi değil veritabanı oluşturmak için çözümleme anlamı taşır. Ancak çoğu kez, daha önce yapılmış durumda olan veritabanlarının çözümlemesi de bu kapsamda değerlendirilir.
Çözümleme süreci bittikten sonra veritabanının nasıl oluşturulacağının belirlenmesine veritabanı tasarımı (database design) adı verilir. Buna göre tablo /çizelge (table) birimlerinin ne olacağı, bunlarda hangi adda ve türde sütun / dikeç (column) olacağının belirlenmesi sürecedir. Bu işlem varlık (entity) ve ilişki (relation) yapısının belirlenmesini içerdiğinden genellikle entity-varlık çizeneği (entity-relation diagram) adı verilen görsel araçlarla belirlenir. UML adı verilen yazılım tasarımı yapısının veritabanı ile ilgili olan kesimleri de bu anlamda veritabanı tasarımı olarak kullanılır. Net olarak veritabanının belirlenmesi sürecine veritanı taslamlama (database modelling) adı verilmektedir. Buna göre veritabanı tasarımı tüm süreci anlatırken, veritabanı taslamlama varlık ve ilişkilerin net olarak ortaya konduğu son aşama olarak görülür.
Detaylı bilgi için: Tıklayınız
tekzaf tarafından 15.10.2018 tarihinde eklenmiş/güncellenmiştir.

Bu Sayfayı Paylaş:

Fibiler Üyelerinin Yorumları


Tüm üyeler içeriklere yorum ekleyerek katkıda bulunabilir : Yorum Gir

Misafir Yorumları




Bu Sayfayı Paylaş:

İletişim/Bize Yazın   mh@fibiler.com   Google+   Facebook   Twitter   fibiler@googlegroups.com
Her Hakkı Saklıdır
Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir.
Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir