• Aucun résultat trouvé

Reasoning about Disclosure in Data Integration in the Presence of Source Constraints

N/A
N/A
Protected

Academic year: 2022

Partager "Reasoning about Disclosure in Data Integration in the Presence of Source Constraints"

Copied!
99
0
0

Texte intégral

(1)

Reasoning about Disclosure in Data Integration in the Presence of Source Constraints

DIG Seminar 21/11/19

Michael Benedikt Pierre Bourhis Louis Jachiet Micha¨el Thomazo

(2)

Motivations

Schema+Constraints

Secret

, →

Secret leaked?

(3)

Motivations

Schema+Constraints

Secret

, →

Secret leaked?

(4)

Motivations

Schema+Constraints

Secret

, →

publication

Secret leaked?

(5)

Motivations

Schema+Constraints

Secret

, →

publication

Secret leaked?

(6)

Motivations

Schema+Constraints

Secret

, →

publication

Secret leaked?

(7)

Motivations

Schema+Constraints

Secret

, →

Safe publication?

Secret leaked?

(8)

Example: Hospital setting

Patients Doctors Buildings

(9)

Example: Hospital setting

DocSpec PatSpec

PatDoc DocBldg PatBldg

IsOpen

(10)

Example

Database schema

Predicate Meaning

IsOpen(b,t) Building b is open on Datet PatBdlg(p,b) Patient p is present in Building b

PatSpec(p,s) Patient p was treated for Specialty s PatDoc(p,d) Patient p was treated by Doctor d DocBldg(d,b) Doctor d is associated with Buildingb

DocSpec(d,s) Doctor d is associated with Specialtys

(11)

Example

Views

OpenHours(b,t) = IsOpen(b,t)

VisitingHours(p,t) = PatBdlg(p,b)∧IsOpen(b,t) DocList(d,s,b) = DocSpec(d,s)∧DocBldg(d,b)

Constraints

PatDoc(p,d) → ∃s PatSpec(p,s)∧DocSpec(d,s) PatBdlg(p,b) → ∃d PatDoc(p,d)∧DocBldg(d,b)

Secret

∃p,s PatSpec(p,s)?

(12)

Example

Views

OpenHours(b,t) = IsOpen(b,t)

VisitingHours(p,t) = PatBdlg(p,b)∧IsOpen(b,t) DocList(d,s,b) = DocSpec(d,s)∧DocBldg(d,b)

Constraints

PatDoc(p,d) → ∃s PatSpec(p,s)∧DocSpec(d,s) PatBdlg(p,b) → ∃d PatDoc(p,d)∧DocBldg(d,b)

Secret

∃p,s PatSpec(p,s)?

(13)

Example

Views

OpenHours(b,t) = IsOpen(b,t)

VisitingHours(p,t) = PatBdlg(p,b)∧IsOpen(b,t) DocList(d,s,b) = DocSpec(d,s)∧DocBldg(d,b)

Constraints

PatDoc(p,d) → ∃s PatSpec(p,s)∧DocSpec(d,s) PatBdlg(p,b) → ∃d PatDoc(p,d)∧DocBldg(d,b)

Secret

∃p,s PatSpec(p,s)?

(14)

Example

OpenHour

B1 Tuesday

B2 Every day 10-17h VisitingHours Charline Tuesday

DocList

Alice Cancer B1

Alice Cancer B2 Bob Radiology B2 Daniel Cancer B1

Constraints

PatBdlg(p,b) → ∃d PatDoc(p,d)∧DocBldg(d,b)

PatDoc(p,d) → ∃s PatSpec(p,s)∧DocSpec(d,s)

Views

OpenHours(b,t) = IsOpen(b,t)

VisitingHours(p,t) = PatBdlg(p,b)∧IsOpen(b,t)

(15)

Example

OpenHour B1 Tuesday B2 Every day 10-17h

VisitingHours Charline Tuesday

DocList

Alice Cancer B1

Alice Cancer B2 Bob Radiology B2 Daniel Cancer B1

Constraints

PatBdlg(p,b) → ∃d PatDoc(p,d)∧DocBldg(d,b)

PatDoc(p,d) → ∃s PatSpec(p,s)∧DocSpec(d,s)

Views

OpenHours(b,t) = IsOpen(b,t)

VisitingHours(p,t) = PatBdlg(p,b)∧IsOpen(b,t)

(16)

Example

OpenHour

B1 Tuesday

B2 Every day 10-17h VisitingHours Charline Tuesday

DocList

Alice Cancer B1

Alice Cancer B2 Bob Radiology B2 Daniel Cancer B1

Constraints

PatBdlg(p,b) → ∃d PatDoc(p,d)∧DocBldg(d,b)

PatDoc(p,d) → ∃s PatSpec(p,s)∧DocSpec(d,s)

Views

OpenHours(b,t) = IsOpen(b,t)

VisitingHours(p,t) = PatBdlg(p,b)∧IsOpen(b,t)

(17)

Example

OpenHour

B1 Tuesday

B2 Every day 10-17h VisitingHours Charline Tuesday

DocList

Alice Cancer B1

Alice Cancer B2 Bob Radiology B2 Daniel Cancer B1

Constraints

PatBdlg(p,b) → ∃d PatDoc(p,d)∧DocBldg(d,b)

PatDoc(p,d) → ∃s PatSpec(p,s)∧DocSpec(d,s)

Views

OpenHours(b,t) = IsOpen(b,t)

VisitingHours(p,t) = PatBdlg(p,b)∧IsOpen(b,t)

(18)

Example

OpenHour

B1 Tuesday

B2 Every day 10-17h VisitingHours Charline Tuesday

DocList

Alice Cancer B1

Alice Cancer B2 Bob Radiology B2 Daniel Cancer B1

Constraints

PatBdlg(p,b) → ∃d PatDoc(p,d)∧DocBldg(d,b) PatDoc(p,d) → ∃s PatSpec(p,s)∧DocSpec(d,s) Views

OpenHours(b,t) = IsOpen(b,t)

VisitingHours(p,t) = PatBdlg(p,b)∧IsOpen(b,t)

(19)

Formalism

Data represented by databases R(1,17),R(2,42),S(23,45), . . .

, →

+ secret Mappings and secrets are CQ V(x,z) :=R(x,y)∧S(y,z)

Constraints are TGD R(x,y)→ ∃z,S(y,z)

(20)

Formalism

Data represented by databases R(1,17),R(2,42),S(23,45), . . .

, →

+ secret Mappings and secrets are CQ V(x,z) :=R(x,y)∧S(y,z)

Constraints are TGD R(x,y)→ ∃z,S(y,z)

(21)

Formalism

Data represented by databases R(1,17),R(2,42),S(23,45), . . .

, →

+ secret Mappings and secrets are CQ V(x,z) :=R(x,y)∧S(y,z)

Constraints are TGD R(x,y)→ ∃z,S(y,z)

(22)

Safe publication

Secret

, →

Schema Problem

Given (schema, constraintsC, viewsV, secretS) do we have for all an instance such that C( ),V( ) =V( ) and

¬S( )?

(23)

Safe publication

Secret

, → ← -

No secret

Schema Problem

Given (schema, constraintsC, viewsV, secretS) do we have for all an instance such that C( ),V( ) =V( ) and

¬S( )?

(24)

Safe publication

Secret

, → ← -

No secret

View Problem

Given (schema, constraintsC, views V, secretS, visible ) do we have such that C( ), V( ) = and¬S( )?

(25)

Safe publication

Secret

, → ← -

No secret

Schema Problem

Given (schema, constraintsC, viewsV, secretS) do we have for all an instance such that C( ), V( ) =V( ) and

¬S( )?

(26)

Which configurations are decidable/tractable for the schema problem?

Secrets Views Constraints

CQ CQ

ProjMap AtomMap GuardedMap CQMap

Let’s talk about constraints...

(27)

Which configurations are decidable/tractable for the schema problem?

Secrets Views Constraints

CQ CQ

ProjMap AtomMap GuardedMap CQMap

Let’s talk about constraints...

(28)

Which configurations are decidable/tractable for the schema problem?

Secrets Views Constraints

CQ

CQ

ProjMap AtomMap GuardedMap CQMap

Let’s talk about constraints...

(29)

Which configurations are decidable/tractable for the schema problem?

Secrets Views Constraints

CQ CQ

ProjMap AtomMap GuardedMap CQMap

Let’s talk about constraints...

(30)

Which configurations are decidable/tractable for the schema problem?

Secrets Views Constraints

CQ CQ

ProjMap AtomMap GuardedMap CQMap

Let’s talk about constraints...

(31)

Which configurations are decidable/tractable for the schema problem?

Secrets Views Constraints

CQ CQ

ProjMap AtomMap GuardedMap CQMap

Let’s talk about constraints...

(32)

Ontologies

(33)

Ontologies in a few words

Anontologyrepresents entities and their relationship to each other.

Ontologiescan be seen as a sort of expressive schema.

Ontologiesallows to enrich data by inferring new factsfrom existing ones.

(34)

Ontologies in a few words

Anontologyrepresents entities and their relationship to each other.

Ontologiescan be seen as a sort of expressive schema.

Ontologiesallows to enrich data by inferring new factsfrom existing ones.

(35)

Ontologies in a few words

Anontologyrepresents entities and their relationship to each other.

Ontologiescan be seen as a sort of expressive schema.

Ontologiesallows to enrich data by inferring new factsfrom existing ones.

(36)

An example of ontology

With plain words:

Allcatsare mammals.

Allmammalsare animals.

(37)

An example of ontology

With plain words:

Allcatsare mammals.

Allmammalsare animals.

With Tuple Generating Dependencies:

CAT(x)→MAMMAL(x) MAMMAL(x)→ANIMAL(x)

(38)

An example of ontology

With plain words:

Allcatsare mammals.

Allmammalsare animals.

Database: {CAT( )}

Query: Are there animals? (∃X,ANIMAL(X)?)

Answer: Yes: CAT( )⇒MAMMAL( )⇒ANIMAL( )

(39)

An example of ontology

With plain words:

Allcatsare mammals.

Allmammalsare animals.

Database: {CAT( )}

Query: Are there animals? (∃X,ANIMAL(X)?)

Answer: Yes: CAT( )⇒MAMMAL( )⇒ANIMAL( )

(40)

An example of ontology

With plain words:

Allcatsare mammals.

Allmammalsare animals.

Database: {CAT( )}

Query: Are there animals? (∃X,ANIMAL(X)?)

Answer: Yes: CAT( )⇒MAMMAL( )⇒ANIMAL( )

(41)

More complex ontological rules

Foreign key constraint:

SEMINAR(team,speaker,room,date)→

∃pers,RESERVED(room,date,pers)

Even more complex constraints:

SEMINAR(team,speaker,room,date)→

∃pers,RESERVED(room,date,pers)∧MEMBER(pers,team)

MEMBER(person,team)→

∃date,room, SEMINAR(team,person,room,date)

(42)

More complex ontological rules

Foreign key constraint:

SEMINAR(team,speaker,room,date)→

∃pers,RESERVED(room,date,pers) Even more complex constraints:

SEMINAR(team,speaker,room,date)→

∃pers,RESERVED(room,date,pers)∧MEMBER(pers,team)

MEMBER(person,team)→

∃date,room, SEMINAR(team,person,room,date)

(43)

More complex ontological rules

Foreign key constraint:

SEMINAR(team,speaker,room,date)→

∃pers,RESERVED(room,date,pers) Even more complex constraints:

SEMINAR(team,speaker,room,date)→

∃pers,RESERVED(room,date,pers)∧MEMBER(pers,team)

MEMBER(person,team)→

∃date,room, SEMINAR(team,person,room,date)

(44)

Tuple Generating Dependencies

∀X~, ~Y ϕ(X~, ~Y) ⇒ ∃Z~ ψ(Y~, ~Z)

Often Omitted

Body Head

Frontier

(45)

Tuple Generating Dependencies

∀X~, ~Y ϕ(X~, ~Y) ⇒ ∃Z~ ψ(Y~, ~Z)

Often Omitted

Body Head

Frontier

(46)

Tuple Generating Dependencies

∀X~, ~Y

ϕ(X~, ~Y) ⇒ ∃Z~ ψ(Y~, ~Z)

Often Omitted

Body Head

Frontier

(47)

Tuple Generating Dependencies

∀X~, ~Y

ϕ(X~, ~Y) ⇒ ∃Z~ ψ(Y~, ~Z)

Often Omitted

Body Head

Frontier

(48)

Open World Query Answering

(49)

Open World Query Answering (OWQA)

Open World Query Answering

• A set of facts F

• A set of TGD constraints C

• A conjunctive query Q Do we have, for all :

(F ⊆ ∧ C( ))⇒ Q( )?

(50)

Open World Query Answering

OWQA(F,C,Q) asks ifQ is true in all completions ofF (respectingC).

TheChase algorithms build a universal model.

OWQA(F,C,Q)⇔Chase(F,C)Q

(51)

Open World Query Answering

OWQA(F,C,Q) asks ifQ is true in all completions ofF (respectingC).

TheChase algorithms build a universal model.

OWQA(F,C,Q)⇔Chase(F,C)Q

(52)

Open World Query Answering

OWQA(F,C,Q) asks ifQ is true in all completions ofF (respectingC).

TheChase algorithms build a universal model.

OWQA(F,C,Q)⇔Chase(F,C)Q

(53)

The Chase

Intuitively the chase simply “applies” the constraints.

With:

• F =CAT( )

• C={CAT(X)→MAMMAL(X),MAMMAL(X)→ ANIMAL(X)}

We obtain:

1. F1 ={CAT( )}

2. F2 ={CAT( ),MAMMAL( )}

3. F3 ={CAT( ),MAMMAL( ),ANIMAL( )}

(54)

The Chase

Intuitively the chase simply “applies” the constraints.

With:

• F =CAT( )

• C={CAT(X)→MAMMAL(X),MAMMAL(X)→ ANIMAL(X)}

We obtain:

1. F1 ={CAT( )}

2. F2 ={CAT( ),MAMMAL( )}

3. F3 ={CAT( ),MAMMAL( ),ANIMAL( )}

(55)

The Chase

Intuitively the chase simply “applies” the constraints.

With:

• F =CAT( )

• C={CAT(X)→MAMMAL(X),MAMMAL(X)→ ANIMAL(X)}

We obtain:

1. F1 ={CAT( )}

2. F2 ={CAT( ),MAMMAL( )}

3. F3 ={CAT( ),MAMMAL( ),ANIMAL( )}

(56)

The Chase

Intuitively the chase simply “applies” the constraints.

With:

• F =CAT( )

• C={CAT(X)→MAMMAL(X),MAMMAL(X)→ ANIMAL(X)}

We obtain:

1. F1 ={CAT( )}

2. F2 ={CAT( ),MAMMAL( )}

3. F3 ={CAT( ),MAMMAL( ),ANIMAL( )}

(57)

The Chase

Intuitively the chase simply “applies” the constraints.

With:

• F ={PERSON(alice)}

• C={PERSON(X)→ ∃Y,PARENT(X,Y)} We obtain:

1. F1 ={PERSON(alice)}

2. F2 ={PERSON(alice),PARENT(alice,Y)}

(58)

The Chase

Intuitively the chase simply “applies” the constraints.

With:

• F ={PERSON(alice)}

• C={PERSON(X)→ ∃Y,PARENT(X,Y)}

We obtain:

1. F1 ={PERSON(alice)}

2. F2 ={PERSON(alice),PARENT(alice,Y)}

(59)

The Chase

Intuitively the chase simply “applies” the constraints.

With:

• F ={PERSON(alice)}

• C={PERSON(X)→ ∃Y,PARENT(X,Y)}

We obtain:

1. F1 ={PERSON(alice)}

2. F2 ={PERSON(alice),PARENT(alice,Y)}

(60)

The Chase

Intuitively the chase simply “applies” the constraints.

With:

• F ={PERSON(alice)}

• C={PERSON(X)→ ∃Y,PARENT(X,Y)}

We obtain:

1. F1 ={PERSON(alice)}

2. F2 ={PERSON(alice),PARENT(alice,Y)}

(61)

The Chase

With:

• F ={PERSON(alice)}

• C={PERSON(X)→ ∃Y,PARENT(X,Y) PARENT(X,Y)→ ∃PERSON(Y)}

We obtain:

1. F1 ={PERSON(alice)}

2. F2 ={PERSON(alice),PARENT(alice,Y)}

3. F3 ={PERSON(alice),PARENT(alice,Y),PERSON(Y)} 4. F4 ={PERSON(alice),PARENT(alice,Y),PERSON(Y),

PARENT(Y,Y0)} . . .

(62)

The Chase

With:

• F ={PERSON(alice)}

• C={PERSON(X)→ ∃Y,PARENT(X,Y) PARENT(X,Y)→ ∃PERSON(Y)}

We obtain:

1. F1 ={PERSON(alice)}

2. F2 ={PERSON(alice),PARENT(alice,Y)}

3. F3 ={PERSON(alice),PARENT(alice,Y),PERSON(Y)} 4. F4 ={PERSON(alice),PARENT(alice,Y),PERSON(Y),

PARENT(Y,Y0)} . . .

(63)

The Chase

With:

• F ={PERSON(alice)}

• C={PERSON(X)→ ∃Y,PARENT(X,Y) PARENT(X,Y)→ ∃PERSON(Y)}

We obtain:

1. F1 ={PERSON(alice)}

2. F2 ={PERSON(alice),PARENT(alice,Y)}

3. F3 ={PERSON(alice),PARENT(alice,Y),PERSON(Y)}

4. F4 ={PERSON(alice),PARENT(alice,Y),PERSON(Y), PARENT(Y,Y0)}

. . .

(64)

The Chase

With:

• F ={PERSON(alice)}

• C={PERSON(X)→ ∃Y,PARENT(X,Y) PARENT(X,Y)→ ∃PERSON(Y)}

We obtain:

1. F1 ={PERSON(alice)}

2. F2 ={PERSON(alice),PARENT(alice,Y)}

3. F3 ={PERSON(alice),PARENT(alice,Y),PERSON(Y)}

4. F4 ={PERSON(alice),PARENT(alice,Y),PERSON(Y), PARENT(Y,Y0)}

. . .

(65)

The Chase

With:

• F ={PERSON(alice)}

• C={PERSON(X)→ ∃Y,PARENT(X,Y) PARENT(X,Y)→ ∃PERSON(Y)}

We obtain:

1. F1 ={PERSON(alice)}

2. F2 ={PERSON(alice),PARENT(alice,Y)}

3. F3 ={PERSON(alice),PARENT(alice,Y),PERSON(Y)}

4. F4 ={PERSON(alice),PARENT(alice,Y),PERSON(Y), PARENT(Y,Y0)}

. . .

(66)

The Chase

The Chase model is not always finite.

When it is not finite it sometimes has a regularity that allows for decidable OWQA.

And in general the OWQA is undecidable. . .

(67)

The Chase

The Chase model is not always finite.

When it is not finite it sometimes has a regularity that allows for decidable OWQA.

And in general the OWQA is undecidable. . .

(68)

The Chase

The Chase model is not always finite.

When it is not finite it sometimes has a regularity that allows for decidable OWQA.

And in general the OWQA is undecidable. . .

(69)

Decidable Classes of TGD

• UID, the foreign key constraint with one variable

A(x, ~Y)→ ∃Z,B(x, ~Z)

• IncDep, the foreign key constraint

A(X~, ~Y)→ ∃Z,B(X~, ~Z)

• LTGD, the foreign key constraint with repetition of atoms A(x,x,y)→ ∃Z,B(x,y,y,z)

• GTGD, one atom in the body guards all variables

A(x,y,z)∧B(x)∧C(y,z)→ ∃w,D(x,y,w)

• FGTGD, one atom in the body guards all the frontier variables A(w,y,y)∧B(x)∧C(y,z)→ ∃u,D(x,y,u)

• Fr1LTGD, one atom in the body guards the only frontier variable

A(w,y,y)∧B(x)∧C(y,z)→ ∃u,D(x,u)

(70)

Decidable Classes of TGD

• UID, the foreign key constraint with one variable

A(x, ~Y)→ ∃Z,B(x, ~Z)

• IncDep, the foreign key constraint

A(X~, ~Y)→ ∃Z,B(X~, ~Z)

• LTGD, the foreign key constraint with repetition of atoms A(x,x,y)→ ∃Z,B(x,y,y,z)

• GTGD, one atom in the body guards all variables

A(x,y,z)∧B(x)∧C(y,z)→ ∃w,D(x,y,w)

• FGTGD, one atom in the body guards all the frontier variables A(w,y,y)∧B(x)∧C(y,z)→ ∃u,D(x,y,u)

• Fr1LTGD, one atom in the body guards the only frontier variable

A(w,y,y)∧B(x)∧C(y,z)→ ∃u,D(x,u)

(71)

Decidable Classes of TGD

• UID, the foreign key constraint with one variable

A(x, ~Y)→ ∃Z,B(x, ~Z)

• IncDep, the foreign key constraint

A(X~, ~Y)→ ∃Z,B(X~, ~Z)

• LTGD, the foreign key constraint with repetition of atoms A(x,x,y)→ ∃Z,B(x,y,y,z)

• GTGD, one atom in the body guards all variables

A(x,y,z)∧B(x)∧C(y,z)→ ∃w,D(x,y,w)

• FGTGD, one atom in the body guards all the frontier variables A(w,y,y)∧B(x)∧C(y,z)→ ∃u,D(x,y,u)

• Fr1LTGD, one atom in the body guards the only frontier variable

A(w,y,y)∧B(x)∧C(y,z)→ ∃u,D(x,u)

(72)

Decidable Classes of TGD

• UID, the foreign key constraint with one variable

A(x, ~Y)→ ∃Z,B(x, ~Z)

• IncDep, the foreign key constraint

A(X~, ~Y)→ ∃Z,B(X~, ~Z)

• LTGD, the foreign key constraint with repetition of atoms A(x,x,y)→ ∃Z,B(x,y,y,z)

• GTGD, one atom in the body guards all variables

A(x,y,z)∧B(x)∧C(y,z)→ ∃w,D(x,y,w)

• FGTGD, one atom in the body guards all the frontier variables A(w,y,y)∧B(x)∧C(y,z)→ ∃u,D(x,y,u)

• Fr1LTGD, one atom in the body guards the only frontier variable

A(w,y,y)∧B(x)∧C(y,z)→ ∃u,D(x,u)

(73)

Decidable Classes of TGD

• UID, the foreign key constraint with one variable

A(x, ~Y)→ ∃Z,B(x, ~Z)

• IncDep, the foreign key constraint

A(X~, ~Y)→ ∃Z,B(X~, ~Z)

• LTGD, the foreign key constraint with repetition of atoms A(x,x,y)→ ∃Z,B(x,y,y,z)

• GTGD, one atom in the body guards all variables

A(x,y,z)∧B(x)∧C(y,z)→ ∃w,D(x,y,w)

• FGTGD, one atom in the body guards all the frontier variables A(w,y,y)∧B(x)∧C(y,z)→ ∃u,D(x,y,u)

• Fr1LTGD, one atom in the body guards the only frontier variable

A(w,y,y)∧B(x)∧C(y,z)→ ∃u,D(x,u)

(74)

Decidable Classes of TGD

• UID, the foreign key constraint with one variable

A(x, ~Y)→ ∃Z,B(x, ~Z)

• IncDep, the foreign key constraint

A(X~, ~Y)→ ∃Z,B(X~, ~Z)

• LTGD, the foreign key constraint with repetition of atoms A(x,x,y)→ ∃Z,B(x,y,y,z)

• GTGD, one atom in the body guards all variables

A(x,y,z)∧B(x)∧C(y,z)→ ∃w,D(x,y,w)

• FGTGD, one atom in the body guards all the frontier variables A(w,y,y)∧B(x)∧C(y,z)→ ∃u,D(x,y,u)

• Fr1LTGD, one atom in the body guards the only frontier variable

(75)

Another approach: query rewriting

With

• MAMMAL(X)→ANIMAL(X)

• CAT(X)→MAMMAL(X)

And the query∃X,ANIMAL(X), we obtain:

• ANIMAL(X)

• ANIMAL(X)∨MAMMAL(X)

• ANIMAL(X)∨MAMMAL(X)∨CAT(X)

(76)

Another approach: query rewriting

With

• MAMMAL(X)→ANIMAL(X)

• CAT(X)→MAMMAL(X)

And the query∃X,ANIMAL(X), we obtain:

• ANIMAL(X)

• ANIMAL(X)∨MAMMAL(X)

• ANIMAL(X)∨MAMMAL(X)∨CAT(X)

(77)

Another approach: query rewriting

With

• MAMMAL(X)→ANIMAL(X)

• CAT(X)→MAMMAL(X)

And the query∃X,ANIMAL(X), we obtain:

• ANIMAL(X)

• ANIMAL(X)∨MAMMAL(X)

• ANIMAL(X)∨MAMMAL(X)∨CAT(X)

(78)

Solving our problem

(79)

Back to our problems

View Problem

Given (schema, constraintsC, views V, secretS, visible ) do we have such that C( ), V( ) = and¬S( )?

Schema Problem

Given (schema, constraintsC, viewsV, secretS) do we have for all an instance such that C( ), V( ) =V( ) and

¬S( )?

(80)

Solving the schema problem

The critical instance The instance

C contains one fact per relation, with one constant: C.

We note

C =V(

C) its view image.

Reduction for schema problem

SchemaProblem(C,V,S) reduces toViewProblem(

C,C,V,S) From Querying Visible and Invisible Information. LICS 2016

(81)

Solving the schema problem

The critical instance The instance

C contains one fact per relation, with one constant: C. We note

C =V(

C) its view image.

Reduction for schema problem

SchemaProblem(C,V,S) reduces toViewProblem(

C,C,V,S) From Querying Visible and Invisible Information. LICS 2016

(82)

Solving the schema problem

The critical instance The instance

C contains one fact per relation, with one constant: C. We note

C =V(

C) its view image.

Reduction for schema problem

SchemaProblem(C,V,S) reduces toViewProblem(

C,C,V,S) From Querying Visible and Invisible Information. LICS 2016

(83)

Reduction to Open World Query Answering (OWQA)

Open World Query Answering

• A set of facts F

• A set of TGD constraints C

• A queryQ

Do we have, for all :

(F ⊆ ∧ C( ))⇒ Q( )?

(84)

Reduction to Open World Query Answering

EncodingViewProblem(

C,C,V,S) as OWQA

• The query is S

• The initial facts encode the forward constraints

C⊆ V( )

• The constraints are the original constraints C.

But we also need to encode the backward constraints V( )⊆

C!

For this we use that adom(V( )) ={C}

(85)

Reduction to Open World Query Answering

EncodingViewProblem(

C,C,V,S) as OWQA

• The query is S

• The initial facts encode the forward constraints

C⊆ V( )

• The constraints are the original constraints C.

But we also need to encode the backward constraints V( )⊆

C!

For this we use that adom(V( )) ={C}

(86)

Reduction to Open World Query Answering

EncodingViewProblem(

C,C,V,S) as OWQA

• The query is S

• The initial facts encode the forward constraints

C⊆ V( )

• The constraints are the original constraints C.

But we also need to encode the backward constraints V( )⊆

C!

For this we use that adom(V( )) ={C}

(87)

Reduction to Open World Query Answering

EncodingViewProblem(

C,C,V,S) as OWQA

• The query is S

• The initial facts encode the forward constraints

C⊆ V( )

• The constraints are the original constraintsC.

But we also need to encode the backward constraints V( )⊆

C!

For this we use that adom(V( )) ={C}

(88)

Reduction to Open World Query Answering

EncodingViewProblem(

C,C,V,S) as OWQA

• The query is S

• The initial facts encode the forward constraints

C⊆ V( )

• The constraints are the original constraintsC.

But we also need to encode the backward constraints V( )⊆

C!

For this we use that adom(V( )) ={C}

(89)

Reduction to Open World Query Answering

EncodingViewProblem(

C,C,V,S) as OWQA

• The query is S

• The initial facts encode the forward constraints

C⊆ V( )

• The constraints are the original constraintsC.

But we also need to encode the backward constraints V( )⊆

C!

For this we use that adom(V( )) ={C}

(90)

Lower bounds

Various reductions from:

• OWQA

• Query evaluation

• Alternating Turing Machines

(91)

Lower bounds

Various reductions from:

• OWQA

• Query evaluation

• Alternating Turing Machines

(92)

Lower bounds

Various reductions from:

• OWQA

• Query evaluation

• Alternating Turing Machines

(93)

Complexity results

Constraints

Views

ProjMap AtomMap GuardedMap CQMap IncDep PSpace ExpTime 2ExpTime 2ExpTime

LTGD ExpTime ExpTime 2ExpTime 2ExpTime GTGD 2ExpTime 2ExpTime 2ExpTime 2ExpTime FGTGD 2ExpTime 2ExpTime 2ExpTime 2ExpTime

Table 1: Complexity of disclosure

⇒all bounds aretight!

(94)

Complexity results

Constraints

Views

ProjMap AtomMap GuardedMap CQMap

IncDep NP NP ExpTime 2ExpTime

LTGD NP NP ExpTime 2ExpTime

GTGD ExpTime ExpTime ExpTime 2ExpTime FGTGD 2ExpTime 2ExpTime 2ExpTime 2ExpTime

Table 2: Complexity of disclosure in bounded arity

⇒all bounds aretight!

(95)

Complexity results

InPTime:

• CQ secret, foreign keys constraints and projection views

• bounded CQ secret,ProjMap,LTGD

(96)

Complexity results

InPTime:

• CQ secret, foreign keys constraints and projection views

• bounded CQ secret,ProjMap,LTGD

(97)

Future Works

• Implement model checker for publication methods.

• How to synthesize publications automatically?

(98)

Future Works

• Implement model checker for publication methods.

• How to synthesize publications automatically?

(99)

Thank you!

Questions?

Références

Documents relatifs

In [10], Nguyen gave the first ExpTime (optimal) tableau decision procedure for check- ing satisfiability of a knowledge base in the DL SHIQ, where the complexity is measured

The pushdown module checking problem with imperfect infor- mation about the control states, but a visible pushdown store, is 2Exptime - complete for propositional

The pushdown module checking problem with imperfect infor- mation about the control states, but a visible pushdown store, is 2Exptime - complete for propositional

In the setting of ontology-based data integration, the risks of unauthorized information disclosure quickly become apparent since the information ex- posed to users depends on a

We therefore propose a global con- straint to ensure that a subset of vertices induces a connected subgraph in O(|E|) time and space complexity.. Furthermore, we also

For instance the constraint G CC , which channels the number of occurrences of values in a set of variables X to another set of variables Y is NP-complete for discrete domains

Based on the notion of “contextual models”, its static part will make it possible to capture formally, by means of the same language and the same semantics, a number of

We study the problem of de- termining whether a given data integration system discloses a source query to an attacker in the pres- ence of constraints, providing both lower and