9 kwietnia 2011 odbył się 2nd CodeCamp w Katowicach. Na imprezie tej nasz ekspert Łukasz Grala przedstawił sesję dotyczącą reprezentacji i obsługi danych hierarchicznych w serwerze bazodanowym firmy Microsoft (SQL Server 2008/2008R2).
W ramach sesji zaprezentowano wszystkie dostępne metody reprezentacji czyli Self-Join między innymi z użyciem CTE, jak i dane XML, oraz nowy typ danych hierarchicznych w SQL Server.
Always On - Wydajność i bezpieczeństwo naszych danych - High Availability SQL...
Reprezentacja i obsługa danych hierarchicznych w SQL Server 2008/2008R2
1.
2. Reprezentacja i obsługa hierarchii
w SQL Server 2008/2008R2
Łukasz Grala
MVP SQL Server | MCT
3. Łukasz Grala – MVP SQL Server | MCT
• Niezależny konsultant (bazy i hurtownie danych, data mining,
analiza danych, audyty baz danych – SQL Server, BI,
SQL Azure, konsolidacja BI w SharePoint 2010)
• Trener technologii Microsoft, wykładowca na wyższych
uczelniach
• Lider Polish SQL Server User Group (PLSSUG) Poznań
• Prelegent na wielu konferencjach informatycznych
Prowadzi blogi: Kontakt:
http://powerpivot.info.pl lukasz@grala.biz
http://sqlresearch.com
4. Agenda
• Co to jest hierarchia?
• Hierarchie w SQL Server 2008/2008R2
• Self-Join i rekurencja
• Typ hierarchyid
• Metody hierarchyid
• Porównanie metod reprezentacji
lukasz@grala.biz
6. Hierarchie
• Słownik
• Pracownicy
• Organizacja
• BoM (Bill of Material)
• Zadania w projekcie
• System plików
• Wizualizacja stron web (mapa serwisów)
• Klas / Obiektów
lukasz@grala.biz
7. Hierarchie
Marketing
Sprzedaż
Handel
Firma
GM Produkcja
lukasz@grala.biz
8. Hierarchie
• GRAF – zbiór węzłów i krawędzi
• Drzewo – specjalny graf
• Hierarchia odmiana drzewa
lukasz@grala.biz
13. Reprezentacja w SQL Server 2008
ID_Employee FirstName LastName ID_Manager
1 Rob Walters NULL
2 Ken Sanchez 1
3 Thierry D’Hers 1
4 Mary Dempsey 2
lukasz@grala.biz
14. Reprezentacja w SQL Server 2008
ID_Employee FirstName LastName ID_Manager
1 Rob Walters NULL
2 Ken Sanchez 1
3 Thierry D’Hers 1
4 Mary Dempsey 2
lukasz@grala.biz
17. Hierarchie
Self-Join i rekurencja
lukasz@grala.biz
18. Self-Join i rekurencja
SELECT ManagerID, EmployeeID
FROM Employee WHERE ManagerID = NULL
UNION ALL
SELECT c.ManagerID, e.EmployeeID
FROM Employee e JOIN CTE c
ON c.EmoloyeID = e.ManagerID
lukasz@grala.biz
24. Indeksy
CREATE CLUSTERED INDEX Org_Breadth_First
ON Organization(OrgLevel, BusinessEtityID);
CREATE UNIQUE INDEX Org_Depth_First
ON Organization(BusienssEntityID);
lukasz@grala.biz
34. Pytania?
Prowadzi blogi: Kontakt:
http://powerpivot.info.pl lukasz@grala.biz
http://sqlresearch.com
35. Dziękuję za uwagę
Prowadzi blogi: Kontakt:
http://powerpivot.info.pl lukasz@grala.biz
http://sqlresearch.com
Editor's Notes
Grafy – cykliczne, acykliczne, Drzewo – acykliczny graf, gdzie między dodolnymi dwoma węzłami istnieje tylko jedna ścieżkaHierarchia – drzewo z jednym korzeniem, gdzie każdy następny węzeł ma jednego rodzica
Grafy – cykliczne, acykliczne, Drzewo – acykliczny graf, gdzie między dodolnymi dwoma węzłami istnieje tylko jedna ścieżkaHierarchia – drzewo z jednym korzeniem, gdzie każdy następny węzeł ma jednego rodzica
Grafy – cykliczne, acykliczne, Drzewo – acykliczny graf, gdzie między dodolnymi dwoma węzłami istnieje tylko jedna ścieżkaHierarchia – drzewo z jednym korzeniem, gdzie każdy następny węzeł ma jednego rodzica
Grafy – cykliczne, acykliczne, Drzewo – acykliczny graf, gdzie między dodolnymi dwoma węzłami istnieje tylko jedna ścieżkaHierarchia – drzewo z jednym korzeniem, gdzie każdy następny węzeł ma jednego rodzica
Grafy – cykliczne, acykliczne, Drzewo – acykliczny graf, gdzie między dodolnymi dwoma węzłami istnieje tylko jedna ścieżkaHierarchia – drzewo z jednym korzeniem, gdzie każdy następny węzeł ma jednego rodzica
Grafy – cykliczne, acykliczne, Drzewo – acykliczny graf, gdzie między dodolnymi dwoma węzłami istnieje tylko jedna ścieżkaHierarchia – drzewo z jednym korzeniem, gdzie każdy następny węzeł ma jednego rodzica
Grafy – cykliczne, acykliczne, Drzewo – acykliczny graf, gdzie między dodolnymi dwoma węzłami istnieje tylko jedna ścieżkaHierarchia – drzewo z jednym korzeniem, gdzie każdy następny węzeł ma jednego rodzica