distributed databases - imperial college londonpjm/co572/lectures/ddb-handout.pdfdistributed...

30
Distributed Databases P.J. McBrien Imperial College London P.J. McBrien (Imperial College London) Distributed Databases 1 / 30

Upload: others

Post on 24-May-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Distributed Databases

P.J. McBrien

Imperial College London

P.J. McBrien (Imperial College London) Distributed Databases 1 / 30

Page 2: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Introduction

Distributed Databases

H1

S1 S2

H2

S3

LAN

H3

S4

H4

LAN

Internet

distributed database (DDB)

several databases at different sites, connected by

Server racks

LAN

Internet

P.J. McBrien (Imperial College London) Distributed Databases 2 / 30

Page 3: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Introduction

Coordination Failure with Communication Failure

S1m1✲ S2

.

.

.

S1

mn−2✲ S2

S1

mn−1✛ S2

S1mn✲ S2

P.J. McBrien (Imperial College London) Distributed Databases 3 / 30

Page 4: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Introduction

CAP Theorem

CAP Theorem

No distributed system may maintain all three of

Consistency: all nodes see the same version of data

Availability: the system always responds within fixed upper limits of time

Partition Tolerance: the system always gives correct responses even whenmessages are lost or network failures occur

C

A P

CA CP

AP

CAe.g. Centralised Database

CPe.g. Distributed RDBMS

APe.g. DNS

P.J. McBrien (Imperial College London) Distributed Databases 4 / 30

Page 5: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Introduction

Distributed Databases: Two Approaches

Heterogeneous DDB

Sites

vary in database technology

managed by different DBAs

designed at different times

Example Architectures

Data Warehouse

Mediator

Example Technologies

ODBC

JDBC

Homogeneous DDB

Sites

use same database technology

managed by one DBA

designed at same time

Example Architectures

RDBMS Clusters

Map Reduce

Example Technologies

MySQL Cluster

Hardoop

P.J. McBrien (Imperial College London) Distributed Databases 5 / 30

Page 6: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Introduction

Distributed Heterogeneous Databases: Physical Differences

Database 1 Database 2

branchsortcode bname cash55-66-56 ’Wimbledon’ 94340.4555-66-34 ’Goodge St’ 8900.6755-66-67 ’Strand’ 34005.00

sortcode,bname,cash”55-66-56”,”Wimbledon”,94340.45”55-66-34”,”Goodge St”,8900.67”55-66-67”,”Strand”,34005.00

RDBMS CSV fileQuery using SQL Query by reading file

Need common data model (CDM) e.g. Relational, ER

P.J. McBrien (Imperial College London) Distributed Databases 6 / 30

Page 7: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Introduction

Distributed Heterogeneous Databases: Semantic Differences

Database 1 Database 2

branchsortcode bname cash

56 ’Wimbledon’ 94340.4534 ’Goodge St’ 8900.6767 ’Strand’ 34005.00

branchsortcode branchname cash55-66-56 ’Wimbledon’ 94340.4555-66-34 ’Goodge St’ 8900.6755-66-67 ’Strand’ 34005.00

assume 55-66- sortcode full sortcodecall branches bname call branches branchname

Need to perform schema integration

P.J. McBrien (Imperial College London) Distributed Databases 7 / 30

Page 8: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Introduction

Logical Model for Homogeneous DDB

localschema1

localschema2

. . . localscheman

global

schema

externalschema1

externalschema2

. . . externalschemam

✒✕ ■

⑥ ■ ❃

P.J. McBrien (Imperial College London) Distributed Databases 8 / 30

Page 9: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Introduction

Logical Model for Heterogeneous Databases

localschema1

localschema2

localscheman

component

schema1

component

schema2

component

scheman

exportschema

exportschema

exportschema

exportschema

global

schema1

global

schema2

global

schemam

externalschema

externalschema

externalschema

externalschema

transform

filter

construct

filter

. . .

. . .

. . .

. . .

. . .

✻ ✻ ✻

❦ ✸ ✻ ✻

✸ ❨ ✶✻

✒ ■

❑ ■ ✒ ✒

P.J. McBrien (Imperial College London) Distributed Databases 9 / 30

Page 10: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Introduction

Operational Model: Mediator Architecture

materialiseddata

virtualdata

localschema

localschema

localschema

wrapper

component

schema

export

schema

wrapper

component

schema

export

schema

wrapper

component

schema

export

schema

mediator

global

schema

externalschema

mediator

global

schema

externalschema

✻ ✻ ✻

✒ ■

✒ ■

P.J. McBrien (Imperial College London) Distributed Databases 10 / 30

Page 11: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Introduction

Operational Model: Data Warehouses

materialiseddata

virtualdata

localschema

localschema

localschema

wrapper

component

schema

export

schema

wrapper

component

schema

export

schema

wrapper

component

schema

export

schema

data warehouse

global

schema

externalschema

data warehouse

global

schema

externalschema

✻ ✻ ✻

✒ ■

✒ ■

P.J. McBrien (Imperial College London) Distributed Databases 11 / 30

Page 12: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Introduction

Topics to Cover in DDB

Operational Aspects

How might data and hence queries be distributed between local schemas?

How might a query on the global schema be optimised to run over the localschemas?

How are ACID properties of transactions maintained in DDB?

Logical Aspects

How are export schemas integrated to form a global schema?

P.J. McBrien (Imperial College London) Distributed Databases 12 / 30

Page 13: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Data Distribution

Data Distribution

branchsortcode bname cash

56 ’Wimbledon’ 94340.4534 ’Goodge St’ 8900.6767 ’Strand’ 34005.00

movementmid no amount tdate1000 100 2300.00 5/1/19991001 101 4000.00 5/1/19991002 100 -223.45 8/1/19991004 107 -100.00 11/1/19991005 103 145.50 12/1/19991006 100 10.23 15/1/19991007 107 345.56 15/1/19991008 101 1230.00 15/1/19991009 119 5600.00 18/1/1999

accountno type cname rate? sortcode

100 ’current’ ’McBrien, P.’ NULL 67101 ’deposit’ ’McBrien, P.’ 5.25 67103 ’current’ ’Boyd, M.’ NULL 34107 ’current’ ’Poulovassilis, A.’ NULL 56119 ’deposit’ ’Poulovassilis, A.’ 5.50 56125 ’current’ ’Bailey, J.’ NULL 56

key branch(sortcode)key branch(bname)key movement(mid)key account(no)

movement(no)fk⇒ account(no)

account(sortcode)fk⇒ branch(sortcode)

P.J. McBrien (Imperial College London) Distributed Databases 13 / 30

Page 14: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Data Distribution Remote Tables

Data Distribution: Remote Tables

GlobalSchema

G

R,T,

U, V

LocalSchemas

S1

R

S2

T,

U

S3

V

remote tables

split tables R, T, . . . between sites S1, S2, . . .

reads r and writes w must be correspondingly distributede.g. r[R], w[R], r[T ], r[U ] → r[R], w[R] on S1 and r[T ], r[U ] on S2

P.J. McBrien (Imperial College London) Distributed Databases 14 / 30

Page 15: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Data Distribution Fragmentation

Data Distribution: Fragmentation

GlobalSchema

Goa, ob,oc, od,oe, of

LocalSchemas

S1

oa, ob

S2

oc, od

S3

oe, of

fragmentation

split data objects oa, ob, . . . of relation R between sites

queries and updates must be correspondingly distributedr[oa], r[ob], r[oc] → r[oa], r[ob] on S1 and r[oc] on S2

P.J. McBrien (Imperial College London) Distributed Databases 15 / 30

Page 16: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Data Distribution Fragmentation

RDB: Horizontal Fragmentation

GlobalSchema

accountno type cname rate? sortcode

100 ’current’ ’McBrien, P.’ NULL 67101 ’deposit’ ’McBrien, P.’ 5.25 67103 ’current’ ’Boyd, M.’ NULL 34107 ’current’ ’Poulovassilis, A.’ NULL 56119 ’deposit’ ’Poulovassilis, A.’ 5.50 56125 ’current’ ’Bailey, J.’ NULL 56

LocalSchemas

account1no type cname rate? sortcode

100 ’current’ ’McBrien, P.’ NULL 67103 ’current’ ’Boyd, M.’ NULL 34107 ’current’ ’Poulovassilis, A.’ NULL 56125 ’current’ ’Bailey, J.’ NULL 56

account2no type cname rate? sortcode

101 ’deposit’ ’McBrien, P.’ 5.25 67119 ’deposit’ ’Poulovassilis, A.’ 5.50 56

account1 = σtype=currentaccount

account2 = σtype 6=currentaccount

P.J. McBrien (Imperial College London) Distributed Databases 16 / 30

Page 17: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Data Distribution Fragmentation

Quiz 1: Speed and Reliability of Horizontal Fragmentation

accountno type cname rate? sortcode100 ’current’ ’McBrien, P.’ NULL 67101 ’deposit’ ’McBrien, P.’ 5.25 67103 ’current’ ’Boyd, M.’ NULL 34107 ’current’ ’Poulovassilis, A.’ NULL 56119 ’deposit’ ’Poulovassilis, A.’ 5.50 56125 ’current’ ’Bailey, J.’ NULL 56

SELECT noFROM accountWHERE cname LIKE ’McBrien%’

If account is horizontally fragmented on no, compared with a single siteversion, is the DDB

A

FasterLess Reliable

B

FasterMore Reliable

C

SlowerLess Reliable

D

SlowerMore Reliable

P.J. McBrien (Imperial College London) Distributed Databases 17 / 30

Page 18: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Data Distribution Fragmentation

Quiz 2: Horizontal fragmentation attributes

accountno type cname rate? sortcode100 ’current’ ’McBrien, P.’ NULL 67101 ’deposit’ ’McBrien, P.’ 5.25 67103 ’current’ ’Boyd, M.’ NULL 34107 ’current’ ’Poulovassilis, A.’ NULL 56119 ’deposit’ ’Poulovassilis, A.’ 5.50 56125 ’current’ ’Bailey, J.’ NULL 56

Which is the worst attribute to fragment on?

Ano

B

type

Ccname

D

rate

P.J. McBrien (Imperial College London) Distributed Databases 18 / 30

Page 19: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Data Distribution Fragmentation

RDB: Derived Horizontal Fragmentation

movementmid no amount tdate1000 100 2300.00 5/1/19991002 100 -223.45 8/1/19991005 103 145.50 12/1/19991006 100 10.23 15/1/19991004 107 -100.00 11/1/19991007 107 345.56 15/1/1999

S1

movementmid no amount tdate1001 101 4000.00 5/1/19991008 101 1230.00 15/1/19991009 119 5600.00 18/1/1999

S2

movementi = movement⋉ accounti

P.J. McBrien (Imperial College London) Distributed Databases 19 / 30

Page 20: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Data Distribution Fragmentation

Derived Relational Algebra: Semi Join ⋉

Semi Join

R ⋉ T = R ⋊⋉ πAttr(R)∩Attr(T )T

Semi Join

account⋉movement = account ⋊⋉ πnomovement

account⋉movementno type cname rate? sortcode100 ’current’ ’McBrien, P.’ NULL 67101 ’deposit’ ’McBrien, P.’ 5.25 67103 ’current’ ’Boyd, M.’ NULL 34107 ’current’ ’Poulovassilis, A.’ NULL 56119 ’deposit’ ’Poulovassilis, A.’ 5.50 56

P.J. McBrien (Imperial College London) Distributed Databases 20 / 30

Page 21: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Data Distribution Fragmentation

RDB: Vertical Fragmentation

accountno type rate? sortcode

100 ’current’ NULL 67101 ’deposit’ 5.25 67103 ’current’ NULL 34107 ’current’ NULL 56119 ’deposit’ 5.50 56125 ’current’ NULL 56

S1

accountno cname

100 ’McBrien, P.’101 ’McBrien, P.’103 ’Boyd, M.’107 ’Poulovassilis, A.’119 ’Poulovassilis, A.’125 ’Bailey, J.’

S2

account1 = πno,type,rate,sortcodeaccount

account2 = πno,cnameaccount

P.J. McBrien (Imperial College London) Distributed Databases 21 / 30

Page 22: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Data Distribution Fragmentation

Quiz 3: Vertical Fragmention

branchsortcode bname cash

56 ’Wimbledon’ 94340.4534 ’Goodge St’ 8900.6767 ’Strand’ 34005.00

key(bname)key(sortcode)

Which of the following is a correct vertical fragmentation of branch?

A

πbname,cash branchπsortcode,cash branch

B

πbname,sortcode branchπcash branch

C

πbname,cash branchπsortcode branch

D

πbname,cash branchπsortcode,bname branch

P.J. McBrien (Imperial College London) Distributed Databases 22 / 30

Page 23: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Data Distribution Fragmentation

RA Definitions

Horizonal Fragmentation

R = R1 ∪ . . . ∪Rn

‘plain’ horizontal fragmentation splits rows using σ

R1 = σP1R, . . . , Rn = σPn

R

derived horizontal fragmentation splits rows using ⋉

R1 = R ⋉ S1, . . . , Rn = R⋉ Sn

R ⋉ S = R ⋊⋉ πR∩S(S)

Vertical Fragmentation

R = R1 ⋊⋉ . . . ⋊⋉ Rn

vertical fragmentation splits rows using π

R1 = πattrs1R1, . . . , Rn = πattrsnR

A loss-less join decomposition

P.J. McBrien (Imperial College London) Distributed Databases 23 / 30

Page 24: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Data Distribution Fragmentation

Worksheet: Fragmentation

accountno type cname rate? sortcode

100 ’current’ ’McBrien, P.’ NULL 67101 ’deposit’ ’McBrien, P.’ 5.25 67103 ’current’ ’Boyd, M.’ NULL 34

S1

accountno type cname rate? sortcode107 ’current’ ’Poulovassilis, A.’ NULL 56119 ’deposit’ ’Poulovassilis, A.’ 5.50 56125 ’current’ ’Bailey, J.’ NULL 56

S2

P.J. McBrien (Imperial College London) Distributed Databases 24 / 30

Page 25: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Data Distribution Fragmentation

Worksheet: Fragmentation

accountno type sortcode

100 ’current’ 67101 ’deposit’ 67103 ’current’ 34107 ’current’ 56119 ’deposit’ 56125 ’current’ 56

S1

accountsortcode cname

67 ’McBrien, P.’67 ’McBrien, P.’34 ’Boyd, M.’56 ’Poulovassilis, A.’56 ’Poulovassilis, A.’56 ’Bailey, J.’

S2

P.J. McBrien (Imperial College London) Distributed Databases 25 / 30

Page 26: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Data Distribution Fragmentation

RDB: Hybrid Fragmentation

accountno type rate? sortcode

100 ’current’ NULL 67103 ’current’ NULL 34107 ’current’ NULL 56125 ’current’ NULL 56

S1

accountno cname100 ’McBrien, P.’103 ’Boyd, M.’107 ’Poulovassilis, A.’125 ’Bailey, J.’

S3

accountno type rate? sortcode

101 ’deposit’ 5.25 67119 ’deposit’ 5.50 56

S2

accountno cname

101 ’McBrien, P.’119 ’Poulovassilis, A.’

S4

account1 = πno,type,rate,sortcode(σtype=currentaccount)account2 = πno,type,rate,sortcode(σtype 6=currentaccount)account3 = πno,cname(σtype=currentaccount)account4 = πno,cname(σtype 6=currentaccount)

P.J. McBrien (Imperial College London) Distributed Databases 26 / 30

Page 27: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Data Distribution Replication

Data Distribution: Replication

GlobalSchema

Goa, ob,oc, od,oe, of

LocalSchemas

S1oa, ob,oc, od,oe, of

S2oa, ob,oc, od,oe, of

S3oa, ob,oc, od,oe, of

replication

copy data objects oa, ob, . . . of R between sites

queries may run on any siter[oa], r[ob], r[oc] → r[oa], r[ob], r[oc] on S1 (or on S2 or on S3)

updates write on all sitesr[oa], w[oa] → r[oa], w[oa] on S1, and w[oa] on S2 and S3

P.J. McBrien (Imperial College London) Distributed Databases 27 / 30

Page 28: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Data Distribution Replication

Quiz 4: Speed and Reliability of Replication: Reads

accountno type cname rate? sortcode100 ’current’ ’McBrien, P.’ NULL 67101 ’deposit’ ’McBrien, P.’ 5.25 67103 ’current’ ’Boyd, M.’ NULL 34107 ’current’ ’Poulovassilis, A.’ NULL 56119 ’deposit’ ’Poulovassilis, A.’ 5.50 56125 ’current’ ’Bailey, J.’ NULL 56

SELECT noFROM accountWHERE cname LIKE ’McBrien%’

Considering queries like those above, if account is replicated on several sites,compared with a single site version, is the DDB

A

FasterLess Reliable

B

FasterMore Reliable

C

SlowerLess Reliable

D

SlowerMore Reliable

P.J. McBrien (Imperial College London) Distributed Databases 28 / 30

Page 29: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Data Distribution Replication

Quiz 5: Speed and Reliability of Replication: Writes

accountno type cname rate? sortcode100 ’current’ ’McBrien, P.’ NULL 67101 ’deposit’ ’McBrien, P.’ 5.25 67103 ’current’ ’Boyd, M.’ NULL 34107 ’current’ ’Poulovassilis, A.’ NULL 56119 ’deposit’ ’Poulovassilis, A.’ 5.50 56125 ’current’ ’Bailey, J.’ NULL 56

UPDATE accountSET r a t e =2.0WHERE type=’ d e p o s i t ’

Considering queries like those above, if account is replicated on several sites,compared with a single site version, is the DDB

A

FasterLess Reliable

B

FasterMore Reliable

C

SlowerLess Reliable

D

SlowerMore Reliable

P.J. McBrien (Imperial College London) Distributed Databases 29 / 30

Page 30: Distributed Databases - Imperial College Londonpjm/CO572/lectures/ddb-handout.pdfDistributed Databases H1 S1 S2 H2 S3 LAN H3 S4 H4 LAN Internet distributeddatabase(DDB) several databases

Data Distribution Migration

Data Distribution: Migration

GlobalSchema

Goa, ob,oc, od,oe, of

LocalSchemas

S1

oa, ob

S2

oc, od

S3

oe, of

LocalSchemas

S1

oa

S2

ob, oc, od

S3

oe, of

P.J. McBrien (Imperial College London) Distributed Databases 30 / 30