Veritabanı İngilizcesi: 100 Temel Terim ve Anlamları
Veritabanı işleri İngilizce yürür: PostgreSQL, MySQL, SQL Server, Oracle ya da MongoDB kullanın, SQL anahtar kelimeleri, hata mesajları, yürütme planları, üretici dokümantasyonu ve izleme panelleri hep aynı terimleri kullanır. Bu terimleri bilmek, geliştiricilerin ve veritabanı yöneticilerinin dokümantasyonu ve sorgu planlarını hızla okumasını, şema değişikliklerini ve kesintileri uluslararası ekiplerle konuşabilmesini ve teknik mülakatlarda soruları rahatça yanıtlayabilmesini sağlar.
- 100 terim
- 10 konu
- 47 temel terim
- 200 örnek cümle
Veritabanı Temelleri
Programların ve kişilerin bilgiyi hızla bulabilmesi, ekleyebilmesi, değiştirebilmesi ve silebilmesi için bilgisayarda düzenli biçimde saklanan veri topluluğu.
Veriyi satır ve sütunlardan oluşan tablolarda tutan, tabloları anahtarlar aracılığıyla birbirine bağlayan veritabanı türü. Veri genellikle SQL ile yönetilir.
Database management system, yani veritabanı yönetim sistemi: veriyi saklayan, sorguları çalıştıran, erişimi denetleyen ve verinin güvenliğini sağlayan yazılım; PostgreSQL ya da Oracle gibi.
Object-relational mapping, yani nesne-ilişkisel eşleme: geliştiricilerin veritabanı satırlarıyla kendi programlama dillerindeki nesneler gibi çalışmasını sağlayan ve SQL'i onlar yerine üreten kütüphane.
Create, Read, Update, Delete: saklanan veri üzerindeki dört temel işlem; SQL'deki INSERT, SELECT, UPDATE ve DELETE komutlarına karşılık gelir.
Birçok sistemden geçmiş verileri toplayan, küçük güncellemelerden çok büyük okuma sorguları için tasarlanmış, raporlama ve analize yönelik merkezi veritabanı.
Online transaction processing, yani çevrimiçi işlem işleme: sipariş vermek ya da profil güncellemek gibi kullanıcılardan gelen çok sayıda küçük ve hızlı okuma-yazma işleminden oluşan veritabanı iş yükü.
Tablolar, Şemalar ve Veritabanı Nesneleri
İlişkisel veritabanında tek bir tür nesneye ait veriyi satır ve sütunlar halinde tutan yapı; örneğin tüm müşteriler ya da tüm siparişler.
Bir tablonun tek bir öğeye, örneğin bir müşteriye ya da bir siparişe ait bütün değerleri tutan yatay çizgisi.
Bir tablonun adı ve veri tipi olan dikey bölümü; her satır için aynı türden bir bilgiyi, örneğin e-posta ya da oluşturulma tarihini tutar.
Bir veritabanının yapısı: tabloları, sütunları, veri tipleri, anahtarları ve ilişkileri. Bazı ürünlerde veritabanı içindeki tabloları gruplayan adlandırılmış bir alan anlamına da gelir.
Tek bir öğeye, örneğin bir müşteriye ya da bir faturaya ait verinin tamamı; ilişkisel bir tabloda satırla aynı şeydir.
Bir sütunun tutabileceği değerin türü; tam sayı, metin, tarih ya da doğru/yanlış değeri gibi. Neyin saklanabileceğini ve ne kadar yer kaplayacağını belirler.
Bir değerin eksik ya da bilinmediğini gösteren özel işaret. Sıfırla ya da boş metinle aynı şey değildir.
Yeni bir tablo oluşturan SQL komutu; tablonun adını, sütunlarını ve veri tiplerini, birincil anahtar gibi kısıtlarını tanımlar.
Var olan bir tablonun yapısını değiştiren SQL komutu; örneğin sütun eklemek, yeniden adlandırmak ya da silmek veya kısıt eklemek için kullanılır.
Tablo gibi kullanılabilen, kaydedilmiş bir SELECT sorgusu. Genellikle kendi verisini saklamaz ve her seferinde sorgunun güncel sonucunu gösterir.
Veritabanının içinde saklanan, parametre alabilen ve tek bir çağrıyla tekrar tekrar çalıştırılabilen adlandırılmış SQL kod bloğu.
Yeni bir satır o sütun için değer verilmeden eklendiğinde sütuna otomatik olarak atanan değer; 0, 'pending' ya da o anki zaman gibi.
Bir tabloda ekleme, güncelleme ya da silme gibi belirli bir olay gerçekleştiğinde otomatik olarak çalışan, veritabanında saklanan kod parçası.
Veritabanı şemasını kontrollü biçimde değiştiren sürümlü betik ya da daha geniş anlamda verileri bir veritabanından veya sistemden diğerine taşıma projesi.
SQL Komutları ve Sorgular
Structured Query Language, yani yapılandırılmış sorgu dili: ilişkisel veritabanlarında tablo oluşturmak ve veri okumak, eklemek, değiştirmek ya da silmek için kullanılan standart dil.
Veri okumak ya da değiştirmek için veritabanına gönderilen, çoğunlukla SQL ile yazılmış istek. Fiil olarak 'query' veritabanından veri istemek, sorgulamak anlamına gelir.
Bir ya da daha fazla tablodan veri okuyup koşula uyan satırları döndüren, veritabanında hiçbir şeyi değiştirmeyen SQL komutu.
Bir SQL komutunda koşul belirleyen bölüm; yalnızca bu koşulu sağlayan satırlar okunur, güncellenir ya da silinir.
İki ya da daha fazla tablodaki satırları, müşteri ID'si gibi ortak bir sütun üzerinden bir araya getiren SQL işlemi. Fiil olarak tabloları bu şekilde birleştirmek anlamına gelir.
Bir tabloya bir ya da daha fazla yeni satır ekleyen SQL komutu; INSERT INTO ifadesinden sonra sütun adları ve değerleri yazılır.
Var olan satırlardaki değerleri değiştiren SQL komutu; yalnızca doğru satırların değişmesi için genellikle bir WHERE koşuluyla sınırlandırılır.
Bir tablodan satır silen SQL komutu. WHERE koşuluyla yalnızca koşula uyan satırları siler; koşul yoksa bütün satırları siler.
Sorgu sonucundaki satırları bir ya da daha fazla sütuna göre artan (ASC) ya da azalan (DESC) sırada dizen SQL ifadesi.
Aynı değerlere sahip satırları gruplara ayıran ve her grup için toplam, sayı ya da ortalama hesaplanmasını sağlayan SQL ifadesi.
Birçok satırı alıp bunlardan tek bir değer üreten SQL fonksiyonu; COUNT, SUM, AVG, MIN ya da MAX gibi.
Yalnızca iki tabloda da eşleşmesi olan satırları döndüren join; diğer tarafta karşılığı olmayan satırlar sonuca girmez.
Birinci (sol) tablodaki bütün satırları ve ikinci tablodaki eşleşen satırları döndüren join; eşleşme yoksa ikinci tablonun sütunları NULL gelir.
Başka bir sorgunun içine parantez içinde yazılan ve sonucu dıştaki sorgu tarafından, örneğin filtrelenecek değerlerin listesi olarak kullanılan sorgu.
GROUP BY çalıştıktan sonra grupları filtreleyen SQL bölümü; genellikle COUNT ya da SUM gibi bir toplama fonksiyonunun sonucunu kullanır.
Sonuçtaki tekrar eden satırları çıkaran SELECT biçimi; böylece döndürülen değerlerin her birleşimi yalnızca bir kez görünür.
Sorgu içinde bir tabloya ya da sütuna genellikle AS anahtar kelimesiyle verilen geçici kısa ad; sorguyu kısaltmak ya da çıktıyı daha anlaşılır hale getirmek için kullanılır.
Bir satır henüz yoksa eklemek, zaten varsa güncellemek işlemini tek adımda yapmak. Kelime 'update' ve 'insert' sözcüklerinin birleşimidir.
Common table expression, yani ortak tablo ifadesi: bir sorgunun başında WITH ile tanımlanan, ana sorgunun ardından tablo gibi kullanabildiği adlandırılmış geçici sonuç.
Birbiriyle ilişkili bir satır kümesi üzerinden yürüyen toplam ya da sıralama gibi bir değer hesaplayan ama her satırı yine ayrı ayrı döndüren SQL fonksiyonu.
İki ya da daha fazla SELECT sorgusunun sonuçlarını alt alta ekleyerek tek bir sonuçta birleştiren ve tekrar eden satırları çıkaran SQL operatörü.
TRUNCATE TABLE komutuyla bir tablodaki bütün satırları tek seferde silmek; tablo ve yapısı korunur ve satırları tek tek silmekten çok daha hızlıdır.
Data definition language, yani veri tanımlama dili: CREATE, ALTER ve DROP gibi veritabanı nesnelerini oluşturan, değiştiren ve kaldıran SQL komutları.
Data manipulation language, yani veri işleme dili: tabloların içindeki veriyle çalışan SQL komutları; başlıcaları INSERT, UPDATE, DELETE ve çoğu zaman SELECT'tir.
Anahtarlar ve Kısıtlar
Bir tablodaki her satırı benzersiz biçimde tanımlayan sütun ya da sütun grubu. Boş bırakılamaz ve iki satır aynı değere sahip olamaz.
Bir tablodaki, başka bir tablonun birincil anahtarına işaret eden sütun. İki tabloyu birbirine bağlar ve var olmayan satırlara referans kaydedilmesini engeller.
Bir tablo ya da sütun üzerinde tanımlanan, veritabanının otomatik olarak uyguladığı ve kuralı bozacak her veriyi reddettiği kural.
Bir sütunda ya da sütun grubunda iki satırın aynı değere sahip olmasını engelleyen kural; örneğin aynı e-posta adresine sahip iki kullanıcı olmasını önler.
Yeni bir satır eklendiğinde değeri veritabanı tarafından sıradaki sayıyla otomatik olarak doldurulan sayısal sütunu tanımlar.
Bir satırı ancak birlikte kullanıldığında tanımlayan iki ya da daha fazla sütundan oluşan anahtar; sipariş kalemleri tablosundaki sipariş ID'si ile ürün ID'sinin birlikte kullanılması gibi.
Yalnızca her satırı tanımlamak için oluşturulan, iş açısından hiçbir anlam taşımayan yapay anahtar; otomatik artan bir sayı ya da UUID gibi.
Tablolar arasındaki her referansın gerçekten var olan bir satırı göstermesi gerektiği kuralı; böylece var olmayan müşterilere ait siparişler oluşmaz.
Bir silme ya da güncelleme işleminin üst satırdan, yabancı anahtarla ona bağlı bütün alt satırlara otomatik olarak yansıması.
Veri Modelleme ve Normalizasyon
Her bilginin yalnızca tek bir yerde saklanması için tabloları düzenleme süreci; tekrar eden veriyi azaltır ve güncelleme hatalarını önler.
Bir veritabanı tasarımını gösteren çizim; varlıkları (genellikle tabloları), özelliklerini ve aralarındaki bire-çok gibi ilişkileri gösterir.
Birinci tablodaki bir satırın ikinci tablodaki birçok satırla bağlantılı olabildiği, ama bu satırların her birinin yalnızca tek bir satıra ait olduğu ilişki; müşteri ve siparişleri gibi.
Bir tablodaki birçok satırın diğer tablodaki birçok satırla ilişkili olabildiği bağlantı; öğrenciler ve dersler gibi. Eşleşmeleri saklamak için arada üçüncü bir tablo gerekir.
Okumayı hızlandırmak için bazı verileri bilerek birden fazla yerde saklamak ya da tabloları birleştirmek; kopyaları doğru tutmak için daha fazla çaba gerektirmeyi göze almak.
Tablo tasarımı için tanımlanmış bir dizi kuraldan biri (1NF, 2NF, 3NF ve daha üstü); her düzey belirli bir tür tekrar eden ya da yanlış yerde duran veriyi ortadan kaldırır.
Ya tablolar arasındaki ilişkinin türü (bire-bir, bire-çok, çoka-çok) ya da bir sütundaki farklı değerlerin sayısı.
İndeksler ve Sorgu Performansı
Bir ya da daha fazla sütun üzerine kurulan, veritabanının bütün tabloyu okumadan satırları hızla bulmasını sağlayan ek veri yapısı; kitabın sonundaki dizine benzer.
Veritabanının bir sorguyu çalıştırmak için seçtiği adım adım strateji; hangi indeksleri kullandığını, tabloları nasıl birleştirdiğini ve kaç satır beklediğini gösterir.
Bir sorguya ve tablo istatistiklerine bakarak onu çalıştırmanın en ucuz yolunu seçen ve yürütme planını üreten veritabanı motoru bileşeni.
Bir tablonun satırlarının fiziksel olarak hangi sırayla saklanacağını belirleyen indeks; bu yüzden bir tabloda yalnızca bir tane olabilir, diğer indeksler kümelenmemiş (non-clustered) indekslerdir.
Bir sorgunun ihtiyaç duyduğu satırları indeks aracılığıyla doğrudan bulmak yerine tablodaki bütün satırları okumak.
Tamamlanması belirlenen bir süre sınırından uzun süren, uygulamayı yavaşlatan ve veritabanı kaynaklarını tüketen sorgu.
Uygulamanın her istek için yeni ve yavaş bir bağlantı açmak yerine hazır tuttuğu ve yeniden kullandığı açık veritabanı bağlantıları kümesi.
Büyük bir tabloyu tarih aralığı ya da bölge gibi bir kurala göre partition denen daha küçük parçalara bölmek; sorgular açısından tablo yine tek bir tablo gibi görünür.
Sık kullanılan verilerin ya da sorgu sonuçlarının kopyalarını tutan ve bunların veritabanına yeniden sorulmadan döndürülmesini sağlayan hızlı depolama katmanı.
Yavaş sorguların yürütme planlarını inceleyip ardından indeks ekleyerek, SQL'i yeniden yazarak ya da veritabanı ayarlarını değiştirerek onları hızlandırma çalışması.
İşlemler ve Eşzamanlılık
Tek bir bütün olarak ele alınan veritabanı işlemleri grubu: ya hepsi birlikte başarılı olur ya da hiçbiri uygulanmaz.
Bir transaction'ı bitirip yaptığı bütün değişiklikleri kalıcı hale getirmek; böylece değişiklikleri diğer oturumlar görebilir ve bir çökme sonrasında da korunur.
Bir transaction'ı iptal ederek yaptığı bütün değişiklikleri geri almak ve veriyi transaction başlamadan önceki haline döndürmek.
Atomicity (bölünmezlik), Consistency (tutarlılık), Isolation (yalıtım), Durability (kalıcılık): hatalara, çökmelere ve aynı anda çok sayıda kullanıcıya rağmen transaction'ları güvenilir kılan dört güvence.
Bir transaction'ın diğer transaction'ların değişikliklerinden ne kadarını görebileceğini belirleyen ayar; veri güvenliği ile hız ve eşzamanlılık arasında bir denge kurar.
Veritabanının bir satıra, sayfaya ya da tabloya koyduğu, mevcut transaction bitene kadar diğer transaction'ların orayı değiştirmesini, bazen de okumasını engelleyen işaret.
İki ya da daha fazla transaction'ın her birinin diğerinin tuttuğu kilidi beklediği, veritabanı birini iptal edene kadar hiçbirinin ilerleyemediği durum.
NoSQL Veritabanları
Klasik tablo ve SQL modelini kullanmayan, veriyi bunun yerine doküman, anahtar-değer çifti, geniş sütun ya da graf olarak saklayan geniş veritabanı ailesi.
Her öğeyi genellikle JSON benzeri biçimde, kendi içinde bütün bir doküman olarak saklayan NoSQL veritabanı; ilişkili veriler sabit tablolar olmadan bir arada tutulabilir.
Her değeri benzersiz bir anahtar altında saklayan ve o anahtarla çok hızlı biçimde geri bulan, en basit NoSQL veritabanı türü.
Yeni bir değişiklik yapılmazsa verinin bütün kopyalarının kısa bir süre sonra aynı hale geleceği güvencesi; ancak okumalar kısa bir süre eski değerleri döndürebilir.
Bir ağ arızası dağıtık bir veritabanını ikiye böldüğünde sistemin tutarlılık (her yerde aynı veri) ile erişilebilirlik (her zaman yanıt verme) arasında seçim yapmak zorunda olduğu fikri.
Veriyi ilişkilerle birbirine bağlanan düğümler olarak saklayan NoSQL veritabanı; 'arkadaşlarımın arkadaşları' gibi bağlantıları hızla izlemeyi sağlar.
MongoDB gibi doküman veritabanlarında birlikte saklanan doküman grubu; ilişkisel veritabanındaki tabloya benzer.
Verisini disk yerine ağırlıklı olarak RAM'de tutan ve bu sayede okuma ve yazma işlemlerini son derece hızlı yapan veritabanı.
Yedekleme, Replikasyon ve Ölçekleme
Bir arıza, hata ya da saldırıdan sonra veriyi geri getirebilmek için veritabanının belirli bir andaki kopyası.
Bir sunucudaki her değişikliği diğerlerine göndererek aynı veritabanının kopyalarını birden fazla sunucuda tutmak; güvenlik ve yük paylaşımı için yapılır.
Bir veritabanını yedekten geri getirmek; ya veri kaybını gidermek ya da başka bir sunucuda kopyasını oluşturmak için yapılır.
Bir yedeğin üzerine kaydedilmiş değişiklik loglarını yeniden uygulayarak veritabanını seçilen bir andaki, örneğin hatalı bir DELETE'ten bir dakika önceki haline döndürmek.
Ana sunucudan değişiklikleri alan ve yalnızca okuma sorguları için kullanılan veritabanı kopyası; birincil sunucunun yükünü hafifletir.
Arızalanan birincil veritabanı sunucusunun işini, uygulamanın çalışmaya devam edebilmesi için bekleme sunucusuna ya da replikaya aktarmak.
Büyük bir veri kümesini, her biri satırların farklı bir bölümünü tutan birden fazla veritabanı sunucusuna dağıtmak; böylece sistem tek bir makinenin sınırlarını aşabilir.
Bir veritabanı sisteminin bir sunucu, disk ya da veri merkezi arızalansa bile çok az kesintiyle çalışmaya devam edecek şekilde tasarlanması.
Bir veritabanının yapısını ve verisini SQL komutları ya da özel bir dışa aktarım biçimi olarak içeren ve başka bir veritabanına yüklenebilen dosya.
Yönetim ve Güvenlik
Database administrator, yani veritabanı yöneticisi: bir şirketin veritabanlarını kurmak, güvenliğini sağlamak, yedeklemek, performansını ayarlamak ve ayakta tutmaktan sorumlu kişi.
Bir veritabanı kullanıcısının ya da rolünün bir tabloyu okumak, satır eklemek veya yeni nesne oluşturmak gibi belirli bir işlemi yapmasına izin veren izin.
Birinin bir giriş alanına SQL kodu yerleştirerek uygulamanın bu kodu çalıştırmasını sağladığı ve böylece veriyi okuyup değiştirebildiği ya da silebildiği saldırı.
SQL'deki GRANT komutuyla bir veritabanı kullanıcısına ya da rolüne bir işlemi yapma izni vermek; REVOKE ise bu izni geri alır.
Birçok kullanıcıya aynı anda verilebilen, read_only ya da app_writer gibi adlandırılmış veritabanı yetkileri kümesi; yetki yönetimini kolaylaştırır.
Mini test: bu terimleri biliyor musun?
Bu sözlükten 10 soru. Her terimin doğru Türkçe karşılığını seç, puanını gör.
Veritabanı İngilizcesi nasıl öğrenilir?
- Her hafta alandan gerçek metinler okuyun: PostgreSQL, MySQL ya da SQL Server'ın resmi dokümantasyonu, sürüm notları, Stack Overflow'daki çok oy almış cevaplar ve veritabanı kesintileri ile taşıma projeleri üzerine yazılmış mühendislik blog yazıları.
- SQL'i İngilizce bir cümle gibi sesli okuyun. "SELECT name FROM customers WHERE city = 'Izmir' ORDER BY name" neredeyse düz bir cümledir; sesli söylemek hem anahtar kelimeleri hem de etrafındaki dil bilgisini akılda tutmayı kolaylaştırır.
- Her ismi birlikte kullanıldığı fiillerle öğrenin: 'run a query', 'create/drop an index', 'take a backup', 'restore a database', 'commit/roll back a transaction', 'grant a privilege to a user'.
- Telaffuza erkenden çalışın: SQL ya harf harf 'es-kyu-el' ya da 'sikuıl' diye okunur; schema 'SKİ-ma', cache 'keş', query 'KUİ-ri' diye söylenir; NULL ise 'nal' gibi okunur.
- Kolayca karıştırılan çiftlerin listesini tutun: DELETE, TRUNCATE ve DROP; WHERE ve HAVING; UNION ve UNION ALL; yedek (backup) ve replika; primary key ve unique key.
Sıkça sorulan sorular
Veritabanı ve SQL İngilizcesini nasıl öğrenebilirim?
Alandan gerçek metinler okuyun ve kelimelerin birlikte nasıl kullanıldığına dikkat edin: resmi veritabanı dokümantasyonu, hata mesajları, yürütme planları, Stack Overflow cevapları ve veritabanı mühendislerinin blog yazıları. Her terimi alışılmış fiilleriyle birlikte öğrenin, sonra hemen kendi işinizde kullanın: tablo ve sütunlara anlaşılır İngilizce adlar verin; migration açıklamalarını, ticket yorumlarını ve kod inceleme notlarını İngilizce yazın.
Önce hangi veritabanı terimlerini öğrenmeliyim?
İlk gün karşılaşacağınız kelimelerle başlayın: database, table, row, column, query, primary key, foreign key, index, schema, transaction, NULL ve temel SQL komutları SELECT, INSERT, UPDATE, DELETE. Ardından join'lere, gruplamaya, normalizasyona, yürütme planlarına, yedeklemeye ve replikasyona, daha sonra da NoSQL ve güvenlik terimlerine geçin. Bu sözlük de aynı sırayı izler.
"Es-kyu-el" mi denir, "sikuıl" mi?
İkisi de doğrudur ve ikisi de yaygındır. Dil 1970'lerde IBM'de ilk olarak SEQUEL adıyla geliştirildiği için birçok kişi hala 'sikuıl' der. Bazı ürünlerin tercih ettiği bir okunuş vardır: MySQL resmi olarak 'may-es-kyu-el' diye okunur, Microsoft SQL Server için ise çoğu kişi 'sikuıl server' der. Birini seçip tutarlı biçimde kullanın; hangisini seçerseniz seçin kimse sizi düzeltmez.
İş yerinde Türkçe terimi mi, İngilizcesini mi kullanmalıyım?
Türk veritabanı ekipleri ikisini karıştırarak kullanır. 'Tablo', 'sorgu', 'indeks', 'yedek' ve 'şema' gibi kelimeler tamamen Türkçeleşmiştir; bazıları ise genellikle Türkçe eklerle İngilizce kalır: 'join'lemek', 'commit etmek', 'transaction açmak', 'deadlock'a düşmek'. Üniversite dersleri ve resmi belgeler 'birincil anahtar', 'yabancı anahtar', 'saklı yordam' gibi terimleri tercih eder. İki biçimi de bilmek hem ders kitabını hem de ekip toplantısını aynı rahatlıkla takip etmenizi sağlar.
MySQL, PostgreSQL, SQL Server ve Oracle aynı terimleri mi kullanır?
Temel terimler SQL standardından gelir; bu yüzden tablo, anahtar, indeks, join ve transaction her yerde aynı anlama gelir. Ayrıntılar farklıdır: otomatik numaralanan bir sütun MySQL'de AUTO_INCREMENT, SQL Server'da IDENTITY, PostgreSQL'de SERIAL ya da identity sütunu olarak geçer; her ürünün de kendi SQL lehçesi vardır, örneğin SQL Server için T-SQL, Oracle için PL/SQL. Önce genel terimi, sonra kullandığınız ürünün verdiği adı öğrenin.
İlgili alanlar
Seviyene uygun okumayla pekiştir
Yeni kelimelerin kalıcı olmasının en hızlı yolu seviyene uygun metin okumaktır. Seviyene göre ücretsiz İngilizce kitaplar:
