Czy te koncepcje SQL są przeznaczone dla początkujących, średnio zaawansowanych lub zaawansowanych programistów? [Zamknięte]
16
Ostatnio uczyłem się SQL i ćwiczę z MySQL / Postgres, a wkrótce z Oracle DB. Szukałem również w Internecie „mapy drogowej” analizy baz danych, ale niestety nie mogłem jej znaleźć.
Chcę zrozumieć, gdzie i dlaczego poszczególne koncepcje baz danych mieszczą się w skali od początkującego do średnio zaawansowanego i zaawansowanego. W większości myślę o relacyjnych bazach danych.
Wyjaśnij, jak układać umiejętności wymienione poniżej w progresji dla Początkującego -> Średnio zaawansowanego -> Zaawansowanego, na jakim poziomie programista powinien je znać:
Powiedziałbym, że istnieją dwa rodzaje rzeczy, które należy wiedzieć w odniesieniu do SQL (tak naprawdę jest w przypadku wielu technologii), są pewne techniczne rzeczy, takie jak złączenia, podzapytania, związki itp., Które rozumiesz lub nie, a potem są rzeczy jak projektowanie baz danych i modelowanie danych z gradientem umiejętności, jak sztuka. Z czasem stajesz się lepszy dzięki tym bardziej miękkim rzeczom, ale nigdy ich nie „znasz”, ponieważ nie ma z nimi „tak działają”.
To powiedziawszy, oto ogólny układ, z którym bym poszedł i jestem absolutnie otwarty na komentarze / przemyślenia od innych, w których mogę się mylić.
Początkujący
Gdzie klauzule (pomiędzy, itp.)
Zaktualizuj składnię
Zrozumienie i użycie połączenia wewnętrznego i lewego i prawego
Składnia do zmiany i tworzenia struktur
Tabele temperatur i ich użycie
Kursory
Podstawowa koncepcja, do czego służą indeksy, ale nie sposób ich działania
Zrozumienie, do czego służą klucze obce i jak je obejść (usuwanie kaskadowe itp.)
Rozumie podstawy transakcji
Rozumie ograniczenia
Pośredni
Jak działają indeksy, różnica między klastrami, nieklastrami itp., Czym jest strona i jak się układają
Zrozumienie podkwerend i umiejętne przemyślenie ich zastosowania w złączeniach i obszarach
Pivots
Potrafi przemyśleć dołączenie do stołu w razie potrzeby
Potrafi generować złożone raporty danych za pomocą grup bajtów z funkcjami agregującymi
Potrafi wykonać podstawowe profilowanie tylko w funkcji monitorowania / debugowania, np. Czytając dziennik
Rozumie różnicę między OLAP a OLTP i kiedy / gdzie używać struktur OLAP
Wie, jak korzystać z wyzwalaczy i jak ich nie używać
Rozumie transakcje i może warstwować je, obsługując awarie w górę stosu
zaawansowane
Potrafi przeczytać plan wykonania i zrozumieć, w jaki sposób wpływają na to różne części zapytania
Potrafi dostroić zapytania z podpowiedziami wykonania bez pogarszania wydajności (wskazówki dotyczące równoległości, wskazówki dotyczące indeksu, wskazówki dotyczące pętli itp.)
Potrafi profilować i wykorzystywać ślady do identyfikacji i zrozumienia statystyk wykonań pod obciążeniem w świecie rzeczywistym
Zna struktury danych na dysku
Potrafi korzystać z liczników wydajności i rozumieć, jakie obciążenie i zachowanie bazy danych ma ich monitorowanie
Wie, jak zaprojektować kostkę OLAP i przeprowadzić zaawansowane wyszukiwanie danych za jej pomocą
Wie, jak używać wyzwalaczy i jak używać ich bezpiecznie, przy minimalnym ryzyku
Wie, jak korzystać z transakcji rozproszonych, nawet z warstwami
To wszystko, co mogłem wymyślić z czubka głowy. Proszę zostawić komentarze wspominające o innych, za którymi tęskniłem lub jeśli umieszczę coś w złym miejscu. Nie jestem wystarczająco zaawansowany, aby znać ogromną listę zaawansowanych technik, aby odłożyć heh
Zabawne, twoja lista jest bardzo podobna do mojej; chociaż podniosłem plany wykonania o jeden krok wyżej, w zasadzie mamy to samo. Prawie przełożyłem trzecią normalną formę na pośrednią, ale naprawdę myślę, że modelowania danych nie można przypisać początkującym / średnio zaawansowanym / zaawansowanym, to po prostu zbyt duży talent artystyczny, który jest tak szary. Umiejętność wykonania 3. normalności jest umiejętnością, wiedząc, kiedy jest sztuką. Jak to jest jednak istotne i prawie umieściłem go również w półprodukcie dla tego heh
Oto skala, której używam podczas rozmowy z kandydatami. To oczywiście moja osobista opinia, skale mogą się łatwo różnić:
Po pierwsze, szukam umiejętności obsługi baz danych, a nie „SQL”.
Początkujący:
Pośredni:
Zaawansowane:
źródło