sql-bilikleri-csharp-developere-ne-derecede-vacibdir

SQL bilikləri C# developerə nə dərəcədə vacibdir?

Bir neçə dəfədir ki ,artıq bu sualla rastlaşıram. .NET-də  yeni olanları maraqlandıran əsas suallardan biri məhz “SQL-i nə dərəcədə bilməliyəm? SQL mənə nə dərəcədə vacibdir?” kimi suallardır.

PS: Burada qeyd olunan fikirlərin hamısı müəllifin öz təcrübəsinə əsaslanan subyektiv fikridir.

SQL-I nə dərəcə bilmək, işlədiyiniz iş yerinin tələbindən asılı olaraq dəyişə bilir. Amma bu və ya digər formada T-SQL-in 70-80%-ni 3-5 illik praktika müddətində öyrənmək məcburidir. Elə bir şirkətə işə qəbul oluna bilərsinizki, orada sizdən minimal SQL bilikləri tələb edərlər, hətta birbaşa SQL ilə işləməyinizə ehtiyac olmaz. Sizə hazır querylər view,function, procedure şəklində verilə bilər və siz sadəcə həmin obyektlərə müraciət edərək lazımi məlumatları alıb emal edə bilərsiniz.  Amma mənim fikrimcə bu tipli şirkətlər Azərbaycanda azdır.

 Əmək yoldaşlarımın , işə qəbul olunan bir çox tələbələrimin düşdüyü mühiti nəzərə alaraq aşağıdakı deyilənləri   nəzərinizdə saxlamağınız vacibdir:

1)     İşlədiyiniz çox şirkətlərdə əgər 0-dan bir layihə yığılırsa və siz backend developersinizsə çox böyük ehtimal ki, nəinki bazaya sorğuların yazılması , hətta verilənlər bazasının modelləşdirilməsi də sizin öhdənizdə olacaq. Şirkətdən asılı olaraq siz bu layihəni tək (az hallarda) və ya komanda şəklində yerinə yetirəcəksiniz. C# ilə işləyən çox şirkətlər verilənlər bazası dialekti olaraq T-SQL istifadə edirlər. Sizə T-SQL-in əsasları( CREATE ,ALTER, SELECT, İNSERT, UPDATE , DELETE), Normalizasiya qaydaları (1NF, 2NF, 3NF və.s), subquerylərin yazılması, JOİNlərin verilməsi(Left, RİGHT, İNNER, az hallarda CROSS), düzgün şəkildə WinFunctionlardan istifadə, məhdudiyyətlərin qoyulması, Functionlar,Viewlar,Stored Procedure-lar, indexlərin yaradılması və gələcəkdə bazada optimizasiya texnikaları , Tranzaksiyalarla iş və təbii ki kursorları istifadə etmək vərdişləri lazım olacaq...Yəni qısacası T-SQLdə olan mövzuların 80%-i sənə lazım olacaq.....

2)     Çox vaxt işə düzəldiyiniz şirkətin artıq hazır bazası, hazır obyektləri olur. Bu zaman yükümüz biraz azalır. Sadəcə lazım cədvəllərə sorğu vermək üçün T-SQL-in əsaslarını bilməyimiz ilk başdan kifayət edir. Amma həmin şirkət də böyük ehtimal sürətli inkişaf edən belə bir dövrdə sadəcə hazır mövcud proyektləri müşayiət etməklə məşğul olmayacaq. Əlbət bir yeni proqram yazmaq cəhdi olacaq və böyük ehtimal ki, sən yenə yuxarıda yazdığım 1-ci maddəyə qayıdacaqsan.Və sən başlayacaqsan vərəqləməyə, oxumağa..


3)     İşlədiyiniz şirkətdə hazır baza və obyektlərin olması amma hərşeyin pis vəziyyətdə olması halı. Deməli işlədiyim çox böyük layihələrdən birində artıq bütün baza və 90% querylər hazır idi. Layihəni götürdüm və başladım işləməyə. Amma procedure və funksiyalar o qədər bərbad gündə idi ki, onu müşayiət etmək demək olar ki mümkün deyildi. Hər ay ən az 7-8 gün manual baza update-ləri aparmaq lazım olurdu. Çünki bəzi hesablamalar yalnış gedirdi və səbəbini araşdırmaq çətin olurdu. Və beləliklə 3 ay həftənin şənbə və bazar günləri hər birində 9 saat olmaqla işləyərək bütün queryləri rewite etdik (Rəsul Hüseynovla birlikdə) və sonunda elə bir SQL arxitekturası qurduq ki, artıq sistemə yeni bir funksionallıq əlavə etmək üçün köhnə procedure və funksiyaları editləmək lazım gəlmirdi. Sadəcə yeni bir funksiya və ya prosedur yazırdıq və sistem onu avtomatik detect edirdi və işə salırdı. Sistemi belə yaza bilmək üçün 1-ci bənddəi bütün SQL bölmələrini demk olar ki istifadə etmişdik


4)     Əgər yeni başlamısınızsa və bu bəndlərdən hər hansı biri sizə uyğun gəlirsə, inan mənə zamanla obiri bəndləri də görəcəksən. Ona görə T-SQL ilə yaxşı yola getməyini , yavaş - yavaş onu öyrənməyini məsləhət görərdim. Siz hələ mənim banklardan birinə C# developer kimi gedib amma SQL developer kimi işə qəbul olunmağımı bilmirdiz...

 

Yəqinki bu məqaləni oxuyanlar arasında bir neçə il təcrübəsi olan və yeni başlayan .NET developerlər var. Yadınıza gəlirmi imtahanda sizdən SQL-ə aid suallar soruşmaqları. Gəlir gəlir... Həmin sullardan bir neçəsini yazaq:

1)Subquerylər nədir?

2)Joinlər nədir?

3)Funksiyalar və view-lar nə işə yarayır?

4)Prosedurlar nədir?

5)Tranzaksiya nədir və SQL-də hans formaları var?

6)Hansı halalrda kursorlardan istifadə edərsən?

7)Hansı Normalizasiya qaydalarını bilirsən?

8)İndeksləmə nədir və hansı formaları var? və.s

 Bəzi şirkətlər isə SQL dialekti olaraq T-SQL istifadə etmirlər, baxmayaraq ki dil olaraq C# istifadə edirlər. Yəni qarşıda Oracle PL/SQL , PostgreSQL, MySQL öyrənmə səbəbləriniz də ola bilər..

Tural

Tural Süleymani

Süleymani Tural Microsoft-un MCSD statuslu mütəxəssisidir, 2008-ci ildən bu yana proqramlaşdırma üzrə tədris aparır

Müəllifin bu dildə ən son postları

Bu yazıları da bəyənə bilərsiniz