Tabela wewnętrzna - definicja

Podobne dokumenty
77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Oracle PL/SQL. Paweł Rajba.

Autor: Joanna Karwowska

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

Optymalizacja poleceń SQL Metody dostępu do danych

Indeksowanie w bazach danych

Wykład 4. SQL praca z tabelami 1

Statystyki (1) Optymalizacja poleceń SQL Część 2. Statystyki (2) Statystyki (3) Informacje, opisujące dane i struktury obiektów bazy danych.

Zazwyczaj rozmiar bloku jest większy od rozmiaru rekordu, tak więc. ich efektywna lokalizacja kiedy tylko zachodzi taka potrzeba.

Programowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43

Oracle11g: Wprowadzenie do SQL

Język SQL, zajęcia nr 1

Wykład 5. SQL praca z tabelami 2

Programowanie w C++ Wykład 7. Katarzyna Grzelak. 23 kwietnia K.Grzelak (Wykład 7) Programowanie w C++ 1 / 40

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

sprowadza się od razu kilka stron!

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Bazy danych TERMINOLOGIA

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

Relacyjne bazy danych. Podstawy SQL

Ref. 7 - Język SQL - polecenia DDL i DML

Dr Michał Tanaś(

Haszowanie (adresowanie rozpraszające, mieszające)

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

Plan wykładu. Klucz wyszukiwania. Pojęcie indeksu BAZY DANYCH. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów.

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0

WPROWADZENIE DO BAZ DANYCH

STL Standardt Template Library (wprowadzenie)

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. zadania

Tworzenie bazy danych na przykładzie Access

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Wykład 8: klasy cz. 4

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Bazy danych - wykład wstępny

Wykład 9 Kolekcje, pliki tekstowe, Przykład: Notatnik

SQL (ang. Structured Query Language)

Relacyjne bazy danych. Podstawy SQL

BAZY DANYCH. CREATE TABLE dbo.wydzialy (ID INT, Akronim VARCHAR(4) NOT NULL, Wydzial VARCHAR(30) NOT NULL, CONSTRAINT Kluczyk PRIMARY KEY(ID) )

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania

SQL w języku PL/SQL. 2) Instrukcje języka definicji danych DDL DROP, CREATE, ALTER, GRANT, REVOKE

Oracle PL/SQL. Paweł Rajba.

Plan. Raport. Tworzenie raportu z kreatora (1/3)

Szablony klas, zastosowanie szablonów w programach

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Administracja i programowanie pod Microsoft SQL Server 2000

kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

Import danych z plików Excel. (pracownicy, limity urlopowe i inne)

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Fizyczna organizacja danych w bazie danych

Wykład 8. SQL praca z tabelami 5

QUERY język zapytań do tworzenia raportów w AS/400

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

1. Zaczynamy! (9) 2. Edycja dokumentów (33)

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

Przygotowanie formularza do wypożyczenia filmu:

Kompletna dokumentacja kontenera C++ vector w -

java.util.* :Kolekcje Tomasz Borzyszkowski

Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Oracle PL/SQL. Paweł Rajba.

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

Fizyczna struktura bazy danych w SQL Serwerze

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

Programowanie obiektowe

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Bazy danych Access KWERENDY


Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Wykład 2. Relacyjny model danych

PARADYGMATY PROGRAMOWANIA Wykład 4

Zasady transformacji modelu DOZ do projektu tabel bazy danych

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

Bazy danych. Wykład III Tabele. Copyrights by Arkadiusz Rzucidło 1

Systemy baz danych. mgr inż. Sylwia Glińska

Wstęp do programowania 2

Bazy danych 6. Klucze obce. P. F. Góra

Algorytmy i struktury danych

Bazy danych 11. Algorytmy złaczeń. P. F. Góra

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

BAZA DANYCH. Informatyka. ZESPÓŁ SZKÓŁ ELEKTRYCZNYCH Prowadzący: inż. Marek Genge

System plików przykłady. implementacji

Baza danych. Baza danych to:

Moduł 5 - Bazy danych

I. Interfejs użytkownika.

Plan wykładu BAZY DANYCH II WYKŁAD 5. Kolekcje. Tablice asocjacyjne Kolekcje Tablice asocjacyjne VARRAY Tablice zagnieżdżone

6. Formularze tabelaryczne, obiekty nawigacji - rozgałęzienia

dodatkowe operacje dla kopca binarnego: typu min oraz typu max:

Narzędzia środowiska projektowego ABAP

Transkrypt:

ABAP/4

Tabela wewnętrzna - definicja Temporalna tabela przechowywana w pamięci operacyjnej serwera aplikacji Tworzona, wypełniana i modyfikowana jest przez program podczas jego wykonywania i usuwana, gdy program kończy swoje działanie Tak jak tabela bazy danych, składa się z wielu wierszy o takiej samej strukturze, lecz w przeciwieństwie do tabel bazy danych nie może przechowywać danych po zakończeniu działania programu Zastosowanie: temporalne miejsce przechowywania danych, na których wykonuje się pewne operacje lub jako prywatny temporalny bufor Pełni rolę dynamicznej tablicy Może występować albo jako typ danych albo jako obiekt danych

Tabela wewnętrzna jako typ Typ określany przez typ linii, klucz i typ tabeli typ linii: może być dowolnym typem (zazwyczaj struktura, której składowe są kolumnami tabeli wewnętrznej, ale także typ podstawowy lub inna tabela wewnętrzna) klucz: identyfikuje wiersze tabeli dwa typy klucza: standardowy i użytkownika może być unikalny (UNIQUE) lub nieunikalny (NON-UNIQUE) gdy klucz jest unikalny tabela nie może zawierać zduplikowanych wierszy unikalność klucza zależy od metody dostępu do tabeli jeśli tabela ma strukturalny typ typ linii typ tabeli: określa metodę dostępu do zawartości tabeli trzy typy tabeli: standardowa sortowana haszowana Nie ma potrzeby pełnego określania typu tabeli wewnętrznej, można to zrobić w sposób ogólny nie podając klucza lub klucza i typu linii.

Tabela wewnętrzna jako dynamiczny obiekt danych Obiekt danych zdefiniowany jako tabela wewnętrzna lub jako obiekt wcześniej zdefiniowanego typu tabeli wewnętrznej zawsze musi być w pełni zdefiniowany (typ linii, klucz, typ tabeli) Rozmiar tabeli ograniczony rozmiarem pamięci RAM, teoretycznie nie więcej niż 2GB, w praktyce 500MB W przypadku tablic haszowanych nie więcej niż 2 mln rekordów Typem linii może być dowolny typ ABAP-owy: elementarny, strukturalny lub tabela wewnętrzna Tabela wewnętrzna dzieli się na linie i kolumny

Typy tabel wewnętrznych - właściwości Tabele standardowe: mają wewnętrzny liniowy indeks, który od pewnego rozmiaru tabeli przyjmuje strukturę drzewiastą (co powoduje wydłużenie czasu dostępu - logarytmiczny) dostęp do danych według indeksu lub klucza czas dostępu według klucza jest proporcjonalny do liczby rekordów tabeli klucz zawsze jest nieunikalny (nie może być unikalny) nieunikalność klucza przyspiesza wypełnianie tabeli (nie trzeba sprawdzać czy dany rekord już istnieje) Tabele sortowane: zawsze zapisywane w posortowanej według klucza postaci również posiadają wewnętrzny indeks dostęp do danych według klucza lub według indeksu czas dostępu według klucza logarytmicznie zależny od liczby rekordów (binary search) klucz może być zarówno unikalny, jak i nieunikalny Tabele haszowane: nie mają indeksu liniowego dostęp wyłącznie według klucza czas dostępu stały i niezależny od liczby rekordów (algorytm haszujący) klucz musi być unikalny

Wybór typu tabeli Tabela standardowa, gdy: adresowanie linii przez indeks tabela wypełniania głównie przez APPEND odczyt, modyfikacje i usuwanie linii z klauzulą INDEX odpowiedniej instrukcji ABAP mniej użyteczna dla dostępu za pośrednictwem klucza Tabela sortowana, gdy: potrzebna jest tabela posortowana już na etapie wprowadzania danych tabela wypełniana instrukcją INSERT (rekordy wprowadzane w miejsce wynikające z porządku sortowania według klucza głównego) częściowo użyteczne dla częściowo sekwencyjnego przetwarzania w pętli LOOP (gdy warunek klauzuli WHERE zawiera początek klucza) Tabela haszowana: główną operacją jest dostęp za pośrednictwem klucza klucz zawsze unikalny tabela wewnętrzna ma przypominać tabelę bazy danych lub gdy mają być przetwarzane duże wolumeny danych.

Tworzenie tabeli wewnętrznej Tabela wewnętrzna może być zadeklarowana: jako abstrakcyjny typ danych w Słowniku ABAP bezpośrednio jako obiekt danych Minimalny rozmiar tabeli wewnętrznej to 256 B (SAP R/3 v. 4.6C) ma to znaczenie wtedy, gdy tabela wewnętrzna jest składową złożonego obiektu danych nie ma potrzeby określania rozmiaru pamięci dla tabeli wewnętrznej wiersze są dodawane i usuwane dynamicznie

Tabela wewnętrzna jako typ W programie przy użyciu instrukcji TYPES Składnia: TYPES <typ> TYPE LIKE <typ_tabeli> OF <typ_linii> [WITH <klucz>] [INITIAL SIZE <n>]. po klauzuli TYPES (LIKE) nie występuje odwołanie do istniejącego typu danych, lecz konstruktor typu definiujący <typ_tabeli>, <typ_linii> oraz klucz tabeli wewnętrznej <typ> klauzula INITIAL SIZE służy przydzieleniu tabeli wewnętrznej początkowej ilości pamięci

Hierarchia typów tabel Typy ogólne ANY TABLE INDEX TABLE HASHED TABLE STANDARD TABLE SORTED TABLE Typy określone

Ogólne typy tabel INDEX TABLE dla tabel typu ogólnego z dostępem za pośrednictwem indeksu ANY TABLE dla tabel typu ogólnego nie są dozwolone operacje korzytsające z indeksu Zastosowanie: pola symbol parametery interfejsów w procedurach

Określone typy tabel STANDARD TABLE lub TABLE dla tabel standardowych SORTED TABLE dla tabel sortowanych HASHED TABLE dla tabel haszowanych JOLA MAREK IZA BONIA ĆMA SŁOŃ Określone typy tabel wewnętrznych determinują sposób dostępu do wierszy tabeli wewnętrznej w operacjach korzystających z klucza: liniowe przeszukiwanie dla tabel standardowych binarne przeszukiwanie dla tabel sortowanych algorytm haszujący dla tabel haszowanych

Typ linii <typ_linii> można określic: dowolnym typem danych, gdy stosowana jest klauzula TYPE: typ predefiniowany ABAP-a lokalny typ w programie typ danych ze Słownika ABAP dowolnym obiektem danych, gdy stosowana jest klauzula LIKE: obiekt musi być już zdefiniowany przed definicją tabeli wewnętrznej wyjątek: tabele i struktury Słownika ABAP nie mogą być stosowane z klauzulą LIKE w definicjach klas

Klucz Klucz tabeli wewnętrznej definiowany jest następująco: [UNIQUE NON-UNIQUE] KEY <kolumna_1> <kolumna_n> lub [UNIQUE NON-UNIQUE] KEY TABLE LINE lub [UNIQUE NON-UNIQUE] DEFAULT KEY gdzie: <kolumna_i> - nie może być ani tabelą wewnętrzną ani referencją, ani też nie może zawierać tabel wewnętrznych lub referencji, pola klucza mogą być zagnieżdżonymi strukturami, które są po kolei rozwijane, gdy następuje dostęp za pomocą klucza KEY TABLE LINE definiuje całą linię jako klucz, ale typ linii musi być typem elementarnym (C,D,F,I,N,P,T,X) lub ew. strukturalnym (ale nie jest to zalecane rozwiązanie w takim przypadku) DEFAULT KEY definiuje klucz domyślny, który w przypadku strukturalnego typu linii składa się z tych kolumn nienumerycznych tabeli wewnętrznej, które nie zawierają ani same nie są tabelami wewnętrznymi bądź referencjami, a w przypadku elementarnego typu linii cała linia jest kluczem. Domyślny klucz tabeli wewnętrznej, której typ linii jest również tabelą wewnętrzną, jest pusty. definiowanie klucza jest opcjonalne UNIQUE nie może być użyty dla tabel standardowych UNIQUE musi być wyspecyfikowane dla tabel haszowanych

Wstępne wymagania pamięciowe

Tabela wewnętrzna: składa się z ciała i opcjonalnej linii nagłówka Ciało tabeli wewnętrznej: tworzą wiersze tej tabeli, wiersze te mają taką samą strukturę Linia nagłówka: jest łańcuchem pól o tej samej strukturze co wiersze tabeli, może przechowywać tylko jeden wiersz, stanowi bufor używany do przechowywania rekordów przed zapisem do lub po odczycie z tabeli wewnętrznej