5
Semantische Integritätsbedingungen AIFB SS2001 1 3.6.1 3.6.1 assert-Klausel assert-Klausel (2/6) (2/6) Beispiel 3-2: Angestellter: (Ang-Nr, Ang-Name, Gehalt, Familienstand, Abt-Bez). ib1: Der Familienstand eines Angestellten ist entweder „ledig”, „verheiratet”, „verwitwet” oder „geschieden”. ASSERT ib1 ON Angestellter: Familienstand IN (’ledig’, ’verheiratet’, ’verwitwet’, ’geschieden’).

3.6.1 assert-Klausel (2/6)

  • Upload
    azuka

  • View
    24

  • Download
    0

Embed Size (px)

DESCRIPTION

3.6.1 assert-Klausel (2/6). Beispiel 3-2: Angestellter: (Ang-Nr, Ang-Name, Gehalt, Familienstand, Abt-Bez) . ib1 : Der Familienstand eines Angestellten ist entweder „ledig”, „verheiratet”, „verwitwet” oder „geschieden”. - PowerPoint PPT Presentation

Citation preview

Page 1: 3.6.1  assert-Klausel (2/6)

Sem

anti

sche

Int

egri

täts

bedi

ngun

gen

AIF

B

SS

2001

1

3.6.1 3.6.1 assert-Klauselassert-Klausel (2/6)(2/6)

Beispiel 3-2:

Angestellter: (Ang-Nr, Ang-Name, Gehalt, Familienstand, Abt-Bez).

ib1:

Der Familienstand eines Angestellten ist entweder „ledig”,

„verheiratet”, „verwitwet” oder „geschieden”.

ASSERT ib1 ON Angestellter:

Familienstand IN

(’ledig’, ’verheiratet’, ’verwitwet’,

’geschieden’).

Page 2: 3.6.1  assert-Klausel (2/6)

Sem

anti

sche

Int

egri

täts

bedi

ngun

gen

AIF

B

SS

2001

2

3.6.1 3.6.1 assert-Klauselassert-Klausel (3/6)(3/6)

ib2:

Das Gehalt aller Angestellten in Abteilung xyz muß größer

als 15.000 sein.

ASSERT ib2 ON Angestellter:

NOT EXISTS

(SELECT FROM Angestellter

WHERE Abt-Bez = ’xyz’

AND Gehalt 15000).

Alternative Bedinguung:

Gehalt > 15000 OR Abt-Bez <> ’xyz’

Page 3: 3.6.1  assert-Klausel (2/6)

Sem

anti

sche

Int

egri

täts

bedi

ngun

gen

AIF

B

SS

2001

3

3.6.1 3.6.1 assert-Klauselassert-Klausel (4/6)(4/6)

Beispiel 3-3:

Lagerbestand: (Produkt-Nr, Menge).

ib3:

Ein Tupel der Relation Lagerbestand darf nur gelöscht

werden, wenn der Wert von Menge gleich 0 ist.

ASSERT ib3

ON DELETION OF Lagerbestand:

Menge = 0.

Page 4: 3.6.1  assert-Klausel (2/6)

Sem

anti

sche

Int

egri

täts

bedi

ngun

gen

AIF

B

SS

2001

4

3.6.1 3.6.1 assert-Klauselassert-Klausel (5/6)(5/6)

ib4:

Ein Tupel darf nur dann in die Relation Lagerbestand

eingefügt werden, wenn der Wert von Menge größer als 0

ist.

ASSERT ib4

ON INSERTION OF Lagerbestand:

Menge > 0.

Page 5: 3.6.1  assert-Klausel (2/6)

Sem

anti

sche

Int

egri

täts

bedi

ngun

gen

AIF

B

SS

2001

5

3.6.1 3.6.1 assert-Klauselassert-Klausel (6/6)(6/6)

Beispiel 3-4: (über mehrere Relationen)

Angestellter: (Ang-Nr, Ang-Name, Gehalt, Familienstand, Abt-Bez).

Abteilung: (Abt-Bez, Abt-Leiter, Geh-Summe, Ang-Zahl, Budget).

ib5:

Das Gehalt eines Angestellten darf das Durchschnittsgehalt

seiner Abteilung nicht um mehr als 20 % übersteigen.

ASSERT ib5 ON Angestellter AngX:

AngX.Gehalt 1.2 *

(SELECT AVG(AngY.Gehalt)

FROM Angestellter AngY

WHERE AngX.Abt-Bez = AngY.Abt-Bez).