database management systems session 9

90
6-Z1 – Database Management Systems – Vinnie Costa – Hofstra University Database Management Systems Session 9 Instructor: Vinnie Costa [email protected]

Upload: norman-riggs

Post on 30-Dec-2015

33 views

Category:

Documents


0 download

DESCRIPTION

Database Management Systems Session 9. Instructor: Vinnie Costa [email protected]. The $100 Laptop Moves Closer to Reality. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 1

Database Management Systems

Session 9

Instructor: Vinnie [email protected]

Page 2: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 2

The $100 Laptop Moves Closer to Reality[CNET News.com, 9/28] Nicholas Negroponte, the co-founder of the Media Lab at the Massachusetts Institute of Technology, detailed specifications for a $100 windup-powered laptop targeted at children in developing nations.

"This is the most important thing I have ever done in my life," Negroponte said during a presentation at Technology Review's Emerging Technologies Conference at MIT. "Reception has been incredible. The idea is simple. It's an education project, not a laptop project. If we can make education better--particularly primary and secondary schools--it will be a better world.“

The laptops would save on software costs by running the open-source Linux operating system rather than Windows, and reduce the need for costly base stations by participating in "mesh" networks and connecting to Wi-Fi wireless networks.

MIT’s Laptop Per Child initiative, which seeks to produce between 5 million and 15 million $100 laptops within a year. The MIT team plans to continually push the cost of the laptops down by incorporating low-power enhancements such as "electronic ink" displays.

CNET News.com, 9/28

Page 3: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 3

The Rest Of DBMS In A Nutshell

Session 9

Page 4: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 4

Good Side Of TechnologyNicholas Negroponte (born 1943) is a Greek-American computer scientist best known as founder and director of Massachusetts Institute of Technology's Media Lab.

Born the son of a Greek ship owner on New York City's Upper East Side, Nicholas Negroponte studied at MIT, where as a graduate student he specialized in the field of computer-aided design. He joined the faculty of MIT in 1966. He is the brother of United States Director of National Intelligence, John Negroponte.

He was a founder of WiReD magazine and has been an "angel investor" for over 40 start-ups, including three in China. Professor Negroponte helped to establish, and serves as chairman of, the 2B1 Foundation, an organization dedicated to bringing computer access to children in the most remote and poorest parts of the world

Page 5: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 5

Lecture Overview

Overview Of Storage and Indexing (Chap 8)

Overview Of Query Evaluation (Chap 12) Schema Refinement and Normal Forms

(Chap 19) Physical Database Design (Chap 20) Security and Authorization (Chap 21)

Page 6: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 6

Overview of Storage and Indexing

Chapter 8

Page 7: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 7

Data on External Storage Disks: Can retrieve random page at fixed cost

But reading several consecutive pages is much cheaper than reading them in random order

Tapes: Can only read pages in sequence Cheaper than disks; used for archival storage

File organization: Method of arranging a file of records on external storage. Record id (rid) is sufficient to physically locate record Indexes are data structures that allow us to find the

record ids of records with given values in index search key fields

Architecture: Buffer manager stages pages from external storage to main memory buffer pool. File and index layers make calls to the buffer manager.

Page 8: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 8

Alternative File Organizations

Many alternatives exist, each ideal for some situations, and not so good in others: Heap (random order) files - Suitable when

typical access is a file scan retrieving all records.

Sorted Files - Best if records must be retrieved in some order, or only a `range’ of records is needed.

Indexes - Data structures to organize records via trees or hashing.

• Like sorted files, they speed up searches for a subset of records, based on values in certain (“search key”) fields

• Updates are much faster than in sorted files.

Page 9: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 9

Indexes An index on a file speeds up selections on

the search key fields for the index Any subset of the fields of a relation can be the

search key for an index on the relation Search key is not the same as key (minimal

set of fields that uniquely identify a record in a relation)

An index contains a collection of data entries, and supports efficient retrieval of all data entries k* with a given key value k Given data entry k*, we can find record with

key k in at most one disk I/O

Page 10: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 10

B+ Tree Indexes

Leaf pages contain data entries, and are chained (prev & next) Non-leaf pages have index entries; only used to direct searches

P0 K 1 P 1 K 2 P 2 K m P m

index entry

Non-leaf

Pages

Pages (Sorted by search key)

Leaf

Page 11: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 11

Example B+ Tree

Find 28*? 29*? All > 15* and < 30* Insert/delete: Find data entry in leaf, then

change it. Need to adjust parent sometimes. And change sometimes bubbles up the tree

2* 3*

Root

17

30

14* 16* 33* 34* 38* 39*

135

7*5* 8* 22* 24*

27

27* 29*

Entries <= 17 Entries > 17

Note how data entriesin leaf level are sorted

Page 12: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 12

Hash-Based Indexes

Good for equality selections. Index is a collection of buckets

Bucket = primary page plus zero or more overflow pages

Buckets contain data entries. Hashing function h - h(r) = bucket in

which (data entry for) record r belongs. h looks at the search key fields of r.

Page 13: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 13

Index Classification Primary vs secondary - If search key contains

primary key, then called primary index. Unique index: Search key contains a candidate key.

Clustered vs unclustered - If order of data records is the same as, or `close to’, order of data entries, then called clustered index. A file can be clustered on at most one search key. Cost of retrieving data records through index varies

greatly based on whether index is clustered or not!

Page 14: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 14

Clustered vs. Unclustered Index Suppose that the data records are stored in a

Heap file To build clustered index, first sort the Heap file (with

some free space on each page for future inserts). Overflow pages may be needed for inserts. (Thus,

order of data recs is `close to’, but not identical to, the sort order.)

Index entries

Data entries

direct search for

(Index File)

(Data file)

Data Records

data entries

Data entries

Data Records

CLUSTERED UNCLUSTERED

Page 15: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 15

Cost Model for Our Analysis

We ignore CPU costs, for simplicity: B: The number of data pages R: Number of records per page D: (Average) time to read or write disk page Measuring number of page I/O’s ignores gains

of pre-fetching a sequence of pages; thus, even I/O cost is only approximated.

Average-case analysis; based on several simplistic assumptions.

Good enough to show the overall trends!

Page 16: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 16

Comparing File Organizations

Heap files (random order; insert at eof) Sorted files, sorted on <age, sal> Clustered B+ tree file, search key

<age, sal> Heap file with unclustered B + tree

index on search key <age, sal> Heap file with unclustered hash index

on search key <age, sal>

Page 17: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 17

Operations to Compare

Scan: Fetch all records from disk Equality search Range selection Insert a record Delete a record

Page 18: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 18

Understanding the Workload

For each query in the workload: Which relations does it access? Which attributes are retrieved? Which attributes are involved in selection/join

conditions? How selective are these conditions likely to be?

For each update in the workload: Which attributes are involved in selection/join

conditions? How selective are these conditions likely to be?

The type of update (INSERT/DELETE/UPDATE), and the attributes that are affected.

Page 19: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 19

Choice of Indexes

What indexes should we create? Which relations should have indexes? What

field(s) should be the search key? Should we build several indexes?

For each index, what kind of an index should it be? Clustered? Hash/tree?

Page 20: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 20

Choice of Indexes (Contd.)

One approach: Consider the most important queries in turn. Consider the best plan using the current indexes, and see if a better plan is possible with an additional index. If so, create it. Obviously, this implies that we must understand how a

DBMS evaluates queries and creates query evaluation plans!

For now, we discuss simple 1-table queries. Before creating an index, must also consider the

impact on updates in the workload! Trade-off: Indexes can make queries go faster, updates

slower. Require disk space, too.

Page 21: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 21

Index Selection Guidelines Attributes in WHERE clause are candidates for index

keys. Exact match condition suggests hash index. Range query suggests tree index.

• Clustering is especially useful for range queries; can also help on equality queries if there are many duplicates.

Multi-attribute search keys should be considered when a WHERE clause contains several conditions. Order of attributes is important for range queries. Such indexes can sometimes enable index-only strategies for

important queries.• For index-only strategies, clustering is not important!

Try to choose indexes that benefit as many queries as possible. Since only one index can be clustered per relation, choose it based on important queries that would benefit the most from clustering.

Page 22: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 22

Examples of Clustered Indexes

B+ tree index on E.age can be used to get qualifying rows How selective is the condition? Is the index clustered?

Consider the GROUP BY query If many tuples have E.age > 10,

using E.age index and sorting the retrieved rows may be costly

Clustered E.dno index may be better!

Equality queries and duplicates: Clustering on E.hobby helps!

SELECT E.dnoFROM Emp EWHERE E.age>40

SELECT E.dno, COUNT (*)FROM Emp EWHERE E.age>10GROUP BY E.dno

SELECT E.dnoFROM Emp EWHERE E.hobby=Stamps

Page 23: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 23

Indexes with Composite Search Keys

Composite Search Keys - Search on a combination of fields. Equality query - Every field value is

equal to a constant value. E.g. wrt <sal,age> index:

• age=20 and sal =75 Range query - Some field value is

not a constant. E.g.:• age=20 and sal > 10

Data entries in index sorted by search key to support range queries. Lexicographic order, or Spatial order.

sue 13 75

bob

cal

joe 12

10

20

8011

12

name age sal

<sal, age>

<age, sal> <age>

<sal>

12,20

12,10

11,80

13,75

20,12

10,12

75,13

80,11

11

12

12

13

10

20

75

80

Data recordssorted by name

Data entries in indexsorted by <sal,age>

Data entriessorted by <sal>

Examples of composite keyindexes using lexicographic order.

Page 24: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 24

Composite Search Keys

To retrieve Emp records with age=30 AND sal=4000, an index on <age,sal> would be better than an index on age or an index on sal Choice of index key orthogonal to clustering etc.

If condition is: 20<age<30 AND 3000<sal<5000 Clustered tree index on <age,sal> or <sal,age> is

best If condition is: age=30 AND 3000<sal<5000

Clustered <age,sal> index much better than <sal,age> index!

Page 25: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 25

Summary Many alternative file organizations exist, each

appropriate in some situation. If selection queries are frequent, sorting the

file or building an index is important. Hash-based indexes only good for equality search Sorted files and tree-based indexes best for

range search; also good for equality search. (Files rarely kept sorted in practice; B+ tree index is better.)

Index is a collection of data entries plus a way to quickly find entries with given key values.

Page 26: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 26

Summary (Contd.)

Data entries can be actual data records, <key, rid> pairs, or <key, rid-list> pairs.

Can have several indexes on a given file of data records, each with a different search key

Indexes can be classified as clustered vs. unclustered, primary vs. secondary. Differences have important consequences for utility/performance.

Page 27: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 27

Summary (Contd.) Understanding the nature of the workload for the

application, and the performance goals, is essential to developing a good design. What are the important queries and updates? What

attributes/relations are involved? Indexes must be chosen to speed up important

queries (and perhaps some updates!). Index maintenance overhead on updates to key fields. Choose indexes that can help many queries, if possible. Build indexes to support index-only strategies. Clustering is an important decision; only one index on a

given relation can be clustered! Order of fields in composite index key can be important.

Page 28: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 28

Lecture Overview

Overview Of Storage and Indexing (Chap 8)

Overview Of Query Evaluation (Chap 12)

Schema Refinement and Normal Forms (Chap 19)

Physical Database Design (Chap 20) Security and Authorization (Chap 21)

Page 29: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 29

Overview of Query Evaluation

Chapter 12

Page 30: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 30

Some Common Techniques Algorithms for evaluating relational operators

use some simple ideas extensively: Indexing: Can use WHERE conditions to retrieve

small set of tuples (selections, joins) Iteration: Sometimes, faster to scan all tuples

even if there is an index. (And sometimes, we can scan the data entries in an index instead of the table itself.)

Partitioning: By using sorting or hashing, we can partition the input tuples and replace an expensive operation by similar operations on smaller inputs.

* Watch for these techniques as we discuss query evaluation!

Page 31: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 31

Statistics and Catalogs

Need information about the relations and indexes involved. Catalogs typically contain at least: # tuples (NTuples) and # pages (NPages) for each

relation # distinct key values (NKeys) and NPages for each index Index height, low/high key values (Low/High) for each

tree index Catalogs updated periodically

Updating whenever data changes is too expensive; lots of approximation anyway, so slight inconsistency ok.

More detailed information (e.g., histograms of the values in some field) are sometimes stored.

Page 32: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 32

Highlights of System R Optimizer

Impact: Most widely used currently; works well for < 10 joins.

Cost estimation - Approximate art at best Statistics, maintained in system catalogs, used to

estimate cost of operations and result sizes. Considers combination of CPU and I/O costs.

Plan Space - Too large, must be pruned. Only the space of left-deep plans is considered

• Left-deep plans allow output of each operator to be pipelined into the next operator without storing it in a temporary relation.

Page 33: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 33

Cost Estimation

For each plan considered, must estimate cost: Must estimate cost of each operation in

plan tree.• Depends on input cardinalities.• We’ve already discussed how to estimate the

cost of operations (sequential scan, index scan, joins, etc.)

Must also estimate size of result for each operation in tree!

• Use information about the input relations.• For selections and joins, assume independence of

predicates.

Page 34: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 34

Schema for Examples

Similar to old schema; rname added for variations.

Reserves: Each tuple is 40 bytes long, 100 tuples per page,

1000 pages. Sailors:

Each tuple is 50 bytes long, 80 tuples per page, 500 pages.

Sailors (sid: integer, sname: string, rating: integer, age: real)Reserves (sid: integer, bid: integer, day: dates, rname: string)

Page 35: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 35

Motivating Example

Cost: 500+500*1000 I/Os By no means the worst plan! Misses several opportunities:

selections could have been `pushed’ earlier, no use is made of any available indexes, etc.

Goal of optimization: To find more efficient plans that compute the same answer.

SELECT S.snameFROM Reserves R, Sailors SWHERE R.sid=S.sid AND R.bid=100 AND S.rating>5

Reserves Sailors

sid=sid

bid=100 rating > 5

sname

Reserves Sailors

sid=sid

bid=100 rating > 5

sname

(Simple Nested Loops)

(On-the-fly)

(On-the-fly)

RA Tree:

Plan:

Page 36: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 36

Alternative Plans 1 (No Indexes)

Main difference: push selects. With 5 buffers, cost of plan:

Scan Reserves (1000) + write temp T1 (10 pages, if we have 100 boats, uniform distribution).

Scan Sailors (500) + write temp T2 (250 pages, if we have 10 ratings). Sort T1 (2*2*10), sort T2 (2*3*250), merge (10+250) Total: 3560 page I/Os.

If we used BNL join, join cost = 10+4*250, total cost = 2770. If we `push’ projections, T1 has only sid, T2 only sid and

sname: T1 fits in 3 pages, cost of BNL drops to under 250 pages, total < 2000.

Reserves Sailors

sid=sid

bid=100

sname(On-the-fly)

rating > 5(Scan;write to temp T1)

(Scan;write totemp T2)

(Sort-Merge Join)

Page 37: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 37

Alternative Plans 2With Indexes

With clustered index on bid of Reserves, we get 100,000/100 = 1000 tuples on 1000/100 = 10 pages.

INL with pipelining (outer is not materialized).

Decision not to push rating>5 before the join is based on availability of sid index on Sailors. Cost: Selection of Reserves tuples (10 I/Os); for each, must get matching Sailors tuple (1000*1.2); total 1210 I/Os.

Join column sid is a key for Sailors.–At most one matching tuple, unclustered index on sid OK.

–Projecting out unnecessary fields from outer doesn’t help.

Reserves

Sailors

sid=sid

bid=100

sname(On-the-fly)

rating > 5

(Use hashindex; donot writeresult to temp)

(Index Nested Loops,with pipelining )

(On-the-fly)

Page 38: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 38

Summary There are several alternative evaluation algorithms

for each relational operator A query is evaluated by converting it to a tree of

operators and evaluating the operators in the tree Must understand query optimization in order to fully

understand the performance impact of a given database design (relations, indexes) on a workload (set of queries)

Two parts to optimizing a query: Consider a set of alternative plans.

• Must prune search space; typically, left-deep plans only. Must estimate cost of each plan that is considered.

• Must estimate size of result and cost for each plan node.• Key issues: Statistics, indexes, operator implementations.

Page 39: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 39

Lecture Overview

Overview Of Storage and Indexing (Chap 8)

Overview Of Query Evaluation (Chap 12) Schema Refinement and Normal

Forms (Chap 19) Physical Database Design (Chap 20) Security and Authorization (Chap 21)

Page 40: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 40

Schema Refinement and Normal Forms

Chapter 19

Page 41: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 41

The Evils of Redundancy Redundancy is at the root of several problems

associated with relational schemas: redundant storage, insert/delete/update anomalies

Integrity constraints, in particular functional dependencies, can be used to identify schemas with such problems and to suggest refinements

Main refinement technique: decomposition (replacing ABCD with, say, AB and BCD, or ACD and ABD)

Decomposition should be used judiciously: Is there reason to decompose a relation? What problems (if any) does the decomposition

cause?

Page 42: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 42

Functional Dependencies (FDs)

A functional dependency X Y holds over relation R if, for every allowable instance r of R: t1 r, t2 r, (t1) = (t2) implies (t1) =

(t2) i.e., given two tuples in r, if the X values agree, then the Y

values must also agree. (X and Y are sets of attributes.) An FD is a statement about all allowable relations.

Must be identified based on semantics of application. Given some allowable instance r1 of R, we can check if it

violates some FD f, but we cannot tell if f holds over R! K is a candidate key for R means that K R

However, K R does not require K to be minimal!

X X Y Y

Page 43: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 43

Example: Constraints on Entity Set

Consider relation obtained from Hourly_Emps: Hourly_Emps (ssn, name, lot, rating, hrly_wages,

hrs_worked) Notation: We will denote this relation schema by

listing the attributes: SNLRWH This is really the set of attributes {S,N,L,R,W,H}. Sometimes, we will refer to all attributes of a relation by

using the relation name. (e.g., Hourly_Emps for SNLRWH) Some FDs on Hourly_Emps:

ssn is the key: S SNLRWH rating determines hrly_wages: R W

Page 44: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 44

Example (Contd.)

hours_workedhourly_wages

ratinglotnamessn

S N L R W H

123-22-3666 Attishoo 48 8 10 40

231-31-5368 Smiley 22 8 10 30

131-24-3650 Smethurst 35 5 7 30

434-26-3751 Guldu 35 5 7 32

612-67-4134 Madayan 35 8 10 40

Page 45: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 45

Example (Contd.) Problems due to R W :

Update anomaly: Can we change W in just the 1st tuple of SNLRWH?

Insertion anomaly: What if we want to insert an employee and don’t know the hourly wage for his rating?

Deletion anomaly: If we delete all employees with rating 5, we lose the information about the wage for rating 5!

S N L R W H

123-22-3666 Attishoo 48 8 10 40

231-31-5368 Smiley 22 8 10 30

131-24-3650 Smethurst 35 5 7 30

434-26-3751 Guldu 35 5 7 32

612-67-4134 Madayan 35 8 10 40

S N L R H

123-22-3666 Attishoo 48 8 40

231-31-5368 Smiley 22 8 30

131-24-3650 Smethurst 35 5 30

434-26-3751 Guldu 35 5 32

612-67-4134 Madayan 35 8 40

R W

8 10

5 7Hourly_Emps2

Wages

Will 2 smaller tables be better?

Page 46: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 46

Normal Forms Returning to the issue of schema refinement, the

first question to ask, “Is any refinement needed?”

If a relation is in a certain normal form (BCNF, 3NF etc.), it is known that certain kinds of problems are avoided/minimized. This can be used to help us decide whether decomposing the relation will help.

Role of FDs in detecting redundancy: Consider a relation R with 3 attributes, ABC.

• No FDs hold: There is no redundancy here.• Given A B: Several tuples could have the same A value, and

if so, they’ll all have the same B value!

Page 47: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 47

Boyce-Codd Normal Form (BCNF)

In other words, a relation, R, is in BCNF if the only non-trivial FDs that hold over R are key constraints No dependency in R that can be predicted using FDs

alone If we are shown two tuples that agree upon the X

value, we cannot infer the A value in one tuple from the A value in the other

If example relation is in BCNF, the 2 tuples must be identical (since X is a key)

X Y A

x y1 a

x y2 ?

KEY Nonkey attr1 Nonkey attr2 Nonkey attrk

BNCF ensures that no redundancy can be detected using FD information alone. It is the most desirable normal form!

Page 48: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 48

Third Normal Form (3NF)

If R is in BCNF, it’s obviously in 3NF. If R is in 3NF, some redundancy is possible. It

is a compromise, used when BCNF not achievable (e.g., no ``good’’ decomp, or performance considerations).

Lossless-join, dependency-preserving decomposition of R into a collection of 3NF relations is always possible

Thus, 3NF is indeed a compromise relative to BCNF.

Page 49: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 49

Decomposition of a Relation Scheme

Suppose that relation R contains attributes A1 ... An. A decomposition of R consists of replacing R by two or more relations such that: Each new relation scheme contains a subset of the

attributes of R (and no attributes that do not appear in R), and

Every attribute of R appears as an attribute of one of the new relations.

Intuitively, decomposing R means we will store instances of the relation schemes produced by the decomposition, instead of instances of R.

E.g., Can decompose SNLRWH into SNLRH and RW.

Page 50: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 50

Example Decomposition

Decompositions should be used only when needed. SNLRWH has FDs S SNLRWH and R W Second FD causes violation of 3NF; W values

repeatedly associated with R values. Easiest way to fix this is to create a relation RW to store these associations, and to remove W from the main schema:

• i.e., we decompose SNLRWH into SNLRH and RW

The information to be stored consists of SNLRWH tuples. If we just store the projections of these tuples onto SNLRH and RW, are there any potential problems that we should be aware of?

Page 51: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 51

Problems with Decompositions

There are three potential problems to consider: Some queries become more expensive.

• e.g., How much did sailor Joe earn? (salary = W*H)

Given instances of the decomposed relations, we may not be able to reconstruct the corresponding instance of the original relation! • Fortunately, not in the SNLRWH example.

Checking some dependencies may require joining the instances of the decomposed relations.• Fortunately, not in the SNLRWH example.

Tradeoff: Must consider these issues vs. redundancy.

Page 52: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 52

Lossless Join Decompositions

Decomposition of R into X and Y is lossless-join w.r.t. a set of FDs F if, for every instance r that satisfies F: (r) (r) = r

It is always true that r (r) (r) In general, the other direction does not hold! If it

does, the decomposition is lossless-join. Definition extended to decomposition into 3 or

more relations in a straightforward way. It is essential that all decompositions used to

deal with redundancy be lossless! (Avoids Problem (2).)

X Y X Y

Page 53: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 53

More on Lossless Join

The decomposition of R into X and Y is lossless-join wrt F if and only if the closure of F contains: X Y X, or X Y Y

In particular, the decomposition of R into UV and R - V is lossless-join if U V holds over R.

A B C1 2 34 5 67 2 81 2 87 2 3

A B C1 2 34 5 67 2 8

A B1 24 57 2

B C2 35 62 8

Page 54: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 54

Dependency Preserving Decomposition

Dependency preserving decomposition (Intuitive): If R is decomposed into X, Y and Z, and we enforce

the FDs that hold on X, on Y and on Z, then all FDs that were given to hold on R must also hold. (Avoids Problem (3).)

Page 55: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 55

Summary of Normalization 1NF: Eliminate Repeating Groups - Make a separate table

for each set of related attributes, and give each table a primary key

2NF: Eliminate Redundant Data - If an attribute depends on only part of a multi-valued key, remove it to a separate table

3NF: Eliminate Columns Not Dependent On Key - If attributes do not contribute to a description of the key, remove them to a separate table

BCNF: Boyce-Codd Normal Form - If there are non-trivial dependencies between candidate key attributes, separate them out into distinct tables

http://www.datamodel.org/NormalizationRules.html

Page 56: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 56

Refining an ER Diagram 1st diagram translated:

Workers(S,N,L,D,S) Departments(D,M,B) Lots associated with

workers. Suppose all workers in a

dept are assigned the same lot: D L

Redundancy; fixed by: Workers2(S,N,D,S) Dept_Lots(D,L)

Can fine-tune this: Workers2(S,N,D,S) Departments(D,M,B,L)

lot

dname

budgetdid

sincename

Works_In DepartmentsEmployees

ssn

lot

dname

budget

did

sincename

Works_In DepartmentsEmployees

ssn

Before:

After:

Note that Employees and Works_In are mapped to a single relation, Workers

Page 57: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 57

Summary of Schema Refinement

If a relation is in BCNF, it is free of redundancies that can be detected using FDs. Thus, trying to ensure that all relations are in BCNF is a good heuristic.

If a relation is not in BCNF, we can try to decompose it into a collection of BCNF relations. Must consider whether all FDs are preserved. If a

lossless-join, dependency preserving decomposition into BCNF is not possible (or unsuitable, given typical queries), should consider decomposition into 3NF.

Decompositions should be carried out and/or re-examined while keeping performance requirements in mind.

Page 58: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 58

Lecture Overview

Overview Of Storage and Indexing (Chap 8)

Overview Of Query Evaluation (Chap 12) Schema Refinement and Normal Forms

(Chap 19) Physical Database Design (Chap 20) Security and Authorization (Chap 21)

Page 59: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 59

Physical Database Design

Chapter 20

Page 60: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 60

Overview

After ER design, schema refinement, and the definition of views, we have the conceptual and external schemas for our database.

The next step is to choose indexes, make clustering decisions, and to refine the conceptual and external schemas (if necessary) to meet performance goals.

We must begin by understanding the workload: The most important queries and how often they arise. The most important updates and how often they arise. The desired performance for these queries and updates.

Page 61: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 61

Decisions to Make

What indexes should we create? Which relations should have indexes? What field(s) should be

the search key? Should we build several indexes? For each index, what kind of an index should it be?

Clustered? Hash/tree? Should we make changes to the conceptual schema?

Consider alternative normalized schemas? (Remember, there are many choices in decomposing into BCNF, etc.)

Should we ``undo’’ some decomposition steps and settle for a lower normal form? (Denormalization.)

Horizontal partitioning, replication, views ...

Page 62: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 62

Index Selection for Joins

When considering a join condition: Hash index on inner is very good for

Index Nested Loops• Should be clustered if join column is not key

for inner, and inner tuples need to be retrieved

Clustered B+ tree on join column(s) good for Sort-Merge

Page 63: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 63

Example 1

Hash index on D.dname supports ‘Toy’ selection. Given this, index on D.dno is not needed

Hash index on E.dno allows us to get matching (inner) Emp rows for each selected (outer) Dept row

What if WHERE included: `` ... AND E.age=25’’ ? Could retrieve Emp rows using index on E.age, then join

with Dept rows satisfying dname selection. Comparable to strategy that used E.dno index.

So, if E.age index is already created, this query provides much less motivation for adding an E.dno index.

SELECT E.ename, D.mgrFROM Emp E, Dept DWHERE D.dname=‘Toy’ AND E.dno=D.dno

Page 64: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 64

Example 2

Clearly, Emp should be the outer relation. Suggests that we build a hash index on D.dno

What index should we build on Emp? B+ tree on E.sal could be used, OR an index on E.hobby

could be used. Only one of these is needed, and which is better depends upon the selectivity of the conditions.

• As a rule of thumb, equality selections more selective than range selections.

As both examples indicate, our choice of indexes is guided by the plan(s) that we expect an optimizer to consider for a query. Have to understand optimizers!

SELECT E.ename, D.mgrFROM Emp E, Dept DWHERE E.sal BETWEEN 10000 AND 20000 AND E.hobby=‘Stamps’ AND E.dno=D.dno

Range selection

Page 65: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 65

Clustering and Joins

Clustering is especially important when accessing inner rows in INL. Should make index on E.dno clustered

Suppose that the WHERE clause is instead:WHERE E.hobby=‘Stamps AND E.dno=D.dno

If many employees collect stamps, Sort-Merge join may be worth considering. A clustered index on D.dno would help.

Summary: Clustering is useful whenever many rows are to be retrieved.

SELECT E.ename, D.mgrFROM Emp E, Dept DWHERE D.dname=‘Toy’ AND E.dno=D.dno

Page 66: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 66

Tuning the Conceptual Schema

The choice of conceptual schema should be guided by the workload, in addition to redundancy issues: We may settle for a 3NF schema rather than BCNF Workload may influence the choice we make in

decomposing a relation into 3NF or BCNF We may further decompose a BCNF schema! We might denormalize (i.e., undo a decomposition

step), or we might add fields to a relation. If such changes are made after a database is in

use, called schema evolution; might want to mask some of these changes from applications by defining views

Page 67: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 67

Tuning Queries and Views If a query runs slower than expected, check if an

index needs to be re-built, or if statistics are too old Sometimes, the DBMS may not be executing the

plan you had in mind. Common areas of weakness: Selections involving null values Selections involving arithmetic or string expressions Selections involving OR conditions. Lack of evaluation features like index-only strategies or

certain join methods or poor size estimation Check the plan that is being used! Then adjust the

choice of indexes or rewrite the query/view

Page 68: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 68

More Guidelines for Query Tuning

Minimize the use of DISTINCT: don’t need it if duplicates are acceptable, or if answer contains a key.

Minimize the use of GROUP BY and HAVING:SELECT MIN (E.age)FROM Employee EGROUP BY E.dnoHAVING E.dno=102

SELECT MIN (E.age)FROM Employee EWHERE E.dno=102

Page 69: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 69

Summary

Database design consists of several tasks: requirements analysis, conceptual design, schema refinement, physical design and tuning. In general, have to go back and forth between these

tasks to refine a database design, and decisions in one task can influence the choices in another task.

Understanding the nature of the workload for the application, and the performance goals, is essential to developing a good design What are the important queries and updates? What

attributes/relations are involved?

Page 70: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 70

Summary The conceptual schema should be refined

by considering performance criteria and workload: May choose 3NF or lower normal form over BCNF. May choose among alternative decompositions into

BCNF (or 3NF) based upon the workload. May denormalize, or undo some decompositions. May decompose a BCNF relation further!

Page 71: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 71

Summary (Contd.) Over time, indexes have to be fine-tuned

(dropped, created, re-built, ...) for performance Should determine the plan used by the system, and

adjust the choice of indexes appropriately System may still not find a good plan:

Only left-deep plans considered! Null values, arithmetic conditions, string expressions,

the use of ORs, etc. can confuse an optimizer So, may have to rewrite the query/view:

Avoid nested queries, temporary relations, complex conditions, and operations like DISTINCT and GROUP BY

Page 72: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 72

Lecture Overview

Overview Of Storage and Indexing (Chap 8)

Overview Of Query Evaluation (Chap 12) Schema Refinement and Normal Forms

(Chap 19) Physical Database Design (Chap 20) Security and Authorization (Chap 21)

Page 73: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 73

Security and Authorization

Chapter 21

Page 74: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 74

Introduction to DB Security

Secrecy - Users should not be able to see things they are not supposed to E.g., A student can’t see other students’

grades Integrity - Users should not be able to

modify things they are not supposed to E.g., Only instructors can assign grades

Availability - Users should be able to see and modify things they are allowed to

Page 75: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 75

Access Controls

A security policy specifies who is authorized to do what

A security mechanism allows us to enforce a chosen security policy.

Two main mechanisms at the DBMS level: Discretionary access control - privileges Mandatory access control – system policies

(root)

Page 76: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 76

Discretionary Access Control

Based on the concept of access rights or privileges for objects (tables and views), and mechanisms for giving users privileges (and revoking privileges).

Creator of a table or a view automatically gets all privileges on it. DMBS keeps track of who subsequently gains

and loses privileges, and ensures that only requests from users who have the necessary privileges (at the time the request is issued) are allowed.

Page 77: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 77

GRANT Command

The following privileges can be specified: SELECT: Can read all columns (including those added

later via ALTER TABLE command) INSERT(col-name): Can insert rows with non-null or non-

default values in this columnINSERT means same right with respect to all columns

DELETE: Can delete rows REFERENCES (col-name): Can define foreign keys (in

other tables) that refer to this column If a user has a privilege with the GRANT OPTION,

can pass privilege on to other users (with or without passing on the GRANT OPTION)

Only owner can execute CREATE, ALTER, and DROP

GRANT privileges ON object TO users [WITH GRANT OPTION]

Page 78: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 78

GRANT and REVOKE of Privileges

GRANT INSERT, SELECT ON Sailors TO Horatio Horatio can query Sailors or insert rows into it

GRANT DELETE ON Sailors TO Yuppy WITH GRANT OPTION

Yuppy can delete rows, and also authorize others to do so GRANT UPDATE (rating) ON Sailors TO Dustin

Dustin can update (only) the rating field of Sailors rows GRANT SELECT ON ActiveSailors TO Guppy, Yuppy

This does NOT allow the ‘uppies to query Sailors directly! REVOKE

When a privilege is revoked from X, it is also revoked from all users who got it solely from X

Page 79: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 79

GRANT/REVOKE on Views

If the creator of a view loses the SELECT privilege on an underlying table, the view is dropped!

If the creator of a view loses a privilege held with the grant option on an underlying table, (s)he loses the privilege on the view as well; so do users who were granted that privilege on the view!

Page 80: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 80

Views and Security Views can be used to present necessary

information (or a summary), while hiding details in underlying relation(s) Given ActiveSailors, but not Sailors or Reserves, we can find sailors who have a reservation, but not the bid’s of boats that have been reserved

Creator of view has a privilege on the view if (s)he has the privilege on all underlying tables.

Together with GRANT/REVOKE commands, views are a very powerful access control tool

Page 81: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 81

Role-Based Authorization

In SQL-92, privileges are actually assigned to authorization ids, which can denote a single user or a group of users

In SQL:1999 (and in many current systems), privileges are assigned to roles Roles can then be granted to users and to

other roles Reflects how real organizations work Illustrates how standards often catch up with

“de facto” standards embodied in popular systems

Page 82: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 82

Security to the Level of a Field!

Can create a view that only returns one field of one row

Then grant access to that view accordingly.

Allows for arbitrary granularity of control, but: Clumsy to specify, though this can be hidden

under a good UI Performance is unacceptable if we need to

define field-granularity access frequently (Too many view creations and look-ups)

Page 83: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 83

Internet-Oriented Security Key Issues: User authentication and trust

When DB must be accessed from a secure location, password-based schemes are usually adequate.

For access over an external network, trust is hard to achieve If someone with Sam’s credit card wants to buy from you,

how can you be sure it is not someone who stole his card? How can Sam be sure that the screen for entering his

credit card information is indeed yours, and not some rogue site spoofing you (to steal such information)? How can he be sure that sensitive information is not “sniffed” while it is being sent over the network to you?

Encryption is a technique used to address these issues.

Page 84: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 84

Encryption “Masks” data for secure transmission or storage

Encrypt(data, encryption key) = encrypted data Decrypt(encrypted data, decryption key) = original data Without decryption key, the encrypted data is

meaningless gibberish Symmetric Encryption

Encryption key = decryption key; all authorized users know decryption key (a weakness).

DES, used since 1977, has 56-bit key; AES has 128-bit (optionally, 192-bit or 256-bit) key

Public-Key Encryption - Each user has two keys: User’s public encryption key - Known to all Private decryption key - Known only to this user Used in RSA scheme

Page 85: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 85

RSA Public-Key Encryption Let the data be an integer I Choose a large (>> I) integer L = p * q

p, q are large, say 1024-bit, distinct prime numbers Encryption - Choose a random number 1 < e < L that is relatively prime to (p-1) * (q-1) Encrypted data S = I e mod L

Decryption key d - Chosen so that d * e = 1 mod ((p-1) * (q-1)) We can then show that I = S d mod L

It turns out that the roles of e and d can be reversed; so they are simply called the public and private keys

Page 86: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 86

Certifying Servers: SSL, SET If Amazon distributes their public key, Sam’s browser will

encrypt his order using it. So, only Amazon can decipher the order, since no one else has

Amazon’s private key. But how can Sam (or his browser) know that the public key for

Amazon is genuine? The SSL protocol covers this. Amazon contracts with, say, Verisign, to issue a certificate

<Verisign, Amazon, amazon.com, public-key> This certificate is stored in encrypted form, encrypted with

Verisign’s private key, known only to Verisign Verisign’s public key is known to all browsers, which can

therefore decrypt the certificate and obtain Amazon’s public key, and be confident that it is genuine.

The browser then generates a temporary session key, encodes it using Amazon’s public key, and sends it to Amazon.

All subsequent msgs between the browser and Amazon are encoded using symmetric encryption (e.g., DES), which is more efficient than public-key encryption.

What if Sam doesn’t trust Amazon with his credit card information? Secure Electronic Transaction protocol: 3-way communication

between Amazon, Sam, and a trusted server, e.g., Visa.

Page 87: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 87

Authenticating Users Amazon can simply use password authentication,

i.e., ask Sam to log into his Amazon account Done after SSL is used to establish a session key, so

that the transmission of the password is secure! Amazon is still at risk if Sam’s card is stolen and his

password is hacked. Business risk … Digital Signatures:

Sam encrypts the order using his private key, then encrypts the result using Amazon’s public key

Amazon decrypts the msg with their private key, and then decrypts the result using Sam’s public key, which yields the original order!

Exploits interchangeability of public/private keys for encryption/decryption

Now, no one can forge Sam’s order, and Sam cannot claim that someone else forged the order.

Page 88: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 88

Summary

Three main security objectives: secrecy, integrity, availability

DB admin is responsible for overall security. Designs security policy, maintains an audit trail,

or history of users’ accesses to DB. Two main approaches to DBMS security:

discretionary and mandatory access control Discretionary control based on notion of privileges Mandatory control based on notion of security

classes

Page 89: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 89

Final Exam Due Next Saturday, Oct 15

Last Class Class Begins at 9AM!!! We’ll Cover XML Data

Page 90: Database Management Systems Session 9

CSC056-Z1 – Database Management Systems – Vinnie Costa – Hofstra University 90

See Dark At The End Of The Tunnel…

…But Almost There!!!