Bu SQL kavramları yeni başlayanlar, orta düzey veya ileri düzey geliştiriciler için mi? [kapalı]


16

Son zamanlarda SQL öğreniyorum ve MySQL / Postgres ve yakında Oracle DB ile pratik yapıyorum. Ayrıca, veritabanlarında 'yol haritası' çalışması için web'de arama yaptım, ancak maalesef bulamadım.

Belirli veritabanı kavramlarının başlangıçtan orta ve ileri seviyeye kadar nerede ve neden olduğunu anlamak istiyorum. Çoğunlukla ilişkisel veritabanlarını düşünüyorum.

Lütfen, Acemi -> Orta Düzey -> Gelişmiş'in ilerleyişinde aşağıda listelenen becerilerin nasıl geliştirileceğini, geliştiricinin hangi düzeyde bilmesi gerektiğini açıklayın:

  • Maddeler nerede
  • Sözdizimini güncelle
  • Katıldı
  • İfadeleri Değiştir ve Oluştur
  • Sıcaklık tabloları
  • imleçler
  • endeksleri
  • Yabancı anahtarlar
  • Kısıtlamalar
  • işlemler
  • Alt sorgular
  • pivotlar
  • Toplama işlevleri
  • profil oluşturma
  • OLAP ve OLTP
  • tetikleyiciler
  • Uygulama planları
  • Yürütme ipuçları
  • Performans sayaçları
  • normalleştirme

Yanıtlar:


20

SQL ile ilgili bilmeniz gereken iki tür olduğunu söyleyebilirim (bu gerçekten birçok teknoloji için geçerlidir), anladığınız veya anlamadığınız birleşimler, alt sorgular, sendikalar, vb.Gibi spesifik teknik şeyler vardır ve sonra şeyler vardır veritabanı tasarımı ve sanatta beceri gradyanı olan veri modelleme gibi. Zamanla bu yumuşak şeylerle daha iyi olursunuz, ama onları asla “tanımazsınız” çünkü onlarla “bu şekilde çalışırlar” diye bir şey yoktur.

Bununla birlikte, genel bir düzen ile devam edeceğim ve kesinlikle yanlış olabileceğim başkalarının yorumlarına / düşüncelerine kesinlikle açıkım.

Acemi

  • Maddeler nerede (içinde, arasında vb.)
  • Sözdizimini güncelle
  • İç vs sol vs sağ birleşim anlayış ve kullanımı
  • Yapıları değiştirmek ve oluşturmak için sözdizimi
  • Sıcaklık tabloları ve kullanımları
  • imleçler
  • Nasıl çalıştıklarını değil de, dizinlerin ne için olduğu hakkında temel fikir
  • Yabancı anahtarların ne için olduğunu ve etraflarında nasıl çalışıldığını anlama (basamaklı silmeler vb.)
  • İşlemlerin temellerini kavrar
  • Kısıtlamaları anlar

Orta düzey

  • Dizinler nasıl çalışır, kümelenmiş, kümelenmemiş vb. Arasındaki fark, bir sayfanın ne olduğu ve nasıl düzenlendikleri
  • Alt sorguları anlama ve bunları birleşme yerlerinde kullanma
  • pivotlar
  • İlgili olduğunda kendi başına bir masaya katılarak düşünebilir
  • Toplama işlevlerine sahip grup bys'leri aracılığıyla karmaşık veri raporları oluşturabilir
  • Bir günlük okuma gibi bir izleme / hata ayıklama kapasitesinde temel profil oluşturma yapabilir
  • OLAP ve OLTP arasındaki farkı ve OLAP yapılarının ne zaman / nerede kullanılacağını kavrar
  • Tetikleyicileri kullanmayı ve kullanmamayı bilir
  • İşlemleri anlar ve yığınları üst üste kaldırarak işlem yapabilir

ileri

  • Bir yürütme planını okuyabilir ve sorgunun farklı bölümlerinin onu nasıl etkilediğini anlayabilir
  • Performansı bozmadan yürütme ipuçları ile sorguları ayarlayabilir (paralellik ipuçları, dizin ipuçları, döngü ipuçları ve diğerleri)
  • Gerçek dünya yükü altındaki idam istatistiklerini tanımlamak ve anlamak için izleri profil oluşturabilir ve kullanabilir
  • Diskteki veri yapılarının ne olduğunu bilir
  • Performans sayaçlarını kullanabilir ve veritabanı yükünün ve davranışının onları izlemenin ne olduğunu anlayabilir
  • Bir OLAP küpünün nasıl tasarlanacağını ve biriyle gelişmiş veri madenciliği yapmayı bilir
  • Tetikleyicilerin nasıl kullanılacağını ve minimum riskle nasıl güvenli bir şekilde kullanılacağını bilir
  • Katmanlı işlemlerde bile dağıtılmış işlemlerin nasıl kullanılacağını bilir

Başımın üstünden gelebileceğim tek şey bu. Lütfen kaçırdığım veya yanlış yere bir şey koyduğum diğer kişilere değin yorum bırakın. Ben aşağı koymak için gelişmiş tekniklerin büyük bir listesini bilecek kadar ileri değilim heh


İki listemizi yan yana görmek ilginç
Chris Pitman

11

İşte adaylarla mülakat yaparken kullandığım ölçek. Bu benim kişisel görüşümdür, ölçekler kolayca değişebilir:

İlk olarak, özellikle "SQL" değil, veritabanı becerileri arıyorum.

Acemi:

  • Temel SQL sözdizimini bilir
  • Birden çok tablodaki verileri seçebilir ve filtreleyebilir
  • İç / dış / çapraz birleşimleri kavrar
  • Normalizasyon, endeksleme, işlemler, kilitleme hakkında belirsiz anlayış

Orta düzey:

  • SQL için prosedürel ve bildirici stiller arasındaki farkları anlar
  • En az bir DB SQL uzantısı (PSQL, TSQL, vb.)
  • Üçüncü normal formdaki bir veritabanını kavrar ve tasarlayabilir
  • Endekslemeyi anlar ve uygulayabilir
  • İşlemleri anlar ve bunları tek bir veritabanında kullanabilir
  • Bir yürütme planının ne zaman ve nasıl analiz edileceğini bilir

İleri:

  • Bir veritabanının ne zaman ve nasıl denormalize edileceğini anlar
  • Veritabanında ve tümleşik sistemlerde dağıtılmış işlemlerin nasıl kurulacağını anlar
  • Yüksek kullanılabilirlik, veri kurtarma vb.İçin bir veritabanı ayarlayabilir
  • Her bir DB motorunun dahili işleyişini derinlemesine anlama (en az iki)
  • Veri depolama ve raporlamaya önemli ölçüde maruz kalma için ekstra puan
  • NoSQL varyantlarına önemli ölçüde maruz kalmak için ekstra puanlar ve ne zaman kullanılacağı için rasyonel bir kriter kümesi

Komik, listeniz benimkine oldukça benziyor; idam planlarını bir adım yukarı kaldırsam da, temelde aynı. Neredeyse 3. normal formu orta seviyeye koydum, ancak veri modellemenin başlangıç ​​/ orta / ileri seviyeye atfedilemeyeceğini düşünüyorum, bu çok gri bir sanatsal yetenekten çok fazla. 3. normalin nasıl yapılacağını bilmek, ne zaman bir sanat olduğunu bilmek bir beceridir. Nasıl olsa da alakalı ve neredeyse o heh için de ara orta koymak
Jimmy Hoffa
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.