Bugün, SQL Nedir? sorusu ile verilerle çalışmak için özel olarak oluşturulmuş bir kodlama dilinin, hemen hemen her sektör için nasıl kritik bir araç halini aldığından bahsedeceğiz.
SQL Nedir?
SQL (Structured Query Language), yapılandırılmış sorgu dili anlamına gelir. Sorgu dili, veri tabanlarından belirli bilgilerin alınmasını kolaylaştırmak için tasarlanmış bir tür programlama dilidir. Bu nedenle SQL; “veri tabanlarının dili” olarak adlandırılır.
Satır ve sütunlardan oluşan bir tablo olarak tanımlayabileceğimiz veri tabanı; gerçek hayattaki değerleri tablolarda saklayarak modeller. İnternette var olan bankacılık, sosyal medya siteleri ve e-ticaret gibi tüm dinamik web siteleri veri tabanına dayalıdır.
SQL veritabanı, yapılandırılmış bir veri kümesini depolayan bir tablo koleksiyonudur.
Hem ilişkisel hem de çok boyutlu veri tabanı türleri için kullanılabilen SQL, veri tabanları üzerinde çalışılmasına, veri tabanlarının yönetilmesine ve güncellenmesine olanak tanır.
Facebook, Instagram, WhatsApp gibi şirketlerin tümü arka uç veri depolama ve veri işleme çözümleri için SQL kullanır.
SQL, kullanıcı ile veri tabanı arasında iletişim kurulmasını sağlar. Uygulamanızı geliştirmek için Java veya Kotlin gibi bir programlama dili kullanıyor olsanız da verileri veri tabanında depolamak için, bu iletişime yardımcı olacak bir tür ara yüz veya dile ihtiyacınız vardır.
SQL, IBM’in System R veri tabanına erişim yöntemi olarak 1970’lerin başında Raymond Boyce ve Donald Chamberlain tarafından oluşturulmuştur. 1986’da SQL, Amerikan Ulusal Standartlar Enstitüsü’nün (ANSI) ve 1987’de Uluslararası Standardizasyon Örgütü’nün (ISO) bir normu haline gelmiş ve veri tabanı yönetiminin temelini oluşturmuştur.
Diğer birçok kod türünden daha eski olmasına rağmen, hâlâ en yaygın uygulanan veritabanı dili olan SQL; veritabanı yönetim sistemleriyle iletişim kurmak için güçlü bir araçtır.
Günlük yaşamımızda çeşitli işlevler için kullanılan programlama dillerine kıyasla SQL’in öğrenilmesi ve kullanılması daha kolaydır.
MySQL, MS Access, Oracle, Sybase, Informix, Postgres ve SQL Server gibi tüm İlişkisel Veritabanı Yönetim Sistemleri (RDMS); standart veritabanı dili olarak SQL’i kullanır.
Yapılandırılmamış veri tabanları SQL tarafından yönetilemez.
SQL veri tabanlarında çok önemli bir rol üstlenir ancak tüm işi tek başına yapamaz. Birlikte çalıştığı unsurlar şunlardır:
- RDBMS Veritabanı Sistemi (MySQL, MS Access, Oracle, SQL Server…)
- Sunucu tarafı komut dosyası ( ASP, PHS gibi)
- HTML, CSS
- SQL Komutları
SQL Veri Tabanı Sistemleri
Bir veri tabanı sistemi, bir geliştiricinin bir kullanıcı arayüzü yardımıyla veri tabanlarıyla çalışmasına izin veren bir programdır. Veri tabanı sistemleri genellikle hazır şablonlara, oluşturuculara ve kuruculara sahiptir. Bu tür araçlar veri tabanı sistemini temizlemek gibi genel görevleri otomatikleştirir.
En yaygın kullanılanı MySQL’dir. Açık kaynaklıdır. Lisans ücreti olmadığı için küçük işletmeler ve yeni başlayanlar arasında oldukça popülerdir. MySQL, web uygulamaları için arka uç verilerini (back-end data) yönetmede SQL’in rolünü kolaylaştırmaya yardımcı olan açık kaynaklı bir çözümdür.
Bir diğer ünlü SQL veri tabanı sistemi Oracle’dır. Çeşitli sektörlerde kullanılır, ancak özellikle veri ambarlama ve çevrimiçi işlemede popülerdir.
SQL Server, Microsoft’un SQL veritabanı yönetim sistemidir. Bu veritabanı, Windows işletim sistemlerinin tüm ana sürümlerinde çalışır. Tüketici yazılımlarında ve Windows çalıştıran web sunucularında kullanılır. Geniş bir kullanıcı kitlesine sahiptir.
Dilerseniz MSSQL Express’in ücretsiz olarak sunulduğu SSD sunucu çözümleri için Turhost.com’a göz atabilirsiniz.
MySQL’in büyük rakibi olan PostgreSQL ise bir diğer ücretsiz, açık kaynaklı veri tabanı sistemidir. PostgreSQL; MacOS, Windows ve Linux gibi işletim sistemlerini destekler.
SQL Server gibi bazı veri tabanları SQL standardını büyük ölçüde değiştirerek öğrenmelerini zorlaştırır. Ancak PostgreSQL; diğer veri tabanlarına göre standart SQL sözdizimini takip etmeye daha fazla önem verir.
SQL Sistemi Nasıl Çalışır?
SQL’de sisteme bazı işlemleri gerçekleştirmesi için bazı komutlar verilir. Bu komut veya talimatlara sorgu denir. Sistem bu sorguyu girdi olarak alacak ve istenen çıktıyı verecektir.
Sorgu, üç aşamada derlendiği SQL sunucusuna ulaşır; Ayrıştırma (Sözdizimini kontrol etme), Bağlama (Sorgu anlamını kontrol etme) ve Optimizasyon (Sorgu yürütme planını oluşturma):
- SQL sorgusunun ilk aşamasında yüksek seviyeli dili düşük seviyeli dile dönüştürmemiz gerekir. Dolayısıyla, SQL sorguları bazı ilişkisel cebirsel ifadelere çevrilir. Aynı zamanda, bazı sözdizimi hataları ve RDBMS’de kullanılan ilişkiler kontrol edilir.
- Aynı sorguyu yazmanın birkaç yolu olabilir. Ancak sorgunuz, en verimli sorgu olacak şekilde yazılmalıdır. “Sorgu İyileştirici” sorguyu, verimli sorgu olacak şekilde optimize eder.
- Üçüncü adımda, en etkili sorgu yürütme planını makul bir sürede bulmak için tüm olası permütasyonlar ve kombinasyonlar oluşturulur. Sorgu ne kadar kısa sürerse o kadar iyidir. Optimize edilmiş sorgu değerlendirilir ve sonuç kullanıcılara gösterilir.
SQL Komutları
Çeşitli işlemleri gerçekleştirmek için SQL’de kullanılan bazı komutarları şu şekilde sıralayabiliriz:
- DQL – Veri Sorgulama Dili
DQL (Data Retrieval) veri tabanından veri almak için kullanılır. SQL komutu SELECT’dir.
- DDL – Veri Tanımlama Dili
SQL, bir Veri Tanımlama Dili (DDL) olarak kullanılır. Bu, bir veri tabanını oluşturabileceğiniz, yapısını karakterize edebileceğiniz, onu kullanabileceğiniz ve işiniz bittiğinde imha edebileceğiniz anlamına gelir. DDL, veri tabanı şemasının açıklamasıyla ilgilenir, veri tabanındaki nesnelerin yapısını oluşturmak ve değiştirmek için kullanılır. Bu nedenle SQL komutları; CREATE, DROP, ALTER, TRUNCATE, COMMENT, RENAME şeklindedir.
- DML – Veri İşleme Dili
DML, Veri Manipülasyon Dili anlamına gelir. Veri tabanındaki verileri saklamak, değiştirmek, silmek ve güncellemek için kullanılır. DML komutlarından bazıları INSERT, UPDATE, DELETE ve MERGE’dir.
- DCL – Veri Kontrol Dili
SQL, veri tabanınızı kötüye kullanıma karşı sağlama almanızı sağlayan bir Veri Kontrol Dili (DCL) olarak aktarılır. DCL, şema nesnelerinin bazı kullanıcılara erişimini sağlamak ve kaldırmak için kullanılır. DCL komutlarından bazıları GRANT ve REVOKE’dır.
- TCL – İşlem Kontrol Dili
“Veritabanı İşlem Yönetimi” olarak da bilinir. İşlem Yönetimi, veri tabanı ile ilgili işlemi sürdürmek, yani veri tabanının ACID özellikleri için temel kuralları takip etmek anlamına gelir. İşlemin yalnızca iki sonucu vardır; başarı veya başarısızlık. SQL komutları TRANSACTION, COMMIT, ROLLBACK, SAVEPOINT şeklindedir. DML komutları tarafından yapılan değişiklikleri yönetmek için TCL kullanılır. Dolayısıyla, DML komutları tarafından yapılan değişiklikler DCL komutları tarafından kontrol edilebilir.
SQL Ne işe Yarar?
- SQL, tablo şeklindeki verileri SQL sorguları ile sorgulama esnekliği sağlar. SQL yardımı ile veri tabanında sorgu yürüterek veri alınabilir, veri tabanına kayıt eklenebilir, veri tabanındaki kayıtlar güncellenebilir veya silinebilir.
- Kullanıcılar, SQL ile bazı belirli kullanıcılara erişim izni sağlayabilir ya da veri tabanında depolanan verilere kısıtlamalar koyabilir.
- SQL, bir veri tabanında yeni veri tabanları veya yeni tablolar oluşturulmasına olanak tanır.
- Çoğu şirket, analizleri Python gibi bir dille yapsa bile verilerin şirketin veri tabanından alınması için SQL’e ihtiyaç duyar.
SQL Veri Tabanı Kullanmanın Avantajları
SQL, onu popüler yapan ve çok talep gören birçok avantaja sahiptir. Veri tabanı ile iletişim için kullanılan güvenilir ve verimli bir dil olan SQL’in bazı avantajları şunlardır:
- SQL sayesinde büyük miktarda veri hızlı ve verimli bir şekilde alınır. Veri ekleme, silme, işleme gibi işlemler de neredeyse hiç vakit kaybetmeden gerçekleştirilir.
- Öğrenmesi ve anlaması kolaydır.
- SQL; veritabanlarının nerede oturduklarına bakılmaksızın atomikliğe, tutarlılığa, izolasyona, dayanıklılığa veya ACID’e ihtiyaç duyulan durumlar için idealdir.
- Kodlama becerisi gerektirmez. Veri alımı için çok sayıda kod satırı gerekli değildir. SELECT, INSERT INTO, UPDATE, gibi temel anahtar sözcükler kullanılır ve sözdizimsel kurallar SQL’de karmaşık değildir, bu da onu kullanıcı dostu bir dil yapar.
- Yaygın olarak benimsenen SQL, çoğu RDBMS’de ve birkaç popüler prosedürel uzantı için temel olarak kullanılır.
- İşletim sistemi gibi herhangi bir platformdan bağımsız olarak PC, sunucu, dizüstü bilgisayarlardaki programlarda kullanılabilir. Ayrıca ihtiyaca ve kullanıma göre diğer uygulamalara gömülebilir.
- Karmaşık sorgular için bile saniyeler içinde yanıt alınabilir.
- SQL akış denetimi uzantıları, prosedürel ve OOP uzantıları (hem ücretli hem de ücretsiz) için birçok seçenekle birlikte çeşitli şekillerde uygulanabilir.
- SQL; Oracle, IBM, Microsoft ve benzerlerinin bilgi tabanı çerçeveleriyle çalıştığı için esnektir.
- SQL, bir DSL olarak ANSI ve ISO uyumludur ve bireysel RDBMS ve prosedürel uzantılar için NIST sertifikasyonuna sahiptir.
SQL’in Kullanım Alanları
SQL, önemli miktarda verinin dahil olduğu hemen hemen her sektörde kullanılmaktadır. SQL’in yaygın kullanıldığı sektörlerin bazıları şunlardır:
Finans sektöründe SQL; bankacılık uygulamalarını, ödeme işlemcilerini, finansal işlemleri ve kullanıcılar hakkındaki verileri depolar ve çalıştırır. Banka veri tabanı sistemleri, kullanılan SQL kodunda ekstra güvenlik gereksinimlerine sahiptir.
Sosyal medya platformları bildiğiniz gibi çok büyük oranda veri işleme içerir. Instagram ve Snapchat gibi uygulamalar, bir kullanıcının biyografi ve konum gibi profil bilgilerini depolamak, bir kullanıcı yeni bir gönderi oluşturduğunda veya bir fotoğraf paylaştığında uygulamanın veri tabanını güncellemek ve bir kullanıcıdan diğerine gönderilen mesajları kaydetmek için SQL kullanır. Örneğin; bir Facebook hesabı oluştururken, kayıt formu ile veritabanı arasındaki iletişim SQL dilindedir.
Spotify ve Pandora gibi müzik uygulamaları da yoğun kullanımlı veri tabanları oluşturur. SQL, bu veri tabanlarında çeşitli sanatçıların parçalarının depolanmasına, kullanıcının aradığını bulmasına, kullanıcılar ve tercihlerine dair verilerin depolamasına yardımcı olur.
Mobil uygulamalar için kullanılan SQLite, SQL tarafından desteklenen gömülü bir veritabanıdır. Android geliştiricileri, verileri sunucuda tutmak yerine bir cihazda depolamaya çalışırken bunu kullanır.
Pazarlama daha fazla içgörü ve daha iyi analiz için SQL’in çok işe yaradığı bir diğer alandır. Pazarlama uzmanları için veri kraldır ancak bu verileri doğru bir şekilde almak ve analiz etmek gerekir.
Özet
Şirketlerin dijital dönüşümü benimsemeleri ve veri odaklı kuruluşlar haline gelmeleri; veri tabanları ile etkileşim için tasarlanan SQL’in önemini artırmıştır. Özetle SQL Nedir? sorusunu “bir veri tabanındaki verileri depolamak, sorgulamak ve işlemek için kullanılan veri tabanı yönetim sistemlerinin dili” şeklinde yanıtlayabiliriz.