• SQL

    SQL Ders27- Clustered Nedir Nasıl Kullanılır

    Merhaba arkadaşlar, Bu ve bundan sonraki birkaç yazımızda SQL server veri tabanı için çok önem arz eden konulara değineceğiz. Bu dersimizde Index kavramından bahsedeceğim. Indexler milyonlarca kaydın arasında aranan kaydın en kısa sürede bulmaya çalışmaktır. Bir DB üzerinde sorgularınız oldukça geç cevap veriyor ise bu yazı yol göstereceğini umuyorum. Açıkça söylemek gerekirse index mantığını büyük veritabanlarında çalışmadan mantığını öğrenemezsiniz. Bir veritabanınız var ve içinde 1.000.000 den fazla elemanın olduğunu varsayalım. İçinde bir sorgu çalıştırma için 1 2 sn gibi bekleyeceğinizi düşünebilirsiniz. Ama burada yanılıyorsunuz. Sizi o milyonlarca kaydın arasından bulup istediğiniz sonucu döndürene kadar baya bir bekletiyor. Peki büyük şirketler de bekliyor mudur? Tabi ki hayır! 70.000.000 kaydın tutulduğunu varsayarsak…

  • SQL

    SQL Ders26- Constraint Nedir ve Türleri

    Veri üzerindeki mantıksal sınırlamalara Constraint(Kısıtlayıcı) denir. Constraint, veri modellerinde bütünlük sağlamak için kullanılır. Tabloların tanımlanmasıyla beraber oluşur. Constraint’ler tablo oluştururken yani CREATE TABLE komutuyla tanımlanabilir. Tablo oluşturulmuşsa ALTER TABLE komutuyla bu işlem gerçekleşir. Constraint Türleri Primary Key Constraint Birincil anahtar kısıtlayıcı anlamındadır. Bir değerin birbirinden farklı yapıda işlemesini sağlaması amacıyla kullanırız. Her tablonun en fazla 1 adet Primary Key Constraint’i olabilir. Bir primary constraint asla NULL olamaz. Aşağıda bir tablo oluşturulurken,yaratılan primary key constraint’i gösterilmektedir. Eğer tabloyu daha önceden oluşturmuşsanız aşağıdaki kodu kullanarak primary key constraint ekleyebilirsiniz. Unique Constraint Tekil alan Constraint anlamındadır. Birincil anahtara sahip olan aynı zamanda bir kolonun içindeki verilerin tekrar etmemesini sağlamak amacıyla kullanılır. Yani aynı…

  • SQL

    SQL Ders25- Transaction Kullanımı

    Transaction örneğimizi Northwind veri tabanımızdan gerçekleştiriyor olacağız. Bu transaction’ımızda foreign key hatası yüzünden tüm yapılan işlemler geri alınacaktır. Rollback transaction çalışacaktır. Burada küçük bir ayrıntıya değinelim. Bir transaction açıldığı zaman, transaction scope içerisinde değişiklik gören kayıtlar var ise bu kayıtlar lock durumuna alınır. Aksini belirtmediğiniz sürece transaction bitene kadar başka bir kullanıcı bu kayıtlara ulaşamaz, okuyamaz ve üzerinde değişiklik yapamaz. Eğer kaç tane transaction yarattığınızı öğrenmek istiyorsanız aşağıdaki kodu kullanabilirsiniz. İç İçe Transactionlar(Nested Transactions) Kimi zaman bir transaction bitmeden diğer bir transaction yaratma isteğimiz doğabilir. Bunlara da Nested Transaction denir. Burada görüldüğü gibi tran1 transaction’ı bitmeden tran2 transaction başlamış durumdadır. İçinde bulunan transaction’ları ya Rollback eder ya da Commit. Save…