Physical Database Design
5DV120 — Database System Principles Ume˚ a University Department of Computing Science Stephen J. Hegner hegner@cs.umu.se http://www.cs.umu.se/~hegner
Physical Database Design 20160420 Slide 1 of 111
Physical Database Design 5DV120 Database System Principles Ume a - - PowerPoint PPT Presentation
Physical Database Design 5DV120 Database System Principles Ume a University Department of Computing Science Stephen J. Hegner hegner@cs.umu.se http://www.cs.umu.se/~hegner Physical Database Design 20160420 Slide 1 of 111 Data
Physical Database Design 20160420 Slide 1 of 111
Physical Database Design 20160420 Slide 2 of 111
Physical Database Design 20160420 Slide 3 of 111
CREATE TABLE department (dept_name VARCHAR (20) , building VARCHAR (15) , budget NUMERIC (12 ,2) CHECK (budget > 0), PRIMARY KEY (dept_name) );
Physical Database Design 20160420 Slide 4 of 111
Physical Database Design 20160420 Slide 5 of 111
Fixed Field1 Fixed Field2 Fixed Field3 Var Field Count Var Field1 Loc Var Field2 Loc Var Field Data
Physical Database Design 20160420 Slide 6 of 111
Physical Database Design 20160420 Slide 7 of 111
Physical Database Design 20160420 Slide 8 of 111
10101 Srinivasan
65000 12121 Wu Finance 90000 15151 Mozart Music 40000 22222 Einstein Physics 95000 32343 El Said History 60000 33456 Gold Physics 87000 45565 Katz
75000 58583 Califieri History 62000 76543 Singh Finance 80000 76766 Crick Biology 72000 83821 Brandt
92000 98345 Kim
80000
Physical Database Design 20160420 Slide 9 of 111
10101 Srinivasan
65000 12121 Wu Finance 90000 15151 Mozart Music 40000 22222 Einstein Physics 95000 32343 El Said History 60000 33456 Gold Physics 87000 45565 Katz
75000 58583 Califieri History 62000 76543 Singh Finance 80000 76766 Crick Biology 72000 83821 Brandt
92000 98345 Kim
80000
Physical Database Design 20160420 Slide 9 of 111
10101 Srinivasan
65000 12121 Wu Finance 90000 15151 Mozart Music 40000 22222 Einstein Physics 95000 32343 El Said History 60000 33456 Gold Physics 87000 45565 Katz
75000 58583 Califieri History 62000 76543 Singh Finance 80000 76766 Crick Biology 72000 83821 Brandt
92000 98345 Kim
80000
Physical Database Design 20160420 Slide 10 of 111
10101 Srinivasan
65000 12121 Wu Finance 90000 15151 Mozart Music 40000 22222 Einstein Physics 95000 32343 El Said History 60000 33456 Gold Physics 87000 45565 Katz
75000 58583 Califieri History 62000 76543 Singh Finance 80000 76766 Crick Biology 72000 83821 Brandt
92000 98345 Kim
80000
Physical Database Design 20160420 Slide 10 of 111
Some authors limit the term clustering index to indices on
Physical Database Design 20160420 Slide 11 of 111
00000 20000 33000 60000 76600 10101 Srinivasan
65000 12121 Wu Finance 90000 15151 Mozart Music 40000 22222 Einstein Physics 95000 32343 El Said History 60000 33456 Gold Physics 87000 45565 Katz
75000 58583 Califieri History 62000 76543 Singh Finance 80000 76766 Crick Biology 72000 83821 Brandt
92000 98345 Kim
80000
Physical Database Design 20160420 Slide 12 of 111
Biology
Finance History Music Physics 76766 Crick Biology 72000 10101 Srinivasan
65000 45565 Katz
75000 83821 Brandt
92000 98345 Kim
80000 12121 Wu Finance 90000 76543 Singh Finance 80000 32343 El Said History 60000 58583 Califieri History 62000 15151 Mozart Music 40000 22222 Einstein Physics 95000 33456 Gold Physics 87000
Physical Database Design 20160420 Slide 13 of 111
Biology
Finance History Music Physics 76766 Crick Biology 72000 10101 Srinivasan
65000 45565 Katz
75000 83821 Brandt
92000 98345 Kim
80000 12121 Wu Finance 90000 76543 Singh Finance 80000 32343 El Said History 60000 58583 Califieri History 62000 15151 Mozart Music 40000 22222 Einstein Physics 95000 33456 Gold Physics 87000
Physical Database Design 20160420 Slide 13 of 111
B H L O 83821 Brandt
92000 76766 Crick Biology 72000 58583 Califieri History 62000 22222 Einstein Physics 95000 32343 El Said History 60000 33456 Gold Physics 87000 45565 Katz
75000 98345 Kim
80000 00001 Kim Finance 200000 15151 Mozart Music 40000 76543 Singh Finance 80000 10101 Srinivasan
65000 12121 Wu Finance 90000
Physical Database Design 20160420 Slide 14 of 111
Biology
Finance History Music Physics ; ; ; ; ; ; ; 10101 Srinivasan
65000 12121 Wu Finance 90000 15151 Mozart Music 40000 22222 Einstein Physics 95000 32343 El Said History 60000 33456 Gold Physics 87000 45565 Katz
75000 58583 Califieri History 62000 76543 Singh Finance 80000 76766 Crick Biology 72000 83821 Brandt
92000 98345 Kim
80000
Physical Database Design 20160420 Slide 15 of 111
00000 33000 00000 20000 33000 76600 10101 Srinivasan
65000 12121 Wu Finance 90000 15151 Mozart Music 40000 22222 Einstein Physics 95000 32343 El Said History 60000 33456 Gold Physics 87000 45565 Katz
75000 58583 Califieri History 62000 76543 Singh Finance 80000 76766 Crick Biology 72000 83821 Brandt
92000 98345 Kim
80000
Physical Database Design 20160420 Slide 16 of 111
Physical Database Design 20160420 Slide 17 of 111
Physical Database Design 20160420 Slide 18 of 111
Physical Database Design 20160420 Slide 19 of 111
Physical Database Design 20160420 Slide 20 of 111
Some authors define the order to be ⌊n/2⌋ relative to the above
Physical Database Design 20160420 Slide 21 of 111
Physical Database Design 20160420 Slide 22 of 111
Physical Database Design 20160420 Slide 23 of 111
Physical Database Design 20160420 Slide 24 of 111
Physical Database Design 20160420 Slide 25 of 111
Physical Database Design 20160420 Slide 26 of 111
Physical Database Design 20160420 Slide 27 of 111
Physical Database Design 20160420 Slide 28 of 111
Physical Database Design 20160420 Slide 29 of 111
20160420 Slide 30 of 111
20160420 Slide 31 of 111
Physical Database Design 20160420 Slide 32 of 111
20160420 Slide 33 of 111
20160420 Slide 34 of 111
Physical Database Design 20160420 Slide 35 of 111
Physical Database Design 20160420 Slide 36 of 111
20160420 Slide 37 of 111
20160420 Slide 38 of 111
20160420 Slide 39 of 111
Physical Database Design 20160420 Slide 40 of 111
Physical Database Design 20160420 Slide 41 of 111
Physical Database Design 20160420 Slide 42 of 111
Physical Database Design 20160420 Slide 43 of 111
d−1
Physical Database Design 20160420 Slide 44 of 111
d−1
d
Physical Database Design 20160420 Slide 45 of 111
m+1
Physical Database Design 20160420 Slide 46 of 111
m+1
1+1
Physical Database Design 20160420 Slide 47 of 111
Physical Database Design 20160420 Slide 48 of 111
Physical Database Design 20160420 Slide 49 of 111
Physical Database Design 20160420 Slide 50 of 111
d
Physical Database Design 20160420 Slide 51 of 111
d
6
6
Physical Database Design 20160420 Slide 52 of 111
d
6
6
d
6
6
Physical Database Design 20160420 Slide 53 of 111
d
4
4
d
4
4
Physical Database Design 20160420 Slide 54 of 111
Physical Database Design 20160420 Slide 55 of 111
r r+1
Physical Database Design 20160420 Slide 56 of 111
Physical Database Design 20160420 Slide 57 of 111
Physical Database Design 20160420 Slide 58 of 111
Physical Database Design 20160420 Slide 59 of 111
8 10 13 14 15 18 19 21 23 25 30 33 36 38 40 42 44 46 50 53 56 58 60 65
Physical Database Design 20160420 Slide 60 of 111
8 10 13 14 15 18 19 21 23 25 30 33 36 38 40 42 44 46 50 53 56 58 60 65
Physical Database Design 20160420 Slide 61 of 111
8 10 13 14 15 18 19 21 23 25 30 33 36 38 40 42 44 46 50 53 56 58 60 65
Physical Database Design 20160420 Slide 62 of 111
8 10 13 14 15 18 19 21 23 25 30 33 36 38 40 42 44 46 50 53 56 58 60 65
8 10 13 14 15 18 19 20 21 23 25 30 33 36 38 40 42 44 46 50 53 56 58 60 65
Physical Database Design 20160420 Slide 63 of 111
8 10 13 14 15 18 19 21 23 25 30 33 36 38 40 42 44 46 50 53 56 58 60 65
8 10 13 14 15 18 19 20 21 23 25 30 33 36 38 40 42 44 46 50 53 56 58 60 65
Physical Database Design 20160420 Slide 64 of 111
3 6 7 8 10 13 14 15 16 18 23 25 30 32 39 40 41 42 44 46 50 53 56 58 60 65
8 10 13 14 15 16 18 23 25 28 30 32 39 40 41 42 44 46 50 53 56 58 60 65
Physical Database Design 20160420 Slide 65 of 111
8 10 13 14 15 18 19 21 23 25 30 33 36 38 40 42 44 46 50 53 56 58 60 65
8 10 13 14 15 18 19 23 25 30 33 36 38 40 42 44 46 50 53 56 58 60 65
Physical Database Design 20160420 Slide 66 of 111
8 10 13 14 15 23 25 30 36 38 40 42 44 46 50 53 56 58 60 65
8 10 13 14 15 23 25 30 38 40 42 44 46 50 53 56 58 60 65
Physical Database Design 20160420 Slide 67 of 111
8 10 13 14 15 23 25 30 38 40 42 44 46 50 53 56 58 60 65
3 6 7 8 10 13 14 15 23 25 30 40 42 44 46 50 53 56 58 60 65
Physical Database Design 20160420 Slide 68 of 111
8 10 13 14 15 16 18 23 25 28 30 32 39 40 41 42 44 46 50 53 56 58 60 65
Physical Database Design 20160420 Slide 69 of 111
8 10 13 14 15 16 18 23 25 28 30 32 39 40 41 42 44 46 50 53 56 58 60 65
Physical Database Design 20160420 Slide 69 of 111
Physical Database Design 20160420 Slide 70 of 111
Physical Database Design 20160420 Slide 71 of 111
Physical Database Design 20160420 Slide 72 of 111
(m+1)·r
Physical Database Design 20160420 Slide 73 of 111
(m+1)·r
(1+1)·8
Physical Database Design 20160420 Slide 74 of 111
Physical Database Design 20160420 Slide 75 of 111
(m+1)·r
(102+1)·15
Physical Database Design 20160420 Slide 76 of 111
2
d−1
2
Physical Database Design 20160420 Slide 77 of 111
d−2
Physical Database Design 20160420 Slide 78 of 111
1 · · · 5 6 · · · 10 11· · · 15 16· · · 20 21· · · 25 26· · · 30 31· · · 35 36· · · 40 41· · · 45 46· · · 50 51· · · 55 56· · · 60 61· · · 65 66· · · 70
Physical Database Design 20160420 Slide 79 of 111
1 · · · 5 6 · · · 10 11· · · 15 16· · · 20 21· · · 25 26· · · 30 31· · · 35 36· · · 40 41· · · 45 46· · · 50 51· · · 55 56· · · 60 61· · · 65 66· · · 70
1 · · · 5 6 · · · 10 11· · · 15 16· · · 20 21· · · 25 26· · · 30 31· · · 35 36· · · 40 41· · · 45 46· · · 50 51· · · 55 56· · · 60 61· · · 65 66· · · 70
20160420 Slide 80 of 111
1 · · · 5 6 · · · 10 11· · · 15 16· · · 20 21· · · 25 26· · · 30 31· · · 35 36· · · 40 41· · · 45 46· · · 50 51· · · 55 56· · · 60 61· · · 65 66· · · 70
1 · · · 5 6 · · · 10 11· · · 15 16· · · 20 21· · · 25 26· · · 30 31· · · 35 36· · · 40 41· · · 45 46· · · 50 51· · · 55 56· · · 60 61· · · 65 66· · · 70
20160420 Slide 81 of 111
1 · · · 5 6 · · · 10 11· · · 15 16· · · 20 21· · · 25 26· · · 30 31· · · 35 36· · · 40 41· · · 45 46· · · 50 51· · · 55 56· · · 60 61· · · 65 66· · · 70
1 · · · 5 6 · · · 10 11· · · 15 16· · · 20 21· · · 25 26· · · 30 31· · · 35 36· · · 40 41· · · 45 46· · · 50 51· · · 55 56· · · 60 61· · · 65 66· · · 70
20160420 Slide 82 of 111
1 · · · 5 6 · · · 10 11· · · 15 16· · · 20 21· · · 25 26· · · 30 31· · · 35 36· · · 40 41· · · 45 46· · · 50 51· · · 55 56· · · 60 61· · · 65 66· · · 70
Physical Database Design 20160420 Slide 83 of 111
Physical Database Design 20160420 Slide 84 of 111
Physical Database Design 20160420 Slide 85 of 111
Physical Database Design 20160420 Slide 86 of 111
Physical Database Design 20160420 Slide 87 of 111
Physical Database Design 20160420 Slide 88 of 111
Physical Database Design 20160420 Slide 89 of 111
Physical Database Design 20160420 Slide 90 of 111
Physical Database Design 20160420 Slide 91 of 111
Physical Database Design 20160420 Slide 92 of 111
SELECT * FROM Survey WHERE (SEX=’F’) AND (60 <= AGE) AND (AGE < 79);
ID Sex Age Amount City 11111111 F 46 5321 Stockholm 22222222 F 63 5000 Gteborg 33333333 M 62 7125 Trelleborg 44444444 F 23 9100 Tillberga 55555555 M 28 1200 Tillberga 66666666 F 68 5500 Malm 77777777 F 42 5500 Simrishamn
Survey
Physical Database Design 20160420 Slide 93 of 111
SELECT * FROM Survey WHERE (SEX=’F’) AND (60 <= AGE) AND (AGE < 79);
ID Sex Age Amount City 11111111 F 46 5321 Stockholm 22222222 F 63 5000 Gteborg 33333333 M 62 7125 Trelleborg 44444444 F 23 9100 Tillberga 55555555 M 28 1200 Tillberga 66666666 F 68 5500 Malm 77777777 F 42 5500 Simrishamn
Survey
ID Sex 0-19 20-39 40-59 60-79 80- 11111111 1 1 22222222 1 1 33333333 1 44444444 1 1 55555555 1 66666666 1 1 77777777 1 1
Bitmap
Physical Database Design 20160420 Slide 93 of 111
SELECT * FROM Survey WHERE (SEX=’F’) AND (60 <= AGE) AND (AGE < 79);
ID Sex Age Amount City 11111111 F 46 5321 Stockholm 22222222 F 63 5000 Gteborg 33333333 M 62 7125 Trelleborg 44444444 F 23 9100 Tillberga 55555555 M 28 1200 Tillberga 66666666 F 68 5500 Malm 77777777 F 42 5500 Simrishamn
Survey
ID Sex 0-19 20-39 40-59 60-79 80- 11111111 1 1 22222222 1 1 33333333 1 44444444 1 1 55555555 1 66666666 1 1 77777777 1 1
Bitmap
ID BitMap 11111111 100100 22222222 100010 33333333 000010 44444444 101000 55555555 001000 66666666 100010 77777777 100100
Compact Bitmap
Physical Database Design 20160420 Slide 93 of 111
Age Range Encoding A1A2A3 0-20 000 21-39 001 40-59 010 60-79 011 80- 100 ID Sex A1 A2 A3 11111111 1 1 22222222 1 1 1 33333333 1 1 44444444 1 1 55555555 1 66666666 1 1 1 77777777 1 1
ID Sex A1 A2 A3 11111111 1 1 22222222 1 1 1 33333333 1 1 44444444 1 1 55555555 1 66666666 1 1 1 77777777 1 1
ID BitMap 11111111 1010 22222222 1011 33333333 0011 44444444 1001 55555555 0001 66666666 1011 77777777 1010
Physical Database Design 20160420 Slide 94 of 111
Physical Database Design 20160420 Slide 95 of 111
Physical Database Design 20160420 Slide 96 of 111
Physical Database Design 20160420 Slide 97 of 111
Physical Database Design 20160420 Slide 97 of 111
Physical Database Design 20160420 Slide 98 of 111
Physical Database Design 20160420 Slide 98 of 111
Physical Database Design 20160420 Slide 99 of 111
Physical Database Design 20160420 Slide 100 of 111
CREATE INDEX sn ON student (name );
university =# \d student Table "public.student" Column | Type | Modifiers
id | character varying (5) | not null name | character varying (20) | not null dept_name | character varying (20) | tot_cred | numeric (3 ,0) | Indexes: " student_pkey " PRIMARY KEY , btree (id) "sn" btree (name) ...
DROP INDEX sn;
CREATE INDEX ON student (name );
Physical Database Design 20160420 Slide 101 of 111
CREATE UNIQUE INDEX sn ON student (name );
university =# CREATE UNIQUE INDEX sdn ON student (dept_name ); ERROR: could not create unique index "sdn" DETAIL: Key (dept_name )=( Comp. Sci .) is duplicated .
Physical Database Design 20160420 Slide 102 of 111
CREATE INDEX sdncsee ON student (dept_name) WHERE (dept_name = ’Comp.Sci.’ OR dept_name = ’Elec.Eng.’); CREATE INDEX scr50 ON student (tot_cred) WHERE (tot_cred >50);
CREATE INDEX lower_name ON student (LOWER(name ));
university =# SELECT * FROM student WHERE LOWER(name) LIKE ’s%’; id | name | dept_name | tot_cred
12345 | Shankar | Comp. Sci. | 32 55739 | Sanchez | Music | 38 70557 | Snow | Physics | (3 rows)
Physical Database Design 20160420 Slide 103 of 111
CREATE INDEX sndn ON student (name ,dept_name );
Physical Database Design 20160420 Slide 104 of 111
CREATE INDEX CONCURRENTLY sn ON student (name );
Physical Database Design 20160420 Slide 105 of 111
CREATE INDEX sn ON student (name ); CLUSTER student USING sn;
CLUSTER student;
CLUSTER;
Physical Database Design 20160420 Slide 106 of 111
REINDEX INDEX sn;
REINDEX TABLE student;
Physical Database Design 20160420 Slide 107 of 111
Physical Database Design 20160420 Slide 108 of 111
Physical Database Design 20160420 Slide 109 of 111
CREATE INDEX sn ON student USING HASH (name );
Physical Database Design 20160420 Slide 110 of 111
Physical Database Design 20160420 Slide 111 of 111