Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Tworzenie typów danych i tabel

Podobne prezentacje


Prezentacja na temat: "Tworzenie typów danych i tabel"— Zapis prezentacji:

1 Tworzenie typów danych i tabel
PANIE DZIEKANIE, SZANOWNA KOMISJO, SZANOWNI PT RECENZENCI, SZANOWNI PAŃSTWO Podczas dzisiejszego seminarium zaprezentuję wyniki moich prac nad rozprawą doktorską pt. „Badania nad algorytmami syntezy statycznych obrazów medycznych – na przykładzie znamion melanocytowych skóry”. Rozprawa została przygotowana pod kierunkiem Prof. Zdzisława Hippe. UWAGI: 1. Czcionka Times New Roman wszędzie 2. Przykład znamion … - kursywą, ale w podtytule (Tworzenie typów użytkownika) (Tworzenie tabel) dr inż. Łukasz Piątek Katedra Systemów Ekspertowych i Sztucznej Inteligencji, Instytut Informatyki Biomedycznej Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie

2 Typy danych w MS SQL Server 2008
Typy danych w MS SQL Server 2008 obejmują: typy numeryczne, typy tekstowe, typy daty oraz czasu, typy binarne, typy specjalne, oraz inne typy. Genezą prowadzonych badań jest związana z rolą informacji obrazowej, jaką odgrywa ona we współczesnej medycynie, w tym: zastosowanie obrazów syntetycznych (tj. generowanych komputerowo) do celów dydaktycznych, wykorzystanie obrazów syntetycznych w komputerowych systemach wspomagania diagnostyki obrazowej jako obrazy referencyjne (wzorzec porównawczy dla analizowanych obrazów rzeczywistych) bigint binary bit char CLR cursor date datetime datetime2 datetimeoffset decimal float hierarchyid image int money nchar ntext numeric nvarchar real rowversion smalldatetime smallint smallmoney sql_variant table text time timestamp tinyint varbinary varchar uniqueidentifer xml

3 Typy numeryczne Liczby całkowite: Liczby niecałkowite (rzeczywiste):
tinyint (1B), smallint (2B), int (4B), bigint (8B), Liczby niecałkowite (rzeczywiste): numeric, decimal (maksymalnie 38 cyfr) – deklarujemy precyzję oraz skalę, np. numeric(20,4), float, real – niedokładne, Walutowe: money (8B), smallmoney (4B) – obsługa symboli walut. Genezą prowadzonych badań jest związana z rolą informacji obrazowej, jaką odgrywa ona we współczesnej medycynie, w tym: zastosowanie obrazów syntetycznych (tj. generowanych komputerowo) do celów dydaktycznych, wykorzystanie obrazów syntetycznych w komputerowych systemach wspomagania diagnostyki obrazowej jako obrazy referencyjne (wzorzec porównawczy dla analizowanych obrazów rzeczywistych)

4 Typy tekstowe Stałej długości: Zmiennej długości: Duże typy tekstowe:
char, nchar – uzupełniane spacjami Zmiennej długości: varchar (do 8000 znaków), nvarchar (do 4000 znaków), Duże typy tekstowe: varchar(max) oraz nvarchar(max) (do 2GB danych), Unicode (UTF-16): nchar, nvarchar, nvarchar(max) – prefiks N do oznaczania literałów w Uni-code Genezą prowadzonych badań jest związana z rolą informacji obrazowej, jaką odgrywa ona we współczesnej medycynie, w tym: zastosowanie obrazów syntetycznych (tj. generowanych komputerowo) do celów dydaktycznych, wykorzystanie obrazów syntetycznych w komputerowych systemach wspomagania diagnostyki obrazowej jako obrazy referencyjne (wzorzec porównawczy dla analizowanych obrazów rzeczywistych)

5 Typy daty i czasu Data i czas: Tylko data: Tylko czas:
datetime (8B), smalldatetime (4B) – stare typy datetime2 (6-8B) – deklarowana dokładność (maksymalnie 7 cyfr w części ułamkowej sekundy) datetimeoffset (8-10B) – deklarowana dokładność, informacja o strefie czasowej Tylko data: Date (3B), Tylko czas: Time (3-5B) – deklarowana dokładność. Genezą prowadzonych badań jest związana z rolą informacji obrazowej, jaką odgrywa ona we współczesnej medycynie, w tym: zastosowanie obrazów syntetycznych (tj. generowanych komputerowo) do celów dydaktycznych, wykorzystanie obrazów syntetycznych w komputerowych systemach wspomagania diagnostyki obrazowej jako obrazy referencyjne (wzorzec porównawczy dla analizowanych obrazów rzeczywistych)

6 Typy binarne Stałej długości: Zmiannej długości: Duży typ binarny:
binary – maksymalnie 8000B (uzupełniany zerami), Zmiannej długości: varbinary – maksymalnie 8000B, Duży typ binarny: varbinary(max) – do 2GB danych. Genezą prowadzonych badań jest związana z rolą informacji obrazowej, jaką odgrywa ona we współczesnej medycynie, w tym: zastosowanie obrazów syntetycznych (tj. generowanych komputerowo) do celów dydaktycznych, wykorzystanie obrazów syntetycznych w komputerowych systemach wspomagania diagnostyki obrazowej jako obrazy referencyjne (wzorzec porównawczy dla analizowanych obrazów rzeczywistych)

7 Typy specjalne xml - przechowuje dane w formacie XML:
implementuje kontrolę poprawności formatu, oraz umożliwia walidację dokumentami XML Schema, geometry – geometria na płaszczyźnie, geography – geografia w różnych układach odniesienia, hierarchyid – przechowywanie i obsługa hierarchii. Genezą prowadzonych badań jest związana z rolą informacji obrazowej, jaką odgrywa ona we współczesnej medycynie, w tym: zastosowanie obrazów syntetycznych (tj. generowanych komputerowo) do celów dydaktycznych, wykorzystanie obrazów syntetycznych w komputerowych systemach wspomagania diagnostyki obrazowej jako obrazy referencyjne (wzorzec porównawczy dla analizowanych obrazów rzeczywistych)

8 Inne typy bit – logika trójwartościowa: 0,1,NULL,
sql_variant – typ ogólny, można do niego konwertować dane pra-wie każdego typu, sysname – nvarchar(128), timestamp, rowversion – znacznik śledzenia zmian w rekordach. Genezą prowadzonych badań jest związana z rolą informacji obrazowej, jaką odgrywa ona we współczesnej medycynie, w tym: zastosowanie obrazów syntetycznych (tj. generowanych komputerowo) do celów dydaktycznych, wykorzystanie obrazów syntetycznych w komputerowych systemach wspomagania diagnostyki obrazowej jako obrazy referencyjne (wzorzec porównawczy dla analizowanych obrazów rzeczywistych)

9 Typy przestarzałe text – używać varchar(max),
ntext – używać nvarchar(max), image – używać varbinary(max). Genezą prowadzonych badań jest związana z rolą informacji obrazowej, jaką odgrywa ona we współczesnej medycynie, w tym: zastosowanie obrazów syntetycznych (tj. generowanych komputerowo) do celów dydaktycznych, wykorzystanie obrazów syntetycznych w komputerowych systemach wspomagania diagnostyki obrazowej jako obrazy referencyjne (wzorzec porównawczy dla analizowanych obrazów rzeczywistych)

10 Hierarchia typów Typy CLR, SQL_VARIANT, XML, DATETIMEOFFSET,
SMALLDATETIME, DATE, TIME. Genezą prowadzonych badań jest związana z rolą informacji obrazowej, jaką odgrywa ona we współczesnej medycynie, w tym: zastosowanie obrazów syntetycznych (tj. generowanych komputerowo) do celów dydaktycznych, wykorzystanie obrazów syntetycznych w komputerowych systemach wspomagania diagnostyki obrazowej jako obrazy referencyjne (wzorzec porównawczy dla analizowanych obrazów rzeczywistych)

11 Konwersja Niejawna: Jawna: nie zawsze możliwa,
jeżeli zachodzi, to zawsze rzutowanie następuje na typ danych znajdujący się najwyżej w hierarchii, Jawna: CAST – prostsza, oraz CONVERT – dająca więcej możliwości zalecana, by uniknąć przypadkowych błędów, czasem nie można jej uniknąć

12 Typy danych użytkownika
Typy bazujące na typach systemowych: polecenie CREATE TYPE, brak polecenia ALTER TYPE, Typy tabelaryczne: polecenie CREATE TYPE … AS TABLE, wykorzystywane przez zmienne tabelaryczne i parametry obiektów proceduralnych (READONLY), Typy CLR: Tworzone w technologii .NET.

13 Przykłady Nowe typy daty/czasu w MS SQL Server 2008:
date, time, datetime2, oraz datetimeoffset. Typ hierarchiczny:

14 Typ hierarchiczny Zapytanie, które wyświetli informacje o pracownikach firmy Adventu-reWorks. Każdy z pracowników posiada unikalny identyfikator zapisany w ko-lumnie EmployeeID oraz identyfikator przełożonego (w kolumnie ManagerID). Osoba, która w kolumnie ManagerID ma zapisaną wartość NULL, jest właścicielem firmy, czyli nie posiada przełożonego: Genezą prowadzonych badań jest związana z rolą informacji obrazowej, jaką odgrywa ona we współczesnej medycynie, w tym: zastosowanie obrazów syntetycznych (tj. generowanych komputerowo) do celów dydaktycznych, wykorzystanie obrazów syntetycznych w komputerowych systemach wspomagania diagnostyki obrazowej jako obrazy referencyjne (wzorzec porównawczy dla analizowanych obrazów rzeczywistych) use AdventureWorks GO SELECT EmployeeID,ManagerID,LoginID FROM HumanResources.Employee Wynik:

15 Typ hierarchiczny (c.d.)
Utworzenie hierarchii pracowników przy wykorzystaniu Common Table Expression: WITH CTE_Employee AS ( SELECT EmployeeID,ManagerID,LoginID, 0 as POZIOM FROM HumanResources.Employee WHERE ManagerID IS NULL UNION ALL SELECT HR.EmployeeID,HR.ManagerID,HR.LoginID, POZIOM+1 FROM HumanResources.Employee HR JOIN CTE_Employee C ON HR.ManagerID = C.EmployeeID ) SELECT * FROM CTE_Employee ORDER BY POZIOM,ManagerID,EmployeeID Genezą prowadzonych badań jest związana z rolą informacji obrazowej, jaką odgrywa ona we współczesnej medycynie, w tym: zastosowanie obrazów syntetycznych (tj. generowanych komputerowo) do celów dydaktycznych, wykorzystanie obrazów syntetycznych w komputerowych systemach wspomagania diagnostyki obrazowej jako obrazy referencyjne (wzorzec porównawczy dla analizowanych obrazów rzeczywistych) Wynik:

16 Typ hierarchiczny (c.d.2)
Zmienna POZIOM określa, na jakim poziomie drzewa znajduje się aktualny pracownik. W tym przypadku drzewo ma pięć poziomów. Na pierwszym jest właściciel (ken0), jego można uznać za korzeń drzewa. Na ostatnim poziomie znajduje się 190 pracowników, którzy są liśćmi. Można to sprawdzić wykonując poniższe zapytanie: WITH CTE_Employee AS ( SELECT EmployeeID,ManagerID,LoginID, 0 as POZIOM FROM HumanResources.Employee WHERE ManagerID IS NULL UNION ALL SELECT HR.EmployeeID,HR.ManagerID,HR.LoginID, POZIOM+1 FROM HumanResources.Employee HR JOIN CTE_Employee C ON HR.ManagerID = C.EmployeeID ) SELECT COUNT(EmployeeID) as [Liczba pracownikow],POZIOM FROM CTE_Employee GROUP BY POZIOM ORDER BY POZIOM Genezą prowadzonych badań jest związana z rolą informacji obrazowej, jaką odgrywa ona we współczesnej medycynie, w tym: zastosowanie obrazów syntetycznych (tj. generowanych komputerowo) do celów dydaktycznych, wykorzystanie obrazów syntetycznych w komputerowych systemach wspomagania diagnostyki obrazowej jako obrazy referencyjne (wzorzec porównawczy dla analizowanych obrazów rzeczywistych) Wynik:

17 Typ hierarchiczny (c.d.3)
Omawiane rozwiązanie charakteryzuje się zwięzłym zapisem i czytel-nością kodu, Brakuje w nim jednak informacji o ścieżce od każdego pracownika do właściciela firmy, Mianowicie pracownik adventure-works\ben0 o identyfikatorze 261 ma przełożonego o numerze 274 (adventure-works\sheela0), który z kolei jest podwładnym pracownika o numerze 71 (adventure-works\wendy0). Ten ma przełożonego o numerze 140 (adventure-works\laura1), który jest bezpośrednim podwładnym właściciela firmy, Istotna byłaby więc informacja zapisana przy pierwszym z wymienio-nych pracowników: 1/140/71/274/261. Genezą prowadzonych badań jest związana z rolą informacji obrazowej, jaką odgrywa ona we współczesnej medycynie, w tym: zastosowanie obrazów syntetycznych (tj. generowanych komputerowo) do celów dydaktycznych, wykorzystanie obrazów syntetycznych w komputerowych systemach wspomagania diagnostyki obrazowej jako obrazy referencyjne (wzorzec porównawczy dla analizowanych obrazów rzeczywistych)

18 Typ hierarchiczny (c.d.4)
W poniższym zapytaniu ścieżka została zbudowana dynamicznie (założenia z poprzedniego slajdu): Wynik: AS INT; = 1; WITH CTE_Employee AS ( SELECT EmployeeID, ManagerID,LoginID, 0 AS poziom, CAST('.' + CAST(EmployeeID AS VARCHAR(10)) + '.‘ AS VARCHAR(MAX)) AS sciezka FROM HumanResources.Employee WHERE ManagerID IS NULL UNION ALL SELECT HR.EmployeeID, HR.ManagerID,HR.LoginID, poziom + 1, CAST(C.sciezka + CAST(HR.EmployeeID AS VARCHAR(10)) + '.‘ FROM HumanResources.Employee HR JOIN CTE_Employee AS C ON HR.ManagerID = C.EmployeeID ) SELECT * FROM CTE_Employee ORDER BY POZIOM,ManagerID,EmployeeID,sciezka; Genezą prowadzonych badań jest związana z rolą informacji obrazowej, jaką odgrywa ona we współczesnej medycynie, w tym: zastosowanie obrazów syntetycznych (tj. generowanych komputerowo) do celów dydaktycznych, wykorzystanie obrazów syntetycznych w komputerowych systemach wspomagania diagnostyki obrazowej jako obrazy referencyjne (wzorzec porównawczy dla analizowanych obrazów rzeczywistych)

19 Typ hierarchiczny (c.d.5)
Podobne operacje dotyczące hierarchii pracowników w firmie mogą być wykonane przy pomocy typu danych HIERARCHYID. Utworzyć tabelę dbo.Organizacja, korzystając z podanego niżej kodu. Informacje o hierarchii pracowników będą w niej przecho-wywane w polu EmployeeID typu HIERARCHYID: Genezą prowadzonych badań jest związana z rolą informacji obrazowej, jaką odgrywa ona we współczesnej medycynie, w tym: zastosowanie obrazów syntetycznych (tj. generowanych komputerowo) do celów dydaktycznych, wykorzystanie obrazów syntetycznych w komputerowych systemach wspomagania diagnostyki obrazowej jako obrazy referencyjne (wzorzec porównawczy dla analizowanych obrazów rzeczywistych) use AdventureWorks GO CREATE TABLE dbo.Organizacja ( Pracownik hierarchyid NOT NULL, Nazwa nvarchar(50) NOT NULL ) Do tabeli należy dodać kolumnę Poziom, w której przechowywane będą informacje o poziomie pracownika w hierarchii: : ALTER TABLE dbo.Organizacja ADD Poziom AS Pracownik.GetLevel()

20 Typ hierarchiczny (c.d.6)
Dodać klucz główny do tabeli dbo.Organizacja, który utworzony jest na polu Pracownika. Operacja ta jest konieczna, ponieważ w następnym kroku będzie tworzona kolumna wyliczeniowa Przelozony: use AdventureWorks ALTER TABLE dbo.Organizacja ADD CONSTRAINT PK_Organizacja PRIMARY KEY ( Pracownik ) Genezą prowadzonych badań jest związana z rolą informacji obrazowej, jaką odgrywa ona we współczesnej medycynie, w tym: zastosowanie obrazów syntetycznych (tj. generowanych komputerowo) do celów dydaktycznych, wykorzystanie obrazów syntetycznych w komputerowych systemach wspomagania diagnostyki obrazowej jako obrazy referencyjne (wzorzec porównawczy dla analizowanych obrazów rzeczywistych) Utwórzyć kolumnę wyliczeniową Przelozony, która będzie kolumną wyliczeniową trwałą (jej wartość będzie przechowywana w tabeli). Wartość w tej kolumnie jest pobierana z metody GetAncestor(), umożliwiającej obliczenie osoby nadrzędną w hierarchii i jako parametr przyjmuje liczbę poziomów, o którą należy się przesunąć „w górę”, żeby uzyskać wynik: : ALTER TABLE dbo.Organizacja ADD Przelozony AS Pracownik.GetAncestor(1) PERSISTED REFERENCES dbo.Organizacja(Pracownik)

21 Typ hierarchiczny (c.d.7)
Zapytanie: WITH CTE_Hierarchia AS ( SELECT EmployeeID, LoginID, hierarchyid::GetRoot() AS Pracownik FROM HumanResources.Employee WHERE ManagerID IS NULL UNION ALL SELECT HR.EmployeeID, HR.LoginID, C.Pracownik.GetDescendant(null, null) FROM HumanResources.Employee AS HR INNER JOIN CTE_Hierarchia AS C ON HR.ManagerID= C.EmployeeID ) Select * From CTE_Hierarchia Wynik: Genezą prowadzonych badań jest związana z rolą informacji obrazowej, jaką odgrywa ona we współczesnej medycynie, w tym: zastosowanie obrazów syntetycznych (tj. generowanych komputerowo) do celów dydaktycznych, wykorzystanie obrazów syntetycznych w komputerowych systemach wspomagania diagnostyki obrazowej jako obrazy referencyjne (wzorzec porównawczy dla analizowanych obrazów rzeczywistych) Dane w kolumnie Pracownik nie są unikalne i nie mogą posłużyć do zbudowania klucza głównego w tabeli dbo.Organizacja, w której ten klucz miał być oparty tylko na kolumnie Pracownik. Można jednak zmienić sposób wyznaczania kolumny Pracownik, dodając do niej informację o kolumnie EmployeeID, która na pewno zawiera dane unikalne:

22 Typ hierarchiczny (c.d.8)
Zapytanie: WITH CTE_Hierarchia AS ( SELECT EmployeeID, LoginID, hierarchyid::GetRoot() AS Node FROM HumanResources.Employee WHERE ManagerID IS NULL UNION ALL SELECT HR.EmployeeID, HR.LoginID, hierarchyId::Parse(c.Node.ToString() + Cast(HR.EmployeeID as varchar(5)) + '/') FROM HumanResources.Employee AS HR INNER JOIN CTE_Hierarchia AS C ON HR.ManagerID= C.EmployeeID ) INSERT INTO dbo.Organizacja(Pracownik,Nazwa) Select Node, LoginID From CTE_Hierarchia Genezą prowadzonych badań jest związana z rolą informacji obrazowej, jaką odgrywa ona we współczesnej medycynie, w tym: zastosowanie obrazów syntetycznych (tj. generowanych komputerowo) do celów dydaktycznych, wykorzystanie obrazów syntetycznych w komputerowych systemach wspomagania diagnostyki obrazowej jako obrazy referencyjne (wzorzec porównawczy dla analizowanych obrazów rzeczywistych)

23 Typ hierarchiczny (c.d.9)
Sprawdźmy zatem uzyskane wyniki. Należy zwrócić uwagę, że dane typu HIERARCHYID są rzeczywiście w zapisane w formacie binarnym – kolumny Pracownik i Przelozony. Jeśli chcesz zobaczyć, jak wygląda taka informacja w formacie tekstowym, wywołaj na odpowiedniej kolumnie metodę ToString(): : Genezą prowadzonych badań jest związana z rolą informacji obrazowej, jaką odgrywa ona we współczesnej medycynie, w tym: zastosowanie obrazów syntetycznych (tj. generowanych komputerowo) do celów dydaktycznych, wykorzystanie obrazów syntetycznych w komputerowych systemach wspomagania diagnostyki obrazowej jako obrazy referencyjne (wzorzec porównawczy dla analizowanych obrazów rzeczywistych) SELECT Pracownik,Nazwa,Poziom,Przelozony,Pracownik.ToString() as Sciezka FROM dbo.Organizacja ORDER BY Poziom Wynik:

24 Typ hierarchiczny (c.d.10)
Zapytanie zwracające szefa firmy: Genezą prowadzonych badań jest związana z rolą informacji obrazowej, jaką odgrywa ona we współczesnej medycynie, w tym: zastosowanie obrazów syntetycznych (tj. generowanych komputerowo) do celów dydaktycznych, wykorzystanie obrazów syntetycznych w komputerowych systemach wspomagania diagnostyki obrazowej jako obrazy referencyjne (wzorzec porównawczy dla analizowanych obrazów rzeczywistych) SELECT * FROM dbo.Organizacja WHERE Pracownik = HIERARCHYID::GetRoot(); Wynik:

25 Dziękuję za uwagę… Wyższa Szkoła Informatyki i Zarządzania
ul. Sucharskiego 2, Rzeszów, Polska Dziękuję za uwagę…


Pobierz ppt "Tworzenie typów danych i tabel"

Podobne prezentacje


Reklamy Google