Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Unifikovaná architektura databáze Katsiaryna Chernik
2
Unifikovaná architektura databáze Caché díky své architektuře uložení dat je schopna pracovat s daty jak z pohledu objektového tak relačního. Nedochází ke ztrátě výkonu při přístupu k datům
3
Unifikovaná architektura databáze ClassClass TableTable Resynchronization Not Two definitions Constant need for synchronization Two definitions Constant need for synchronization One definition No need for synchronization One definition No need for synchronization Unified Data Architecture
4
Unifikovaná architektura databáze Objekty jsou organizovány do tříd Definice tříd jsou uloženy spolu s ostatními daty v Caché Class Dictionary (slovník tříd). Definice tříd Dvě sady kódů navzájem synchronizované objektový přístuprelační přístup kompilace
5
Objekt / Relace ObjektRelace BalíkSchéma TřídaTabulka Instance objektuŘádek v tabulce VlastnostSloupec RelaceCizí klíč Vnořený objektSloupce MetodaProcedura Index
6
Vlastnost / Sloupec Class User.Osoba Extends %Persistent [ ClassType = persistent, ProcedureBlock ] { Property Jmeno As %String; } Tabulka Osoba IDJmeno 1Jiří Novák 2Jan Černý ObjectScript Routines Set osoba=##class(User.Osoba).%New() Set osoba.Jmeno="Jiří Novák " set sc=osoba.%Save() quit SQL INSERT INTO SQLUser.Osoba (Jmeno) VALUES „Jan Černý“
7
Fyzické úložiště dat Data se ukládají do vícerozměrného řídkého pole. Pro zobrazení vícerozměrných datových struktur se používá stromový pohled.
8
Přístup k datum v Caché SQL ODBC Relational View For Standards Direct View Object View For Speed For Interoperation Multi-Dimensional Database
9
Přístup k datum v Caché Read !,”Person Id >”,id ; using Object Syntax Set p=##class(User.Osoba).%OpenId(id) Write !,p.Jmeno ; using SQL &sql(Select Jmeno into :jmeno from SQLUser.Osoba where Id=:id) Write !,name ; using Direct Global Access Write !,$List(^User.OsobaD(id),2)
10
Pole / Tabulka Vlastnost typu pole, které nabývá libovolného počtu hodnot, je transformována na samostatnou tabulku. Class User.Osoba Extends %Persistent [ ClassType = persistent, ProcedureBlock ] { Property Jmeno As %String; Property Pratele As %String [ Collection = array ]; } Pole Pratele: Honza Jan Valach Jitka Jitka Nova
11
Pole / Tabulka Routines Set osoba=##class(User.Osoba).%OpenId(1) do osoba.Pratele.SetAt("Jan Valach","Honza") do osoba.Pratele.SetAt("Jitka Nova","Jitka") set sc=osoba.%Save() quit Tabulka Osoba_Pratele OsobaIDPrateleElement_key 11||HonzaJan ValachHonza 11||JitkaJitka NováJitka
12
Fyzické úložiště dat Vlevo od znaménka “=” jsou vidět jednotlivé “dimenze”, vpravo pak data příslušná instanci objektu v dané dimenzi. Pole přátel je uloženo o úroveň níže než detaily osoby.
13
Vnořené třídy Data obsažená ve vnořených třídách jsou vždy uložena spolu s daty persistentní třídy, jež na vnořenou třídu odkazuje. Class User.Adresa Extends %SerialObject [ ClassType = serial, ProcedureBlock ] { Property Sidlo As %String; Property Ulice As %String; } Typ seriál znamená, že třída může byt vnořena do persistentní třídy.
14
Vnořené třídy Class User.Osoba Extends %Persistent [ ClassType = persistent, ProcedureBlock ] { … Property Adresa As User.Adresa; }
15
Vnořené třídy Routines Set osoba1=##class(User.Osoba).%OpenId(1) Set osoba1.Adresa.Sidlo="Praha 1" Set osoba1.Adresa.Ulice="Dlouha 12" Set sc=osoba1.%Save() Set osoba2=##class(User.Osoba).%OpenId(2) Set osoba2.Adresa.Sidlo="Praha 1" Set osoba2.Adresa.Ulice="Karlova 10" set sc=osoba2.%Save() quit Tabulka Osoba IDJmenoAdresa_SidloAdresa_Ulice 1Jiří NovákPraha 1Dlouha 12 2Jan ČernýPraha 1Karlova 10
16
Dědičnost a SQL Class User.Zamestnanec Extends User.Osoba [ ClassType= persistent,ProcedureBlock ] { Property Plat As %Integer(MAXVAL = 1000000, MINVAL = 0); } Tabulka Zamestnanec IDJmenoAdresa_SidloAdresa_UlicePlat 3David GinoPraha 1Ke Karlovu 89000
17
Dědičnost a SQL IDJmenoAdresa_SidloAdresa_Ulice 1Jiří NovákPraha 1Dlouhá 12 2Jan ČernýPraha 1Karlova 10 3David GinoPraha 1Ke Karlovu 8 Tabulka Osoba
18
Závěr Jedna definice dat –Objekt –SQL –Přímý přístup
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.