43
Relāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: 1) veidot lietotāja definētus saliktus datu tipus (piemēram, adrese (pilsēta, iela, mājas numurs); 2) izmantot atribūtus, kuriem var būt vairākas vērtības (multivalued attributes); 3) realizēt datu tipu mantošanas (inheritance) mehānismus; 4) realizēt datu tabulu mantošanas mehānismus; 5) DB glabāt (store) un izmantot saliktu datu tipu objektu apstrādes metodes; 6) realizēt metožu mantošanas mehānismus. 1

RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Embed Size (px)

Citation preview

Page 1: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Relāciju – objektu DBS iespējas

Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj:

1) veidot lietotāja definētus saliktus datu tipus (piemēram,

adrese (pilsēta, iela, mājas numurs);

2) izmantot atribūtus, kuriem var būt vairākas vērtības

(multivalued attributes);

3) realizēt datu tipu mantošanas (inheritance) mehānismus;

4) realizēt datu tabulu mantošanas mehānismus;

5) DB glabāt (store) un izmantot saliktu datu tipu objektu

apstrādes metodes;

6) realizēt metožu mantošanas mehānismus.

1

Page 2: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Relāciju – objektu datu bāzes sistēmas

Daffodil Software, Ltd. (Daffodil DB);

EnterpriseDB Corporation (EnterpriseDB);

FirstSQL, Inc. (FirstSQL/J);

The GigaBase Project (GibaBase);

IBM (Informix and DB2) (1/5 daļa);

InterSystems Corporation (Cache);

Micro Data Base Systems, Inc. (TITANIUM);

OpenLink Software, Inc. (Vituoso Universal Server);

Oracle Corporation (Oracle) (1/3 daļa);

Paradigma Software (Valentina);

PostgreSQL Global Development Group (PostgreSQL);MS (MS SQL Server 2010).

2

Page 3: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Relāciju – objektu DBS Oracle datu glabāšanas

struktūrasa) objektu tabula ar metodēm un norādēm

b) tabula ar objektu kolonnu

c) tabula ar kolekciju

d) objektu tabula ar kolekciju

e) tabula ar heterogēniem objektiem

f) objektu skats

3

Page 4: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Objektu saišu veidošana relāciju-objektu DBS Oracle

4

Page 5: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Datu bāzes sistēma Informix

Unikālais (distinct) datu tips ir iekapsulēts datu tips, kas tiek izveidots ar komandu

CREATE DISTINCT TYPE priekšrakstu. Unikālajam datu tipam ir tāds pats attēlojums kā

datu tipam uz kuru tas ir bāzēts, bet ir noteikta forma. Unikālo datu tipu var izveidot no

iebūvētajiem datu tipiem, neskaidrajiem (opaque) tipiem, nosauktajiem rindas tipiem vai

citiem noteiktajiem tipiem. Kad unikālais datu tips tiek izveidots tiek netieši definēta datu tipa

struktūra, jo unikālais datu tips manto struktūru no tā avota tipa. Unikālajam datu tipam var

definēt funkcijas, operatorus, un agregātus, kas darbojas ar šo tipu.

Necaurredzamais (opaque) datu tips ir iekapsulēts datu tips, kas tiek izveidots ar CREATE

OPAQUE TYPE priekšrakstu. Kad tiek veidots necaurredzamais datu tips, skaidri ir

jānodefinē tā struktūra, funkcijas, operatori un agregāti, kas darbojas ar necaurredzamo datu

tipu. Necaurredzamo datu tipu var izmantot lai definētu kolonnas un programmas mainīgos,

līdzīgi kā izmantojot iebūvētos datu tipus.

Datulapas (DataBlade) datu tips, kaut arī patiesībā tas nav datu tips, tas ir lietotāja izveidotu

datu tipu un lietotāja izveidotu rutīnu komplekts, kas nodrošina rīkus specifiskiem

lietojumiem. Piemēram, attēlu un dinamisko rindu apstrādei.

a) Lielie objekti(smart large objects).

Lielie objekti(smart large objects) ir objekti, kas ir definēti kā BLOB vai CLOB datu

tipi. Lielie objekti atļauj lietojumprogrammām brīvi piekļūt kolonnas datiem, kas

5

Page 6: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

nozīmē, ka var nolasīt vai ierakstīt jebkuru BLOB vai CLOB kolonnu patvaļīgā

kārtībā. BLOB un CLOB kolonnās var glabāt bināros vai rakstzīmju datus.

Saliktie datu tipi (Complex data type) parasti ir veidoti no citiem datu tipiem. Piemēram,

var izveidot saliktu datu tipu, kura komponentes ir iebūvētie datu tipi, necaurredzamie datu

tipi noteiktie datu tipi vai citi salikti datu tipi. Salikto datu priekšrocība ir tā, ka var piekļūt un

darboties ar atsevišķām saliktā tipa komponentēm. Salīdzinājumā, iebūvētie un lietotāja

definētajiem tipi ir iekapsulēti datu tipi. Kā rezultātā vienīgais veids kā piekļūt necaurredzamā

datu tipa komponenšu vērtībām ir caur funkcijām kas nodefinētas necaurredzamajam datu

tipam.

Kolekcijas datu tips ļauj glabāt un vadīt datu kolekcijas tabulas vienas šūnas ietvaros.

Kolekcijas datu tipam ir divas komponentes:

1) tipa konstruktors, kurš nosaka vai kolekcijas tips ir SET, MULTISET vai LIST;

2) elementa tips, kurš nosaka datu tipu ko satur kolekcija. Kolekcijas elementa tips var attēlot

vienu datu tipu (kolonnu) vai rindas tipa elementu, kas satur vairākus datu tipus.

Kolekcijas tips SET ir nesakārtota elementu kolekcija, kurā katrs elements ir unikāls. Kolekcijas tips MULTISET ir elementu kolekcija, kurā elementiem var būt vienādas vērtības.Kolekcijas tips LIST ir sakārtota elementu kolekcija, kura pieļauj vienādas vērtības. LIST atšķiras no MULTISET ar to, ka katram elementam LIST kolekcijā ir kārtas pozīcija.Iekļautais kolekcijas tips satur citu kolekcijas tipu. Jebkuru kolekcijas tipu var iekļaut citā kolekcijas tipā.

Kolekcijā nevar iekļaut datu tipus: TEXT, BYTE, SERIAL, SERIAL8. Nevar izmantot

CREATE INDEX priekšrakstu lai izveidotu indeksu kolekcijai, un nevar izveidot funkcionālu

indeksu kolekcijas kolonnai. Lai izveidotu kolekciju, definējot tabulu kolekciju izvēlas kā

atribūta tipu. Tabulā Vadītāji kolonna Darbinieki ir vienkārša kolekcija, kolonna Projekti ir

iekļauta kolekcija. Iekļauta kolekcija ir kolekcija, kas satur citu kolekciju.

6

Page 7: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Tabulas veidošana Informix DBS

create table VADITAJI (

Vards varchar(30),

Nodala varchar(12),

Darbinieki SET(varchar(30) NOT NULL),

Projekti LIST(ROW(nosaukums VARCHAR(15),

dalibnieki SET(VARCHAR(20) NOT NULL) ) NOT NULL));

insert into VADITAJI(Vards, Nodala, Darbinieki, Projekti) values (

‘Andis’,’Projektu’,”SET{ ‘Miezis’,’Skara’,’Liepa’ }”,

”LIST{ ROW(‘Zelta projekts’,SET(‘Miezis’,’Skara’)), ROW(”Stadiona

projekts”,SET(‘Miezis’,’Liepa’))}” );

insert into VADITAJI(Vards, Nodala, Darbinieki, Projekti) values (

‘Leons’,’Uzturesanas’,”SET{ ‘Abele’,’Oga’,’Sotnieks’ }”,

”LIST{ ROW(‘Baseina_projekts’,SET(‘Abele’,’Oga’)), ROW(”Jumta

projekts”,SET(‘Oga’,’Sotnieks’))}” );

7

Page 8: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Datu izgūšana no DBS Informix tabulas1. Vienkāršās kolekcijas izgūšana

select Nodala, Darbinieki from VADITAJI;

Nodala DarbiniekiProjektu Miezis,Skara,LiepaUzturesanas Abele,Oga,Sotnieks

2. Iekļautās kolekcijas izgūšana

select Projekti from VADITAJI where Vards=’Andis’;

ProjektiLIST(ROW(Zelta projekts,SET(Miezis,Skara)))LIST(ROW(Stadiona projekts,SET(Miezis,Liepa)))

8

Page 9: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Nosauktā (named) rindas tipa izmantošana

Nosauktais rindas tips ir lauku grupa, kas tiek definēta zem viena

nosaukuma. Nosauktais rindas tips var saturēt citus nosauktos rindas tipus.

Nosauktā rindas tipa laukiem lietotājs vienmēr var tieši piekļūt, atšķirībā

no necaurredzamā (opaque) datu tipa. Tajā komponenšu vērtības ir

iekapsulētas, un tām var piekļūt tikai izmantojot funkcijas.

create row type Adrese_t (

Pilseta varchar(20),

Iela varchar(20),

Numurs integer );

create row type Darbinieks_t (

Uzvards varchar(30),

Alga integer,

Adrese Adrese_t);

create table Darbinieki of type Darbinieks_t;

9

Page 10: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Datu izgūšana no tabulas ar nosaukto rindas tipu

select * from Darbinieki;

Uzvards

Alga Adrese

Miezis 200 Liepaja,Parka,9Auzins 500 Ludza,Alejas,12

select Adrese from Darbinieki;

AdreseLiepaja,Parka,9Ludza,Alejas,12

select Adrese.Pilseta from Darbinieki;

PilsetaLiepajaLudza

10

Page 11: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Tabulas ar nosauktā datu tipa kolonnu izveidošana

create table Klienti(

Nosaukums varchar(30),

adrese Adrese_t);

11

Page 12: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Nenosauktais rindas tipsNenosauktais rindas tips ir lauku grupa, kas tiek izveidota ar rindas (row)

konstruktoru.

Nenosaukto rindas tipu nevar piesaistīt tabulai (rakstam). Nenosauktais

rindas tips tiek lietots tikai, lai definētu tabulas kolonnu.

create table Studenti (

Vards varchar(30),

Adrese ROW( iela varchar (20),

numurs integer,

Pilseta varchar(20)) );

12

Page 13: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Tipu mantošanaMantošana ir process, kas atļauj tipam vai tabulai iegūt īpašības no cita tipa vai tabulas.

Tips vai tabula, kas manto īpašības tiek saukta par apakš tipu vai apakš tabulu. Mantošana

atļauj pieaugošu modifikāciju kas nozīmē ka tips vai tabula manto pamata īpašību kopu un

pievieno savas specifiskas īpašības. Informix dinamiskais serveris atļauj mantošanu

nosauktajam rindas tipam un tipu tabulai. Informix pieļauj tikai vienreizēju mantošanu, kas

nozīmē, ka katrai apakštabulai vai apakštipam ir tikai viena virstabula, vai virstips.

Tipu mantošana ir atļauta tikai nosauktajam rindas tipam. Mantošana grupē nosauktos

rindas tipus tipu hierarhijā, kurā katrs apakš tips manto attēlojumu(datu laukus) un

uzvedību( funkcijas, agregātus un operatorus) no virs tipa zem kura tas ir definēts. Tipu

hierarhijas priekšrocības ir datu modeļa modulāra attēlojuma veicināšana, nodrošina shēmas

komponenšu atkārtotu izmantošanu, nodrošina, ka datu lauki netiek atstāti ārpusē, atļauj tipam

mantot funkcijas, kas ir definētas citam datu tipam.

13

Page 14: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Tipu mantošanas hierarhijas piemērs

create row type persona_t (

vards varchar(30) NOT NULL,

adrese varchar(20),

Pilseta varchar(20),

Dz_datums date );

create row type darbinieks_t (

alga integer,

vaditajs varchar(30) )

under persona_t;

create row type pardosanas_atsk_t (

atskaites_num int8,

regions_num integer,

komisija decimal )

under darbinieks_t;

14

Page 15: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Tabulu mantošana

1. Mantošanu atbalsta tikai tās tabulas, kas ir definētas balstoties uz

nosaukto rindas tipu.

2. Tabulas mantošana ir īpašība, kas ļauj tabulai mantot uzvedību

(ierobežojumus, glabāšanas opcijas, trigerus) no virstabulas tabulu

hierarhijā.

3. Tabulu mantošana ļauj veidot vaicājumus, kuru darbības lauks var būt

dažas vai visas tabulas tabulu hierarhijā.

create table personas of type persona_t;

create table darbinieki of type darbinieks_t under personas;

create table pardosana of type pardosanas_atsk_t under darbinieki;

15

Page 16: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Datu bāzes sistēma DB2 (IBM)

create type Adrese_t AS (

Iela varchar(30),

Nummurs char(15),

Pilseta varchar(30))

mode DB2SQL;

create type Persona_t AS

( Vards varchar(20),

Vecums int,

Adrese Adrese_t)

mode DB2SQL;

Objektu tabulas izveidošana

create table Personas of Persona_t

(REF is Oid user generated); --nosaka ka objekta identifikators ir lietotāja

izveidots

16

Page 17: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Datu ievade objektu tabulāinsert into Personas(Oid,Vards,Vecums,Adrese) values (Persona_t(‘a’),

’Juris’,20, Adrese_t( )..Iela(‘Sporta’)..Numurs(10)..Pilseta(‘Limbazi’))

insert into Personas(Oid,Vards,Vecums,Adrese) values (Persona_t(‘b’),

’Marija’, 30, Adrese_t( )..Iela(‘Rigas’)..Numurs(31)..Pilseta(‘Aluksne’))

SELECT * FROM Personas

Oid Vards Vecums Adrese

a Juris 20 Sporta,10,Limbazi

b Marija 30 Rigas,31,Aluksne

SELECT *

FROM Personas

WHERE Vards=’Juris’;

Oid Vards Vecums Adrese

a Juris 20 Sporta,10,Limbazi

SELECT Adrese

FROM Personas

WHERE Vards=’Juris’;

SELECT Adrese..Iela

FROM Personas

WHERE Vards=’Juris’;

17

A

d

r

Iela

Sporta

Page 18: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Tabula ar objektu kolonnuObjektu var izmantot arī kā kolonnas datu tipu. Lai objektu izmantotu kā kolonnas tipu, no

sākuma jāizveido objekta tips.

CREATE TYPE Adrese_t AS

(Iela VARCHAR(30),

Nummurs CHAR(15),

Pilseta VARCHAR(30))

MODE DB2SQL;

Veidojot tabulu ar objektu kolonnu, kolonnai, kura būs objekts par tipu tiek izvēlēts iepriekš

definēts strukturēts tips. Tabulā Rekviziti objektu kolonna būs Adrese kuras tips būs iepriekš

definētais tips Adrese_t.

CREATE TABLE Rekviziti

(SutijumaNumurs INT,

Adrese Adrese_t)

Ad re s e _ t

Ie la N um u rs P ilse ta

Ad re s e _ t

Ie la N um u rs P ilse ta

SutijumaNumurs

SutijumaNumurs

Datu ievadīšana tabulā ar objektu kolonnu.

INSERT INTO Rekviziti (SutijumaNumurs,Adrese)

VALUES

(1,Adrese_t( )..Iela('Parka')..Nummurs('5')..Pilseta('Ventspil

s'));

INSERT INTO Rekviziti (SutijumaNumurs,Adrese)

VALUES (2,

Adrese_t( )..Iela('Gildes')..Nummurs('8')..Pilseta('Liepaja'))

;

Datu izgūšana.18

2.17 att. Tipa Adrese_t struktūra

Page 19: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

1) Izgūti visi dati no tabulasSELECT *

FROM Rekviziti;

SutijumaNumurs Adrese

1 Parka,5,Ventspils

2 Gildes,8,Liepaja

2) Izgūts viss objekts.SELECT Adrese

FROM Rekviziti;

Adrese

Parka,5,Ventspils

Gildes,8,Liepaja

3) Izgūta daļa no objekta.SELECT Adrese..Pilseta

FROM Rekviziti;

Pilseta

Ventspils

Liepaja

19

Page 20: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

DBS DB2 objektu tipu hierarhijas definēšanaDB2 DBS atbalsta tipu mantošanu. Tips manto visus atribūtus no virstipa

un pievieno vēl savus individuālos atribūtus.

create type Darbinieks_t AS (

ID integer,

VARDS varchar(12),

UZVARDS varchar(12),

NODALAS_ID char(4),

ALGA decimal(7,2),

ADRESE address_t)

REF USING integer

mode DB2SQL;

create type Pardevejs_t under Darbinieks as (

Piemaksa decimal(7,2))

mode DB2sql;

create type Inzenieris_t under Darbinieks as (

Pakape varchar(12))

mode DB2sql;

20

Page 21: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

CREATE TABLE Darbinieki of Darbinieks_t

(ref is oid user generated);

CREATE TABLE Pardeveji of Pardevejs_t under Darbinieki inherit

select privileges

CREATE TABLE Inzenieri of Inzenieris_t under Darbinieki

inherit select privileges

INSERT INTO Inzenieri (oid, id, vards, uzvards, nodalas_id,

alga, pakape, adrese) values (Inzenieris_t(1), 22, 'Juris',

'Liepa', 'Z004', 650.00, ‘vecakais’, adrese () ..iela(‘Liepu’)

..numurs(8) ..pilseta('Priekule'));

INSERT INTO Pardeveji (oid, id, vards,uzvards, nodalas_id,

alga, Piemaksa, adrese) values (Pardevejs_t(2), 33, 'Laima',

'Mieze', 'C012', 490.00, 150.00,

address_t() ..iela('Meza') ..numurs(8) ..pilseta('Ogre'));

SELECT * FROM Darbinieki;

oid id vards uzvards nodalas_id alga adrese

1 22 Juris Liepa Z004 650.00 Liepu,8,Priekule

2 33 Laima Mieze C012 490.00 Meza,8,Ogre

SELECT* FROM Inzenieri;

oid id vards uzvards nodalas_i

d

alga pakape adrese

1 22 Juris Liepa Z004 650.00 vecakais Liepu,8,Priekule

SELECT* FROM Pardeveji;

oid id vards uzvards nodalas_id alga Piemaksa adrese

2 33 Laima Mieze C012 490.00 150.00 Meza,8,Ogre

21

Page 22: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Objektu skatsCREATE TYPE Persona_t AS (

Vards VARCHAR(20),

Vecums INT,

Adrese Adrese_t)

INSTANTIABLE

REF USING VARCHAR(13) FOR BIT DATA

MODE DB2SQL;

CREATE TABLE Personas OF Persona_t

(REF IS Oid USER GENERATED);

CREATE TYPE SK_Personas_t AS (Vards VARCHAR(20))

MODE DB2SQL;

CREATE VIEW SK_Personas OF SK_Personas_t MODE DB2SQL

(REF IS ObjektaID USER GENERATED)

AS SELECT SK_Personas(VARCHAR(Oid)), Vards FROM Personas;

OF teikums CREATE VIEW priekšrakstā nosaka skata pamata kolonnas. Piemērā, skata

kolonnas tiks bāzētas uz strukturēto tipu SK_PERSONAS. Skata kolonnai ObjektaID ir tips

REF(SK_Personas). Tādēļ, ka nevar tieši veidot REF(SK_Personas) no REF(Personas),

vispirms jāizveido Objekta identifikatora kolonna no tabulas Personas datu tipā VARCHAR,

un tad no datu tipa VARCHAR jāveido REF(SK_Personas).

USER GENERATED teikums nosaka, ka Objekta identifikatora kolonnu aizpildīs lietotājs

kad pievienos jaunu rindu. Objekta identifikatoru nevar izmainīt.

22

Page 23: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Datu bāzes sistēma PostgreSQL

Tiek izmantoti dažādi datu tipi:

1) iekļautie datu tipi (skaitļi, simbolu virknes, datumi, laika intervāli,

ģeometriskie tipi (punkts, līnija, pologons), XML datu tipi, UUID –

interneta adreses;

2) lietotāja definētie datu tipi (create type ...).

23

Page 24: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

PostgreSQL datu bāzes datu struktūras

Tabula ar objektu kolonnu

CREATE TYPE Prece_t AS (

Nosaukums text,

Piegadataja_id integer,

Cena numeric );

CREATE TABLE Preces (

Prece Prece_t,

skaits integer );

INSERT INTO Preces VALUES (ROW(’Kresls’, 42, 200), 200);

INSERT INTO Preces VALUES (ROW(’Skapis’, 43, 300), 34);

INSERT INTO Preces VALUES (ROW(’Durvis’, 42, 10), 50);

INSERT INTO Preces VALUES (ROW(’Lampa’, 43, 10), 240);

24

Page 25: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Datu izgūšana no tabulas ar objektu kolonu

SELECT * FROM Preces;

Prece SkaitsKresls, 42, 200 200Skapis, 43, 300 34Durvis, 42, 10 50Lampa, 43, 10 240

SELECT (Prece) FROM Preces.

PreceKresls, 42, 200Skapis, 43, 300Durvis, 42, 10Lampa, 43, 10

SELECT (Prece).Nosaukums

FROM Preces;

PreceKreslsSkapisDurvisLampa

25

Page 26: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Ģeometriskie datu tipi

Tips Atmiņas apjoms Attēlojums Aprakstspoint 16 baiti Punkts plaknē (x,y)line 32 baiti Neierobežota līnija ((x1,y1),(x2,y2))lseg 32 baiti Ierobežots līnijas

segments((x1,y1),(x2,y2))

box 32 baiti Taisnstūra logs ((x1,y1),(x2,y2))path 16+16n baiti Slēgta daļa ((x1,y1),...)path 16+16n baiti Atvērta daļa [(x1,y1),...]polygon 40+16n baiti Daudzstūris ((x1,y1),...)circle 24 baiti Riņķis <(x,y),r> (centrs un

rādiuss)

Funkcija Atgriežamais tips Apraksts Piemērs

area(object) double precision

objekta laukums

area(box '((0,0),(1,1))')

center(bject) point objekta centrs

center(box '((0,0),(1,2))')

diameter(circle) double precision

riņķa diametris

diameter(circle '((0,0),2.0)')

height(box) double precision

taisnstūra augstums

height(box '((0,0),(1,1))')

length(object) double precision

objekta garums

length(path '((-1,0),(1,0))')

npoints(path/polygon) int punktu skaits

npoints(path '[(0,0),(1,1),(2,0)]')

radius(circle) double precision

riņķa radiuss

radius(circle '((0,0),2.0)')

width(box) double precision

taisnstūra garums

width(box '((0,0),(1,1))')

26

Page 27: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Kolonas ar masīva datu tipuPostgreSQL ļauj tabulas kolonnas definēt kā mainīga garuma daudz dimensiju masīvus.

Masīvi var tikt veidoti no iebūvētiem vai lietotāja izveidotiem datu tipiem. Masīvus nevar

veidot no saliktiem datu tipiem. Masīvs tiek veidots nosaucot datu tipu un kvadrātiekavās

ierakstot masīva izmēru: DATU_TIPS[ ][ ]. Kvadrātiekavu pāru skaits nosaka masīva

dimensiju skaitu. Ja masīva izmērs ir noteikts tad kvadrātiekavās raksta masīva izmēru, ja

masīva izmērs nav noteikts tad kvadrātiekavas atstāj tukšas.

CREATE TABLE mas_tabula(masivs integer[3][3]);

INSERT INTO mas_tabula VALUES(masivs{{1,2,3},{4,5,6},{7,8,9}});

Operators

Apraksts Piemērs Rezultāts

= vienāds MASIVS[1.1,2.1,3.1]::int[] = MASIVS[1,2,3]

patiess

<> Nav vienāds MASIVS[1,2,3] <> MASIVS[1,2,4] patiess< Mazāks MASIVS[1,2,3] < MASIVS[1,2,4] patiess> lielāks MASIVS[1,4,3] >MASIVS[1,2,4] patiess<= Mazāks vai

vienādsMASIVS[1,2,3] <= MASIVS[1,2,3] patiess

>= Lielāks vai vienāds

MASIVS[1,4,3] >= MASIVS[1,4,3] patiess

@> satur MASIVS[1,4,3] @> MASIVS[3,1] patiess@< ietilpst MASIVS[2,7] <@

MASIVS[1,7,4,2,6]patiess

&& Daļēji nosedz MASIVS[1,4,3] && MASIVS[2,1] patiess|| Masīvu

savienošanaMASIVS[1,2,3] || MASIVS[4,5,6] {1,2,3,4,5,6}

|| Elementa un masīva savienošana

3 || MASIVS[4,5,6] {3,4,5,6}

27

Page 28: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Masīvu apstrādes funkcijasFunkcija Atgrie-

žamais

tips

Apraksts Piemērs Rezultāts

array_append

(masivs,

elements)

masivs Pievieno elementu

masīva beigās

array_append(MASIVS[1,

2], 3)

{1,2,3}

array_cat

(masivs, masivs)

masivs Savieno divus

masīvus

array_cat(ARRAY[1,2,3],

ARRAY[4,5])

{1,2,3,4,5}

array_dims

(masivs)

text Atgriež tekstu kas

raksturo masīva

dimensijas

array_dims(ARRAY[[1,2,

3], [4,5,6]])

[1:2][1:3]

array_lower

(anyarray, int)

int Atgriež apakšējo

robežu pieprasītajai

masīva dimensijai

array_lower('[0:2]={1,2,3}

'::int[], 1)

0

array_prepend

(elements,

masivs)

masīvs Pievieno elementu

masīva sākumā

array_prepend(1,

ARRAY[2,3])

{1,2,3}

array_to_string

(masivs, text)

text Savieno masīva

elementus lietojot

doto atdalītāju

array_to_string(ARRAY[1

, 2, 3], '~^~')

1~^~2~^~3

array_upper

(anyarray, int)

int Atgriež maksimālo

masīva elementu

norādītajā dimensijā

array_upper(ARRAY[1,2,

3,4], 1)

4

string_to_array

(text, text)

Text[] Sadala virkni masīva

elementos lietojot

norādīto atdalītāju

string_to_array('xx~^~yy~

^~zz', '~^~')

{xx,yy,zz}

28

Page 29: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Tabulas struktūras mantošana1. Tabula var mantot atribūtus no vienas tabulas vai vairākām tabulām.

2. Pēcteču tabulām ir tie paši atribūti, kas bāzu tabulām un pievienoti savi

personīgie atribūti. 3. Veidojot vaicājumu bāzu tabulai ir iespējams izgūt

ierakstus:

- tikai no bāzes tabulas;

- arī no atvasinātas tabulas vai tabulām.

4. Atvasinātu tabulu ir iespējams veidot no vairākām bāzu tabulām un

otrādi, no vienas bāzu tabulas ir iespējams izveidot vairākas atvasinātās.

5. Atvasinātās tabulas izveidošanas sintakse ir sekojoša:

CREATE TABLE tabulas_nosaukums( tabulas_definīcija )

INHERITS ( bāzes_tabula [, ... ] );

29

Page 30: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewRelāciju – objektu DBS iespējas Objektu-relāciju DB papildus relāciju tehnoloģijai ļauj: veidot lietotāja definētus saliktus datu

Tabulas struktūras mantošanas piemērs

create table VIDEO ( VIDEO_ID character(8) PRIMARY KEY, NOSAUKUMS varchar(80), ILGUMS interval );

create table DVD( SKANAS_CELINI varchar[ ] ) inherits (VIDEO);

insert into DVD values ( 'AAA-750', -- video_id 'Spriditis, -- nosaukums '121 minutes', -- ilgums '{Latviesu,Anglu}' -- skanas_celini);

select * from DVD;

VIDEO_ID | NOSAUKUMS | ILGUMS | SKANAS_CELINI---------------+--------------------+--------------+-------------------------- AAA-750 | Spriditis | 02:01:00 | {Latviesu,Anglu} select * from VIDEO only;

VIDEO_ID | NOSAUKUMS | ILGUMS ---------------+--------------------+------------- AAA-750 | Spriditis | 02:01:00

Lai izgūtu ierakstus tikai no bāzu tabulas, neiekļaujot ierakstus no pēcteču tabulām,

lieto slēgvārdu ONLY.

30