SQL nedir?
Yapılandırılmış sorgu dili (SQL), bilgileri ilişkisel bir veri tabanında depolamak ve işlemek için kullanılan bir programlama dilidir. İlişkisel bir veri tabanı, farklı veri niteliklerini ve veri değerleri arasındaki çeşitli ilişkileri temsil eden satırlar ve sütunlar ile bilgileri tablo biçiminde depolar. Veri tabanından bilgi depolamak, güncellemek, kaldırmak, aramak ve almak için SQL ifadelerini kullanabilirsiniz. Veri tabanı performansını korumak ve optimize etmek için SQL'i de kullanabilirsiniz.
SQL neden önemlidir?
Yapılandırılmış sorgu dili (SQL), her tür uygulamada sıkça kullanılan popüler bir sorgu dilidir. Veri analistleri ve geliştiriciler, farklı programlama dilleriyle iyi bütünleştiği için SQL'i öğrenir ve kullanır. Örneğin, Oracle veya MS SQL Server gibi büyük SQL veri tabanı sistemleriyle yüksek performanslı veri işleme uygulamaları oluşturmak için Java programlama diliyle SQL sorguları ekleyebilirler. SQL, ifadelerinde ortak İngilizce anahtar kelimeler kullandığı için öğrenmesi oldukça kolaydır
SQL'in Tarihçesi
SQL, 1970'lerde ilişkisel veri modeline dayanarak yaratılmıştır. Başlangıçta yapılandırılmış İngilizce sorgu dili (SEQUEL) olarak biliniyordu. Terim daha sonra SQL olarak kısaltılmıştır. Eskiden İlişkisel Yazılım olarak bilinen Oracle, ticari bir SQL ilişkisel veri tabanı yönetim sistemi sunan ilk satıcı olmuştur.
SQL sisteminin bileşenleri nelerdir?
İlişkisel veri tabanı yönetim sistemleri, verileri depolamak ve yönetmek için yapılandırılmış sorgu dili (SQL) kullanır. Sistem, birbiriyle ilgili birden çok veri tabanı tablosunu depolar. MS SQL Server, MySQL veya MS Access ilişkisel veri tabanı yönetim sistemlerine örnektir. Aşağıdakiler böyle bir sistemin bileşenleridir.
SQL tablosu
SQL tablosu, bir ilişkisel veri tabanının temel ögesidir. SQL veri tabanı tablosu satır ve sütunlardan oluşur. Veri tabanı mühendisleri, veri depolama alanını optimize etmek için birden çok veri tabanı tablosu arasında ilişkiler oluşturur.
Örneğin, veri tabanı mühendisi bir mağazadaki ürünler için bir SQL tablosu oluşturur:
Ürün kimliği |
Ürün Adı |
Renk Kimliği |
0001 |
Yatak |
Renk 1 |
0002 |
Yastık |
Renk 2 |
Ardından veri tabanı mühendisi ürün tablosunu Renk Kimliği ile renk tablosuna bağlar:
Renk Kimliği |
Renk Adı |
Renk 1 |
Mavi |
Renk 2 |
Kırmızı |
SQL ifadeleri
SQL ifadeleri veya SQL sorguları, ilişkisel veri tabanı yönetim sistemlerinin anladığı geçerli talimatlardır. Yazılım geliştiricileri, farklı SQL dil ögelerini kullanarak SQL ifadeleri oluşturur. SQL dil ögeleri tanımlayıcılar, değişkenler ve doğru bir SQL ifadesi oluşturan arama koşulları gibi bileşenlerdir.
Örneğin, aşağıdaki SQL ifadesi, 499 $ fiyatındaki A Marka Yatak'ı Yatak_tablosu adlı bir tabloda marka_adı ve maliyet adlı sütunlarla birlikte depolamak için bir SQL INSERT komutu kullanır:
INSERT INTO Yatak_tablosu (marka_adı, maliyet)
VALUES('A','499');
Depolanmış prosedürler
Depolanmış prosedürler, ilişkisel veri tabanında depolanan bir veya daha fazla SQL ifadesi topluluğudur. Yazılım geliştiricileri, verimliliği ve performansı artırmak için depolanmış prosedürleri kullanır. Örneğin, farklı uygulamalarda aynı SQL ifadesini yazmak yerine satış tablolarını güncellemek için depolanmış bir prosedür oluşturabilirler.
SQL nasıl çalışır?
Yapılandırılmış sorgu dili (SQL) uygulaması, veri tabanı sorgularını işleyen ve sonuçları döndüren bir sunucu makinesini içerir. SQL işlemi, aşağıdakiler de dâhil olmak üzere çeşitli yazılım bileşenlerinden geçer.
Ayrıştırıcı
Ayrıştırıcı, SQL ifadelerindeki bazı kelimeleri özel sembollerle sınıflandırarak veya değiştirerek başlar. Daha sonra aşağıdaki unsurlara göre ifadeyi kontrol eder:
Doğruluk
Ayrıştırıcı, SQL ifadesinin SQL semantiğine veya kurallarına uygun olduğunu ya da sorgu ifadesinin doğruluğunu sağladığını doğrular. Örneğin, ayrıştırıcı SQL komutunun bir noktalı virgülle bitip bitmediğini kontrol eder. Noktalı virgül eksikse ayrıştırıcı bir hata döndürür.
Yetkilendirme
Ayrıştırıcı ayrıca, sorguyu çalıştıran kullanıcının ilgili verileri işlemek için gerekli yetkiye sahip olduğunu doğrular. Örneğin, yalnızca yönetici kullanıcılar verileri silme hakkına sahip olabilir.
İlişkisel motor
İlişkisel motor veya sorgu işlemcisi, ilgili verileri en etkili şekilde almak, yazmak veya güncellemek için bir plan oluşturur. Örneğin, benzer sorguları denetler, önceki veri işleme yöntemlerini yeniden kullanır veya yeni bir tane oluşturur. Planı bayt kodu adı verilen SQL ifadesinin orta düzey bir temsilinde yazar. İlişkisel veri tabanları, veri tabanı aramalarını ve değişikliklerini verimli bir şekilde gerçekleştirmek için bayt kodu kullanır.
Depolama motoru
Depolama motoru veya veri tabanı motoru, bayt kodunu işleyen ve amaçlanan SQL ifadesini çalıştıran yazılım bileşenidir. Fiziksel disk depolama alanındaki veri tabanı dosyalarındaki verileri okur ve depolar. Tamamlandığında, depolama motoru sonucu talep eden uygulamaya döndürür.
SQL komutları nelerdir?
Yapılandırılmış sorgu dili (SQL) komutları, geliştiricilerin bir ilişkisel veri tabanında depolanan verileri işlemek için kullandıkları belirli anahtar kelimeler veya SQL ifadeleridir. SQL komutlarını aşağıdaki gibi kategorilere ayırabilirsiniz.
Veri tanımlama dili
Veri tanımlama dili (DDL), veri tabanı yapısını tasarlayan SQL komutlarını ifade eder. Veri tabanı mühendisleri, iş gereksinimlerine göre veri tabanı nesneleri oluşturmak ve değiştirmek için DDL kullanır. Örneğin, veri tabanı mühendisi tablolar, görünümler ve dizinler gibi veri tabanı nesneleri oluşturmak için CREATE komutunu kullanır.
Veri sorgulama dili
Veri sorgulama dili (DQL) ilişkisel veri tabanlarında depolanan verileri almaya yönelik talimatlardan oluşur. Yazılım uygulamaları, SQL tablosundaki belirli sonuçları filtrelemek ve döndürmek için SELECT komutunu kullanır.
Veri işleme dili
Veri işleme dili (DML) ifadeleri, ilişkisel bir veri tabanında yeni bilgiler yazar veya mevcut kayıtları değiştirir. Örneğin, bir uygulama veri tabanında yeni bir kayıt depolamak için INSERT komutunu kullanır.
Veri kontrol dili
Veri tabanı yöneticileri, diğer kullanıcılar için veri tabanı erişimini yönetmek veya yetkilendirmek için veri kontrol dilini (DCL) kullanır. Örneğin, belirli uygulamaların bir veya daha fazla tabloyu işlemesine izin vermek için GRANT komutunu kullanabilirler.
İşlem kontrol dili
İlişkisel motor, veri tabanı değişikliklerini otomatik olarak yapmak için işlem kontrol dilini (TCL) kullanır. Örneğin, veri tabanı hatalı bir işlemi geri almak için ROLLBACK komutunu kullanır.
SQL standartları nelerdir?
SQL standartları, yapılandırılmış sorgu dilinin (SQL) resmi olarak tanımlanmış yönergeleri kümesidir. Amerikan Ulusal Standartlar Enstitüsü (ANSI) ve Uluslararası Standardizasyon Teşkilatı (ISO) 1986'da SQL standartlarını benimsemiştir. Yazılım satıcıları, geliştiriciler için SQL veri tabanı yazılımı oluşturmak üzere ANSI SQL standartlarını kullanır.
SQL eklemesi nedir?
SQL eklemesi, veri tabanını SQL sorgularıyla kandırmayı içeren bir siber saldırıdır. Bilgisayar korsanları, SQL veri tabanındaki verileri almak, değiştirmek veya bozmak için SQL eklemesini kullanır. Örneğin, SQL eklemesi saldırısı gerçekleştirmek için gönderim formunda bir kişinin adı yerine bir SQL sorgusu doldurabilirler.
MySQL nedir?
MySQL, Oracle tarafından sunulan açık kaynaklı bir ilişkisel veri tabanı yönetim sistemidir. Geliştiriciler MySQL'i lisans ücreti ödemeden indirebilir ve kullanabilir. MySQL'i farklı işletim sistemlerine veya bulut sunucularına kurabilirler. MySQL, web uygulamaları için popüler bir veri tabanı sistemidir.
SQL ve MySQL
Yapılandırılmış sorgu dili (SQL), veri tabanı oluşturma ve işleme için standart bir dildir. MySQL, SQL sorguları kullanan bir ilişkisel veri tabanı programıdır. SQL komutları uluslararası standartlara göre tanımlanırken MySQL yazılımı sürekli yükseltmelere ve iyileştirmelere tabi tutulur.
NoSQL Nedir?
NoSQL, verileri depolamak için tablo kullanmayan, ilişkisel olmayan veri tabanlarını ifade eder. Geliştiriciler, bilgileri grafikler, belgeler ve anahtar değerler dâhil olmak üzere farklı NoSQL veri tabanı türlerinde depolar. NoSQL veri tabanları, yatay olarak ölçeklenebilir oldukları için modern uygulamalar için popülerdir. Yatay ölçeklendirme, NoSQL yazılımı çalıştıran daha fazla bilgisayar ekleyerek işleme gücünü artırmak anlamına gelir.
SQL ve NoSQL
Yapılandırılmış sorgu dili (SQL), tek tip bir veri işleme dili sağlar, ancak NoSQL uygulaması farklı teknolojilere bağlıdır. Geliştiriciler işlemsel ve analitik uygulamalar için SQL kullanırken NoSQL duyarlı, yoğun kullanımlı uygulamalar için uygundur.
SQL sunucusu nedir?
SQL Server, Microsoft'un SQL ile verileri işleyen ilişkisel veri tabanı yönetim sisteminin resmi adıdır. MS SQL Server'ın çeşitli sürümleri vardır ve her biri belirli iş yükleri ve gereksinimler için tasarlanmıştır.
AWS, SQL'i nasıl destekler?
Microsoft SQL Server on AWS, geliştiricilerin Microsoft SQL iş yüklerini AWS'de çalıştırmasına olanak tanır. SQL veri tabanı sistemi, ölçeklenebilir AWS bilgi işlem kaynaklarıyla daha iyi performans gösterir. AWS'nin 24 bölgede en geniş küresel altyapıya sahip olması nedeniyle, şirketler MS SQL on AWS'yi çalıştırarak daha yüksek hizmet erişilebilirliği elde eder. SQL Server on AWS, verilerinizi harici tehditlere karşı korumak için 230'dan fazla güvenlik, uyumluluk ve yönetişim hizmetiyle entegre olur. AWS'nin SQL'i desteklediği diğer bazı yollar şunlardır:
- Müşteriler, SQL veri tabanlarının AWS'ye taşınmasını kolaylaştırmak için Amazon Veri Tabanı Taşıma Hizmeti'ni kullanır.
- Amazon Esnek Blok Deposu (EBS), kritik öneme sahip SQL uygulamaları için yüksek performanslı blok depolama sağlar.
Hemen bir AWS hesabına kaydolarak SQL Server on AWS'yi kullanmaya başlayın.