You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Data-Science-For-Beginners/translations/tr/2-Working-With-Data/05-relational-databases
localizeflow[bot] 7e49551f49
chore(i18n): sync translations with latest source changes (chunk 1/1, 213 changes)
2 months ago
..
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 213 changes) 2 months ago
assignment.md chore(i18n): sync translations with latest source changes (chunk 1/1, 213 changes) 2 months ago

README.md

Veri ile Çalışmak: İlişkisel Veritabanları

 Sketchnote by (@sketchthedocs)
Veri ile Çalışmak: İlişkisel Veritabanları - Sketchnote by @nitya

Geçmişte bilgileri depolamak için bir elektronik tablo kullandığınız olasılığı yüksek. Satırlar ve sütunlardan oluşan bir setiniz vardı; satırlar bilgiyi (veya veriyi) içerirken, sütunlar bilgiyi tanımlıyordu (bazen meta veri olarak adlandırılır). İlişkisel veritabanı, tablolar içindeki sütunlar ve satırlar temel prensibine dayanır ve bilgiyi birden çok tabloya yaymanıza olanak tanır. Bu, daha karmaşık verilerle çalışmanıza, çoğaltmayı önlemenize ve veriyi keşfetme şeklinizde esneklik sağlamanıza olanak tanır. İlişkisel veritabanı kavramlarını keşfedelim.

Ön ders sınavı

Her şey tablolarla başlar

İlişkisel veritabanının temelinde tablolar vardır. Elektronik tabloda olduğu gibi, bir tablo sütunlar ve satırlardan oluşan bir koleksiyondur. Satır, üzerinde çalışmak istediğimiz veri veya bilgiyi içerir; örneğin bir şehrin adı veya yağış miktarı gibi. Sütunlar ise depoladıkları veriyi tanımlar.

Keşfimize şehirler hakkında bilgi depolamak için bir tablo oluşturarak başlayalım. Şehirlerin adı ve ülkesi ile başlayabiliriz. Bunu aşağıdaki gibi bir tabloda depolayabilirsiniz:

Şehir Ülke
Tokyo Japonya
Atlanta Amerika Birleşik Devletleri
Auckland Yeni Zelanda

şehir, ülke ve nüfus sütun adlarının depolanan veriyi tanımladığını ve her satırın bir şehir hakkında bilgi içerdiğini fark edin.

Tek tablo yaklaşımının eksiklikleri

Yukarıdaki tablo size oldukça tanıdık gelebilir. Gelişmekte olan veritabanımıza yıllık yağış miktarını (milimetre cinsinden) ekleyelim. 2018, 2019 ve 2020 yıllarına odaklanacağız. Tokyo için eklersek şöyle görünebilir:

Şehir Ülke Yıl Miktar
Tokyo Japonya 2020 1690
Tokyo Japonya 2019 1874
Tokyo Japonya 2018 1445

Tablomuzda ne fark ettiniz? Şehir adı ve ülke bilgisini tekrar tekrar çoğalttığımızı fark etmiş olabilirsiniz. Bu oldukça fazla depolama alanı kaplayabilir ve birden çok kopyaya sahip olmak büyük ölçüde gereksizdir. Sonuçta, Tokyo'nun ilgilendiğimiz tek bir adı vardır.

Tamam, başka bir şey deneyelim. Her yıl için yeni sütunlar ekleyelim:

Şehir Ülke 2018 2019 2020
Tokyo Japonya 1445 1874 1690
Atlanta Amerika Birleşik Devletleri 1779 1111 1683
Auckland Yeni Zelanda 1386 942 1176

Bu, satır çoğaltmayı önlerken birkaç başka zorluk da getirir. Her yeni yıl için tablonun yapısını değiştirmemiz gerekir. Ayrıca, verilerimiz büyüdükçe yılların sütun olarak olması değerleri almak ve hesaplamak için işleri zorlaştırır.

İşte bu yüzden birden çok tabloya ve ilişkilere ihtiyacımız var. Verilerimizi parçalara ayırarak çoğaltmayı önleyebilir ve verilerle çalışma şeklimizde daha fazla esneklik sağlayabiliriz.

İlişki kavramları

Verilerimize dönelim ve nasıl bölmek istediğimizi belirleyelim. Şehirlerin adı ve ülkesini depolamak istediğimizi biliyoruz, bu yüzden bu muhtemelen en iyi tek bir tabloda olur.

Şehir Ülke
Tokyo Japonya
Atlanta Amerika Birleşik Devletleri
Auckland Yeni Zelanda

Ancak bir sonraki tabloyu oluşturmadan önce, her şehri nasıl referans göstereceğimizi bulmamız gerekiyor. Bir tür tanımlayıcıya, kimliğe veya (teknik veritabanı terimleriyle) birincil anahtara ihtiyacımız var. Birincil anahtar, bir tabloda belirli bir satırı tanımlamak için kullanılan bir değerdir. Bu, kendisi bir değere dayanabilir (örneğin şehir adını kullanabiliriz), ancak neredeyse her zaman bir sayı veya başka bir tanımlayıcı olmalıdır. Kimliğin asla değişmemesini isteriz çünkü bu ilişkiyi bozar. Çoğu durumda birincil anahtar veya kimlik otomatik oluşturulan bir sayı olacaktır.

Birincil anahtar genellikle PK olarak kısaltılır

şehirler

city_id Şehir Ülke
1 Tokyo Japonya
2 Atlanta Amerika Birleşik Devletleri
3 Auckland Yeni Zelanda

Bu derste "id" ve "birincil anahtar" terimlerini birbirinin yerine kullandığımızı fark edeceksiniz. Buradaki kavramlar, daha sonra keşfedeceğiniz DataFrame'ler için geçerlidir. DataFrame'ler "birincil anahtar" terimini kullanmaz, ancak benzer şekilde davranırlar.

Şehirler tablomuzu oluşturduğumuza göre, yağışı depolayalım. Şehir hakkında tam bilgiyi çoğaltmak yerine, id'yi kullanabiliriz. Ayrıca yeni oluşturulan tablonun da bir id sütununa sahip olduğundan emin olmalıyız; çünkü tüm tabloların bir id veya birincil anahtarı olmalıdır.

yağış

rainfall_id city_id Yıl Miktar
1 1 2018 1445
2 1 2019 1874
3 1 2020 1690
4 2 2018 1779
5 2 2019 1111
6 2 2020 1683
7 3 2018 1386
8 3 2019 942
9 3 2020 1176

Yeni oluşturulan yağış tablosundaki city_id sütununa dikkat edin. Bu sütun, şehirler tablosundaki ID'leri referans eden değerler içerir. Teknik ilişkisel veri terimleriyle, buna yabancı anahtar denir; başka bir tablonun birincil anahtarıdır. Bunu sadece bir referans veya işaretçi olarak düşünebilirsiniz. city_id 1 Tokyo'yu referans eder.

[!NOTE] Yabancı anahtar genellikle FK olarak kısaltılır

Veriyi alma

Verilerimizi iki tabloya ayırdık, şimdi nasıl alacağımızı merak ediyor olabilirsiniz. MySQL, SQL Server veya Oracle gibi ilişkisel bir veritabanı kullanıyorsak, Yapılandırılmış Sorgu Dili veya SQL adlı bir dili kullanabiliriz. SQL (bazen sequel olarak telaffuz edilir) ilişkisel veritabanında veri almak ve değiştirmek için kullanılan standart bir dildir.

Veri almak için SELECT komutunu kullanırsınız. Temelde, görmek istediğiniz sütunları SELECT ile seçer ve bunların bulunduğu tabloyu FROM ile belirtirsiniz. Sadece şehir isimlerini göstermek isteseydiniz, aşağıdakini kullanabilirdiniz:

SELECT city
FROM cities;

-- Output:
-- Tokyo
-- Atlanta
-- Auckland

SELECT sütunları listelediğiniz yerdir, FROM ise tabloları listelediğiniz yerdir.

[!NOTE] SQL sözdizimi büyük/küçük harfe duyarsızdır, yani select ve SELECT aynı anlama gelir. Ancak, kullandığınız veritabanı türüne bağlı olarak sütunlar ve tablolar büyük/küçük harfe duyarlı olabilir. Bu nedenle, programlamada her şeyi büyük/küçük harfe duyarlı olarak ele almak en iyi uygulamadır. SQL sorguları yazarken yaygın uygulama, anahtar kelimeleri tamamen büyük harflerle yazmaktır.

Yukarıdaki sorgu tüm şehirleri gösterecektir. Diyelim ki sadece Yeni Zelanda'daki şehirleri göstermek istiyoruz. Bir tür filtreye ihtiyacımız var. Bunun için SQL anahtar kelimesi WHERE'dır, yani "bir şey doğru olduğunda".

SELECT city
FROM cities
WHERE country = 'New Zealand';

-- Output:
-- Auckland

Veriyi birleştirme

Şimdiye kadar veriyi tek bir tablodan aldık. Şimdi hem şehirler hem de yağış tablolarından veriyi bir araya getirmek istiyoruz. Bu, onları birleştirerek yapılır. Etkili bir şekilde iki tablo arasında bir dikiş oluşturur ve her tablodan bir sütundaki değerleri eşleştirirsiniz.

Örneğimizde, yağış tablosundaki city_id sütununu şehirler tablosundaki city_id sütunu ile eşleştireceğiz. Bu, yağış değerini ilgili şehirle eşleştirecektir. Yapacağımız birleştirme türü inner join olarak adlandırılır; yani diğer tablodan hiçbir şeyle eşleşmeyen satırlar gösterilmez. Bizim durumumuzda her şehrin yağışı var, bu yüzden her şey gösterilecektir.

Tüm şehirler için 2019 yılı yağışını alalım.

Bunu adım adım yapacağız. İlk adım, dikiş için sütunları belirtmekle verileri birleştirmektir - daha önce vurgulandığı gibi city_id.

SELECT cities.city
    rainfall.amount
FROM cities
    INNER JOIN rainfall ON cities.city_id = rainfall.city_id

İstediğimiz iki sütunu ve tabloları city_id üzerinden birleştirmek istediğimizi vurguladık. Şimdi sadece 2019 yılını filtrelemek için WHERE ifadesini ekleyebiliriz.

SELECT cities.city
    rainfall.amount
FROM cities
    INNER JOIN rainfall ON cities.city_id = rainfall.city_id
WHERE rainfall.year = 2019

-- Output

-- city     | amount
-- -------- | ------
-- Tokyo    | 1874
-- Atlanta  | 1111
-- Auckland |  942

Özet

İlişkisel veritabanları, bilgiyi birden çok tabloya bölmeye ve ardından görüntüleme ve analiz için tekrar bir araya getirmeye odaklanır. Bu, hesaplamalar yapma ve veriyi başka şekillerde manipüle etme konusunda yüksek derecede esneklik sağlar. İlişkisel veritabanının temel kavramlarını ve iki tablo arasında nasıl birleştirme yapılacağını gördünüz.

🚀 Meydan Okuma

İnternette birçok ilişkisel veritabanı mevcuttur. Yukarıda öğrendiğiniz becerileri kullanarak verileri keşfedebilirsiniz.

Ders Sonrası Quiz

Ders sonrası quiz

İnceleme & Kendi Kendine Çalışma

SQL ve ilişkisel veritabanı kavramlarını keşfetmeye devam etmek için Microsoft Learn üzerinde çeşitli kaynaklar mevcuttur

Ödev

Havalimanı verilerini görüntüleme


Feragatname:
Bu belge, AI çeviri servisi Co-op Translator kullanılarak çevrilmiştir. Doğruluk için çaba gösterilse de, otomatik çevirilerin hatalar veya yanlışlıklar içerebileceğini lütfen unutmayın. Orijinal belge, kendi dilinde yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımı sonucu oluşabilecek yanlış anlamalar veya yorum hatalarından sorumlu değiliz.