59
cilvē ks vārds uzvārd s sieviet e cilvē ks vārds uzvārd s dzimums cilvē ks vārds uzvārd s vīrieti s vīrs sieva vīrs sieva tēvs māte vecāk s zēns meiten e bērns ģimene brālis bērns meita vecmamma vectēvs dēls laulības apliecība dz. apliecība māsa bērns

RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

  • Upload
    dobao

  • View
    214

  • Download
    1

Embed Size (px)

Citation preview

Page 1: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

cilvēks

vārds

uzvārds

sieviete

cilvēks

vārds

uzvārds

dzimums

cilvēks

vārds

uzvārds

vīrietis

vīrs

sieva

vīrs

sieva

tēvs

māte

vecāks

zēns meitene

bērns

ģimene

brālis

bērns

meita

krusttēvs

vecmamma

krustmāte

vectēvs

dēls

laulības apliecība

dz. apliecība

māsa

bērns

Page 2: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

Dati, fakti, likumi, vaicājumi, predikāti

1. Dati: Jūlijs, Anita, 75, sieviete.

2. Fakti:

Jūlijs ir Jāņa vecāks vecāks( Jūlijs, Jānis)

Jānis ir 45 gadus vecs vīrietis persona(Jānis, 45, vīrietis)3. Likums: māte( X, Y) : persona( X, , sieviete), vecāki( X, Y).

4. Vaicājumi:

? - vecāks(Jūlijs, X)

? - vecāks(Y , Rasma)

? - vecāks( Y, Jūlijs), persona( Y, , sieviete)

? - māte( Y, Jūlijs)

Tabula VECĀKIVECĀKS BĒRNS)

Jūlijs JānisJūlijs RasmaAnita RasmaAnita JānisJānis ZaneInese ZaneMade JūlijsPēteris AnitaRasma Mārtiņš

Tabula PERSONASVĀRDS

)VECUMS DZIMUMS

Jūlijs 70 vīrietisJānis 45 vīrietisAnita 65 sievieteRasma 47 sievieteInese 40 sievieteMade 90 sievieteZane 24 sievieteMārtiņš 27 vīrietis

2

Page 3: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

Piemērs

līnija(a,b). līnija (b,c).līnija (a,c). līnija (a,d).līnija (b,e). līnija (e,f).līnija (b,f). līnija (f,b).

?- līnija (X,Y)

?- līnija (a,X)

? – līnija (X, b)

3

Page 4: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

Piemērs deduktīvās datu bāzes veidošanai1. Datu bāzes tabulas rindas - fakti

Predikāti:vecāks (X, Y) dzimums(R, S)

DZIMUMIVAR DZIMJūlijs vīrietisAnita sievieteJānis vīrietisRasma sievieteInese vīrietisLiene sievieteZane sievieteMonvīds vīrietis

VECĀKIVEC BERJūlijs JānisJūlijs RasmaAnita JānisAnita RasmaJānis LieneJānis ZaneInese LieneInese ZaneMonvīds Inese

4

Page 5: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

create table VECĀKS(ID number Primary key,VEC varchar2(15),BER varchar2(15));

insert into VECĀKS values (1, 'Jūlijs', 'Jānis');insert into VECĀKS values (2, 'Jūlijs', 'Rasma');insert into VECĀKS values (3, 'Anita', 'Jānis');insert into VECĀKS values (4, 'Anita', 'Rasma');insert into VECĀKS values (5, 'Jānis', 'Liene');insert into VECĀKS values (6, 'Jānis', 'Zane');insert into VECĀKS values (7, 'Inese', 'Liene');insert into VECĀKS values (8, 'Inese', 'Zane');insert into VECĀKS values (9, 'Monvīds', 'Inese');insert into VECĀKS values (10, 'Anna', 'Inese');

create table DZIMUMS(ID number Primary key,VAR varchar2(15),DZIM varchar2(15));

insert into DZIMUMS values (1, 'Jūlijs', 'vīrietis');insert into DZIMUMS values (2, 'Anita', 'sieviete');insert into DZIMUMS values (3, 'Jānis', 'vīrietis');insert into DZIMUMS values (4, 'Rasma', 'sieviete');insert into DZIMUMS values (5, 'Inese', 'sieviete');insert into DZIMUMS values (6, 'Liene', 'sieviete');insert into DZIMUMS values (7, 'Zane', 'sieviete');insert into DZIMUMS values (8, 'Monvīds', 'vīrietis');insert into DZIMUMS values (9, 'Anna', 'sieviete');

5

Page 6: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

2. Fakti un likumiFakti

dzimums(X, Y) dzimums(Rasma, sieviete) dzimums(Jānis, vīrietis)

vecāks(X, Y) vecāks(Jānis, Zane) vecāks(Inese, Zane)

Likumi

māte(M,X): vecāks(M,X), dzimums(M, sieviete)

tēvs(T,X): vecāks(T,X), dzimums(T, vīrietis)

dēls(D,X): vecāks(X,D), dzimums(D, vīrietis)

meita(M, X): vecāks(X,M), dzimums(M, sieviete)

brālis(B,X): māte(M, B), māte(M,X), tēvs(T, B), tēvs(T, X), dzimums(B, vīrietis)

māsa(S,X): māte(M, S), māte(M,X), tēvs(T, S), tēvs(T, X), dzimums(S, sieviete)

vecmāte(V, X): vecāks(Y, X), vecāks(V, Y), dzimums(V, sieviete)

vectēvs(V, X): vecāks(Y, X), vecāks(V, Y), dzimums(V, vīrietis)

6

Page 7: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

Rekursija predikātu likumos

vecvecāks(Y, X): vecāks(Z, X), vecāks(Y, Z)

vecvecvecāks(Y, X): vecāks(Z, X), vecāks(R, Z), vecāks(Y, R)

sencis(Y, X): vecāks(Y, X)sencis(Z, X): sencis(Y, X), vecāks(Z, Y)

? - sencis(Y, Zane)

vecāks(Jānis, Zane) sencis(Jānis, Zane)

sencis(Jānis, Zane), vecāks(Jūlijs, Jānis) sencis(Jūlijs, Zane)

sencis(Jūlijs, Zane),vecāks(Made, Jūlijs) sencis(Made, Zane)

7

Page 8: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

3. Vaicājuma izpilde

Vaicājums: ? - brālis(B, Rasma)

Vai ir fakti brālis(X, Y)? nav Vai ir likums brālis(X, Y)?

Likums: brālis(X, Y): māte(M, X), māte(M,Y), tēvs(T, X), tēvs(T, Y), dzimums(X, vīrietis)brālis(B, Rasma): māte(M, B), māte(M, Rasma), tēvs(T, B), tēvs(T, Rasma), dzimums(B, vīrietis)

Vai ir fakti māte(X,Y)? nav Vai ir likums māte(X,Y)?Likums: māte(X,Y): vecāks(X,Y), dzimums(X, sieviete)māte(M, B): vecāks(M, B), dzimums(M, sieviete)

Vai ir fakti māte(X,Y)? nav Vai ir likums māte(X,Y)?Likums: māte(X,Y): vecāks(X,Y), dzimums(X, sieviete)māte(M, Rasma): vecāks(M, Rasma), dzimums(M, sieviete)

Vai ir fakti tēvs(X,Y)? nav Vai ir likums tēvs(X,Y)?Likums: tēvs(X,Y): vecāks(X,Y), dzimums(X, vīrietis)tēvs(T, B): vecāks(T, B), dzimums(T, vīrietis)

Vai ir fakti tēvs(X,Y)? nav Vai ir likums tēvs(X,Y)?Likums: tēvs(X,Y): vecāks(X,Y), dzimums(X, vīrietis)tēvs(T, Rasma): vecāks(T, Rasma), dzimums(T, vīrietis)

Vai ir fakti dzimums(X,Y)? Jā Fakti: dzimums(X,Y)dzimums(B, vīrietis)

8

Page 9: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

4. Faktu un likumu predikātu pakārtotības koks

brālis(X, Rasma)

māte(M, X), māte(M, Rasma), tēvs(T, X), tēvs(T, Rasma), dzimums(X, vīrietis)

vecāks(M, X), dzimums(M, sieviete) vecāks(M, Rasma), dzimums(M, sieviete) vecāks(T, X), dzimums(T, vīrietis) vecāks(T, Rasma), dzimums(T, vīrietis)

Vaicājums: viens vai vairāki predikāti1. predikāts: vai ir atbilstošs fakts (skats)?jā – stop, atrasts faktsnē – jāmeklē likums2. predikāts: vai ir atbilstošs fakts (skats)?jā – stop, atrasts faktsnē – jāmeklē likums...

9

Page 10: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

5. Predikātu pakārtotības koka lapu faktu predikāti

vecāks(M, X)dzimums(M, sieviete)vecāks(M, Rasma)dzimums(M, sieviete)vecāks(T, X)dzimums(T, vīrietis)vecāks(T, Rasma)dzimums(T, vīrietis)dzimums(B, vīrietis)

6. Predikātu pakārtotības koka lapu faktu predikāti bez dublikātiemvecāks(M, X)dzimums(M, sieviete)vecāks(M, Rasma)vecāks(T, X)dzimums(T, vīrietis)vecāks(T, Rasma)dzimums(B, vīrietis)

10

Page 11: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

7. Predikātu (skatu) savienošana

VECĀKS(M, X) V1(M, X) V3(M, X) V5(M,T,X) V6(M,T,X) DZIMUMS(M, sieviete)VECĀKS(M, Rasma)

VECĀKS (T, X) V2(T, X) V4(T, X)DZIMUMS (T, vīrietis)VECĀKS (T, Rasma)DZIMUMS(X, vīrietis)

11

Page 12: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

8. Summārā vāicājuma izveidošana ar WITH konstrukciju

withV1(M, X) as (select VEC, BERfrom VECĀKS, DZIMUMSwhere VEC = VAR and DZIM = 'sieviete'),

V2(T, X) as (select VEC, BERfrom VECĀKS a, DZIMUMS bwhere VEC = VAR and DZIM = 'vīrietis'),

V3(M, X) as (select VEC, Xfrom V1, VECĀKSwhere M = VEC and BER = 'Rasma'),

V4(T, X) as (select VEC, Xfrom V2, VECĀKSwhere T = VEC and BER = 'Rasma'),

V5(M, T, X) as (select a.M, b.T, b.Xfrom V3 a, V4 bwhere a.X = b.X)

select M, T, Xfrom V5, DZIMUMSwhere X = VAR and DZIM = 'vīrietis';

12

Page 13: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

9. Pakārtoto vaicājumu un galvenā vaicājuma rezultāti

V1(M, X) V2(T, X)

V3(M, 'Rasma') V4(T, 'Rasma')

V5(M, T, X)

Galvenais vaicājums

X X

X X

X

X

13

Page 14: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

9. Pārbaude. Jāņa māsas atrašanawithV1(M, X) as (select VEC, BERfrom VECĀKS, DZIMUMSwhere VEC = VAR and DZIM = 'sieviete'),

V2(T, X) as (select VEC, BERfrom VECĀKS a, DZIMUMS bwhere VEC = VAR and DZIM = 'vīrietis'),

V3(M, X) as (select VEC, Xfrom V1, VECĀKSwhere M = VEC and BER = 'Jānis'),

V4(T, X) as (select VEC, Xfrom V2, VECĀKSwhere T = VEC and BER = 'Jānis'),

V5(M, T, B) as (select a.M, b.T, b.Xfrom V3 a, V4 bwhere a.X = b.X)

select M, T, Xfrom V5, DZIMUMSwhere X = VAR and DZIM = 'sieviete';

X

14

Page 15: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

10. Predikātu (skatu) savienojumu rezultāti

DZIMUMSVAR DZIMJūlijs vīrietisAnita sievieteJānis vīrietisRasma sievieteInese vīrietisLiene sievieteZane sievieteMonvīds vīrietis

VECĀKSVEC BERJūlijs JānisJūlijs RasmaAnita JānisAnita RasmaJānis LieneJānis ZaneInese LieneInese ZaneMonvīds Inese

VAR (M) DZIM (sieviete) VEC (M) BER (B)Anita sieviete Anita JānisAnita sieviete Anita RasmaInese sieviete Inese LieneInese sieviete Inese Zane

VAR (M) BER (B) VEC (M) BER (Rasma)Anita Rasma Anita RasmaAnita Jānis Anita Rasma

VAR (T) DZIM (vīrietis) VEC (T) BER (B)Jūlijs vīrietis Jūlijs JānisJūlijs vīrietis Jūlijs RasmaJānis vīrietis Jānis LieneJānis vīrietis Jānis Zane

VAR (M) BER (B) VAR (T) BER (B)Anita Rasma Jūlijs RasmaAnita Jānis Jūlijs Jānis

VAR (T) BER (B) VEC (T) BER (Rasma)Jūlijs Rasma Jūlijs RasmaJūlijs Jānis Jūlijs Rasma

BER (B) VAR (M) VAR (T) VAR (B) DZIM (vīrietis)Jānis Anita Jūlijs Jānis vīrietis

V1(M, X, sieviete)

15

Page 16: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

select M.BER

from (select K.VEC, K.BER from

(select C.VEC, C.BER from (select A.VEC, A.BER from VECĀKS A, DZIMUMS B where A.VEC = B.VAR and B.DZIM = 'sieviete') C,

(select D.VEC, D.BER from VECĀKS D where D.BER = 'Rasma') E where C.VEC = E.VEC) K,

(select F.VEC, F.BER from (select G.VEC, G.BER from VECĀKS G, DZIMUMS H where G.VEC = H.VAR and H.DZIM = 'vīrietis') F, (select I.VEC, I.BER from VECĀKS I where I.BER = 'Rasma') J

where F.VEC = J.VEC) L

where K.BER = L.BER) M, DZIMUMS N

where M.BER = N.VAR and N.DZIM = 'vīrietis';

11. Summārā vaicājuma iegūšana ar SELECT ... FROM (...), (...) ... konstrukciju

16

Page 17: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

declarev1 varchar2(200);v2 varchar2(200);v3 varchar2(200);v4 varchar2(200);v5 varchar2(400);v6 varchar2(400);v7 varchar2(800);m1 varchar2(10); m2 varchar2(10); m3 varchar2(10); begin

V1 := '(select VEC M, BER Xfrom VECĀKS, DZIMUMSwhere VEC = VAR and DZIM = "sieviete");';

V2 := '(select VEC T, BER Xfrom VECĀKS a, DZIMUMS bwhere VEC = VAR and DZIM = "vīrietis");';

V3 := '(select VEC M, Xfrom ' || V1 || ', ' || 'VECĀKS where M = VEC and BER = "Rasma");';

V4 := '(select VEC T, Xfrom ' || V2 ', ' || 'VECĀKS where T = VEC and BER = "Rasma");';

V5(M, T, X) as (select a.M, b.T, b.Xfrom V3 a, V4 bwhere a.X = b.X)

V6 := 'select M, T, Xfrom '|| V5 ', ' || 'DZIMUMS where X = VAR and DZIM = "vīrietis");';

execute immediate V6 into m1, m2, m3; DBMS_OUTPUT.PUT_LINE(m1 || ' ' || m2 || ' ' || m3);end;

17

Page 18: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

Dināmiskā SQL izmantošana kopējā vaicājuma realizēšanaideclarev_1 varchar2(200);v_2 varchar2(200);v_3 varchar2(200);v_4 varchar2(200);v_5 varchar2(400);v_6 varchar2(400);v_7 varchar2(800);m1 varchar2(10); m2 varchar2(10); m3 varchar2(10); beginv_1 := '(select P1.NOS as B, P2.VEC_NOS as M from DZIMUMS P1, VECāKS P2where P1. NOS = P2.BER and P1.DZIM = ''vīrietis'')';v_2 := '(select P3.VAR as M from DZIMUMS P3, VECĀKS P4where P3.VAR = P4.VEC and P3.DZIM = ''sieviete'' and P4.BER = ''Rasma'')';v_3 := '(select P5.VEC as T, P5.BER as B from VECĀKS P5, DZIMUMS P6where P5.VEC = P6.VAR and P6.DZIM = ''vīrietis'')';v_4 := '(select P7.VEC as T from VECĀKS P7 where P7.BER = ''Rasma'')';

v_5 := '(select P8.B, P8.M from '|| v_1 || ' P8, ' || v_2 || ' P9 where P8.M = P9.M )';v_6 := '(select P10. T, P10.B from ' || v_3 || ' P10, ' || v_4 || ' P11 where P10.T = P11.T )';

v_7 := '(select P12.B, P12.M, P13.T from ' || v_5 || ' P12, ' || v_6 || 'P13 where P12.B = P13.B)'; execute immediate v_7 into m1, m2, m3; DBMS_OUTPUT.PUT_LINE(m1 || ' ' || m2 || ' ' || m3);end;

Juris Inese Janis Rezultāts

18

Page 19: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

Deduktīvās datu bāzes realizācijas piemērs.Deduktīvās datu bāzes datu bāzes tabulas un skati

Tabula PERSONASNUM NOSAUKUMS DZIMUMS1 Julijs virietis2 Anita sieviete3 Monvīds virietis4 Anna sieviete5 Janis virietis6 Inese sieviete7 Rasma sieviete8 Juris vīrietis

create table PERSONAS(NUM number Primary key,NOSAUKUMS varchar2(30),DZIMUMS char(8));

insert into PERSONAS values(1, 'Julijs', 'virietis');insert into PERSONAS values(2, 'Anita', 'sieviete');insert into PERSONAS values(3, 'Monvids', 'virietis');insert into PERSONAS values(4, 'Anna', 'sieviete');insert into PERSONAS values(5, 'Janis', 'virietis');insert into PERSONAS values(6, 'Inese', 'sieviete');insert into PERSONAS values(7, 'Rasma', 'sieviete');insert into PERSONAS values(8, 'Juris', 'virietis');

create view DZIMUMS(NOS, DZIM) as

select A.NOSAUKUMS, A.DZIMUMS

from PERSONAS A;

create or replace view VECAKS(VEC_NOS, BERN_NOS) as

select A.NOSAUKUMS, B.NOSAUKUMS

from PERSONAS A, PERSONAS B, VECAKI_S C

where A.NUM = C.V_NUM and B.NUM = C.P_NUM;

Tabula VECAKI_SP_NUM V_NUM

8 58 67 57 66 46 35 25 1

Skats DZIMUMSNOS DZIMJulijs virietisAnita sievieteMonvīds virietisAnna sievieteJānis virietisInese sievieteRasma sievieteJuris virietis

Skats VECAKSVEC_NOS BERN_NOSJulijs JanisAnita JanisMonvīds IneseAnna IneseJānis RasmaInese RasmaJānis JurisInese Juris

create table VECAKI_S(P_NUM number,V_NUM number);insert into VECAKI_S values(8, 5);insert into VECAKI_S values(8, 6);insert into VECAKI_S values(7, 5);insert into VECAKI_S values(7, 6);insert into VECAKI_S values(6, 4);insert into VECAKI_S values(6, 3);insert into VECAKI_S values(5, 2);insert into VECAKI_S values(5, 1);

19

Page 20: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

filtrēšanas vērtības savienošanas vērtības

-----------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------

Skats DZIMUMSNOSAUKUMS DZIMUMSJulijs virietisAnita sievieteMonvids virietisAnna sievieteJanis virietisInese sievieteRasma sievieteJuris virietis

Skats VECAKSVEC_NOS BERN_NOSJulijs JanisAnita JanisMonvids IneseAnna IneseJanis RasmaInese RasmaJanis JurisInese Juris

NOSAUKUMS (B) DZIMUMS (vīrietis) VEC_NOS (M) BERN_NOS (B)Janis virietis Julijs JanisJanis virietis Anita JanisJuris virietis Janis JurisJuris virietis Inese Juris

NOSAUKUMS (M) DZIMUMS (sieviete) VEC_NOS (M) BERN_NOS (Rasma)Inese sieviete Inese Rasma

NOSAUKUMS (T) DZIMUMS (vīrietis) VEC_NOS (T) BERN_NOS (B)Julijs virietis Julijs JanisMonvids virietis Monvids IneseJanis virietis Janis RasmaJanis virietis Janis Juris

VEC_NOS (T) BERN_NOS (Rasma)Janis RasmaInese Rasma

(B) (M) (M)Juris Inese Inese

(T) (B) (T)Janis Rasma JanisJanis Juris Janis

(B) (M) (T) (B)Juris Inese Janis Juris

(B) (M) (T)Juris Inese Janis

Pakārtoto vaicājumu rezultāti

20

Page 21: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

Deduktīvās datu bāzes datu bāzes tabulas un skatiTabula PERSONAS

NUM NOSAUKUMS DZIMUMS1 Jūlijs vīrietis2 Anita sieviete3 Monvīds vīrietis4 Anna sieviete5 Jānis vīrietis6 Inese sieviete7 Rasma sieviete8 Juris vīrietis

create table PERSONAS(NUM number Primary key,NOSAUKUMS varchar2(30),DZIMUMS char(8));

insert into PERSONAS values(1, 'Julijs', 'virietis');insert into PERSONAS values(2, 'Anita', 'sieviete');insert into PERSONAS values(3, 'Monvids', 'virietis');insert into PERSONAS values(4, 'Anna', 'sieviete');insert into PERSONAS values(5, 'Janis', 'virietis');insert into PERSONAS values(6, 'Inese', 'sieviete');insert into PERSONAS values(7, 'Rasma', 'sieviete');insert into PERSONAS values(8, 'Juris', 'virietis');

create view DZIMUMS(NOS, DZIM) as

select A.NOSAUKUMS, A.DZIMUMS

from PERSONAS A;

create or replace view VECAKS(VEC_NOS, BERN_NOS) as

select A.NOSAUKUMS, B.NOSAUKUMS

from PERSONAS A, PERSONAS B, VECAKI_S C

where A.NUM = C.V_NUM and B.NUM = C.P_NUM;

Tabula VECAKI_SP_NUM V_NUM

8 58 67 57 66 46 35 25 1

Skats DZIMUMSNOS DZIMJulijs virietisAnita sievieteMonvīds virietisAnna sievieteJānis virietisInese sievieteRasma sievieteJuris virietis

Skats VECAKSVEC_NOS BERN_NOSJulijs JanisAnita JanisMonvīds IneseAnna IneseJānis RasmaInese RasmaJānis JurisInese Juris

create table VECAKI_S(P_NUM number,V_NUM number);insert into VECAKI_S values(8, 5);insert into VECAKI_S values(8, 6);insert into VECAKI_S values(7, 5);insert into VECAKI_S values(7, 6);insert into VECAKI_S values(6, 4);insert into VECAKI_S values(6, 3);insert into VECAKI_S values(5, 2);insert into VECAKI_S values(5, 1);

21

Page 22: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

Predikāti - fakti

dzimums(X, Y) dzimums(X, sieviete) dzimums(X, vīrietis)

vecāks(X, Y) vecāks(Jānis, Rasma) vecāks(Inese, Rasma)

Predikāti - likumi

māte(M,X): vecāks(M,X), dzimums(M, sieviete)

tēvs(T,X): vecāks(T,X), dzimums(T, vīrietis)

dēls(D,X): vecāks(X,D), dzimums(D, vīrietis)

meita(M, X): vecāks(X,M), dzimums(M, sieviete)

brālis(B,X): māte(M, B), māte(M,X), tēvs(T, B), tēvs(T, X), dzimums(B, vīrietis)

Atribūts: 1) noteikta vērtība; 2) jebkura vērtība; 3) vērtība sasaistei.

1.likums māte 1.atribūts 2. atribūts 3.atribūts Saites ar likumiem un faktiem

Atribūtu saites

2.likums tēvs 1.atribūts 2. atribūts 3.atribūts Saites ar likumiem un faktiem

Atribūtu saites

3.likums dēls 1.atribūts 2. atribūts 3.atribūts Saites ar likumiem un faktiem

Atribūtu saites

4.likums meita 1.atribūts 2. atribūts 3.atribūts Saites ar likumiem un faktiem

Atribūtu saites

5.likums brālis 1.atribūts 2. atribūts 3.atribūts Saites ar likumiem un faktiem

Atribūtu saites

1.fakts dzimums 1.atribūts 2. atribūts 3.atribūts Saites ar likumiem un faktiem

Atribūtu saites

2.fakts vecāks 1.atribūts 2. atribūts 3.atribūts Saites ar likumiem un faktiem

Atribūtu saites

Jauni fakti

1.atribūts 2. atribūts 3.atribūts Saites ar likumiem un faktiem

Atribūtu saites

Pamatdatu bāze Uzdevuma datu bāze

22

Page 23: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

Izveduma mehānisma realizēšanacreate table IZVEDUMA_KOKS(PRED_NUM number,PRED_NOS varchar2(20),TIPS varchar2(20),ATR_SK number,ATR1 varchar2(20),ATR2 varchar2(20),ATR3 varchar2(20));

create sequence VIRKNE_1start with 1increment by 1nomaxvalue;

create or replace package IZVEDUMA_MEH issubtype TEKSTS is varchar2(20);procedure VECAKS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS);procedure DZIMUMS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS);procedure MATE(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS);procedure TEVS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS);procedure DELS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS);procedure MEITA(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS);procedure BRALIS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS);procedure VAICAJUMS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS, atr3 IN OUT TEKSTS, atr4 IN OUT TEKSTS);end;

create or replace package body IZVEDUMA_MEH asprocedure VECAKS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS) isbegin insert into IZVEDUMA_KOKS values(VIRKNE_1.nextval,'VECAKS', 'fakts', 2, atr1, atr2, '');end;procedure DZIMUMS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS) isbegin insert into IZVEDUMA_KOKS values(VIRKNE_1.nextval,'DZIMUMS', 'fakts', 2, atr1, atr2, '');end;procedure MATE(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS) ism1 varchar2(20) := 'sieviete';begin insert into IZVEDUMA_KOKS values(VIRKNE_1.nextval,'MATE', 'likums', 2, atr1, atr2, '');VECAKS(atr1, atr2);DZIMUMS(atr1, m1);end;

23

Page 24: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

procedure TEVS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS) ism1 varchar2(20) := 'virietis' ;begin insert into IZVEDUMA_KOKS values(VIRKNE_1.nextval,'TEVS', 'likums', 2, atr1, atr2, '');VECAKS(atr1, atr2);DZIMUMS(atr1, m1);end;procedure DELS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS) ism1 varchar2(20) := 'virietis' ;begin insert into IZVEDUMA_KOKS values(VIRKNE_1.nextval,'DELS', 'fakts', 2, atr1, atr2, '');VECAKS(atr2, atr1);DZIMUMS(atr1, m1);end;procedure MEITA(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS) ism1 varchar2(20) := 'sieviete' ;begin insert into IZVEDUMA_KOKS values(VIRKNE_1.nextval,'MEITA', 'fakts', 2, atr1, atr2, '');VECAKS(atr2, atr1);DZIMUMS(atr1, m1);end;procedure BRALIS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS) ism1 varchar2(20);begin insert into IZVEDUMA_KOKS values(VIRKNE_1.nextval,'BRALIS', 'likums', 2, atr1, atr2, '');m1 := 'M';MATE(m1, atr1);MATE(m1, atr2);m1 := 'T';TEVS(m1, atr1);TEVS(m1, atr2);m1 := 'virietis';DZIMUMS(atr1, m1);end;procedure VAICAJUMS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS, atr3 IN OUT TEKSTS, atr4 IN OUT TEKSTS) ispredik varchar2(20);begincase atr1when 'BRALIS' thenIZVEDUMA_MEH.BRALIS(atr2, atr3);when 'MATE' thenIZVEDUMA_MEH.MATE(atr2, atr3);when 'TEVS' thenIZVEDUMA_MEH.TEVS(atr2, atr3);when 'VECAKS' thenIZVEDUMA_MEH.VECAKS(atr2, atr3);when 'DZIMUMS' then

24

Page 25: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

IZVEDUMA_MEH.DZIMUMS(atr2, atr3);end case;end;end;

delete IZVEDUMA_KOKS;

drop sequence VIRKNE_1;

create sequence VIRKNE_1start with 1increment by 1nomaxvalue;

declarepar1 varchar2(20) := 'BRALIS';par2 varchar2(20) := 'X';par3 varchar2(20) := 'Rasma';par4 varchar2(20) := '';beginIZVEDUMA_MEH.VAICAJUMS(par1, par2, par3, par4);end;

column PRED_NUM format 99999999;column PRED_NOS format a10;column TIPS format a10;column ATR_SK format 999999999;column ATR1 format a10;column ATR2 format a10;column ATR3 format a10;

select * from IZVEDUMA_KOKS;PRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3------------------------------------------------------------------------------------------------------ 1 BRALIS likums 2 X Rasma 2 MATE likums 2 M X 3 VECAKS fakts 2 M X 4 DZIMUMS fakts 2 M sieviete 5 MATE likums 2 M Rasma 6 VECAKS fakts 2 M Rasma 7 DZIMUMS fakts 2 M sieviete 8 TEVS likums 2 T X 9 VECAKS fakts 2 T X 10 DZIMUMS fakts 2 T virietis 11 TEVS likums 2 T Rasma 12 VECAKS fakts 2 T Rasma 13 DZIMUMS fakts 2 T virietis 14 DZIMUMS fakts 2 X virietis

25

Page 26: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

Vaicājums (Kas ir Rasmas brālis (-ļi)?)

Predikāts 1.atribūts 2.atribūts 3.atribūtsBRALIS B Rasma

Likumu definējumu tabulaLikumanumurs

Sastāv-dalas n.

Lik. vai fakts

Predikāts - likums

Pakārtotie predikāti

Atr.sk. 1.atr. 2.atr. 3.atr.

1 0 L BRALIS 2 B X1 1 L MATE 2 M B1 2 L MATE 2 M X1 3 L TEVS 2 T B1 4 L TEVS 2 T X1 5 F DZIMUMS 2 B virietis2 0 L MATE 2 X Y2 1 F VECAKS 2 X Y2 2 F DZIMUMS 2 X sieviete3 0 L TEVS 2 X Y3 1 F VECAKS 2 X Y3 2 F DZIMUMS 2 X virietis4 0 L DELS 2 X Y4 1 F VECAKS 2 Y X4 2 F DZIMUMS 2 X virietis5 0 L MEITA 2 X Y5 1 F VECAKS 2 Y X5 2 F DZIMUMS 2 X sieviete

Izveduma koka tabulaLik. vai fakts

Predikāts Atr.sk. 1.atr. 2.atr. 3.atr.

L MATE 2 M B

L MATE 2 M Rasma

26

Page 27: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

L TEVS 2 T BL TEVS 2 T RasmaF DZIMUMS 2 B virietisF VECAKS 2 M BF DZIMUMS 2 M sievieteF VECAKS 2 M RasmaF DZIMUMS 2 M sievieteF VECAKS 2 T BF DZIMUMS 2 T virietisF VECAKS 2 T RasmaF DZIMUMS 2 T sieviete

Izveduma koka lapu faktu predikāti (eksistē dublikāti)

Predikāts Atr.sk.

1.atr. 2.atr. 3.atr.

DZIMUMS 2 B virietisVECAKS 2 M BDZIMUMS 2 M sievieteVECAKS 2 M RasmaDZIMUMS 2 M sievieteVECAKS 2 T BDZIMUMS 2 T virietisVECAKS 2 T RasmaDZIMUMS 2 T vīrietis

Dublējošo predikātu izslēgšana (vienas un tās pašas atribūtu vērtības)

1 DZIMUMS 2 B virietis2 VECAKS 2 M B3 DZIMUMS 2 M sieviete4 VECAKS 2 M Rasma5 VECAKS 2 T B6 DZIMUMS 2 T virietis7 VECAKS 2 T Rasma

27

Page 28: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

Izveduma koka faktu predikātu savienošanaPredikāts Atr.skait

s1.atr. 2.atr. 3.atr. Savienojums ar

P1 DZIMUMS 2 B virietis P2P2 VECAKS 2 M B P1P3 DZIMUMS 2 M sieviete P4P4 VECAKS 2 M Rasma P3P5 VECAKS 2 T B P6P6 DZIMUMS 2 T virietis P5P7 VECAKS 2 T Rasma P7------------------------------------------------------------------------------------------------------------------------P1 DZIMUMS 2 B virietis P2P2 VECAKS 2 M B P1

P3 DZIMUMS 2 M sieviete P4P4 VECAKS 2 M Rasma P3

P5 VECAKS 2 T B P6P6 DZIMUMS 2 T virietis P5

P7 VECAKS 2 T Rasma P7

-----------------------------------------------------------------------------------------------------------------------P8 2 B M P9P9 1 M P8P10 2 T B P11P11 1 T P10

-----------------------------------------------------------------------------------------------------------------------P8 2 B M P9P9 1 M P8

P10 2 T B P11P11 1 T P10

------------------------------------------------------------------------------------------------------------------------P12 2 B M P13P13 2 T B P12

------------------------------------------------------------------------------------------------------------------------P12 2 B M P13P13 2 T B P12

-------------------------------------------------------------------------------------------------------------------------

28

Page 29: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

P14 2 B M T

Faktu predikātu savienojumu realizējošie SELECT vaicājumi(select P1.NOS as B, P2.VEC_NOS as M from DZIMUMS P1, VECAKS P2where P1. NOS = P2.BERN_NOS and P1.DZIM = 'virietis') P8

(select P3.NOS as M from DZIMUMS P3, VECAKS P4where P3.NOS = P4.VEC_NOS and P3.DZIM = 'sieviete' and P4.BERN_NOS = 'Rasma') P9

(select P5.VEC_NOS as T, P5.BERN_NOS as B from VECAKS P5, DZIMUMS P6where P5.VEC_NOS = P6.NOS and P6.DZIM = 'virietis') P10

(select P7.VEC_NOS as T from VECAKS P7 where P7.BERN_NOS = 'Rasma') P11---------------------------------------------------------------------------------------------------------------------------(select P8.B, P8.Mfrom ( ... ) P8, ( ... ) P9where P8.M = P9.M ) P12

(select P10. T, P10.Bfrom (...) P10, (...) P11where P10.T = P11.T ) P13 ---------------------------------------------------------------------------------------------------------------------------(select P12.B, P12.M, P13.Tfrom ( ... ) P12, ( ... ) P13where P12.B = P13.B);

29

Page 30: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

filtrēšanas vērtības savienošanas vērtības

-----------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------

Skats DZIMUMSNOSAUKUMS DZIMUMSJulijs virietisAnita sievieteMonvids virietisAnna sievieteJanis virietisInese sievieteRasma sievieteJuris virietis

Skats VECAKSVEC_NOS BERN_NOSJulijs JanisAnita JanisMonvids IneseAnna IneseJanis RasmaInese RasmaJanis JurisInese Juris

NOSAUKUMS (B) DZIMUMS (vīrietis) VEC_NOS (M) BERN_NOS (B)Janis virietis Julijs JanisJanis virietis Anita JanisJuris virietis Janis JurisJuris virietis Inese Juris

NOSAUKUMS (M) DZIMUMS (sieviete) VEC_NOS (M) BERN_NOS (Rasma)Inese sieviete Inese Rasma

NOSAUKUMS (T) DZIMUMS (vīrietis) VEC_NOS (T) BERN_NOS (B)Julijs virietis Julijs JanisMonvids virietis Monvids IneseJanis virietis Janis RasmaJanis virietis Janis Juris

VEC_NOS (T) BERN_NOS (Rasma)Janis RasmaInese Rasma

(B) (M) (M)Juris Inese Inese

(T) (B) (T)Janis Rasma JanisJanis Juris Janis

(B) (M) (T) (B)Juris Inese Janis Juris

(B) (M) (T)Juris Inese Janis

Pakārtoto vaicājumu rezultāti

30

Page 31: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

Likumu tabulas veidošana datu bāzēTabula LIKUMI

L_N

UM

L_N

OS

SAST

_SK

AT

R_1

AT

R_2

AT

R_3

PRE

D_N

OS

PRE

D_T

IPS

AT

R_S

K

AT

R_1

AT

R_2

AT

R_3

1 BRALIS 5 #1 #2 NULL MATE L 2 M #1 NULLMATE L 2 M #2 NULLTEVS L 2 T #1 NULLTEVS L 2 T #2 NULLDZIMUMS F 2 #1 virietis NULL

2 MATE 2 #1 #2 NULL VECAKS F 2 #1 #2 NULLDZIMUMS F 2 #1 sieviete NULL

3 TEVS 2 #1 #2 NULL VECAKS F 2 #1 #2 NULLDZIMUMS F 2 #1 virietis NULL

4 DELS 2 #1 #2 NULL VECAKS F 2 #2 #1 NULLDZIMUMS F 2 #1 virietis NULL

5 MEITA 2 #1 #2 NULL VECAKS F 2 #2 #1 NULLDZIMUMS F 2 #1 sieviete NULL

31

Page 32: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

Izveduma koka tabulas veidošana datu bāzē

Tabula VAICAJUMSP_NUM PRED ATR_1 ATR_2 ATR_31 BRALIS B Rasma NULL

Tabula IZVED_KOKS

L_N

UM

L_N

OS

SAST

_SK

AT

R_1

AT

R_2

AT

R_3

PRE

D_N

OS

PRE

D_T

IPS

AT

R_S

K

AT

R_1

AT

R_2

AT

R_3

1 BRALIS 5 #1 #2 NULL MATE L 2 M #1 NULLMATE L 2 M #2 NULLTEVS L 2 T #1 NULLTEVS L 2 T #2 NULLDZIMUMS F 2 #1 virietis NULL

2 MATE 2 #1 #2 NULL VECAKS F 2 #1 #2 NULLDZIMUMS F 2 #1 sieviete NULL

2 MATE 2 #1 #2 NULL VECAKS F 2 #1 #2 NULLDZIMUMS F 2 #1 sieviete NULL

3 TEVS 2 #1 #2 NULL VECAKS F 2 #1 #2 NULLDZIMUMS F 2 #1 virietis NULL

3 TEVS 2 #1 #2 NULL VECAKS F 2 #1 #2 NULLDZIMUMS F 2 #1 virietis NULL

32

Page 33: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

create or replace type SASTAVDALA as object ( PRED_NOS varchar2(20), PRED_TIPS char(1), ATR_SK number, ATR_1 varchar2(20), ATR_2 varchar2(20), ATR_3 varchar2(20));create or replace type SASTAVDALAS as table of SASTAVDALA;

create table LIKUMI( L_NUM number Primary key, L_NOS varchar2(20), SAST_SK number, ATR_1 varchar2(20), ATR_2 varchar2(20), ATR_3 varchar2(20), L_SAST SASTAVDALAS) nested table L_SAST store as PAKARTOTI_PREDIKATI;

insert into LIKUMI values(1, 'BRALIS', 5, '#1', '#2', NULL, SASTAVDALAS( SASTAVDALA('MATE', 'L', 2, 'M', '#1', NULL), SASTAVDALA('MATE', 'L', 2, 'M', '#2', NULL), SASTAVDALA('TEVS', 'L', 2, 'T', '#1', NULL), SASTAVDALA('TEVS', 'L', 2, 'T', '#2', NULL), SASTAVDALA('DZIMUMS', 'F', 2, '#1', 'virietis', NULL) ) );

insert into LIKUMI values(2, 'MATE', 2, '#1', '#2', NULL, SASTAVDALAS( SASTAVDALA('VECAKS', 'F', 2, '#1', '#2', NULL), SASTAVDALA('DZIMUMS', 'F', 2, '#1', 'sieviete', NULL))); insert into LIKUMI values(3, 'TEVS', 2, '#1', '#2', NULL, SASTAVDALAS( SASTAVDALA('VECAKS', 'F', 2, '#1', '#2', NULL), SASTAVDALA('DZIMUMS', 'F', 2, '#1', 'virietis', NULL)));

insert into LIKUMI values(4, 'DELS', 2, '#1', '#2', NULL, SASTAVDALAS( SASTAVDALA('VECAKS', 'F', 2, '#2', '#1', NULL), SASTAVDALA('DZIMUMS', 'F', 2, '#1', 'virietis', NULL)));

insert into LIKUMI values(5, 'MEITAS', 2, '#1', '#2', NULL, SASTAVDALAS( SASTAVDALA('VECAKS', 'F', 2, '#2', '#1', NULL), SASTAVDALA('DZIMUMS', 'F', 2, '#1', 'sieviete', NULL)));

33

Page 34: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

create table IZVED_KOKS( L_NUM number, L_NOS varchar2(20), SAST_SK number, ATR_1 varchar2(20), ATR_2 varchar2(20), ATR_3 varchar2(20), L_SAST SASTAVDALAS) nested table L_SAST store as PAKARTOTI_PREDIKATI_1;

create table VAICAJUMS(P_NUM number Primary key,PRED varchar2(20),ATR_1 varchar2(20),ATR_2 varchar2(20),ATR_3 varchar2(20));

insert into VAICAJUMS values(1, 'BRALIS', 'B', 'Rasma', NULL);

Substitūciju izdarīšana

declarem1 varchar2(800);m2 varchar2(800);beginm1:= 'insert into LIKUMI values(1, ''BRALIS'', 5, ''#1'', ''#2'', NULL, SASTAVDALAS( SASTAVDALA(''MATE'', ''L'', 2, ''M'', ''#1'', NULL), SASTAVDALA(''MATE'' , ''L'', 2, ''M'', ''#2'', NULL), SASTAVDALA(''TEVS'', ''L'', 2, ''T'', ''#1'', NULL), SASTAVDALA(''TEVS'', ''L'', 2, ''T'', ''#2'', NULL), SASTAVDALA(''DZIMUMS'', ''F'', 2, ''#1'', ''virietis'', NULL) ) );';

m2 := REPLACE(m1, '#1', 'B');--DBMS_OUTPUT.PUT_LINE(m2);end;

34

Page 35: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

Izveduma mehānisma realizēšanacreate table IZVEDUMA_KOKS(PRED_NUM number,PRED_NOS varchar2(20),TIPS varchar2(20),ATR_SK number,ATR1 varchar2(20),ATR2 varchar2(20),ATR3 varchar2(20));

create sequence VIRKNE_1start with 1increment by 1nomaxvalue;

create or replace package IZVEDUMA_MEH issubtype TEKSTS is varchar2(20);procedure VECAKS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS);procedure DZIMUMS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS);procedure MATE(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS);procedure TEVS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS);procedure DELS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS);procedure MEITA(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS);procedure BRALIS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS);procedure VAICAJUMS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS, atr3 IN OUT TEKSTS, atr4 IN OUT TEKSTS);end;

create or replace package body IZVEDUMA_MEH asprocedure VECAKS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS) isbegin insert into IZVEDUMA_KOKS values(VIRKNE_1.nextval,'VECAKS', 'fakts', 2, atr1, atr2, '');end;procedure DZIMUMS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS) isbegin insert into IZVEDUMA_KOKS values(VIRKNE_1.nextval,'DZIMUMS', 'fakts', 2, atr1, atr2, '');end;procedure MATE(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS) ism1 varchar2(20) := 'sieviete';begin insert into IZVEDUMA_KOKS values(VIRKNE_1.nextval,'MATE', 'likums', 2, atr1, atr2, '');VECAKS(atr1, atr2);DZIMUMS(atr1, m1);end;

35

Page 36: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

procedure TEVS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS) ism1 varchar2(20) := 'virietis' ;begin insert into IZVEDUMA_KOKS values(VIRKNE_1.nextval,'TEVS', 'likums', 2, atr1, atr2, '');VECAKS(atr1, atr2);DZIMUMS(atr1, m1);end;procedure DELS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS) ism1 varchar2(20) := 'virietis' ;begin insert into IZVEDUMA_KOKS values(VIRKNE_1.nextval,'DELS', 'fakts', 2, atr1, atr2, '');VECAKS(atr2, atr1);DZIMUMS(atr1, m1);end;procedure MEITA(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS) ism1 varchar2(20) := 'sieviete' ;begin insert into IZVEDUMA_KOKS values(VIRKNE_1.nextval,'MEITA', 'fakts', 2, atr1, atr2, '');VECAKS(atr2, atr1);DZIMUMS(atr1, m1);end;procedure BRALIS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS) ism1 varchar2(20);begin insert into IZVEDUMA_KOKS values(VIRKNE_1.nextval,'BRALIS', 'likums', 2, atr1, atr2, '');m1 := 'M';MATE(m1, atr1);MATE(m1, atr2);m1 := 'T';TEVS(m1, atr1);TEVS(m1, atr2);m1 := 'virietis';DZIMUMS(atr1, m1);end;procedure VAICAJUMS(atr1 IN OUT TEKSTS, atr2 IN OUT TEKSTS, atr3 IN OUT TEKSTS, atr4 IN OUT TEKSTS) ispredik varchar2(20);begincase atr1when 'BRALIS' thenIZVEDUMA_MEH.BRALIS(atr2, atr3);when 'MATE' thenIZVEDUMA_MEH.MATE(atr2, atr3);when 'TEVS' thenIZVEDUMA_MEH.TEVS(atr2, atr3);when 'VECAKS' thenIZVEDUMA_MEH.VECAKS(atr2, atr3);when 'DZIMUMS' then

36

Page 37: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

IZVEDUMA_MEH.DZIMUMS(atr2, atr3);end case;end;end;

delete IZVEDUMA_KOKS;

drop sequence VIRKNE_1;

create sequence VIRKNE_1start with 1increment by 1nomaxvalue;

declarepar1 varchar2(20) := 'BRALIS';par2 varchar2(20) := 'X';par3 varchar2(20) := 'Rasma';par4 varchar2(20) := '';beginIZVEDUMA_MEH.VAICAJUMS(par1, par2, par3, par4);end;

column PRED_NUM format 99999999;column PRED_NOS format a10;column TIPS format a10;column ATR_SK format 999999999;column ATR1 format a10;column ATR2 format a10;column ATR3 format a10;

select * from IZVEDUMA_KOKS;PRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3------------------------------------------------------------------------------------------------------ 1 BRALIS likums 2 X Rasma 2 MATE likums 2 M X 3 VECAKS fakts 2 M X 4 DZIMUMS fakts 2 M sieviete 5 MATE likums 2 M Rasma 6 VECAKS fakts 2 M Rasma 7 DZIMUMS fakts 2 M sieviete 8 TEVS likums 2 T X 9 VECAKS fakts 2 T X 10 DZIMUMS fakts 2 T virietis 11 TEVS likums 2 T Rasma 12 VECAKS fakts 2 T Rasma 13 DZIMUMS fakts 2 T virietis 14 DZIMUMS fakts 2 X virietis

37

Page 38: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

Tabulas IZVEDUMA_KOKS aizpildīšana un dublējošo faktu predikātu nodzēšana

declaresubtype PREDIKATS is varchar2(20);m1 PREDIKATS;m2 PREDIKATS;m3 PREDIKATS;begindelete IZVEDUMA_KOKS;m1 := 'B';m2 := 'Rasma';DEDUKCIJA.BRALIS(m1, m2);-- Dublējošu rindu (faktu predikātu) nodzēšanadelete from IZVEDUMA_KOKS A where A.ROWID =(select MIN(B.ROWID) from IZVEDUMA_KOKS B where B.PRED_NOS = A.PRED_NOSand B.ATR1 = A.ATR1 and B.ATR2 = A.ATR2group by B.PRED_NOS, B.ATR1, B.ATR2having COUNT(B.PRED_NOS)>1);end;

select * from IZVEDUMA_KOKS;

PRED_NOS KOL1 ATR1 KOL2 ATR2 KOL3 ATR3-----------------------------------------------------------------------------------------------------VECAKS VEC_NOS M BERN_NOS BVECAKS VEC_NOS M BERN_NOS RasmaDZIMUMS NOS M DZIMUMS sievieteVECAKS VEC_NOS T BERN_NOS BVECAKS VEC_NOS T BERN_NOS RasmaDZIMUMS NOS T DZIMUMS virietisDZIMUMS NOS B DZIMUMS virietis

38

Page 39: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

PRED_NOS ATR1 ATR2 ATR3-----------------------------------------------VECAKS M B DZIMUMS M sieviete

VECAKS M Rasma

VECAKS T B DZIMUMS T virietis

VECAKS T Rasma

DZIMUMS B virietis

PRED_NOS ATR1 ATR2 ATR3 PRED_NOS ATR1 ATR2 ATR3VECAKS M B DZIMUMS M sieviete P1, P2VECAKS M Rasma P3VECAKS T B DZIMUMS T virietis P4, P5VECAKS T Rasma P6DZIMUMS B virietis P7

M B P9M P10

T B P11T P12

B P13

M B M P9, P10T B T P11, P12B P13

M B P14T B P15

B P16

M B T B P14, P15B P16

M B T P17B P18

M B T B P19

M B T

39

Page 40: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

Faktu predikātu savienojumus realizējošie SELECT vaicājumi(select P1.VEC_NOS as M, P2.NOS as B from VECAKS P1, DZIMUMS P2where P1. VEC_NOS = P2.NOS and P2.DZIM = 'sieviete') P9

(select P3.VEC_NOS as M from VECAKS P3where P3.BERN_NOS = 'Rasma') P10

(select P4.VEC_NOS as T, P4.BERN_NOS as B from VECAKS P4, DZIMUMS P5where P4.VEC_NOS = P5.NOS and P5.DZIM = 'virietis') P11

(select P6.VEC_NOS as T from VECAKS P6, DZIMUMS P7 where P6.VEC_NOS = P7.NOS and P6.BERN_NOS = 'Rasma' and P7.DZIM ='virietis') P12

(select P8.NOS as B from DZIMUMS P8where P8.DZIM = 'virietis') P13---------------------------------------------------------------------------------------------------------------------------(select P9.M, P9.Bfrom (select P1.VEC_NOS as M, P2.NOS as B from VECAKS P1, DZIMUMS P2 where P1. VEC_NOS = P2.NOS and P2.DZIM = 'sieviete') P9, (select P3.VEC_NOS as M from VECAKS P3 where P3.BERN_NOS = 'Rasma') P10where P9.M = P10.M ) P14

(select P11. T, P11.Bfrom (select P4.VEC_NOS as T, P4.BERN_NOS as B from VECAKS P4, DZIMUMS P5 where P4.VEC_NOS = P5.NOS and P5.DZIM = 'virietis') P11, (select P6.VEC_NOS as T from VECAKS P6, DZIMUMS P7 where P6.VEC_NOS = P7.NOS and P6.BERN_NOS = 'Rasma' and P7.DZIM ='virietis') P12where P11.T = P12.T ) P15

(select P13.Bfrom (select P8.NOS as B from DZIMUMS P8 where P8.DZIM = 'virietis') P13 ) P16---------------------------------------------------------------------------------------------------------------------------

40

Page 41: RĪGAS TEHNISKĀ UNIVERSITĀTE - Datu bāzes … · Web viewPRED_NUM PRED_NOS TIPS ATR_SK ATR1 ATR2 ATR3-----1 BRALIS likums 2 X Rasma 2 3 4 DZIMUMS fakts 2 M sieviete 5 MATE likums

(select P14.M, P14.B, P15.Tfrom ( ... ) P14, ( ... ) P15where P14.B = P15.B) P17

(select P16.NOS Bfrom ( ...) P16 ) P18--------------------------------------------------------------------------------------------------------------------------(select P17.M, P17.B, P17.Tfrom ( ... ) P17, ( ... ) P18where P17.B = P18.B) P19

M---------JanisInese

M B------------------------Inese IneseInese IneseAnna AnnaAnita Anita

T B----------------------------Julijs JanisMonvids IneseJanis RasmaJanis Juris

T---------Janis

B-------------JulijsMonvidsJanisJuris

41