Altbilgi içeriğine atla
Iron Academy Logo
C# Uygulaması
C# Uygulaması

Diğer Kategoriler

C# SQL Veritabanı: Tim Corey’nin Dersinden Derinlemesine Bir Bakış

[[academy-video-youtube({"vid": "6ixfTsrhPgM", "start_time": "0", "title": "C# Uygulama Baştan Sona Ders 08 - SQL Veritabanı Tasarımı", "creator": "Tim Corey", "length": "1h 08m 25s"})]]

C# uygulama geliştirme dünyasında, SQL veritabanı ile çalışmak öğrenebileceğiniz en önemli becerilerden biridir. Tim Corey'nin "C# Uygulama Başlangıçtan Bitişe Ders 08 – SQL Veritabanı Tasarımı" adlı videosunda, ilişkisel bir veritabanı tasarlama, tablolar oluşturma, ilişkiler tanımlama ve saklı prosedürler yazma sürecini anlatıyor.

Bu makalede, Tim'in dersine daha derinlemesine bakacağız ve fikirleri onun sunduğu şekliyle açıklayacağız. Bir C# uygulamasının SQL Server'a nasıl bağlandığını ve veritabanınızı doğru bir şekilde nasıl yapılandıracağınızı daha iyi anlamak istiyorsanız, Tim'in videosu mükemmel bir rehber sunuyor.

Veritabanı Tasarımına Giriş

1:00'da Tim, izleyicilere tüm scriptlerin ve dosyaların, veritabanı scriptleri dahil, paket içinde olduğunu hatırlatarak başlar. Amacın bir ders içinde tam anlamıyla bir SQL Server uzmanı olmak değil, tasarımı ve verileri yapılandırma üzerine nasıl düşündüğünüzü anlamak olduğunu vurgular. Tim, doğrudan veritabanı diyagramına geçer.

Veritabanı Diyagramını Anlamak

1:52'de Tim, takım üyeleri tablosunu vurgular ve kişinin adını veya soyadını doğrudan saklamadığını açıklar. Bunun yerine, Kişiler tablosuna geri bağlantı yapan bir Kişi ID'si saklar. Bu, bir kişinin birden fazla takıma ait olabileceği ilişkisel bir veritabanında bir bire-çok ilişki örneğidir.

Tim pratik bir örnek verir: bir kişi aynı anda birden fazla turnuvada olabilir. Bu, tekrarları önler ve birincil anahtar kullanmanın verileri etkili bir şekilde sorgulamanıza nasıl yardımcı olduğunu gösterir. Tim, çoğaltılmış verilerin zararlı olduğunu çünkü çakışan bilgilerle sonuçlandığını, örneğin tutarsız e-posta adreslerinin sonucunu açıklıyor.

Tasarım yaklaşımının tam kopya veriler yerine ID'leri kullanmak olduğunu açıklar. Bu, iyi bir SQL Server veritabanı tasarımının temelidir.

Yinelenen Sütunlardan Kaçınma

4:48'de Tim, Email2 veya Email3 gibi ayrı sütunlarda birden fazla e-posta adresi saklamaktan kaçınmanız gerektiğini neden açıkladı. Bunun yerine, Kişi ID'si ve E-posta Adresi sütunları içeren ayrı bir e-posta adresleri tablosu oluşturmanızı önerir. Bu, bir kişinin birden fazla e-posta adresine sahip olmasına izin verirken Kişiler tablosunu karmaşıklaştırmaz.

Tim, veritabanı tasarımının sadelik ile esneklik arasında bir denge olduğunu açıklar. Bu öğretici için, yalnızca bir e-posta ve bir telefon numarası saklamaya karar verir, tasarımı temiz ve pratik tutar.

SQL Server Management Studio'da Veritabanı Oluşturma

6:44'te Tim SQL Server Management Studio'ya geçer ve SQL Server 2016 Developer Edition kullandığını, bunun ücretsiz ve Enterprise Edition ile aynı özelliklere sahip olduğunu açıklar. Üretimde kullanılamayacağını ancak yerel makinede geliştirme için mükemmel olduğunu belirtir.

Tim, SQL Server veritabanı oluşturmanın iki yolunu açıklar: SSMS diyalog pencresiyle veya SQL sorgusu kullanarak. Sorgu yöntemini tercih ettiğini çünkü bunun daha hızlı olduğunu belirtir. Kullandığı komut:

create database tournaments;

Noktalı virgülün önemli olduğunu ve her SQL ifadesinin sonunda kullanılması gerektiğini açıklar. Veritabanını oluşturduktan sonra, Tim yeni veritabanının görünmesini görmek için SSMS penceresini nasıl yenileyebileceğinizi gösterir.

Tabloları Görüntüleme ve Tablo Tasarımı

12:06'da Tim, tüm tabloları script kullanarak önceden oluşturduğunu belirtir. Daha sonra SSMS'de tablo tasarımcısını nasıl açacağınızı gösterir. Tim, SQL scriptlerinin C# geliştiricileri için ürkütücü olabileceğini ve tasarımcının SQL sözdizimini ezberlemenize gerek kalmadan tabloları görsel olarak düzenlemenize yardımcı olduğunu açıklar.

Tim, Prizes tablosunu örnek olarak kullanır. Birincil anahtarı nasıl ayarlayacağınızı, veri tiplerini nasıl seçeceğinizi ve null değerlerini nasıl yöneteceğinizi açıklar. Ayrıca, birincil anahtarın SQL'in tablo depolama ve geri çağırma işlemlerini optimize etmesine yardımcı olduğunu belirtir. Birincil anahtar olmadan SQL bir "heap" oluşturur, bu da sorguları daha yavaş hale getirir.

Kendisinden Artan IDs

15:36'da Tim Kimlik Başvurusu kullanarak Kimlik sütununu otomatik olarak artırmayı nasıl sağlayacağınızı açıklar. Artış ve başlangıç değerlerini 1 olarak ayarlar. Tim, her satıra benzersiz bir tanımlayıcı verdiğini ve SQL'in verileri etkili bir şekilde sınıflandırmasına yardımcı olduğunu vurgular.

Bu yaklaşımın, C# geliştiricileri için minimum çabayla oldukça optimize edilmiş bir tasarım sunduğunu ve karmaşık ayarlama yapmadan sağlam bir SQL Server veritabanı tasarlamak isteyenler için mükemmel olduğunu belirtti.

Veri Tiplerini Anlamak

18:09'da Tim farklı SQL dize tiplerini açıklar: varchar, nvarchar ve nvarchar(max). Açıklamaları:

  • Char: karakterleri saklar

  • Var: değişken uzunluk (maksimum bir sayıya kadar)

  • N: uluslararası karakterler için Unicode desteği

Tim, nvarchar'ın daha fazla depolama alanı kullandığını ama küresel dilleri desteklediğini, varchar'ın ise yalnızca İngilizce metin için ideal olduğunu açıklar. Ayrıca, nvarchar(max)'in uygulama tarafından saklanabilecek ve daha sonra geri çağırılabilecek JSON gibi çok büyük dizeler için kullanıldığını açıklar.

Para ve Float Veri Tipleri

24:00'da Tim SQL veri tiplerini C# tipleriyle karşılaştırır. Para birimi değerleri için (C#'ta ondalık'a benzer şekilde) para birimi, yüzdeler için (çifte benzer) float kullanır. Bu, C# geliştiricilerinin SQL türlerini, kendi programlama türleriyle eşleştirmelerine yardımcı olur.

Tablo İlişkileri

25:04'te Tim, yabancı anahtarlar kullanarak ilişkileri nasıl oluşturacağınızı gösterir. İlişkiler düzenleyicisini açar ve ana tablonun gerçek ID'yi içerdiğini, yabancı tablonun ise bu ID'yi referans aldığını açıklar.

Ayrıca, ana kaydın silindiğinde ilişkili kayıtların otomatik olarak kaldırılmasını sağlayan kaskatlı silme fikrini açıklar. Tim, ID'lerin değişmez olarak kabul edilmesi gerektiği, yani oluşturulduktan sonra asla değiştirilmemesi gerektiği konusunda uyarıyor.

Yeni Bir Tablo Oluşturma

29:30'da Tim SSMS düzenleyicisi aracılığıyla yeni bir tablo oluşturmayı gösterir. Test kişi tablosunu şunlarla oluşturur:

  • Ad

  • Soyad

  • E-posta Adresi

  • Telefon Numarası

  • Çocuk Sayısı

  • Oluşturma Tarihi

Tim, Çocuk Sayısını 0 olarak ayarlamak gibi varsayılan değerleri nasıl ayarlayacağınızı ve geçerli saati ayarlamak için getdate() kullanmayı gösterir. getutcdate()'in zaman dilimlerine yayılan uygulamalar için daha iyi olduğunu açıklar.

Tablodaki Verileri Düzenleme

39:39'da Tim SSMS'de satırları doğrudan nasıl düzenleyeceğinizi gösterir. Örnek kayıtlar ekler ve başarısız eklemelerin bile ID değerlerini tükettiğini açıklar. SQL'in artış sırasını sürdürmesine ve eksik ID'ler için endişelenmemeye dair tavsiyelerde bulunur.

Temel SQL Sorguları

44:23'te Tim temel sorgu söz dizilimini öğretir:

  • SELECT * FROM tablo

  • WHERE

  • LIKE

  • ORDER BY

  • AS kullanarak sütun takma adı

SELECT * 'in öğrenme için iyi olduğunu ama gerçek uygulamalarda performans ve açıklık için sütunları belirtmeniz gerektiğini belirtir.

Saklı Prosedürler

50:33'te Tim saklı prosedürleri tanıtır. Saklı prosedürlerin veritabanı mantığına güvenli bir şekilde erişmenizi ve SQL enjeksiyon saldırılarını önlediğini açıklar. Tim, doğrudan tablo erişimi veya görünümler yerine saklı prosedürleri tercih eder çünkü daha iyi güvenlik sağlar.

Saklı bir prosedürün turnuva ID'sine göre ödülleri nasıl getireceğini gösterir. Parametreler, BEGIN ve END blokları ve NOCOUNT ON ifadesini açıklar.

Saklı Prosedürleri Çalıştırma

58:04'te Tim, soyada göre test kişilerini almak için bir saklı prosedür oluşturur ve şu şekilde çalıştırmayı gösterir:

EXEC dbo.SP_TestPerson_GetByLastName 'Corey'

Varsayılan olarak dbo şemasının kullanıldığını ve SQL Server'ın prosedür adları için büyük/küçük harf duyarlılığı olmadığını açıklar.

Son Düşünceler

Tim, videosunda, SQL veritabanı tasarımının karmaşık görünebileceğini ama temel kavramların basit olduğunu savunarak bitiriyor. İzleyicilere pratik yapmalarını ve keşfetmelerini teşvik ediyor, ve C# koduyla veritabanını nasıl bağlayacağını göstermeye başlayacağı bir sonraki dersi ön izliyor.

Hero Worlddot related to C# SQL Veritabanı: Tim Corey’nin Dersinden Derinlemesine Bir Bakış
Hero Affiliate related to C# SQL Veritabanı: Tim Corey’nin Dersinden Derinlemesine Bir Bakış

Sevdiğiniz Şeyleri Paylaşarak Daha Fazla Kazanın

.NET, C#, Java, Python veya Node.js ile çalışan geliştiriciler için içerik oluşturuyor musunuz? Uzmanlığınızı ek gelire dönüştürün!

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara