Ana içeriğe geç

SQL Bir Programlama Dili midir?

SQL bir programlama dili olarak kabul edilir mi? Dikkate alınması gereken çeşitli faktörlere ve dilin ne için kullanıldığına bakıyoruz.
Sejal Jaiswal
Sejal Jaiswal

Ücretsiz Hesabınızı Oluşturun

Alıştırma and program your progress.

Google ile devam edinDevam ederek, Kullanım Koşullarımızı ve Gizlilik Politikamızı kabul etmiş ve verilerinizin ABD'de saklandığını onaylamış olursunuz.

Eğer veri ağırlıklı bir sektörde çalışıyorsanız, veritabanlarını mutlaka duymuşsunuzdur. Bir veritabanında depolanan verilere erişmenin çok yaygın bir yolu SQL’dir. Bu yazıda SQL hakkında daha fazla bilgi edineceksiniz. Ancak doğrudan SQL’de kullanılan sözdizimine ve terimlere dalmak yerine, şu soruya yanıt bulmamıza yardımcı olacak bazı temel bilgisayar bilimi kavramlarını ele alacağız: SQL bir programlama dili midir?

SQL nedir?

Önce veritabanının ne olduğunu tanımlayarak başlayalım. Basitçe söylemek gerekirse, veritabanı, yapılandırılmış verilerinizi barındıran bir depolama sistemidir. Buna ek olarak, bir veritabanı yönetim sistemi (DBMS), veritabanı ile son kullanıcıları veya programlar arasında bir arayüz görevi görür. Bu ilişki hakkında daha fazlasını DataCamp’in Database Design kursunda öğrenebilirsiniz.

En yaygın DBMS türü, yapılandırılmış verileri depoladığımız ilişkisel veritabanı yönetim sistemidir (RDBMS), yani varlıklar ve değişkenler arasındaki ilişkileri içeren veriler. Bu varlıklar ve değişkenler sütunlar ve satırlardan oluşan tablolar kümesi olarak düzenlenir. 

RDBMS’de veriler, tablo adı verilen bir veritabanı nesnesinde saklanır. Bir veritabanı genellikle birden fazla tablo içerir. Her tablo benzersiz bir adla tanımlanır ve satır ve sütunlar halinde yapılandırılmış, birbiriyle ilişkili veri girdilerinden oluşur. Bir tablodaki sütunlara alan denir ve tablonun belirli bir özelliğine ait değerleri tutar. Bir tablodaki her satıra ise kayıt denir. 

SQL, “S-Q-L” veya “sequel” olarak telaffuz edilir ve Structured Query Language’ın kısaltmasıdır. SQL, programlamada kullanılır ve SQL sorguları aracılığıyla bir RDBMS’de depolanan verileri yönetmek üzere tasarlanmıştır. 

Bir sorgu, verilerinize erişmek, onları yönetmek, değiştirmek, güncellemek, denetlemek ve düzenlemek için birlikte belirli bir görevi yerine getiren çeşitli SQL komutlarından oluşan bir ifadeden ibarettir. Bu sorgu tanımı, ‘bilgisayar programı’na epey benziyor; bu da SQL’in bir programlama dili olduğu anlamına mı geliyor? 

Bir sonraki bölümde programlama diliyle ne kastettiğimizi daha iyi anlayalım.

Programlama Dili nedir?

Bir programlama dili, önceden tanımlanmış bir kelime dağarcığı ve dilbilgisi kurallarından oluşur. Bu dil daha sonra bir bilgisayara veya bilgi işlem cihazına belirli görevleri yerine getirmesi için talimat verebilir. 

Her birinin kendine özgü özellikleri ve amaçları olan pek çok programlama dili vardır. Ancak genel olarak iki gruba ayrılabilirler: düşük seviyeli ve yüksek seviyeli programlama dilleri. 

Makine koduna veya ikiliye (1’ler ve 0’lar) daha yakın olan programlama dillerine düşük seviyeli diller denir. 

Düşük seviyeli diller, talimatları bir makinenin düşündüğü gibi yazacak şekilde yapılandırıldığından insanlar için okumaları genellikle zordur. Yine de salt 1 ve 0’lara kıyasla daha anlaşılırdırlar. 

Peki neden düşük seviyeli bir dil kullanılsın? Çünkü hızlıdırlar! Ayrıca programcıya bilgisayar donanımının nasıl çalışacağı üzerinde daha hassas kontrol sağlarlar. 

Öte yandan yüksek seviyeli diller, insanların iletişim kurma biçimine daha yakındır. Talimatlarında günlük yaşamda kullandığımız dillere yakın sözcükler kullanırlar; bu da programlamayı ve bakımı kolaylaştırır. Dezavantajı ise, bilgisayarın anlayabilmesi için makine koduna çevrilmelerinin daha uzun sürmesidir.

Ancak bilgisayarlar güçlendikçe, düşük seviyeli ve yüksek seviyeli diller arasındaki performans farkı çoğu zaman milisaniyeler düzeyindedir. Bu yüzden çoğu iş ilanında yüksek seviyeli programlama becerilerine sahip kişiler aranır.

Turing Tamlığı nedir?

Bir programlama dilinin gücünü ölçmek için bilgisayar bilimciler sıklıkla Turing tamlığı kavramını kullanır. Adını, 1936’da Turing makinesini öneren bilgisayar bilimci Alan Turing’den alır. Bu makine, hesaplama ve bilgisayarlar hakkındaki teorilerin temelini oluşturmuştur. 

Turing makinesi, mantıksal talimatları izleyen bir kişiyi taklit edecek şekilde kâğıt şerit üzerine semboller basan bir aygıttı.

Programlama dilleri, verilere erişen ve onları değiştiren biçimsel kural sistemleridir. Eğer bu kurallar Turing’in varsayımsal hesaplama makinesini simüle edebiliyorsa, bu kurallar "Turing tam" olarak adlandırılır. Turing tam bir sistemin, mümkün olan her hesabı gerçekleştirebileceği matematiksel olarak kanıtlanabilir.

Turing Makineleri ve Turing tamlığı kavramı hakkında daha fazla bilgi edinmek için Computerphile’ın bu videosunu ve devam videolarını şiddetle öneririz.

Genel Amaçlı Programlama Dili vs. Alan-Özgü Dil

SQL, önceden tanımlanmış bir anahtar sözcük kümesine sahiptir ve katı bir sözdizimini takip eder. SQL ile programlamaya başlamak için DataCamp’in Introduction to SQL kursuna göz atın; kayıt ve alan seçme ile filtrelemeden başlayıp ardından toplama fonksiyonları, sıralama ve gruplamaya geçiyoruz.

Bir programlama dilinin belirli bir kelime dağarcığına ve özgül bir sözdizimine sahip olması şeklindeki tanımı dikkate alındığında, SQL kesinlikle bir programlama dilidir. Ancak bir Genel Amaçlı Dil (GPL) değildir; aslında bir Alan-Özgü Dil (DSL)’dir. 

Alan-özgü dil, belirli bir alandaki sorunları çözmek için özel olarak oluşturulmuş bir bilgisayar dilidir ve bu alanın dışında kalan sorunları çözmesi amaçlanmaz. 

Tasarım ve uygulamada belirli hedeflerle inşa edilirler. Örneğin SQL, veritabanlarıyla çalışmak, veritabanlarını sorgulamak ve içlerinde depolanan verilerle çalışmak için özel olarak oluşturulmuştur. Yalnızca SQL kullanarak baştan sona bir uygulama geliştiremezsiniz. 

Bir başka DSL örneği, web sitelerindeki HTML’yi biçimlendirmek için kullanılan ve yaygın biçimde CSS olarak bilinen Cascading Style Sheets’tir.

DSL, alanlar genelinde geniş uygulanabilirliğe sahip olan General Purpose Language (GPL) ile tezat oluşturur. GPL’ler, ihtiyacınız olan her türlü mantıkla her tür programı yazmanıza olanak tanıyacak şekilde tasarlanmıştır. 

Bir GPL kullanarak masaüstü, mobil veya web uygulamaları dâhil her türlü uygulamayı oluşturabilirsiniz. En yaygın kullanılan GPL’lerden bazıları Python, C++, Ruby, Java ve JavaScript’tir.

Genel olarak konuşursak, DSL’ler GPL’lerden daha az güçlüdür. Ancak bunun bir getirisi vardır. Uygulama alanının dar olması nedeniyle, SQL çoğu genel amaçlı programlama diline kıyasla nispeten daha kolay öğrenilir. 

Sizi, başlangıç seviyesinden 21 saatte 5 dersle SQL uzmanlığına taşıdığımız DataCamp’in SQL Fundamentals yolunu takip etmeye davet ederiz.

Peki SQL bir Programlama Dili midir?

Daha önce tartıştığımız gibi Turing tamlığı, bir programlama dilinin gücünün bir göstergesidir. Dil ne kadar güçlüyse, gerçekleştirebileceği hesaplamalar o kadar karmaşıktır. SQL’de common table expressions (CTE) ve Pencere (Window) fonksiyonlarının kullanılmaya başlanmasıyla, SQL ile özyinelemeli ve hiyerarşik hesaplamalar yapabiliyoruz; bu da onu daha da güçlü kılıyor ve Turing tamı olarak nitelendiriyor.

Ancak, SQL Standardı’nın hiyerarşik ve özyinelemeli sorgu özelliklerini eklemesi uzun zaman aldı. Bu nedenle bazı eski, geleneksel RDBMS’ler Turing tamı sayılmayabilir.

Daha önce genel amaçlı bir programlama dilinin alan-özgü bir programlama dilinden nasıl farklı olduğunu tartıştık. İnsanlar “programlama dili” dediklerinde, çoğu zaman “genel amaçlı programlama dili”ni kastederler; bu da bazen kafa karıştırıcı olabilir. 

Dolayısıyla, programlama dilinin doğru tanımı söz konusu olduğunda, SQL, Turing tamı olan alan-özgü bir programlama dilidir. Bu da SQL’i bir programlama dili olarak nitelendirir.

SQL’in temellerini zaten bilen ve bir adım ileri gidip pencere fonksiyonlarıyla başlamak isteyenler için DataCamp’in PostgreSQl Summary Stats and Window Functions adlı interaktif kursuna göz atın. Pencere fonksiyonlarıyla, analitik ve veri mühendisliği amaçlı sorgular yazmayı öğreneceksiniz; SQL’in gizli silahı!

SQL’in Farklı Türleri

SQL’in farklı türleri veya lehçeleri olan T-SQL, PostgreSQL, MySQL vb. hakkında duymuş olabilirsiniz. Peki bu farklı SQL türleri nedir ve neden vardır? Gelin SQL’in kısa bir tarihine bakalım. 

IBM’de çalışan Britanyalı bilgisayar bilimci Edgar Frank Codd, 1970’te “A Relational Model of Data for Large Shared Data Banks” adlı bir makale yayımladı. Bu çalışma, o zamandan beri ilişkisel veritabanlarının ve ilişkisel veritabanı yönetim sistemlerinin teorik temelini oluşturan ilişkisel modeli ortaya koydu. 

Ardından, 1980’lerin sonlarında resmî bir SQL standardı oluşturma çabaları başladı. 

SQL, 1986’da American National Standards Institute (ANSI) ve 1987’de International Organization for Standardization (ISO) standardı hâline geldi. SQL standardı 1980’lerden bu yana birçok kez revize edildi; ancak standart SQL’in çekirdek özellikleri 1992’den beri istikrarlı durumdadır.

Bununla birlikte, farklı şirketlerde çalışan veritabanı uygulayıcılarının yeni sorunları çözmesi veya SQL standardında ele alınmayan mevcut sorunları aşması gerektiğinden, yeni varyasyonlar ortaya çıkmaya devam etti. Bu da neden bugün birden fazla SQL lehçesinin ortaya çıktığını ve hâlâ birlikte var olduğunu açıklar.

Günümüzde yalnızca tek bir SQL dili vardır; ancak farklı Veritabanı Yönetim Sistemleri, kendi işleyiş biçimlerine uyarlamak veya kendi işlevselliklerini eklemek için özgün SQL standardını genişletmiştir. Bunu yaparken çeşitli SQL lehçeleri ortaya çıkmıştır. 

Bu farklı lehçeler hakkında daha fazlasını, ismine de uygun olarak ‘SQL Server, PostgreSQL, MySQL... farkları neler? Nereden başlamalıyım?’ başlıklı blog yazımızda okuyabilirsiniz.

Hangi SQL lehçesiyle başlamalı?

PostgreSQL ile başlamanızı öneririz. 

PostgreSQL, SQL dilini kullanan ve genişleten güçlü, açık kaynaklı, nesne-ilişkisel bir veritabanı sistemidir.  Ayrıca en karmaşık veri iş yüklerini güvenle depolayıp ölçeklendirebilen çeşitli özelliklere sahiptir.

Bu, standart SQL’e en yakın ve yaygın olarak kullanılan bir SQL lehçesidir. PostgreSQL ile başlamak, daha sonra diğer SQL lehçelerine uyum sağlamak ve becerilerinizi diğer RDBMS’lere aktarmak için size en esnek aracı sunacaktır. 

DataCamp’in Functions for Manipulating Data in PostgreSQL kursu, doğru yönde ilerlemeniz için harika bir orta seviye interaktif derstir.

SQL ve Yordamsal Diller

SQL’in genel amaçlı bir programlama dili olmadığını biliyoruz. Ancak SQL’i yordamsal dillerle birleştirerek bazı GPL benzeri davranışları taklit edebilirsiniz. Bunu yapmak, teknik olarak SQL’i amaçlanan alanın dışında kullanmayı da mümkün kılar.

Yordamsal diller, belirli bir hesaplama çıktısına ulaşmak için bilgisayarlar tarafından tanınan programlar yazmada fonksiyonlar, koşul deyimleri ve değişkenlerin kullanılmasını özellikle içeren programlama dillerdir.

Tüm veritabanı yönetim sistemleri (DBMS), bir veya birden fazla yordamsal dil lehçesini kabul eder. Bazı örnekler şunlardır: 

Procedural Language for SQL (PL/SQL)

Bu, Oracle Corporation tarafından oluşturulan SQL için bir uzantıdır. Genel amaçlı programlama dillerine benzer şekilde, PL/SQL koşullara ve döngülere izin verir. PL/SQL ile sabitleri, değişkenleri, değişken türlerini, tetikleyicileri, prosedürleri ve fonksiyonları da tanımlayabilirsiniz.

Procedural Language/PostgreSQL (PL/pgSQL) 

Bu, açık kaynaklı PostgreSQL nesne-ilişkisel veritabanı yönetim sistemi tarafından desteklenen bir yordamsal dildir. Yukarıda açıklanan Oracle’ın PL/SQL’ine oldukça benzer olup döngü ve koşullar gibi öğeleri içerir. Kullanıcı tanımlı fonksiyonlara ve ayrıca operatörlerin devralınmasına olanak tanır. 

Transact-SQL (T-SQL)

Bu, yerel değişkenlerin bildirimine izin veren Sybase ve Microsoft’un bir programlama uzantısıdır. Ayrıca SQL standardındaki geleneksel DELETE ve UPDATE deyimlerinde değişiklikler yapmıştır. İşlem denetimi, istisna ve hata yönetimini içerir. Yaygın bir veritabanı olan Microsoft SQL Server’da kullanılır.

Bu tür uzantıların kullanımı sayesinde SQL, bir GPL’e benzer şekilde çalışabilir hâle gelir; bu da onu öğrenilmesi daha da güçlü ve hayati bir beceri yapar!

SQL’e başlayın.

Umarız sizi, SQL’in yalnızca bir programlama dili olmadığına ikna etmişizdir. Aksine, verilerinizden en iyi şekilde yararlanmanıza yardımcı olan güçlü bir programlama dilidir! 

Datacamp, çevrimiçi veri bilimi ve analitik öğrenmek için mükemmel bir platformdur. SQL’i ve inceliklerini anlamanıza yardımcı olabilecek pek çok yüksek kaliteli çevrimiçi kursumuz var. 

Introduction to SQL Server, öğrendiklerinizi pratiğe dökerek bilginizi test etme ve özgüveninizi artırma fırsatı bulacağınız interaktif derslerden biridir. Çeşitli sanatçı ve parçaların satışlarını incelemek için bir dijital medya veritabanıyla, Eurovision veri kümeleriyle çalışacak ve çeşitli veri türleri ile senaryolarını keşfetmek üzere ABD elektrik kesintilerindeki eğilimleri gözden geçireceksiniz.

İyi öğrenmeler!

Konular

İlgili