Tworzenie typów danych i tabel

Slides:



Advertisements
Podobne prezentacje
Indeksy w bazie danych Oracle
Advertisements

Bazy danych II Instrukcja SELECT Piotr Górczyński 25/08/2001.
Bazy danych 8. SQL podstawy P. F. Góra semestr letni 2004/05.
WPROWADZENIE DO BAZ DANYCH
MS Access 2003 Kwerendy Paweł Górczyński.
MS Access 2000 Kwerendy Piotr Górczyński 25/08/2001.
Bazy danych II Instrukcja INSERT Piotr Górczyński 25/08/2001.
MS Access 2000 Normalizacja Paweł Górczyński 2005.
MS Access 2000 Tworzenie tabel Piotr Górczyński 2005.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 7: Relacje i ograniczenia integralnościowe Język definiowania danych - DDL (Data Definition.
Metody autoryzacji użytkowników wymaga integracji z systemem operacyjnym nie wymaga logowania mała pewność mechanizmu wymaga logowania duża pewność mechanizmu.
Obsługa plików csv Do odczytu z pliku csv można użyć następującego kodu: $fp = fopen ("strony.csv","r"); $num = 0; while ($data = fgetcsv ($fp, 1000, ";"))
Tablice Informatyka Cele lekcji: Wiadomości: Uczeń potrafi:
Zapytania SQL: wydajność i optymalizacja
Wykład 8 Wojciech Pieprzyca
Wykład 5 Wojciech Pieprzyca
Programowanie wizualne PW – LAB5 Wojciech Pieprzyca.
WYKONYWANIE ZAPYTAŃ Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Relacyjne Bazy Danych (Oracle) Prezentacja jest współfinansowana.
Język SQL (Structured Query Language) DDL (Data Definition Language)
Systemy plików.
Mechanizm kompresji danych w SQL Server 2008
Bazy Danych II prowadzący: mgr inż. Leszek Siwik
PROJEKTOWANIE TABEL W PROGRAMIE: ACCESS
SQL – Structured Query Language (3)
MySQL – ODBC - ACCESS.
Dane do obliczeń.
Administracja serwerem bazy danych Oracle 11g Zarządzanie strukturą bazy danych Wykład nr 2 Michał Szkopiński.
Instrukcje: CREATE, INSERT, UPDATE, DELETE, DROP
Definicja pliku tekstowego Operacje wykonywane na plikach tekstowych
Instrukcja USOSweb Wersja: Opracował: Sebastian Sieńko Moduł sprawdzianów.
dr hab. Ryszard Walkowiak prof. nadzw.
Prezentacja i szkolenie
MySQL bazy danych dla witryny
Andrzej Macioł Bazy danych – SQL – cz. 1. Andrzej Macioł Składowe SZBD Jądro SZBD realizuje podstawowe funkcje związane z przechowywaniem danych, kontrolą
Tworzenie typów danych i tabel
Tabele historyczne w PostgreSQL
Systemy plików FAT, FAT32, NTFS
SQL - Structured Query Language
Aplikacje bazodanowe ADO.NET PHP i MySQL
Zarządzanie informacją
Jak zacząć w MS SQL? USE master; GO IF DB_ID (Nbaza') IS NOT NULL DROP DATABASE baza; GO CREATE DATABASE baza; GO USE baza; GO.
Wybrane zagadnienia relacyjnych baz danych
Projekt i częściowa implementacja gry logicznej w technologii HTML5
Komendy SQL do pracy z tabelami i bazami
SQL – część II.
Projektowanie bazy danych
1 SBD, L.Banachowski Podstawy SQL - języka relacyjnych i obiektowo-relacyjnych baz danych (SQL2, SQL'1999, Oracle) Powtórzenie wyk ł adu 3.
Systemy Baz Danych Wykład III
Temat 3: Integralność danych. Integralność danych, określana również mianem spójności danych, jest to funkcja SZBD, która gwarantuje, że dane nie zostaną.
Definiowanie kluczy w tabelach RBD
1 SBD, L.Banachowski Zaawansowane cechy SQL Powtórzenie wyk ł adu 5.
Autor: Damian Urbańczyk
1 SBD, L.Banachowski Oprogramowanie strony serwera cz. 1 Powtórzenie wyk ł adu 6.
Komendy SQL do pracy z danymi
Projektowanie postaci formularza:
BAZY DANYCH MS Access.
BAZY DANYCH Microsoft Access Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i.
Współpraca PHP i MySQL Wygodniejszym i wydajniejszym sposobem przechowywania i korzystania z danych zapisanych na serwerze jest współpraca z relacyjna.
ASP.NET Kontrolki źródła danych i prezentacji danych w ASP.Net
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Oracle Data Modeler (4.1). Aplikacja Wymagania biznesowe Tworzenie systemu informacyjnego Procesy Informacje Analiza Projektowanie Browser: Hollywood.
Excel 2007 dla średniozaawansowanych Zajęcia z Prowadzący: Artur Kołos.
Temat: Tworzenie bazy danych
Transformacja modelu EER do modelu relacyjnego
T. 18. E Proces DGA - Działania (operatorka).
Indeksy.
Strukturalny język zapytań SQL - historia
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

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 (Partycjonowanie 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

Informacje podstawowe Partycjonowanie tabel dostępne jest tylko w edycjach Enterprise i Developer SQL Server (oraz wersje ewaluacyjne), Partycjonowanie obiektów bazy danych: umożliwia zwiększenie wydajności (szybkość dostępu do danych), oraz ułatwia zarządzanie, Partycjonowanie tabeli polega na podzieleniu na mniejsze części, Nie jest wymagane jednak, aby podział skutkował fizycznym ro-złożeniem tabeli pomiędzy kilka fizycznych plików rozmiesz-czonych na fizyczne dyski twarde (zwiększenie wydajności samej aplikacji, ponieważ dane odczytywane są równocześnie przy udziale wielu głowic dysku twardego). 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)

Partycjonowanie tabel (przykład) Przykład – wykorzystanie podziału horyzontalnego, względem pewnego klucza nałożonego na wiersze tabeli: Na przykład tabela zawierająca 100 milionów wierszy może zostać podzielona na 12 partycji (mniejszych tabel) reprezentujących kolejne miesiące w roku. Jeżeli zapytanie wymaga danych z określonego miesiąca, to będzie odwoływało się do określonej części (partycji) tabeli, a nie do całego zbioru. Najistotniejszym pytaniem, na które należy odpowiedzieć, jest w jaki sposób wyznaczyć klucz partycjonowania tabeli. Odpowiedź na to pytanie wymaga przeprowadzenia analizy biznesowej, ponieważ jako klucz partycjonowania powinny zostać wybrane te kolumny, które pozwolą odwoływać się do jak najmniejszej liczby partycji. Typowym zastosowaniem partycjonowania tabeli jest podział ze względu na „wiek” danych. Można wyobrazić sobie sytuację, w której tabela zawiera dane z ostatnich dwóch lat, ale tylko dane z ostatniego miesiąca są najczęściej potrzebne. Można więc w taki sposób podzielić tabelę, aby w jednej partycji znajdowały się dane tylko z ostatniego miesiąca, a pozostałe dane znajdą się na innej lub innych partycjach. 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)

Proces partycjonowania tabeli Proces partycjonowania (podziału) tabeli: Utworzenie odpowiedniej liczby grup plików, Wstawienie do każdej grupy pliku, zawierającego partycję tabeli, Utworzenie funkcji partycjonującej, Wykonanie schematu partycjonowania – powiązanie funkcji partycjonują-cej oraz grup plików, w których będą przechowywane kolejne partycje ta-beli, Utworzenie definicji tabeli (CREATE TABLE) i wskazanie we frazie ON schematu partycjonowania (a nie grupy plików, jak dla tabel niepartycjo-nowanych). Uprawnienia – rola serwerowa sysadmin lub role bazodanowe (db_owner, db_ddladmin) 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)

Proces partycjonowania tabeli (c.d.2) Utworzenie grupy plików – należy rozważyć wszystkie uwa-runkowania biznesowe oraz znać dobrze dane, ich przyrost oraz rozkład zanim zostanie podjęta decyzja o liczbie grup plików, które mają być utworzone. W naszym przypadku utworzone zostaną cztery grupy plików: 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 master GO ALTER DATABASE AdventureWorks ADD FILEGROUP grupa_1 ALTER DATABASE AdventureWorks ADD FILEGROUP grupa_2 ALTER DATABASE AdventureWorks ADD FILEGROUP grupa_3 ALTER DATABASE AdventureWorks ADD FILEGROUP grupa_4

Proces partycjonowania tabeli (c.d.3) Następnie do każdej nowej grupy plików należy wstawić pliki. W praktyce, każdy plik zostałby umieszczony na osobnym dysku, aby zwiększyć szybkość odczytu i zapisu danych. Jednak w przykładzie pliki zostaną utworzone w jednym katalogu: ALTER DATABASE [AdventureWorks] ADD FILE (NAME = N'AdventureWorks_D1', FILENAME = N'C:\BazyDanych\DAY_2\MOD_2\AdventureWorks_D1.ndf', SIZE = 2048KB , FILEGROWTH = 1024KB ) TO FILEGROUP [grupa_1] GO (NAME = N'AdventureWorks_D2', FILENAME = N'C:\BazyDanych\DAY_2\MOD_2\AdventureWorks_D2.ndf', SIZE = 2048KB , FILEGROWTH = 1024KB ) TO FILEGROUP [grupa_2] GO (NAME = N'AdventureWorks_D3', FILENAME = N'C:\BazyDanych\DAY_2\MOD_2\AdventureWorks_D3.ndf', SIZE = 2048KB , FILEGROWTH = 1024KB ) TO FILEGROUP [grupa_3] GO (NAME = N'AdventureWorks_D4', FILENAME = N'C:\BazyDanych\DAY_2\MOD_2\AdventureWorks_D4.ndf', SIZE = 2048KB , FILEGROWTH = 1024KB ) TO FILEGROUP [grupa_4] GO 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)

Proces partycjonowania tabeli (c.d.4) Następnie Po utworzeniu grup plików i wstawieniu plików należy zdefiniować funkcję partycjonującą, która określa sposób podziału tabeli na partycje. Na tym etapie nie wskazuje się, która kolumna będzie kluczem partycjonowania, wiadomo jedynie jakiego typu jest ten klucz (w tym wypadku – int). W definicji funkcji partycjonującej nie podaje się również nazwy tabeli: 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 PARTITION FUNCTION funkcja_SalesOrderDetail(int) AS RANGE RIGHT FOR VALUES(50000,60000,70000) W pokazanym powyżej przypadku kluczem partycjonowania będzie ko-lumna o typie int, a do kolejnych partycji trafią przedziały wartości (1) od 0 do 49999 (pierwsza partycja), (2) od 50000 do 59999 (druga), (3) od 60000 do 69999 (trzecia) oraz (4) od 70000 (czwarta). Słowo kluczowe RIGHT w definicji funkcji oznacza, że wartości brzegowe (50000, 60000 i 70000) trafią do kolejnej partycji.

Proces partycjonowania tabeli (c.d.5) Ostatnim krokiem przed podziałem tabeli na partycje jest utworzenie schematu partycjonowania, który wykorzysta funkcje partycjonującą wykonaną w poprzednim punkcie. Tak, jak w przypadku funkcji, podczas tworzenia schematu partycjo-nowania nie trzeba podawać nazwy tabeli w jego definicji. tabeli: 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 PARTITION SCHEME schemat_SalesOrderDetail AS PARTITION funkcja_SalesOrderDetail TO (grupa_1,grupa_2,grupa_3,grupa_4)

Proces partycjonowania tabeli (c.d.6) Obiekty, które zostały wykonane, czyli funkcja i schemat partycjono-wania, można odnaleźć w SSMS w Eksploratorze obiektów. Należy wy-brać bazę danych AdventureWorks2008 a następnie przejść do sek-cji Storage: 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)

Proces partycjonowania tabeli (c.d.7) Po utworzeniu wszystkich wymaganych obiektów należy przystąpić do utworzenia partycjonowanej tabeli. Należy w niej podać nazwę schematu, względem którego zostanie podzielona na partycje. Nazwę tą wskazuje się we frazie ON nazwa_schematu(nazwa_klucza): USE [AdventureWorks] GO CREATE TABLE [Sales].[Kopia_SalesOrderDetail] ( [SalesOrderID] [int] NOT NULL, [SalesOrderDetailID] [int] IDENTITY(1,1) NOT NULL, [CarrierTrackingNumber] [nvarchar](25) NULL, [OrderQty] [smallint] NOT NULL, [ProductID] [int] NOT NULL, [SpecialOfferID] [int] NOT NULL, [UnitPrice] [money] NOT NULL, [UnitPriceDiscount] [money] NOT NULL, [LineTotal] AS (isnull(([UnitPrice]*((1.0)-[UnitPriceDiscount]))*[OrderQty],(0.0))), [rowguid] [uniqueidentifier] ROWGUIDCOL NOT NULL, [ModifiedDate] [datetime] NOT NULL, CONSTRAINT [PK_SalesOrderDetail_SalesOrderDetailID] PRIMARY KEY CLUSTERED ( [SalesOrderID] ASC, [SalesOrderDetailID] ASC ) ON schemat_SalesOrderDetail([SalesOrderID]) 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)

Wprowadzenie danych do tabeli Po utworzeniu tabeli i podzieleniu jej na partycje można wypełnic ją danymi. Ponieważ wykonana w poprzednim punkcie tabela jest kopią tabeli Sales.SalesOrderDetail to najprościej będzie wypełnić ją już istniejącymi danymi: 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 INSERT INTO [Sales].[Kopia_SalesOrderDetail] ( [SalesOrderID] ,[CarrierTrackingNumber] ,[OrderQty] ,[ProductID] ,[SpecialOfferID] ,[UnitPrice] ,[UnitPriceDiscount] ,rowguid ,[ModifiedDate] ) SELECT [SalesOrderID] ,[CarrierTrackingNumber] ,[OrderQty] ,[ProductID] ,[SpecialOfferID] ,[UnitPrice] ,[UnitPriceDiscount] ,NEWID() ,[ModifiedDate] FROM [Sales].[SalesOrderDetail] GO

Wyświetlanie danych Po wypełnieniu tablicy danymi można sprawdzić, do których partycji dane zostały faktycznie zapisane. Kod zapytania, które wyświetla informację, w której partycji znajduje się dany wiersz: USE AdventureWorks GO SELECT SalesOrderDetailId, [SalesOrderID], $PARTITION.funkcja_SalesOrderDetail ([SalesOrderID]) AS 'Numer partycji' FROM Sales.Kopia_SalesOrderDetail 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:

Wyświetlanie danych (c.d.) Poniższe zapytanie wyświetla informację o ilości wierszy w danej partycji. Pozwala to ocenić, czy funkcja partycjonująca została wybrana poprawnie, czy może należy ją zmodyfikować. W idealnym przypadku partycje powinny być zapełnione równą ilością elementów, ale w praktyce jest to trudne do osiągnięcia: 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 $PARTITION.funkcja_SalesOrderDetail ([SalesOrderID]) AS 'Numer partycji', COUNT(*) AS 'Liczba elementów' FROM Sales.Kopia_SalesOrderDetail GROUP BY $PARTITION.funkcja_SalesOrderDetail ([SalesOrderID]) ORDER BY [Numer partycji] GO Wynik:

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